西昌城乡规划与建设局网站常熟网站制作哪家好
2026/4/18 11:19:30 网站建设 项目流程
西昌城乡规划与建设局网站,常熟网站制作哪家好,做平团的网站,PS做网站页面尺寸大型语言模型#xff08;LLM#xff09;已成为广受欢迎的个人编程辅助工具。近期出现的vibe coding模式描述了开发者在开发过程中适度依赖LLM构建应用程序的工作方式。 即便不采用这种方式#xff0c;代码助手也能带来显著价值。它可以提供技术反馈、解答具体问…大型语言模型LLM已成为广受欢迎的个人编程辅助工具。近期出现的vibe coding模式描述了开发者在开发过程中适度依赖LLM构建应用程序的工作方式。即便不采用这种方式代码助手也能带来显著价值。它可以提供技术反馈、解答具体问题甚至在软件工程流程中担任多个角色如代码审查、测试用例生成从而提升代码质量和开发效率。然而使用云服务的代码助手往往会引发成本和数据隐私问题。对于企业内部项目或包含敏感信息的个人代码将其发送至外部服务器可能并不合适。在本地环境运行代码助手LLM则可以有效避免这些问题确保代码和数据的安全性。本文将指导您逐步搭建一个运行在本地计算机上的聊天机器人作为您的专属编程助手。我们将使用以下开源技术栈•模型 (Model)Qwen Code Instruct系列如Qwen/Qwen2-*-Code-Instruct。这是阿里巴巴通义千问Qwen系列针对代码任务优化的模型在代码生成、理解和指令遵循方面表现出色同时对中英文都有良好支持。•推理引擎 (Inference Engine)vLLM。这是一款为大型语言模型设计的高性能推理和服务引擎。通过PagedAttention和持续批处理等技术它能显著提升LLM在本地GPU上的推理速度和吞吐量实现流畅的模型交互。•前端框架 (Frontend)Streamlit。这是一个流行的Python库让开发者能用简单的Python脚本快速创建交互式Web应用非常适合构建本地LLM助手的用户界面无需复杂的前端开发。通过整合这三项技术我们将构建一个反应迅速、实用且完全私有的本地编码助手。接下来我们将详细介绍环境配置、使用vLLM部署Qwen Code模型以及使用Streamlit创建前端聊天界面的具体步骤。步骤一环境配置与依赖安装在开始之前请确保您的开发环境满足以下要求并完成必要软件的安装。Python 环境:• 确认已安装 Python 3.8 或更高版本。• 建议使用虚拟环境如venv或conda来管理项目依赖以避免潜在的版本冲突。# 使用 venv 创建虚拟环境 (示例) python -m venv qwen_vllm_st_env # 激活虚拟环境 # Windows: qwen_vllm_st_env\Scripts\activate # Linux/macOS: source qwen_vllm_st_env/bin/activate安装 vLLM:• vLLM 需要与您的 CUDA 版本兼容的 PyTorch。通常直接安装 vLLM 会尝试安装合适的依赖项。pip install vllm•注意:vLLM 依赖 NVIDIA GPU 和 CUDA 环境。请确保您的计算机配备了合适的 NVIDIA 显卡并安装了兼容的 CUDA Toolkit 版本。详细的兼容性信息和安装指南可在 vLLM 官方文档) 中查阅。若遇到 CUDA 相关问题可能需要依据文档指引安装特定版本的 PyTorch。安装 Streamlit:• 用于创建前端用户界面。pip install streamlit安装 OpenAI Python 客户端:• 此库将用于与 vLLM 提供的 OpenAI 兼容 API 进行交互。pip install openai硬件要求检查:•GPU 显存 (VRAM):这是运行模型最关键的资源。所需显存大小取决于模型规模和运行精度。• 例如Qwen/Qwen2-7B-Code-Instruct (70亿参数) 在 bfloat16 或 float16 精度下通常需要10-16GB或更多的可用显存。• 更大的模型如 57B 参数则需要显著更多的显存可能需要 40GB 或多 GPU 配置。•内存 (RAM):建议至少16GB。•CUDA:确保已安装 NVIDIA 驱动程序和兼容的 CUDA Toolkit。完成环境配置后可以进行下一步。步骤二启动 vLLM 推理服务器安装 vLLM 后下一步是使用它加载 Qwen Code 模型并启动一个 API 服务器用于接收请求并返回模型生成结果。选择模型:• 本教程选用Qwen/Qwen2-7B-Code-Instruct作为示例其资源需求相对较低。如果硬件配置允许可以尝试加载更大的模型。启动服务器:python -m vllm.entrypoints.openai.api_server \ --model Qwen/Qwen2-7B-Code-Instruct \ --trust-remote-code \ --dtype bfloat16 \ --gpu-memory-utilization 0.90 \ --max-model-len 8192 # --- 以下为常用可选参数 --- # --tensor-parallel-size 1 # 指定使用的GPU数量单卡通常为1 (默认) # --port 8000 # API服务器监听端口默认为 8000 # --host 127.0.0.1 # API服务器监听地址默认为 localhost (127.0.0.1) # 如需局域网访问可设为 0.0.0.0参数说明:•--model Qwen/Qwen2-7B-Code-Instruct: 指定要加载的 Hugging Face 模型标识符。vLLM 会在本地缓存不存在时自动下载。•--trust-remote-code: 必须指定因为 Qwen 模型仓库包含执行所需的自定义代码。•--dtype bfloat16: 指定模型运算的数据类型。bfloat16在较新的 GPU 架构 (Ampere 及之后) 上通常有较好的性能和显存效益。若 GPU 不支持可尝试float16或auto。•--gpu-memory-utilization 0.90: 设置 vLLM 可使用的 GPU 显存比例上限此处为 90%。请根据实际可用显存调整。•--max-model-len 8192: 模型能处理的最大序列长度上下文窗口大小。此值受模型本身和可用 VRAM 的限制。•--tensor-parallel-size 1: 用于张量并行处理的 GPU 数量。单 GPU 设置为 1。•--port 8000: API 服务器监听的端口号。•--host 127.0.0.1: API 服务器绑定的主机地址。使用127.0.0.1或localhost仅允许本机访问使用0.0.0.0则允许来自局域网内其他设备的访问。• 打开终端确保已激活之前创建的虚拟环境运行以下命令验证服务器状态:• 服务器启动过程需要时间包括下载模型如果首次运行和加载到 GPU。• 当终端显示类似INFO: Uvicorn running on http://host:port的日志信息时表示服务器已成功启动并准备就绪。• 可以尝试在浏览器中访问http://localhost:8000/docs假设使用默认 host 和 port应能看到 vLLM 提供的 OpenAPI (Swagger) 文档界面。请保持此终端窗口持续运行vLLM 服务器需要运行以供后续的 Streamlit 应用调用。步骤三创建 Streamlit 前端应用在 vLLM 服务器运行后我们开始编写 Streamlit 代码来创建用户交互界面。创建 Python 文件:• 在您的项目目录下创建一个 Python 文件例如命名为app.py。编写 Streamlit 代码:import streamlit as st from openai import OpenAI # 使用 OpenAI 库连接 vLLM 的兼容 API # --- 配置参数 --- VLLM_API_BASE http://localhost:8000/v1# vLLM 服务器 API 地址 VLLM_API_KEY dummy# OpenAI 库需要一个 API Key但 vLLM 不需要填入任意非空字符串即可 MODEL_NAME Qwen/Qwen2-7B-Code-Instruct# 用于界面显示的模型名称 SYSTEM_PROMPT You are a helpful AI coding assistant based on Qwen. Respond concisely and focus on the code or explanation requested.# 系统提示语 # --- Streamlit 页面配置 --- st.set_page_config( page_title本地 Qwen 代码助手, page_icon, layoutwide ) st.title(本地 Qwen 代码助手 (vLLM 驱动)) st.caption(f当前模型: {MODEL_NAME}) # --- 初始化 OpenAI 客户端指向本地 vLLM 服务器 --- try: client OpenAI( api_keyVLLM_API_KEY, base_urlVLLM_API_BASE, ) except Exception as e: st.error(f初始化 OpenAI 客户端失败: {e}) st.stop() # 如果客户端初始化失败则停止执行 # --- 初始化聊天记录 (使用 Streamlit session state) --- ifmessagesnotin st.session_state: st.session_state.messages [{role: system, content: SYSTEM_PROMPT}] # --- 显示历史消息 --- # 跳过系统消息仅显示 user 和 assistant 的对话 for message in st.session_state.messages: if message[role] ! system: with st.chat_message(message[role]): st.markdown(message[content]) # --- 处理用户输入 --- if prompt : st.chat_input(请输入您的问题...): # 1. 将用户消息添加到聊天记录并显示 st.session_state.messages.append({role: user, content: prompt}) with st.chat_message(user): st.markdown(prompt) # 2. 准备发送给 vLLM 的消息列表 messages_for_api st.session_state.messages # 3. 调用 vLLM API try: with st.chat_message(assistant): message_placeholder st.empty() # 创建占位符以流式显示响应 full_response # 使用流式 API 获取响应 stream client.chat.completions.create( modelMODEL_NAME, # 此参数对于vLLM的OpenAI兼容API通常是必需的但vLLM会使用启动时加载的模型 messagesmessages_for_api, streamTrue, max_tokens2048, # 设置最大生成 token 数量 temperature0.7, # 控制生成文本的随机性 # top_p0.9, # 可选的采样参数 ) for chunk in stream: content chunk.choices[0].delta.content if content: full_response content # 更新占位符内容模拟打字效果 message_placeholder.markdown(full_response ▌) # 显示最终完整响应 message_placeholder.markdown(full_response) # 4. 将助手响应添加到聊天记录 st.session_state.messages.append({role: assistant, content: full_response}) except Exception as e: st.error(f与 vLLM 服务器通信时发生错误: {e}) # 如果发生错误考虑移除最后一条用户消息以允许重试 if st.session_state.messages and st.session_state.messages[-1][role] user: st.session_state.messages.pop() # --- (可选) 添加清除聊天记录的功能 --- iflen(st.session_state.messages) 1: # 仅当有对话记录时显示 if st.sidebar.button(清除聊天记录): # 重置聊天记录为仅包含系统提示 st.session_state.messages [{role: system, content: SYSTEM_PROMPT}] st.rerun() # 重新运行脚本以刷新界面代码说明:•配置部分:定义了连接 vLLM 服务器所需的基本信息。•Streamlit 界面:使用st.set_page_config,st.title,st.caption设置页面基本元素。•OpenAI 客户端:初始化openai客户端实例将其base_url指向本地运行的 vLLM 服务器地址。•会话状态管理:利用st.session_state来存储和维护messages列表确保在用户多次交互之间聊天记录得以保留。•消息显示:遍历st.session_state.messages使用st.chat_message区分用户和助手消息并以 Markdown 格式渲染内容。•输入处理:st.chat_input组件用于接收用户在界面底部的输入。•API 调用与流式响应:调用client.chat.completions.create方法与 vLLM 服务器通信。设置streamTrue以启用流式传输。通过迭代返回的stream对象逐步接收模型生成的响应片段 (chunk)并使用st.empty()和markdown()动态更新界面提供实时反馈。•状态更新:将模型生成的完整响应添加到st.session_state.messages中。•错误处理:使用try...except块捕获与 vLLM 服务器通信过程中可能出现的异常。•清除功能 (可选):在侧边栏添加一个按钮用于重置聊天记录。• 将以下代码复制并粘贴到app.py文件中步骤四运行本地编码助手所有组件准备就绪后按以下步骤运行应用程序启动 vLLM 服务器 (若未运行):# (参考命令) 终端 1: # python -m vllm.entrypoints.openai.api_server --model Qwen/Qwen2-7B-Code-Instruct --trust-remote-code --dtype bfloat16 --gpu-memory-utilization 0.90• 确保在第一个终端窗口中vLLM 服务器正在运行并监听在预期的地址例如http://localhost:8000。运行 Streamlit 应用:# 终端 2: streamlit run app.py• 打开第二个终端窗口同样需要激活虚拟环境。• 切换到包含app.py文件的目录。• 执行以下命令交互使用:• Streamlit 会自动在默认浏览器中打开一个新的标签页并加载由app.py创建的Web界面。您应能看到应用标题和底部的聊天输入框。• 现在您可以在输入框中输入编程相关的问题例如• “请提供一个计算斐波那契数列第 n 项的 Python 函数。”• “如何在 JavaScript 中发起 GET 请求”• “请解释 Rust 语言中的所有权概念。”• “用 C 实现快速排序算法。”• 模型通过 vLLM 生成的回答将实时显示在聊天界面中。总结与后续改进方向至此您已成功使用 Qwen Code 模型、vLLM 推理引擎和 Streamlit 框架构建并运行了一个基础的、完全本地化的私有 LLM 编程助手。该基础版本能够满足许多常见的编码辅助需求。未来可以考虑从以下几个方面进行改进和扩展•上下文长度管理:当前实现发送完整的聊天历史。对于长对话可能需要实现更复杂的上下文截断或摘要策略以适应模型的max-model-len限制。•参数可配置化:在 Streamlit 界面中添加控件允许用户动态调整模型的生成参数如temperature,max_tokens等。•代码格式化与高亮:对模型返回的代码片段应用语法高亮Streamlit 的st.markdown已支持多种语言或集成外部代码格式化工具。•文件处理能力:扩展应用功能允许用户上传代码文件让助手针对特定文件内容进行分析或修改。•多模型支持:若硬件资源允许可探索通过 vLLM 同时服务多个不同模型并在前端提供模型切换选项。•错误处理与用户反馈:实现更细致的错误处理机制和更友好的用户反馈信息。希望本教程能为您探索和应用本地化大型语言模型提供有益的参考。大模型算是目前当之无愧最火的一个方向了算是新时代的风口有小伙伴觉得作为新领域、新方向人才需求必然相当大与之相应的人才缺乏、人才竞争自然也会更少那转行去做大模型是不是一个更好的选择呢是不是更好就业呢是不是就暂时能抵抗35岁中年危机呢答案当然是这样大模型必然是新风口那如何学习大模型 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是最先掌握AI的人将会比较晚掌握AI的人有竞争优势。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。但现在很多想入行大模型的人苦于现在网上的大模型老课程老教材学也不是不学也不是基于此我用做产品的心态来打磨这份大模型教程深挖痛点并持续修改了近100余次后终于把整个AI大模型的学习路线完善出来在这个版本当中您只需要听我讲跟着我做即可为了让学习的道路变得更简单这份大模型路线学习教程已经给大家整理并打包分享出来, 有需要的小伙伴可以扫描下方二维码领取↓↓↓CSDN大礼包全网最全《LLM大模型学习资源包》免费分享**安全咨料放心领取**一、大模型经典书籍免费分享AI大模型已经成为了当今科技领域的一大热点那以下这些大模型书籍就是非常不错的学习资源。二、640套大模型报告免费分享这套包含640份报告的合集涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)三、大模型系列视频教程免费分享四、2025最新大模型学习路线免费分享我们把学习路线分成L1到L4四个阶段一步步带你从入门到进阶从理论到实战。L1阶段:启航篇丨极速破界AI新时代L1阶段了解大模型的基础知识以及大模型在各个行业的应用和分析学习理解大模型的核心原理、关键技术以及大模型应用场景。L2阶段攻坚篇丨RAG开发实战工坊L2阶段AI大模型RAG应用开发工程主要学习RAG检索增强生成包括Naive RAG、Advanced-RAG以及RAG性能评估还有GraphRAG在内的多个RAG热门项目的分析。L3阶段跃迁篇丨Agent智能体架构设计L3阶段大模型Agent应用架构进阶实现主要学习LangChain、 LIamaIndex框架也会学习到AutoGPT、 MetaGPT等多Agent系统打造Agent智能体。L4阶段精进篇丨模型微调与私有化部署L4阶段大模型的微调和私有化部署更加深入的探讨Transformer架构学习大模型的微调技术利用DeepSpeed、Lamam Factory等工具快速进行模型微调并通过Ollama、vLLM等推理部署框架实现模型的快速部署。L5阶段专题集丨特训篇 【录播课】全套的AI大模型学习资源已经整理打包有需要的小伙伴可以微信扫描下方二维码免费领取CSDN大礼包全网最全《LLM大模型学习资源包》免费分享**安全资料放心领取**

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询