Initial commit
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
"""
|
||||
基于图数据库的RAG系统配置文件
|
||||
"""
|
||||
|
||||
from dataclasses import dataclass
|
||||
from typing import Dict, Any
|
||||
|
||||
@dataclass
|
||||
class GraphRAGConfig:
|
||||
"""基于图数据库的RAG系统配置类"""
|
||||
|
||||
# Neo4j数据库配置
|
||||
neo4j_uri: str = "bolt://localhost:7687"
|
||||
neo4j_user: str = "neo4j"
|
||||
neo4j_password: str = "all-in-rag"
|
||||
neo4j_database: str = "neo4j"
|
||||
|
||||
# Milvus配置
|
||||
milvus_host: str = "localhost"
|
||||
milvus_port: int = 19530
|
||||
milvus_collection_name: str = "cooking_knowledge"
|
||||
milvus_dimension: int = 512 # BGE-small-zh-v1.5的向量维度
|
||||
|
||||
# 模型配置
|
||||
embedding_model: str = "BAAI/bge-small-zh-v1.5"
|
||||
llm_model: str = "kimi-k2-0711-preview"
|
||||
|
||||
# 检索配置(LightRAG Round-robin策略)
|
||||
top_k: int = 5
|
||||
|
||||
# 生成配置
|
||||
temperature: float = 0.1
|
||||
max_tokens: int = 2048
|
||||
|
||||
# 图数据处理配置
|
||||
chunk_size: int = 500
|
||||
chunk_overlap: int = 50
|
||||
max_graph_depth: int = 2 # 图遍历最大深度
|
||||
|
||||
def __post_init__(self):
|
||||
"""初始化后的处理"""
|
||||
# LightRAG使用Round-robin策略,无需权重验证
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, config_dict: Dict[str, Any]) -> 'GraphRAGConfig':
|
||||
"""从字典创建配置对象"""
|
||||
return cls(**config_dict)
|
||||
|
||||
def to_dict(self) -> Dict[str, Any]:
|
||||
"""转换为字典"""
|
||||
return {
|
||||
'neo4j_uri': self.neo4j_uri,
|
||||
'neo4j_user': self.neo4j_user,
|
||||
'neo4j_password': self.neo4j_password,
|
||||
'neo4j_database': self.neo4j_database,
|
||||
'milvus_host': self.milvus_host,
|
||||
'milvus_port': self.milvus_port,
|
||||
'milvus_collection_name': self.milvus_collection_name,
|
||||
'milvus_dimension': self.milvus_dimension,
|
||||
'embedding_model': self.embedding_model,
|
||||
'llm_model': self.llm_model,
|
||||
'top_k': self.top_k,
|
||||
|
||||
'temperature': self.temperature,
|
||||
'max_tokens': self.max_tokens,
|
||||
'chunk_size': self.chunk_size,
|
||||
'chunk_overlap': self.chunk_overlap,
|
||||
'max_graph_depth': self.max_graph_depth
|
||||
}
|
||||
|
||||
# 默认配置实例
|
||||
DEFAULT_CONFIG = GraphRAGConfig()
|
||||
Reference in New Issue
Block a user