跳转到内容
主菜单
主菜单
移至侧栏
隐藏
规范/协议
协议
算法
JVM
多线程/并发
存储
AI
深度学习
工具箱
最近更改
文章分类
全部文章
WHY42
搜索
搜索
外观
登录
个人工具
登录
欢迎来到Riguz的小站!这是一个私人wiki,用来记录一些我的笔记。
查看“︁Prompt IDE”︁的源代码
页面
讨论
大陆简体
阅读
查看源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
查看源代码
查看历史
常规
链入页面
相关更改
页面信息
外观
移至侧栏
隐藏
←
Prompt IDE
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
你是怎样调提示词的呢?这看起来是个再简单不过的问题,但对于开发者而言,一直缺乏一个趁手的工具。目前可以用的这些工具大致有以下的问题: * 可以同大模型聊天,但是不具备调参能力,例如ChatGPT、文心一言、[https://ai-chathub.ksord.com/ ChatHub]等 * 可以调参,但只支持特定的厂商,例如GPT Playground、Minimax体验中心等 * 可以调参,也支持不同的厂商,功能也很强大,唯一缺点是不是原生的,如[https://prompt-ide-test.ksord.com/ KPP] * 啥都可以干,但是要写代码,例如LangChain 于是为了解决这个问题,能够更愉快地测试提示词,笔者撸了一个Vs Code插件——Prompt IDE。目前,尽管缺胳膊少腿,Prompt IDE初具雏形。在这个有趣的过程中,学习到了Vs Code插件开发的一些技巧,也对Vs Code的强大有了更深的认知,在这里简单总结一下。 = 项目起源 = 这个想法最初源自于公司2023年7月份的黑客马拉松活动,当时,笔者Solo了一个叫做[https://ksogit.kingsoft.net/YES_CLUB_Hackathon/First-OpenAI/prompt-native ”Prompt Native“]的项目。什么是Prompt Native呢?有三层含义<ref>https://ksogit.kingsoft.net/YES_CLUB_Hackathon/First-OpenAI/prompt-native/-/blob/master/docs/showcase.docx</ref>: * Colud Native: 将大模型的能力做成云原生的FaaS * Native Editor: 原生的提示词开发编辑器,也就是今天的Prompt IDE * Native Tooling: 通过原生的大模型工具链来辅助我们开发 大致的设计是这样: # 通过一个Vs Code插件来开发提示词,提示词最终存储为一个文件,有这特定的格式。这就是Native Editor # 在开发提示词的过程中,可以通过大模型给出提示词调优的建议,类似与Js Lint,我们可以做一个Prompt Lint,不过当时经过测试发现效果并不好;还有比如自动生成人设,例如[https://huggingface.co/merve/chatgpt-prompt-generator-v12 chatgpt-prompt-generator-v12]通过一个预训练的BART模型自动生成提示词,也可以集成到插件中,做到自动补全。这是Native Tooling # 提供不同语言的FaaS模板和解析运行Prompt文件的库,将其部署到Kubernetes中为云函数。当时采用Knative Functions和Rust实现了一个简单的[https://ksogit.kingsoft.net/YES_CLUB_Hackathon/First-OpenAI/prompt-native/-/tree/master/examples/hello-world Hello World模板] 得益于GPT辅助编程,作为Rust菜鸟和第一次开发Vs Code插件的半吊子前端,肝几天就做出了一个PoC,看起来很简单。这是当时的Prompt IDE的最初版本: [[Image:Prompt IDE1.png|600px]] 想法其实也很简单:实现一个Side-by-side的提示词编辑功能,可以在界面上编辑运行,也可以直接改源码,这样就解决重口难调的问题,既方便又实用。 但是笔者当时犯了一个极大的错误,就是低估了这件事的难度。后来发现,要做到”可用“的程度,其实是非常困难的。 因此,接下来的时间断断续续在思考这件事,最终决定先放弃其他”Native",先把编辑器整清楚,从而产生了这个Prompt IDE。 = Prompt IDE的开发过程 = == 从提示词存储格式开始 == 在函数模板中,提示词跟其他代码是同等重要的位置,因为提示词的变化也就意味着功能的变化。 因此,提示词最终需要存储为一个文本文件,这样才能跟版本控制等其他工具有机结合起来,也便于分享和协作。 但是,提示词应该怎么表示呢? 一些工具将提示词简单表示为一个文本,其中可能包含动态的内容(变量): <syntaxhighlight lang="bash"> 请将下面这句话翻译为{{language}}: {{text}} </syntaxhighlight> 这看起来没有什么问题,在我们确定只用GPT的情况下。但是,如果我们需要使用不同的模型和参数呢?同样的提示词,在不同的模型和参数下,其运行结果是可能会有差别的。
返回
Prompt IDE
。
搜索
搜索
查看“︁Prompt IDE”︁的源代码
添加话题