完善 Rust SDK:中文化文档和注释,添加多个测试示例

- 翻译所有文档和注释为中文(README.md, CHANGELOG.md, API文档等)
- 修复 reqwest TLS 支持问题,添加 rustls-tls 功能
- 新增5个测试示例:
  * health_check.rs - 基础健康检查
  * llm_chat_test.rs - LLM聊天功能测试
  * midjourney_image_test.rs - Midjourney图像生成测试
  * file_upload_test.rs - 文件上传和媒体分析测试
  * comprehensive_test.rs - 综合功能测试
- 添加测试脚本(PowerShell和Bash版本)
- 验证API功能正常:LLM聊天、图像生成、健康检查等
This commit is contained in:
imeepos
2025-08-18 11:07:07 +08:00
parent 8a5df2f5ef
commit 5345c703f5
16 changed files with 1282 additions and 227 deletions

View File

@@ -1,71 +1,71 @@
# Changelog # 更新日志
All notable changes to this project will be documented in this file. 此项目的所有重要更改都将记录在此文件中。
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), 格式基于 [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 此项目遵循 [语义化版本控制](https://semver.org/spec/v2.0.0.html)
## [1.0.6] - 2024-12-19 ## [1.0.6] - 2024-12-19
### Added ### 新增
- Initial release of the Text Video Agent Rust client - 文本视频智能体 Rust 客户端的初始版本
- Complete API coverage for Text Video Agent API v1.0.6 - 完整覆盖文本视频智能体 API v1.0.6
- Support for all major API categories: - 支持所有主要 API 分类:
- Image generation (multiple models) - 图像生成(多种模型)
- Video generation (multiple providers) - 视频生成(多个提供商)
- Audio synthesis and voice cloning - 音频合成和声音克隆
- Lip sync with Hedra 2.0 and 3.0 - 使用 Hedra 2.0 3.0 的唇形同步
- Digital human creation and animation - 数字人创建和动画
- LLM integration with multi-modal analysis - 大语言模型集成与多模态分析
- ComfyUI workflow execution - ComfyUI 工作流执行
- File upload and management - 文件上传和管理
- Template management - 模板管理
- Async/await support with `reqwest` and `tokio` - 使用 `reqwest` `tokio` 的异步/等待支持
- Type-safe API with comprehensive error handling - 具有全面错误处理的类型安全 API
- Multipart form data support for file uploads - 文件上传的多部分表单数据支持
- Examples demonstrating basic usage and advanced features - 演示基本用法和高级功能的示例
- Complete documentation and README - 完整的文档和 README
### Features ### 功能
- **DefaultApi**: Core functionality, templates, file operations - **DefaultApi**: 核心功能、模板、文件操作
- **ApiApi**: Task management and basic operations - **ApiApi**: 任务管理和基本操作
- **Class302Api**: 302AI integration services - **Class302Api**: 302AI 集成服务
- **Class302aiApiApi**: 302AI JiMeng video generation - **Class302aiApiApi**: 302AI 即梦视频生成
- **Class302aiMidjourneyApi**: 302AI Midjourney integration - **Class302aiMidjourneyApi**: 302AI Midjourney 集成
- **Class302aiVeoApi**: 302AI VEO video generation - **Class302aiVeoApi**: 302AI VEO 视频生成
- **ComfyuiApi**: ComfyUI workflow execution - **ComfyuiApi**: ComfyUI 工作流执行
- **Hedra20Api**: Hedra 2.0 lip sync services - **Hedra20Api**: Hedra 2.0 唇形同步服务
- **Hedra30Api**: Hedra 3.0 lip sync services - **Hedra30Api**: Hedra 3.0 唇形同步服务
- **LlmApi**: Large Language Model integration - **LlmApi**: 大语言模型集成
- **MidjourneyApi**: Midjourney image generation - **MidjourneyApi**: Midjourney 图像生成
- **MidjourneyapiApi**: Midjourney video generation - **MidjourneyapiApi**: Midjourney 视频生成
- **OmniHumanApi**: Digital human services - **OmniHumanApi**: 数字人服务
### Technical Details ### 技术细节
- Generated from OpenAPI 3.1 specification - 从 OpenAPI 3.1 规范生成
- Built with OpenAPI Generator 7.14.0 - 使用 OpenAPI Generator 7.14.0 构建
- Rust edition 2021 - Rust 版本 2021
- MIT OR Apache-2.0 dual license - MIT Apache-2.0 双重许可证
- Comprehensive test coverage (auto-generated) - 全面的测试覆盖(自动生成)
- Full documentation with examples - 包含示例的完整文档
### Dependencies ### 依赖项
- `serde` ^1.0 with derive feature - `serde` ^1.0 带有 derive 功能
- `serde_with` ^3.8 for advanced serialization - `serde_with` ^3.8 用于高级序列化
- `serde_json` ^1.0 for JSON handling - `serde_json` ^1.0 用于 JSON 处理
- `serde_repr` ^0.1 for enum representations - `serde_repr` ^0.1 用于枚举表示
- `url` ^2.5 for URL parsing - `url` ^2.5 用于 URL 解析
- `reqwest` ^0.12 with JSON and multipart support - `reqwest` ^0.12 带有 JSON 和多部分支持
### Examples ### 示例
- Basic usage example showing health checks and model queries - 显示健康检查和模型查询的基本用法示例
- Advanced image and video generation example - 高级图像和视频生成示例
- Task status polling implementation - 任务状态轮询实现
- File upload handling patterns - 文件上传处理模式
### Documentation ### 文档
- Complete API reference - 完整的 API 参考
- Usage examples - 使用示例
- Integration guide - 集成指南
- Error handling patterns - 错误处理模式
- Best practices for async operations - 异步操作最佳实践

View File

@@ -1,9 +1,9 @@
[package] [package]
name = "text_video_agent_client" name = "text_video_agent_client"
version = "1.0.6" version = "1.0.6"
authors = ["OpenAPI Generator team and contributors"] authors = ["OpenAPI Generator 团队和贡献者"]
description = "Rust client for Text Video Agent API - A comprehensive AI content generation service supporting image generation, video generation, audio synthesis, lip sync, digital human creation, and LLM inference" description = "文本视频智能体 API 的 Rust 客户端 - 一个全面的 AI 内容生成服务,支持图像生成、视频生成、音频合成、唇形同步、数字人创建和大语言模型推理"
keywords = ["api", "client", "video", "ai", "generation"] keywords = ["api", "client", "video", "ai", "generation", "中文", "智能体"]
categories = ["api-bindings", "multimedia", "web-programming::http-client"] categories = ["api-bindings", "multimedia", "web-programming::http-client"]
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
edition = "2021" edition = "2021"
@@ -13,7 +13,7 @@ documentation = "https://docs.rs/text_video_agent_client"
readme = "README.md" readme = "README.md"
[workspace] [workspace]
# This is a standalone package, not part of a workspace # 这是一个独立的包,不是工作空间的一部分
[dependencies] [dependencies]
serde = { version = "^1.0", features = ["derive"] } serde = { version = "^1.0", features = ["derive"] }
@@ -21,7 +21,7 @@ serde_with = { version = "^3.8", default-features = false, features = ["base64",
serde_json = "^1.0" serde_json = "^1.0"
serde_repr = "^0.1" serde_repr = "^0.1"
url = "^2.5" url = "^2.5"
reqwest = { version = "^0.12", default-features = false, features = ["json", "multipart"] } reqwest = { version = "^0.12", default-features = false, features = ["json", "multipart", "rustls-tls"] }
[dev-dependencies] [dev-dependencies]
tokio = { version = "1.0", features = ["full"] } tokio = { version = "1.0", features = ["full"] }

View File

@@ -1,31 +1,31 @@
# Text Video Agent Client # 文本视频智能体客户端
[![Crates.io](https://img.shields.io/crates/v/text_video_agent_client.svg)](https://crates.io/crates/text_video_agent_client) [![Crates.io](https://img.shields.io/crates/v/text_video_agent_client.svg)](https://crates.io/crates/text_video_agent_client)
[![Documentation](https://docs.rs/text_video_agent_client/badge.svg)](https://docs.rs/text_video_agent_client) [![文档](https://docs.rs/text_video_agent_client/badge.svg)](https://docs.rs/text_video_agent_client)
[![License: MIT OR Apache-2.0](https://img.shields.io/badge/License-MIT%20OR%20Apache--2.0-blue.svg)](https://github.com/your-repo/text-video-agent-rust-sdk) [![许可证: MIT OR Apache-2.0](https://img.shields.io/badge/License-MIT%20OR%20Apache--2.0-blue.svg)](https://github.com/your-repo/text-video-agent-rust-sdk)
A comprehensive Rust client for the Text Video Agent API - an AI content generation service that supports: 一个全面的 Rust 客户端,用于文本视频智能体 API - 一个支持以下功能的 AI 内容生成服务:
- 🎨 **Image Generation** - Multiple AI models (Midjourney, Stable Diffusion, etc.) - 🎨 **图像生成** - 多种 AI 模型(MidjourneyStable Diffusion 等)
- 🎬 **Video Generation** - Text-to-video and image-to-video conversion - 🎬 **视频生成** - 文本转视频和图像转视频
- 🎵 **Audio Synthesis** - Text-to-speech and voice cloning - 🎵 **音频合成** - 文本转语音和声音克隆
- 💋 **Lip Sync** - Advanced lip synchronization with Hedra - 💋 **唇形同步** - 使用 Hedra 的高级唇形同步技术
- 🤖 **Digital Human** - Create and animate digital avatars - 🤖 **数字人** - 创建和动画数字化身
- 🧠 **LLM Integration** - Multi-modal AI analysis and inference - 🧠 **大语言模型集成** - 多模态 AI 分析和推理
- 🔧 **Workflow Automation** - ComfyUI workflow execution - 🔧 **工作流自动化** - ComfyUI 工作流执行
## Features ## 特性
- **Type-safe API** - Generated from OpenAPI 3.1 specification - **类型安全的 API** - 从 OpenAPI 3.1 规范生成
- **Async/await support** - Built on `reqwest` and `tokio` - **异步/等待支持** - 基于 `reqwest` `tokio` 构建
- **Comprehensive coverage** - All API endpoints included - **全面覆盖** - 包含所有 API 端点
- **File upload support** - Multipart form data handling - **文件上传支持** - 多部分表单数据处理
- **Error handling** - Structured error responses - **错误处理** - 结构化错误响应
- **Documentation** - Complete API documentation - **文档** - 完整的 API 文档
## Installation ## 安装
Add this to your `Cargo.toml`: 将以下内容添加到您的 `Cargo.toml`
```toml ```toml
[dependencies] [dependencies]
@@ -33,7 +33,7 @@ text_video_agent_client = "1.0.6"
tokio = { version = "1.0", features = ["full"] } tokio = { version = "1.0", features = ["full"] }
``` ```
## Quick Start ## 快速开始
```rust ```rust
use text_video_agent_client::{apis::configuration::Configuration, apis::default_api}; use text_video_agent_client::{apis::configuration::Configuration, apis::default_api};
@@ -45,30 +45,30 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
..Default::default() ..Default::default()
}; };
// Generate an image // 生成图像
let response = default_api::submit_image_task_api_custom_image_submit_task_post( let response = default_api::submit_image_task_api_custom_image_submit_task_post(
&config, &config,
// Add your parameters here // 在此处添加您的参数
).await?; ).await?;
println!("Task submitted: {:?}", response); println!("任务已提交: {:?}", response);
Ok(()) Ok(())
} }
``` ```
## API Overview ## API 概览
This client was generated from the Text Video Agent API specification and provides access to all available endpoints: 此客户端是从文本视频智能体 API 规范生成的,提供对所有可用端点的访问:
- **API version**: 1.0.6 - **API 版本**: 1.0.6
- **Package version**: 1.0.6 - **包版本**: 1.0.6
- **Generated with**: OpenAPI Generator 7.14.0 - **生成工具**: OpenAPI Generator 7.14.0
## Documentation for API Endpoints ## API 端点文档
All URIs are relative to *http://localhost* 所有 URI 都相对于 *http://localhost*
Class | Method | HTTP request | Description 类 | 方法 | HTTP 请求 | 描述
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
*DefaultApi* | [**check_template_task_type_api_template_check_task_type_get**](docs/DefaultApi.md#check_template_task_type_api_template_check_task_type_get) | **GET** /api/template/check/task_type | 检查任务类型是否可用 *DefaultApi* | [**check_template_task_type_api_template_check_task_type_get**](docs/DefaultApi.md#check_template_task_type_api_template_check_task_type_get) | **GET** /api/template/check/task_type | 检查任务类型是否可用
*DefaultApi* | [**create_higgsfield_character_api_custom_extend_higgsfield_create_character_post**](docs/DefaultApi.md#create_higgsfield_character_api_custom_extend_higgsfield_create_character_post) | **POST** /api/custom/extend/higgsfield/create/character | 提交创建生成角色任务 *DefaultApi* | [**create_higgsfield_character_api_custom_extend_higgsfield_create_character_post**](docs/DefaultApi.md#create_higgsfield_character_api_custom_extend_higgsfield_create_character_post) | **POST** /api/custom/extend/higgsfield/create/character | 提交创建生成角色任务
@@ -163,114 +163,180 @@ Class | Method | HTTP request | Description
*OmniHumanApi* | [**submit_video_generate_task_api_ark_omnihuman_video_submit_task_post**](docs/OmniHumanApi.md#submit_video_generate_task_api_ark_omnihuman_video_submit_task_post) | **POST** /api/ark/omnihuman/video/submit/task | 提交视频生成任务 *OmniHumanApi* | [**submit_video_generate_task_api_ark_omnihuman_video_submit_task_post**](docs/OmniHumanApi.md#submit_video_generate_task_api_ark_omnihuman_video_submit_task_post) | **POST** /api/ark/omnihuman/video/submit/task | 提交视频生成任务
## Documentation For Models ## 模型文档
- [FileUploadResponse](docs/FileUploadResponse.md) - [FileUploadResponse](docs/FileUploadResponse.md) - 文件上传响应
- [HttpValidationError](docs/HttpValidationError.md) - [HttpValidationError](docs/HttpValidationError.md) - HTTP 验证错误
- [TaskRequest](docs/TaskRequest.md) - [TaskRequest](docs/TaskRequest.md) - 任务请求
- [ValidationError](docs/ValidationError.md) - [ValidationError](docs/ValidationError.md) - 验证错误
- [ValidationErrorLocInner](docs/ValidationErrorLocInner.md) - [ValidationErrorLocInner](docs/ValidationErrorLocInner.md) - 验证错误位置内部
## Examples ## 示例
### Image Generation ### 快速开始 - 健康检查
```rust ```rust
use text_video_agent_client::{apis::configuration::Configuration, apis::default_api}; use text_video_agent_client::apis::configuration::Configuration;
use text_video_agent_client::apis::{default_api, llm_api};
#[tokio::main] #[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> { async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Configuration::default(); let config = Configuration {
base_path: "https://bowongai-dev--text-video-agent-fastapi-app.modal.run".to_string(),
..Default::default()
};
// Submit image generation task // 测试连接
let response = default_api::submit_image_task_api_custom_image_submit_task_post( let response = default_api::root_get(&config).await?;
&config, println!("连接成功: {}", response);
// Add your parameters
).await?;
Ok(()) // 获取支持的模型
}
```
### Video Generation
```rust
use text_video_agent_client::{apis::configuration::Configuration, apis::default_api};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Configuration::default();
// Submit video generation task
let response = default_api::submit_video_task_api_custom_video_submit_task_post(
&config,
// Add your parameters
).await?;
Ok(())
}
```
### LLM Integration
```rust
use text_video_agent_client::{apis::configuration::Configuration, apis::llm_api};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Configuration::default();
// Get supported models
let models = llm_api::llm_supported_models(&config).await?; let models = llm_api::llm_supported_models(&config).await?;
println!("Available models: {:?}", models); println!("可用模型: {}", models);
Ok(()) Ok(())
} }
``` ```
## API Categories ### LLM 聊天
The client provides access to the following API categories: ```rust
use text_video_agent_client::apis::{configuration::Configuration, llm_api};
- **DefaultApi** - Core functionality (templates, file upload, health checks) #[tokio::main]
- **ApiApi** - Task management and basic operations async fn main() -> Result<(), Box<dyn std::error::Error>> {
- **Class302Api** - 302AI integration services let config = Configuration {
- **Class302aiApiApi** - 302AI JiMeng video generation base_path: "https://bowongai-dev--text-video-agent-fastapi-app.modal.run".to_string(),
- **Class302aiMidjourneyApi** - 302AI Midjourney integration ..Default::default()
- **Class302aiVeoApi** - 302AI VEO video generation };
- **ComfyuiApi** - ComfyUI workflow execution
- **Hedra20Api** - Hedra 2.0 lip sync services
- **Hedra30Api** - Hedra 3.0 lip sync services
- **LlmApi** - Large Language Model integration
- **MidjourneyApi** - Midjourney image generation
- **MidjourneyapiApi** - Midjourney video generation
- **OmniHumanApi** - Digital human services
## Documentation // LLM 聊天
let response = llm_api::llm_chat(
&config,
"你好,请介绍一下你自己",
None, // model_name
Some(0.7), // temperature
Some(1000), // max_tokens
Some(30.0), // timeout
).await?;
To access the complete API documentation: println!("AI 回复: {}", response);
Ok(())
}
```
### Midjourney 图像生成
```rust
use text_video_agent_client::apis::{configuration::Configuration, midjourney_api};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Configuration {
base_path: "https://bowongai-dev--text-video-agent-fastapi-app.modal.run".to_string(),
..Default::default()
};
// 异步图像生成
let response = midjourney_api::async_gen_image_api_mj_async_generate_image_post(
&config,
"a beautiful sunset over mountains, digital art",
None, // img_file
).await?;
println!("图像生成任务: {}", response);
Ok(())
}
```
## 运行测试示例
我们提供了多个测试示例来验证 API 功能:
### 使用测试脚本(推荐)
**Windows (PowerShell):**
```powershell
cd cargos/text-video-agent-rust-sdk
.\run_tests.ps1
```
**Linux/macOS (Bash):**
```bash
cd cargos/text-video-agent-rust-sdk
./run_tests.sh
```
### 手动运行单个测试
```bash
# 健康检查测试
cargo run --example health_check
# LLM 聊天测试
cargo run --example llm_chat_test
# Midjourney 图像生成测试
cargo run --example midjourney_image_test
# 文件上传和媒体分析测试
cargo run --example file_upload_test
# 综合功能测试
cargo run --example comprehensive_test
```
### 测试示例说明
1. **health_check.rs** - 基础健康检查,验证 API 连接和服务状态
2. **llm_chat_test.rs** - 测试大语言模型聊天功能,包括交互式聊天
3. **midjourney_image_test.rs** - 测试 Midjourney 图像生成功能
4. **file_upload_test.rs** - 测试文件上传和媒体分析功能
5. **comprehensive_test.rs** - 综合测试,包含性能测试和结果汇总
## API 分类
客户端提供对以下 API 分类的访问:
- **DefaultApi** - 核心功能(模板、文件上传、健康检查)
- **ApiApi** - 任务管理和基本操作
- **Class302Api** - 302AI 集成服务
- **Class302aiApiApi** - 302AI 即梦视频生成
- **Class302aiMidjourneyApi** - 302AI Midjourney 集成
- **Class302aiVeoApi** - 302AI VEO 视频生成
- **ComfyuiApi** - ComfyUI 工作流执行
- **Hedra20Api** - Hedra 2.0 唇形同步服务
- **Hedra30Api** - Hedra 3.0 唇形同步服务
- **LlmApi** - 大语言模型集成
- **MidjourneyApi** - Midjourney 图像生成
- **MidjourneyapiApi** - Midjourney 视频生成
- **OmniHumanApi** - 数字人服务
## 文档
要访问完整的 API 文档:
```bash ```bash
cargo doc --open cargo doc --open
``` ```
Or visit [docs.rs/text_video_agent_client](https://docs.rs/text_video_agent_client) 或访问 [docs.rs/text_video_agent_client](https://docs.rs/text_video_agent_client)
## Contributing ## 贡献
This client is auto-generated from the OpenAPI specification. For issues related to the API itself, please contact the API provider. For issues with this Rust client, please open an issue in the repository. 此客户端是从 OpenAPI 规范自动生成的。对于与 API 本身相关的问题,请联系 API 提供商。对于此 Rust 客户端的问题,请在仓库中提交 issue。
## License ## 许可证
Licensed under either of 根据以下任一许可证授权:
- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) - Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) http://www.apache.org/licenses/LICENSE-2.0)
- MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) - MIT license ([LICENSE-MIT](LICENSE-MIT) http://opensource.org/licenses/MIT)
at your option. 您可以选择其中任何一个。
## Author ## 作者

View File

@@ -1,34 +1,34 @@
# \DefaultApi # \DefaultApi
All URIs are relative to *http://localhost* 所有 URI 都相对于 *http://localhost*
Method | HTTP request | Description 方法 | HTTP 请求 | 描述
------------- | ------------- | ------------- ------------- | ------------- | -------------
[**root_get**](DefaultApi.md#root_get) | **GET** / | Root [**root_get**](DefaultApi.md#root_get) | **GET** / | 根路径
## root_get ## root_get
> serde_json::Value root_get() > serde_json::Value root_get()
Root 根路径
### Parameters ### 参数
This endpoint does not need any parameter. 此端点不需要任何参数。
### Return type ### 返回类型
[**serde_json::Value**](serde_json::Value.md) [**serde_json::Value**](serde_json::Value.md)
### Authorization ### 授权
No authorization required 无需授权
### HTTP request headers ### HTTP 请求头
- **Content-Type**: Not defined - **Content-Type**: 未定义
- **Accept**: application/json - **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) [[返回顶部]](#) [[返回 API 列表]](../README.md#documentation-for-api-endpoints) [[返回模型列表]](../README.md#documentation-for-models) [[返回 README]](../README.md)

View File

@@ -1,8 +1,8 @@
# \LlmApi # \LlmApi
All URIs are relative to *http://localhost* 所有 URI 都相对于 *http://localhost*
Method | HTTP request | Description 方法 | HTTP 请求 | 描述
------------- | ------------- | ------------- ------------- | ------------- | -------------
[**google_file_upload**](LlmApi.md#google_file_upload) | **POST** /api/llm/google/vertex-ai/upload | 上传文件到谷歌存储,用于gemini视觉功能 [**google_file_upload**](LlmApi.md#google_file_upload) | **POST** /api/llm/google/vertex-ai/upload | 上传文件到谷歌存储,用于gemini视觉功能
[**invoke_gemini_ai_api_llm_google_chat_post**](LlmApi.md#invoke_gemini_ai_api_llm_google_chat_post) | **POST** /api/llm/google/chat | 调用google推理 [**invoke_gemini_ai_api_llm_google_chat_post**](LlmApi.md#invoke_gemini_ai_api_llm_google_chat_post) | **POST** /api/llm/google/chat | 调用google推理

View File

@@ -1,8 +1,8 @@
# \MidjourneyApi # \MidjourneyApi
All URIs are relative to *http://localhost* 所有 URI 都相对于 *http://localhost*
Method | HTTP request | Description 方法 | HTTP 请求 | 描述
------------- | ------------- | ------------- ------------- | ------------- | -------------
[**async_gen_image_api_mj_async_generate_image_post**](MidjourneyApi.md#async_gen_image_api_mj_async_generate_image_post) | **POST** /api/mj/async/generate/image | 异步提交生图任务 [**async_gen_image_api_mj_async_generate_image_post**](MidjourneyApi.md#async_gen_image_api_mj_async_generate_image_post) | **POST** /api/mj/async/generate/image | 异步提交生图任务
[**async_query_status_api_mj_async_query_status_get**](MidjourneyApi.md#async_query_status_api_mj_async_query_status_get) | **GET** /api/mj/async/query/status | 异步查询任务状态 [**async_query_status_api_mj_async_query_status_get**](MidjourneyApi.md#async_query_status_api_mj_async_query_status_get) | **GET** /api/mj/async/query/status | 异步查询任务状态
@@ -20,28 +20,28 @@ Method | HTTP request | Description
> serde_json::Value async_gen_image_api_mj_async_generate_image_post(prompt, img_file) > serde_json::Value async_gen_image_api_mj_async_generate_image_post(prompt, img_file)
异步提交生图任务 异步提交生图任务
### Parameters ### 参数
Name | Type | Description | Required | Notes 名称 | 类型 | 描述 | 必需 | 备注
------------- | ------------- | ------------- | ------------- | ------------- ------------- | ------------- | ------------- | ------------- | -------------
**prompt** | **String** | | [required] | **prompt** | **String** | 提示词 | [必需] |
**img_file** | Option<**std::path::PathBuf**> | | | **img_file** | Option<**std::path::PathBuf**> | 图片文件 | |
### Return type ### 返回类型
[**serde_json::Value**](serde_json::Value.md) [**serde_json::Value**](serde_json::Value.md)
### Authorization ### 授权
No authorization required 无需授权
### HTTP request headers ### HTTP 请求头
- **Content-Type**: multipart/form-data - **Content-Type**: multipart/form-data
- **Accept**: application/json - **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) [[返回顶部]](#) [[返回 API 列表]](../README.md#documentation-for-api-endpoints) [[返回模型列表]](../README.md#documentation-for-models) [[返回 README]](../README.md)
## async_query_status_api_mj_async_query_status_get ## async_query_status_api_mj_async_query_status_get

View File

@@ -0,0 +1,260 @@
use text_video_agent_client::apis::configuration::Configuration;
use text_video_agent_client::apis::{default_api, midjourney_api, llm_api, hedra20_api};
use std::time::Duration;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// 创建支持 HTTPS 的客户端
let client = reqwest::Client::builder()
.timeout(std::time::Duration::from_secs(30))
.build()?;
// 创建配置
let config = Configuration {
base_path: "https://bowongai-dev--text-video-agent-fastapi-app.modal.run".to_string(),
user_agent: Some("text-video-agent-rust-client/1.0.6".to_string()),
client,
basic_auth: None,
oauth_access_token: None,
bearer_access_token: None,
api_key: None,
};
println!("🚀 文本视频智能体 API 综合测试");
println!("===============================");
println!("API 地址: {}", config.base_path);
println!();
let mut test_results = Vec::new();
// 1. 基础连接测试
println!("🔗 1. 基础连接测试");
println!("------------------");
match default_api::root_get(&config).await {
Ok(response) => {
println!("✅ 根路径连接成功: {}", response);
test_results.push(("根路径连接", true));
}
Err(e) => {
println!("❌ 根路径连接失败: {:?}", e);
test_results.push(("根路径连接", false));
}
}
println!();
// 2. 健康检查测试
println!("🏥 2. 服务健康检查");
println!("------------------");
// Midjourney 健康检查
match midjourney_api::health_check_api_mj_health_get(&config).await {
Ok(response) => {
println!("✅ Midjourney 服务健康: {}", response);
test_results.push(("Midjourney 健康检查", true));
}
Err(e) => {
println!("❌ Midjourney 服务异常: {:?}", e);
test_results.push(("Midjourney 健康检查", false));
}
}
println!();
// 3. LLM 功能测试
println!("🧠 3. 大语言模型功能测试");
println!("------------------------");
// 获取支持的模型
match llm_api::llm_supported_models(&config).await {
Ok(models) => {
println!("✅ 获取模型列表成功: {}", models);
test_results.push(("LLM 模型列表", true));
}
Err(e) => {
println!("❌ 获取模型列表失败: {:?}", e);
test_results.push(("LLM 模型列表", false));
}
}
// 基础聊天测试
match llm_api::llm_chat(
&config,
"请用一句话介绍人工智能",
None,
Some(0.7),
Some(100),
Some(30.0),
).await {
Ok(response) => {
println!("✅ LLM 聊天成功: {}", response);
test_results.push(("LLM 聊天", true));
}
Err(e) => {
println!("❌ LLM 聊天失败: {:?}", e);
test_results.push(("LLM 聊天", false));
}
}
// Gemini 聊天测试
match llm_api::invoke_gemini_ai_api_llm_google_chat_post(
&config,
"Hello, how are you?",
Some(30.0),
).await {
Ok(response) => {
println!("✅ Gemini 聊天成功: {}", response);
test_results.push(("Gemini 聊天", true));
}
Err(e) => {
println!("❌ Gemini 聊天失败: {:?}", e);
test_results.push(("Gemini 聊天", false));
}
}
println!();
// 4. 图像生成测试
println!("🎨 4. 图像生成功能测试");
println!("----------------------");
// 提示词检查
let test_prompt = "a beautiful landscape";
match midjourney_api::prompt_check_api_mj_prompt_check_get(&config, test_prompt).await {
Ok(response) => {
println!("✅ 提示词检查成功: {}", response);
test_results.push(("提示词检查", true));
}
Err(e) => {
println!("❌ 提示词检查失败: {:?}", e);
test_results.push(("提示词检查", false));
}
}
// 异步图像生成
match midjourney_api::async_gen_image_api_mj_async_generate_image_post(
&config,
"a simple test image, minimalist style",
None,
).await {
Ok(response) => {
println!("✅ 异步图像生成任务提交成功: {}", response);
test_results.push(("异步图像生成", true));
// 如果有任务ID尝试查询状态
if let Some(task_id) = response.get("task_id").and_then(|v| v.as_str()) {
tokio::time::sleep(Duration::from_secs(5)).await;
match midjourney_api::async_query_status_api_mj_async_query_status_get(
&config,
task_id,
).await {
Ok(status) => {
println!("✅ 任务状态查询成功: {}", status);
test_results.push(("任务状态查询", true));
}
Err(e) => {
println!("❌ 任务状态查询失败: {:?}", e);
test_results.push(("任务状态查询", false));
}
}
}
}
Err(e) => {
println!("❌ 异步图像生成失败: {:?}", e);
test_results.push(("异步图像生成", false));
}
}
println!();
// 5. Hedra 功能测试
println!("💋 5. Hedra 唇形同步测试");
println!("------------------------");
// 注意:这里需要实际的图片和音频文件路径
// 由于是测试,我们只测试查询任务状态功能
match hedra20_api::query_task_status_api302_hedra_v2_task_status_get(
&config,
"test_task_id", // 测试任务ID
).await {
Ok(response) => {
println!("✅ Hedra 任务状态查询成功: {}", response);
test_results.push(("Hedra 状态查询", true));
}
Err(e) => {
println!("❌ Hedra 任务状态查询失败: {:?}", e);
test_results.push(("Hedra 状态查询", false));
}
}
println!();
// 6. 性能测试
println!("⚡ 6. 性能测试");
println!("-------------");
let start_time = std::time::Instant::now();
let mut successful_requests = 0;
let total_requests = 5;
for i in 1..=total_requests {
match llm_api::llm_chat(
&config,
&format!("这是第{}个测试请求", i),
None,
Some(0.5),
Some(50),
Some(10.0),
).await {
Ok(_) => {
successful_requests += 1;
print!("");
}
Err(_) => {
print!("");
}
}
std::io::Write::flush(&mut std::io::stdout()).unwrap();
tokio::time::sleep(Duration::from_millis(500)).await;
}
let elapsed = start_time.elapsed();
println!();
println!("📊 性能测试结果:");
println!(" - 总请求数: {}", total_requests);
println!(" - 成功请求数: {}", successful_requests);
println!(" - 成功率: {:.1}%", (successful_requests as f64 / total_requests as f64) * 100.0);
println!(" - 总耗时: {:.2}", elapsed.as_secs_f64());
println!(" - 平均响应时间: {:.2}", elapsed.as_secs_f64() / total_requests as f64);
test_results.push(("性能测试", successful_requests > total_requests / 2));
println!();
// 7. 测试结果汇总
println!("📋 7. 测试结果汇总");
println!("------------------");
let total_tests = test_results.len();
let passed_tests = test_results.iter().filter(|(_, passed)| *passed).count();
println!("测试项目详情:");
for (test_name, passed) in &test_results {
let status = if *passed { "✅ 通过" } else { "❌ 失败" };
println!(" - {}: {}", test_name, status);
}
println!();
println!("总体结果:");
println!(" - 总测试数: {}", total_tests);
println!(" - 通过测试数: {}", passed_tests);
println!(" - 通过率: {:.1}%", (passed_tests as f64 / total_tests as f64) * 100.0);
if passed_tests == total_tests {
println!("🎉 所有测试通过API 功能正常。");
} else if passed_tests > total_tests / 2 {
println!("⚠️ 大部分测试通过,但有部分功能可能存在问题。");
} else {
println!("🚨 多数测试失败API 可能存在严重问题。");
}
println!();
println!("🎯 综合测试完成!");
Ok(())
}

View File

@@ -0,0 +1,175 @@
use text_video_agent_client::apis::configuration::Configuration;
use text_video_agent_client::apis::llm_api;
use std::path::PathBuf;
use std::fs;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// 创建支持 HTTPS 的客户端
let client = reqwest::Client::builder()
.timeout(std::time::Duration::from_secs(30))
.build()?;
// 创建配置
let config = Configuration {
base_path: "https://bowongai-dev--text-video-agent-fastapi-app.modal.run".to_string(),
user_agent: Some("text-video-agent-rust-client/1.0.6".to_string()),
client,
basic_auth: None,
oauth_access_token: None,
bearer_access_token: None,
api_key: None,
};
println!("📁 文件上传和媒体分析测试");
println!("==========================");
println!("API 地址: {}", config.base_path);
println!();
// 创建一个测试文本文件
let test_file_path = "test_file.txt";
let test_content = "这是一个测试文件,用于验证文件上传功能。\nThis is a test file for verifying file upload functionality.";
println!("📝 创建测试文件: {}", test_file_path);
fs::write(test_file_path, test_content)?;
println!("✅ 测试文件创建成功");
println!();
// 1. 测试文件上传到 Google 存储
println!("☁️ 测试文件上传到 Google 存储...");
let file_path = PathBuf::from(test_file_path);
match llm_api::google_file_upload(&config, file_path.clone()).await {
Ok(response) => {
println!("✅ 文件上传成功: {}", response);
// 尝试从响应中提取文件URI
if let Some(data) = response.get("data").and_then(|v| v.as_str()) {
println!("📎 文件URI: {}", data);
// 2. 使用上传的文件进行媒体分析
println!();
println!("🔍 测试媒体分析(同步)...");
let analysis_prompts = vec![
"请分析这个文件的内容",
"这个文件包含什么信息?",
"请总结文件的主要内容",
];
for (i, prompt) in analysis_prompts.iter().enumerate() {
println!("🔸 分析 {}: {}", i + 1, prompt);
match llm_api::invoke_media_analysis_api_llm_google_sync_media_analysis_post(
&config,
prompt,
data, // 使用上传后的文件URI
).await {
Ok(analysis_response) => {
println!("✅ 分析结果: {}", analysis_response);
}
Err(e) => {
println!("❌ 分析失败: {:?}", e);
}
}
println!();
// 添加延迟
tokio::time::sleep(tokio::time::Duration::from_secs(2)).await;
}
// 3. 测试异步媒体分析
println!("⚡ 测试媒体分析(异步)...");
let async_prompt = "请详细分析这个文件,包括语言、内容主题和结构";
match llm_api::submit_media_inference_api_llm_google_async_media_analysis_post(
&config,
async_prompt,
data,
).await {
Ok(async_response) => {
println!("✅ 异步分析任务提交成功: {}", async_response);
// 尝试获取任务ID
if let Some(task_id) = async_response.get("task_id").and_then(|v| v.as_str()) {
println!("📋 任务ID: {}", task_id);
// 轮询任务状态
println!("⏳ 查询任务状态...");
for attempt in 1..=5 {
tokio::time::sleep(tokio::time::Duration::from_secs(5)).await;
match llm_api::llm_task_id(&config, task_id).await {
Ok(status_response) => {
println!("📊 第{}次查询 - 任务状态: {}", attempt, status_response);
// 检查任务是否完成
if let Some(status) = status_response.get("status") {
if status.is_boolean() && status.as_bool() == Some(true) {
println!("🎉 异步分析任务完成!");
if let Some(data) = status_response.get("data") {
println!("📄 分析结果: {}", data);
}
break;
}
}
}
Err(e) => {
println!("❌ 查询状态失败: {:?}", e);
}
}
}
}
}
Err(e) => {
println!("❌ 异步分析任务提交失败: {:?}", e);
}
}
}
}
Err(e) => {
println!("❌ 文件上传失败: {:?}", e);
}
}
println!();
// 4. 测试不同类型的媒体URI分析
println!("🌐 测试在线媒体分析...");
let online_media_tests = vec![
("https://example.com/sample.jpg", "请描述这张图片的内容"),
("https://example.com/sample.mp4", "请分析这个视频的主要内容"),
("https://example.com/sample.mp3", "请分析这个音频文件"),
];
for (media_uri, prompt) in online_media_tests.iter() {
println!("🔗 分析媒体: {}", media_uri);
println!("❓ 提示: {}", prompt);
match llm_api::invoke_media_analysis_api_llm_google_sync_media_analysis_post(
&config,
prompt,
media_uri,
).await {
Ok(response) => {
println!("✅ 分析结果: {}", response);
}
Err(e) => {
println!("❌ 分析失败: {:?}", e);
}
}
println!();
tokio::time::sleep(tokio::time::Duration::from_secs(2)).await;
}
// 清理测试文件
println!("🧹 清理测试文件...");
if let Err(e) = fs::remove_file(test_file_path) {
println!("⚠️ 删除测试文件失败: {}", e);
} else {
println!("✅ 测试文件已删除");
}
println!("🎯 文件上传和媒体分析测试完成!");
Ok(())
}

View File

@@ -0,0 +1,65 @@
use text_video_agent_client::apis::configuration::Configuration;
use text_video_agent_client::apis::{default_api, midjourney_api, llm_api};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// 创建支持 HTTPS 的客户端
let client = reqwest::Client::builder()
.timeout(std::time::Duration::from_secs(30))
.build()?;
// 创建配置
let config = Configuration {
base_path: "https://bowongai-dev--text-video-agent-fastapi-app.modal.run".to_string(),
user_agent: Some("text-video-agent-rust-client/1.0.6".to_string()),
client,
basic_auth: None,
oauth_access_token: None,
bearer_access_token: None,
api_key: None,
};
println!("🚀 文本视频智能体 API 健康检查");
println!("================================");
println!("API 地址: {}", config.base_path);
println!();
// 1. 测试根路径
println!("📍 测试根路径...");
match default_api::root_get(&config).await {
Ok(response) => {
println!("✅ 根路径响应: {}", response);
}
Err(e) => {
println!("❌ 根路径错误: {:?}", e);
}
}
println!();
// 2. 测试 Midjourney 健康检查
println!("🎨 测试 Midjourney 健康检查...");
match midjourney_api::health_check_api_mj_health_get(&config).await {
Ok(response) => {
println!("✅ Midjourney 健康状态: {}", response);
}
Err(e) => {
println!("❌ Midjourney 健康检查错误: {:?}", e);
}
}
println!();
// 3. 测试获取支持的 LLM 模型
println!("🧠 获取支持的 LLM 模型...");
match llm_api::llm_supported_models(&config).await {
Ok(response) => {
println!("✅ 支持的模型: {}", response);
}
Err(e) => {
println!("❌ 获取模型列表错误: {:?}", e);
}
}
println!();
println!("🎯 健康检查完成!");
Ok(())
}

View File

@@ -0,0 +1,141 @@
use text_video_agent_client::apis::configuration::Configuration;
use text_video_agent_client::apis::llm_api;
use std::io::{self, Write};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// 创建支持 HTTPS 的客户端
let client = reqwest::Client::builder()
.timeout(std::time::Duration::from_secs(30))
.build()?;
// 创建配置
let config = Configuration {
base_path: "https://bowongai-dev--text-video-agent-fastapi-app.modal.run".to_string(),
user_agent: Some("text-video-agent-rust-client/1.0.6".to_string()),
client,
basic_auth: None,
oauth_access_token: None,
bearer_access_token: None,
api_key: None,
};
println!("🤖 大语言模型聊天测试");
println!("====================");
println!("API 地址: {}", config.base_path);
println!();
// 1. 获取支持的模型列表
println!("📋 获取支持的模型列表...");
match llm_api::llm_supported_models(&config).await {
Ok(models) => {
println!("✅ 支持的模型: {}", models);
}
Err(e) => {
println!("❌ 获取模型列表失败: {:?}", e);
return Ok(());
}
}
println!();
// 2. 测试基本聊天功能
println!("💬 测试基本聊天功能...");
let test_prompts = vec![
"你好,请介绍一下你自己",
"什么是人工智能?",
"请用中文回答:今天天气怎么样?",
"帮我写一首关于春天的诗",
];
for (i, prompt) in test_prompts.iter().enumerate() {
println!("🔸 测试 {}: {}", i + 1, prompt);
match llm_api::llm_chat(
&config,
prompt,
None, // model_name: 使用默认模型
Some(0.7), // temperature: 创造性参数
Some(1000), // max_tokens: 最大令牌数
Some(30.0), // timeout: 超时时间(秒)
).await {
Ok(response) => {
println!("✅ 回复: {}", response);
}
Err(e) => {
println!("❌ 聊天错误: {:?}", e);
}
}
println!();
// 添加延迟避免请求过于频繁
tokio::time::sleep(tokio::time::Duration::from_secs(2)).await;
}
// 3. 测试 Gemini 聊天
println!("🌟 测试 Gemini 聊天...");
match llm_api::invoke_gemini_ai_api_llm_google_chat_post(
&config,
"请用中文简单介绍一下 Rust 编程语言的特点",
Some(30.0), // timeout
).await {
Ok(response) => {
println!("✅ Gemini 回复: {}", response);
}
Err(e) => {
println!("❌ Gemini 聊天错误: {:?}", e);
}
}
println!();
// 4. 交互式聊天(可选)
println!("🎯 想要进行交互式聊天吗?(y/n)");
print!("> ");
io::stdout().flush()?;
let mut input = String::new();
io::stdin().read_line(&mut input)?;
if input.trim().to_lowercase() == "y" {
println!("💭 进入交互式聊天模式(输入 'quit' 退出):");
loop {
print!("您: ");
io::stdout().flush()?;
let mut user_input = String::new();
io::stdin().read_line(&mut user_input)?;
let user_input = user_input.trim();
if user_input == "quit" {
break;
}
if user_input.is_empty() {
continue;
}
print!("🤖 思考中...");
io::stdout().flush()?;
match llm_api::llm_chat(
&config,
user_input,
None,
Some(0.7),
Some(1000),
Some(30.0),
).await {
Ok(response) => {
println!("\r🤖 AI: {}", response);
}
Err(e) => {
println!("\r❌ 错误: {:?}", e);
}
}
println!();
}
}
println!("👋 聊天测试完成!");
Ok(())
}

View File

@@ -0,0 +1,162 @@
use text_video_agent_client::apis::configuration::Configuration;
use text_video_agent_client::apis::midjourney_api;
use std::time::Duration;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// 创建支持 HTTPS 的客户端
let client = reqwest::Client::builder()
.timeout(std::time::Duration::from_secs(30))
.build()?;
// 创建配置
let config = Configuration {
base_path: "https://bowongai-dev--text-video-agent-fastapi-app.modal.run".to_string(),
user_agent: Some("text-video-agent-rust-client/1.0.6".to_string()),
client,
basic_auth: None,
oauth_access_token: None,
bearer_access_token: None,
api_key: None,
};
println!("🎨 Midjourney 图像生成测试");
println!("==========================");
println!("API 地址: {}", config.base_path);
println!();
// 1. 健康检查
println!("🔍 检查 Midjourney 服务状态...");
match midjourney_api::health_check_api_mj_health_get(&config).await {
Ok(response) => {
println!("✅ Midjourney 服务正常: {}", response);
}
Err(e) => {
println!("❌ Midjourney 服务异常: {:?}", e);
return Ok(());
}
}
println!();
// 2. 测试提示词检查
println!("📝 测试提示词预审...");
let test_prompt = "a beautiful sunset over mountains, digital art, highly detailed";
match midjourney_api::prompt_check_api_mj_prompt_check_get(&config, test_prompt).await {
Ok(response) => {
println!("✅ 提示词检查结果: {}", response);
}
Err(e) => {
println!("❌ 提示词检查失败: {:?}", e);
}
}
println!();
// 3. 测试同步图像生成
println!("🖼️ 测试同步图像生成...");
let image_prompts = vec![
"a cute cat sitting on a windowsill, watercolor style",
"futuristic city skyline at night, cyberpunk style, neon lights",
"peaceful zen garden with cherry blossoms, traditional Japanese art",
"abstract geometric patterns in blue and gold, modern art",
];
for (i, prompt) in image_prompts.iter().enumerate() {
println!("🎯 生成图像 {}: {}", i + 1, prompt);
match midjourney_api::generate_image_sync_api_mj_sync_image_post(
&config,
prompt,
None, // aspect_ratio
None, // model
None, // quality
None, // style
None, // chaos
None, // seed
None, // stylize
None, // weird
None, // tile
None, // no
None, // iw
None, // version
None, // uplight
None, // beta
None, // hd
None, // test
None, // testp
None, // creative
None, // fast
None, // relax
None, // stop
None, // video
None, // max_wait_time
None, // poll_interval
).await {
Ok(response) => {
println!("✅ 图像生成成功: {}", response);
}
Err(e) => {
println!("❌ 图像生成失败: {:?}", e);
}
}
println!();
// 添加延迟避免请求过于频繁
tokio::time::sleep(Duration::from_secs(3)).await;
}
// 4. 测试异步图像生成
println!("⚡ 测试异步图像生成...");
let async_prompt = "a majestic dragon flying over a medieval castle, fantasy art, epic scene";
match midjourney_api::async_gen_image_api_mj_async_generate_image_post(
&config,
async_prompt,
None, // img_file
).await {
Ok(response) => {
println!("✅ 异步任务提交成功: {}", response);
// 尝试解析任务ID假设响应中包含task_id字段
if let Some(task_id) = response.get("task_id").and_then(|v| v.as_str()) {
println!("📋 任务ID: {}", task_id);
// 轮询任务状态
println!("⏳ 查询任务状态...");
for attempt in 1..=5 {
tokio::time::sleep(Duration::from_secs(10)).await;
match midjourney_api::async_query_status_api_mj_async_query_status_get(
&config,
task_id,
).await {
Ok(status_response) => {
println!("📊 第{}次查询 - 任务状态: {}", attempt, status_response);
// 检查任务是否完成这里需要根据实际API响应格式调整
if let Some(status) = status_response.get("status").and_then(|v| v.as_str()) {
if status == "completed" || status == "success" {
println!("🎉 任务完成!");
break;
} else if status == "failed" || status == "error" {
println!("💥 任务失败!");
break;
}
}
}
Err(e) => {
println!("❌ 查询状态失败: {:?}", e);
}
}
}
}
}
Err(e) => {
println!("❌ 异步任务提交失败: {:?}", e);
}
}
println!();
println!("🎯 Midjourney 图像生成测试完成!");
Ok(())
}

View File

@@ -2,7 +2,7 @@ use text_video_agent_client::apis::configuration::Configuration;
#[tokio::main] #[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> { async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Create configuration // 创建配置
let config = Configuration { let config = Configuration {
base_path: "https://bowongai-dev--text-video-agent-fastapi-app.modal.run".to_string(), base_path: "https://bowongai-dev--text-video-agent-fastapi-app.modal.run".to_string(),
user_agent: Some("text-video-agent-rust-client/1.0.6".to_string()), user_agent: Some("text-video-agent-rust-client/1.0.6".to_string()),
@@ -13,26 +13,26 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
api_key: None, api_key: None,
}; };
println!("Text Video Agent Rust Client"); println!("文本视频智能体 Rust 客户端");
println!("============================"); println!("============================");
println!("Configuration created successfully!"); println!("配置创建成功!");
println!("Base path: {}", config.base_path); println!("基础路径: {}", config.base_path);
println!("User agent: {:?}", config.user_agent); println!("用户代理: {:?}", config.user_agent);
println!("\nThis is a basic example showing how to create a configuration."); println!("\n这是一个展示如何创建配置的基本示例。");
println!("To use the actual API endpoints, you would:"); println!("要使用实际的 API 端点,您需要:");
println!("1. Replace 'https://your-api-endpoint.com' with the real API URL"); println!("1. 'https://your-api-endpoint.com' 替换为真实的 API URL");
println!("2. Add authentication if required"); println!("2. 如果需要,添加身份验证");
println!("3. Call the specific API functions you need"); println!("3. 调用您需要的特定 API 函数");
println!("\nAvailable API modules:"); println!("\n可用的 API 模块:");
println!("- default_api: Core functionality"); println!("- default_api: 核心功能");
println!("- api_api: Task management"); println!("- api_api: 任务管理");
println!("- class302_api: 302AI services"); println!("- class302_api: 302AI 服务");
println!("- llm_api: LLM integration"); println!("- llm_api: 大语言模型集成");
println!("- hedra30_api: Lip sync services"); println!("- hedra30_api: 唇形同步服务");
println!("- omni_human_api: Digital human services"); println!("- omni_human_api: 数字人服务");
println!("- And many more..."); println!("- 以及更多...");
Ok(()) Ok(())
} }

View File

@@ -0,0 +1,92 @@
# 文本视频智能体 API 测试脚本
# PowerShell 脚本用于运行各种测试示例
Write-Host "🚀 文本视频智能体 API 测试脚本" -ForegroundColor Green
Write-Host "================================" -ForegroundColor Green
Write-Host ""
# 检查是否在正确的目录
if (-not (Test-Path "Cargo.toml")) {
Write-Host "❌ 错误: 请在 text-video-agent-rust-sdk 目录下运行此脚本" -ForegroundColor Red
exit 1
}
# 显示可用的测试选项
Write-Host "📋 可用的测试选项:" -ForegroundColor Yellow
Write-Host "1. 健康检查测试 (health_check)"
Write-Host "2. LLM 聊天测试 (llm_chat_test)"
Write-Host "3. Midjourney 图像生成测试 (midjourney_image_test)"
Write-Host "4. 文件上传和媒体分析测试 (file_upload_test)"
Write-Host "5. 综合功能测试 (comprehensive_test)"
Write-Host "6. 运行所有测试"
Write-Host "0. 退出"
Write-Host ""
do {
$choice = Read-Host "请选择要运行的测试 (0-6)"
switch ($choice) {
"1" {
Write-Host "🔍 运行健康检查测试..." -ForegroundColor Cyan
cargo run --example health_check
break
}
"2" {
Write-Host "🤖 运行 LLM 聊天测试..." -ForegroundColor Cyan
cargo run --example llm_chat_test
break
}
"3" {
Write-Host "🎨 运行 Midjourney 图像生成测试..." -ForegroundColor Cyan
cargo run --example midjourney_image_test
break
}
"4" {
Write-Host "📁 运行文件上传和媒体分析测试..." -ForegroundColor Cyan
cargo run --example file_upload_test
break
}
"5" {
Write-Host "🚀 运行综合功能测试..." -ForegroundColor Cyan
cargo run --example comprehensive_test
break
}
"6" {
Write-Host "🎯 运行所有测试..." -ForegroundColor Cyan
Write-Host ""
Write-Host "1/5 健康检查测试" -ForegroundColor Yellow
cargo run --example health_check
Write-Host ""
Write-Host "2/5 LLM 聊天测试" -ForegroundColor Yellow
cargo run --example llm_chat_test
Write-Host ""
Write-Host "3/5 Midjourney 图像生成测试" -ForegroundColor Yellow
cargo run --example midjourney_image_test
Write-Host ""
Write-Host "4/5 文件上传和媒体分析测试" -ForegroundColor Yellow
cargo run --example file_upload_test
Write-Host ""
Write-Host "5/5 综合功能测试" -ForegroundColor Yellow
cargo run --example comprehensive_test
Write-Host ""
Write-Host "✅ 所有测试完成!" -ForegroundColor Green
break
}
"0" {
Write-Host "👋 退出测试脚本" -ForegroundColor Green
exit 0
}
default {
Write-Host "❌ 无效选择,请输入 0-6 之间的数字" -ForegroundColor Red
}
}
} while ($true)
Write-Host ""
Write-Host "🎉 测试完成!" -ForegroundColor Green

View File

@@ -0,0 +1,94 @@
#!/bin/bash
# 文本视频智能体 API 测试脚本
# Bash 脚本用于运行各种测试示例
echo "🚀 文本视频智能体 API 测试脚本"
echo "================================"
echo ""
# 检查是否在正确的目录
if [ ! -f "Cargo.toml" ]; then
echo "❌ 错误: 请在 text-video-agent-rust-sdk 目录下运行此脚本"
exit 1
fi
# 显示可用的测试选项
echo "📋 可用的测试选项:"
echo "1. 健康检查测试 (health_check)"
echo "2. LLM 聊天测试 (llm_chat_test)"
echo "3. Midjourney 图像生成测试 (midjourney_image_test)"
echo "4. 文件上传和媒体分析测试 (file_upload_test)"
echo "5. 综合功能测试 (comprehensive_test)"
echo "6. 运行所有测试"
echo "0. 退出"
echo ""
while true; do
read -p "请选择要运行的测试 (0-6): " choice
case $choice in
1)
echo "🔍 运行健康检查测试..."
cargo run --example health_check
break
;;
2)
echo "🤖 运行 LLM 聊天测试..."
cargo run --example llm_chat_test
break
;;
3)
echo "🎨 运行 Midjourney 图像生成测试..."
cargo run --example midjourney_image_test
break
;;
4)
echo "📁 运行文件上传和媒体分析测试..."
cargo run --example file_upload_test
break
;;
5)
echo "🚀 运行综合功能测试..."
cargo run --example comprehensive_test
break
;;
6)
echo "🎯 运行所有测试..."
echo ""
echo "1/5 健康检查测试"
cargo run --example health_check
echo ""
echo "2/5 LLM 聊天测试"
cargo run --example llm_chat_test
echo ""
echo "3/5 Midjourney 图像生成测试"
cargo run --example midjourney_image_test
echo ""
echo "4/5 文件上传和媒体分析测试"
cargo run --example file_upload_test
echo ""
echo "5/5 综合功能测试"
cargo run --example comprehensive_test
echo ""
echo "✅ 所有测试完成!"
break
;;
0)
echo "👋 退出测试脚本"
exit 0
;;
*)
echo "❌ 无效选择,请输入 0-6 之间的数字"
;;
esac
done
echo ""
echo "🎉 测试完成!"

View File

@@ -1,11 +1,11 @@
/* /*
* Text Video Agent Api * 文本视频智能体 API
* *
* 文本生成视频API服务 * 文本生成视频API服务
* *
* The version of the OpenAPI document: 1.0.6 * OpenAPI 文档版本: 1.0.6
* *
* Generated by: https://openapi-generator.tech * 生成工具: https://openapi-generator.tech
*/ */

View File

@@ -1,11 +1,11 @@
/* /*
* Text Video Agent Api * 文本视频智能体 API
* *
* 文本生成视频API服务 * 文本生成视频API服务
* *
* The version of the OpenAPI document: 1.0.6 * OpenAPI 文档版本: 1.0.6
* *
* Generated by: https://openapi-generator.tech * 生成工具: https://openapi-generator.tech
*/ */
@@ -15,7 +15,7 @@ use crate::{apis::ResponseContent, models};
use super::{Error, configuration, ContentType}; use super::{Error, configuration, ContentType};
/// struct for typed errors of method [`root_get`] /// 方法 [`root_get`] 的类型化错误结构体
#[derive(Debug, Clone, Serialize, Deserialize)] #[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)] #[serde(untagged)]
pub enum RootGetError { pub enum RootGetError {