Minima 是一个开源的本地化容器化的RAG系统,能够与ChatGPT和MCP集成。 Minima也可以作为一个完全本地化的RAG系统使用。
Minima目前支持三种模式:
隔离安装 – 完全在本地运行容器,无需依赖外部服务如ChatGPT或Claude。所有的神经网络(LLM、reranker、embedding)都在您的云或PC上运行,确保数据安全。
自定义GPT – 使用ChatGPT应用或网页查询您本地的文档,使用自定义GPT。索引器运行在您的云或本地PC上,而主要的LLM仍然是ChatGPT。
Anthropic Claude – 使用Anthropic Claude应用查询您本地的文档。索引器运行在您的本地PC上,而Anthropic Claude作为主要的LLM。
在项目的根目录下创建一个.env文件(您可以在那里找到env.sample)。将.env放在同一文件夹中,并从env.sample复制所有环境变量到.env。
确保您的.env文件包括以下变量:
对于完全本地安装,请使用:docker compose -f docker-compose-ollama.yml --env-file .env up --build。
对于启用ChatGPT的安装,请使用:docker compose -f docker-compose-chatgpt.yml --env-file .env up --build。
对于MCP集成(使用Anthropic桌面应用):docker compose -f docker-compose-mcp.yml --env-file .env up --build。
如果是启用ChatGPT的安装,从启动docker的终端复制OTP,并使用Minima GPT。
如果您使用Anthropic Claude,请在**/Library/Application\ Support/Claude/claude_desktop_config.json**中添加以下内容:
{
"mcpServers": {
"minima": {
"command": "uv",
"args": [
"--directory",
"/path_to_cloned_minima_project/mcp-server",
"run",
"minima"
]
}
}
}
要使用完全本地安装,请转到cd electron,然后运行npm install和npm start,这将启动Minima电子应用程序。
提问任何问题,您将基于{LOCAL_FILES_PATH}文件夹中的本地文件获得答案。
LOCAL_FILES_PATH: 指定索引的根文件夹(在您的云或本地PC上)。索引是一个递归过程,意味着此根文件夹下的所有子文件夹中的文档也将被索引。支持的文件类型:.pdf, .xls, .docx, .txt, .md, .csv。
EMBEDDING_MODEL_ID: 指定要使用的嵌入模型。目前仅支持Sentence Transformer模型。已测试过sentence-transformers/all-mpnet-base-v2,但可以使用其他Sentence Transformer模型。
EMBEDDING_SIZE: 定义模型提供的嵌入维度,这是配置Qdrant向量存储所需的。确保此值与指定的EMBEDDING_MODEL_ID的实际嵌入大小相匹配。
OLLAMA_MODEL: 设置Ollama模型,使用Ollama网站上的可用ID。请在这里使用LLM模型,而不是嵌入。
RERANKER_MODEL: 指定重新排序模型。我们已经测试了BAAI重新排序器。您可以使用此链接探索所有可用的重新排序器。
USER_ID: 这里只需使用您的电子邮件,这是为了验证自定义GPT以搜索您的数据。
PASSWORD: 放置任意密码,这用于为上述电子邮件创建firebase账户。
本地/本地使用示例的.env文件:
LOCAL_FILES_PATH=/Users/davidmayboroda/Downloads/PDFs/
EMBEDDING_MODEL_ID=sentence-transformers/all-mpnet-base-v2
EMBEDDING_SIZE=768
OLLAMA_MODEL=qwen2:0.5b # 必须是来自Ollama模型页面的LLM模型ID
RERANKER_MODEL=BAAI/bge-reranker-base # 请选择任何BAAI重新排序器模型
要使用聊天界面,请导航至http://localhost:3000
Claude应用示例的.env文件:
LOCAL_FILES_PATH=/Users/davidmayboroda/Downloads/PDFs/
EMBEDDING_MODEL_ID=sentence-transformers/all-mpnet-base-v2
EMBEDDING_SIZE= 768
对于Claude应用,请按照上述说明更改claude_desktop_config.json文件。
要使用GitHub Copilot的MCP:
在项目的根目录下创建一个.env文件(您可以在那里找到env.sample)。将.env放在同一文件夹中,并从env.sample复制所有环境变量到.env。
确保您的.env文件包括以下变量:
创建或更新.vscode/mcp.json,使用以下配置:
{
"servers": {
"minima": {
"type": "stdio",
"command": "path_to_cloned_minima_project/run_in_copilot.sh",
"args": [
"path_to_cloned_minima_project"
]
}
}
}
ChatGPT自定义GPT使用的示例.env文件:
LOCAL_FILES_PATH=/Users/davidmayboroda/Downloads/PDFs/
EMBEDDING_MODEL_ID=sentence-transformers/all-mpnet-base-v2
EMBEDDING_SIZE=768
USER_ID=user@gmail.com # 您的真实电子邮件
PASSWORD=password # 您可以在这里创建您想要的密码
此外,您还可以使用run.sh运行minima。
要通过Smithery自动安装Minima供Claude Desktop使用:
npx -y @smithery/cli install minima --client claude
对于MCP使用,请确保您的本地机器Python版本>=3.10且已安装'uv'。
Minima (https://github.com/dmayboroda/minima) 根据Mozilla Public License v2.0 (MPLv2) 授权。