通过以下代码示例,开发者可以快速上手API接口调用,轻松集成多个AI模型,提升开发效率。
# 这是一个 bigmodel 调用 API 的 Python 例子
import requests
import json
# ------------------------------------------------------------------------------------
# 3秒步接入 bigmodel : 修改 Key 和 Base url (http://api.bigmodel.org)
# ------------------------------------------------------------------------------------
url = "http://api.bigmodel.org/v1/chat/completions" # 这里不要用 openai base url,需要改成bigmodel的中转 http://api.bigmodel.org ,下面是已经改好的。
payload = json.dumps({
"model": "gpt-4o-mini", # 这里是你需要访问的模型,改成上面你需要测试的模型名称就可以了。
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "周树人和鲁迅是兄弟吗?"
}
]
})
headers = {
'Accept': 'application/json',
'Authorization': 'sk-***********************************************', # 这里放你的 bigmodel key
'User-Agent': 'bigmodel/1.0.0 (http://api.bigmodel.org)', # 这里也改成 bigmodel 的中转URL http://api.bigmodel.org,已经改好
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
# ------------------------------------------------------------------------------------
# 在 Openai官方库 中使用 bigmodel KEY 的例子
# 需要先 pip install openai
# ------------------------------------------------------------------------------------
from openai import OpenAI
client = OpenAI(
api_key="sk-********************************************", # 替换成你的 bigmodel 令牌key
base_url="http://api.bigmodel.org/v1", # 需要改成bigmodel的中转 http://api.bigmodel.org/v1 ,这是已经改好的。
)
chat_completion = client.chat.completions.create(
messages=[
{
"role": "user",
"content": "周树人和鲁迅是兄弟吗?",
}
],
model="gpt-4o-mini", # 替换成你先想用的模型全称, 模型全称可以在bigmodel 模型价格页面找到并复制。
)
print(chat_completion)
import json
import requests
url = "http://api.bigmodel.org/v1/chat/completions"
payload = {
"model": "gpt-4o-mini", # 模型名称
"stream": True, # 流式输出True开启
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "周树人和鲁迅是兄弟吗?"},
],
}
headers = {
"Accept": "application/json",
"Authorization": "sk-****************************************************", # 这里放你的 bigmodel key
"User-Agent": "bigmodel/1.0.0 (http://api.bigmodel.org)",
"Content-Type": "application/json",
}
response = requests.post(url, headers=headers, json=payload, stream=True)
buffer = ""
for chunk in response.iter_content(chunk_size=None):
if chunk:
buffer += chunk.decode("utf-8")
while "\n" in buffer:
line, buffer = buffer.split("\n", 1)
if line.strip() == "":
continue
if line.startswith("data: "):
data_line = line[len("data: ") :].strip()
if data_line == "[DONE]":
break
else:
try:
data = json.loads(data_line)
delta = data["choices"][0]["delta"]
content = delta.get("content", "")
print(content, end="", flush=True)
except json.JSONDecodeError:
# 如果JSON解析失败,可能是数据不完整,继续累积buffer
buffer = line + "\n" + buffer
break
from pydantic import BaseModel
from openai import OpenAI
from dotenv import load_dotenv
import json
from textwrap import dedent
# 加载环境变量,例如 API key 等配置信息
load_dotenv()
# 设置 OpenAI API 的工厂名称,默认为 "openai"
factory = "openai"
# 初始化 OpenAI 客户端,传入 API key 和 base URL
client = OpenAI(
api_key="sk-***********************************************", # 替换为你的 bigmodel key
base_url="http://api.bigmodel.org/v1/" # 这里是bigmodel的 base url,注意这里需要 /v1/
)
# 定义一个产品信息类,用于解析 API 返回的数据
class ProductInfo(BaseModel):
product_name: str # 产品名称,字符串类型
price: float # 价格,浮点数类型
description: str # 产品描述,字符串类型
# 定义一个提示信息,用于请求模型返回 JSON 格式的产品信息
product_prompt = '''根据给出的产品进行分析,按json格式用中文回答,json format:product_name, price, description.'''
# 获取产品信息的函数,传入用户的问题
def get_product_info(question: str):
# 使用 OpenAI 客户端进行聊天模型的请求
completion = client.beta.chat.completions.parse(
model="gpt-4o-2024-08-06", # 指定使用的模型
messages=[
{"role": "system", "content": dedent(product_prompt)}, # 发送系统消息,设置模型的行为
{"role": "user", "content": question}, # 发送用户消息,用户提出问题
],
response_format=ProductInfo, # 指定返回的数据格式为 ProductInfo
)
# 返回模型解析的第一个选项的消息结果
return completion.choices[0].message.parsed
# 初始化一个空的产品信息字典
product_inform = {}
# 定义将解析的结果转换为 JSON 的函数
def transform2JSON(parsed_result):
# print(parsed_result) # 打印解析结果
# 将解析的结果存储到字典中
product_inform["product_name"] = parsed_result.product_name
product_inform["price"] = parsed_result.price
product_inform["description"] = parsed_result.description
# 将字典转换为 JSON 字符串并返回,ensure_ascii=False 允许中文字符正常显示
return json.dumps(product_inform, ensure_ascii=False, indent=4)
# 定义用户输入的问题,即一个产品信息的描述
question = "75寸小米电视机"
# 调用函数获取产品信息
result = get_product_info(question)
# 将解析结果转换为 JSON 格式并打印
json_result = transform2JSON(result)
print(json_result)
import openai
# 设置OpenAI API密钥和基础URL
openai.api_key = "sk-***********************************************" # 替换为你的 bigmodel key
openai.base_url = "http://api.bigmodel.org/v1/" # 这里是bigmodel的 base url,注意这里v1后面需要/,最后的 / 很容易漏掉。
def get_embedding(text):
response = openai.embeddings.create(
model="text-embedding-3-small",
input=text
)
return response.data[0].embedding
# 示例文本
text = "这是一个示例文本,用于演示如何获取文本嵌入。"
# 获取文本嵌入
embedding = get_embedding(text)
print(f"文本: {text}")
print(f"嵌入向量维度: {len(embedding)}")
print(f"嵌入向量前5个元素: {embedding[:5]}")
import http.client
import json
# 定义 API 密钥和基本 URL
API_KEY = "sk-*****************************************************" # 请替换为你的 bigmodel 令牌
API_HOST = "api.bigmodel.org" # API 主机地址
API_ENDPOINT = "/v1/images/generations" # API 请求路径
# 请求参数
prompt_text = "科技感的店铺门口,店铺名称是bigmodel" # 描述生成图像的提示词
model_name = "dall-e-3" # 除了dall-e-3 还可选:flux-schnell,flux-dev,flux.1.1-pro
image_size = "1024x1024" # 图像尺寸 参考值:1792x1024, 1024 × 1792, 1024x1024
# 构建请求的 JSON 数据
payload = json.dumps(
{
"prompt": prompt_text,
"n": 1, # 生产图片数量,修改会报错,默认1就可以。
"model": model_name,
"size": image_size,
}
)
# 定义请求头信息
headers = {
"Authorization": f"Bearer {API_KEY}", # 使用变量 API_KEY
"Accept": "application/json",
"User-Agent": "bigmodel/1.0.0 (http://api.bigmodel.org)",
"Content-Type": "application/json",
}
# 建立 HTTPS 连接
conn = http.client.HTTPSConnection(API_HOST)
# 发送 POST 请求
conn.request("POST", API_ENDPOINT, payload, headers)
# 获取响应并读取数据
res = conn.getresponse()
data = res.read()
# 输出结果
print(data.decode("utf-8"))
import json # 添加 json 库的导入
import requests
def q_voice_to_text(file_path_wav):
url = "http://api.bigmodel.org/v1/audio/transcriptions"
payload = {"model": "whisper-1"}
files = {"file": ("audio.mp3", open(file_path_wav, "rb"))}
# 直接使用 API 密钥
gpt_key = "sk-*******************************************" ## <------------------- 这里填你的 bigmodel 令牌
headers = {"Authorization": f"Bearer {gpt_key}"}
# 发送请求
response = requests.request("POST", url, headers=headers, data=payload, files=files)
# 处理响应
data = json.loads(response.text)
# 获取返回的文本内容
voice_text = data["text"] if data["text"] is not None else ""
return voice_text
print(q_voice_to_text("C:\\kywpy\\jay.mp3")) ## <------------------- 这里改成你的音频文件