当前位置: 首页 > news >正文

Go 语言调用 SiliconFlow 的 Deepseek AI Janus-Pro-7B 模型进行图像生成

使用 Go 调用 SiliconFlow 图像生成 API

概述

本文档介绍如何使用 Go 语言调用 SiliconFlow 的 Deepseek AI Janus-Pro-7B 模型进行图像生成。

环境准备

  • Go 1.20 或更高版本
  • 网络连接
  • SiliconFlow API 令牌

依赖管理

在项目根目录创建 go.mod 文件:

go mod init image-generator
go get github.com/go-resty/resty/v2

代码实现

main.go

package main

import (
    "fmt"
    "log"

    "github.com/go-resty/resty/v2"
)

type ImageGenerationRequest struct {
    Model  string `json:"model"`
    Prompt string `json:"prompt"`
    Seed   int64  `json:"seed"`
}

func generateImage(apiToken string, prompt string) error {
    client := resty.New()

    req := &ImageGenerationRequest{
        Model:  "deepseek-ai/Janus-Pro-7B",
        Prompt: prompt,
        Seed:   4999999999,
    }

    resp, err := client.R().
        SetHeader("Authorization", "Bearer "+apiToken).
        SetHeader("Content-Type", "application/json").
        SetBody(req).
        Post("https://api.siliconflow.cn/v1/images/generations")

    if err != nil {
        return fmt.Errorf("请求发送失败: %v", err)
    }

    if resp.IsError() {
        return fmt.Errorf("API错误: %s", resp.String())
    }

    fmt.Println("图像生成响应:", resp.String())
    return nil
}

func main() {
    apiToken := "<你的SiliconFlow令牌>"
    prompt := "海边的岛屿,海鸥,月光洒在海面上,灯塔,背景有船只,海面上有飞鱼"

    err := generateImage(apiToken, prompt)
    if err != nil {
        log.Fatalf("图像生成失败: %v", err)
    }
}

运行项目

go mod tidy
go run main.go

注意事项

  • 替换 <你的SiliconFlow令牌> 为实际的 API 令牌
  • 建议使用环境变量或配置文件管理敏感信息
  • 处理 API 响应和错误

错误处理

  • 检查网络连接
  • 验证 API 令牌
  • 处理 API 返回的错误消息

最佳实践

  • 使用错误处理和日志记录
  • 考虑实现重试机制
  • 保护 API 令牌安全

扩展功能建议

  • 支持更多图像生成参数
  • 实现图像保存功能
  • 添加更复杂的错误处理逻辑

参考资源

  • SiliconFlow API 文档
  • Go Resty 库:https://github.com/go-resty/resty

快来体验 siliconflow 图像生成服务:https://cloud.siliconflow.cn/i/vnCCfVaQ

相关文章:

  • 路由过滤方法与常用工具
  • 前端开发工程中如何利用DeepSeek提升工作效率:实战案例与策略解析
  • 5g基站测试要求和关键点
  • windows基于cpu安装pytorch运行faster-whisper-large-v3实现语音转文字
  • 深入解析A2DP v1.4协议:蓝牙高质量音频传输的技术与实现
  • 【Java 面试 八股文】框架篇
  • Python + WhisperX:解锁语音识别的高效新姿势
  • 【C#】的WPF或是WinForm实现Ctrl+ 的快捷键组合使用
  • JAVA安全—Shiro反序列化DNS利用链CC利用链AES动态调试
  • 使用 EDOT 监测由 OpenAI 提供支持的 Python、Node.js 和 Java 应用程序
  • 自然语言处理NLP入门 -- 第二节预处理文本数据
  • c# http
  • 解释和对比“application/octet-stream“与“application/x-protobuf“
  • 普通用户授权docker使用权限
  • QTreeView笔记
  • 手动配置IP
  • idea如何使用AI编程提升效率-在IntelliJ IDEA 中安装 GitHub Copilot 插件的步骤-卓伊凡
  • ELK安装部署同步mysql数据
  • 解锁UniApp新姿势:巧用阿里巴巴字体图标库
  • RAII(Resource Acquisition Is Initialization)机制
  • 追光|铁皮房、土操场,这有一座“筑梦”摔跤馆
  • 85后清华博士黄佐财任湖北咸宁市咸安区委副书记、代区长
  • 李公明︱一周书记:浪漫主义为什么……仍然重要?
  • 普京:“胜利日停火”已开始生效
  • 全国首例在沪完成,这项近视治疗手术不到10秒
  • 中国证监会印发《推动公募基金高质量发展行动方案》