ollama学习-使用部署Qwen3大模型
项目地址:https://gitcode.com/Xian-HHappy/ollama_study
# ollama_study
1、运行以下命令即可完成安装
curl -fsSL https://ollama.com/install.sh | sh
2、运行以下命令启动 Ollama
sudo systemctl start ollama
3、通过以下命令查看 Ollama 的运行状态
sudo systemctl status ollama
4、拉取模型
ollama pull qwen3:0.6b
or
ollama pull qwen3:1.7b
5、启动模型
* 以 qwen3:1.7b 举例。
ollama run qwen3:1.7b
# 配置参数启动
ollama run qwen3:1.7b --max-length 200 --temperature 0.7
6、停止模型
ollama stop qwen3:1.7b
二、后台启动ollama服务
*使用 tmux 后台启动
1、安装 tmux
sudo apt-get install tmux2、启动一个新的 tmux 会话
tmux new -s ollama3、在 tmux 会话中运行 Ollama 模型
ollama run qwen3:1.7b4、按 Ctrl+B 然后按 D 键,将 tmux 会话放到后台。5、重新连接到后台的 tmux 会话:
tmux attach -t ollama
三、搭建python 中继服务
Demo1
* 因为需要一些定制化开发,根据自己的业务进行开发,一般需要中继服务。
* 以下是通过python开发的中继服务示例。
pip install ollama -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
* 实现代码
import ollamadef api_generate(text: str):print(f'提问:{text}')# 调用 ollama.generate 方法,设置 stream=Falseresponse = ollama.generate(stream=False, # 非流式model='qwen3:1.7b', # 修改大模型名称prompt=text,)print('-----------------------------------------')print(response['response']) # 输出完整的响应内容print('-----------------------------------------')print('总耗时:{}'.format(response['total_duration']))print('-----------------------------------------')# todo 业务定制化
# ······api_generate(text='请说下西游记的主要人物,讲述了一个什么故事?')
Demo2
* 构建 rag
* 按照python库
pip install langchain -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simplepip install -U langchain-community -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simplepip install sentence-transformers -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simplepip install faiss-cpu -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
* 实现代码
import ollama
from langchain.embeddings import HuggingFaceEmbeddings
from langchain.vectorstores import FAISS
from langchain.llms import Ollama# 初始化 Ollama 模型
ollama_model = Ollama(model='qwen3:1.7b')# 初始化嵌入模型(用于将文本转换为向量)
embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2")# 初始化 FAISS 向量存储(用于检索)
vectorstore = FAISS.from_texts(["唐僧是取经的领导者,孙悟空是他的徒弟,猪八戒和沙僧也是他的徒弟。","《西游记》讲述了唐僧师徒四人前往西天取经的故事。"],embeddings
)def api_generate(text: str):print(f'提问:{text}')# 检索相关文档docs = vectorstore.similarity_search(text, k=1)context = "\n".join([doc.page_content for doc in docs])# 构造完整的提示,包含检索到的上下文full_prompt = f"{context}\n\n{ollama_model.template}{text}"# 调用 ollama.generate 方法,设置 stream=Falseresponse = ollama.generate(stream=False, # 非流式model='qwen3:1.7b', # 修改大模型名称prompt=full_prompt,)print('-----------------------------------------')print(response['response']) # 输出完整的响应内容print('-----------------------------------------')print('总耗时:{}'.format(response['total_duration']))print('-----------------------------------------')# 测试
api_generate(text='请说下西游记的主要人物,讲述了一个什么故事?')