Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

luo

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

luo

  • 0.2.7
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

Luo

是一款基于大模型的开发框架(面向产品经理),当前支持大模型提供商有: OpenAI、星火大模型。通过DSL能够快速创作并且测试大模型的效果。

安装

gem install luo

环境变量说明

OPENAI_ACCESS_TOKEN= # OpenAI的访问令牌
OPENAI_TEMPERATURE= # OpenAI的温度
OPENAI_LIMIT_HISTORY= # OpenAI的历史限制
AIUI_APP_KEY= # AIUI的AppKey
AIUI_APP_ID= # AIUI的AppId
XINGHUO_ACCESS_TOKEN= # 星火大模型的访问令牌

可以写在项目中的.env也可以放到系统环境变量中。

使用

Hello World

  1. mkdir demo
  2. cd demo
  3. luo init
  4. 修改 .env 的环境变量
  5. ruby application.rb

Messages 说明

# 创建一个 Messages 实例
messages = Luo::Messages.create

# 添加用户消息,包含文本内容和提示信息
messages.user(text: "Hello, world!", prompt: TTY::Prompt.new.ask("What's your name?"))

# 添加助手消息,来自文件
messages.assistant(file: 'welcome.md')

# 添加系统消息,包含文本内容和上下文信息
messages.system(text: "User logged in", context: { user_id: 123 })

# 将消息转换为数组并打印出来
puts messages.to_a.inspect

# 输出
[
  {:role=>"system", :content=>"User logged in"},
  {:role=>"user", :content=>"Hello, world!"},
  {:role=>"assistant", :content=>"Welcome to our app!\n"}
]

注意:星火大模型的消息类型只支持:user、assistant

History

Luo 内置了 MemoryHistory 用于处理用户历史对话记录

history = Luo::MemoryHistory.new
history.user("Hello, world!")
history.assistant("Welcome to our app!")
puts history.to_a.inspect

# 输出
[
  {:role=>"user", :content=>"Hello, world!"},
  {:role=>"assistant", :content=>"Welcome to our app!"}
]

# 可以在 Messages 使用
messages = Luo::Messages.create(history: history)

Helpers

Luo::Helpers 模块是一个包含了一些辅助方法的模块,可以在不同的上下文中重用这些方法。其中,包括了 print_mdload_test 两个方法。

print_md 方法用于将 Markdown 格式的文本转换为终端友好的格式,并打印出来。这个方法接受一个参数 text,表示需要转换和打印的 Markdown 格式的文本。使用 print_md 方法的示例代码如下:

text = "# Hello, world!\n\nThis is a **Markdown** text."
Luo::Helpers.print_md(text)

在上面的示例中,首先定义了一个 Markdown 格式的文本 text,然后使用 print_md 方法将其转换为终端友好的格式,并打印出来。

load_test 方法用于从 YAML 格式的文件中加载测试数据,并对每个测试数据执行指定的块。这个方法接受两个参数:path 和块 block。其中 path 表示 YAML 文件的路径,块 block 表示对每个测试数据要执行的操作。使用 load_test 方法的示例代码如下:

Luo::Helpers.load_test('tests.yml') do |test_data|
  # 对每个测试数据执行的操作
  puts test_data.inspect
end

在上面的示例中,我们使用 load_test 方法从 tests.yml 文件中加载测试数据,并使用块对每个测试数据进行操作。在这个示例中,我们只是简单地使用 puts 方法打印出每个测试数据的内容。实际使用中,块 block 可以根据需要执行更复杂的操作,例如执行测试用例、生成报告等。

补充资源

  1. 基于embedding的知识库对话机器人:https://github.com/ankane/neighbor#openai-embeddings
def fetch_embeddings(input)
  Luo::OpenAI.new.create_embeddings(input)
end

FAQs

Package last updated on 01 Jun 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc