UNPKG

@zhangzichao2008/mcp-graphiti

Version:

Graphiti MCP Server - Temporal Knowledge Graph for AI Agents

60 lines 2.21 kB
import { config } from 'dotenv'; // Load environment variables config(); export function loadConfig() { // Database configuration const database = { uri: process.env.NEO4J_URI || 'bolt://localhost:7687', user: process.env.NEO4J_USER || 'neo4j', password: process.env.NEO4J_PASSWORD || 'neo4j_password', database: process.env.NEO4J_DATABASE, }; // LLM configuration (使用embedding配置,因为都需要OpenAI兼容API) const llm = { provider: 'openai', api_key: process.env.EMBEDDING_API_KEY || '', api_url: (process.env.EMBEDDING_API_URL || 'https://open.bigmodel.cn/api/paas/v4/embeddings').replace('/embeddings', ''), model: process.env.LLM_MODEL || 'glm-4-flash', }; // Embedding configuration (智谱AI) const embedding = { api_key: process.env.EMBEDDING_API_KEY || '', api_url: process.env.EMBEDDING_API_URL || 'https://open.bigmodel.cn/api/paas/v4/embeddings', model: process.env.EMBEDDING_MODEL || 'embedding-3', }; // Validate required configuration if (!embedding.api_key) { throw new Error('EMBEDDING_API_KEY must be provided'); } if (!embedding.api_key) { throw new Error('EMBEDDING_API_KEY must be provided'); } return { database, llm, embedding, embedding_dimension: parseInt(process.env.GRAPHITI_EMBEDDING_DIMENSION || '1536', 10), log_level: process.env.LOG_LEVEL || 'info', }; } export function validateConfig(config) { if (!config.database.uri) { throw new Error('Database URI is required'); } if (!config.database.user) { throw new Error('Database user is required'); } if (!config.database.password || config.database.password.trim() === '') { throw new Error('Database password is required'); } if (!config.llm.api_key) { throw new Error('LLM API key is required'); } if (!config.embedding.api_key) { throw new Error('Embedding API key is required'); } if (config.embedding_dimension <= 0) { throw new Error('Embedding dimension must be positive'); } } //# sourceMappingURL=config.js.map