解锁ChatGPT的潜能:API调用中运用聊天记录

这篇具有很好参考价值的文章主要介绍了解锁ChatGPT的潜能:API调用中运用聊天记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

视频讲解

在过去我通过chatgpt调用api时只知道进行孤立的调用,即这一次调用时,chatgpt并没有拿到上一次调用的上下文,这无疑损失很大。通过探索,我知道了如何通过修改messages这个字典类型的list来告知chatgpt我和它的聊天历史。

关键代码如下

def generate_chat_completion(question):

    data = {
        'model': 'gpt-3.5-turbo',
        'messages': [
            {"role": "system", "content": "You are a helpful calendar assistant"},
            {"role": "user", "content": "六月的下一个月有多少天?"},
            {"role": "assistant", "content": "七月有31天。"},
            {"role": "user", "content": "八月有多少天?"},
            {"role": "assistant", "content": "八月也有31天。"},
            {"role": "user", "content": "二月有多少天?"},
            {"role": "assistant", "content": "这要分平年和闰年"},
            {"role": "user", "content": "按照先后顺序,重复一下我原先问你的所有问题和你给我的相应回答。"}
        ]
    }

    headers = {
        'Authorization': f"Bearer {KEY}",
        'Content-Type': 'application/json'
    }

    response = requests.post(
        f'{PROXY_URL}/v1/chat/completions', data=json.dumps(data), headers=headers)

    if response.status_code == 200:
        response_json = response.json()
        choices = response_json.get('choices')
        if choices:
            result = response_json['choices'][0]['message']['content']
    else:
        print("chatgpt调用出现问题,状态码是:", response.status_code)
        answer = ""

    return answer, data["messages"]

让我们近距离观察一下传入请求中的data的message属性的值

{"role": "system", "content": "You are a helpful calendar assistant"},
{"role": "user", "content": "六月的下一个月有多少天?"},
{"role": "assistant", "content": "七月有31天。"},
{"role": "user", "content": "八月有多少天?"},
{"role": "assistant", "content": "八月也有31天。"},
{"role": "user", "content": "二月有多少天?"},
{"role": "assistant", "content": "这要分平年和闰年"},
{"role": "user", "content": "按照先后顺序,重复一下我原先问你的所有问题和你给我的相应回答。"}

该值是一个list,一共包含1+6+1个字典,如果不加上历史记录,通常就只是一头一尾两个字典,而中间出现了3组user-assistant字典,就代表着之前的三轮对话。

我调用上述方法的代码如下

def main():
    # 输入问题和上下文
    question = "按照先后顺序,重复一下我原先问你的所有问题,再进行总结。"

    # 调用方法进行对话生成
    response, message_list = generate_chat_completion(
        question)

    # 打印生成的回答
    current_folder = os.getcwd()
    write_file = os.path.join(
        current_folder, "codex_api", "chatgpt_answer7.txt")
    os.makedirs(os.path.dirname(write_file), exist_ok=True)
    with open(write_file, "w", encoding="utf-8") as f:
        for message in message_list:
            f.write(message["role"]+"\n"+message["content"])
            f.write("\n")
            f.write("\n"+'-'*100+"\n")
        f.write(response)

保存下来的文件内容如下

当然,让我来回顾一下之前的问题和回答:

1. 六月的下一个月有多少天?
   回答:七月有31天。

2. 八月有多少天?
   回答:八月也有31天。

3. 二月有多少天?
   回答:二月的天数取决于是平年还是闰年。在平年中,二月有28天;而在闰年中,二月有29天。

请问还有其他问题需要我回答吗文章来源地址https://www.toymoban.com/news/detail-609097.html

到了这里,关于解锁ChatGPT的潜能:API调用中运用聊天记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ChatGPT-4回答电子电路相关问题,感觉它有思想,有灵魂,一起看看聊天记录

    前几天发了一篇文章,讲了我们平常摸电脑或者其它电器设备的时候,会有酥酥麻麻的感觉,这个并不是静电, 而是Y电容通过金属壳泄放高频扰动,我们手摸金属壳的时候,就给Y电容提供了一个泄放回路,所以才会有酥麻感。 摸电脑会有酥麻触电的感觉,分析其电路原理

    2023年04月22日
    浏览(69)
  • Chat聊天记录聊天记录导出

    ChatGPT大家应该都玩过吧,今天我给大家提供一个将聊天记录导出的教学。 第一步:将聊天的页面保存到本地 打开聊天记录界面,调出控制台(F12或Fn+F12) 点击查看器选项卡 右键html标记,选择编辑为html(如下图) 全选复制到一个文本文件里 第二步:使用脚本导出 脚本源码

    2023年04月09日
    浏览(51)
  • 聊天——拉去历史记录,保持聊天页面静止

    内容全文高 - 上一次滚动距离 - 本身内容高就是当前位置

    2023年04月09日
    浏览(81)
  • 删掉微信聊天记录怎么恢复 ?怎么恢复微信聊天记录?

    这个问题没有确定的答案,因为恢复取决于许多因素,包括删除聊天记录的时间以及使用的设备类型。但是,有几种方法可以成功恢复已删除的微信历史记录,例如使用数据恢复软件或联系客户支持。 如果你想将微信历史转移到另一台设备上,第二种方法非常有用。如果您需

    2024年02月01日
    浏览(51)
  • Java+Vue实现聊天室(WebSocket进阶-聊天记录)

    WebSocket 是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。 WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服

    2024年02月11日
    浏览(61)
  • Python uiautomation获取微信内容!聊天记录、聊天列表、全都可获取

    Python uiautomation 是一个用于自动化 GUI 测试和操作的库,它可以模拟用户操作来执行各种任务。 通过这个库,可以使用Python脚本模拟人工点击,人工操作界面。本文使用 Python uiautomation 进行微信电脑版的操作。 以下是本次实验的版本号。 你需要安装 uiautomation 示例代码 代码解

    2024年02月04日
    浏览(62)
  • SpringBoot与webSocket实现在线聊天室——实现私聊+群聊+聊天记录保存

    引用参考:原文章地址:https://blog.csdn.net/qq_41463655/article/details/92410518 在此基础上实现对聊天记录的保存。 代码地址:链接:https://pan.baidu.com/s/1IJFZDa4S_DF08773sKJWeA 提取码:jkui 思路:新建一个实体类用于保存聊天记录,在消息发送时,设置对象的各个值然后保存到数据库中。

    2024年02月02日
    浏览(51)
  • 微信聊天记录数据分析

    目录 一、项目背景 二、数据准备 三、数据预处理及描述性统计 四、数据分析 1.聊天小时、日、月分别汇总分布图 2.聊天时间序列分布图 3.高频词汇统计 4.词云图展示 五、其它探索性分析 2021年2月20日我和我女朋友第一次见面,之后开启了我们两个人的故事,时隔一年我想将

    2024年02月04日
    浏览(71)
  • 怎么恢复微信聊天记录

    微信是一款非常受欢迎的社交软件,它可以让我们轻松跟朋友聊天,分享照片和视频,也可以让我们随时随地了解最新的新闻和信息。然而,如果您丢失了微信聊天记录,你会发现无法恢复。在本文中,我们将介绍 怎么恢复微信聊天记录 。 第一种方法:通过微信自带的 聊天

    2024年02月08日
    浏览(66)
  • 微信聊天记录导出(华为手机版)

    关于微信记录导出的有比较多的方法, 在这里进行汇总下, 以下都是经过我亲测可行的, 不要去买一些付费的软件, 自己手动操作下就好啦 主要参考这两篇文章: 微信聊天记录导出为电脑txt文件教程 微信聊天记录导出(2020新版) 具体步骤: 1.先登录电脑版微信 2.备份与迁移, 选择备

    2024年02月09日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包