PostgMem 是一个基于模型上下文协议(MCP)的服务器实现方案,借助 PostgreSQL 和 pgvector 为 AI 应用提供向量内存存储功能,可助力 AI 代理高效管理记忆数据。
PostgMem 是一个基于 .NET 的服务,它允许 AI 代理存储、检索记忆,并能通过相似度搜索来访问记忆。该服务利用 PostgreSQL 和 pgvector 扩展,实现了高效的相似性搜索功能。
CREATE EXTENSION vector;
memories
表: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
:使用的嵌入模型。dotnet run
http://localhost:5000
默认可用。将新记忆存储在数据库中。 参数:
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 工具以与记忆存储交互。[在此处填写您的许可信息]
[在此处添加贡献指南,如果适用]
[在此处提供联系方式或支持信息]