smart_prompt 0.4.4 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.cn.md +305 -11
  4. data/README.md +309 -11
  5. data/Rakefile +10 -1
  6. data/config/anthropic_config.yml +151 -0
  7. data/config/image_generation_config.yml +22 -0
  8. data/config/multimodal_config.yml +85 -0
  9. data/config/sensenova_config.yml +63 -0
  10. data/config/zhipu_config.yml +73 -0
  11. data/docs/ANTHROPIC_EXAMPLES.md +559 -0
  12. data/docs/CONVERSATION_INTEGRATION_SUMMARY.md +155 -0
  13. data/docs/HISTORY_EXAMPLES_README.md +533 -0
  14. data/docs/HISTORY_MANAGEMENT_GUIDE.md +797 -0
  15. data/docs/MONITORING_GUIDE.md +278 -0
  16. data/docs/MULTIMODAL_README.md +265 -0
  17. data/docs/RELEVANCE_BASED_STRATEGY_IMPLEMENTATION.md +124 -0
  18. data/docs/STT_README.md +302 -0
  19. data/docs/TTS_README.md +303 -0
  20. data/docs/VIDEO_GENERATION_README.md +246 -0
  21. data/docs/delete_files_list.md +124 -0
  22. data/examples/anthropic_basic_chat.rb +143 -0
  23. data/examples/anthropic_example.rb +232 -0
  24. data/examples/anthropic_multimodal.rb +212 -0
  25. data/examples/anthropic_streaming.rb +312 -0
  26. data/examples/anthropic_tool_calling.rb +393 -0
  27. data/examples/automatic_cleanup_example.rb +109 -0
  28. data/examples/history_management_examples.rb +522 -0
  29. data/examples/image_generation_example.rb +130 -0
  30. data/examples/monitoring_example.rb +121 -0
  31. data/examples/multimodal_example.rb +63 -0
  32. data/examples/relevance_based_strategy_example.rb +87 -0
  33. data/examples/sensenova_example.rb +129 -0
  34. data/examples/stt_example.rb +287 -0
  35. data/examples/tts_example.rb +244 -0
  36. data/examples/video_generation_example.rb +189 -0
  37. data/examples/zhipu_example.rb +151 -0
  38. data/lib/smart_prompt/anthropic_adapter.rb +407 -298
  39. data/lib/smart_prompt/compression_engine.rb +201 -0
  40. data/lib/smart_prompt/context_strategy.rb +22 -0
  41. data/lib/smart_prompt/conversation.rb +47 -4
  42. data/lib/smart_prompt/engine.rb +29 -2
  43. data/lib/smart_prompt/history_manager.rb +596 -0
  44. data/lib/smart_prompt/hybrid_strategy.rb +222 -0
  45. data/lib/smart_prompt/image_generation_adapter.rb +297 -0
  46. data/lib/smart_prompt/lru_cache.rb +133 -0
  47. data/lib/smart_prompt/message.rb +57 -0
  48. data/lib/smart_prompt/multimodal_adapter.rb +277 -0
  49. data/lib/smart_prompt/persistence_layer.rb +197 -0
  50. data/lib/smart_prompt/relevance_based_strategy.rb +221 -0
  51. data/lib/smart_prompt/sensenova_adapter.rb +410 -0
  52. data/lib/smart_prompt/session.rb +140 -0
  53. data/lib/smart_prompt/sliding_window_strategy.rb +100 -0
  54. data/lib/smart_prompt/stt_adapter.rb +381 -0
  55. data/lib/smart_prompt/summary_based_strategy.rb +152 -0
  56. data/lib/smart_prompt/token_counter.rb +74 -0
  57. data/lib/smart_prompt/tts_adapter.rb +403 -0
  58. data/lib/smart_prompt/version.rb +1 -1
  59. data/lib/smart_prompt/video_generation_adapter.rb +330 -0
  60. data/lib/smart_prompt/worker.rb +28 -3
  61. data/lib/smart_prompt/zhipu_adapter.rb +616 -0
  62. data/lib/smart_prompt.rb +21 -0
  63. data/workers/history_management_examples.rb +407 -0
  64. data/workers/image_generation_workers.rb +119 -0
  65. data/workers/multimodal_workers.rb +110 -0
  66. data/workers/sensenova_workers.rb +62 -0
  67. data/workers/stt_workers.rb +195 -0
  68. data/workers/tts_workers.rb +388 -0
  69. data/workers/video_generation_workers.rb +264 -0
  70. data/workers/zhipu_workers.rb +113 -0
  71. metadata +88 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a1b5288acfef3c366b16a0e08dc0b4f43a7f8613f73879f92420a3cf60ce9332
4
- data.tar.gz: c2fd82bf35e96c6784492dfe2dd9ee30dbf02e56b5cce41ee8d9895f4b050b13
3
+ metadata.gz: 73eed476ea088ca5d249ae100e774c4bbe4235242773c49b478ac60304f2250e
4
+ data.tar.gz: 7e28652297f66ab0829ea9f24927bfa0d8f8618915dc4e2d969f7733c29ca8bc
5
5
  SHA512:
6
- metadata.gz: ccd75b4af683bb4585ca46a24d60833fac4344e214f5fef6730e9b55e86e80a35951d39e6cbff8ad1f364623e62aade8bce065ade1cd8c6ddea7e1b1faea2126
7
- data.tar.gz: 68cba98948160fc872d2b5661661fe16ae76f5b43025fa96ea0c546563e01be5a0930d76fd13ec327017e07b23c7b739953794a3b385185c448888862374190c
6
+ metadata.gz: cfed4b173e3382fd59c8be7dd7712dd3e2da56948cf605e1e402e0c998bd20e6f0867915c9d8f749e6f794a63d796a013ea4c5aabad0177df17b2649e931c181
7
+ data.tar.gz: 21a684256011301008700ce3b66bf2220778ced62d1ecb4195fc610d492123a14717420f671af3499662f4df4fb9004948a7aeb5b9788756e715be2fdc9c344a
data/CHANGELOG.md CHANGED
@@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.5.1] - 2026-06-21
9
+ ### Added
10
+ - **SenseNova (商汤日日新) support** — unified `SenseNovaAdapter` covering chat (商量), multimodal vision, Cupido embeddings, and 秒画 text-to-image, with SSE streaming and reasoning-field handling
11
+ - **智谱 AI (BigModel / GLM) support** — unified `ZhipuAIAdapter` covering all REST categories: chat (GLM-4), vision (GLM-4V), embeddings (embedding-3), text-to-image (CogView), text-to-video (CogVideoX async), TTS (GLM-TTS), ASR (GLM-ASR), and rerank
12
+ - Media adapters: multimodal, image generation, video generation, TTS, STT
13
+ - Intelligent conversation history management (sliding-window, relevance-based, summary-based, hybrid strategies) with session isolation, compression, persistence, and LRU caching
14
+ - Token counter, message/session models, and persistence layer
15
+ - Example configs, workers, and self-contained examples for every provider
16
+ - Integrated upstream gemma4 multimodal support (`use_model`, `thinking`, `image`/`audio`/`video`, `multimodal_prompt`) and `request_options` plumbing
17
+
18
+ ### Fixed
19
+ - Expose `engine` on `WorkerContext` so workers can reach a configured adapter directly (fixes the `engine.llms[...]` pattern used by media workers)
20
+ - `Worker#execute` default session_id was hard-coded to `"default"`, leaving the per-worker session branch as dead code and collapsing all history-using workers onto one shared session; now generates `worker_<name>_<ts>`
21
+ - `AnthropicAdapter`: add `extract_content_from_response` and stop double-wrapping multimodal (array) content
22
+ - file_upload multimodal fix: base64-encode local image/audio/video files instead of passing raw paths
23
+
8
24
  ## [0.4.1] - 2026-04-22
9
25
  ### Fixed
10
26
  - Re-release package with `lib/smart_prompt/anthropic_adapter.rb`, which is required by the gem entrypoint.
data/README.cn.md CHANGED
@@ -11,13 +11,24 @@ SmartPrompt 是一个强大的 Ruby gem,提供了优雅的领域特定语言
11
11
 
12
12
  ### 多 LLM 支持
13
13
  - **OpenAI API 兼容**: 完全支持 OpenAI GPT 模型和兼容的 API
14
- - **Llama.cpp 集成**: 直接集成本地 Llama.cpp 服务器
14
+ - **Anthropic Claude**: 原生支持 Claude 模型及多模态能力
15
+ - **商汤 SenseNova(日日新)**: 单一适配器覆盖商量文本对话、图文多模态、Cupido 向量、秒画文生图四类 API,详见 `examples/sensenova_example.rb`
16
+ - **智谱 AI(BigModel / GLM)**: 单一适配器覆盖全部模型类别——文本对话(GLM-4)、图文多模态(GLM-4V)、向量(embedding-3)、文生图(CogView)、文生视频(CogVideoX)、语音合成(GLM-TTS)、语音识别(GLM-ASR),详见 `examples/zhipu_example.rb`
17
+ - **Llama.cpp 集成**: 直接集成本地 Llama.cpp 服务器
15
18
  - **可扩展适配器**: 易于扩展的适配器系统,支持新的 LLM 提供商
16
19
  - **统一接口**: 无论底层 LLM 提供商如何,都使用相同的 API
17
20
 
21
+ ### 多模态 AI 能力
22
+ - **视觉模型**: 支持图像理解和分析
23
+ - **图像生成**: 使用扩散模型从文本提示生成图像
24
+ - **视频生成**: 从文本或图像提示生成视频
25
+ - **文本转语音**: 将文本转换为自然语音
26
+ - **语音转文本**: 支持多语言的音频转文本转录
27
+
18
28
  ### 灵活架构
19
29
  - **基于 Worker 的任务**: 为特定 AI 任务定义可重用的 Worker
20
30
  - **模板系统**: 基于 ERB 的提示词模板,支持参数注入
31
+ - **智能历史管理**: 会话隔离、自动压缩和多种上下文策略
21
32
  - **对话管理**: 内置对话历史和上下文管理
22
33
  - **流式支持**: 实时响应流,提供更好的用户体验
23
34
 
@@ -26,6 +37,8 @@ SmartPrompt 是一个强大的 Ruby gem,提供了优雅的领域特定语言
26
37
  - **重试逻辑**: 强大的错误处理机制,支持可配置的重试
27
38
  - **嵌入向量**: 文本嵌入生成,用于语义搜索和 RAG 应用
28
39
  - **配置驱动**: 基于 YAML 的配置,便于部署管理
40
+ - **批量处理**: 高效处理多个文件和任务
41
+ - **语言检测**: 从文本和音频自动识别语言
29
42
 
30
43
  ### 生产就绪
31
44
  - **全面日志记录**: 详细的日志记录,用于调试和监控
@@ -61,6 +74,7 @@ $ gem install smart_prompt
61
74
  # 适配器定义
62
75
  adapters:
63
76
  openai: OpenAIAdapter
77
+ anthropic: AnthropicAdapter
64
78
  # LLM 配置
65
79
  llms:
66
80
  SiliconFlow:
@@ -68,7 +82,13 @@ llms:
68
82
  url: https://api.siliconflow.cn/v1/
69
83
  api_key: ENV["APIKey"]
70
84
  default_model: Qwen/Qwen2.5-7B-Instruct
71
- local:
85
+ claude:
86
+ adapter: anthropic
87
+ api_key: ENV["ANTHROPIC_API_KEY"]
88
+ model: claude-3-5-sonnet-20241022
89
+ temperature: 0.7
90
+ max_tokens: 4096
91
+ llamacpp:
72
92
  adapter: openai
73
93
  url: http://localhost:8080/
74
94
  ollama:
@@ -238,7 +258,10 @@ end
238
258
 
239
259
  ### 对话历史
240
260
 
261
+ SmartPrompt 提供智能对话历史管理,支持会话隔离、自动压缩和多种上下文策略。
262
+
241
263
  ```ruby
264
+ # 基本用法,自动管理历史
242
265
  SmartPrompt.define_worker :conversational_chat do
243
266
  use "deepseek"
244
267
  model "deepseek-chat"
@@ -246,8 +269,38 @@ SmartPrompt.define_worker :conversational_chat do
246
269
  prompt(params[:message], with_history: true)
247
270
  send_msg
248
271
  end
272
+
273
+ # 高级用法,显式会话管理
274
+ SmartPrompt.define_worker :session_chat do
275
+ use "deepseek"
276
+ model "deepseek-chat"
277
+
278
+ # 使用 session_id 进行隔离的对话
279
+ session_id = params[:session_id] || "default"
280
+
281
+ # 配置会话行为
282
+ session_config = {
283
+ max_messages: 100,
284
+ max_tokens: 4000,
285
+ context_strategy: :sliding_window # 或 :relevance_based, :summary_based, :hybrid
286
+ }
287
+
288
+ sys_msg("你是一个有用的助手。", params)
289
+ prompt(params[:message], with_history: true)
290
+ params.merge(session_id: session_id, session_config: session_config)
291
+ send_msg
292
+ end
249
293
  ```
250
294
 
295
+ **历史管理功能:**
296
+ - **会话隔离**: 每个对话都有独立的历史记录
297
+ - **上下文策略**: 可选择滑动窗口、基于相关性、基于摘要或混合策略
298
+ - **自动压缩**: 在保留上下文的同时减少 token 使用量
299
+ - **持久化**: 跨重启保存和恢复对话
300
+ - **性能优化**: LRU 缓存和异步 I/O 以获得最佳性能
301
+
302
+ 详见 [历史管理指南](HISTORY_MANAGEMENT_GUIDE.md)。
303
+
251
304
  ### 嵌入向量生成
252
305
 
253
306
  ```ruby
@@ -263,6 +316,75 @@ embeddings = engine.call_worker(:text_embedder, {
263
316
  text: "将此文本转换为嵌入向量",
264
317
  dimensions: 1024
265
318
  })
319
+
320
+ ### 多模态 AI 示例
321
+
322
+ #### 图像生成
323
+ ```ruby
324
+ # 从文本提示生成图像
325
+ result = engine.call_worker(:image_generator, {
326
+ prompt: "山间美丽的日落",
327
+ size: "1024x1024",
328
+ quality: "standard",
329
+ save_to_file: true,
330
+ output_dir: "./generated_images"
331
+ })
332
+
333
+ puts "图像已生成: #{result[:image_file][:file_path]}"
334
+ ```
335
+
336
+ #### 视频生成
337
+ ```ruby
338
+ # 从文本提示生成视频
339
+ result = engine.call_worker(:video_generator, {
340
+ prompt: "一只猫在玩毛线球",
341
+ duration: 5,
342
+ resolution: "720p",
343
+ save_to_file: true,
344
+ output_dir: "./generated_videos"
345
+ })
346
+
347
+ puts "视频生成已开始: #{result[:video_id]}"
348
+ puts "检查状态: engine.call_worker(:video_status, {video_id: '#{result[:video_id]}'})"
349
+ ```
350
+
351
+ #### 文本转语音
352
+ ```ruby
353
+ # 将文本转换为语音
354
+ result = engine.call_worker(:tts_synthesizer, {
355
+ text: "欢迎使用 SmartPrompt,您的 AI 助手",
356
+ voice: "alloy",
357
+ speed: 1.0,
358
+ save_to_file: true,
359
+ output_dir: "./generated_audio"
360
+ })
361
+
362
+ puts "音频文件已创建: #{result[:audio_file][:file_path]}"
363
+ ```
364
+
365
+ #### 语音转文本
366
+ ```ruby
367
+ # 将音频转录为文本
368
+ result = engine.call_worker(:stt_transcriber, {
369
+ audio_file: "./audio.wav",
370
+ language: "zh",
371
+ response_format: "json"
372
+ })
373
+
374
+ puts "转录文本: #{result[:transcription][:text]}"
375
+ puts "语言: #{result[:transcription][:language]}"
376
+ ```
377
+
378
+ #### 视觉分析
379
+ ```ruby
380
+ # 使用视觉模型分析图像
381
+ result = engine.call_worker(:vision_analyzer, {
382
+ image_file: "./image.jpg",
383
+ prompt: "描述你在这张图片中看到了什么"
384
+ })
385
+
386
+ puts "分析结果: #{result[:response]}"
387
+ ```
266
388
  ```
267
389
 
268
390
  ## 🏗️ 架构概述
@@ -282,6 +404,13 @@ SmartPrompt 采用模块化架构:
282
404
  │Worker │ │对话 │ │ 模板 │
283
405
  │ │ │管理 │ │ 系统 │
284
406
  └───────┘ └─────┘ └────────┘
407
+
408
+ ┌────────┴────────┐
409
+ │ │
410
+ ┌───▼────────┐ ┌─────▼──────┐
411
+ │ 历史管理 │ │ 持久化层 │
412
+ │ 器 │ │ │
413
+ └────────────┘ └────────────┘
285
414
  ```
286
415
 
287
416
  ### 核心组件
@@ -289,8 +418,10 @@ SmartPrompt 采用模块化架构:
289
418
  - **引擎(Engine)**: 中央编排器,管理配置、适配器和 Worker
290
419
  - **Worker**: 包含嵌入业务逻辑的可重用任务定义
291
420
  - **对话(Conversation)**: 上下文和消息历史管理
292
- - **适配器(Adapters)**: LLM 提供商集成(OpenAI、Llama.cpp 等)
421
+ - **历史管理器**: 智能对话历史,支持会话隔离和上下文策略
422
+ - **适配器(Adapters)**: LLM 提供商集成(OpenAI、Anthropic、Llama.cpp 等)
293
423
  - **模板(Templates)**: 基于 ERB 的提示词模板系统
424
+ - **持久化层(Persistence Layer)**: 跨重启保存和恢复对话历史
294
425
 
295
426
  ## 🔧 配置参考
296
427
 
@@ -298,20 +429,176 @@ SmartPrompt 采用模块化架构:
298
429
 
299
430
  ```yaml
300
431
  adapters:
301
- openai: "OpenAIAdapter" # 用于 OpenAI API
432
+ openai: "OpenAIAdapter" # 用于 OpenAI API
433
+ anthropic: "AnthropicAdapter" # 用于 Anthropic Claude API
434
+ sensenova: "SenseNovaAdapter" # 用于商汤 SenseNova(对话/视觉/向量/文生图)
435
+ zhipu: "ZhipuAIAdapter" # 用于智谱 BigModel/GLM(对话/视觉/向量/图/视频/语音)
436
+ multimodal: "MultimodalAdapter" # 用于视觉模型
437
+ image_generation: "ImageGenerationAdapter" # 用于图像生成
438
+ video_generation: "VideoGenerationAdapter" # 用于视频生成
439
+ tts: "TTSAdapter" # 用于文本转语音
440
+ stt: "STTAdapter" # 用于语音转文本
302
441
  ```
303
442
 
304
443
  ### LLM 配置
305
444
 
306
445
  ```yaml
307
446
  llms:
308
- model_name:
309
- adapter: "adapter_name"
310
- api_key: "your_api_key" # 可以使用 ENV['KEY_NAME']
311
- url: "https://api.url"
312
- model: "model_identifier"
447
+ # 文本模型
448
+ gpt:
449
+ adapter: "openai"
450
+ api_key: ENV["OPENAI_API_KEY"]
451
+ model: "gpt-4"
452
+ temperature: 0.7
453
+
454
+ # Anthropic Claude 模型
455
+ claude:
456
+ adapter: "anthropic"
457
+ api_key: ENV["ANTHROPIC_API_KEY"]
458
+ model: "claude-3-5-sonnet-20241022"
459
+ temperature: 0.7
460
+ max_tokens: 4096
461
+
462
+ claude_opus:
463
+ adapter: "anthropic"
464
+ api_key: ENV["ANTHROPIC_API_KEY"]
465
+ model: "claude-3-opus-20240229"
466
+ temperature: 0.7
467
+ max_tokens: 4096
468
+
469
+ claude_haiku:
470
+ adapter: "anthropic"
471
+ api_key: ENV["ANTHROPIC_API_KEY"]
472
+ model: "claude-3-5-haiku-20241022"
473
+ temperature: 0.7
474
+ max_tokens: 4096
475
+
476
+ # 自定义 Anthropic 端点(用于代理或自定义部署)
477
+ claude_custom:
478
+ adapter: "anthropic"
479
+ api_key: ENV["ANTHROPIC_API_KEY"]
480
+ url: "https://your-custom-endpoint.com"
481
+ model: "claude-3-5-sonnet-20241022"
482
+ temperature: 0.7
483
+ max_tokens: 4096
484
+
485
+ # 商汤 SenseNova —— 单一适配器覆盖四类模型,只需切换 model。
486
+ # 免费模型走 token.sensenova.cn/v1;付费模型(SenseChat-5、SenseNova-V6-*、Cupido)
487
+ # 走 api.sensenova.cn/compatible-mode/v2(key 无权限时返回 403)。
488
+ sensechat: # 商量 文本对话(免费档)
489
+ adapter: "sensenova"
490
+ url: "https://token.sensenova.cn/v1"
491
+ api_key: ENV["SENSENOVA_API_KEY"]
492
+ model: "sensenova-6.7-flash-lite"
493
+ temperature: 0.7
494
+ # 可选 SenseNova 采样参数(会透传到 /chat/completions):
495
+ # reasoning_effort: "medium"
496
+ # max_completion_tokens: 4096
497
+ # 付费:url https://api.sensenova.cn/compatible-mode/v2,model SenseChat-5
498
+
499
+ sensevision: # 商量 图文多模态(flash-lite 原生多模态)
500
+ adapter: "sensenova"
501
+ url: "https://token.sensenova.cn/v1"
502
+ api_key: ENV["SENSENOVA_API_KEY"]
503
+ model: "sensenova-6.7-flash-lite"
504
+ # 付费:url https://api.sensenova.cn/compatible-mode/v2,model SenseNova-V6-Pro
505
+
506
+ senseembedding: # Cupido 向量模型(付费;原生端点)
507
+ adapter: "sensenova"
508
+ url: "https://api.sensenova.cn/compatible-mode/v2"
509
+ embeddings_url: "https://api.sensenova.cn/v1/llm/embeddings"
510
+ api_key: ENV["SENSENOVA_API_KEY"]
511
+ model: "Cupido"
512
+
513
+ senseimage: # 秒画 文生图(sensenova-u1-fast,token.sensenova.cn base)
514
+ adapter: "sensenova"
515
+ url: "https://token.sensenova.cn/v1"
516
+ image_url: "https://token.sensenova.cn/v1/images/generations"
517
+ api_key: ENV["SENSENOVA_API_KEY"]
518
+ model: "sensenova-u1-fast"
519
+ # sensenova-u1-fast 只接受特定尺寸(默认 2048x2048),见 sensenova_adapter.rb 的 VALID_IMAGE_SIZES
520
+
521
+ # 智谱 AI(BigModel/GLM)—— 单一适配器覆盖全部类别,只需切换 model。
522
+ # base https://open.bigmodel.cn/api/paas/v4 ,Bearer 鉴权。默认用免费模型。
523
+ glm: # 文本对话(免费 glm-4-flash;付费 glm-4-plus/glm-5.2)
524
+ adapter: "zhipu"
525
+ url: "https://open.bigmodel.cn/api/paas/v4"
526
+ api_key: ENV["ZHIPUAI_API_KEY"]
527
+ model: "glm-4-flash"
313
528
  temperature: 0.7
314
- # 其他提供商特定选项
529
+ # CodeGeeX-4:设 `coding: true` 并 model: codegeex-4(走 coding base)
530
+
531
+ glm_vision: # 图文多模态(免费 glm-4v-flash;付费 glm-4v-plus)
532
+ adapter: "zhipu"
533
+ url: "https://open.bigmodel.cn/api/paas/v4"
534
+ api_key: ENV["ZHIPUAI_API_KEY"]
535
+ model: "glm-4v-flash"
536
+
537
+ embedding: # 向量模型(embedding-3;可自定义维度 256/512/1024/2048)
538
+ adapter: "zhipu"
539
+ url: "https://open.bigmodel.cn/api/paas/v4"
540
+ api_key: ENV["ZHIPUAI_API_KEY"]
541
+ model: "embedding-3"
542
+ dimensions: 1024
543
+
544
+ cogview: # 文生图(免费 cogview-3-flash;付费 cogview-4/glm-image)
545
+ adapter: "zhipu"
546
+ url: "https://open.bigmodel.cn/api/paas/v4"
547
+ api_key: ENV["ZHIPUAI_API_KEY"]
548
+ model: "cogview-3-flash"
549
+
550
+ cogvideo: # 文生视频(异步 提交->轮询->下载;免费 cogvideox-flash)
551
+ adapter: "zhipu"
552
+ url: "https://open.bigmodel.cn/api/paas/v4"
553
+ api_key: ENV["ZHIPUAI_API_KEY"]
554
+ model: "cogvideox-flash"
555
+
556
+ glm_tts: # 语音合成(GLM-TTS)
557
+ adapter: "zhipu"
558
+ url: "https://open.bigmodel.cn/api/paas/v4"
559
+ api_key: ENV["ZHIPUAI_API_KEY"]
560
+ model: "glm-tts"
561
+
562
+ glm_asr: # 语音识别(GLM-ASR-2512)
563
+ adapter: "zhipu"
564
+ url: "https://open.bigmodel.cn/api/paas/v4"
565
+ api_key: ENV["ZHIPUAI_API_KEY"]
566
+ model: "glm-asr-2512"
567
+
568
+ # 视觉模型
569
+ vision:
570
+ adapter: "multimodal"
571
+ url: "https://api.siliconflow.cn/v1/"
572
+ api_key: ENV["SILICONFLOW_API_KEY"]
573
+ model: "Qwen/Qwen2.5-VL-7B-Instruct"
574
+
575
+ # 图像生成
576
+ image_gen:
577
+ adapter: "image_generation"
578
+ url: "https://api.siliconflow.cn/v1/"
579
+ api_key: ENV["SILICONFLOW_API_KEY"]
580
+ model: "stabilityai/stable-diffusion-xl-base-1.0"
581
+
582
+ # 视频生成
583
+ video_gen:
584
+ adapter: "video_generation"
585
+ url: "https://api.siliconflow.cn/v1/"
586
+ api_key: ENV["SILICONFLOW_API_KEY"]
587
+ model: "Wan-AI/Wan2.2-T2V-A14B"
588
+
589
+ # 文本转语音
590
+ tts_service:
591
+ adapter: "tts"
592
+ url: "https://api.siliconflow.cn/v1/"
593
+ api_key: ENV["SILICONFLOW_API_KEY"]
594
+ model: "FunAudioLLM/CosyVoice2-0.5B"
595
+
596
+ # 语音转文本
597
+ stt_service:
598
+ adapter: "stt"
599
+ url: "https://api.siliconflow.cn/v1/"
600
+ api_key: ENV["SILICONFLOW_API_KEY"]
601
+ model: "FunAudioLLM/CosyVoice2-0.5B"
315
602
  ```
316
603
 
317
604
  ### 模型别名配置
@@ -398,20 +685,27 @@ end
398
685
  ## 🚀 实际应用场景
399
686
 
400
687
  - **聊天机器人和对话式 AI**: 构建具有上下文感知能力的复杂聊天机器人
401
- - **内容生成**: 基于模板驱动的提示词进行自动化内容创建
688
+ - **内容生成**: 基于模板驱动的提示词进行自动化内容创建
402
689
  - **代码分析**: AI 驱动的代码审查和文档生成
403
690
  - **客户支持**: 智能工单路由和响应建议
404
691
  - **数据处理**: LLM 驱动的数据提取和转换
405
692
  - **教育工具**: AI 导师和学习辅助系统
693
+ - **多媒体内容创作**: 生成图像、视频和音频内容
694
+ - **语音界面**: 使用 TTS 和 STT 构建语音应用
695
+ - **视觉分析**: 图像理解和目标检测应用
696
+ - **无障碍工具**: 为视障人士提供音频描述、文本转语音
406
697
 
407
698
  ## 🛣️ 发展路线图
408
699
 
700
+ - [x] **多模态 AI 支持** - 视觉、图像生成、视频生成、TTS、STT
409
701
  - [ ] 新增 LLM 提供商适配器(Anthropic Claude、Google PaLM)
410
702
  - [ ] 可视化提示词构建器和管理界面
411
703
  - [ ] 增强缓存和性能优化
412
704
  - [ ] 与向量数据库集成,支持 RAG 应用
413
705
  - [ ] 内置提示词评估和测试框架
414
706
  - [ ] 分布式 worker 执行支持
707
+ - [ ] 实时音视频流支持
708
+ - [ ] 高级多模态提示链
415
709
 
416
710
  ## 🤝 贡献
417
711