Files
FastGPT/python/api/main.py
不做了睡大觉 9f889d8806 Create Python API (#457)
* 更新镜像

* 更新镜像信息

* 更新镜像信息

* Create openai_api.py

* Create requirements.txt

* Create README.md

* 添加python接口

* Delete python directory

* Create README.md

* Create Python API

* 文件结构化

* 文件结构化
2023-11-09 11:52:53 +08:00

48 lines
1.4 KiB
Python

from fastapi.middleware.cors import CORSMiddleware
from fastapi import FastAPI, File, UploadFile
import queue
from typing import List
from api import SummaryRequest, SummaryResponse, ExtractedText,process_file,process_summary
import uvicorn
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
q = queue.Queue()
# 定义一个接口,接收文件并将其放入队列中
@app.post("/extract_text/", response_model=ExtractedText)
async def extract_text(file: UploadFile = File(...)):
# 将文件对象放入队列中,先进先出
q.put(file)
# 从队列中取出文件对象,并调用处理函数
file = q.get()
result = await process_file(file)
# 标记队列中的任务已完成
q.task_done()
# 返回处理结果
return result
# 定义一个接口,接收请求并将其放入队列中
@app.post("/generate_summary/", response_model=List[SummaryResponse])
async def generate_summary(request: SummaryRequest):
# 将请求对象放入队列中,先进先出
q.put(request)
# 从队列中取出请求对象,并调用处理函数
request = q.get()
result = await process_summary(request)
# 标记队列中的任务已完成
q.task_done()
# 返回处理结果
return result
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=6010)