本地 运行大模型比较 方便,我们就弄个本地的,使用ollama进行搭建。
一、下载大模型服务Ollama
到https://ollama.com/download下载安装包(以下以Windows为例)。
二、安装Ollama软件
安装好后在任务校址有启动图标
三、下载摘取模型,以千问2.5为例
打开模型地址:https://ollama.com/library/qwen2.5:7b-instruct
下载对应模型,本人下载qwen2.5:7b-instruct ,如下图所示:
四、运行模型进行对话
执行命令:ollama run qwen2.5:7b-instruct 如下图所示:
五、搭建网页版本对话
打开VSCode,输入代码:
import streamlit as st # 导入 Streamlit 库,用于快速构建 Web 应用 from openai import OpenAI # 导入 OpenAI 客户端,用于与模型交互 # 初始化客户端,设置 Ollama 本地服务的 URL 和默认 API Key client = OpenAI( base_url='http://localhost:11434/v1/', # 指定 Ollama 本地服务 URL api_key='ollama', # 使用默认的 API Key (如为本地服务一般不需实际验证) ) def main(): # 设置 Streamlit 应用的标题 st.title("基于 Qwen 模型的实时聊天应用") # 在页面上添加一个文本输入框,用户可以输入自己的问题或内容 user_input = st.text_input("请输入内容:", "") # 默认内容为空 # 添加一个按钮,点击后触发生成操作 if st.button("生成"): # 检测用户是否点击了“生成”按钮 if user_input.strip(): # 确保用户输入了非空内容 with st.spinner("生成中..."): # 显示一个加载动画,提示用户正在生成 # 调用模型的流式生成接口,生成内容 chat_completion = client.chat.completions.create( messages=[ # 输入内容列表 { 'role': 'user', # 定义角色为用户 'content': user_input, # 用户输入的内容 } ], model='qwen2.5:7b-instruct', # 指定使用的模型名称qwen2.5:7b-instruct qwen2.5:0.5b stream=True, # 启用流式模式,实时获取生成结果 temperature=0.5, # 设置生成的随机性,0.5 是中等随机性 max_tokens=512, # 设置最大生成长度 top_p=0.8 # 设置采样的概率范围,较高的值会更多样化 ) # 准备存储生成结果的列表 result = [] response_placeholder = st.empty() # 创建一个占位符,用于实时更新生成结果 # 遍历模型返回的流式内容 for chunk in chat_completion: # 检查当前 chunk 是否包含生成内容的 delta 属性 if hasattr(chunk.choices[0].delta, 'content'): # 如果有 content 属性 content = chunk.choices[0].delta.content # 获取生成的内容 result.append(content) # 将内容添加到结果列表中 response_placeholder.text(''.join(result)) # 实时更新显示结果 else: # 如果用户没有输入任何内容,显示警告提示 st.warning("请输入内容以开始生成!") if __name__ == "__main__": main()
可以不用定义main函数
运行 :streamlit run g:/aBigModels/2Codes/FirstModels/app.py
由于streamlit 使用这个服务,所以单独运行的
六、运行在网页上
运行后会启动网页,如果没有自动打开需要自己打开浏览器
输入对话,下面内容就回复,如上图所示。
七、修改默认模型存放地址
原来默
认地址放在 C盘
修改后变成环境变量的位置,如上图所示。