跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python
AI

通义万相 2.1 API 接入实战:Python 实现文生图与文本生成

通义万相 2.1 API 提供了强大的 AIGC 能力,通过 Python 的 requests 库可快速集成。本文演示了环境搭建、密钥配置、图像与文本生成的代码实现,以及错误处理与资源保存的最佳实践。无需训练模型,直接调用接口即可在本地或云端部署应用,适合开发者快速验证创意或构建业务功能。重点讲解了如何安全存储密钥、处理 HTTP 响应及保存生成资源,帮助开发者高效落地 AIGC 功能。

Pythonist发布于 2026/3/28更新于 2026/9/1056 浏览
通义万相 2.1 API 接入实战:Python 实现文生图与文本生成

通义万相 2.1 API 接入实战

AIGC 技术正在重塑内容创作的方式。对于开发者而言,直接调用成熟的模型 API 往往比从零训练更高效。本文将演示如何使用 Python 快速集成通义万相 2.1 接口,实现图像生成和文本生成的功能。

环境准备

在开始之前,确保你的开发环境中已安装 Python 3.x。我们需要使用 requests 库来处理 HTTP 请求。

pip install requests

密钥配置与安全

API 密钥是访问服务的凭证,务必妥善保管。建议将其存储在环境变量中,避免硬编码在代码里。

import os
import requests
import json
import urllib.request

# 从环境变量获取密钥,生产环境推荐此方式
api_key = os.getenv("TONGYI_API_KEY")
if not api_key:
    raise ValueError("请设置环境变量 TONGYI_API_KEY")

# 实际使用时请替换为官方提供的真实地址
image_api_url = "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation"
text_api_url = "https://dashscope.aliyuncs.com/api/v1/services/aigc/image-generation/generation"

图像生成实现

文生图是 AIGC 的热门场景。我们封装一个函数来发送请求并处理响应。

def generate_image(prompt):
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {api_key}"
    }
    
    # 构建请求体,根据文档调整参数
    data = {
        "input": {
            "prompt": prompt,
            "size": "1024*1024",
            "n": 1
        },
        "model": "wanx-v1"
    }
    
    try:
        response = requests.post(image_api_url, headers=headers, json=data)
        response.raise_for_status()
        result = response.json()
        
        # 解析返回结果,不同接口返回结构可能略有差异
        if "output" in result and "text" in result["output"]:
            return result["output"]["text"]
        elif "images" in result:
            return result["images"][0]
        else:
            print(f"未获取到有效数据:{result}")
            return None
    except requests.RequestException as e:
        print(f"请求出错:{e}")
        return None

调用示例:

prompt = "虚拟现实课堂上,学生身临历史战场学习历史"
image_url = generate_image(prompt)

if image_url:
    print(f"生成成功,图片链接:{image_url}")
else:
    print("生成失败")

保存生成的图像

拿到 URL 后,我们可以将图片下载到本地,方便后续使用。

def save_image(url, path):
    try:
        urllib.request.urlretrieve(url, path)
        print(f"图像已保存到 {path}")
    except Exception as e:
        print(f"保存失败:{e}")

if image_url:
    save_dir = "generated_images"
    os.makedirs(save_dir, exist_ok=True)
    save_path = os.path.join(save_dir, "generated_image.jpg")
    save_image(image_url, save_path)

文本生成实现

除了图像,文本生成同样强大。逻辑与图像类似,主要区别在于输入输出格式。

def generate_text(prompt, max_length=500):
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {api_key}"
    }
    
    data = {
        "input": {
            "prompt": prompt,
            "max_length": max_length
        },
        "parameters": {
            "temperature": 0.7
        }
    }
    
    try:
        response = requests.post(text_api_url, headers=headers, json=data)
        response.raise_for_status()
        result = response.json()
        
        if "output" in result and "text" in result["output"]:
            return result["output"]["text"]
        return None
    except requests.RequestException as e:
        print(f"文本生成请求出错:{e}")
        return None

调试与注意事项

  1. 错误处理:网络波动或配额限制可能导致请求失败,务必加上 try-except 块。
  2. 并发控制:如果需要在高并发场景下使用,注意平台的速率限制(Rate Limit),必要时增加重试机制。
  3. Prompt 工程:提示词的质量直接影响生成效果,多尝试不同的描述方式。
  4. 资源清理:定期清理本地生成的临时文件,避免占用过多磁盘空间。

通过上述步骤,你可以快速搭建起基于通义万相 2.1 的 AIGC 应用原型。这种模式无需维护庞大的算力集群,非常适合中小规模的业务验证和创意开发。

目录

  1. 通义万相 2.1 API 接入实战
  2. 环境准备
  3. 密钥配置与安全
  4. 从环境变量获取密钥,生产环境推荐此方式
  5. 实际使用时请替换为官方提供的真实地址
  6. 图像生成实现
  7. 保存生成的图像
  8. 文本生成实现
  9. 调试与注意事项

更多推荐文章

查看全部
  • 车辆监控管理系统:后端 API、Web 后台与移动端应用
  • Vheer:免费免登录的 AI 绘画与视频生成工具
  • 二分查找实战:山峰数组峰顶索引与寻找峰值
  • JadeAI:开源 AI 简历生成器,支持 50 套模板与 Docker 部署
  • BoltzGen:MIT 开源生成式 AI 模型用于大分子 Binder 设计与安装
  • 2025 GitHub 趣味项目与学习资源精选
  • 基于 Python 的阿布量化交易框架
  • OpenClaw 龙虾机器人免费部署与配置指南
  • WebMCP:Chrome 新 API 特性与 Agentic Web 前瞻
  • CentOS 7 环境下安装 JDK 1.8 及解决 wget 命令缺失问题
  • 在排序数组中查找元素的第一个和最后一个位置(二分查找)
  • MiniMax 海螺 AI 视频:图片与文本生成高质量视频
  • 《Agent Runtime 工程化》第十章 Eval Harness 与 CI 回归
  • Home Assistant 接入小米智能家居设备本地化部署指南
  • IDEA REST Client 接口调试与协作实战指南
  • AIGC 核心技术解析:GPT、BERT 与 Transformer 工作原理
  • Python 爬虫就业要求与学习路径指南
  • 彻底关闭Win10中烦人的365 Copilot弹窗的6种方法
  • 网页滚动定位导航特效实现
  • 本地服务秒变公网地址:内网穿透演示实战

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online