搭建简单的chatbot并部署到HuggingFace上

代码示例展示了如何利用OpenAI的ChatGPT接口实现聊天任务,维护对话历史并限制记忆轮数以节省tokens。此外,文章提到了Tiktoken库用于计算tokens数量,并介绍了Gradio库创建交互式聊天机器人UI。最后,文章简述了将应用部署到HuggingFaceSpace的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

调用ChatGPT接口完成聊天任务

下面的代码调用ChatGPT的ChatCompletion接口实现聊天任务,生成的结果如下图打印的信息所示。而且,在封装Conversation class中,message一直使用append进行追加,即每次调用ChatCompletion接口时都传入了聊天的上下文信息,这里为了节省tokens的消耗,设置了只记住最近的三轮问题。所以在问第一个问题“what is first question I asked?”,chatgpt能准确回答出第一个问的问题。

import openai
import os
from dotenv import load_dotenv

load_dotenv()
openai.api_key = os.environ.get("OPENAI_API_KEY")

class Conversation2:
    def __init__(self, prompt, num_of_round):
        self.prompt = prompt
        self.num_of_round = num_of_round
        self.messages = []
        self.messages.append({"role": "system", "content": self.prompt})

    def ask(self, question):
        try:
            self.messages.append({"role": "user", "content": question})
            response = openai.ChatCompletion.create(
                model="gpt-3.5-turbo",
                messages=self.messages,
                temperature=0.5,
                max_tokens=2048,
                top_p=1,
            )
        except Exception as e:
            print(e)
            return e

        message = response["choices"][0]["message"]["content"]
        num_of_tokens = response['usage']['total_tokens']
        self.messages.append({"role": "assistant", "content": message})

        if len(self.messages) > self.num_of_round*2 + 1:
            del self.messages[1:3]
        return message, num_of_tokens

prompt = """you are a ai assistor"""
conv2 = Convers
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

taoli-qiao

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

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

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

打赏作者

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

抵扣说明:

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

余额充值