【菜鳥飛】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.pswp.cn/web/72887.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/72887.shtml
英文地址,請注明出處:http://en.pswp.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時,繼續被加入其…