news 2026/4/16 6:28:01

搭建本地支持联网推理助手(附源码)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
搭建本地支持联网推理助手(附源码)

20251212_搭建本地支持联网推理助手

一、问题

搭建本地助手,提升工作效率。

二、代码

importjsonimportosimportwarningsimportgradioasgrimportrequests AUTHORIZATION="Bearer XXXXXXXXXXX"PROXIES={'https':'http://XXXXXXXXXXX8080',# 替换为自己的域账号和密码'http':'http://XXXXXXXom:8080',}os.environ["no_proxy"]="localhost,127.0.0.1,::1"os.environ['GRADIO_ANALYTICS_ENABLED']='False'warnings.filterwarnings("ignore",category=requests.packages.urllib3.exceptions.InsecureRequestWarning)defstream_response_v3(question,history):messages=[]fornum,hisinenumerate(history):ifnum>=3:breakmessages.append({"role":"user","content":history[0]['content']})messages.append({"role":"assistant","content":history[1]['content']})passmessages.append({"role":"user","content":question})data={"model":"ep-20250718205753-s4hns","messages":messages,"stream":True}try:response=requests.post("https://ark.cn-beijing.volces.com/api/v3/chat/completions",headers={"Authorization":AUTHORIZATION,"Content-Type":"application/json"},proxies=PROXIES,verify=False,json=data,stream=True,timeout=30)response.raise_for_status()full_response=""forlineinresponse.iter_lines():ifline:decoded_line=line.decode('utf-8').lstrip('data: ').strip()ifdecoded_line=="[DONE]":breaktry:chunk=json.loads(decoded_line)ifchunk.get('choices'):delta=chunk['choices'][0].get('delta',{})ifdelta.get('content'):content=delta['content']full_response+=contentyieldfull_responseexceptjson.JSONDecodeError:continueexceptrequests.exceptions.RequestExceptionase:yieldf"请求发生错误:{str(e)}"exceptExceptionase:yieldf"处理响应时发生错误:{str(e)}"defchat_with_ark(message,history):""" 支持多轮对话的ARK聊天函数 Args: message: 用户当前输入的消息 history: 对话历史记录,格式为: [{'role': 'user/assistant', 'content': '消息内容'}, ...] Yields: 逐步生成的回复内容 """messages=[]forturninhistory:messages.append({"role":turn["role"],"content":[{"type":"input_text","text":turn["content"]}]})messages.append({"role":"user","content":[{"type":"input_text","text":message}]})payload={"model":"ep-20251210140512-99ld2","stream":True,"tools":[{"type":"web_search","max_keyword":3}],"input":messages# 使用包含历史的消息列表}response=requests.post("https://ark.cn-beijing.volces.com/api/v3/responses",headers={"Authorization":AUTHORIZATION,"Content-Type":"application/json"},json=payload,stream=True,verify=False,proxies=PROXIES)partial_response=""forlineinresponse.iter_lines():ifline:decoded_line=line.decode('utf-8')ifdecoded_line.startswith('data:'):try:data=json.loads(decoded_line[5:])ifdata.get("type")=="response.output_text.delta":delta=data.get("delta","")partial_response+=deltayieldpartial_responseexceptjson.JSONDecodeError:continuewithgr.Blocks()asdemo:withgr.Tabs():withgr.Tab("1. deepseek-v3-671b"):chatbot1=gr.Chatbot(height=580,type="messages")chat_interface1=gr.ChatInterface(fn=stream_response_v3,cache_examples=False,chatbot=chatbot1,fill_height=True)chat_interface1.scale=2examples1=gr.Examples(examples=["请帮我写python代码,功能要求如下:","请帮我修改python代码,功能要求如下:","下述错误是什么原因?怎么解决?","我的代码报如上,我的代码报错如下。错误原因是什么?怎么解决?",],inputs=chat_interface1.textbox,run_on_click=False,cache_examples=False,)withgr.Tab("2. deepseek-v3-671b(web search)"):chatbot2=gr.Chatbot(height=580,type="messages")chat_interface2=gr.ChatInterface(fn=chat_with_ark,cache_examples=False,chatbot=chatbot2,fill_height=True)chat_interface2.scale=2examples2=gr.Examples(examples=["请帮我写python代码,功能要求如下:","请帮我修改python代码,功能要求如下:","下述错误是什么原因?怎么解决?","我的代码报如上,我的代码报错如下。错误原因是什么?怎么解决?",],inputs=chat_interface2.textbox,run_on_click=False,cache_examples=False,)port=30005importpsutilforprocinpsutil.process_iter(['pid','name']):try:forconninproc.connections():ifconn.laddr.port==port:print(f"Killing process{proc.pid}({proc.name()})")proc.kill()breakexceptExceptionase:print(e)passdemo.queue().launch(server_name="127.0.0.1",server_port=port,share=False,show_error=True)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 17:29:51

别再把图片存进数据库了!从全栈视角看 OSS 的架构本质

从全栈部署实战,聊聊 OSS 对象存储的本质 在进行全栈开发时,新手往往会遇到文件存储的痛点。很多同学在初次接触云服务器部署时,对 OSS(Object Storage Service,对象存储服务)的概念感到模糊。本文将通过一…

作者头像 李华
网站建设 2026/4/12 16:49:18

精通 oil.nvim 排序配置:打造个性化文件管理体验

精通 oil.nvim 排序配置:打造个性化文件管理体验 【免费下载链接】oil.nvim Neovim file explorer: edit your filesystem like a buffer 项目地址: https://gitcode.com/gh_mirrors/oi/oil.nvim oil.nvim 是一款革命性的 Neovim 文件浏览器插件,…

作者头像 李华
网站建设 2026/4/14 15:52:40

闲置上门回收小程序开发、一键回收超轻松!

闲置上门回收小程序开发、一键回收超轻松!旧衣回收小程序作为互联网发展下的新模式,在我国回收市场中发挥了积极作用。大众只需在小程序上选择回收种类并预订上门回收时间,回收员便会按时进行回收,极大地节约了用户的时间和精力。…

作者头像 李华
网站建设 2026/4/15 18:59:05

玩转RPCS3汉化:从零开始打造中文游戏体验的完整攻略

玩转RPCS3汉化:从零开始打造中文游戏体验的完整攻略 【免费下载链接】rpcs3 PS3 emulator/debugger 项目地址: https://gitcode.com/GitHub_Trending/rp/rpcs3 想要在RPCS3模拟器中畅玩中文版PS3游戏?本文为您提供一套完整的汉化解决方案。通过RP…

作者头像 李华
网站建设 2026/4/11 4:40:01

Trae Agent离线模式终极指南:无网络环境下的完整解决方案

Trae Agent离线模式终极指南:无网络环境下的完整解决方案 【免费下载链接】trae-agent Trae 代理是一个基于大型语言模型(LLM)的通用软件开发任务代理。它提供了一个强大的命令行界面(CLI),能够理解自然语言…

作者头像 李华
网站建设 2026/4/13 10:12:33

基于SSM的健康医疗体检管理系统(源码+lw+部署文档+讲解等)

课题介绍 本课题针对传统体检流程繁琐、数据分散难整合、报告解读不及时、健康档案管理低效等痛点,结合 Java 企业级开发优势与医疗体检数字化管理需求,设计实现基于 SSM(SpringSpringMVCMyBatis)框架的健康医疗体检管理系统。系统…

作者头像 李华