基于ollama 实现模型多轮对话

ollama 下载安装

Download Ollama on Windows](https://ollama.com/download) Ollama官网

下载安装后,ollama在c盘模型安装路径也默认为c盘,如需更改可以更新环境变量

在这里插入图片描述

在ollama安装路径下启动cmd ollama run qwen2.5:7B 即可自动下载并运行

在这里插入图片描述

python 使用ollama

安装ollama库: pip install ollama
  • 代码实现

    • 方式一
    import ollama
    
    # 聊天式
    response = ollama.chat(model='qwen2.5:7b',
                           messages=[{'role': 'user', 'content': '你认识时崎狂三吗', }])
    print(response)
    print(response['message']['content'])
    # ⽣成式
    response = ollama.generate(model='qwen2.5:7b', prompt='为什么天空是蓝⾊的?')
    print(response)
    messages = []
    messages.append({'role': 'user', 'content': '你知道桐人吗'})
    response = ollama.chat(model='qwen2.5:7b', messages=messages)
    print(response['message']['content'])
    messages.append({'role': 'assistant', 'content': response['message']['content']})
    messages.append({'role': 'user', 'content': '他有什么成就'})
    response = ollama.chat(model='qwen2.5:7b', messages=messages)
    print(response['message']['content'])
    
    • 方式二
    # 可以远程调⽤ollama
    from ollama import Client
    # client = Client(host='http://192.168.1.100:11434')
    client = Client(host='http://127.0.0.1:11434')
    response = client.chat(model='qwen2:1.5b', messages=[
     {
     'role': 'user',
     'content': '为什么天空是蓝⾊的?',
     },
    ])
    print(response['message']['content'])
    
    • 方式三
      • 可以通过设置 stream=True 启⽤响应流,使函数调⽤返回⼀个 Python ⽣成器,其中 每个部分都是流中的⼀个对象。
    import ollama
    stream = ollama.chat(
     model='qwen2:1.5b',
     messages=[{'role': 'user', 'content': '为什么天空是蓝⾊的?'}],
     stream=True,
    )
    for chunk in stream:
     print(chunk['message']['content'], end='', flush=True)
    

longChain使用

安装langchain库: pip install langchain
安装langchain_community库: pip install langchain_community
from langchain_community.llms import Ollama

model = Ollama(model='qwen2.5:7b')
res = model.invoke('你好啊')
print(res)

requests 使用

安装requests库: pip install requests
host="xxx"
port="xxx"
url = f"http://{host}:{port}/api/chat"
model = "qwen2:1.5b"
1
2
3
4
本节⼩结
本章节主要介绍了⼤模型;并对接下来的项⽬实现进⾏环境配置⼯作。
headers = {"Content-Type": "application/json"}
data = {
 "model": model, #模型选择
 "options": {
 "temperature": 0. #为0表示不让模型⾃由发挥,输出结果相对较固定,
>0的话,输出的结果会⽐较放⻜⾃我
 },
 "stream": False, #流式输出
 "messages": [{
 "role": "system",
 "content":"你是谁?"
 }] #对话列表
 }
response=requests.post(url,json=data,headers=headers,timeout=60)
res=response.json()
print(res)
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐