AI 大模型之美
徐文浩
bothub 创始人
32335 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 33 讲
AI 大模型之美
15
15
1.0x
00:00/00:00
登录|注册

03|巧用提示语,说说话就能做个聊天机器人

A: 回答
Q: 问题
temperature
stop
n
max_tokens
prompt
engine
输出回复内容
调用Completion接口
定义回复函数
设置API密钥
安装和尝试
通用人工智能的一步
根据提示语完成任务
举一反三能力
少样本学习
输出情感判断
提供正负面例子
判断评论情感
上下文传递
命令行交互
food_chatbot
食谱问答
问答格式
上下文理解
多样性参数(temperature)
订单信息回复
称呼“亲”
朋友口吻
参数解释
示例代码
自动文案生成
生成式语言模型
传统模版回答
提示语资源库
GPT提示语重要性
在数据集上测试情感分析准确率
使用Few-Shots Learning
Completion接口的能力
Few-Shots Learning
示例代码
无需机器学习知识
示例代码
多轮对话
语言风格
OpenAI Completion API
智能客服产品
推荐尝试
课后练习
小结
情感分析
AI 聊天机器人
AI 客服
OpenAI Completion API 使用指南

该思维导图由 AI 生成,仅供参考

你好,我是徐文浩。
这一讲,我们来看看 Open AI 提供的 Completion 这个 API 接口。相信已经有不少人试过和 ChatGPT 聊天了,也有过非常惊艳的体验,特别是让 ChatGPT 帮我们写各种材料。那么,我们不妨也从这样一个需求开始吧。
这一讲里,我们没有选用目前常用的 gpt-3.5-turbo 或者 gpt-4 相关的模型,而是使用了 text-davinci-003 这个不是为了对话使用的模型。之所以这么做,是为了让你理解,其实基于大语言模型的聊天机器人,并没有什么秘密,也不过是通过简单的提示词进行“文本补全”的方式实现的。

AI 客服

在这一波 AIGC 浪潮之前,我也做过一个智能客服的产品。我发现智能客服的回答,往往是套用固定的模版。这个的缺点,就是每次的回答都一模一样。当然,我们可以设计多个模版轮换着表达相同的意思,但是最多也就是三四个模版,整体的体验还是相当呆板。
不过,有了 GPT 这样的生成式的语言模型,我们就可以让 AI 自动根据我们的需求去写文案了。只要把我们的需求提给 Open AI 提供的 Completion 接口,它就会自动为我们写出这样一段文字。
from openai import OpenAI
import os
client = OpenAI(api_key = os.environ.get("OPENAI_API_KEY"))
COMPLETION_MODEL = "text-davinci-003"
prompt = '请你用朋友的语气回复给到客户,并称他为“亲”,他的订单已经发货在路上了,预计在3天之内会送达,订单号2021AEDG,我们很抱歉因为天气的原因物流时间比原来长,感谢他选购我们的商品。'
def get_response(prompt, temperature = 1.0, stop=None):
completions = client.completions.create (
model=COMPLETION_MODEL,
prompt=prompt,
max_tokens=1024,
n=1,
stop=stop,
temperature=temperature,
)
message = completions.choices[0].text
return message
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了如何利用Open AI提供的Completion API接口,通过简单的提示语实现文本补全,从而创建一个聊天机器人。作者使用了text-davinci-003模型,展示了如何让AI根据需求自动生成文案,例如智能客服回复。文章强调了AI生成的内容可以根据提示语的不同而产生多样化的回复,同时指出了参数设置的灵活性,适用于不同场景的需求。此外,还介绍了如何利用AI语言模型创建聊天机器人,以及如何通过简单的提示语实现文本补全,从而满足不同场景下的需求。通过示例代码演示了如何调用Completion接口,设置参数以及调整输出结果的随机性。最后,文章提到了使用提示语的常见套路和Few-Shots Learning(少样本学习)的方法,以及对应的课后练习。总的来说,本文详实地介绍了利用AI技术完成各种任务的方法,适合对AI技术感兴趣的读者阅读。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《AI 大模型之美》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(36)

  • 最新
  • 精选
  • Devin
    置顶
    你好,「 AIPRM 的浏览器插件」点击后显示无权限访问

    编辑回复: 已更新链接,感谢反馈!

    2023-03-24归属地:日本
    2
    2
  • Oli张帆
    请教一下老师,我现在正在开发一个基于OpenAI接口的聊天机器人,但是我的主要目的是让他能够从我自己的知识库里面输出内容,和用户交互。目前我的做法是,每当用户发言时,我先判断这个用户的意图。如果用户的意图是和我的知识库相关的,我就会调用自己的接口来处理并回复,否则的话,就会直接使用OpenAI的回复。不知道这个做法是不是大致符合目前的最佳实践?还有别的更高效的做法吗?

    作者回复: 在第9-11讲我们会讲通过语义搜索做问答,通过llama-index作为索引 在14-17讲我们会进一步讲解通过Langchain进行更复杂的多场景的智能问答 基本的原理是通过Embedding向量做语义搜索,找到相关内容,再请OpenAI组织语言回答。 如果你的意图判断是通过Embedding的向量相似度做的,那就是类似的。如果是单独训练了意图判别的分类模型,那么可能未来不再需要那么复杂了。

    2023-03-26归属地:新加坡
    2
    20
  • peter
    请教老师两个问题: Q1:多轮问答中,提示语要加上前面的内容,但max_token是固定的,那本轮的内容岂不是越来越少?而且总的轮数也是很有限的。 Q2:chatGPT的编码功能,能根据需求开发出完整的安卓或iOS APP吗?从专栏中给出的例子看,好像只能完成特定需求的代码片段。

    作者回复: Q1:是的,第6讲会有一些简单解法。第16讲会有一些更复杂的解决方案 Q2:还是需要人的引导。目前支持的上下文长度还有限。不过GPT-4里,OpenAI已经有内部支持到32K长度的模型了,应该会接近可以完成一定规模的程序了。

    2023-03-24归属地:北京
    5
    16
  • 钦开
    可以介绍下实现一个openai实现chatgpt都做了什么事情吗?

    作者回复: 这个可以去看李沐老师的论文精度系列视频 https://www.bilibili.com/video/BV1AF411b7xQ/ https://www.bilibili.com/video/BV1hd4y187CR/

    2023-03-26归属地:广东
    15
  • 1043
    请问徐老师以后随着chatGPT的发展成为AGI,再让它写代码还要分编程语言吗?它能自主操作机器码、CPU指令及内存地址吗?这样是不是就可以淘汰现有的所有现有的高级编程语言了?

    作者回复: 之前畅想过这个问题。不过目前大模型还都是基于人类的训练数据,而这些数据还是以高级语言的代码为主,所以短期内不会有太多变化。

    2023-03-24归属地:黑龙江
    3
    9
  • 安菲尔德
    老师您好,请教一个问题,在机器人聊天的场景,要把上面的问题和回答作为下一次的prompt,这样token数是不是很容易超过4096呢?如果是的话,该怎么解决呢?

    作者回复: 是很容易超过,也有对应的解决方案,继续往后看,我都会介绍

    2023-03-24归属地:北京
    8
  • Oli张帆
    老师您好,还有一个问题,就是我看到您在例子中调用的这个模型是davinci, 如果换成turbo的话是不是也支持并且效果不差?毕竟成本只有十分之一。

    作者回复: gpt-3.5-turbo的效果也不差,但是有些场景下我自己的体感是不如text-davinci-003 我目前的体验是 1. gpt-4最好,但是的确贵且慢,比较适合拿来做复杂推理需求的,比如写代码,一次性正确性高 2. gpt-3.5-turbo 一般情况下聊天够用了 3. 有些情况 2 的受控性比较差,我需要输出内容严格按照我的要求的时候,会用 text-davinci-003

    2023-03-26归属地:新加坡
    3
    6
  • Viktor
    老师,采用对话的形式,会每次把上下文都带上,就会有大量的token,但是每次请求其实是有最大token限制的,如果聊天内容比较多,就会造成携带的内容超过最大token限制,这种情况可以怎么解决?

    作者回复: 在第6讲的时候,我们会看到只保留多轮对话,以及让AI做summarize的方式 在后面14-17讲解Langchain的时候,我们还会介绍更多更强大的让AI保持更多“记忆”的办法。

    2023-03-24归属地:四川
    7
    5
  • memora
    可以介绍下 prompt engineering 吗?是不是模型发展到一定程度就不需要 prompt engineering 了?

    作者回复: 在整个课程的过程里,对于一些情况效果不满意的时候,我们会改一些Prompt,不过因为课程的主题是应用开发,不会专门大幅度讲解Prompt Engineering。 可以去试试 AIPRM 这样的插件,看看别人的Prompt。未来我觉得在2-3年内还是需要的。

    2023-03-24归属地:广东
    2
    3
  • 代码五花肉
    老师,我有一个疑问,关于提示的。我们知道提示和回答加起来不能超过固定数量的token。但是这个大语言模型是没有记忆的,也就是说如果需要长篇大论讨论一个问题的话,需要把历史对话记录作为输入一起发送给API,那么对话才能接起来,也就是上下文不会断开。那么输入的token会随着讨论越来越长,最后超出长度。请问怎么解决这个问题么?

    作者回复: 可以看第6,第10/11,第14-17讲,有相关内容和解决方案 通常是外部存储,并且计算embedding,通过搜索找到上下文,再提交相关内容给API的方式。

    2023-03-28归属地:韩国
    3
    2
收起评论
显示
设置
留言
36
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部