当前位置: 首页 > wzjs >正文

建网页和网站的区别中国住房和城乡建设部查询网站

建网页和网站的区别,中国住房和城乡建设部查询网站,大旺建设局网站,桂林两江四湖简介这篇文章瞄的是AutoGen官方教学文档 Advanced 章节中的 Memory 篇章,介绍了如何将外部知识添加进 Team或Agent中以实现RAG功能。 官网链接:https://microsoft.github.io/autogen/stable/user-guide/agentchat-user-guide/memory.html ; 【注…

这篇文章瞄的是AutoGen官方教学文档 Advanced 章节中的 Memory 篇章,介绍了如何将外部知识添加进 Team或Agent中以实现RAG功能。

  • 官网链接:https://microsoft.github.io/autogen/stable/user-guide/agentchat-user-guide/memory.html ;

【注意】:本文的Memory可以被翻译成“知识库”,但这里为了和专家系统进行区分就翻译成“记忆体”了;


Memory

对于一个Team或者Agent而言维护一些有价值的知识 facts 能够更好的让其开展工作,因为他们能够在合适的时间将这些知识添加到上下文中。最经典的使用实例就是 Retrieval-Augmented Generation (RAG),即检索增强生成,是一种结合了 信息检索文本生成 的技术,主要用于提升LLM在生成文本时的准确性和相关性。

RAG 的核心思想是:在生成文本之前,先从外部知识库或文档中检索相关信息,然后将检索到的信息给LLM生成更准确、更有依据的答案。这种方法特别适合 需要基于事实或特定领域知识的任务。有点类似于构建了一个 小型或临时 的专家系统,但与专家系统之间存在本质区别:

RAG专家系统
目标动态生成准确、相关的文本模拟专家决策,解决特定领域问题
知识来源外部动态检索手工构建的知识库
灵活性高,适用于开放领域低,适用于封闭领域
输出特性概率性,可能存在幻觉确定性,基于规则推理
技术实现深度学习 + 检索技术规则引擎 + 符号推理
应用场景问答、内容生成、开放领域任务诊断、决策支持、封闭领域任务

关于RAG和专家系统之间的差异这里就不再过多赘述,感兴趣的可以自己去查看相关文献。

AutoGen库提供了一个 Memory 协议以提供以下功能,其核心方法是 queryupdate_contextaddclear以及close

  • add:向记忆中添加新的知识;
  • query:从记忆中检索相关知识;
  • update_context:通过添加检索到的知识来修改Agent内部的上下文信息 model_context
  • clear:清空记忆中的所有知识;
  • close:清空记忆中的所有知识并回收资源;

ListMemory Example

微软提供了一个基于 ListMemory 对象的记忆体并按照时间关系来维护,能够将近期的记忆添加到模型的上下文中,你可以将其看作是一个 list 数组。该对象被设计成明确且直接可用的,因为list中的内容本身就是你新增的知识,而不是LLM生成的。

from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.ui import Console
from autogen_core.memory import ListMemory, MemoryContent, MemoryMimeType
from autogen_ext.models.openai import OpenAIChatCompletionClientimport os, asyncioos.environ["OPENAI_API_KEY"] = "你的OpenAI API Key"#------------------------------------------------------------#
# Step1. 创建一个 ListMemory 对象
user_memory = ListMemory()#------------------------------------------------------------#
# Step2. 手动添加一些知识给 ListMemory 对象
# 		 1. 天气的返回信息必须是公制单位
#		 2. 食谱必须是素食;
async def user_memory_add():await user_memory.add(MemoryContent(content="The weather should be in metric units", mime_type=MemoryMimeType.TEXT))await user_memory.add(MemoryContent(content="Meal recipe must be vegan", mime_type=MemoryMimeType.TEXT))#------------------------------------------------------------#
# Step3. 定义一个用来获取天气的工具tool
async def get_weather(city: str, units: str = "imperial") -> str:if units == "imperial":return f"The weather in {city} is 73 °F and Sunny."elif units == "metric":return f"The weather in {city} is 23 °C and Sunny."else:return f"Sorry, I don't know the weather in {city}."#------------------------------------------------------------#
# Step4. 创建Agent
assistant_agent = AssistantAgent(name="assistant_agent",model_client=OpenAIChatCompletionClient(model="gpt-4o-2024-08-06",),tools=[get_weather],memory=[user_memory],
)async def main():# 任务一:使用工具 get_weather 查询纽约天气await user_memory_add()stream = assistant_agent.run_stream(task="What is the weather in New York?")await Console(stream)print("-" * 50)message = await assistant_agent._model_context.get_messages()for item in message:print(item)print("-" * 50)# 任务二:向LLM进行轮询,要求写一个肉汤食谱stream = assistant_agent.run_stream(task="Write brief meal recipe with broth")await Console(stream)asyncio.run(main()
)

运行结果如下,第一个任务:

$ python demo.py

在这里插入图片描述


【缺失库】Custom Memory Stores (Vector DBs, etc.)

除了上面用纯文本的方式添加记忆体意外,AutoGen也提供了使用向量或者ext文件的形式来添加记忆体中的内容,即你可以使用矢量数据库存储和检索信息,但需要对 add, query, update_context 这三个方法进行重载:

【注意】:对于我当前的AutoGen版本 0.4.7 而言,官网的demo在此处至少缺失一个库 chromadb,但文档中提示 autogen-ext 0.4.7 does not provide the extra 'memory',我后续将这个问题解决后再放上修改后的demo;


文章转载自:

http://qm735vNf.hLcLr.cn
http://2EkQj1LH.hLcLr.cn
http://ToLCMeJx.hLcLr.cn
http://iDimTJQz.hLcLr.cn
http://v7hvW39Y.hLcLr.cn
http://TGIHfQzJ.hLcLr.cn
http://j3yBP7Jo.hLcLr.cn
http://qTkBXNme.hLcLr.cn
http://IjF5xHnV.hLcLr.cn
http://Wwp7pnrV.hLcLr.cn
http://DBX5fEBj.hLcLr.cn
http://sjof7JAf.hLcLr.cn
http://HmSh5tRR.hLcLr.cn
http://ZGJBe1d4.hLcLr.cn
http://eQwi8W19.hLcLr.cn
http://inDHmsTQ.hLcLr.cn
http://uW5SBmCD.hLcLr.cn
http://69MweOSv.hLcLr.cn
http://egGfooD6.hLcLr.cn
http://UFGqSEsg.hLcLr.cn
http://z6nlggwS.hLcLr.cn
http://X2QuroeZ.hLcLr.cn
http://xcnChh9y.hLcLr.cn
http://XkHVKcsL.hLcLr.cn
http://iAr3MtN0.hLcLr.cn
http://ZPGraW9U.hLcLr.cn
http://yVc2hRAn.hLcLr.cn
http://rPgyMS7M.hLcLr.cn
http://rbDi9oBI.hLcLr.cn
http://Ljndf6xg.hLcLr.cn
http://www.dtcms.com/wzjs/703726.html

相关文章:

  • 查手表价格的网站大型网站建设需要
  • 视频网站建设方案海南建设网网站
  • 平安河南建设网站智云鸟网站建设
  • 哪些网站页面简洁网站幻灯片效果
  • 网站建设发展历程ppt网站建设收费报价表
  • 国外优秀电商网站艾特思成都网站建设
  • 做环保网站案例网页制作的基本步骤视频
  • 网站企业业务员怎么做网页升级紧急跳转
  • 帝国后台网站如何设置自动刷新首广告公司策划
  • 宁波产城生态建设集团网站学seo可以做网站吗
  • 网站 备案 几天上海网站制作哪家好
  • 平台网站应该怎样做seo潜江网站设计公司
  • 聊城那里做网站适合个人做的跨境电商
  • 做网站常德wordpress和di
  • 做网站 大文件微信 host 微网站模版
  • 做网站的几个必要步骤什么设计网站好
  • 网站建设验收单意见怎么写福田公司在哪里
  • 给公司做网站多少钱18款app软件免费下载百度
  • 乐山网站制作公司网站营销学多久
  • 中山网站seo怎么用别人网站做模板
  • 域名备案和网站备案有什么不同做网站宣传有用吗
  • 公司网站运营方案房地产宣传软文
  • 哪些网站可以做微信推送网站运营培训班
  • 站长之家素材网站涉县住房和城乡规划建设局网站
  • 网站建设的任务深圳营销型网站建
  • 贵阳市住房城乡建设局官方网站开发区网站建设在哪
  • 网站建设ftp软件有哪些配音网站赚钱
  • 简述搜索引擎推广的步骤河南网站关键词优化代理
  • vs2017网站开发组件网站架构设计图怎么做
  • 如何拿网站后台账号网络传播营销策划方案