尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

nano banana pro 怎么用?甜甜圈API 三十行跑通 nano banana pro(含重试与异步并发)

nano banana pro 怎么用?甜甜圈API 三十行跑通 nano banana pro(含重试与异步并发) 网上 Python 调图像生成接口的例子大多绑死某一家 SDK换个服务就得重写。其实完全不用 SDK——甜甜圈APIdashengfenshen.cn兼容 OpenAI 的chat/completions协议requests一个库就够了。这篇给一份能直接抄进项目的实现同步版三十行跑通再补上重试和asyncio并发。一、接口信息项值Base URLhttps://dashengfenshen.cn接口POST /v1/chat/completions鉴权Authorization: Bearer {你的API密钥}数据格式application/jsonUTF-8二、最小实现import os import requests ENDPOINT https://dashengfenshen.cn/v1/chat/completions def generate(prompt: str, model: str nano-banana-pro, timeout: int 120) - dict: 调 AI 绘画API 出图。生图慢timeout 一定要给足。 resp requests.post( ENDPOINT, headers{ Authorization: fBearer {os.environ[TTQ_API_KEY]}, Content-Type: application/json, }, json{model: model, messages: [{role: user, content: prompt}]}, timeouttimeout, ) resp.raise_for_status() return resp.json() if __name__ __main__: data generate(白底电商主图无线蓝牙耳机居中构图柔和顶光) print(data)两个新手最容易踩的坑密钥别写死在代码里走环境变量别提交进仓库timeout别用默认值——requests默认是不超时的网络一抖请求就永久挂住跑批时整个进程卡死。三、加重试生图 API偶发 5xx 和网络抖动是常态没有重试的批量脚本基本跑不完import time from requests.exceptions import RequestException def generate_with_retry(prompt: str, model: str nano-banana-pro, attempts: int 3) - dict: last None for i in range(attempts): try: return generate(prompt, model) except RequestException as e: last e # 指数退避2s、4s、8s。别用固定间隔服务端抖动时会同时重试放大压力 time.sleep(2 ** (i 1)) raise last注意只对网络异常和 5xx重试。4xx 是请求本身有问题密钥错、参数错、积分不足重试多少次都一样白白浪费时间。四、异步并发批量出图用asynciohttpx比多线程干净得多用信号量把并发压在配额之内import asyncio import httpx async def batch_generate(prompts: list[str], model: str nano-banana2, workers: int 16): sem asyncio.Semaphore(workers) # 同时在飞的请求数 headers {Authorization: fBearer {os.environ[TTQ_API_KEY]}} async with httpx.AsyncClient(timeout120) as client: async def one(idx: int, prompt: str): async with sem: try: r await client.post(ENDPOINT, headersheaders, json{ model: model, messages: [{role: user, content: prompt}], }) r.raise_for_status() return idx, r.json() except Exception: return idx, None # 失败留空跑完统一挑出来重试 results await asyncio.gather(*(one(i, p) for i, p in enumerate(prompts))) out [None] * len(prompts) for idx, data in results: out[idx] data return out结果按下标写回是关键——跑完一眼就能定位哪几条失败不用整批重来。workers按自己配额调16 起步比较稳。五、模型怎么选model字段直接换字符串函数签名都不用动模型代码说明消耗nano-banana2Flash 级速度快适合跑量8 积分/次nano-banana-proPro 级支持 1K/2K/4K10 积分/次gpt-image-2细节质感好适合终稿按次计费ttq-cutout抠图出白底图10 积分/次Veo 3.1 视频生成/Sora 2生视频120 / 130 积分/次实践上的分工批量草稿用nano-banana2终稿切nano-banana-pro或gpt-image-2再出一版对比挑最好的用。六、小结Python 接生图接口的要点就四条密钥走环境变量、timeout给足、只对 5xx 重试、并发用信号量压住。甜甜圈APIdashengfenshen.cn的 OpenAI 兼容协议让 Python 侧完全不需要 SDKrequests或httpx直接调。模型全nano banana pro、gpt-image-2、Veo 3.1、Sora 2 一个密钥全接、价格便宜积分制明码标价、并发高、出图快、稳定。文档地址https://dashengfenshen.cn 。
返回列表