YOLOFuse快速入门指南:从推理到训练全流程详解(含LLVIP数据集)
2026/1/2 1:27:55
Go 语言中调用 LLM 最便捷、生态最完善的方式是使用github.com/sashabaranov/go-openai这个第三方库:
go get github.com/sashabaranov/go-openai@latest同时,为了更好地处理配置(如 API Key),可额外安装配置管理库(可选):
go get github.com/joho/godotenv@latest适用于不需要实时反馈、追求结果完整性的场景(如文案生成、数据提取)。
packagemainimport("context""fmt""log""os""github.com/joho/godotenv""github.com/sashabaranov/go-openai")// 加载环境变量(避免硬编码 API Key)funcloadEnv(){err:=godotenv.Load()iferr!=nil{log.Printf("警告:未加载 .env 文件,将从系统环境变量读取 API Key: %v",err)}}// 基础 LLM 同步调用funcbasicLLMCall(client*openai.Client,promptstring)(string,error){// 构建请求参数req:=openai.ChatCompletionRequest{Model:openai.GPT3Dot5Turbo,// 模型选择,可替换为 GPT4、GPT4oMessages:[]openai.ChatCompletionMessage{{Role:openai.ChatMessageRoleSystem,// 系统角色:定义智能体行为Content:"你是一个专业的 Go 语言开发助手,回答简洁、准确,只提供有效技术内容",},{Role:openai.ChatMessageRoleUser,// 用户角色:传递用户查询Content:prompt,},},Temperature:0.7,// 创造性控制:0(严谨)~ 2(奔放)MaxTokens:1024,// 最大响应令牌数}// 发起同步请求(阻塞等待响应)resp,err:=client.CreateChatCompletion(context.Background(),req)iferr!=nil{return"",fmt.Errorf("调用 LLM 失败:%w",err)}// 提取响应内容(处理多选择项,取第一个有效响应)iflen(resp.Choices)==0{return"",fmt.Errorf("未获取到 LLM 响应内容")}returnresp.Choices[0].Message.Content,nil}funcmain(){// 1. 加载环境变量loadEnv()apiKey:=os.Getenv("OPENAI_API_KEY")ifapiKey==""{log.Fatal("错误:未设置 OPENAI_API_KEY 环境变量")}// 2. 初始化 OpenAI 客户端client:=openai.NewClient(apiKey)// 3. 定义用户查询userPrompt:="请用 Go 语言写一个简单的 HTTP 服务,实现 /hello 接口返回 \"Hello, LLM Agent\""// 4. 调用 LLM 并获取结果result,err:=basicLLMCall