Motorhead 项目介绍
项目概述
Motorhead 是一个专为大型语言模型(LLMs)设计的内存与信息检索服务。它旨在帮助构建聊天应用的开发者有效管理对话内存。然而,需要注意的是,该项目已经停止支持,未来将不再提供维护。
Motorhead 的功能
在开发使用 LLMs 的聊天应用程序时,内存管理是一个必须应对的挑战。Motorhead 提供三种简单易用的接口来辅助进行这些操作:
-
GET
/sessions/:id/memory
:这个接口允许用户获取最多MAX_WINDOW_SIZE
条消息。这些消息可以用于回顾和分析用户会话的上下文。 -
POST
/sessions/:id/memory
:用户可以通过这个接口向 Motorhead 发送一组消息以保存。这可以同时用来创建新会话或在已有会话中扩展消息记录。 -
DELETE
/sessions/:id/memory
:该接口用于删除特定会话的消息列表,在需要重新初始化会话时非常有用。
Motorhead 在设置的最大窗口大小达到后,可以自动将对话的数据进行总结。这种总结是递增式的,有助于在会话增长的同时保持可管理尺度的上下文。
此外,Motorhead 还支持通过 POST /sessions/:id/retrieval
接口,利用 VSS 进行文本查询的搜索。搜索功能会自动根据提供的 session id 进行分段过滤。
配置选项
- MOTORHEAD_MAX_WINDOW_SIZE:服务器返回的最大消息数量,默认设置为 12。
- MOTORHEAD_LONG_TERM_MEMORY:是否启用使用 Redisearch VSS 的长期记忆,默认为 false。
- MOTORHEAD_MODEL:用于运行递增总结的模型,可以选择
gpt-3.5-turbo
或gpt-4
。 - PORT:Server运行的端口,默认为 8000。
- OPENAI_API_KEY:用于连接 OpenAI 的 API 密钥。
- REDIS_URL:连接 redis 的 URL。
- OPENAI_API_BASE:OpenAI API 的基础 URL,默认为 https://api.openai.com/v1。
Azure 部署
对于 Azure 部署,除了以上配置,还需要以下环境变量:
AZURE_DEPLOYMENT_ID
AZURE_DEPLOYMENT_ID_ADA
AZURE_API_BASE
AZURE_API_KEY
如何运行
Motorhead 可以通过 Docker-compose 运行:
docker-compose build && docker-compose up
或者,你可以直接使用 Docker 拉取镜像:
docker run --name motorhead -p 8080:8080 -e PORT=8080 -e REDIS_URL='redis://redis:6379' -d ghcr.io/getmetal/motorhead:latest
示例
Motorhead 提供了多种示例代码,以帮助开发者入门:
- JavaScript 和 Python 的聊天应用示例。
- 提供了不同的范例,比如普通的 JS 版本、托管的 JS 版本以及纯 Python 的版本。
尽管 Motorhead 项目已经被弃用,它仍然为开发者提供许多值得借鉴的设计思路和处理大规模语言模型对话内存的方案。