如题,是不是要建立一些知识库,如何将知识库喂给AI智能体
随着大模型技术的发展,智能助手(Agent)已成为连接用户需求与外部服务的核心载体。Qwen-Agent作为基于通义千问大模型的智能框架,支持通过工具调用扩展能力,而高德天气API则提供了稳定、实时的气象数据服务。本文旨在实现Qwen-Agent的Assistant助手与高德天气API的无缝集成,构建一个能响应用户自然语言查询、返回精准天气信息的智能系统。
项目目标:
- 掌握高德天气API的参数配置与数据解析方法
- 理解Qwen-Agent的工具调用机制与Assistant初始化流程
- 实现从用户自然语言到天气数据的端到端处理
- 提供多平台交互接口(命令行 + Web 界面)
- 对比Function Call实现和Assistant助手实现的差异性
执行流程:
流程解析:
- 用户输入 - 用户通过自然语言提出问题
- Qwen-Agent - 接收并初步处理用户输入
- 意图识别 - 分析用户意图,判断是否需要调用天气工具
- 工具调用 - 触发天气查询工具函数
- 高德API - 向高德地图服务发送天气查询请求
- 数据返回 - 接收高德API返回的原始天气数据
- 结果格式化 - 将原始数据转换为友好的自然语言描述
- 用户输出 - 向用户展示最终的天气信
- 访问高德开放平台,使用支付宝或手机号注册账号
- 进入控制台,点击“创建应用”,填写应用名称(如“Qwen-Weather-Assistant”),选择应用类型为“Web服务”
- 在应用下点击“添加Key”,服务平台选择“Web服务”,提交后获取API密钥(Key)
- 服务地址:https://restapi.amap.com/v3/weather/weatherInfo
- 请求方式:GET
- 数据来源:中国气象局,实况天气每小时更新多次,预报天气每日更新3次(8:00、11:00、18:00左右)
| 参数名 | 必选 | 说明 | 示例值 |
| key | 是 | 开发者申请的Web服务API密钥 | 3376f9xxxxxxxx |
| city | 是 | 城市编码(adcode),可从高德城市编码表下载 | (北京) |
| extensions | 否 | 气象类型:base(实况天气)/all(未来3天预报) | 默认base all |
| output | 否 | 返回格式:JSON/XML,默认JSON | JSON |
4.1 实况天气(extensions=base)
返回lives数组,包含实时天气数据:
{ “status”: “1”, // 1=成功,0=失败 “count”: “1”, // 返回结果总数 “lives”: [
GPT plus 代充 只需 145{ "province": "北京", "city": "北京市", "adcode": "", "weather": "晴", // 天气现象 "temperature": "25", // 实时气温(℃) "winddirection": "南风", // 风向 "windpower": "2", // 风力(级) "humidity": "45", // 湿度(%) "reporttime": "2025-09-23 14:30:00" // 数据更新时间 }
] }
4.2 预报天气(extensions=all)
返回forecasts数组,包含未来3天预报:
{ “forecasts”: [
GPT plus 代充 只需 145{ "city": "北京市", "casts": [ { "date": "2025-09-23", "week": "2", // 星期几(1=周一,7=周日) "dayweather": "晴", // 白天天气 "nightweather": "多云",// 夜间天气 "daytemp": "28", // 白天温度(℃) "nighttemp": "18" // 夜间温度(℃) }, // 后续2天预报... ] }
] }
使用Python的requests库直接调用API:
import os import requests
def get_amap_weather(city_code=“”, extensions=“base”):
GPT plus 代充 只需 145url = "https://restapi.amap.com/v3/weather/weatherInfo" params = { "key": os.getenv("AMAP_TOKEN"), "city": city_code, "extensions": extensions } response = requests.get(url, params=params) return response.json()
测试调用
weather_data = get_amap_weather(“”, “base”) print(“北京实时天气:”, weather_data[“lives”][0][“weather”], weather_data[“lives”][0][“temperature”], “℃”)
Assistant 类是 Qwen-Agent 框架中的核心组件,它封装了大语言模型的对话能力和工具调用功能。下面从多个维度详细解析这个类:
1. 类的基本定义
class Assistant:
GPT plus 代充 只需 145"""基于大语言模型的智能助手,支持工具调用和多轮对话"""
2. 设计特点:
- 面向对话:专门为多轮对话场景设计
- 工具集成:支持函数调用扩展模型能力
- 状态管理:自动维护对话历史上下文
- 易于使用:提供简洁的API接口
3. 核心配置参数
def __init__( self, llm: Union[Dict, BaseChatModel] = None, # 语言模型配置 name: str = "Assistant", # 助手名称 description: str = "", # 助手描述 system_message: str = "", # 系统提示词 function_list: Optional[List] = None, # 工具函数列表 files: Optional[List[str]] = None, # 文件列表 knowledge: Optional[Union[str, List[str]]] = None, # 知识库 response_format: str = "message", # 响应格式 kwargs
):
llm参数 - 语言模型配置
llm_cfg = {
GPT plus 代充 只需 145'model': 'qwen-turbo', # 模型名称 'model_server': 'dashscope', # 服务提供商 'api_key': 'your-api-key', # API密钥 'max_retries': 3, # 最大重试次数 'timeout': 30, # 超时时间 'temperature': 0.7, # 生成温度 'top_p': 0.8, # 核采样参数
}
function_list 参数 - 工具集成
function_list = [
GPT plus 代充 只需 145'get_current_weather', # 注册的工具名称 'search_internet', # 网络搜索工具 'calculate_math', # 数学计算工具 { 'name': 'custom_tool', # 自定义工具配置 'description': '工具描述', 'parameters': {...} }
]
使用示例:
# 初始化助手 assistant = Assistant(llm=llm_cfg, function_list=[‘weather_tool’])
构建消息
messages = [
GPT plus 代充 只需 145{'role': 'user', 'content': '北京今天天气怎么样?'}
]
执行对话(流式)
for response_chunk in assistant.run(messages):
print(response_chunk) # 输出示例: # {'role': 'assistant', 'content': '正在查询天气...'} # {'role': 'assistant', 'content': '北京今天晴,温度25°C...'}
总而言之,Assistant 类是 Qwen-Agent 框架的核心,它提供了:
- 简化的API接口:让开发者快速构建智能助手应用
- 强大的工具集成:通过函数调用扩展模型能力
- 灵活的配置选项:支持多种使用场景和需求
- 生产级可靠性:内置错误处理和性能优化
- 良好的扩展性:支持自定义工具和预处理逻辑
这个设计体现了现代AI应用开发的**实践,平衡了易用性和功能性,是构建企业级AI助手应用的理想选择。
在《构建AI智能体:七、Function Calling - 解锁大语言模型的实际行动力+案例解析》一文中我们讲过通过Function Calling调用的实现方式,不过调用的方法是固定的,没有通过高德api获取,今天我们修改一下,顺便了解两者的差异;
1. 定义高德天气API工具
# 高德天气 API 的 天气工具定义(JSON 格式)
weather_tool = {
GPT plus 代充 只需 145"type": "function", "function": { "name": "get_current_weather", "description": "Get the current weather in a given location", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city name, e.g. 北京", }, "adcode": { "type": "string", "description": "The city code, e.g. (北京)", } }, "required": ["location"], }, },
}
2. 调用高德地图API查询天气
def get_weather_from_gaode(location: str, adcode: str = None):
GPT plus 代充 只需 145"""调用高德地图API查询天气""" gaode_api_key = "df62*" # 替换成你的高德API Key base_url = "https://restapi.amap.com/v3/weather/weatherInfo" params = { "key": gaode_api_key, "city": adcode if adcode else location, "extensions": "base", # 可改为 "all" 获取预报 } response = requests.get(base_url, params=params) if response.status_code == 200: return response.json() else: return {"error": f"Failed to fetch weather: {response.status_code}"}
3. 使用 Qwen3 + 查询天气并检测工具调用
def run_weather_query(): """使用 Qwen3 + 查询天气,并让大模型输出最终结果""" messages = [ {"role": "system", "content": "你是一个智能助手,可以查询天气信息。"}, {"role": "user", "content": "北京现在天气怎么样?"} ] print("第一次调用大模型...") response = dashscope.Generation.call( model="qwen-turbo", # 可使用 Qwen3 最新版本 messages=messages, tools=[weather_tool], # 传入工具定义 tool_choice="auto", # 让模型决定是否调用工具 ) print(response) if response.status_code == HTTPStatus.OK: tool_map = { "get_current_weather": get_weather_from_gaode, # 如有更多工具,在此添加 } # 从响应中获取消息 assistant_message = response.output.choices[0].message
4. 结果展示
一个基于Qwen大模型的智能天气查询助手的示例,具备通过自然语言查询天气信息、支持终端和Web两种交互界面、集成高德地图API获取实时天气数据、使用函数调用技术实现工具调用的功能;
1. 重要配置模块
import os
import asyncio import requests from typing import Optional import dashscope from qwen_agent.agents import Assistant from qwen_agent.gui import WebUI import pandas as pd from sqlalchemy import create_engine from qwen_agent.tools.base import BaseTool, register_tool
- dashscope: 阿里云通义千问API的Python SDK
- qwen_agent: Qwen智能代理框架,提供对话和工具调用能力
- 其他标准库用于文件操作、网络请求、数据处理等
2. 定义配置文件
# DashScope API 配置
请在此处填写您的 API Key
DASHSCOPE_API_KEY = “your_api_key_here”
高德地图 API 配置
GAODE_API_KEY = “df623d”
模型配置
MODEL_CONFIG = {
GPT plus 代充 只需 145'model': 'qwen-turbo-2025-04-28', 'timeout': 30, 'retry_count': 3,
}
3. 配置加载机制
try:
GPT plus 代充 只需 145from config import DASHSCOPE_API_KEY, GAODE_API_KEY, MODEL_CONFIG
except ImportError:
# 使用环境变量或默认值
- 设计模式:使用配置管理单独配置参数
- 优先从config.py加载配置
- 失败时使用环境变量或硬编码默认值
- 提供明确的错误提示
4. 天气查询工具实现
@register_tool('get_current_weather')
class WeatherTool(BaseTool):
GPT plus 代充 只需 145def call(self, params: str, kwargs) -> str: return self.get_weather_from_gaode(location, adcode)
- 装饰器注册:@register_tool将类注册为可用工具
- 继承BaseTool:遵循Qwen Agent的工具接口规范
- 参数解析:从JSON字符串解析位置参数
- 错误处理:完整的异常捕获和友好错误信息
5. 高德地图API集成
def get_weather_from_gaode(self, location: str, adcode: str = None) -> str: params = { "key": gaode_api_key, "city": adcode if adcode else location, "extensions": "base", }
- 使用高德地图天气API v3
- 支持城市名称或行政编码查询
- 返回结构化天气信息(温度、湿度、风力等)
- 处理API响应状态码和错误信息
6. 助手服务初始化
def init_agent_service(): bot = Assistant( llm=llm_cfg, name='天气助手', description='天气助手,查询天气', function_list=['get_current_weather'], )
Agent配置:
- 指定使用的语言模型(qwen-turbo)
- 定义助手身份和功能描述
- 注册可用的工具列表
- 设置系统提示词
7. 终端交互模式 (TUI)
def app_tui(): while True: query = input('user question: ') file = input('file url (press enter if no file): ').strip() # 构建消息并获取响应 for response in bot.run(messages): print('bot response:', response)
交互流程:
- 持续对话循环
- 支持纯文本和文件输入
- 实时流式输出响应
- 维护对话历史上下文
8. 图形界面模式 (GUI)
def app_gui(): chatbot_config = { 'prompt.suggestions': ['北京今天的天气怎么样?'] } WebUI(bot, chatbot_config=chatbot_config).run()
Web界面特性:
- 基于Web的聊天界面
- 预置提示建议
- 更友好的用户体验
- 自动检测依赖并优雅降级
9. 主程序入口
if __name__ == '__main__': try: from qwen_agent.gui import WebUI app_gui() # 优先使用GUI except ImportError: app_tui() # 降级到TUI
智能启动策略:
- 自动检测GUI依赖可用性
- 优先提供更好的用户体验(GUI)
- 无依赖时自动切换到终端模式
- 完整的错误处理和日志记录
运行过程示例:
# 用户输入: "北京今天天气怎么样?"
# AI处理流程:
1. 理解用户查询意图 → 天气查询
2. 提取参数 → location="北京"
3. 调用WeatherTool → 高德API
4. 返回结构化结果 → 温度、湿度、风力等
5. 自然语言格式化输出
这个代码实现了一个企业级的智能天气查询助手,展示了如何将大语言模型与实际API服务结合,提供有价值的AI应用服务。
查询其他城市的天气返回结果:
- 智能客服系统:为用户提供实时天气查询,支持多轮对话(如“北京今天天气如何?明天会下雨吗?”)
- 物联网设备集成:结合智能家居设备,根据天气数据自动调节室内环境(如高温时启动空调)
- 出行助手:为用户提供包含天气信息的行程建议(如“今天有雨,建议携带雨伞”)
本文档详细介绍了如何使用 Qwen-Agent Assistant 结合高德 API 开发智能天气查询系统。通过这个项目,可以了解到:
- 申请高德与通义千问API密钥,配置开发环境
- 解析高德天气API的请求参数与响应格式
- 通过Qwen-Agent注册工具、初始化Assistant,实现自然语言到天气数据的转换
- 测试验证功能并解决常见问题
这个项目不仅提供了实用的天气查询功能,更重要的是展示了如何将 AI 大模型与实际 API 服务相结合,构建真正有用的智能应用。可以根据这个基础框架,进一步扩展更多有趣的功能。
扩展建议:
- 多城市同时查询:支持批量查询多个城市天气
- 天气预警功能:集成气象局预警信息
- 历史天气查询:查询过去某天的天气情况
- 天气趋势分析:提供天气变化趋势分析
- 个性化推荐:根据天气给出穿衣、出行建议
import os
import asyncio import requests from typing import Optional import dashscope from qwen_agent.agents import Assistant from qwen_agent.gui import WebUI import pandas as pd from sqlalchemy import create_engine from qwen_agent.tools.base import BaseTool, register_tool
导入配置
try:
from config import DASHSCOPE_API_KEY, GAODE_API_KEY, MODEL_CONFIG print("成功加载配置文件")
except ImportError:
GPT plus 代充 只需 145print("警告:未找到配置文件,将使用环境变量或默认值") DASHSCOPE_API_KEY = os.getenv('DASHSCOPE_API_KEY', '') GAODE_API_KEY = "df623d56" MODEL_CONFIG = { 'model': 'qwen-turbo-2025-04-28', 'timeout': 30, 'retry_count': 3, }
定义资源文件根目录
ROOT_RESOURCE = os.path.join(os.path.dirname(file), ‘resource’)
配置 DashScope
dashscope.api_key = DASHSCOPE_API_KEY print(f“使用的 API Key: {dashscope.api_key}”) dashscope.timeout = 30 # 设置超时时间为 30 秒
functions_desc = [
{ "name": "get_current_weather", "description": "获取指定位置的当前天气情况", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "城市名称,例如:北京", }, "adcode": { "type": "string", "description": "城市编码,例如:(北京)", } }, "required": ["location"], }, }
]
====== 天气查询工具实现 ======
@register_tool(‘get_current_weather’) class WeatherTool(BaseTool):
GPT plus 代充 只需 145""" 天气查询工具,通过高德地图API查询指定位置的天气情况。 """ description = '获取指定位置的当前天气情况' parameters = [{ 'name': 'location', 'type': 'string', 'description': '城市名称,例如:北京', 'required': True }, { 'name': 'adcode', 'type': 'string', 'description': '城市编码,例如:(北京)', 'required': False }] def call(self, params: str, kwargs) -> str: import json args = json.loads(params) location = args['location'] adcode = args.get('adcode', None) return self.get_weather_from_gaode(location, adcode) def get_weather_from_gaode(self, location: str, adcode: str = None) -> str: """调用高德地图API查询天气""" gaode_api_key = "df623d56*" # 高德API Key base_url = "https://restapi.amap.com/v3/weather/weatherInfo" params = { "key": gaode_api_key, "city": adcode if adcode else location, "extensions": "base", # 可改为 "all" 获取预报 } try: response = requests.get(base_url, params=params) if response.status_code == 200: data = response.json() if data.get('status') == '1' and data.get('lives'): weather_info = data['lives'][0] result = f"天气查询结果:\n城市:{weather_info.get('city')}\n天气:{weather_info.get('weather')}\n温度:{weather_info.get('temperature')}°C\n风向:{weather_info.get('winddirection')}\n风力:{weather_info.get('windpower')}\n湿度:{weather_info.get('humidity')}%\n发布时间:{weather_info.get('reporttime')}" return result else: return f"获取天气信息失败:{data.get('info', '未知错误')}" else: return f"请求失败:HTTP状态码 {response.status_code}" except Exception as e: return f"获取天气信息出错:{str(e)}"
====== 初始化助手服务 ======
def init_agent_service():
"""初始化助手服务""" llm_cfg = MODEL_CONFIG try: bot = Assistant( llm=llm_cfg, name='天气助手', description='天气助手,查询天气', system_message="你是一名有用的助手", function_list=['get_current_weather'], # 增加天气工具 ) print("助手初始化成功!") return bot except Exception as e: print(f"助手初始化失败: {str(e)}") raise
def app_tui():
GPT plus 代充 只需 145"""终端交互模式 提供命令行交互界面,支持: - 连续对话 - 文件输入 - 实时响应 """ try: # 初始化助手 bot = init_agent_service() # 对话历史 messages = [] while True: try: # 获取用户输入 query = input('user question: ') # 获取可选的文件输入 file = input('file url (press enter if no file): ').strip() # 输入验证 if not query: print('user question cannot be empty!') continue # 构建消息 if not file: messages.append({'role': 'user', 'content': query}) else: messages.append({'role': 'user', 'content': [{'text': query}, {'file': file}]}) print("正在处理您的请求...") # 运行助手并处理响应 response = [] for response in bot.run(messages): print('bot response:', response) messages.extend(response) except Exception as e: print(f"处理请求时出错: {str(e)}") print("请重试或输入新的问题") except Exception as e: print(f"启动终端模式失败: {str(e)}")
def app_gui():
"""图形界面模式,提供 Web 图形界面""" try: print("正在启动 Web 界面...") # 初始化助手 bot = init_agent_service() # 配置聊天界面,列举3个典型门票查询问题 chatbot_config = { 'prompt.suggestions': [ '北京今天的天气怎么样?', ] } print("Web 界面准备就绪,正在启动服务...") # 启动 Web 界面 WebUI( bot, chatbot_config=chatbot_config ).run() except Exception as e: print(f"启动 Web 界面失败: {str(e)}") print("请检查网络连接和 API Key 配置")
if name == ‘main’:
GPT plus 代充 只需 145# 运行模式选择 print("开始运行程序...") try: # 检查是否已安装 GUI 依赖 try: from qwen_agent.gui import WebUI print("GUI 依赖已安装,启动图形界面模式...") app_gui() # 图形界面模式 except ImportError: print("GUI 依赖未安装,启动终端模式...") print("如需使用图形界面,请运行: pip install \"qwen-agent[gui]\"") app_tui() # 终端模式 except Exception as e: print(f"运行出错: {str(e)}") import traceback traceback.print_exc()
无论是 DeepSeek 还是 GPT,随着大模型性能的提升,其能够处理的上下文长度也不断增加。然而,一旦超出上下文窗口的限制,大模型就需要重新开启一个对话,就像“失忆”一样,忘记之前交流的内容。但从用户的角度来看,AI 智能体应该能够记住之前的全部对话。因此,如何高效地管理和利用对话历史,成为了提升 AI 智能体用户体验的关键所在。拥有长期记忆后,Ai 智能体能够回忆过去的对话,从而减少幻觉、延迟和成本。将聊天记录作为文本导入,然后使用 RAG 来“恢复长期记忆”,是让大模型具备长期记忆的一种常见方法。但这种方法通常需要额外的工程支持,而且构建 RAG 也存在不容忽视的时间差。
传统 RAG 系统本质上是一个“文档图书馆”,它假设知识是固定不变的,这在处理动态业务场景时就显得力不从心了。其次,当新信息与旧信息发生冲突时,RAG 系统无法智能地判断哪个更可信,往往会把矛盾的信息一股脑儿返回给用户。最后,RAG 缺乏时间维度的理解让系统无法区分“用户去年的偏好”和“用户现在的需求”,导致推荐结果偏离实际情况。在企业级应用中,RAG 作为长期记忆的这种局限性会被无限放大。比如:在开发一个客户服务 AI 智能体,客户 A 在过去一年中经历了从创业公司到中型企业的转变,其需求从成本控制转向了效率提升,但传统 RAG 系统仍然会基于历史文档推荐成本优化方案。这种脱节不仅影响用户体验,更可能造成企业业务损失。为了解决 AI 智能体长期记忆的这些痛点,最近,一家名为 Zep AI 的初创公司推出了为 AI 智能体打造的记忆层,通过回忆聊天历史,可以自动生成摘要和其他相关信息,使 AI 智能体能够在不影响用户聊天体验的情况下,异步地从过去的对话中提取相关上下文。
下文详细剖析之:Zep 长期记忆系统的架构设计、Zep 长期记忆系统的关键技术设计、基于 Zep 构建 AI 智能体的代码级落地实现。
—1—
Zep 长期记忆系统的架构设计
Zep 能自动从 AI 智能体的用户互动以及不断变化的业务数据中构建一个时间知识图谱。这个图谱包含了与用户和业务背景相关的实体、关系以及事实。Zep 借鉴了 GraphRAG,但与 GraphRAG 不同的是,Zep 能够很好地理解信息随时间的变化。当事实发生改变或者被新的事实取代时,图谱就会更新,以反映新的状态(如下动图展示)。
Graphiti 是 Zep 记忆层背后的技术。它是一个开源的库,能够构建动态的、具有时间意识的知识图谱,用以表示实体之间复杂且不断变化的关系。它可以处理非结构化和结构化的数据,生成的图谱可以通过时间、全文、语义以及图算法等多种方式进行查询。
Zep 架构设计系统的核心是 Graphiti 引擎,它采用了一个巧妙的三层知识图谱架构来解决传统 RAG 的痛点,如下图所示:
【AI大模型全套资料有需要的朋友可以点击下方卡片免费获取~ 】
2025最新AI大模型学习资料合集,允许白嫖,学完拿下大厂offer,存下吧很难找齐的!第一层:Episode 子图
- 功能:完整地存储原始对话、文本或 JSON 数据,不丢失任何信息。
- 特点:类似于人类的情景记忆,能够保留完整的上下文信息。
第二层:Semantic Entity 子图
- 功能:从原始数据中提取实体和关系。
- 特点:利用实体解析技术,将新旧信息有机地整合在一起。
第三层:Community 子图
- 功能:通过标签传播算法对相关实体进行聚类。
- 特点:形成高层次的概念理解。
这种架构设计使得 Zep 系统既能保留细节信息,又能进行抽象推理。
—2—
Zep 长期记忆系统的关键技术设计
1、关键技术一:双时间轴建模:从根本上解决信息更新问题
Zep 最具创新性的技术设计在于其独特的双时间轴建模机制,具体如下:
这种设计使 Zep 系统能够精准处理诸如“用户两周前提到的那个项目其实是三个月前开始的”这类复杂的时间关系。
2、关键技术二:智能的边失效机制
传统系统在面对信息冲突时常常无计可施,而 Zep 凭借 LLM 驱动的边失效机制,以一种优雅的方式解决了这一难题,具体流程如下:
- 冲突检测:当 Zep 系统发现新事实与现有知识图谱中的信息存在语义冲突时。
- 自动标记:将存在冲突的旧信息自动标记为失效状态。
- 时间记录:精准记录下信息失效的具体时间点。
凭借这一机制,AI 智能体能够精准回答诸如“用户什么时候改变了偏好”这类涉及时间推理的复杂问题。
3、关键技术三:三步走的内存检索
第一步:混合搜索策略
Zep 的检索系统融合了三种互补的搜索方法,以实现最大化的召回率:
- 余弦相似度搜索:精准捕捉语义相关性,理解用户问题的深层含义。
- BM25 全文搜索:高效处理关键词匹配,快速定位关键信息。
- 广度优先搜索:深入发现图结构中的隐含关联,挖掘潜在联系。 这种设计尤其适用于处理用户询问“那个项目的进展如何”时的指代消解问题,能够准确理解并回应用户的意图。
第二步:智能重排序
在检索到候选结果后,Zep 运用多种重排序策略来提升精确度:
- RRF 和 MMR 算法:传统的重排序方法,经过验证的有效手段。
- 基于图距离的重排序:考虑实体间的关联程度,优化信息的相关性。
- 频次权重调整:让经常被用户提及的信息获得更高优先级,确保重要信息不被遗漏。 通过这些策略,Zep 能够更精准地呈现用户所需的信息,提高检索结果的质量。
第三步:上下文 Prompt 构造
最后一步是将检索和重排序后的节点和边转换为 LLM 友好的文本格式:
- 为每个事实标注有效时间范围:明确信息的时效性,确保 AI 智能体能够准确理解信息的时效性。
- 为每个实体提供简洁的摘要描述:让 AI 智能体快速把握关键信息,提高生成回复的效率。
- 确保 AI 智能体在生成回复时能够准确理解信息的重要程度:让 AI 智能体能够根据信息的重要性进行合理的回应。 通过这种上下文构造模板,Zep 能够清晰标注事实的时间范围和实体信息,为 AI 智能体生成准确、及时的回复提供有力支持。
4、关键技术四:AI 智能体长期记忆领域新标杆
在更具挑战性的 LongMemEval 测试中,加入了更长、更连贯的对话内容以及更多样化的评估问题,从而更好地反映真实场景的需求,Zep 的优势得到了充分体现,实验结果如下表所示:
可以看到,相比基线方法,Zep 不仅提升了结果的精度,而且将响应时间减少了约 90%,相比其他 LLM 供应商也有约 80% 的提升。
—3—
基于 Zep 构建 AI 智能体的代码级落地实现
接下来,让我们来构建一个具有类似人类记忆的 AI 智能体。
第一、使用的技术栈
- 开源的 Zep 作为我们 AI 智能体的记忆层。
- AutoGen 用于 AI 智能体编排。
- Ollama 用于本地提供 Qwen 3服务。
第二、基于 Zep 的 AI 智能体系统架构设计
- 用户提交查询。
- AI 智能体保存对话并将事实提取到记忆中。
- AI 智能体检索事实并进行总结。
- 使用事实和历史记录做出准确的回应。
第三、基于 Zep 的 AI 智能体代码级落地实现
1、设置 LLM(大语言模型)
我们通过 Ollama 使用本地提供的 Qwen 3。
2、初始化 Zep 客户端
利用 Zep 的基础记忆层,为我们的 Autogen AI 智能体赋予真正的任务完成能力。
3、创建用户会话
为用户创建一个 Zep 客户端会话,AI 智能体将使用该会话来管理记忆。一个用户可以有多个会话!
4、定义 Zep 对话 AI 智能体
我们的 Zep 记忆 AI 智能体基于 Autogen 的对话 AI 智能体,每次用户查询时,从 Zep Cloud 获取实时记忆上下文。它通过利用我们刚刚建立的会话来保持高效。
5、设置 AI 智能体
初始化对话 AI 智能体和一个代理人类 AI 智能体,以管理聊天互动。
6、处理 AI 智能体聊天
Zep 对话 AI 智能体介入,创建一个连贯、个性化的回应。它无缝整合了记忆和对话。
7、Streamlit 用户界面
创建了一个简化的 Streamlit 用户界面,以确保与 AI 智能体的互动顺畅且简单。
8、可视化知识图谱
通过 Zep Cloud 的用户界面,交互式地映射用户在多个会话中的对话。这个强大的工具使我们能够通过图谱可视化知识的演变。
第四、基于 Zep 的 AI 智能体完整代码
总之,本文介绍了如何构建一个具有类似人类记忆的 AI 智能体,使用的技术栈包括开源的 Zep 记忆层、AutoGen 用于 AI 智能体编排以及 Ollama 用于本地提供 Qwen 3服务。AI 智能体系统通过保存对话、提取事实到记忆中、检索事实并总结,最终生成基于事实和历史记录的明智回应。此外,通过 Zep Cloud 的用户界面,可以交互式地映射用户在多个会话中的对话,可视化知识的演变。整个过程通过 Streamlit 用户界面实现顺畅且简单的交互。
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料,朋友们如果有需要的话可以点击下方卡片免费领取【保证100%免费】
2025最新AI大模型学习资料合集,允许白嫖,学完拿下大厂offer,存下吧很难找齐的!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/237782.html