Go SiliconFlow API 语言实现多模态图像描述服务
项目背景
本项目使用 Go 语言实现一个基于 SiliconFlow API 的图像描述微服务,展示 Go 在多模态 AI 应用中的强大能力。
项目依赖
# 初始化项目
go mod init image-description-service
# 添加依赖
go get github.com/joho/godotenv
go get github.com/sashabaranov/go-openai
环境配置 (.env)
# SiliconFlow API 配置
SILICONFLOW_API_KEY=sk-*******************************************
SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1
核心实现
1. 项目结构
image-description-service/
├── main.go
├── .env
└── go.mod
2. 代码实现
main.go
:
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/joho/godotenv"
openai "github.com/sashabaranov/go-openai"
)
// ImageDescriber 图像描述服务
type ImageDescriber struct {
client *openai.Client
}
// NewImageDescriber 创建新的图像描述服务实例
func NewImageDescriber() (*ImageDescriber, error) {
// 加载环境变量
err := godotenv.Load()
if err != nil {