以下是主流國產大模型(以華為盤古大模型和騰訊混元大模型為例)API調用接口的具體參數和使用方法,包括Python和C++的示例代碼。
?
華為盤古大模型
API參數:
?
- model:模型名稱,如`pangu-nlp-large`。
- messages:包含用戶消息的列表,每個消息包含`content`字段。
- temperature:控制輸出隨機性的參數,范圍0-1。
- max_tokens:最大輸出長度,以token數計算。
?
Python示例代碼:
?
```python
import requests
?
# API地址
url = "https://api.huaweicloud.com/nlp/v1/models/pangu-nlp-large/generate"
?
# 請求頭(使用Token認證)
headers = {
? ? "Content-Type": "application/json",
? ? "X-Auth-Token": "YOUR_TOKEN"
}
?
# 請求體
data = {
? ? "messages": [
? ? ? ? {
? ? ? ? ? ? "content": "今天天氣怎么樣?"
? ? ? ? }
? ? ],
? ? "temperature": 0.5,
? ? "max_tokens": 100
}
?
# 發送POST請求
response = requests.post(url, headers=headers, json=data)
?
# 處理響應
if response.status_code == 200:
? ? result = response.json()
? ? print("生成結果:", result["output"])
else:
? ? print("請求失敗,狀態碼:", response.status_code)
```
?
**C++示例代碼(使用libcurl庫):**
?
```cpp
#include <iostream>
#include <curl/curl.h>
#include <jsoncpp/json/json.h>
?
// 回調函數,用于接收響應數據
size_t write_callback(char* data, size_t size, size_t nmemb, std::string* response) {
? ? response->append(data, size * nmemb);
? ? return size * nmemb;
}
?
int main() {
? ? CURL* curl;
? ? CURLcode res;
? ? std::string response;
?
? ? // 初始化libcurl
? ? curl = curl_easy_init();
? ? if (!curl) {
? ? ? ? std::cerr << "curl初始化失敗" << std::endl;
? ? ? ? return 1;
? ? }
?
? ? // API地址
? ? std::string url = "https://api.huaweicloud.com/nlp/v1/models/pangu-nlp-large/generate";
?
? ? // 請求頭(使用Token認證)
? ? std::string headers[] = {
? ? ? ? "Content-Type: application/json",
? ? ? ? "X-Auth-Token: YOUR_TOKEN"
? ? };
?
? ? // 請求體
? ? Json::Value data;
? ? data["messages"] = Json::arrayValue;
? ? data["messages"].append(Json::Value("今天天氣怎么樣?"));
? ? data["temperature"] = 0.5;
? ? data["max_tokens"] = 100;
? ? std::string data_str = data.toStyledString();
?
? ? // 設置curl選項
? ? curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
? ? curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
? ? curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data_str.c_str());
? ? curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
? ? curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
?
? ? // 發送POST請求
? ? res = curl_easy_perform(curl);
? ? if (res != CURLE_OK) {
? ? ? ? std::cerr << "請求失敗:" << curl_easy_strerror(res) << std::endl;
? ? } else {
? ? ? ? // 處理響應
? ? ? ? Json::Value result;
? ? ? ? Json::Reader reader;
? ? ? ? if (reader.parse(response, result)) {
? ? ? ? ? ? std::cout << "生成結果:" << result["output"].asString() << std::endl;
? ? ? ? } else {
? ? ? ? ? ? std::cerr << "解析響應失敗" << std::endl;
? ? ? ? }
? ? }
?
? ? // 清理
? ? curl_easy_cleanup(curl);
?
? ? return 0;
}
```
?
?騰訊混元大模型
?
API參數:
?
- model:模型版本,如`hunyuan-pro`。
- input:用戶輸入文本。
- temperature:控制輸出隨機性的參數,范圍0-1。
- max_length:最大輸出長度,以字符數計算。
?
Python示例代碼:
?
```python
import requests
?
# API地址
url = "https://api.tencentcloud.com/hunyuan/v1/models/hunyuan-pro/generate"
?
# 請求頭(使用簽名認證)
headers = {
? ? "Content-Type": "application/json",
? ? "Authorization": "TC3-HMAC-SHA256 Credential=YOUR_SECRET_ID/YOUR_DATE/hunyuan/tc3_request, SignedHeaders=content-type;host, Signature=YOUR_SIGNATURE"
}
?
# 請求體
data = {
? ? "input": "你好,請問有什么可以幫助你的?",
? ? "temperature": 0.5,
? ? "max_length": 100
}
?
# 發送POST請求
response = requests.post(url, headers=headers, json=data)
?
# 處理響應
if response.status_code == 200:
? ? result = response.json()
? ? print("生成結果:", result["output"])
else:
? ? print("請求失敗,狀態碼:", response.status_code)
```
?
C++示例代碼(使用libcurl庫):
?
```cpp
#include <iostream>
#include <curl/curl.h>
#include <jsoncpp/json/json.h>
?
// 回調函數,用于接收響應數據
size_t write_callback(char* data, size_t size, size_t nmemb, std::string* response) {
? ? response->append(data, size * nmemb);
? ? return size * nmemb;
}
?
int main() {
? ? CURL* curl;
? ? CURLcode res;
? ? std::string response;
?
? ? // 初始化libcurl
? ? curl = curl_easy_init();
? ? if (!curl) {
? ? ? ? std::cerr << "curl初始化失敗" << std::endl;
? ? ? ? return 1;
? ? }
?
? ? // API地址
? ? std::string url = "https://api.tencentcloud.com/hunyuan/v1/models/hunyuan-pro/generate";
?
? ? // 請求頭(使用簽名認證)
? ? std::string headers[] = {
? ? ? ? "Content-Type: application/json",
? ? ? ? "Authorization: TC3-HMAC-SHA256 Credential=YOUR_SECRET_ID/YOUR_DATE/hunyuan/tc3_request, SignedHeaders=content-type;host, Signature=YOUR_SIGNATURE"
? ? };
?
? ? // 請求體
? ? Json::Value data;
? ? data["input"] = "你好,請問有什么可以幫助你的?";
? ? data["temperature"] = 0.5;
? ? data["max_length"] = 100;
? ? std::string data_str = data.toStyledString();
?
? ? // 設置curl選項
? ? curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
? ? curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
? ? curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data_str.c_str());
? ? curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
? ? curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
?
? ? // 發送POST請求
? ? res = curl_easy_perform(curl);
? ? if (res != CURLE_OK) {
? ? ? ? std::cerr << "請求失敗:" << curl_easy_strerror(res) << std::endl;
? ? } else {
? ? ? ? // 處理響應
? ? ? ? Json::Value result;
? ? ? ? Json::Reader reader;
? ? ? ? if (reader.parse(response, result)) {
? ? ? ? ? ? std::cout << "生成結果:" << result["output"].asString() << std::endl;
? ? ? ? } else {
? ? ? ? ? ? std::cerr << "解析響應失敗" << std::endl;
? ? ? ? }
? ? }
?
? ? // 清理
? ? curl_easy_cleanup(curl);
?
? ? return 0;
}
```
注意事項:
- 認證方式:華為盤古大模型使用Token認證,騰訊混元大模型使用簽名認證,請根據官方文檔獲取相應的認證信息。
- 參數調整:根據具體需求調整`temperature`、`max_tokens`或`max_length`等參數,以獲得理想的輸出結果。
- 依賴庫:Python示例需要安裝`requests`庫,C++示例需要安裝`libcurl`和`jsoncpp`庫。
- 代碼示例:以上代碼僅供參考,實際使用中可能需要根據API文檔進行相應調整。
?
?
python編程的基本知識點
python編程新手的引路人
?