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 / 可灵 / 即梦这种付费方案。
如果觉得有帮助,欢迎点赞收藏转发。有不同看法欢迎评论区交流,每条都会看。