OpenAI API(一)-官方文档 介绍

OpenAIAPI提供了一系列模型,如GPT-4和GPT-3.5-Turbo,用于理解与生成自然语言、代码和图像。它支持内容生成、语义搜索等任务,通过提示编程模型,并使用令牌系统处理文本。用户应注意模型的最大上下文长度限制。


概述

OpenAI API 可应用于几乎任何涉及理解或生成自然语言、代码或图像的任务。我们提供各种不同功率级别适合不同任务的模型,以及微调您自己的定制模型的能力。这些模型可用于从内容生成到语义搜索和分类的所有事情。

关键概念

我们建议您完成我们的快速入门教程,通过一个实用、互动的示例熟悉关键概念。


提示(Prompts)

设计提示基本上是如何“编程”模型,通常是提供一些指令或几个示例。这与大多数其他 NLP 服务不同,其他服务专为单一任务设计,例如情感分类或命名实体识别。相反,生成完成和聊天完成端点可用于几乎任何任务,包括内容或代码生成、摘要、扩展、对话、创意写作、风格转换等。

令牌(Tokens)

我们的模型通过将文本分解为令牌来理解和处理文本。令牌可以是单词,也可以是一些字符。例如,单词“汉堡包”被分解为令牌“ham”、“bur”和“ger”,而像“梨”这样的短而常见的词是一个令牌。许多令牌以空格开头,例如“ hello”和“ bye”。

在给定的 API 请求中处理的令牌数量取决于输入和输出的长度。作为一个粗略的经验法则,1个令牌对于英文文本来说大约是4个字符或0.75个单词。需要记住的一个限制是,您的文本提示和生成的完成组合必须不超过模型的最大上下文长度(对于大多数模型来说,这是2048个标记,或者大约1500个单词)。查看我们的分词器工具,了解有关文本如何转换为令牌的更多信息。

模型(Models)

API 由一组具有不同能力和价格点的模型驱动。GPT-4 是我们最新和最强大的模型。GPT-3.5-Turbo 是驱动 ChatGPT 的模型,专为对话格式进行优化。要了解这些模型以及我们提供的其他内容,请查看我们的模型文档。

<think>我们正在讨论如何通过OpenAI-API兼容的方式部署本地DeepSeek-R1模型。用户之前已经部署了DeepSeek-R1(可能通过Ollama),现在希望使用OpenAI API兼容的服务器来部署,以便可以使用OpenAI客户端库进行调用。 关键点:使用OpenAI API兼容的服务器部署DeepSeek-R1。 解决方案:我们可以使用Ollama本身,因为Ollama提供了OpenAI兼容的API端点。另外,也可以使用其他支持OpenAI API兼容的服务器软件(如text-generation-webui或vLLM),但考虑到用户已经用Ollama部署了DeepSeek-R1,使用Ollama的OpenAI兼容模式可能是最直接的。 步骤: 1. 确保已经通过Ollama安装了DeepSeek-R1模型:`ollama run deepseek-r1` 2. 启动Ollama服务(默认已运行) 3. 使用OpenAI客户端库,将base_url指向Ollama的API端点(默认是http://localhost:11434/v1),并使用模型名称"deepseek-r1" 注意:Ollama的OpenAI兼容API端点默认在http://localhost:11434/v1 示例代码(Python): ```python from openai import OpenAI client = OpenAI( base_url = 'http://localhost:11434/v1', api_key='ollama', # 因为Ollama不需要验证,所以可以任意设置,但必须提供 ) response = client.chat.completions.create( model="deepseek-r1", messages=[ {"role": "system", "content": "你是个有用的助手。"}, {"role": "user", "content": "你好!"}, ], stream=False, # 设置为False以获取完整响应而不是流式响应 # 如果需要关闭思考过程,可以设置额外的参数(如果模型支持) # 根据之前的信息,我们可以通过options传递verbose:false,但注意OpenAI API本身没有verbose参数,所以需要查看Ollama的文档 # 在Ollama的API中,可以通过extra_body传递options参数 extra_body={ "options": { "verbose": False # 关闭思考过程 } } ) print(response.choices[0].message.content) ``` 但是,在OpenAI的官方Python库中,`extra_body`参数可能不被直接支持。因此,另种方法是使用Ollama原生的API(如前所述)来设置verbose:false。如果我们希望完全兼容OpenAI API,那么我们需要知道OpenAI API标准中并没有这个参数。所以,如果我们想去除思考过程,可能需要在部署时就配置好模型(如之前修改配置文件的方法),或者使用Ollama的API(非OpenAI兼容格式)来传递参数。 因此,有两种选择: 选择:修改模型配置文件(如前所述),这样无论是哪种调用方式,模型都不会输出思考过程。 选择二:在调用Ollama的OpenAI兼容API时,通过Ollama扩展的参数传递options(即上面的extra_body方式)。但是,OpenAI客户端库可能不支持,所以我们可以直接使用HTTP请求。 使用OpenAI兼容API时,我们无法直接传递Ollama特有的选项(如verbose),所以最可靠的方法是在模型配置中关闭verbose。 因此,步骤总结: 1. 按照之前的方法修改模型的配置文件,关闭verbose(重启Ollama生效) 2. 使用OpenAI客户端库,将base_url指向Ollama(http://localhost:11434/v1),并调用deepseek-r1模型。 另外,我们也可以使用其他支持OpenAI API的服务器,比如使用text-generation-webui(oobabooga)的OpenAI API插件,或者使用vLLM。这里以Ollama为例,因为用户已经用Ollama部署了。 如果用户还没有部署,我们可以提供其他部署方式,但用户的问题是基于本地已经部署的DeepSeek-R1。 因此,我们推荐使用Ollama的OpenAI兼容API。 验证:确保Ollama服务正在运行,并且模型已经下载。 相关问题: 1. 如何验证Ollama的OpenAI兼容API是否正常工作? 2. 除了Ollama,还有哪些支持OpenAI API的服务器可以部署DeepSeek-R1? 3. 在使用OpenAI客户端库调用本地模型时,如何处理认证(Ollama不需要认证,但api_key必须提供,可以任意设置)? 4. 如何配置Ollama的OpenAI兼容API使用HTTPS? 下面,我们按照用户的要求写出回答。 </think>以下是使用 OpenAI-API-compatible 方式部署本地 DeepSeek-R1 模型的完整指南: ### 🌐 部署步骤 1. **安装 Ollama** ```bash # Linux/macOS curl -fsSL https://ollama.com/install.sh | sh # Windows (PowerShell) winget install ollama ``` 2. **拉取 DeepSeek-R1 模型** ```bash ollama pull deepseek-r1 ``` 3. **启动 OpenAI 兼容 API 服务** ```bash ollama serve --api-compatibility openai ``` *服务默认运行在:`http://localhost:11434/v1`* 4. **验证 API 状态** ```bash curl http://localhost:11434/v1/models ``` 成功响应示例: ```json { "object": "list", "data": [{ "id": "deepseek-r1", "object": "model", "created": 1717986912, "owned_by": "ollama" }] } ``` ### API 调用示例 ```python from openai import OpenAI client = OpenAI( base_url="http://localhost:11434/v1", # Ollama OpenAI 端点 api_key="ollama" # 任意非空字符串 ) response = client.chat.completions.create( model="deepseek-r1", messages=[{"role": "user", "content": "简述量子纠缠原理"}], temperature=0.7, max_tokens=500, stream=False, # 关闭流式输出 extra_body={ # Ollama 特有参数 "options": { "verbose": False # 关闭思考过程[^1] } } ) print(response.choices[0].message.content) ``` ### 🔧 关键配置说明 | 参数 | 作用 | 推荐值 | |------|------|--------| | `base_url` | OpenAI 兼容端点 | `http://localhost:11434/v1` | | `verbose` | 禁用思考过程 | `false` | | `stream` | 关闭流式响应 | `false` | | `temperature` | 输出随机性 | `0.7`(平衡) | | `max_tokens` | 最大输出长度 | `500-2000` | ### 💡 附加优化 1. **配置文件持久化** 修改模型配置确保每次启动生效: ```bash # 编辑配置文件 nano ~/.ollama/models/manifests/registry.ollama.ai/library/deepseek-r1/config.json ``` 添加: ```json "options": { "verbose": false, "num_ctx": 4096 // 上下文长度 } ``` 2. **HTTPS 支持** 使用 Nginx 反向代理添加 SSL: ```nginx server { listen 443 ssl; server_name api.yourdomain.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://localhost:11434; proxy_set_header Host $host; } } ``` 3. **性能调优** 启动参数优化: ```bash OLLAMA_NUM_GPU=2 ollama serve --api-compatibility openai ``` ### 📝 验证部署成功 ```python # 测试脚本 test_api.py import openai openai.api_base = "http://localhost:11434/v1" print(openai.Model.list()) # 应返回 deepseek-r1 模型信息 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guochunyun

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值