news 2026/6/12 23:58:57

【分享】0 Token消耗,Agnes AI API 实战--免费多模态模型案例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【分享】0 Token消耗,Agnes AI API 实战--免费多模态模型案例

AI Agent的流行导致Token消耗激增,高昂成本迫使许多用户因顾虑费用而放弃尝试。

今天我来分享Agnes AI API 调用实战案例。

首先你需要有一个API Key:

注册完全免费,不需要绑卡,邮箱注册直接拿API Key。

访问 platform.agnes-ai.com 注册后,Agnes API完全兼容OpenAI格式,Base URL为https://apihub.agnes-ai.com/v1,Bearer Token认证。

案例1:快速接入代码示例

0成本快速接入方式,Python代码拿去参考使用.

源代码:

import requests API_KEY = "sk-*****" # 你的API密钥 BASE_URL = "https://apihub.agnes-ai.com/v1"# API基础URL # 文本生成 resp = requests.post(# 发送POST请求到API f"{BASE_URL}/chat/completions",# 调用API headers={"Authorization": f"Bearer {API_KEY}"},# 添加API密钥到请求头 json={ "model": "agnes-2.0-flash",# 模型名称 "messages": [{"role": "user", "content": "你好"}]# 发送用户消息"你好" } ) content = resp.json()["choices"][0]["message"]["content"]# 从响应中提取生成的文本 print(content) # 打印生成的文本

运行结果:

D:\PythonProjects\agnes-demo>python main.py 你好!我是 Agnes-2.0-Flash,由 Sapiens AI 开发。请问有什么我可以帮你的吗?

案例2:Agnes 1.5 Flash 与 Agnes 2.0 Flash 文本模型对比示例

提示词:“简单介绍一下Python”。看一下两个文本模型的生成效果。

源代码:

import sys import requests API_KEY = "你的API-KEY" BASE_URL = "https://apihub.agnes-ai.com/v1" def fix_encoding(): if sys.platform == "win32": sys.stdout.reconfigure(encoding="utf-8") def generate_text(prompt, model="agnes-2.0-flash"): """Generate text using Agnes text models""" resp = requests.post( f"{BASE_URL}/chat/completions", headers={"Authorization": f"Bearer {API_KEY}"}, json={ "model": model, "messages": [{"role": "user", "content": prompt}] } ) resp.raise_for_status() return resp.json()["choices"][0]["message"]["content"] if __name__ == "__main__": fix_encoding() print("=== 文本生成示例 ===") # Agnes 1.5 Flash 示例 print("\n1. 使用 Agnes 1.5 Flash:") text_1_5 = generate_text("简单介绍一下Python", "agnes-1.5-flash") print(text_1_5) # Agnes 2.0 Flash 示例 print("\n2. 使用 Agnes 2.0 Flash:") text_2_0 = generate_text("简单介绍一下Python", "agnes-2.0-flash") print(text_2_0)

运行结果:

PS D:\PythonProjects\agnes-demo> python .\example_text.py === 文本生成示例 === 1. 使用 Agnes 1.5 Flash: Python 是一种广泛使用的高级、解释型、通用编程语言。它由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发 行于 1991 年。 以下是 Python 的几个核心特点: 1. **简洁易读**:Python 的代码语法清晰、简洁,强调代码的可读性,接近自然语言(尤其是英语),使得初学者易于上手,也便于团队协作和维护。 2. **跨平台**:可以在 Windows、macOS、Linux 等多种操作系统上运行,具有“一次编写,到处运行”的特性。 3. **丰富的库和框架**:拥有庞大的标准库和第三方库生态系统,覆盖了 web 开发、数据科学、人工智能、自动化脚本、网络爬虫等多个领域。例如 Django/Flask(Web)、NumPy/Pandas(数据分析)、TensorFlow/PyTorch(机器学习)。 4. **动态类型和自动内存管理**:开发者无需手动管理内存,Python 会自动进行垃圾回收,降低了开发复杂度。 5. **应用领域广泛**: - Web 后端开发 - 数据分析与可视化 - 人工智能与机器学习 - 自动化运维与脚本编写 - 科学计算 由于这些优点,Python 近年来在全球范围内 popularity 持续上升,常被用作编程入门语言,同时也是许多专业开发者的首 选工具。 4. **动态类型和自动内存管理**:开发者无需手动管理内存,Python 会自动进行垃圾回收,降低了开发复杂度。 5. **应用领域广泛**: - Web 后端开发 - 数据分析与可视化 - 人工智能与机器学习 - 自动化运维与脚本编写 - 科学计算 由于这些优点,Python 近年来在全球范围内 popularity 持续上升,常被用作编程入门语言,同时也是许多专业开发者的首 选工具。 - 数据分析与可视化 - 人工智能与机器学习 - 自动化运维与脚本编写 - 科学计算 由于这些优点,Python 近年来在全球范围内 popularity 持续上升,常被用作编程入门语言,同时也是许多专业开发者的首 选工具。 由于这些优点,Python 近年来在全球范围内 popularity 持续上升,常被用作编程入门语言,同时也是许多专业开发者的首 选工具。 由于这些优点,Python 近年来在全球范围内 popularity 持续上升,常被用作编程入门语言,同时也是许多专业开发者的首 选工具。 选工具。 2. 使用 Agnes 2.0 Flash: Python 是一种广泛使用的高级编程语言,由 Guido van Rossum 于 1991 年发布。它以**清晰、简洁和易读**的代码风格著 称,强调代码的可读性,提倡使用空格缩进来定义代码块,从而使得程序逻辑更加直观。 以下是 Python 的主要特点: 1. **简单易学**:语法接近英语,非常适合编程初学者入门。 2. **解释型语言**:代码逐行执行,便于调试和快速开发。 3. **跨平台**:可在 Windows、macOS、Linux 等多种操作系统上运行。 4. **丰富的生态系统**:拥有海量的第三方库和框架,涵盖Web开发(如 Django、Flask)、数据科学(如 Pandas、NumPy)、人工智能(如 TensorFlow、PyTorch)等领域。 5. **动态类型**:变量无需声明类型,类型在运行时自动推断。 由于其易用性和强大的功能,Python 已成为全球最流行的编程语言之一,广泛应用于网站开发、数据分析、自动化脚本、人 工智能等多个领域。

案例3:Agnes Image 2.0 Flash 与 Agnes Image 2.1 Flash 图片模型对比示例

同一句提示词 “一只可爱的小猫在花园里玩耍,阳光明媚,色彩鲜艳”,看两个模型的图片生成效果。

源代码:

import sys import requests API_KEY = "你的API-KEY" BASE_URL = "https://apihub.agnes-ai.com/v1" def fix_encoding(): if sys.platform == "win32": sys.stdout.reconfigure(encoding="utf-8") def generate_image(prompt, model="agnes-image-2.1-flash", size="1024x1024", n=1): """Generate images using Agnes image models""" resp = requests.post( f"{BASE_URL}/images/generations", headers={"Authorization": f"Bearer {API_KEY}"}, json={ "model": model, "prompt": prompt, "n": n, "size": size } ) resp.raise_for_status() return resp.json()["data"] if __name__ == "__main__": fix_encoding() print("=== 图片生成示例 ===") prompt = "一只可爱的小猫在花园里玩耍,阳光明媚,色彩鲜艳" # Agnes Image 2.0 Flash 示例 print("\n1. 使用 Agnes Image 2.0 Flash:") images_2_0 = generate_image(prompt, "agnes-image-2.0-flash") for img in images_2_0: print(f"图片URL: {img['url']}") # Agnes Image 2.1 Flash 示例 print("\n2. 使用 Agnes Image 2.1 Flash:") images_2_1 = generate_image(prompt, "agnes-image-2.1-flash") for img in images_2_1: print(f"图片URL: {img['url']}")

运行结果:

案例4:Agnes-Video-V2.0 视频模型示例

视频生成需要一些时间,耐心等待一会儿,冲杯咖啡 过来看成果!

源代码:

import sys import os import requests from requests.adapters import HTTPAdapter from urllib3.util.retry import Retry import time # 建议改用环境变量读取: os.environ.get("AGNES_API_KEY") API_KEY = "你的API——KEY" BASE_URL = "https://apihub.agnes-ai.com/v1" def fix_encoding(): if sys.platform == "win32": sys.stdout.reconfigure(encoding="utf-8") def get_session(): """创建带自动重试和连接池的 Session""" session = requests.Session() retry_strategy = Retry( total=5, # 遇到连接错误最多重试5次 backoff_factor=2, # 重试退避间隔: 2s, 4s, 8s... status_forcelist=[500, 502, 503, 504], allowed_methods=["GET", "POST"] ) adapter = HTTPAdapter(max_retries=retry_strategy) session.mount("https://", adapter) session.mount("http://", adapter) return session def generate_video(prompt, model="agnes-video-v2.0", duration=10, image_url=None): """Generate video using Agnes Video model""" session = get_session() headers = { "Authorization": f"Bearer {API_KEY}", "Connection": "keep-alive" # 显式保持长连接 } payload = { "model": model, "prompt": prompt, "duration": duration } if image_url: payload["image"] = image_url # 创建任务(带超时保护) resp = session.post( f"{BASE_URL}/videos", headers=headers, json=payload, timeout=30 ) resp.raise_for_status() task_id = resp.json()["id"] print(f"视频生成任务已创建,任务ID: {task_id}", flush=True) # 轮询等待任务完成 while True: try: status_resp = session.get( f"{BASE_URL}/videos/{task_id}", headers=headers, timeout=30 # 关键:防止单次请求无限挂起 ) status_resp.raise_for_status() status_data = status_resp.json() if status_data["status"] == "succeeded": return status_data["data"][0]["url"] elif status_data["status"] in ["failed", "cancelled"]: raise Exception(f"视频生成失败: {status_data.get('error', {}).get('message', '未知错误')}") print("正在生成视频...", flush=True) except requests.exceptions.ConnectionError as e: # 捕获连接重置等网络异常,打印警告但不中断轮询 print(f"[警告] 网络连接异常,将在下次轮询时自动重试: {e}", flush=True) time.sleep(8) # 将轮询间隔从5秒调整为8秒,降低触发网关超时的概率 if __name__ == "__main__": fix_encoding() print("=== 视频生成示例 ===", flush=True) prompt = "让整个图片画面动起来" first_frame_image = "https://i-blog.csdnimg.cn/direct/1e81de94c1d447b0a93646646bcede39.png" try: video_url = generate_video(prompt, duration=5, image_url=first_frame_image) print(f"\n视频生成成功!视频URL: {video_url}", flush=True) except Exception as e: print(f"\n错误: {e}", flush=True)

运行结果:

Kitten playing with orange

另外我还需要泼点冷水:

agnes-video-v2.0 是 Agnes AI 的免费视频生成模型,生成视频的时候是它的已知特征,不是你的网络或配置问题。

根据社区实测数据:

场景实测耗时
文生视频 5 秒(1280×768)约 2 分 35 秒
文生视频 5 秒(排队时)可能 十几分钟
图生视频 5 秒十几分钟,且经常排队


另外注意几点:

异步流程:调用后不会立刻返回视频,而是先拿到 task_id,需要轮询状态直到 completed,才能获取视频 URL。
URL 临时性:生成的视频存储在 Google Cloud Storage,是临时链接,生成后要立刻下载保存。
排队问题:免费服务高峰期排队长,有时候甚至需要手动下载。
文生图(agnes-image-2.1-flash)相对快,图片模型走的是同步返回,几秒内就能拿到结果。
总结:免费是真的,慢也是真的。适合做批量素材、测试、学习,不建议当生产模型。如果追求速度和质量,还是得 Midjourney + Runway / 可灵 / 即梦这种付费方案。

如果觉得有帮助,欢迎点赞收藏转发。有不同看法欢迎评论区交流,每条都会看。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/12 23:58:55

OpenSSL终极部署指南:从源码编译到生产环境的完整实战

OpenSSL终极部署指南:从源码编译到生产环境的完整实战 【免费下载链接】openssl General purpose TLS and crypto library 项目地址: https://gitcode.com/GitHub_Trending/ope/openssl 你是否曾为系统自带的OpenSSL版本过旧而烦恼?或者在生产环境…

作者头像 李华
网站建设 2026/6/12 23:56:56

三步搞定CSDN博客下载:从零开始掌握个人知识库备份技巧

三步搞定CSDN博客下载:从零开始掌握个人知识库备份技巧 【免费下载链接】CSDNBlogDownloader 项目地址: https://gitcode.com/gh_mirrors/cs/CSDNBlogDownloader CSDN博客下载器是一款专为技术创作者和知识爱好者设计的本地化内容备份工具,它能将…

作者头像 李华
网站建设 2026/6/12 23:52:58

MC1323x无线SoC:经典ZigBee方案架构解析与低功耗设计实战

1. 项目概述:为什么MC1323x是无线传感网络的经典之选在十多年前,当我们开始尝试将各种家电、传感器和控制器“无线化”时,面临的第一个难题就是如何选择无线技术。蓝牙功耗和组网能力有限,Wi-Fi又太耗电,而专有的Sub-1…

作者头像 李华
网站建设 2026/6/12 23:46:55

基于Kalman滤波和现代时间序列分析方法,集中式融合估计、分布式融合估计、 协方差交叉融合等方法实现对状态的融合估计附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。🍎完整代码获取 定制创新 论文复现点击:Matlab科研工作室👇 关注我领取海量matlab电子书和数学建模资料 &#x1f3…

作者头像 李华