GLM4如何使用页面构成智能体我在GLM4智能体创建实践-CSDN博客这篇文字中已经说明,但是有许多场景是需要使用API来构建线上智能体的,而智普在官方文档中并未有如何利用线上API构建智能体的完整流程。
这里我以个人的实践来教大家如何使用智普的GLM4 API构建API智能体。
先决条件
1.首先你已经申请了智普的GLM4 api(必须条件)
2.准备好你的知识库,经检查,效果最好的是xlsx,以及txt格式的数据
注意事项
账号的知识库有资源限制,每个账号总共只能使用50万字,既你能上传的文档总字数只有50万字。知识库的调用过程暂时没发现要钱
GLM4 api 构建智能体步骤
第一步
登录智谱的开发者后台,并进入知识库页面。
第二步
创建知识库
然后进入如下页面,输入好信息后点击保存
第三步
创建好知识库后就点击进入知识库,然后如图所示,点击“上传知识”
第四步
复制知识库ID
构建核心代码
创建完成知识库并获取了知识库ID后,我们就需要开始调用api 了,本人使用的是python,所以直接使用官方封装好的sdk了,还是很方便的。
api的使用的是Retrieval功能
以下是官方python sdk的实例代码
from zhipuai import ZhipuAI
client = ZhipuAI(api_key="") # 请填写您自己的APIKey
response = client.chat.completions.create(
model="glm-4", # 填写需要调用的模型名称
messages=[
{"role": "user", "content": "你好!你叫什么名字"},
],
tools=[
{
"type": "retrieval",
"retrieval": {
"knowledge_id": "your knowledge id", #填写复制好的知识库ID
"prompt_template": "从文档\n\"\"\"\n{{knowledge}}\n\"\"\"\n中找问题\n\"\"\"\n{{question}}\n\"\"\"\n的答案,找到答案就仅使用文档语句回答问题,找不到答案就用自身知识回答并且告诉用户该信息不是来自文档。\n不要复述问题,直接开始回答。"
}
}
],
stream=True,
)
for chunk in response:
print(chunk.choices[0].delta)
到此,只要你把自己的知识库ID以及API填入该段实例代码中,就完成了使用GLM4 API构建知识库应用的基础过程,后续就可以根据自身的业务情况编写自己的业务代码了。
如果是你使用http方式调用,那么调用方式及接口地址如下
原文地址
传输方式 | https |
请求地址 | https://open.bigmodel.cn/api/paas/v4/chat/completions |
调用方式 | 同步调用,等待模型执行完成并返回最终结果或 SSE 调用 |
字符编码 | UTF-8 |
接口请求格式 | JSON |
响应格式 | JSON 或标准 Stream Event |
接口请求类型 | POST |
开发语言 | 任意可发起 HTTP 请求的开发语言 |
其中关于retrieval的描述
retrieval | Object | 仅当工具类型为retrieval 时补充 | |
knowledge_id | String | 是 | 当涉及到知识库ID时,请前往开放平台的知识库模块进行创建或获取。 |
prompt_template | String | 否 | 请求模型时的知识库模板,默认模板: 从文档 """ {{ knowledge}} """ 中找问题 """ {{question}} """ 的答案,找到答案就仅使用文档语句回答问题,找不到答案就用自身知识回答并且告诉用户该信息不是来自文档。 不要复述问题,直接开始回答 注意:用户自定义模板时,知识库内容占位符 和用户侧问题占位符必是{{ knowledge}} 和{{question}},其他模板内容用户可根据实际场景定义 |
代码说明
调用知识库的提示词模板不管怎么变,获取知识库的字段一定是{{knowledge}}
获取问题的字段一定是{{question}},官方说明中给出的是默认提示词模板,基本上已经满足大部分的应用场景,大家可以根据自己的实际使用场景来修改提示词。