💻 源码
# 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()