模型调用服务后台demo思路
·
通过uvicorn启动一个fastapi web服务,供用户请求不同模型的调用;

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from pydantic import BaseModel
import requests
app = FastAPI()
# 定义请求模型
class ChatRequest(BaseModel):
prompt: str
#model: str = "deepseek-r1:1.5b"
model: str = "deepseek-V3.1:671b-cloud"
# 允许跨域请求(根据需要配置)
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],# # 允许所有域(生产环境应限制)
allow_methods=["*"],#allow_methods=["POST"], # 仅开放POST请求
allow_headers=["*"],#allow_headers=["Content-Type"] # 控制可接收头类型
)
@app.post("/api/chat")
async def chat(request: ChatRequest):
print(request)##调用本地模型
ollama_url= "http://localhost:11434/api/generate"
data = {
"model": request.model,
"prompt": request.prompt,
"stream": False
}
response = requests.post(ollama_url, json=data)
if response.status_code== 200:
return {"response": response.json()["response"]}
else:
return {"error": "Failed to get response from Ollama"}, 500
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000, log_level="debug")#workers=4, # 启动 4 个进程处理并发请求
#reload=True, # 开发模式:代码修改后自动重启
#log_level="debug", # 输出详细日志
#timeout_keep_alive=30 # 连接保持时间(秒)
import requests
response = requests.post(
"http://localhost:8000/api/chat",
#json={"prompt": "你好,请介绍一下你自己"}
json={"prompt": "你好,请介绍一下你自己", "model":"phi3:mini"}
)
print(response.json())
更多推荐
所有评论(0)