大模型应用架构模式:从API调用到Agent系统
大模型应用的架构演进 大模型应用正在从简单的API封装走向复杂的Agent系统。理解架构模式的演进,有助于为不同复杂度的需求选择合适的设计。 架构模式全景 模式一:直连API(Level 0) 最简单的应用——直接调用LLM API: 用户输入 → LLM API → 输出 response = openai.chat.completions.create( model="gpt-4o", messages=[{"role": "user", "content": user_input}] ) 适用: 简单问答、单轮交互 优点: 开发成本最低,几天上线 缺点: 无上下文管理、无工具、无定制 模式二:对话管理(Level 1) 加入对话历史管理: 用户输入 → [+对话历史] → LLM → 输出 ↓ 历史管理(摘要/截断) class ChatManager: def __init__(self, max_history=10): self.history = [] self.max_history = max_history async def chat(self, user_input): messages = self.history + [{"role": "user", "content": user_input}] response = await llm.generate(messages) self.history.append({"role": "user", "content": user_input}) self.history.append({"role": "assistant", "content": response}) if len(self.history) > self.max_history * 2: self.history = self.summarize_old_history() return response 适用: 聊天机器人、通用助手 新增能力: 多轮对话、上下文记忆 模式三:RAG增强(Level 2) 加入检索增强: 用户输入 → 检索知识库 → [用户输入 + 检索结果] → LLM → 输出 class RAGApplication: def __init__(self, vector_db, llm): self.db = vector_db self.llm = llm async def answer(self, question): # 检索 docs = self.db.search(question, top_k=5) context = "\n".join(doc.content for doc in docs) # 生成 prompt = f"""基于以下信息回答问题: 参考资料: {context} 问题: {question} """ return await self.llm.generate(prompt) 适用: 知识问答、文档问答、企业知识库 新增能力: 外部知识接入、事实性增强 ...
