OpenAI基础开发示例代码

发布时间:2025-04-03 16:37
浏览量:0

OpenAI API官方文档

OpenAI API官方文档

 

DeepSeek API官方文档

首次调用 API | DeepSeek API Docs

 

对话补全

from openai import OpenAI

# for backward compatibility, you can still use `https://api.deepseek.com/v1` as `base_url`.
client = OpenAI(api_key="<your API key>", base_url="https://api.deepseek.com")

response = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {"role": "system", "content": "You are a helpful assistant"},
        {"role": "user", "content": "Hello"},
  ],
    max_tokens=1024,
    temperature=0.7,
    stream=False
)

print(response.choices[0].message.content)

 

对话补全接口常用参数列表

参数 类型 必填 默认值 介绍
model string - 指定使用的模型,例如 gpt-3.5-turbogpt-4 等。
messages array - 对话消息列表,每个消息包含 role(如 systemuserassistant)和 content(消息内容)。
temperature number 1 控制输出的随机性(0-2)。值越低结果越确定,越高越随机。
top_p number 1 核采样(Nucleus Sampling)的阈值(0-1),仅考虑概率质量超过此值的候选词。
n integer 1 生成多少条聊天补全选项。
stream boolean false 是否以流式(stream)形式逐步返回响应。
stop string/array null 指定停止生成的标记(如 ["\n", "。"]),遇到这些标记时停止生成。
max_tokens integer - 生成的最大 token 数(受模型限制)。未设置时,模型会自动选择。
presence_penalty number 0 惩罚重复出现的话题(-2.0 到 2.0)。正值避免重复话题。
frequency_penalty number 0 惩罚高频词汇(-2.0 到 2.0)。正值降低常见词的重复。
logit_bias object null 调整特定 token 的生成概率(如 {"token_id": bias_value},bias_value 范围 -100 到 100)。
user string - 用户标识符,用于监控滥用行为。
response_format object - 指定响应格式(如 { "type": "json_object" }),仅部分模型支持。
seed integer - 指定随机种子,确保可复现性(部分模型支持)。
tools array - 定义模型可调用的工具列表(如函数调用)。
tool_choice string/object - 控制模型是否使用工具,可选 auto(默认)、none 或指定工具(如 {"type": "function", "function": {"name": "my_function"}})。
logprobs boolean false 是否返回输出 token 的对数概率(部分模型支持)。
top_logprobs integer - 当 logprobs 为 true 时,返回每个位置概率最高的 top_logprobs 个 token(如 3)。

embeddings
from openai import OpenAI

# 创建client对象,在OpenAI()构造函数里,需要传递API_KEY和BASE_URL,当我们在环境变量里配置了这两个参数,则这里不需要再传递,它会自动去读取
client = OpenAI(api_key='xxx',base_url='https://api.openai.com/v1')

# 定义一个函数,参数1:text是输入的需要被向量化的内容,参数2:指定向量化模型
def get_embeddings(text, model='text-embedding-ada-002'):
    response = client.embeddings.create(input=text, model=model)
    return response.data[0].embedding


if __name__ == '__main__':
    text = input('请输入需要向量化的内容:')
    print(get_embeddings(text))

 

图片识别

from openai import OpenAI

client = OpenAI()

def get_image_info(img_url, model='gpt-4o'):
    response = client.chat.completions.create(
        model=model,
        messages=[
            {
                "role": "user",
                "content": [
                    {"type": "text", "text": "这张图片里有什么?"},
                    {
                        "type": "image_url",
                        "image_url": {
                            "url": img_url
                        }
                    }
                ]
            }
        ],
        max_tokens=50
    )
    return response.choices[0].message.content


if __name__ == '__main__':
    image_url = input('这是一个识别图片内容的AI,请输入你的图片Url:')
    print(get_image_info(image_url))

 

模型的音频输出

import base64
from openai import OpenAI

client = OpenAI()

completion = client.chat.completions.create(
    model="gpt-4o-audio-preview",
    modalities=["text", "audio"],
    audio={"voice": "alloy", "format": "wav"},
    messages=[
        {
            "role": "user",
            "content": "Is a golden retriever a good family dog?"
        }
    ]
)

print(completion.choices[0])

wav_bytes = base64.b64decode(completion.choices[0].message.audio.data)
with open("dog.wav", "wb") as f:
    f.write(wav_bytes)

 

模型的音频输入

import base64
from openai import OpenAI

client = OpenAI()

completion = client.chat.completions.create(
    model="gpt-4o-audio-preview",
    modalities=["text", "audio"],
    audio={"voice": "alloy", "format": "wav"},
    messages=[
        {
            "role": "user",
            "content": "Is a golden retriever a good family dog?"
        }
    ]
)

print(completion.choices[0])

wav_bytes = base64.b64decode(completion.choices[0].message.audio.data)
with open("dog.wav", "wb") as f:
    f.write(wav_bytes)

 

推理模型

from openai import OpenAI

client = OpenAI()

prompt = """
Write a bash script that takes a matrix represented as a string with 
format '[1,2],[3,4],[5,6]' and prints the transpose in the same format.
"""

response = client.responses.create(
    model="o3-mini",
    reasoning={"effort": "medium"},
    input=[
        {
            "role": "user", 
            "content": prompt
        }
    ]
)

print(response.output_text)

 

JSON Output

import json
from openai import OpenAI

client = OpenAI(
    api_key="<your api key>",
    base_url="https://api.deepseek.com",
)

system_prompt = """
The user will provide some exam text. Please parse the "question" and "answer" and output them in JSON format. 

EXAMPLE INPUT: 
Which is the highest mountain in the world? Mount Everest.

EXAMPLE JSON OUTPUT:
{
    "question": "Which is the highest mountain in the world?",
    "answer": "Mount Everest"
}
"""

user_prompt = "Which is the longest river in the world? The Nile River."

messages = [{"role": "system", "content": system_prompt},
            {"role": "user", "content": user_prompt}]

response = client.chat.completions.create(
    model="deepseek-chat",
    messages=messages,
    response_format={
        'type': 'json_object'
    }
)

print(json.loads(response.choices[0].message.content))

 

收藏