06|ChatGPT来了,让我们快速做个AI应用
该思维导图由 AI 生成,仅供参考
ChatGPT 来了,更快的速度更低的价格
- 深入了解
- 翻译
- 解释
- 总结
ChatGPT是一个新的聊天机器人接口,利用OpenAI提供的ChatCompletion接口和gpt-3.5-turbo模型,用户可以更快速、更便宜地实现对话聊天功能。本文介绍了如何使用HuggingFace平台下载最新的开源模型,并提供了示例代码。通过传入role和content两个字段,用户可以指定系统、用户和AI的角色,并构建对话的上下文。作者还封装了一个Conversation类,用于向ChatGPT发起请求并保留对话历史。通过示例代码演示了如何使用Conversation类与ChatGPT进行交互,实现了一个有界面的聊天机器人。此外,文章还介绍了ChatGPT的对话模型的使用方法和技术特点,以及如何快速搭建AI应用。同时,还提到了在使用ChatGPT时需要注意的成本计算和如何通过API或Tiktoken库计算Token数量。最后,文章展示了如何使用Gradio库快速搭建一个聊天界面,使得用户可以方便地与ChatGPT进行交互。 文章还介绍了如何将机器人部署到HuggingFace平台上,以便他人也能够使用。通过注册HuggingFace账号,创建项目空间,并提交代码部署App的方式,用户可以将ChatGPT应用分享给他人。在部署过程中,还介绍了如何设置OpenAI的API Key环境变量以及重新加载应用,确保聊天机器人可以正常工作。 总的来说,本文通过介绍ChatGPT的接口使用、技术特点、部署到HuggingFace平台以及相关注意事项,为读者提供了全面的了解和操作指南。同时,通过示例代码和实际操作步骤,使读者能够快速上手并应用于实际项目中。
《AI 大模型之美》,新⼈⾸单¥68
全部留言(44)
- 最新
- 精选
- Geek_19eca2置顶最新代码: import os from openai import OpenAI client = OpenAI() class Conversation: 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 = client.chat.completions.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 self.messages.append({"role": "assistant", "content": message}) if len(self.messages) > self.num_of_round*2 + 1: del self.messages[1:3] # Remove the first round conversation left. return message 不然跑不过去。。openai改了。。。2024-01-23归属地:浙江2
- 我自己带盐可以认模型总结一下,全部的对话,再发过去
作者回复: 👍
2023-03-29归属地:广东228 - 黄琨问题1: 为了防止超标,可能需要在对话开始前设置一个允许最大的token阈值,比如 MAX_TOKEN_LIMIT = 2000,再设置一个小于某个数量就需要提醒的警告值,比如 MIN_TOKEN_LIMIT = 200,对话前初始化一个最大值,对话过程中减去每轮所消耗的token数量,当结果少于最小值的时候,再调用删减对话数组的代码。 问题2: 限制文本长度。或许可以把对话中的大段文本缩减为精简摘要,以减少token数量,比如把“鱼香肉丝的做法是......”这种精简后的文本带入到上下文中去。别的暂时想不到 =_=!
作者回复: 👍
2023-03-29归属地:北京14 - LiuHu用向量数据库把历史回话保存到本地,新的问题先转向量,从向量库中搜出相关内容,再把搜出的内容作为上下文+新问题一起带过去
作者回复: 对话场景用这个方式其实不太合适。专门的确定的资料库这样做可以。
2023-03-30归属地:江苏28 - 浩仔是程序员目前chatGPT的上下文功能也是这么实现的吗?每次都要发之前的问题和答案,感觉很蠢
作者回复: 是的,这是由现在的GPT类型模型的原理决定的。
2023-04-01归属地:广东26 - 胡萝卜输入文本超长时需要不能直接截断,不然可能不听指令直接续写。截断后把最后一个句子去掉,并以句号结尾防止出现奇怪的回复。
作者回复: 👍 这个技巧也是很有用的。
2023-03-29归属地:上海5 - Allan老师可以把每节课的项目都放到一个工程里面吗?然后我们可以下载这样是不是方便一些。
作者回复: 所有代码都以Jupyter Notebook的文件格式放在 https://github.com/xuwenhao/geektime-ai-course 里 导读那一讲里放了对应的链接。
2023-04-07归属地:北京2 - new one出现SSL握手失败的问题,请教一下应该怎么解决,问了chatgpt,使用了: import ssl context = ssl.create_default_context() context.load_verify_locations("D:\Anaconda\Library\ssl\cert.pem") 并没有得到解决 具体报错如下: Error communicating with OpenAI: HTTPSConnectionPool(host='api.openai.com', port=443): Max retries exceeded with url: /v1/chat/completions (Caused by SSLError(SSLError(1, '[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:1129)'))) Assistant : Error communicating with OpenAI: HTTPSConnectionPool(host='api.openai.com', port=443): Max retries exceeded with url: /v1/chat/completions (Caused by SSLError(SSLError(1, '[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:1129)')))
作者回复: 感觉还是SSL握手失败,先在Colab上看看能不能跑通?再看看简单HTTPS请求别的网站是否正常来定位问题?
2023-04-03归属地:江苏1 - 川月del self.messages[1:3] //Remove the first round conversation left. ^ SyntaxError: cannot delete operator 为什么这个报错啊
作者回复: 正好你可以试着把问题扔给ChatGPT看看它会怎么解答?
2023-03-31归属地:四川61 - Bonnenult丶凉煜安装gradio需要使用这个命令conda install -c conda-forge gradio
作者回复: 👍
2023-03-30归属地:中国台湾1