【菜鸟飞】AI多模态:vsCode下python访问阿里云通义文生图API

目标

有很多多模态的AI工具,用的少就用在线图形化的,需要批量,就尝试代码生成,本文尝试代码调用多模态AI,阿里通义有免费额度,作为练手应该挺好,如果以后选其他的,技术也是相通的。

准备

需要vsCode并按照python,参考之前的文档。

开始

1、注册并生成api-key

阿里云注册后,需要实名认证,才能开通阿里云百炼服务,才能配置api-可以。

  • 个人实名认证:

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

参考指导文档:

个人实名认证_账号中心(Account)-阿里云帮助中心

  • 开启服务

认证成功后,到阿里的百炼控制台:

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

开通服务,在180天内,有100万tockens的免费额度。

  •  生成api-key

在右侧账号下点击“API-KEY”,可以设置你的key:

创建key:

创建后,点击“查看”,可以看到key的内容,并复制:

复制key,保存备用。 

2、python调用测试

  • api-key设置环境变量(可选)

可以将API Key配置到环境变量,以后直接从环境变量里取,当然也可以在代码里直接用api-key,所以这步是可选的,参考下图步骤

  • 安装openai

在vs中的终端,执行命令,安装openai包:

pip install -U openai
  • 测试代码

创建.py结尾的文件,文件代码为:

import os
from openai import OpenAIclient = OpenAI(# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx",#api_key=os.getenv("DASHSCOPE_API_KEY"), api_key="你自己的api-key", base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)completion = client.chat.completions.create(model="qwen-plus", # 模型列表:https://help.aliyun.com/zh/model-studio/getting-started/modelsmessages=[{'role': 'system', 'content': 'You are a helpful assistant.'},{'role': 'user', 'content': '你是谁?'}]
)
print(completion.choices[0].message.content)

如果前面设置了DASHSCOPE_API_KEY环境变量,就用这句代码,如同提示没找到环境变量,就是设置后当前终端没有生效,重启一下vs就可以了:

api_key=os.getenv("DASHSCOPE_API_KEY"),

没设置,就直接写入自己的api-key就行了:

api_key="你自己的api-key",

 运行代码,返回信息,如下图所示,就表示环境搭建好了:

3、文生图

多模态的api免费额度

安装包

本示例里用到的包,模型管理包,安装命令如下

pip install dashscope

 requests包安装

pip install requests
  • 文生图代码

创建一个新.py文件,代码为:

from http import HTTPStatus
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath
import requests
from dashscope import ImageSynthesis
import osprompt = "一间有着精致窗户的花店,漂亮的木质门,摆放着花朵"print('----sync call, please wait a moment----')
rsp = ImageSynthesis.call(api_key=os.getenv("DASHSCOPE_API_KEY"),model="wanx2.1-t2i-turbo",prompt=prompt,n=1,size='1124*800')
print('response: %s' % rsp)
if rsp.status_code == HTTPStatus.OK:# 在当前目录下保存图片for result in rsp.output.results:file_name = PurePosixPath(unquote(urlparse(result.url).path)).parts[-1]with open('./%s' % file_name, 'wb+') as f:f.write(requests.get(result.url).content)
else:print('sync_call Failed, status_code: %s, code: %s, message: %s' %(rsp.status_code, rsp.code, rsp.message))

在vs编辑器里看看,有没有引入的包,包名是灰色的,如果有就是环境里缺这个包,用pip install 包名,加载包就行了。

执行后,会在当前目录下多一个图片文件,整个执行效果是这样:

我这次生成的图片是这样的:

通过改变prompt提示词,以及图画参数,可以生成自己想要的图。

4、其他-创意海报生成

大家可以参考官方文档,有很多其他模型可以选择:

图像生成-通义万相_大模型服务平台百炼(Model Studio)-阿里云帮助中心

 我看了一下创意海报生成,其中没有python的代码示例,然后,我就问了DeepSeek-r1:

“python调用wanx-poster-generation-v1 示例代码”

DeepSeek-r1分析之后,就返回了代码:

拷贝到我的vs里,替换api-key,就运行出来了,感觉AI还是有点用,共享一下海报的代码:

import requests
import time# 替换为你的阿里云API Key(从百炼控制台获取)
API_KEY = "你自己的aip-key"
HEADERS = {"Authorization": f"Bearer {API_KEY}","X-DashScope-Async": "enable","Content-Type": "application/json"
}def create_poster_task():"""创建海报生成任务"""url = "https://dashscope.aliyuncs.com/api/v1/services/aigc/text2image/image-synthesis"payload = {"model": "wanx-poster-generation-v1","input": {"title": "呼家将",  # 主标题(必填,30字符内)"sub_title": "—刘兰芳播讲",  # 副标题(可选)#"body_text": "春节是中国最重要的传统节日之一,象征新的开始与希望",  # 正文(可选,50字符内)"prompt_text_zh": "山川,沙场,将军",  # 中文提示词(与英文至少选其一)"wh_ratios": "横版",  # 版式:横版/竖版"lora_name": "中国水墨",  # 海报风格(可选,见风格枚举)"lora_weight": 0.8,  # 风格权重 [0,1]"generate_mode": "generate",  # 生成模式:generate/sr/hrf"generate_num": 1  # 生成数量 [1,4]},"parameters": {}}response = requests.post(url, headers=HEADERS, json=payload)if response.status_code == 200:return response.json()["output"]["task_id"]else:raise Exception(f"任务创建失败: {response.text}")def check_task_status(task_id):"""轮询任务状态并获取结果"""url = f"https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}"while True:response = requests.get(url, headers={"Authorization": f"Bearer {API_KEY}"})data = response.json()status = data["output"]["task_status"]if status == "SUCCEEDED":render_urls = data["output"].get("render_urls", [])if render_urls:print("生成的海报URL(24小时内有效):")for url in render_urls:print(url)else:print("检测到敏感内容,图片被拦截")breakelif status in ["PENDING", "RUNNING"]:print("任务处理中,等待5秒后重试...")time.sleep(5)elif status == "FAILED":error_code = data["output"].get("code", "Unknown")error_msg = data["output"].get("message", "无错误详情")raise Exception(f"任务失败: {error_code} - {error_msg}")else:raise Exception(f"未知状态: {status}")if __name__ == "__main__":try:task_id = create_poster_task()print(f"任务ID: {task_id}")check_task_status(task_id)except Exception as e:print(f"错误: {str(e)}")

执行后,提示并返回结果:

点击上面的url,就下载了生成的图片,我这次生成是这样的:

 

 本文就到这里,就到这里~~~~~~~

官方参考文档

首次调用通义千问API_大模型服务平台百炼(Model Studio)-阿里云帮助中心

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/72887.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零实现本地文生图部署(Stable Diffusion)

1. 依赖安装 文件打包下载地址(Stable Diffusion) # git : 用于下载源码 https://git-scm.com/downloads/win # Python 作为基础编译环境 https://www.python.org/downloads/ # Nvidia 驱动,用于编译使用GPU显卡硬件 https://ww…

缓存监控治理在游戏业务的实践和探索

作者:来自 vivo 互联网服务器团队- Wang Zhi 通过对 Redis 和 Caffeine 的缓存监控快速发现和定位问题降低故障的影响面。 一、缓存监控的背景 游戏业务中存在大量的高频请求尤其是对热门游戏而言,而应对高并发场景缓存是一个常见且有效的手段。 游戏业…

WordPress漏洞

一,后台修改模板拿WebShell 1,安装好靶场后访问 2,在如图所示的位置选择一个php文件写入一句话木马,我们这里选择在404.php中写入 3,访问404.php 二,上传主题拿WebShell 1,找到如图所示的页面…

【Linux系列】实时监控磁盘空间:`watch -n 1 ‘df -h‘` 命令详解

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

腾讯云大模型知识引擎×DeepSeek:股票分析低代码应用实践

项目背景与发展历程 在金融科技快速发展的今天,股票分析作为投资决策的核心环节,正面临数据量激增和复杂性提升的挑战。传统股票分析依赖人工处理,效率低下且成本高昂,而人工智能(AI)的引入为这一领域带来…

llama源码学习·model.py[3]ROPE旋转位置编码(4)ROPE的应用

一、源码注释 def apply_rotary_emb(xq: torch.Tensor, # 查询矩阵xk: torch.Tensor, # 键矩阵freqs_cis: torch.Tensor, # 旋转嵌入 ) -> Tuple[torch.Tensor, torch.Tensor]:# 首先将xq和xk张量转换为浮点数# 然后使用reshape将最后一个维度拆分为两个维度,每…

dify重磅升级:从0.15.3安全升级1.1.0新手避坑指南

Docker Compose 部署 备份自定义的 docker-compose YAML 文件(可选) cd docker cp docker-compose.yaml docker-compose.yaml.-$(date +%Y-%m-%d-%H-%M).bak从 main 分支获取最新代码 git checkout main git pull origin main停止服务,命令,请在 docker 目录下执行

高性能边缘计算网关-高算力web组态PLC网关

高性能EG8200Pro边缘计算算力网关-超强处理能力 样机申请测试:免费测试超30天(https://www.iotrouter.com/prototype/) 产品主要特点和特色功能 设备概览与连接能力 设备型号:EG8200P。主要特点: 支持多种工业协议&am…

稳定运行的以MongoDB数据库为数据源和目标的ETL性能变差时提高性能方法和步骤

在使用 MongoDB 作为数据源和目标的 ETL(提取、转换、加载)过程中,如果性能变差,可能是由于多种原因导致的。为了提高性能,可以按照以下方法和步骤进行排查和优化: 提高 MongoDB ETL 性能需要从多个方面入手…

Web开发-JS应用原生代码前端数据加密CryptoJS库jsencrypt库代码混淆

知识点: 1、安全开发-原生JS-数据加密&代码混淆 2、安全开发-原生JS-数据解密安全案例 一、演示案例-WEB开发-原生JS&第三方库-数据加密 前端技术JS实现: 1、非加密数据大致流程: 客户端发送->明文数据传输-服务端接受数据->…

【Dive Into Stable Diffusion v3.5】1:开源项目正式发布——深入探索SDv3.5模型全参/LoRA/RLHF训练

目录 1 引言2 项目简介3 快速上手3.1 下载代码3.2 环境配置3.3 项目结构3.4 下载模型与数据集3.5 运行指令3.6 核心参数说明3.6.1 通用参数3.6.2 优化器/学习率3.6.3 数据相关 4 结语 1 引言 在人工智能和机器学习领域,生成模型的应用越来越广泛。Stable Diffusion…

Docker Compose部署MantisBT

文章目录 1.docker-compose-mantisbt.yml2.部署3.配置MantisBT4.登录5.修改配置5.1 取消修改用户需要邮箱确认 1.docker-compose-mantisbt.yml version: "3" services:web:image: okainov/mantisbt:latestcontainer_name: mantisbt_webports:- "8989:80"e…

Grokking System Design 系统设计面试问题

《Grokking the System Design Interview》列举了多个经典的系统设计题目,通常按照 不同的业务场景和技术难点 进行分类。以下是一些常见的分类和题目示例: 1. 社交网络类 设计 Twitter(支持关注/取关、推文、Feed 流) 设计 Facebook Messenger(即时聊天,支持在线/离线状…

Android Zygote的进程机制

目录 ✅ Android Zygote 进程机制详解 🚩 一、Zygote 的作用 ⚙️ 二、Zygote 启动流程 ✅ 1. init 进程启动 Zygote ✅ 2. Zygote 初始化虚拟机与核心类库 ✅ 3. Zygote 监听 Socket ✅ 4. Zygote fork 创建应用进程 🔥 三、Zygote 与应用进程之…

## DeepSeek写射击手机小游戏

DeepSeek写射击手机小游戏 提问 根据提的要求,让DeepSeek整理的需求,进行提问,内容如下: 请生成一个包含以下功能的可运行移动端射击小游戏H5文件: 要求 可以重新开始游戏 可以暂停游戏 射击位置在底部中间&#xff…

【智能体】| 知识库、RAG概念区分以及智能体是什么

文章目录 前言简介大模型“幻觉”问题如何解决“幻觉”问题? RAG、智能体、RAG智能体概念什么是检索增强型生成(RAG)模拟简单的RAG场景 AI系统中的智能体是什么什么是Agentic RAG?Agentic RAG如何工作?Agentic RAG架构…

Linux与HTTP中的Cookie和Session

HTTP中的Cookie和Session 本篇介绍 前面几篇已经基本介绍了HTTP协议的大部分内容,但是前面提到了一点「HTTP是无连接、无状态的协议」,那么到底有什么无连接以及什么是无状态。基于这两个问题,随后解释什么是Cookie和Session,以…

Redis哨兵模式(Sentinel)高可用方案介绍与配置实践

Redis Sentinel 是 Redis 官方提供的高可用性(HA)解决方案,用于管理 Redis 主从架构中的故障检测和故障转移。通过 Redis Sentinel,可以实现 Redis 主从集群的自动故障恢复,确保服务的高可用性。本文将详细介绍Redis S…

【深度】JADC2的层级结构以及全域Mesh网络

文章目录 内容摘要1. 引言2. JADC2层级结构3. JADC2转变为CJADC24. 与工业领域自动化金字塔和全域MESH网络的异同4.1 工业领域自动化金字塔4.2 全域Mesh网络 #JADC2 #Mesh网络 #融合计划 #ABMS #超越计划 #人工智能 #普罗米修斯 **专栏说明:主要研究作战概念、新型作…

210、【图论】课程表(Python)

题目 思路 这道题本质上是一个拓扑排序。每次先统计每个点的入度个数、然后再统计点与点之间的邻接关系,找到入度为0的点作为起始遍历点。之后每遍历到这个点之后,就把这个点后续的邻接关系边的点入度减去一。当某个点入度为0时,继续被加入其…