1.3、AI及LLM基础:Streamlit的基础开发

Streamlit

Streamlit开发文档

官方文档:https://docs.streamlit.io/

中文文档:https://blog.youkuaiyun.com/weixin_44458771/article/details/135495928

Streamlit命令行启动

pip install streamlit
streamlit run app.py --server.port 8501

配置Pycharm调试Streamlit应用

开发环境

PyCharm Community Edition 2024

Win10/11

Streamlit 1.39.0

创建应用

app.py

import streamlit as st

st.header("hello")
st.write("this is a streamlit demo")

启动应用

设置参数:

script:D:/software/python/python-3.12.4/.venv/Scripts/streamlit

script parameters:run app.py

调试应用

点击调试按钮会报错。

经过分析,是因为选择的<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">script</font>, 文件名为

<font style="color:rgb(51, 51, 51);">D:/software/python/python-3.12.4/.venv/Scripts/</font><font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">streamlit.exe</font>

streamlit.exe 是一个二进制文件,导致字符集解析出错。在这里把 linux 环境下的 streamlit 复制过来。

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from streamlit.web.cli import main
if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

复制到 D:/software/python/python-3.12.4/.venv/Scripts/

再次启动 debug 按钮,报错如下

解决如下:

Help | Find Action | Registry | python.debug.asyncio.repl 去掉勾。

再次点击 debug 就可以正常调试了。

<think>好的,我现在要帮用户解决如何将DeepSeek部署到本地且有可视化界面,还要免费的问题。首先,我需要确认用户提到的“DeepSeek”具体指什么。因为DeepSeek可能是一个AI模型或者某个特定软件,但根据常见的部署需求,可能是指类似ChatGPT的开源模型,比如DeepSeek-R1或者DeepSeek-Math之类的模型。不过,用户可能误将某个模型称为DeepSeek,或者是指某个特定的开源项目。需要先明确这一点。 假设用户指的是类似LLM(大语言模型)的开源项目,比如DeepSeek-7B之类的模型,那么部署到本地需要几个步骤:获取模型、搭建环境、部署模型、创建API接口、构建可视化界面。同时,要确保所有工具都是免费的。 首先,用户需要确认模型的可用性。比如,DeepSeek的开源模型可能在Hugging Face或GitHub上提供下载。需要检查模型是否开放权重,以及使用许可是否允许本地部署。 然后,环境搭建可能需要Python、PyTorch或TensorFlow等框架。用户需要安装这些依赖,并确保硬件符合要求,比如有足够的GPU内存,否则可能需要量化模型或使用CPU推理,但速度会慢。 接下来,部署模型可能需要使用像FastAPI或Flask来创建API服务。这样,模型可以通过HTTP请求进行交互。 可视化界面部分,可以考虑使用Gradio或Streamlit这两个免费的Python库,它们能快速构建Web界面,并且与模型API对接。这两个库都是开源的,适合本地部署。 不过,可能存在一些问题。例如,用户是否有足够的硬件资源?如果模型很大,比如7B参数,可能需要至少16GB的RAM和足够的显存。如果用户只有CPU,推理速度会很慢,但可能仍然可行。 另外,模型的下载和加载可能需要一定的技术知识,比如使用transformers库加载模型,处理可能的依赖冲突。需要指导用户正确安装库的版本。 还要考虑是否有现成的示例代码或教程。例如,Hugging Face的模型页面通常有使用示例,用户可以参考这些代码进行部署。同时,Gradio和Streamlit都有官方文档和社区支持,方便用户构建界面。 可能的步骤总结如下: 1. 获取模型:从Hugging Face或官方渠道下载模型文件。 2. 安装依赖:Python环境、PyTorch、transformers库等。 3. 编写推理代码:使用模型进行预测的脚本。 4. 创建API:用FastAPI或Flask包装模型推理函数。 5. 构建前端:使用Gradio或Streamlit创建交互式界面,并连接到API。 6. 运行服务:启动API和前端服务,通过浏览器访问。 需要提醒用户注意模型许可,确保遵守开源协议。同时,免费的工具可能存在性能限制,尤其是大型模型在本地运行可能较慢。如果用户遇到问题,可能需要调试环境配置或代码错误。 另外,是否有其他替代方案?比如使用Ollama或LM Studio这类工具,它们简化了本地部署,并提供GUI。但需要确认是否支持所需的DeepSeek模型。 最后,确保步骤清晰,分步说明,并给出具体的代码示例和命令,帮助用户一步步完成部署。</think>以下是分步指南,帮助你在本地免费部署DeepSeek(假设为开源LLM)并添加可视化界面: --- ### **步骤1:确认模型来源** 1. 访问Hugging Face官网(huggingface.co) 2. 搜索确认是否存在官方开源的DeepSeek模型(如`deepseek-ai/deepseek-llm-7b-chat`) 3. 检查模型文件是否包含: - `pytorch_model.bin` (模型权重) - `config.json` (配置文件) - `tokenizer.json` (分词器) --- ### **步骤2:准备Python环境** ```bash # 创建虚拟环境 conda create -n deepseek_env python=3.10 conda activate deepseek_env # 安装核心依赖 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 # 根据CUDA版本选择 pip install transformers accelerate gradio ``` --- ### **步骤3:编写模型加载代码** 创建`deepseek_app.py`: ```python from transformers import AutoTokenizer, AutoModelForCausalLM import gradio as gr # 加载模型(修改为你的实际路径) model_path = "./deepseek-7b-chat" tokenizer = AutoTokenizer.from_pretrained(model_path) model = AutoModelForCausalLM.from_pretrained(model_path, device_map="auto") def generate_response(input_text): inputs = tokenizer(input_text, return_tensors="pt").to(model.device) outputs = model.generate(**inputs, max_new_tokens=100) return tokenizer.decode(outputs[0], skip_special_tokens=True) # 创建Gradio界面 interface = gr.Interface( fn=generate_response, inputs=gr.Textbox(lines=2, placeholder="输入你的问题..."), outputs="text", title="DeepSeek 本地版" ) interface.launch(server_port=7860, share=False) # 通过localhost:7860访问 ``` --- ### **步骤4:优化部署方案** 1. **硬件不足时的解决方案**: ```python # 使用4-bit量化(需安装bitsandbytes) model = AutoModelForCausalLM.from_pretrained( model_path, load_in_4bit=True, device_map="auto" ) ``` 2. **API服务化**(可选): 使用FastAPI创建API: ```python from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() class Query(BaseModel): prompt: str @app.post("/chat") async def chat(query: Query): return {"response": generate_response(query.prompt)} ``` --- ### **步骤5:启动服务** ```bash # 直接运行Gradio应用 python deepseek_app.py # 如果使用FastAPI uvicorn api:app --host 0.0.0.0 --port 8000 ``` --- ### **常见问题解决** 1. **显存不足**: - 尝试更小的模型版本(如1.3B/7B) - 使用CPU模式(添加`device_map="cpu"`) 2. **依赖冲突**: ```bash pip freeze > requirements.txt # 导出依赖列表排查冲突 ``` 3. **中文支持**: 在prompt中明确指定语言: ```python def generate_response(input_text): formatted_input = f"用中文回答:{input_text}" # ...后续代码不变... ``` --- ### **替代方案推荐** 1. **使用Ollama**(需确认模型支持): ```bash ollama run deepseek # 如果存在官方镜像 ``` 2. **LM Studio工具**: - 下载地址:lmstudio.ai - 支持直接加载GGUF格式的模型 --- **注意事项**: 1. 确认模型许可协议允许本地部署 2. 7B模型需要至少10GB磁盘空间 3. 首次运行会自动下载依赖(需稳定网络) 通过上述步骤,你可以在本地拥有一个类似ChatGPT的可视化对话界面,整个过程无需支付任何云服务费用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hugo_Hoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值