知识管理系统

WisdomForge是一个强大的知识管理系统,利用Qdrant向量数据库高效存储和检索知识,支持多种知识类型,并可部署到Smithery.ai平台。

  • by hadv
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 hadv/wisdomforge

使用说明

WisdomForge 的

一个强大的知识管理系统,从经验、见解和最佳实践中锻造智慧。采用Qdrant矢量数据库构建,实现高效的知识存储和检索。

特性

  • 智能知识管理与检索
  • 支持多种知识类型(最佳实践、经验教训、见解、经验)
  • 通过环境变量进行可配置的数据库选择
  • 使用Qdrant的内置FastEmbed进行高效的嵌入生成
  • 领域知识的存储与检索
  • 可部署到Smithery.ai平台

先决条件

  • Node.js 20.x或更高版本(建议使用LTS)
  • npm 10.x或更高版本
  • Qdrant或Chroma矢量数据库

安装

  1. 克隆存储库:
git clone https://github.com/hadv/wisdomforge
cd wisdomforge
  1. 安装依赖项:
npm install
  1. 创建一个 .env 根目录中的文件基于 .env.example 模板:
cp .env.example .env
  1. 在中配置环境变量 .env 文件:

所需的环境变量

数据库配置

  • DATABASE_TYPE:选择您的矢量数据库(qdrant 或 chroma)
  • COLLECTION_NAME:矢量集合的名称
  • QDRANT_URL:Qdrant实例的URL(如果使用Qdrant,则需要)
  • QDRANT_API_KEY:Qdrant的API密钥(如果使用Qdrant,则需要)
  • CHROMA_URL:Chroma实例的URL(如果使用Chroma,则需要)

服务器配置

  • HTTP_SERVER:设置为 true 启用HTTP服务器模式
  • PORT:仅用于本地开发的端口号(默认值:3000)。未在Smithery云部署中使用。

示例 .env Qdrant的配置:

DATABASE_TYPE=qdrant
COLLECTION_NAME=wisdom_collection
QDRANT_URL=https://your-qdrant-instance.example.com:6333
QDRANT_API_KEY=your_api_key
HTTP_SERVER=true
PORT=3000  # Only needed for local development
  1. 构建项目:
npm run build

AI IDE集成

光标AI IDE

将此配置添加到您的 ~/.cursor/mcp.json 或 .cursor/mcp.json 文件:

{
  "mcpServers": { 
    "wisdomforge": {
      "command": "/bin/zsh",
      "args": [
        "/path/to/wisdomforge/run-wisdomforge-mcp.sh"
      ]
    }
  }
}

替换配置中的以下占位符:

  • YOUR_API_KEY:您的Smithery API密钥
  • YOUR_COLLECTION_NAME:您的Qdrant收藏名称
  • YOUR_QDRANT_URL:您的Qdrant实例URL
  • YOUR_QDRANT_API_KEY:您的Qdrant API密钥

注意:确保你已经安装了Node.js npx 在您的PATH中可用。如果您使用的是nvm,请通过运行以下命令确保您使用的Node.js版本正确 nvm use --lts 在启动Cursor之前。

克劳德桌面

在Claude的设置中添加此配置:

{
  "processes": {
    "knowledge_server": {
      "command": "/path/to/your/project/run-mcp.sh",
      "args": []
    }
  },
  "tools": [
    {
      "name": "store_knowledge",
      "description": "Store domain-specific knowledge in a vector database",
      "provider": "process",
      "process": "knowledge_server"
    },
    {
      "name": "retrieve_knowledge_context",
      "description": "Retrieve relevant domain knowledge from a vector database",
      "provider": "process",
      "process": "knowledge_server"
    }
  ]
}