AI大模型通用API请求模板:新手小白也能轻松上手

来源:Poixe AI

随着人工智能技术的飞速发展,AI大模型在我们的日常和工作中扮演着越来越重要的角色。然而,面对众多厂商和各式各样的API调用协议,许多初学者可能会感到无从下手。好消息是,OpenAI协议已经成为行业内事实上的通用标准,这意味着你可以使用一套代码模板来调用市面上绝大多数的AI大模型,无论是OpenAI自家的GPT系列,还是Claude、文心一言等其他厂商的模型。

本文将为你提供一个简单易懂的Python代码模板(文章末尾附带其他语言),即使是编程小白也能快速上手,轻松实现AI大模型的API请求。

在这里插入图片描述


为什么选择OpenAI协议?

尽管各大AI厂商的API接口细节可能存在差异(例如Claude的/v1/messages),但它们大多都选择兼容或直接采用OpenAI的API调用规范。这种统一性大大降低了开发者的学习成本,让你可以用一套熟悉的方式与不同的AI模型进行交互,从而专注于应用的开发而非API的适配。


通用API请求代码模板

下面是一个基于requests库的Python代码模板,用于向兼容OpenAI协议的AI大模型发送请求。你可以直接复制粘贴这段代码,稍作修改即可开始你的AI之旅。

import requests

# API请求的URL,这里以OpenKEY.cloud(一家博主在用的API中转)的api为例,你也可以替换成其他兼容OpenAI协议的API地址
# 例如:url = "[https://api.openai.com/v1/chat/completions](https://api.openai.com/v1/chat/completions)"
url = "https://openkey.cloud/v1/chat/completions"

# 请求头,包含了内容类型和授权信息
headers = {
  'Content-Type': 'application/json',
  # 你的API密钥,请替换成你自己的实际密钥。
  # 填写OpenKEY生成的令牌/KEY,注意前面的 Bearer 要保留,并且和 KEY 中间有一个空格。
  'Authorization': 'Bearer sk-JdKYK4xHHVF6b40A6e724a8e497c442cB1A2B44a1c4768B7'
}

# 请求体,定义了要使用的模型和发送给AI的消息
data = {
  "model": "gpt-3.5-turbo",# 指定要调用的模型名称,可以根据需求更换为其他模型,如"gpt-4o", "claude-3-opus-20240229"等
  "messages": [{"role": "user", "content": "你好呀"}]# 用户发送给AI的消息
}

response = requests.post(url, headers=headers, json=data)

print("Status Code", response.status_code)
print("JSON Response ", response.json())

如何使用这个模板?

  1. 安装requests库:如果你还没有安装,打开你的命令行工具(如CMD、Terminal)输入:

    pip install requests
    
  2. 获取API密钥:你需要在你选择的AI服务提供商(如OpenAI、OpenKEY、或其他支持OpenAI协议的平台)那里注册并获取你的API密钥(或称令牌)。

  3. 替换url:将代码中的url替换为你所使用的AI服务提供商的API请求地址。通常,只要是兼容OpenAI协议的,其路径都包含/v1/chat/completions

  4. 替换Authorization中的密钥:将headers字典中Authorization字段后面的Bearer 后的字符串替换成你自己的API密钥。请注意:Bearer 和你的密钥之间有一个空格。

  5. 修改model和messages

    • “model”:根据你使用的服务和需求,将"gpt-3.5-turbo"替换成你想要调用的具体模型名称,例如"gpt-4o"、"claude-3-opus-20240229"等。

    • “messages”:这是你与AI对话的核心。“role”: "user"表示这是用户发送的消息,"content"是你希望AI处理的文本。你可以根据需求修改这里的内容,提出各种问题或指令。

其他语言怎么写?

c调用api代码示例
#include <stdio.h>
#include <curl/curl.h>

int main() {
    CURL *curl = curl_easy_init();
    if (curl) {
        const char *data = "{\"model\": \"gpt-3.5-turbo\", \"messages\": [{\"role\": \"user\", \"content\": \"你好呀\"}]}";
        struct curl_slist *headers = NULL;
        headers = curl_slist_append(headers, "Authorization: Bearer sk-JdKYK4xHHVF6b40A6e724a8e497c442cB1A2B44a1c4768B7");
        headers = curl_slist_append(headers, "Content-Type: application/json");

        curl_easy_setopt(curl, CURLOPT_URL, "https://openkey.cloud/v1/chat/completions");
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);

        curl_easy_perform(curl);

        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }
    return 0;
}
go调用api代码示例
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"net/http"
)

func main() {
	url := "https://openkey.cloud/v1/chat/completions"
	data := map[string]interface{}{
		"model":    "gpt-3.5-turbo",
		"messages": []map[string]string{{"role": "user", "content": "你好呀"}},
	}

	body, _ := json.Marshal(data)
	req, _ := http.NewRequest("POST", url, bytes.NewBuffer(body))
	req.Header.Set("Authorization", "Bearer sk-JdKYK4xHHVF6b40A6e724a8e497c442cB1A2B44a1c4768B7")
	req.Header.Set("Content-Type", "application/json")

	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()

	var response map[string]interface{}
	json.NewDecoder(resp.Body).Decode(&response)

	fmt.Println("Status Code:", resp.StatusCode)
	fmt.Println("Response JSON:", response)
}
go调用api代码示例
#include <iostream>
#include <curl/curl.h>

int main() {
    CURL *curl = curl_easy_init();
    if (curl) {
        const char *data = "{\"model\": \"gpt-3.5-turbo\", \"messages\": [{\"role\": \"user\", \"content\": \"你好呀\"}]}";
        struct curl_slist *headers = nullptr;
        headers = curl_slist_append(headers, "Authorization: Bearer sk-JdKYK4xHHVF6b40A6e724a8e497c442cB1A2B44a1c4768B7");
        headers = curl_slist_append(headers, "Content-Type: application/json");

        curl_easy_setopt(curl, CURLOPT_URL, "https://openkey.cloud/v1/chat/completions");
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);

        curl_easy_perform(curl);

        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }
    return 0;
}

java调用api代码示例
import java.io.*;
import java.net.*;
import javax.net.ssl.HttpsURLConnection;

public class Main {
    public static void main(String[] args) throws Exception {
        String url = "https://openkey.cloud/v1/chat/completions";
        String jsonData = "{\"model\": \"gpt-3.5-turbo\", \"messages\": [{\"role\": \"user\", \"content\": \"你好呀\"}]}";

        URL obj = new URL(url);
        HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
        con.setRequestMethod("POST");
        con.setRequestProperty("Authorization", "Bearer sk-JdKYK4xHHVF6b40A6e724a8e497c442cB1A2B44a1c4768B7");
        con.setRequestProperty("Content-Type", "application/json");

        con.setDoOutput(true);
        try (OutputStream os = con.getOutputStream()) {
            byte[] input = jsonData.getBytes("utf-8");
            os.write(input, 0, input.length);
        }

        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), "utf-8"));
        String inputLine;
        StringBuffer response = new StringBuffer();
        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();

        System.out.println("Response: " + response.toString());
    }
}
Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐