Skip to content

go 代码示例(Claude格式)

go
package main

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

func main() {
	// API密钥,替换为实际值
	apiKey := "<API_KEY>"
	// 请求URL
	url := "https://maasapi.casdao.com/v1/messages"

	// 构造请求头
	headers := http.Header{}
	headers.Set("Authorization", apiKey)
	headers.Set("Content-Type", "application/json")

	// 构造请求体
	payload := map[string]interface{}{
		"model": "kimi-k2.5",
		"messages": []map[string]string{
			{
				"role":    "user",
				"content": "你好,人类的未来是怎样的?",
			},
		},
		"max_tokens": 1024,
	}

	// 将请求体序列化为JSON
	jsonPayload, err := json.Marshal(payload)
	if err != nil {
		fmt.Printf("JSON序列化失败: %v\n", err)
		return
	}

	// 创建HTTP请求
	req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonPayload))
	if err != nil {
		fmt.Printf("创建请求失败: %v\n", err)
		return
	}
	req.Header = headers

	// 设置超时上下文(60秒)
	ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second)
	defer cancel()
	req = req.WithContext(ctx)

	// 发送请求
	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		fmt.Printf("发送请求失败: %v\n", err)
		return
	}
	defer resp.Body.Close()

	// 打印响应状态码
	fmt.Printf("响应状态码: %d\n", resp.StatusCode)

	// 解析响应JSON
	var responseData map[string]interface{}
	err = json.NewDecoder(resp.Body).Decode(&responseData)
	if err != nil {
		fmt.Printf("解析响应失败: %v\n", err)
		return
	}

	// 格式化输出响应
	prettyJSON, err := json.MarshalIndent(responseData, "", "  ")
	if err != nil {
		fmt.Printf("格式化JSON失败: %v\n", err)
		return
	}
	fmt.Println(string(prettyJSON))
}

算力互联(北京)科技有限公司版权所有