MCPcopy Create free account
hub / github.com/Enfoirer/Text2GraphRAG / GenerationIntegrationModule

Class GenerationIntegrationModule

rag_modules/generation_integration.py:15–172  ·  view source on GitHub ↗

生成集成模块 - 负责答案生成

Source from the content-addressed store, hash-verified

13logger = logging.getLogger(__name__)
14
15class GenerationIntegrationModule:
16 """生成集成模块 - 负责答案生成"""
17
18 def __init__(self, model_name: str = "gpt-4o-mini", temperature: float = 0.1, max_tokens: int = 2048):
19 """
20 初始化生成集成模块
21 """
22 self.model_name = model_name
23 self.temperature = temperature
24 self.max_tokens = max_tokens
25
26 # 初始化OpenAI客户端
27 api_key = os.getenv("OPENAI_API_KEY")
28 if not api_key:
29 raise ValueError("请设置 OPENAI_API_KEY 环境变量")
30
31 self.client = OpenAI(
32 api_key=api_key
33 )
34
35 logger.info(f"生成模块初始化完成,模型: {model_name}")
36
37 def generate_adaptive_answer(self, question: str, documents: List[Document]) -> str:
38 """
39 智能统一答案生成
40 自动适应不同类型的查询,无需预先分类
41 """
42 # 构建上下文
43 context_parts = []
44
45 for doc in documents:
46 content = doc.page_content.strip()
47 if content:
48 # 添加检索层级信息(如果有的话)
49 level = doc.metadata.get('retrieval_level', '')
50 if level:
51 context_parts.append(f"[{level.upper()}] {content}")
52 else:
53 context_parts.append(content)
54
55 context = "\n\n".join(context_parts)
56
57 prompt = f"""
58 作为一位专业的眼科疾病助手,请基于以下信息回答用户的问题。
59
60 检索到的相关信息:
61 {context}
62
63 用户问题:{question}
64
65 请提供准确、循证的回答。根据问题的性质:
66 - 若询问疾病概述,请说明病因、症状、风险与预防
67 - 若询问治疗或用药,请描述主要方案、适用人群与注意事项
68 - 若询问护理建议,请结合生活方式与随访提示
69
70 回答:
71 """
72

Callers 1

initialize_systemMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected