拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Streamlit 快速搭建私人大模型交互界面

Streamlit 快速搭建私人大模型交互界面1. 安装依赖pip3 install streamlit openai2.代码import streamlit as st from openai import OpenAI # 1. 配置本地大模型参数 LOCAL_API_BASE http://192.168.1.10:8000/v1 LOCAL_MODEL_NAME Qwen/Qwen3-VL-30B-A3B-Instruct API_KEY None os.environ[NO_PROXY] 192.168.1.10 # 设置网页标题和图标 st.set_page_config(page_title私人本地 ChatGPT, page_icon) st.title( 我的私人本地大模型) # 初始化 OpenAI 客户端 client OpenAI(base_urlLOCAL_API_BASE, api_keyAPI_KEY) # 2. 初始化聊天历史记录 if messages not in st.session_state: st.session_state.messages [ {role: assistant, content: 你好我是你的私人 AI 助手有什么我可以帮你的吗} ] # 3. 渲染历史对话界面 for message in st.session_state.messages: with st.chat_message(message[role]): st.markdown(message[content]) # 4. 处理用户输入与模型响应 if user_input : st.chat_input(输入你的问题...): # 1. 将用户输入存入历史记录并显示在前端 st.session_state.messages.append({role: user, content: user_input}) with st.chat_message(user): st.markdown(user_input) # 2. 调用本地大模型并以流式Stream响应 with st.chat_message(assistant): response_placeholder st.empty() full_response try: stream client.chat.completions.create( modelLOCAL_MODEL_NAME, messages[ {role: m[role], content: m[content]} for m in st.session_state.messages ], streamTrue, ) # 动态接收文本块并刷新前端 for chunk in stream: if chunk.choices[0].delta.content is not None: full_response chunk.choices[0].delta.content response_placeholder.markdown(full_response ▌) # 流式结束后渲染最终的干净文本 response_placeholder.markdown(full_response) # 3. 将模型的回答完整存入历史记录 st.session_state.messages.append({role: assistant, content: full_response}) except Exception as e: st.error(f连接本地模型服务失败请检查服务是否开启。错误信息: {e})
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门