2026/2/17 17:48:47
网站建设
项目流程
网站建设销售策划方案,怎么自己在家做网站,计算机网络设计是干什么的工作,网站建设销售实习报告本文详细介绍了使用Python结合qwen_agent库和fastapi实现手机号归属地天气查询Agent的完整流程。包含准备工作、Agent结构设计、手机号归属地查询工具、天气查询工具、Agent主体创建及Web聊天界面实现等开发步骤。通过本教程#xff0c;读者可学习如何构建能够接收手机号输入读者可学习如何构建能够接收手机号输入查询归属地并获取当地天气信息的智能系统适合Python开发者和大模型应用学习者参考源码已打包提供。目录一、前言二、准备工作三、Agent结构四、python模块实现4.1 实现手机号归属地查询工具4.2实现天气查询工具4.3定义创建Agent主体4.4创建聊天界面五、小结PS.扩展阅读ps1.六自由度机器人相关文章资源ps2.四轴机器相关文章资源ps3.移动小车相关文章资源ps3.wifi小车控制相关文章资源一、前言在本文中我们将逐步实现一个手机号归属地天气查询agent。这个agent将能够接收用户的手机号输入自动查询该手机号的归属地并进一步根据获取的城市信息查询该地区的实时天气信息。我们将使用Python语言并结合qwen_agent库及fastapi服务来实现这个功能。二、准备工作首先确保你已经安装了Python环境和以下库qwen_agent用于创建agent的框架。requests用于发送HTTP请求。phone:用于查询手机号归属地json用于处理JSON数据。re用于正则表达式匹配。本地大模型服务ollama本地大模型管理软件及qwen大模型。fastapi用户构建web前端聊天界面如果还没有安装这些库可以通过以下命令安装pipinstallqwen_agent requests#其它所需的模块这里如果没有装所需的库运行时会提示根据提示安装缺的库即可。没有ollama也先去安装ollama并运行qwen大模型过程非常简单网上很多不再赘述。三、Agent结构qwen智能体基本结构是这样的先定义工具类tools然后定义智能体的任务描述然后创建一个智能体再然后就是web发布智能体服务进行双向通讯。四、python模块实现4.1 实现手机号归属地查询工具我们首先定义一个工具MobileAddress用于查询手机号的归属地。这个工具将使用phone库的API调用来获取归属地信息。register_tool(get_mobile_address)classMobileAddress(BaseTool):description手机号归属地查询服务输入手机号返回该手机号的归属地。parameters[{name:mobile,type:string,description:输入的手机号,required:True}]defcall(self,params:str,**kwargs)-str:print(调用了function:,len(params))print(字符串内容,params)try:params_jsonjson.loads(params[:-1])promptparams_json[mobile]print(转化后的号码:,prompt)exceptjson.JSONDecodeErrorase:print(JSON解析错误:,e)return参数格式错误resp.find(prompt)print(原始查询结果,res)returnres4.2实现天气查询工具接下来我们定义另一个工具WeatherByAddress用于根据城市名称查询天气信息。这个工具将使用另一个外部API来获取天气数据。register_tool(get_weather)classWeatherByAddress(BaseTool):description根据提供的城市名称查找代码并通过互联网请求查询天气信息。parameters[{name:city,type:string,description:城市名称,required:True}]defcall(self,params:str,**kwargs)-str:try:params_jsonjson.loads(params)city_nameparams_json[city]# 假设我们有一个城市代码的映射字典city_code{Beijing:101010100}# 示例代码urlfhttps://www.weather.com.cn/weather1d/{city_code[city_name]}.shtmlresponserequests.get(url)ifresponse.status_code200:html_contentresponse.text matchre.search(rvar hour3data(\{.*?\});,html_content)ifmatch:hour3datamatch.group(1)returnhour3dataelse:return未找到天气小时数据else:return请求失败状态码: {}.format(response.status_code)exceptjson.JSONDecodeErrorase:return参数格式错误4.3定义创建Agent主体最后我们创建一个Assistant实例这个agent将使用我们定义的工具来处理用户的输入并返回归属地和天气信息。fromqwen_agent.agentsimportAssistant# 配置LLMllm_cfg{model:qwen,#这里可以根据自己的大模型类型修改配置参数model_server:http://localhost:11434/v1,#这里可以根据自己的大模型类型修改配置参数generate_cfg:{top_p:0.8}}# 创建agentsystem_instruction你扮演一个助手会调用工具首先获取用户输入的手机号码并调用手机号归属地查询服务工具获得城市地址然后再调用天气查询工具获得所在城市的天气信息最后进行整理输出手机归属地和天气信息tools[get_mobile_address,get_weather]botAssistant(llmllm_cfg,system_messagesystem_instruction,descriptionfunction calling,function_listtools)4.4创建聊天界面我们将使用FastAPI来创建一个简单的Web界面用户可以通过这个界面输入手机号并获取归属地和天气信息。fromfastapiimportFastAPI,Request,Formfromfastapi.responsesimportHTMLResponsefromfastapi.templatingimportJinja2Templates appFastAPI()templatesJinja2Templates(directorytemplates)app.get(/,response_classHTMLResponse)asyncdefread_root(request:Request):returntemplates.TemplateResponse(chat.html,{request:request})app.post(/chat)asyncdefchat(message:strForm(...)):messages[{role:user,content:message}]responsesbot.run(messagesmessages)return{responses:[content[content]forcontentinresponses]}# 运行FastAPI应用if __name__ __main__:import uvicornuvicorn.run(app,host0.0.0.0,port9000,workers1)创建一个简单的html页面如下!DOCTYPEhtmlhtmlheadtitleChat Interface/titlescriptfunctionsend_message(){varmessagedocument.getElementById(message).value;if(message.trim()){alert(Message cannot be empty!);return;}fetch(/chat,{method:POST,headers:{Content-Type:application/x-www-form-urlencoded,},body:messageencodeURIComponent(message),}).then(response{if(!response.ok){thrownewError(Network response was not ok);}returnresponse.json();}).then(data{varresponsesdata.responses;varchat_windowdocument.getElementById(chat-window);responses.forEach(response{varresponse_divdocument.createElement(div);response_div.innerTextresponse;// Fixed to access response directlychat_window.appendChild(response_div);});document.getElementById(message).value;chat_window.scrollTopchat_window.scrollHeight;}).catch(errorconsole.error(Error:,error));}/script/headbodydiv idchat-windowstylewidth: 80%; height: 400px; border: 1px solid #000; overflow-y: scroll;/divinput typetextidmessageplaceholderType a message...styleheight: 100px;width: 80%;button onclicksend_message()stylebackground-color: blue; color: white; font-size: larger; padding: 10px 20px;Send/button/body/html五、小结至此我们实现了一个anget他可以接收我们输入的电话号码并且调用本地大模型进行处理先是调用一个手机号码归属地查询tool再去调用一个天气查询爬虫tool最后大模型综合tool的反馈信息进行整合后输出给用户。以上是简单的实现为了更加的准确好用需要进一步优化包括qwen-anget本身好像有点问题有时候只能调用一个手机号码归属地函数发挥不是很稳定因此需要优化prompt第二可以加入更多检查工具比如输入的号码检查让大模型自己先检查一下对不对比如对回答进行一些过滤过滤掉不必要的信息等。在大模型时代我们如何有效的去学习大模型现如今大模型岗位需求越来越大但是相关岗位人才难求薪资持续走高AI运营薪资平均值约18457元AI工程师薪资平均值约37336元大模型算法薪资平均值约39607元。掌握大模型技术你还能拥有更多可能性• 成为一名全栈大模型工程师包括PromptLangChainLoRA等技术开发、运营、产品等方向全栈工程• 能够拥有模型二次训练和微调能力带领大家完成智能对话、文生图等热门应用• 薪资上浮10%-20%覆盖更多高薪岗位这是一个高需求、高待遇的热门方向和领域• 更优质的项目可以为未来创新创业提供基石。《AI大模型从0到精通全套学习包》如果你想要提升自己的能力却又没有方向想学大模型技术去帮助就业和转行又不知道怎么开始那么这一套**《AI大模型零基础入门到实战全套学习大礼包》以及《大模型应用开发视频教程》**一定可以帮助到你限免0元1全套AI大模型应用开发视频教程包含深度学习、提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点2大模型入门到实战全套学习大礼包01大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通02大模型学习书籍文档学习AI大模型离不开书籍文档我精选了一系列大模型技术的书籍和学习文档电子版它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。03AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。04大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。05大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。*这些资料真的有用吗*这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。06以上全套大模型资料如何领取用微信加上就会给你发无偿分享遇到扫码问题可以私信或评论区找我