怎么调用智谱的api生成个聊天机器人

为什么写这篇文章

之前写过一篇怎么调用文心一言api的文章了,一般来说,我不是很愿意做重复的工作,因为比较懒嘛,那为什么又写这篇文章呢?主要是文心一言申请api_key等还不是太方便,开通服务也把人绕的晕,而调用智谱就容易多了。

怎么获取Api key

首先访问智谱AI开放平台 (bigmodel.cn),进行注册或登录:

点击“开发工作台”:

点击“查看Api key”:

于是可看到我们的Api key了:

调用代码怎么写

调用代码如下:

版本1:

from zhipuai import ZhipuAI

def get_ai_response(prompt_text):
    client = ZhipuAI(api_key="")
# api_key换成自己的api_key即可

    response = client.chat.completions.create(
        model="glm-4",
        messages=[
            {
                "role": "user",
                "content": prompt_text
            }
        ],
        top_p=0.7,
        temperature=0.95,
        max_tokens=1024,
        stream=True,
    )

    # 打印用户的提问
    # print(prompt_text)

    # 在循环中逐次打印回复内容,并在每条回复后面添加换行符
    for chunk in response:
        for choice in chunk.choices:
            print(choice.delta.content, end="", flush=True)  # 移除换行符,使得内容连在一起
    print("\n")  # 在所有回复结束后添加一个换行符

def main():
    while True:
        prompt_text = input("请输入您的问题或输入'退出'结束对话:")
        if prompt_text.lower() == "退出":
            break
        get_ai_response(prompt_text)

if __name__ == "__main__":
    main()

版本2:

import tkinter as tk
from tkinter import scrolledtext, messagebox
from threading import Thread
from zhipuai import ZhipuAI


def get_ai_response_in_thread(prompt_text, text_widget):
    try:
        client = ZhipuAI(api_key="")

        response = client.chat.completions.create(
            model="glm-4",
            messages=[
                {
                    "role": "user",
                    "content": prompt_text
                }
            ],
            top_p=0.7,
            temperature=0.95,
            max_tokens=1024,
            stream=True,
        )

        # 在GUI中显示响应
        for chunk in response:
            for choice in chunk.choices:
                text_widget.insert(tk.END, choice.delta.content)
                text_widget.see(tk.END)  # 滚动到最后
                text_widget.update_idletasks()  # 强制更新GUI

    except Exception as e:
        messagebox.showerror("Error", str(e))


def on_submit():
    prompt_text = input_entry.get()
    if prompt_text.lower() == "退出":
        root.destroy()
    else:
        thread = Thread(target=get_ai_response_in_thread, args=(prompt_text, output_text))
        thread.start()


root = tk.Tk()
root.title("ZhipuAI Chatbot")

input_label = tk.Label(root, text="请输入您的问题或输入'退出'结束对话:")
input_label.pack(pady=10)

input_entry = tk.Entry(root, width=50)
input_entry.pack()

submit_button = tk.Button(root, text="提交", command=on_submit)
submit_button.pack(pady=10)

output_scroll = scrolledtext.ScrolledText(root, height=20, width=50)
output_text = output_scroll
output_scroll.pack(pady=10, expand=True, fill="both")

root.mainloop()

结果展示

因为本人账号欠费,暂时无法演示。

共勉环节

这次就到这了,下次再见,与大家共勉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七月初七淮水竹亭~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值