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 在 文本处理
100KB
2K SLoC
llmvm-core
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
目录。
在新目录中,将为 presets
、prompts
、threads
、logs
、config
和 weights
创建一些子目录。
使用项目可以用于隔离特定工作区中的上述资源。在工作区内部调用所有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
许可证
依赖项
~26–38MB
~682K SLoC