调用文心一言智能体API
This commit is contained in:
parent
6c67cb5f2a
commit
78a6b04a7c
|
@ -0,0 +1,125 @@
|
||||||
|
import json
|
||||||
|
|
||||||
|
from zhipuai import ZhipuAI
|
||||||
|
import requests
|
||||||
|
import flask
|
||||||
|
|
||||||
|
|
||||||
|
def test():
|
||||||
|
url = "https://agentapi.baidu.com/assistant/getAnswer?appId=LiXmltQoTrb8pryis0cm7RZpUTeUYmcM&secretKey=BShZAmOJXdSLo1yizqFtpQ2DDBiLUcPM"
|
||||||
|
|
||||||
|
payload = json.dumps({
|
||||||
|
"message": {
|
||||||
|
"content": {
|
||||||
|
"type": "text",
|
||||||
|
"value": {
|
||||||
|
"showText": "你好,理工一怎么走到西门"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"source": "LiXmltQoTrb8pryis0cm7RZpUTeUYmcM",
|
||||||
|
"from": "openapi",
|
||||||
|
"openId": "001"
|
||||||
|
})
|
||||||
|
|
||||||
|
headers = {
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
}
|
||||||
|
response = requests.post(url, headers=headers, data=payload)
|
||||||
|
print(response)
|
||||||
|
|
||||||
|
if response.status_code == 200:
|
||||||
|
api_response = response.json()
|
||||||
|
if api_response.get("status") == 0:
|
||||||
|
# 获取内容
|
||||||
|
content_list = api_response["data"].get("content", [])
|
||||||
|
for content in content_list:
|
||||||
|
if content["dataType"] == "txt":
|
||||||
|
print("返回的文本内容:")
|
||||||
|
print(content["data"])
|
||||||
|
else:
|
||||||
|
print(f"API 返回失败: {api_response.get('message')}")
|
||||||
|
else:
|
||||||
|
print(f"API 调用失败,状态码: {response.status_code}, 响应: {response.text}")
|
||||||
|
|
||||||
|
|
||||||
|
# client = ZhipuAI(api_key="73bdeed728677bc80efc6956478a2315.VerNWJMCwN9L5gTi") # 请填写您自己的APIKey
|
||||||
|
# response = client.chat.completions.create(
|
||||||
|
# model="glm-4", # 请填写您要调用的模型名称
|
||||||
|
# messages=[
|
||||||
|
# {"role": "user", "content": "你好"},
|
||||||
|
# ],
|
||||||
|
# )
|
||||||
|
# print(response.choices[0].message)
|
||||||
|
app = flask.Flask(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/chat", methods=['POST'])
|
||||||
|
def app_chat():
|
||||||
|
data = json.loads(flask.globals.request.get_data())
|
||||||
|
uid = data["user_id"]
|
||||||
|
|
||||||
|
# 检查输入是否以指定符号结尾,否则补充句号
|
||||||
|
if not data["text"][-1] in ['?', '?', '.', '。', ',', ',', '!', '!']:
|
||||||
|
data["text"] += "。"
|
||||||
|
|
||||||
|
# 构造 API 请求参数
|
||||||
|
url = "https://agentapi.baidu.com/assistant/getAnswer?appId=LiXmltQoTrb8pryis0cm7RZpUTeUYmcM&secretKey=BShZAmOJXdSLo1yizqFtpQ2DDBiLUcPM"
|
||||||
|
payload = json.dumps({
|
||||||
|
"message": {
|
||||||
|
"content": {
|
||||||
|
"type": "text",
|
||||||
|
"value": {
|
||||||
|
"showText": data["text"] # 使用用户输入的内容替换固定文本
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"source": "LiXmltQoTrb8pryis0cm7RZpUTeUYmcM",
|
||||||
|
"from": "openapi",
|
||||||
|
"openId": uid # 使用用户ID
|
||||||
|
})
|
||||||
|
headers = {
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
}
|
||||||
|
|
||||||
|
# 发起 POST 请求
|
||||||
|
response = requests.post(url, headers=headers, data=payload)
|
||||||
|
|
||||||
|
if response.status_code == 200:
|
||||||
|
api_response = response.json()
|
||||||
|
if api_response.get("status") == 0:
|
||||||
|
# 提取 API 返回的内容
|
||||||
|
content_list = api_response["data"].get("content", [])
|
||||||
|
for content in content_list:
|
||||||
|
if content["dataType"] == "txt":
|
||||||
|
return json.dumps({
|
||||||
|
"user_id": uid,
|
||||||
|
"text": content["data"],
|
||||||
|
"error": False,
|
||||||
|
"error_msg": ""
|
||||||
|
})
|
||||||
|
return json.dumps({
|
||||||
|
"user_id": uid,
|
||||||
|
"text": "",
|
||||||
|
"error": True,
|
||||||
|
"error_msg": "未找到文本内容"
|
||||||
|
})
|
||||||
|
else:
|
||||||
|
return json.dumps({
|
||||||
|
"user_id": uid,
|
||||||
|
"text": "",
|
||||||
|
"error": True,
|
||||||
|
"error_msg": f"API 返回错误: {api_response.get('message')}"
|
||||||
|
})
|
||||||
|
else:
|
||||||
|
return json.dumps({
|
||||||
|
"user_id": uid,
|
||||||
|
"text": "",
|
||||||
|
"error": True,
|
||||||
|
"error_msg": f"API 调用失败,状态码: {response.status_code}, 响应: {response.text}"
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
app.run(host="0.0.0.0", port=11111)
|
||||||
|
# test()
|
Loading…
Reference in New Issue