当前位置: 首页 > news >正文

如何用OpenAI SDK调用Ollama LLM

Ollama目前内置了OpenAI Chat Completions API 的兼容端点,用户可以用OpenAI SDK访问本地Ollama模型,这里示例整个访问过程。

假设Ollama已安装,过程参考

在mac m1基于ollama运行deepseek r1_mac m1 ollama-CSDN博客

1 下载OpenAI SDK和模型

pip install openai

ollama pull qwen3:4b # chat 模型

ollama pull bge-m3:latest # embbeding 模型

2 开发测试例子

ollama目前支持openat的chat、emb等llm的访问。

1)chat接口

python chat例子

from openai import OpenAIclient = OpenAI(base_url="http://localhost:11434/v1",  # ollama openai addrapi_key="ollama"  # 本地未设置api key随意填
)
response = client.chat.completions.create(model="qwen3:4b",  # mac m1算力小使用4b小模型messages=messages=[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Who won the world series in 2020?"},{"role": "assistant", "content": "The LA Dodgers won in 2020."},{"role": "user", "content": "Where was it played?"}],temperature=0.7,  max_tokens=512  
)
print(response.choices[0].message.content)

curl chat例子

curl http://localhost:11434/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "qwen3:4b",
        "messages": [
            {
                "role": "system",
                "content": "You are a helpful assistant."
            },
            {
                "role": "user",
                "content": "Hello!"
            }
        ]
    }'

2) embedding接口

python emb 例子

import torch
from openai import OpenAI
client = OpenAI(base_url="http://localhost:11434/v1", # ollama openai addrapi_key="ollama"
)
texts = ["你好,什么是大模型?", "大模型是什么", "告诉我什么是大模型"]
def impl(texts):response = client.embeddings.create(model="bge-m3:latest", input=texts)embeddings = [e.embedding for e in response.data]return torch.tensor(embeddings)
embeddings = impl(texts)
print(embeddings.shape)

reference

---

OpenAI 兼容性

https://ollama.ac.cn/blog/openai-compatibility

ollam 提供兼容 OpenAI 格式的API

https://www.xiexianbin.cn/ai/ollama/api-compatible-openai/index.html

http://www.dtcms.com/a/323103.html

相关文章:

  • 智慧养老场景跌倒检测准确率↑32%:陌讯多模态融合算法实战解析
  • GPT-5深度解析:革命性AI模型的全面报告与实战指南
  • windows10 ubuntu 24.04 双系统 安装教程
  • ubuntu dpkg命令使用指南
  • 【排序算法】②希尔排序
  • Delphi:TList/TObjectList 设计中的 Notify 设计范式
  • Day38--动态规划--322. 零钱兑换,279. 完全平方数,139. 单词拆分,56. 携带矿石资源(卡码网),背包问题总结
  • 10 分钟用 FastAPI 将机器学习模型上线为 REST API
  • day28 IPC通信机制
  • C++隐式转换的魔法与陷阱:explicit关键字的救赎
  • RecyclerView 缓存机制
  • centos 怎么将一些命令设置为快捷命令
  • 2025华数杯数学建模C题:可调控生物节律LED光源全解析
  • LLM表征的提取方式
  • 【Python 高频 API 速学 ⑥】
  • 【Mac】MLX:Lora微调工作流
  • 【排序算法】①直接插入排序
  • QT第二讲-信号和槽
  • uniapp实现的圆形滚盘组件模板
  • ThingsBoard配置邮件发送保姆级教程(新版qq邮箱)
  • SkyWalking-2--Java Agent是什么?
  • Qt与嵌入式设备中的字节序问题
  • 客服Agent革命:智能客服系统的技术实现与效果评估
  • 八、《DaaS(设备即服务):企业轻资产化新路径》--从97.4%首期投入削减到AI算力高效迭代的范式革命
  • ​​​​​​​【Datawhale AI夏令营】多模态RAG财报问答挑战赛:学习笔记与上分思考
  • “黑影御剑飞行”视频引发的思考
  • 差分放大电路的四种接法
  • react-window
  • 组合期权:垂直价差
  • Playwright C# 自动登录并上传 Excel 文件 的可运行示例