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

织梦网站如何做301跳转单页网站订单系统怎么改邮箱

织梦网站如何做301跳转,单页网站订单系统怎么改邮箱,4399网站开发者,宁波专业网站公司借助LlamaIndex实现简单Agent 1 简介 智能体的构建发展是一个趋势,借助LlamaIndex简单实现Agent。本文主要借助LlamaIndex中的FunctionTool和Workflow。Workflow是使用事件流的方法实现。 2 构建公共类 由于LlamaIndex中的OpenAI无法直接连接国内大模型&#xf…

借助LlamaIndex实现简单Agent

1 简介

智能体的构建发展是一个趋势,借助LlamaIndex简单实现Agent。本文主要借助LlamaIndex中的FunctionTool和Workflow。Workflow是使用事件流的方法实现。

2 构建公共类

由于LlamaIndex中的OpenAI无法直接连接国内大模型,因此需要使用OpenAI构建CustomLikeOpenAI。

from typing import Anyfrom llama_index.core.base.llms.types import CompletionResponseGen, LLMMetadata, CompletionResponse
from llama_index.core.llms import CustomLLM
from openai import OpenAI
from pydantic import Fieldclass CustomLikeOpenAI(CustomLLM):model: str = Field(description="自定义模型名称")api_key: str = Field(description="自定义API Key")api_base: str = Field(description="自定义API地址")context_window: int = Field(default=32768, description="上下文窗口大小")temperature: float = Field(ge=0, le=1, default=0.3, description="设置温度,值域须为 [0, 1]")num_output: int = Field(default=8192, description="设置max_tokens")def __init__(self, **data):# 必须调用父类初始化super().__init__(**data)# 创建对象self._client = OpenAI(api_key=self.api_key,base_url=self.api_base)@propertydef metadata(self) -> LLMMetadata:"""Get LLM metadata."""return LLMMetadata(context_window=self.context_window,num_output=self.num_output,model_name=self.model)def complete(self, prompt: str, **kwargs: Any) -> CompletionResponse:"""生成文本:param prompt: 添加提示词:param kwargs: 其他相关参数:return: CompletionResponse"""# 构建生成completion = self._client.chat.completions.create(model=self.model,messages=[{"role": "user", "content": prompt}],temperature=self.temperature,max_tokens=self.num_output)# 返回值return CompletionResponse(text=completion.choices[0].message.content)def stream_complete(self, prompt: str, **kwargs: Any) -> CompletionResponseGen:"""生成流式文本:param prompt: 提示词:param kwargs: 其他参数:return: CompletionResponseGen迭代器"""# 根据需要可以不实现,如果不想实现使用下面代码即可# raise NotImplementedError("Streaming not supported")# 构建数据流stream = self._client.chat.completions.create(model=self.model,messages=[{"role": "user", "content": prompt}],temperature=self.temperature,max_tokens=self.num_output,stream=True)# 遍历数据流for chunk in stream:# 获取新文本delta = chunk.choices[0].delta# 判断数据是否存在if delta.content:yield CompletionResponse(text=delta.content, delta=delta.content)

3 函数调用实现Agent

源代码

# 使用LlamaIndex中的ReActAgent和函数调用的方法,实现Agent
# ReActAgent集成AgentRunner/AgentWorker 此方法LlamaIndex未来会被舍弃,推荐使用AgentWorkflow 和 Workflows.
# 需要安装的组件
"""
pip install llama-index
pip install llama-index-llms-openai-like
"""import asynciofrom llama_index.core.agent import ReActAgent
from llama_index.core.tools import FunctionToolfrom my_custom_rag.custom_like_openai import CustomLikeOpenAIdef add(x: int, y: int) -> int:"""Useful function to add two numbers."""return x + ydef multiply(x: int, y: int) -> int:"""Useful function to multiply two numbers."""return x * yasync def main():# 函数回调tools = [FunctionTool.from_defaults(fn=add, description="实现加法"),FunctionTool.from_defaults(fn=multiply, description="实现乘法")]# Llama index中的OpenAILike调用千问和Kimi不能使用,一直报参数错误,所以只能自定义了llm = CustomLikeOpenAI(model="XXXX",api_base="XXXX",api_key="XXXX")# 构建Agentagent = ReActAgent.from_tools(llm=llm,verbose=True,tools=tools)ret = agent.chat(message="1乘以10等于几")print(ret)if __name__ == "__main__":asyncio.run(main())

截图

4 WorkFlow实现Agent

运行流程

flowchart TDsubgraph 说明A1[(1)找到启动的方法,含有StartEvent参数的方法 ] --> B1B1[(2)执行第一个任务流,根据含有StartEvent参数的方法的输出找到的方法 ] --> C1C1[(3)执行任务流,根据上一个方法的输出找到下一个方法] --> D1D1[(4)执行结束,直到执行方法的返回值是StopEvent]endsubgraph 函数A2[(1)call_tool] --> B2B2[(2)generate_joke] --> C2C2[(3)……] --> D2D2[(4)critique_joke]end    

代码

# 需要安装的组件
"""
pip install llama-index
pip install llama-index-llms-openai-like
"""import asynciofrom llama_index.core.workflow import (Event,StartEvent,StopEvent,Workflow,step
)from my_custom_rag.custom_like_openai import CustomLikeOpenAIclass ToolCallEvent(Event):"""用于回调返回数据"""data: strclass JokeEvent(Event):"""笑话实体类"""joke: strclass JokeFlow(Workflow):# Llama index中的OpenAILike调用千问和Kimi不能使用,一直报参数错误,所以只能自定义了llm = CustomLikeOpenAI(model="XXXX",api_base="XXXX",api_key="XXXX")@stepasync def call_tool(self, ev: StartEvent) -> ToolCallEvent:"""生成笑话:param ev: 开始事件:return: 返回笑话事件"""topic = ev.topicprompt = f"根据主题 {topic} 拓展相关主题."response = await self.llm.acomplete(prompt)print("生成的相关主题:", response)return ToolCallEvent(data=str(response))@stepasync def generate_joke(self, ev: ToolCallEvent) -> JokeEvent:"""评价笑话事件:param ev: 笑话事件:return: 停止事件"""prompt = f"写一个关于{ev.data}主题的笑话."response = await self.llm.acomplete(prompt)print("生成的笑话:", response)return JokeEvent(joke=str(response))@stepasync def critique_joke(self, ev: JokeEvent) -> StopEvent:"""评价笑话事件:param ev: 笑话事件:return: 停止事件"""joke = ev.jokeprompt = f"请分析和评价笑话: {joke}"response = await self.llm.acomplete(prompt)return StopEvent(result=str(response))async def main():w = JokeFlow(timeout=60, verbose=True)result = await w.run(topic="水果")print(str(result))if __name__ == "__main__":asyncio.run(main())

截图


文章转载自:

http://z6qvxx8d.tfqfm.cn
http://G1Cw9KJn.tfqfm.cn
http://XKSz1d1h.tfqfm.cn
http://bsxhnnO9.tfqfm.cn
http://ddksQ2mb.tfqfm.cn
http://lE0mdnMO.tfqfm.cn
http://DmYXcwyI.tfqfm.cn
http://RBuFgYMz.tfqfm.cn
http://jSa3EnG2.tfqfm.cn
http://TEE01h6S.tfqfm.cn
http://BVJGQXPG.tfqfm.cn
http://H7accUDZ.tfqfm.cn
http://QmlyFI06.tfqfm.cn
http://3yll52zq.tfqfm.cn
http://gLGtP1U9.tfqfm.cn
http://bvEbAWwX.tfqfm.cn
http://IC0dcNtB.tfqfm.cn
http://9Mb1MYjJ.tfqfm.cn
http://LFVo0RMN.tfqfm.cn
http://65VDgbVu.tfqfm.cn
http://2XPK9Tus.tfqfm.cn
http://jeYZmpmt.tfqfm.cn
http://WdfdF8bm.tfqfm.cn
http://XAKwAQ2N.tfqfm.cn
http://SNw6py8l.tfqfm.cn
http://Q5wNRJlF.tfqfm.cn
http://Jf9YaXli.tfqfm.cn
http://Y4HMyRQJ.tfqfm.cn
http://QpzHUtG2.tfqfm.cn
http://sSLn4Tu1.tfqfm.cn
http://www.dtcms.com/wzjs/669528.html

相关文章:

  • 网站图片做伪静态思帽网站建设
  • 网站程序是什么意思海外网站如何做用户实名认证
  • 甘肃省住房和城乡建设厅官方网站如何做网站客户案例
  • 免费淘宝客网站建设黑龙江城乡建设厅网站
  • 笔记本怎么建设网站制作一个app
  • 珠海建设改革有哪些网站网页模板下载html
  • 前端做的网站手机搜索和网站搜索的排名
  • 大气网站首页如何自己做网站手机
  • 河南睢县筑宇建设网站深圳网站设计 制作
  • 做网站确定什么主题好seo排名的公司
  • 个人网站备案电话访谈python编程语言大全
  • 手机上怎么支持wap网站公众号开发网站
  • 保定建设环境项目网站示范校建设平台网站典型案例
  • 淘客cms建站系统天猫店铺一个多少钱
  • 网站编辑没有经验可以做吗做医疗网站颜色选择
  • 品牌网站建设搭建国内做网站大公司有哪些
  • 北京网站建设套餐安徽省公路建设行业协会网站
  • 优度网站建设wordpress个人博客简约
  • 三亚哪里做网站电气网站模板
  • 建设银行的官方网站积分商场平面设计在哪里接单
  • 网站的字体做多大合适广州做网站优化哪家专业
  • 企业网站服务器租用网站布局设计教程
  • 网站备案后台深圳抖音seo
  • 怎么创作自己的网站网站ie浏览器不兼容
  • 为什么网站显示正在建设游戏客户端开发
  • 寿光建设集团网站网页设计心得5000字
  • 公司英文网站建设wordpress 禁止转码
  • 做网站分销违法吗网站建设目录
  • 红河优才网站建设里水网站建设
  • 服务器里怎么建设网站那个网站可以做空比特币