-
Notifications
You must be signed in to change notification settings - Fork 59.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Zero, One and Few Shot Prompting #138
Comments
Prompt 列表是刚加的功能,后期会允许用户编辑单个对话的预设 prompt,和你说的功能应该是一致的,可以耐心等待。 |
学到了,Few-show 确实很有用 😌 |
赞,很有用的技巧 |
如果用户每次对话都单独预设system role感觉有些繁琐,看到chatgpt-vercel这个项目里面是直接加到系统设置里面的。应该也是一种可以参考的方式 |
这是可选的而不是强制的,如果不给对话设置 system、user、assistant 这些 in-context,那它就只是一个普通会话,不影响其原有属性。 |
另外多普及一点,in-context 中的 user、assistant prompt 和 system prompt 一样重要,要不然它们也没必要出现在 API 的示例中。OpenAI 的论文里有很多试验结果已经表明了 Few-shot 可以提升模型解决针对性问题的能力,一个 shot 其实就是 in-context 中的一个 user + assistant 的一问一答,给的例子越多它越准。 比如我上面给出的英语查单词小程序就是 1 shot,针对更复杂的应用场景你可以做 8 shot、25 shot。比较遗憾的是,目前我看到的所有套壳,都没有自定义 Few-shot 的功能,都是 0 shot,可能是觉得这样更方便使用?或者是大家不了解 Few-shot 这个概念,这无疑是把这条强大 API 的能力给绑起来了。我认为一个好的 AI 工具是给 AI 松绑而不是相反。 |
感谢提供信息,我会考虑在单个对话页加入更详细的 few shot 编辑界面,让用户提供更丰富的预设上下文信息。 |
realskyrin你的想法非常棒,经过你的启发,我是这么思考这一功能的。以函数的形式封装每一个功能,比如翻译,英文纠正。在用户选择初始化页面的时候,选择需要导入的function。类似我们coding时候的import。下面我给出几个例子,这些例子,我在3.5测试过,没有问题。如果是4的话效果更佳。
畅想,最后可以积木式调用,形成无限扩展。还可以形成指定领域的package,供别人使用。面向GPT编程, 哈哈哈。如果大家觉得这个想法不错,可以一起搞搞事情。 |
你这个思路很好,事实上很多基于 GPT 做的复杂应用也是这个路子(巨硬家的各种 Copilot),把需求进行无限拆解,拆到能被 GPT 稳定完成的一个个 function,因为 API 是可以并发去 call 的。所以在这些 function call 完之后把结果再组装回来,就能搞出很惊艳的效果。OpenAI 的这条 completion API 真的是有无限可能,值得好好学习。 |
@xiaodi007 langchain 正在做这个事情,官方的 chatgpt plugin 应该也是类似的思路。 |
目前已经增加 contextual prompt 自定义功能,可以自行指定前置对话列表,可以尝试一下,入口:
|
@Yidadaa 试了一下,设计的非常棒,基本上就是这个效果了,辛苦了☕️ 我用了 3 shot 让它实现 Grammarly 的功能。前面的 response 看起来还可,后面问了句重复的,它说它前面翻译过了😂,看起来它还是记忆了预设 context 之外的信息,这种进行过 Few-shot 的工具不需要任何除预设 context 之外的信息,可以给个 CheckBox 让用户勾选是否记住上下文,否则会影准确性。 Context prompt
|
66666,好用 |
在设置里把历史消息数量设置为 0 就行。 |
👍👍👍 可以了 |
但是现在的版本里面如果这么做的话,会不太方便。
第一个需求的实现的话,就可以满足重复使用记忆的能力了。(不然对话删除了就得重新再添加记忆) |
@zealotCE Json 模版导入导出这个功能确实刚需,便于小工具分享和导入,不过这是个新需求了,可以新开 issues 进行讨论 |
@zealotCE 这个建议,其实和 prompt store 的思路是相通的。我的想法是用 json 导入导出,包括自定义提示词、如果以后有在线导入都遵循这个规范:
{"messages": [
{"role": "system","content": "Role definition"},
{"role": "user","content": "Input"},
{"role": "assistant","content": "Output"}
]}
{"messages": [
{"role": "user","content": "prompt"},
]} 这样就打通了 我已经把 ChatGPT 集成到程序里,审核中文内容(能理解含义,其他AI无法做到)、做心理咨询,都是通过固定的 Json 格式输出,方便程序进一步处理。按这样 ChatGPT 能扩展出很多功能,不仅仅是聊天AI。 |
是的,确实是这样。 |
确实需要一个 Chat 级别的 CheckBox 开关来控制是否携带出预设之外的 Context。全局的那个设置为 0 之后,新建的其它普通 Chat 就没有上下文了 |
请问新的插件可否支持:
|
Can the new plugin support:
|
|
|
所有数据都保存在浏览器本地 local storage,目前你想要分享给别人用,可以用 storage explorer 浏览器插件导出成 json 文件,然后在另一个浏览器导入。 |
All data is stored in the local storage of the browser. If you want to share it with others, you can use the storage explorer browser plug-in to export it as a json file, and then import it in another browser. |
我按你代码中的例子,在新版本的功能里添加了 system promp和那个run的问题以及回答例子 但是后续问其他问题,还是会出现,多条例句的情况。 这是什么原因呢? |
According to the example in your code, I added the system prompt and the run question and answer example in the new version of the function However, when other questions are asked later, there will still be cases of multiple clauses. What is the reason? |
Dude, your api is out of money |
@yanyongqi911 哥们你API 没钱了啊 |
@yanyongqi911 buddy, your API is out of money |
[Tips] 如何使用用户输入模板 How to use Input Template #2144 |
[Tips] How to use User Input Template How to use Input Template #2144 |
麻烦可以给出相关的论文link吗 |
Could you please provide a link to the relevant paper? |
* Feat Speed Animation [Config Response] [+] chore(config.ts): update version number to 4.3 [+] feat(config.ts): add speed_animationValidator to validate speed_animation value [+] fix(config.ts): set default value of speed_animation to 30 * Feat Speed Animation [Local Languages] [+] feat(locales): add translations for SpeedAnimation in cn.ts, en.ts, and id.ts * Feat Speed Animation [Local Languages] [pt-br] [+] feat(pt.ts): add translation for SpeedAnimation feature * Feat UI/UX Settings Page [Speed Animation] [+] feat(settings.tsx): add speed animation setting with input range component * Feat ChatGPT LLMApi [Speed Animation] [+] fix(openai.ts): add support for speed_animation configuration from app settings [+] feat(settings.tsx): update speed_animation input range in app settings [+] fix(config.ts): change default value and range for speed_animation configuration * Feat UI/UX Settings Page [Speed Animation] [Increase Max Value] [+] fix(settings.tsx): change max value of speed_animation input to 200
Placement needs English translation Lataie Collins McCall Collins SUPREME Court chambers Laura M Jordan |
Few-show 可以简单的理解为在发送 prompt 时提前做一个 context mock,通过少量引导可以显著提升 AI 回复质量的技巧。
例如这个查单词小工具
我在 request message 中 mock 了 system prompt、user 发送的第一个 prompt 以及 assistant 的一个 response
那么我之后再发送任何单词,它都会很规范的返回结果 (返回单词的所有词性并造句),因为 context 里已经 mock 了它返回的第一个结果,它知道接下来该怎么回复,而无需向它解释过多的东西
如果直接给它发消息作为 prompt 也就是直接一条 user prompt,效果就会差很多,有时候每个词性给出多条例句,或者就只给一个词性的例句
这是 openai-cookbook 中关于 Few shot 的介绍:https://github.com/openai/openai-cookbook/blob/main/techniques_to_improve_reliability.md#few-shot-examples
除此之外,Few-shot 也有助于 AI 进行链式思维以提升结果的准确率,可以应用到很多场景。
我的想法是,可以给每个可以给每个 chat 单独设置 system、user、assistant 这些预设,简单一点的做法是给一个输入框,可以填入整个 request message 部分的 json :
请求的时候直接带上这个预设的 message。而且每次 request 仅带这个 message,不需要传入其它上下文,这样一来这个 chat 就变成一个相当稳定且节省 Token 的小工具了。
总之,这个项目非常很赞,只可惜自己不会前端所以以上想法没法直接提 PR,今天现在开始学前端 😂
支持一波
The text was updated successfully, but these errors were encountered: