返回市场
postgresql内存

postgresql内存

作者:dariogriffo13 星标更新:2025-05-01

项目介绍

PostgMem

一个基于Model Context Protocol (MCP)的服务器实现,使用PostgreSQL和pgvector为AI应用提供向量存储。

概述

PostgMem是一个基于.NET的服务,允许AI代理通过向量嵌入来存储、检索和搜索记忆。它利用了带有pgvector扩展的PostgreSQL,以提供高效的相似性搜索能力。

主要特性:

  • 使用向量嵌入存储结构化的记忆
  • 通过ID检索记忆
  • 使用向量相似性进行语义搜索
  • 使用标签过滤搜索结果
  • 集成MCP(模型上下文协议)以便于与AI代理一起使用

技术栈

  • .NET 9.0
  • 带有pgvector扩展的PostgreSQL
  • 模型上下文协议(MCP)
  • ASP.NET Core
  • 使用Npgsql连接PostgreSQL

先决条件

  • .NET 9.0 SDK
  • 安装了pgvector扩展的PostgreSQL数据库
  • 文本嵌入API(默认配置使用Ollama)

设置

数据库配置

  1. 为应用程序创建一个PostgreSQL数据库
  2. 在您的数据库中安装pgvector扩展:
    CREATE EXTENSION vector;
    
  3. 创建记忆表:
    CREATE TABLE memories (
        id UUID PRIMARY KEY,
        type TEXT NOT NULL,
        content JSONB NOT NULL,
        source TEXT NOT NULL,
        embedding VECTOR(384) NOT NULL,
        tags TEXT[] NOT NULL,
        confidence DOUBLE PRECISION NOT NULL,
        created_at TIMESTAMP WITH TIME ZONE NOT NULL,
        updated_at TIMESTAMP WITH TIME ZONE NOT NULL
    );
    

环境配置

.env文件中配置应用程序设置:

ConnectionStrings__Storage=Host=localhost;Database=mcp_memory;Username=
postgres;Password=postgres
Embeddings__ApiUrl=http://localhost:11434/
Embeddings__Model=all-minilm:33m-l12-v2-fp16
  • ConnectionStrings__Storage:PostgreSQL连接字符串
  • Embeddings__ApiUrl:嵌入API的URL(默认为Ollama)
  • Embeddings__Model:要使用的嵌入模型

运行应用程序

  1. 导航到PostgMem目录
  2. 运行应用程序:
    dotnet run
    
  3. 默认情况下,MCP服务器将在http://localhost:5000可用

MCP工具

以下MCP工具可用:

存储

在数据库中存储新的记忆。

参数:

  • type(字符串):记忆类型(例如,'对话','文档'等)
  • content(字符串):作为JSON对象的记忆内容
  • source(字符串):记忆来源(例如,'用户','系统'等)
  • tags(字符串数组):可选标签,用于分类记忆
  • confidence(双精度浮点数):记忆的信心得分(0.0到1.0)

搜索

搜索与提供的文本相似的记忆。

参数:

  • query(字符串):要搜索相似记忆的文本
  • limit(整数):返回的最大结果数量(默认:10)
  • minSimilarity(双精度浮点数):最小相似度阈值(0.0到1.0)(默认:0.7)
  • filterTags(字符串数组):可选标签,用于过滤记忆

获取

通过ID检索特定的记忆。

参数:

  • id(Guid):要检索的记忆ID

删除

通过ID删除记忆。

参数:

  • id(Guid):要删除的记忆ID

实现细节

  • Memory.cs:定义记忆的数据模型
  • Storage.cs:处理存储和检索记忆的数据库操作
  • EmbeddingService.cs:生成文本的向量嵌入
  • MemoryTools.cs:实现与记忆存储交互的MCP工具

许可证

[在此处添加许可证信息]

贡献

[在此处添加贡献指南]