前段时间拿到了一个AI套件的试用,最近正好赶上智谱也有免费TOKEN的活动,就打算看看两者结合起来效果如何。 今天只是简单的一个流程上的POC,如果需要详细的教程欢迎大家持续关注。
安装SDK
pip install zhipuai
安装好SDK我们可以写一个方法,用于检测出我需要的实例,例如我输入:你能帮我查询2024年5月1日从无锡到漠河的火车票吗?
需要它返回类似下面的内容,方便我们其他的脚本进行执行:
{"date":"2024-01-01","departure":"无锡","destination":"漠河"}代码示例如下:
from zhipuai import ZhipuAI
client = ZhipuAI(api_key="API_KEY") # 请填写您自己的APIKey
response = client.chat.completions.create(
model="glm-4", # 填写需要调用的模型名称
messages = [
{
"role": "user",
"content": "你能帮我查询2024年5月1日从无锡到漠河的火车票吗?"
}
],
tools = [
{
"type": "function",
"function": {
"name": "query_train_info",
"description": "根据用户提供的信息,查询对应的车次",
"parameters": {
"type": "object",
"properties": {
"departure": {
"type": "string",
"description": "出发城市或车站",
},
"destination": {
"type": "string",
"description": "目的地城市或车站",
},
"date": {
"type": "string",
"description": "要查询的车次日期",
},
},
"required": ["departure", "destination", "date"],
},
}
}
],
tool_choice="auto",
)
print(response.choices[0].message)
为了能让聆思开发套件生成同样格式的请求,我需要创建一个聆思的应用

我们先简单的编排一下,测试一下环境

点击右上角的部署后,我们可以在首页拿到我们的测试连接

接下来我们创建一个Python脚本进行测试

可以看到,环境目前没有什么问题,剩下的就是如何将聆思和智谱合起来用了
我们稍微修改一下代码
class TangoAI:
def __init__(self):
self.ls_token = "聆思的Token"
self.ls_app_key = "聆思的APP ID"
self.zp_api_key = "智谱AI的key"
self.ls_url = f"https://service.listenai.com/{self.ls_app_key}/app-service/chat/completions"
self.client = ZhipuAI(api_key=self.zp_api_key )
def get_ls_response(self, content):
header = {
"Content-Type": "application/json",
"Authorization": f"Bearer {self.ls_token}"
}
data = {
"messages": [
{
"role": "user",
"content": content
}
]
}
req = requests.post(self.ls_url, headers=header, data=json.dumps(data))
req.encoding = "utf-8"
if req.status_code == 200:
return req.json()["messages"]
def get_zp_data(self, messages):
response = self.client.chat.completions.create(
model="glm-4", # 填写需要调用的模型名称
messages = messages,
tools = [
{
"type": "function",
"function": {
"name": "query_train_info",
"description": "根据用户提供的信息,查询对应的车次",
"parameters": {
"type": "object",
"properties": {
"departure": {
"type": "string",
"description": "出发城市或车站",
},
"destination": {
"type": "string",
"description": "目的地城市或车站",
},
"date": {
"type": "string",
"description": "要查询的车次日期",
},
},
"required": ["departure", "destination", "date"],
},
}
}
],
tool_choice="auto",
)
return response.choices[0].message
我们可以看到数据有被正确的获取出来。
如果是我们本地这么玩是没有什么问题的,但是我们希望能将它发布到网上,这样只要我们的开发套件联网,就能使用这一个功能,因此我们需要将上面的POC代码重新拆分一下。
我们通过Django将智谱的项目部署到腾讯云上,然后在聆思APP上,通过request的模块访问我们的API接口,从而完成需求
Django搭建的部分我这里暂时省略,需要的话后期出一个完整教程,本次的测评文章中就不再赘述了。

验证返回结果:

这样我们的项目就算是改造完成了,接下来就要将这个项目烧录到开发套件中。
这篇文章暂时和大家先介绍一下思路,下一篇文章我们一起实现一下。看看最终效果如何,敬请期待。
我是Tango,一个热爱分享技术的程序猿我们下期见。
---
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。