本项目 llmcase-v3 旨在通过最先进的 RAG(检索增强生成)与 Multi-Agent(多智能体)代理技术,对老旧的线性流水线进行彻底重构。
| 层次 | 选型 | 作用 |
|---|---|---|
| 应用编排 (Orchestration) | LangChain & LangGraph | 管理复杂的状态流转与· Agent 协作。 |
| 知识检索 (RAG) | FAISS / Milvus | 存储文档片段与历史用例,提供上下文。 |
| 可观测性 (Obs.) | LangSmith | 链路追踪、调试、数据集沉淀、Prompt 管理。 |
| 质量评估 (Eval) | Ragas & Legacy Scorer | 量化计算 Faithfulness 等指标,辅以规则校验。 |
| 模型引擎 (LLM) | doubao / qwen | 强逻辑推理,核心生成引擎。 |
基于 demos/ 目录下的技术验证,制定了以下选型与判定逻辑,作为本案的实施基石:
文档解析与加载提取 (Data Loader)
Docx2txtLoader,它在保真度与轻量化之间取得了良好的平衡(详单见 demos/rag_01_data_loader.py),能高效提取需求文档内容。Pandas 对已有 .xlsx 进行结构化解析(处理 NaN 空缺),从而应对各异的表头(如 "操作步骤" 与 "* 测试步聚" 等变体),并将关键字段(如所属模块、测试点)结构化地存储至 Document 的 metadata 中以供精确检索。文档分块策略 (Chunking Strategy)
demos/rag_02_text_splitter.py 的验证,对于需求文档这种强上下文相关的数据,固定长度切分容易导致语义截断。检索架构 (Retrieval Architecture)
demos/rag_04_langgraph.py 的验证中,通过 metadata={"row": index} 进行精准匹配,成功分离了背景知识获取与特定样本参考的逻辑,大幅提升了 Prompt 中少样本学习的关联度。graph TD
User([需求文档 Word/Text]) -->|Input| Start((开始))
subgraph "知识层 (Knowledge Base)"
History[历史 Excel 用例] -->|ETL| VectorStore[(向量数据库)]
Doc[当前需求] -->|Loader| VectorStore
end
subgraph "智能体层 (LangGraph Core)"
Start --> Entity[实体提取 Agent]
Entity --> Point[测试要点生成 Agent]
Point --> Case[测试用例生成 Agent]
VectorStore -.->|Few-Shot Samples| Point
VectorStore -.->|Context Metadata| Case
Case --> Eval[Ragas 评估 Agent]
Eval -->|分数 < 0.8| Opt[重构优化 Agent]
Opt -->|改进建议| Case
Eval -->|分数 >= 0.8| Output[最终测试方案]
end
LangGraph -->|全链路 Trace| LangSmith
Output -->|Result| User
Docx2txtLoader 实现 Word 对 Markdown 的高保真保留。Pandas 对已有 .xlsx 用例进行清洗,提取 (测试点, 步骤, 预期) 作为元数据。为了确保 生成 Agent 能够输出高可用、格式标准的测试用例,我们基于演示验证 (demos/rag_04_langgraph.py) 设计了 Few-Shot 的专门处理与应用机制:
考虑到不同用户角色的使用习惯及诉求,方案定义了 “三核触发模式”:
结合实际带有配图的需求文档,形成如下处理链路:
在当前版本的优化中采取了 “技术思想先行,轻量化落地” 的策略。具体应用如下:
FAISS 和 HuggingFaceEmbeddings 实现了 RAG 检索(Few-shot 召回),显著提升了测试用例的生成深度。.graph 状态机文件。evaluator 模块中手动实现了 Ragas 的核心评价逻辑(Faithfulness, Relevance),完成了质量评估闭环。logger 追踪推理过程,模仿了 Trace 逻辑,确保过程可观测。