智谱API使用

智谱API使用

image

如何注册和调用api网上都有对应的内容,直接一搜就可以,本文针对代码的书写提出建议

info

个人建议使用流式获取的方法,这个是类似gpt那种自然生成的效果的。

利用python使用zhipu ai,利用js得到内容

使用前记得 pip install zhipuai

如果想获得更多代码,比如实现对话文本框的效果可以关注私我

my_client = ZhipuAI(api_key='自己的api key')
def generate_stream(ai_response):
    try:
        for chunk in ai_response:
            # Simulating a delay for each message chunk
            # 这是必写的形式,不这么写你会得到出了答案的其他的内容
            yield f"{chunk.choices[0].delta.content}"
    except GeneratorExit:
        print("Client disconnected")


@utils.route('/api/ai-assistant', methods=['GET', 'POST'])
def ai_assistant():
    if request.method == 'GET':
        return jsonify({'success': True, 'message': 'AI assistant is running'})
    else:
        data = request.get_json()
        user_message = data.get('message')
        # 使用智谱AI的API进行消息处理
        ai_response = my_client.chat.completions.create(
            model="glm-4",
            messages=[
                # sys就是你想让你系统扮演什么角色,使用字符串,此时的内容是我自己设定好的,暂时不展示,反正想字符串多长都可以
                # user表示用户输入的内容,使用这个来表示从前端获得的信息
                {"role": "system", "content": waste_types_info_en},
                {"role": "user", "content": user_message}
            ],
            stream=True,  # 必有
        )
        return Response(generate_stream(ai_response), content_type='text/event-stream')  # 必须这个格式

async function getAIResponse(content) {
    const response = await fetch('/api/ai-assistant', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        },
        body: JSON.stringify({message: content}),
    });
    const reader = response.body.getReader();
    # createMessageBubble是自己写的创造文本框的方法
    let aiBubble = createMessageBubble('ai-message');
    let totalText = ''; // 用于累积读取的文本
    while (true) {
        const {done, value} = await reader.read();
        totalText += decoder.decode(value);
        # 下面这个marked.parse是把ai反馈的内容变成markdown格式,记得提前下好marked.js这个js插件。不使用这个也行,只不过样式丑了
        aiBubble.innerHTML = marked.parse(totalText);
        if (done) {
            break;
        }
    }
}

image

image

light

此时可以清楚的看到成功流式得到结果,并且使用marked.js的效果

### 如何获取 API 及其使用方法 #### 获取 API Key 的流程 为了使用 AI 提供的服务,首先需要完成账户注册并登录到官方平台。在成功注册之后,用户会获得初始赠予的 100 万 token 数量,并且通过实名认证可以额外再获赠 400 万 token[^2]。这些 token 是用于支付调用模型所产生的费用的基础资源。 #### 安装 Python SDK 并初始化客户端 要开始开发工作,在本地环境中安装 `zhipuai` 库是非常必要的一步操作。可以通过 pip 工具来快速实现库文件下载与配置: ```bash pip install zhipuai ``` 随后按照如下代码片段所示创建一个基于该库的应用实例对象,记得替换 `"your_api_key"` 部分为实际取得的有效密钥字符串: ```python from zhipuai import ZhipuAI client = ZhipuAI(api_key="your_api_key") # 替换 your_api_key 为您自己的APIKey ``` 此部分实现了对服务端接口请求通道建立的功能支持[^3]。 #### 调用对话模型示例 下面给出了一段简单的交互逻辑演示程序,它展示了如何向服务器发送消息以及接收返回的结果数据包处理过程: ```python while True: prompt = input("User:") response = client.chat.completions.create( model="glm-turbo", messages=[ {"role": "user", "content": prompt} ], ) answer = response.choices[0].message.content print(f"Assistant:{answer}") ``` 上述脚本定义了一个无限循环结构用来持续捕获标准输入流中的命令行参数作为提问内容提交给远程主机解析计算;最后将得到的回答显示出来结束当前回合交流活动。 ### 注意事项 - **Token 计费机制**:每次有效请求都会消耗一定数量 tokens,请合理规划预算范围内的查询次数。 - **超时设置调整**:如果遇到网络延迟较大情况可适当延长等待时限避免因响应缓慢而导致失败错误发生。 - **异常捕捉改进**:建议加入 try-except 结构增强健壮性防止意外崩溃退出现象出现。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值