#ai #llm #language-model #api-bindings #front-end

app llmvm-core

llmvm的核心应用程序

4个稳定版本

1.1.2 2024年6月24日
1.1.1 2024年6月23日
1.0.1 2024年1月23日
1.0.0 2023年8月9日

104文本处理

MPL-2.0 许可证

100KB
2K SLoC

llmvm-core

Crates.io GitHub

llmvm的核心应用程序,负责以下内容:

  • 向后端发送生成请求
  • 管理消息线程
  • 模型预设
  • 提示模板
  • 项目/工作空间

安装

使用 cargo 安装此应用程序。

cargo install llmvm-core

用法

核心可以直接调用,也可以通过使用核心的前端来调用。

要直接调用,请执行 llmvm-core -h 以获取详细信息。

Rust前端应使用 llmvm-protocol crate 中的 build_core_service_from_config 来创建stdio或HTTP客户端,以与核心通信。

可以使用 llmvm-core http-server 调用来创建远程客户端的HTTP服务器。

配置

运行核心可执行文件以在以下位置生成配置文件:

  • Linux: ~/.config/llmvm/core.toml.
  • macOS: ~/Library/Application Support/com.djandries.llmvm/core.toml
  • Windows: AppData\Roaming\djandries\llmvm\config\core.toml
必需? 描述
thread_ttl_secs 线程的最大生存时间(以秒为单位)。最后修改时间早于TTL的线程将被删除。
stdio_client 所有后端stdio客户端的配置。有关详细信息,请参阅 llmvm-protocol
http_backends.<后端名称> 远程后端的HTTP客户端配置。有关详细信息,请参阅 llmvm-protocol

项目/工作空间

可以通过运行 llmvm-core init-project 在指定的目录/工作空间中创建项目。当前目录中将创建一个 .llmvm 目录。

在新目录中,将为 presetspromptsthreadslogsconfigweights 创建一些子目录。

使用项目可以用于隔离特定工作区中的上述资源。在工作区内部调用所有llmvm命令时,都会读取/写入到.llmvm子目录。如果特定资源不存在,将使用每个资源类型的全局目录作为后备。

提示模板

Handlebars模板可以保存并用于生成提示。

提示模板保存在当前项目目录的prompts目录或全局用户数据目录中。文件名必须以.hbs结尾。

全局提示目录位于

  • Linux: ~/.local/share/llmvm/prompts
  • macOS: ~/Library/Application Support/com.djandries.llmvm/prompts
  • Windows: AppData\Roaming\djandries\llmvm\data\prompts

系统角色提示

可以使用system_role块辅助器定义系统角色提示。以下是一个示例

{{#system_role}}
Do a good job.
{{/system_role}}

块辅助器之外的内容将使用“用户”角色发送。

内置模板/模板示例

核心自带一些内置模板。请参阅此存储库中的提示目录,以查看所有内置模板。

线程

系统、用户和助手消息可以存储在线程中。如果前端在生成请求中将save_thread设置为true,则提示和模型响应将被保存到一个新线程或现有线程中。生成的线程ID将通过响应中的thread_id键提供。可以通过在请求中指定existing_thread_id来在生成请求中使用现有线程。

线程存储在当前项目目录的threads目录或全局用户数据目录中,作为JSON数组。

全局线程目录位于

  • Linux: ~/.local/share/llmvm/threads
  • macOS: ~/Library/Application Support/com.djandries.llmvm/threads
  • Windows: AppData\Roaming\djandries\llmvm\data\threads

如果线程最近没有更新,旧线程将被自动删除。如果最后修改的时间超过了线程TTL(默认为14天),则线程将被删除。

预设

预设包含核心生成请求的生成参数。预设可能包含提示模板ID、模型ID、模型参数、提示参数等。以下是预设的键值

描述
model 用于生成的模型ID。
prompt_template_id 保存的提示模板的ID。
custom_prompt_template 自定义提示模板的文本。
max_tokens 要生成的最大令牌数。
model_parameters 模型本身的参数表。
prompt_parameters 完成提示模板的参数表。

可以在生成请求中指定预设ID,并且在请求中可以明确覆盖预设设置。

模型预设保存在当前项目目录的presets目录或全局用户数据目录中。文件名必须以.toml结尾。

全局预设目录位于

  • Linux: ~/.local/share/llmvm/presets
  • macOS: ~/Library/Application Support/com.djandries.llmvm/presets
  • Windows: AppData\Roaming\djandries\llmvm\data\presets

内置预设/预设示例

核心自带一些内置预设。查看此仓库中的 预设目录,以查看所有内置预设。

日志记录

该库使用tracing库来处理日志。默认情况下,所有日志都写入stderr。如果提供了--log-to-file开关,则日志将被保存到当前项目目录的logs目录或全局用户数据目录。

全局日志目录位于

  • Linux: ~/.local/share/llmvm/logs
  • macOS: ~/Library/Application Support/com.djandries.llmvm/logs
  • Windows: AppData\Roaming\djandries\llmvm\data\logs

许可证

Mozilla Public License,版本2.0

依赖项

~26–38MB
~682K SLoC