跳转至

示例代码

Python 与 Flutter 示例代码和测试工具(社区整理,非官方)


项目结构

apinexus-docs/
├── examples/
│   ├── config.py                    # Python 统一配置
│   ├── chat/chat_example.py         # Python 文本对话示例
│   ├── image/image_example.py       # Python 图像生成示例
│   ├── embedding/embedding_example.py  # Python 向量生成示例
│   ├── multimodal/vision_example.py # Python 多模态识图示例
│   ├── audio/audio_example.py       # Python 音频处理示例
│   └── flutter/                     # Flutter 完整示例项目
│       ├── pubspec.yaml             # Flutter 依赖配置
│       ├── analysis_options.yaml    # Dart 代码规范
│       ├── .env.example             # API Key 模板
│       ├── README.md                # Flutter 项目说明
│       └── lib/
│           ├── main.dart            # 应用入口 + 导航
│           ├── services/            # API 客户端与状态管理
│           │   ├── api_client.dart  # ⭐ 核心:所有 API 调用封装
│           │   ├── chat_service.dart
│           │   ├── image_service.dart
│           │   ├── embedding_service.dart
│           │   └── audio_service.dart
│           ├── pages/               # 各功能页面 UI
│           │   ├── chat_page.dart
│           │   ├── image_page.dart
│           │   ├── embedding_page.dart
│           │   ├── vision_page.dart
│           │   └── audio_page.dart
│           └── widgets/             # 通用组件
│               └── message_bubble.dart
├── tests/
│   ├── test_chat_models.py          # 对话模型批量测试
│   ├── test_image_models.py         # 图像模型批量测试
│   └── test_embedding_models.py     # 向量模型批量测试
└── data/                            # 原始数据和测试结果

Python 示例

配置 API Key

编辑 examples/config.py 或使用环境变量:

export OPENAI_API_KEY="你的_API_Key"
export OPENAI_BASE_URL="https://apinexus.net/v1"

运行示例

# 文本对话
python3 examples/chat/chat_example.py

# 图像生成
python3 examples/image/image_example.py

# 向量生成
python3 examples/embedding/embedding_example.py

批量测试工具

# 测试所有对话模型
python3 tests/test_chat_models.py

# 测试所有 Embedding 模型
python3 tests/test_embedding_models.py

测试报告包含:成功/失败状态、响应时间、Token 使用量、错误信息、JSON 导出


Flutter 示例

项目位置

examples/flutter/ — 完整 Flutter 示例项目,支持 iOS / Android / Web / macOS / Windows / Linux

配置

examples/flutter/.env 中配置:

APINEXUS_API_KEY=nxk-你的APIKey
APINEXUS_BASE_URL=https://apinexus.net/v1

依赖(pubspec.yaml)

name: apinexus_flutter_demo
description: API Nexus Flutter Demo
version: 1.0.0+1

environment:
  sdk: '>=3.0.0 <4.0.0'

dependencies:
  flutter:
    sdk: flutter
  http: ^1.2.0
  provider: ^6.1.0
  flutter_dotenv: ^5.1.0
  fl_chart: ^0.68.0
  audioplayers: ^6.1.0
  file_picker: ^8.0.0

flutter:
  assets:
    - .env

运行

cd examples/flutter
flutter pub get
flutter run -d chrome      # Web 浏览器
flutter run -d linux       # Linux 桌面
flutter run -d macos       # macOS 桌面

功能模块

模块 说明 入口文件
文本对话 聊天界面、流式输出、多轮上下文 `lib/pages/chat_page.dart
图像生成 图片 Prompt 输入、图像预览、下载 lib/pages/image_page.dart
向量计算 语义搜索 UI、相似度展示 lib/pages/embedding_page.dart
多模态识图 本地图片选择、OCR 识别 lib/pages/vision_page.dart
音频处理 TTS 文本转语音、音色选择 lib/pages/audio_page.dart

最佳实践模板(Python)

带重试和日志的客户端

import time
import logging
from openai import OpenAI, APIError, RateLimitError

logging.basicConfig(level=logging.INFO)

class APINexusClient:
    def __init__(self, api_key, base_url="https://apinexus.net/v1"):
        self.client = OpenAI(api_key=api_key, base_url=base_url)

    def chat_with_retry(self, messages, max_retries=3, model="gpt-4o-mini"):
        for i in range(max_retries):
            try:
                return self.client.chat.completions.create(
                    model=model, messages=messages, timeout=60)
            except RateLimitError:
                if i < max_retries - 1:
                    time.sleep(2 ** i)
                    continue
                raise
            except APIError as e:
                if "500" in str(e) and i < max_retries - 1:
                    time.sleep(1)
                    continue
                raise

⚠️ 本文档为社区整理,非官方文档,仅供参考。

最后更新: 2026-06-19