1.服务端
使用pydantic对输入文本进行校验,是否符合输入规则。
import json
import requests
import re
from fastapi import FastAPI, HTTPException, Request,Query
from fastapi.responses import JSONResponse, Response, StreamingResponse
import logging
import uvicorn
from pydantic import BaseModel
# 定义一个数据模型,用于接收和验证请求体中的数据
class DataModel(BaseModel):
sentence: str
# http接口服务
app=FastAPI()
...
...
@app.post("/v1/Customer_Profile")
async def process_data(data: DataModel):
#现在data是一个DataModel实例,你可以访问它的属性
sentence = data.sentence
if sentence is None:
raise HTTPException(status_code=400, detail="Sentence query parameter is required")
...
...
#启动fastapi服务
uvicorn.run(app,
host=None,
port=19529,
log_level="debug")
2.客户端
客户端将请求数据封装在body中,可以避免将参数拼接到访问链接中,造成访问链接过长报错的风险。
import requests
import json
def Cus_pro(sentence):
url = "http://0.0.0.0:19529/v1/Customer_Profile"
data = {
"sentence": sentence,
}
headers = {'Content-Type': 'application/json'}
response = requests.post(url, data=json.dumps(data), headers=headers)
# 检查响应状态码
if response.status_code == 200:
print("Success")
return response.json()
else:
print("Error", response.text)
return response.status_code