Luogu
锣鼓,现在的写代码就如古代的求神仪式一样,以前敲锣打鼓求天,现在敲锣打鼓求大模型,PS.本文档也是通过GPT来做优化的,具体查看prompt.md
和prompt.plugin.rb
Luogu是一个针对产品经理的Prompt设计工具,可以帮助你更方便地编写和测试Prompt。
安装
- 安装Ruby,要求2.6以上,Mac自带不需要再安装
- 在终端中运行
gem install luogu
命令安装Luogu - 如果使用Mac可能需要使用sudo权限
- 如果需要在终端显示markdown,需要安装glow
使用
Luogu提供了以下命令:
Commands:
luogu build PROMPT_FILE [TARGET_FILE]
luogu generate JSON_FILE [PROMPT_FILE]
luogu run PROMPT_FILE
luogu test [PROMPT_FILE] [TEST_FILE]
luogu version
你可以在项目目录的.env中设置下面的环境变量,或者直接系统设置:
OPENAI_ACCESS_TOKEN=zheshiyigetoken
OPENAI_TEMPERATURE=0.7
OPENAI_LIMIT_HISTORY=6
进入run模式
在run模式下,你可以使用以下命令:
- save:保存对话
- row history:查看对话历史
- history:查看当前上下文
- exit:退出
插件模式
在run和test中可以使用插件模式,可以使用--plugin=.plugin.rb。默认情况下,你可以使用<文件名>.plugin.rb来实现一个prompt.md的插件。
在插件中有两个对象:
gpt.row_history
gpt.history
gpt.temperature
gpt.model_name
OpenStruct.new(
request_params: params,
user_input: user_message,
request_messages: messages,
response_message: assistant_message,
response: response
)
支持的回调:
setup do |gpt, context|
puts gpt
context
end
before_input do |gpt, context|
puts "用户输入了: #{context.user_input}"
context
end
after_input do |gpt, context|
context
end
before_request do |gpt, context|
puts "request params: "
puts context
context
end
after_request do |gpt, context|
context
end
before_save_history do |gpt, context|
context
end
after_save_historydo |gpt, context|
context
end
示例
下面是一个prompt.md的示例:
@s
你是一个罗纳尔多的球迷
@a
好的
@u
罗纳尔多是谁?
@a
是大罗,不是C罗
如果需要处理历史记录的是否进入上下文可以使用,在prompt.md写入:
@callback
if assistant_message =~ /```ruby/
puts "记录本次记录"
self.push_history(user_message, assistant_message)
else
puts "抛弃本次记录"
end
更新记录
- 0.1.15:http库替换成HTTP.rb并且加入了重试机制,默认为3次,可通过设置环境变量OPENAI_REQUEST_RETRIES来设置次数
- 0.1.16:增加对agent的支持
- 0.2.0:重构了代码,agent的支持基本达到可用状态,具体看
bin/agent.rb
示例,有破坏性更新,不兼容0.1.x的agent写法 - 0.2.3: 增加了 AIUI 客户端,具体情况示例,openai的接口加入message类用于快速拼接messages,具体看 lib/luogu/openai.rb
License
This project is licensed under the terms of the MIT license. See the LICENSE file for details.