# TODO 1.python中使用ollama
def dm01():
import ollama
# 聊天式
response = ollama.chat(model="deepseek-r1:1.5b", messages=[{"role": "user", "content": "为什么天空是蓝色的?"}])
print('response1-->', response)
print('response.message-->', response["message"])
## 远程调用的方式
from ollama import Client
client = Client(host="http://127.0.0.1:11434") # 虚拟机的需要改ip
response = client.chat(model="deepseek-r1:1.5b", messages=[{"role": "user", "content": "你是什么模型?"}])
print('response2-->', response)
print('response.message.content-->', response["message"]['content'])
## 流式调用
stream = client.chat(model="deepseek-r1:1.5b", messages=[{"role": "user", "content": "你叫什么名字?"}], stream=True)
for chunk in stream:
print(chunk["message"]['content'], end="")
# TODO 2.langchain调用
def dm02():
# 0.x版本导包
# from langchain_community.llms import Ollama
# 1.x版本导包
from langchain_ollama import OllamaLLM
llm = OllamaLLM(base_url="http://127.0.0.1:11434", model="deepseek-r1:1.5b")
result = llm.invoke("你叫什么名字?")
print("result-->", result)
# TODO 3.HTTP调用
def dm03():
import requests
import json
url = "http://127.0.0.1:11434/api/chat"
headers = {"Content-Type": "application/json"}
data = {"model": "deepseek-r1:1.5b", "messages": [{"role": "user", "content": "你叫什么名字?"}], "stream": False}
response = requests.post(url, headers=headers, json=data)
# print('response1-->', response.json())
url = "http://127.0.0.1:11434/api/chat"
headers = {"Content-Type": "application/json"}
data = {"model": "deepseek-r1:1.5b", "messages": [{"role": "user", "content": "你叫什么名字?"}], "stream": True}
response = requests.post(url, headers=headers, json=data)
for chunk in response.iter_lines():
print(json.loads(chunk.decode("utf-8"))['message']['content'], end='')
# TODO 4.openai sdk调用Ollama
def dm04():
from openai import OpenAI
client = OpenAI(base_url="http://localhost:11434/v1", api_key="xx") # vllm部署可以指定api_key
stream = client.chat.completions.create(
model="deepseek-r1:1.5b",
messages=[{"role": "user", "content": "写一首关于春天的七言绝句"}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
if __name__ == '__main__':
# dm01()
# dm02()
# dm03()
dm04()