通过以下代码示例,开发者可以快速上手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")) ## <------------------- 这里改成你的音频文件