1个不稳定版本

0.1.1 2023年8月9日
0.1.0 2023年8月9日

#624配置 中排名

Download history 21/week @ 2024-03-11 25/week @ 2024-03-18 47/week @ 2024-03-25 85/week @ 2024-04-01 24/week @ 2024-04-08 14/week @ 2024-04-15 23/week @ 2024-04-22 23/week @ 2024-04-29 24/week @ 2024-05-06 21/week @ 2024-05-13 27/week @ 2024-05-20 22/week @ 2024-05-27 18/week @ 2024-06-03 20/week @ 2024-06-10 31/week @ 2024-06-17 37/week @ 2024-06-24

每月107次 下载
用于 8 个Crate (6直接)

MPL-2.0 许可证

8KB
139

llmvm

GitHub

一种用于语言模型的协议和模块化应用程序套件。

包括一个代码助手,它可以自动从语言服务器协议服务器检索上下文,由LSP提供支持。

概述

llmvm由三种类型的可执行应用程序组成

  • 前端:使用语言模型的专用应用程序
  • 核心:在前后端之间充当中间人;管理与文本生成相关的状态,如
    • 模型预设
    • 提示模板
    • 消息线程
    • 项目/工作区
  • 后端:语言模型的包装器,处理原始文本生成请求

协议作为上述应用程序之间的粘合剂。使用multilinktower来实现。

可用的Crate

  • 前端
    • codeassist:一个由LLM支持的代码助手,可以从语言服务器协议服务器自动检索上下文(即类型定义)
    • chat:一个CLI聊天界面
  • 核心
  • 后端
    • outsource:将生成请求转发到已知的托管语言模型提供商,如OpenAI、Anthropic、Hugging Face和Ollama。
    • llmrs:使用llm crate来处理生成请求。支持的模型包括LLaMA、GPT-2、GPT-J等。

IPC细节

每个组件可以通过三种方法与依赖组件交互

  • 本地子进程:组件将依赖组件作为子进程调用,并通过stdio使用JSON-RPC进行通信
  • 远程HTTP服务:依赖组件充当HTTP API,而依赖组件配置为向API发送网络请求
  • 直接链接:核心和后端有可以直接使用的库crates。只有当依赖组件是Rust应用程序时才有效。

这允许一些灵活的托管配置。以下是一些示例

Hosting scenarios

优点

  • 用于状态管理的文本生成请求的单个协议
  • 前端或后端可以用任何语言实现,只需要有stdio和/或HTTP服务器/客户端即可。
  • 使用Handlebars进行提示模板,允许强大的提示生成
  • 在文件系统上保存消息线程、预设和提示模板,以便轻松编辑/调整
  • 工作区/项目管理,以将项目状态从全局状态隔离出来
  • 模块化设计;任何组件都可以通过CLI由用户调用以进行一次性低级或高级请求。

安装

需要cargo来安装二进制文件。使用rustup安装cargo。

通过运行以下命令安装核心

cargo install llmvm-core

安装“可用crates”下列出的所需前端和后端。查看它们的README以获取更多信息。

用法/配置

有关用法和配置的更多信息,请参阅每个相关组件的README。

模型ID

llmvm中的模型ID由三部分组成的字符串

<backend name>/<provider name>/<model name>

提供者名称必须以-chat-text后缀结尾

示例

  • outsource/openai-chat/gpt-3.5-turbo
  • outsource/anthropic-chat/claude-3-5-sonnet-20240620
  • llmrs/llmrs-text/mpt-7b-chat-q4_0-ggjt

默认情况下,核心将调用llmvm-<后端名称>过程以进行本地进程通信。

预设/项目/线程/提示模板

有关更多信息,请参阅核心README

模型权重

请参阅相关后端README(例如llmrs)。

许可

Mozilla公共许可证,版本2.0

依赖项

~4–18MB
~188K SLoC