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

四川建设厅电话网站wordpress连接插件

四川建设厅电话网站,wordpress连接插件,营销型网站维护多少钱,新东方在线教育平台官网【Langchain Agent研究】SalesGPT项目介绍#xff08;一#xff09;-CSDN博客 上节课#xff0c;我们介绍了SalesGPT他的业务流程和技术架构#xff0c;这节课#xff0c;我们来关注一下他的项目整体结构、poetry工具和一些工程项目相关的设计。 项目整体结构介绍 我们把…【Langchain Agent研究】SalesGPT项目介绍一-CSDN博客 上节课我们介绍了SalesGPT他的业务流程和技术架构这节课我们来关注一下他的项目整体结构、poetry工具和一些工程项目相关的设计。 项目整体结构介绍 我们把整个项目从git上拉下来之后来看一下它的整体工程结构 这里面所有的文件其中最最重要的是salesgpt这个文件夹打开这个文件夹可以看到里面的python文件 回想一下我们旅游聊天机器人【LangchainStreamlit】旅游聊天机器人-CSDN博客里面的工程结构和这个有些类似是不是只不过多了logger、parsers等其他的python文件这些我们后面会涉及到 所以后面我们会重点研究salesgpt文件夹里面的东西。我们在看salesGPT整个工程结构的时候发现一个问题就是我们找不到一般项目的requirements.txt但是我们发现了这两个文件 我们打开pyproject.toml看看里面的代码 [tool.poetry] name SalesGPT version 0.1.1 description SalesGPT - Your Context-Aware AI Sales Assistant authors [Filip Michalsky ] license Apache-2.0 readme README.md homepage https://github.com/filip-michalsky/SalesGPT repository https://github.com/filip-michalsky/SalesGPT classifiers [Development Status :: 4 - Beta,Intended Audience :: Developers,License :: OSI Approved :: Apache Software License,Programming Language :: Python :: 3,Programming Language :: Python :: 3 :: Only,Programming Language :: Python :: 3.8,Programming Language :: Python :: 3.9,Programming Language :: Python :: 3.10,Programming Language :: Python :: 3.11,Topic :: Scientific/Engineering :: Artificial Intelligence, ] keywords [openai, sales, gpt, autonomous, agi][tool.poetry.dependencies] python ^3.8.1 langchain 0.1.0 openai 1.7.0 chromadb ^0.4.18 tiktoken ^0.5.2 pydantic ^2.5.2 litellm ^1.10.2 ipykernel ^6.27.1 pytest ^7.4.3 pytest-cov ^4.1.0 pytest-asyncio ^0.23.1 langchain-openai 0.0.2[tool.poetry.group.dev.dependencies] black ^23.11.0 flake8 ^6.1.0 isort ^5.12.0 pytest ^7.4.3 pytest-cov ^4.1.0[build-system] requires [poetry-core] build-backend poetry.core.masonry.api大概可以猜出来这是一个类似配置文件的东西上面有项目的基本信息然后是项目的依赖基本上可以确定这个文件就是顶替requirements.txt的这个叫poetry的东西我们之前没有接触过不过在网上能找到大把资料我们花一小节简单介绍一下这个东西。 poetry介绍 简单来说对于较大型、复杂和需要部署的项目需要有好的依赖管理、虚拟环境管理、打包和发布的工具poetry就是来做这个的。poetry的主要作用有如下三点 1. 项目的依赖管理下载和追踪。替代pip的功能 2. 虚拟环境的管理。替代传统的python虚拟环境构建方法poetry直接生成一个可直接使用的虚拟环境。 3. 打包和发布管理。这个我们知道就行了暂时还用不上。 这个是poetry的官网和一些我觉得介绍poetry比较好的CSDN博主介绍文章 1. 官网Poetry - Python dependency management and packaging made easy 2. poetry其他博主的介绍Python 依赖管理及打包三方库 Poetry_python poetry-CSDN博客 大家可以自己花一些时间去看一下poetry这个管理工具怎么用我觉得这个工具设计得还是蛮好的对于依赖管理、虚拟环境管理和打包发布都很方便以后我们自己的大型项目我们也都用poetry好了。 运行文件run.py 和 run-api.py分析 我们看一下项目里的可运行文件.py只有两个 我们来看一下run.py的代码 import argparse import json import osfrom dotenv import load_dotenv from langchain_community.chat_models import ChatLiteLLMfrom salesgpt.agents import SalesGPTload_dotenv() # loads .env file# LangSmith settings section, set TRACING_V2 to true to enable it # or leave it as it is, if you dont need tracing (more info in README) os.environ[LANGCHAIN_TRACING_V2] false os.environ[LANGCHAIN_ENDPOINT] https://api.smith.langchain.com os.environ[LANGCHAIN_API_KEY] os.getenv(LANGCHAIN_SMITH_API_KEY) os.environ[LANGCHAIN_PROJECT] # insert you project name here 引入必要的包load_dotenv()用来加载环境变量主要是openai_key。然后是langchain_smith的引入langchain_smith是用来进行过程监督和控制的这个我们有时间单独来讲一下这个东西是一个辅助管理工具可以不要。 然后是main函数里面的东西 if __name__ __main__:# Initialize argparseparser argparse.ArgumentParser(descriptionDescription of your program)# Add argumentsparser.add_argument(--config, typestr, helpPath to agent config file, default)parser.add_argument(--verbose, typebool, helpVerbosity, defaultFalse)parser.add_argument(--max_num_turns,typeint,helpMaximum number of turns in the sales conversation,default10,)# Parse argumentsargs parser.parse_args()# Access argumentsconfig_path args.configverbose args.verbosemax_num_turns args.max_num_turns 这个argparse也是一个新东西我们之前也没见过来看看它是做什么的。这个模块的介绍资料网上也是大把argparse简介-CSDN博客argparse 模块是 Python 内置的用于命令项选项与参数解析的模块argparse 模块可以让人轻松编写用户友好的命令行接口能够帮助程序员为模型定义参数。 这块代码的作用就是方便用户运行代码时进行输入的通过命令行其中最主要的是 max_num_turns这个参数有实际的用处。我们之前介绍过agentagent会不断审查agent_executor的执行结果有可能就进死循环了而且会不断消耗token所以需要设置一个最大运行轮次来控制agent的循环轮次。这个参数就和我们之前在构造agentexecutor里设置的max_iterations是一个东西【2024最全最细LangChain教程-13】Agent智能体二-CSDN博客 这里面有这个参数我直接截图了 可以看到上面的代码主要是用来获取用户输入的我们继续来看代码 llm ChatLiteLLM(temperature0.2, model_namegpt-3.5-turbo-instruct)if config_path :print(No agent config specified, using a standard config)# keep boolean as string to be consistent with JSON configs.USE_TOOLS Trueif USE_TOOLS True:sales_agent SalesGPT.from_llm(llm,use_toolsUSE_TOOLS,product_catalogexamples/sample_product_catalog.txt,salesperson_nameTed Lasso,verboseverbose,)else:sales_agent SalesGPT.from_llm(llm, verboseverbose)else:with open(config_path, r, encodingUTF-8) as f:config json.load(f)print(fAgent config {config})sales_agent SalesGPT.from_llm(llm, verboseverbose, **config) 这里构造了一个llm然后判断一下用户之前的输入有没有config信息如果没有项目config信息的话就构造一个默认的sales_agent注意这里使用的SalesGPT的 from_llm方法这个方法是后面我们关注的重点。这个agent使用了一个默认的产品目录和销售人员名称。 这块代码有点让人困惑的就是这块大家应该知道我在说啥 这段代码运行到这里我们就成功构造了一个sales_agent然后我们继续往下走 sales_agent.seed_agent()print( * 10)cnt 0while cnt ! max_num_turns:cnt 1if cnt max_num_turns:print(Maximum number of turns reached - ending the conversation.)breaksales_agent.step()# end conversationif END_OF_CALL in sales_agent.conversation_history[-1]:print(Sales Agent determined it is time to end the conversation.)breakhuman_input input(Your response: )sales_agent.human_step(human_input)print( * 10) 然后我们用seed_agent()这个方法来初始化一下这个agent然后就开始进入用户输入、系统输出的阶段了这里都是用CMD来交互的。 这里会用到之前我们设置的max_num_turns这个参数如果达到了这个上限就终止对话如果没有的话就调用sagels_agent的step方法来进行输出。 如果sales_agent的会话历史conversation_history的最后一个元素不是END_OF_CALL就让用户进行他的输入并把用户输入放到sales_agent的human_step这个方法里作为入参。 可以看到run.py整个代码的逻辑是设置用户命令行输入的参数结构如果没有的话就用默认设置然后初始化agent然后让agent先向用户提问然后让用户通过命令行输入然后一轮一轮进行对话直到到达用户设置的最大轮次默认是10次或者对话完结。这个基本上就是run.py的整个业务流程。不难看出这里最重要的就是 from salesgpt.agents import SalesGPT 从这里引入的SalesGPT这个类了通过这个类实例化构造的agent是整个业务逻辑的核心下节课我们开始重点分析SalesGPT这个类。 最后我们来看看run-api.py这个文件 import os from typing import Listimport uvicorn from fastapi import FastAPI from pydantic import BaseModelfrom salesgpt.salesgptapi import SalesGPTAPIapp FastAPI()GPT_MODEL gpt-3.5-turbo-0613 # GPT_MODEL_16K gpt-3.5-turbo-16k-0613app.get(/) async def say_hello():return {message: Hello World}class MessageList(BaseModel):conversation_history: List[str]human_say: strapp.post(/chat) async def chat_with_sales_agent(req: MessageList):sales_api SalesGPTAPI(config_pathexamples/example_agent_setup.json, verboseTrue)name, reply sales_api.do(req.conversation_history, req.human_say)res {name: name, say: reply}return resdef _set_env():with open(.env, r) as f:env_file f.readlines()envs_dict {key.strip(): value.strip(\n)for key, value in [(i.split()) for i in env_file]}os.environ[OPENAI_API_KEY] envs_dict[OPENAI_API_KEY]if __name__ __main__:_set_env()uvicorn.run(app, host127.0.0.1, port8000)简单浏览一下整个代码尤其是main函数里的东西就大概知道了这是要用FASTAPI一种用python快速构建服务端的工具来构建一个可以给前端响应的后端服务那我们就基本明白了这是聚焦于如何和用户交互获取用户输入信息的另外一个版本和run.py没有啥本质的区别就是交互方式不一样了所以我们也不需要花太多时间在这个上面。如果到了服务要部署的时候我们再系统地学习一遍FASTAPI工具然后模仿他这块的代码就行后面我们就不讲这块代码了我们就用run.py的命令行方式来和agent交互就足够了。
http://www.hkea.cn/news/14439038/

相关文章:

  • 免费试用网站 源码wordpress判断浏览器
  • wordpress主题去除文章作者谷歌搜索引擎seo
  • wdcp搭建网站教程wordpress最详细的教程视频
  • 做的最好的微电影网站宁波奢华做网站排名
  • 做网站的公司一年能赚多少钱wordpress4.9.8中文版
  • 上海招聘网官方网站朝外大街网站建设
  • 网站建设服务费应该算什么科目做网站用什
  • 黄江东莞网站建设装潢设计多少钱
  • 石家庄做手机网站建设北京网站备案速度
  • 大型网站建设费用中国建设部官方网站绿色建筑
  • 广东省建设注册执业资格中心网站自助建站信息发布网企业
  • 自学网站查分数第一接单网app地推和拉新
  • 网站开发学历要求度假村网站模板
  • 如何看网站做没做推广石家庄企业网站
  • 昌平网站设计wordpress攻击教程
  • 天津滨海新区网站建设个人网站怎么做cps
  • 网站开发方案目录河北建设招标网
  • 国家建设 免费论文期刊网站软件开发模型有哪些
  • 做网站的公司为什么人少了青岛标志设计公司
  • 网站的优势是什么网站建设专业
  • dw网站的站点建设用pdf怎么做电子书下载网站
  • phpcms多个网站网站悬浮
  • 专业生产车间设计图纸网站利用小说网站做本站优化
  • 做网站公司的商标需要注册吗微信app网站建设
  • 手机网站 文件上传免费设计logo标志
  • 即墨网站建设在哪建设工程交易中心是什么
  • 吕梁网站建设公司wordpress ajax post
  • 学做课件的网站wordpress 默认相册
  • 做网站一般分几种百度对网站建设公司
  • 设计类网站策划案网站建设项目介绍