场景描述
快召回
快召回检索通过关键词匹配和向量相似度搜索技术,实现500毫秒级响应时间的高效数据检索,满足对响应速度要求较高的应用场景需求。
核心特性
处理速度:500毫秒级响应时间。
检索方式:关键词匹配 + 向量相似度搜索。
性能优势:速度快、延迟低、成本低。
适用场景
实时对话系统。
即时问答服务。
实现流程
fast_retrieval.py 实现的基本流程,如下所示。
步骤 | 操作名称 | 具体实现 | 关键参数 |
1 | 接收用户查询 | 获取用户输入问题 | 示例:"推荐几家餐厅" |
2 | 执行记忆搜索 | 调用 memory_tool.search_user_memory 方法 | enable_rerank=True |
3 | 构建提示词 | 格式化记忆片段为文本列表,注入到提示中 | System Prompt 或 User Context |
4 | 生成个性化回复 | CrewAI Agent 结合问题和记忆生成响应 | 历史记忆 + 用户问题 |
核心代码解析
fast_retrieval.py 代码实现逻辑:通过 memory_tool.py 搜索用户历史记忆,将检索结果格式化后作为上下文输入给 CrewAI 智能代理,生成结合用户个性化记忆的实时对话回复,实现快速响应的个性化 AI 助手。
def chat_with_memory(user_id: str, user_message: str):# 1. 先用用户原始消息搜索记忆memory_result = search_user_memory(query=user_message, actor_id=user_id)formatted_memory = format_memory_for_llm(memory_result)# 2. 创建 Agentagent = create_personalized_chat_agent()# 3. 构建任务,注入记忆上下文chat_task = Task(description=f"""用户ID: {user_id}用户消息: {user_message}以下是从用户历史记忆中搜索到的相关信息:{formatted_memory}请根据以上记忆信息,为用户提供个性化的回复。注意:- 如果找到相关记忆,要在回复中体现对用户的了解- 如果没有找到相关记忆,也要友好地回复用户- 回复要自然、亲切,不要生硬地罗列记忆内容""",expected_output="一段个性化的、结合用户历史记忆的友好回复",agent=agent)# 4. 执行并返回结果crew = Crew(agents=[agent], tasks=[chat_task], ...)return crew.kickoff()
预期结果
运行
python3 fast_retrieval.py,体验交互结果。当用户问 "推荐几家餐厅" 时,系统会召回用户"喜欢川菜"、"素食"等记忆,Agent 据此推荐符合条件的餐厅(如推荐素食餐厅或川菜馆的素菜),而不是通用的推荐。