Repository navigation
Expand file tree
/
Copy path_conf_schema.json
More file actions
1946 lines (1946 loc) · 127 KB
/
Copy path_conf_schema.json
File metadata and controls
1946 lines (1946 loc) · 127 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"basic": {
"description": "基础设置",
"type": "object",
"hint": "群聊分析插件的基础配置项,包括群聊权限、消息数量、输出格式等。注意:基础群权限是第一道门槛,不通过就不会进入定时/增量流程。",
"items": {
"group_list_mode": {
"description": "群聊权限模式",
"type": "string",
"options": [
"whitelist",
"blacklist",
"none"
],
"default": "none",
"hint": "先决定“哪些群可以用这个插件”。这是第一道门槛:不通过这里,后面的定时/增量都不会触发。whitelist=只允许列表里的群;blacklist=屏蔽列表里的群;none=所有群都可以。示例:whitelist + [\"onebot:GroupMessage:123456\"] 表示只有这个群能用。"
},
"group_list": {
"type": "list",
"description": "群组白/黑名单列表",
"default": [],
"hint": "要填的群列表。可以填完整会话ID(如 onebot:GroupMessage:123456)或只填群号。QQ 官方机器人使用 group_openid,不是群号,务必优先通过 /sid 获取并填写完整 UMO。",
"items": {
"type": "string"
}
},
"analysis_days": {
"type": "int",
"description": "默认分析天数",
"default": 1,
"hint": "默认分析最近几天的消息,增量分析也基于此数据保存分析情况。QQ 官方 API 及 Telegram 无历史拉取接口,只能分析本地库缓存的消息。"
},
"max_messages": {
"type": "int",
"description": "单次分析的获取最大消息条数基准",
"default": 1000,
"hint": "单次分析的获取最大消息条数基准值,如果当天群聊消息过多,已经获取到足够的消息(达到 max_messages),停止获取,获取到的消息数量是最新一次获取到的超过 max_messages 的消息数量,建议500-2000"
},
"local_history_max_messages": {
"type": "int",
"description": "插件本地消息历史库消息保存上限 (条/群)",
"default": 10000,
"hint": "适用于无法拉取历史记录的平台(Telegram、QQ 官方机器人、Satori 等)。单群最多保留的历史消息条数,超出后自动修剪最旧消息。范围 10,000 ~ 100,000 条。",
"slider": {
"min": 10000,
"max": 100000,
"step": 1000
}
},
"persist_only_allowed_groups": {
"type": "bool",
"description": "仅对已启用分析的群进行消息持久化",
"default": false,
"hint": "开启后,若群组权限模式设置为白名单或黑名单,未通过群权限校验的群聊消息将直接被忽略,不写入本地消息历史库,节省磁盘与数据库资源;默认关闭(即所有启用插件的群均正常缓存消息,方便后续加入白名单时立即可分析历史)。"
},
"min_messages_threshold": {
"type": "int",
"description": "最小消息数阈值",
"default": 200,
"hint": "进行分析所需的最小消息数量"
},
"bot_self_ids": {
"type": "list",
"description": "群分析时屏蔽的用户ID列表",
"default": [],
"hint": "填写后可启用自动分析功能。可以填写用于自动分析的机器人 ID(在不同平台上可能是数字或字符串)、多消息平台 ID、不希望出现于群分析中的其他人的 ID 等。",
"items": {
"type": "string"
}
},
"filter_bot_messages": {
"type": "bool",
"description": "分析时是否过滤机器人自己的消息",
"default": true,
"hint": "默认开启,bot 自身的发言不会出现在分析报告中。关闭后 bot 的发言也会被纳入话题分析、金句提取等。"
},
"enable_user_card": {
"type": "bool",
"description": "使用用户群名片",
"default": true,
"hint": "在分析中优先使用用户的群名片作为昵称显示"
},
"enable_runtime_metrics": {
"type": "bool",
"description": "全链路性能指标与资源监控",
"default": true,
"hint": "开启后,插件将在分析任务执行全生命周期中精确采集各阶段耗时瀑布、进程内存增量(RSS)、I/O吞吐与Base64传输体积膨胀比,并在前端任务详情抽屉中呈现专属可视化 ECharts 图表。"
},
"output_format": {
"type": "list",
"description": "输出格式(可多选)",
"options": [
"image",
"text",
"html"
],
"default": [
"image"
],
"hint": "选择分析报告的输出方式(可多选)。image=图片、text=纯文本摘要、html=可交互式网页文件。多选仅在定时分析发送时时报告按顺序依次发送,手动触发时只发送第一个选中的格式,例如 image+html 会发送图片并通过外链提供 HTML 报告。QQ 官方图片/HTML 报告优先显示事件昵称,昵称缺失时使用群内稳定匿名名;文本报告由独立 Markdown 模块使用成员艾特展示身份。其他平台保持原有昵称文本格式。"
},
"report_template": {
"type": "string",
"description": "报告模板",
"options": [
"ATRI",
"art_nouveau",
"HatsuneMiku",
"scrapbook",
"maria",
"deepseek_maid",
"retro_futurism",
"hack",
"spring_festival",
"simple",
"BlueArchive",
"format"
],
"default": "HatsuneMiku",
"hint": "分析报告使用的HTML模板名称,QQ 端可以使用 `/设置模板` 查看使用指南,使用`/查看模板` 命令查看模板样式效果。其他平台不支持合并转发,可以到 [模板](https://github.com/SXP-Simon/astrbot_plugin_qq_group_daily_analysis/tree/main/assets) 文件夹中查看模板样式效果"
},
"report_language": {
"type": "string",
"description": "报告语言",
"options": [
"auto",
"zh-Hans",
"zh-Hant",
"en",
"ja"
],
"labels": [
"自动(按群聊判断)",
"简体中文",
"繁體中文",
"ENGLISH",
"日本語"
],
"default": "auto",
"condition": {
"report_template": "HatsuneMiku"
},
"hint": "群分析报告使用的语言。auto(默认)= 按本次分析的群聊消息正文自动判断,判断标准:某一语言占比超过 70% 且样本足够才判定,否则默认使用简体中文模板且不干预LLM生成内容,中文再按简繁特征字区分简体/繁体。选定某一语言则强制使用该语言。语言同时作用于三处:① 报告模板骨架文案、页面语言声明与字体优先级;② 报告日期格式;③ LLM 撰写的解说文案(标题、点评、总结等)。引用群友的原话与昵称不受影响,始终保留原文,不会被翻译或改写。本项仅作用于 HatsuneMiku[葱绿音乐] 模板。"
},
"profile_display_mode": {
"type": "string",
"description": "人格标签展示模式",
"options": [
"mbti",
"sbti",
"acgti"
],
"default": "mbti",
"hint": "只影响群友画像卡片的角色主题展示,不影响实际 MBTI 分析结果。mbti=原始 MBTI,sbti=映射为 SBTI 人格,acgti=映射为 ACGTI 角色。"
},
"profile_image_opacity": {
"type": "float",
"description": "人格背景图透明度",
"default": 0.12,
"hint": "建议 0.08~0.18,仅作为卡片底层装饰,避免遮挡正文。"
},
"profile_image_size_mode": {
"type": "string",
"description": "人格背景图尺寸模式",
"options": [
"contain",
"cover"
],
"default": "contain",
"hint": "建议默认 contain,减少角色图被裁切过多的问题。"
},
"profile_mapping_config": {
"type": "text",
"description": "人格映射配置(JSON)",
"editor_mode": true,
"editor_language": "json",
"default": "{\n \"mbti\": {\n \"INTJ\": {\n \"code\": \"INTJ\",\n \"name_zh\": \"建筑师\"\n },\n \"INTP\": {\n \"code\": \"INTP\",\n \"name_zh\": \"逻辑学家\"\n },\n \"ENTJ\": {\n \"code\": \"ENTJ\",\n \"name_zh\": \"指挥官\"\n },\n \"ENTP\": {\n \"code\": \"ENTP\",\n \"name_zh\": \"辩论家\"\n },\n \"INFJ\": {\n \"code\": \"INFJ\",\n \"name_zh\": \"提倡者\"\n },\n \"INFP\": {\n \"code\": \"INFP\",\n \"name_zh\": \"调停者\"\n },\n \"ENFJ\": {\n \"code\": \"ENFJ\",\n \"name_zh\": \"主人公\"\n },\n \"ENFP\": {\n \"code\": \"ENFP\",\n \"name_zh\": \"竞选者\"\n },\n \"ISTJ\": {\n \"code\": \"ISTJ\",\n \"name_zh\": \"物流师\"\n },\n \"ISFJ\": {\n \"code\": \"ISFJ\",\n \"name_zh\": \"守卫者\"\n },\n \"ESTJ\": {\n \"code\": \"ESTJ\",\n \"name_zh\": \"总经理\"\n },\n \"ESTP\": {\n \"code\": \"ESTP\",\n \"name_zh\": \"企业家\"\n },\n \"ISTP\": {\n \"code\": \"ISTP\",\n \"name_zh\": \"鉴赏家\"\n },\n \"ISFP\": {\n \"code\": \"ISFP\",\n \"name_zh\": \"探险家\"\n },\n \"ESFJ\": {\n \"code\": \"ESFJ\",\n \"name_zh\": \"执政官\"\n },\n \"ESFP\": {\n \"code\": \"ESFP\",\n \"name_zh\": \"表演者\"\n }\n },\n \"sbti\": {\n \"INTJ\": {\n \"code\": \"CTRL\",\n \"name_zh\": \"拿捏者\",\n \"asset_code\": \"CTRL\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/sbti/CTRL.png\"\n },\n \"INTP\": {\n \"code\": \"THIN-K\",\n \"name_zh\": \"思考者\",\n \"asset_code\": \"THIN-K\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/sbti/THIN-K.png\"\n },\n \"ENTJ\": {\n \"code\": \"BOSS\",\n \"name_zh\": \"领导者\",\n \"asset_code\": \"BOSS\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/sbti/BOSS.png\"\n },\n \"ENTP\": {\n \"code\": \"JOKE-R\",\n \"name_zh\": \"小丑\",\n \"asset_code\": \"JOKE-R\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/sbti/JOKE-R.jpg\"\n },\n \"INFJ\": {\n \"code\": \"LOVE-R\",\n \"name_zh\": \"多情者\",\n \"asset_code\": \"LOVE-R\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/sbti/LOVE-R.png\"\n },\n \"INFP\": {\n \"code\": \"SOLO\",\n \"name_zh\": \"孤儿\",\n \"asset_code\": \"SOLO\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/sbti/SOLO.png\"\n },\n \"ENFJ\": {\n \"code\": \"THAN-K\",\n \"name_zh\": \"感恩者\",\n \"asset_code\": \"THAN-K\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/sbti/THAN-K.png\"\n },\n \"ENFP\": {\n \"code\": \"GOGO\",\n \"name_zh\": \"行者\",\n \"asset_code\": \"GOGO\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/sbti/GOGO.png\"\n },\n \"ISTJ\": {\n \"code\": \"OH-NO\",\n \"name_zh\": \"哦不人\",\n \"asset_code\": \"OH-NO\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/sbti/OH-NO.png\"\n },\n \"ISTP\": {\n \"code\": \"POOR\",\n \"name_zh\": \"贫困者\",\n \"asset_code\": \"POOR\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/sbti/POOR.png\"\n },\n \"ESTJ\": {\n \"code\": \"SHIT\",\n \"name_zh\": \"愤世者\",\n \"asset_code\": \"SHIT\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/sbti/SHIT.png\"\n },\n \"ESTP\": {\n \"code\": \"WOC!\",\n \"name_zh\": \"握草人\",\n \"asset_code\": \"WOC\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/sbti/WOC.png\"\n },\n \"ISFJ\": {\n \"code\": \"MUM\",\n \"name_zh\": \"妈妈\",\n \"asset_code\": \"MUM\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/sbti/MUM.png\"\n },\n \"ISFP\": {\n \"code\": \"MALO\",\n \"name_zh\": \"吗喽\",\n \"asset_code\": \"MALO\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/sbti/MALO.png\"\n },\n \"ESFJ\": {\n \"code\": \"ATM-er\",\n \"name_zh\": \"送钱者\",\n \"asset_code\": \"ATM-er\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/sbti/ATM-er.png\"\n },\n \"ESFP\": {\n \"code\": \"SEXY\",\n \"name_zh\": \"尤物\",\n \"asset_code\": \"SEXY\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/sbti/SEXY.png\"\n }\n },\n \"acgti\": {\n \"INTJ\": {\n \"code\": \"MRTS-X\",\n \"name_zh\": \"Mortis\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/acgti/characters/MRTS-X.png\"\n },\n \"INTP\": {\n \"code\": \"KNAN\",\n \"name_zh\": \"江户川柯南\"\n },\n \"ENTJ\": {\n \"code\": \"SAKI\",\n \"name_zh\": \"丰川祥子\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/acgti/characters/SAKI.png\"\n },\n \"ENTP\": {\n \"code\": \"CHKA\",\n \"name_zh\": \"藤原千花\"\n },\n \"INFJ\": {\n \"code\": \"DLRS\",\n \"name_zh\": \"三角初华\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/acgti/characters/DLRS.png\"\n },\n \"INFP\": {\n \"code\": \"BCHI\",\n \"name_zh\": \"后藤一里\"\n },\n \"ENFJ\": {\n \"code\": \"YCYO\",\n \"name_zh\": \"月见八千代\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/acgti/characters/YCYO.png\"\n },\n \"ENFP\": {\n \"code\": \"HTMK\",\n \"name_zh\": \"初音未来\"\n },\n \"ISTJ\": {\n \"code\": \"MRTS\",\n \"name_zh\": \"若叶睦\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/acgti/characters/MRTS.png\"\n },\n \"ISTP\": {\n \"code\": \"AYRE\",\n \"name_zh\": \"绫波丽\"\n },\n \"ESTJ\": {\n \"code\": \"MIKT\",\n \"name_zh\": \"御坂美琴\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/acgti/characters/MIKT.png\"\n },\n \"ESTP\": {\n \"code\": \"ASKA\",\n \"name_zh\": \"明日香\"\n },\n \"ISFJ\": {\n \"code\": \"SOYO\",\n \"name_zh\": \"长崎爽世\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/acgti/characters/SOYO.png\"\n },\n \"ISFP\": {\n \"code\": \"LTYI\",\n \"name_zh\": \"洛天依\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/acgti/characters/LTYI.png\"\n },\n \"ESFJ\": {\n \"code\": \"ANON\",\n \"name_zh\": \"千早爱音\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/acgti/characters/ANON.png\"\n },\n \"ESFP\": {\n \"code\": \"FRNA\",\n \"name_zh\": \"芙宁娜\",\n \"image\": \"https://cdn.jsdmirror.com/gh/SXP-Simon/profile_assets@main/acgti/characters/FRNA.png\"\n }\n }\n}",
"hint": "按 MBTI 覆盖当前展示模式的人格名称与图片地址。留空时自动使用插件内置默认映射和 manifest。插件不负责校验图片链接可访问性。"
},
"enable_base64_image": {
"type": "bool",
"description": "图片传输使用 Base64 编码",
"default": true,
"hint": "启用后图片会被转为 Base64 编码传输。关闭后将直接传递文件路径或 URL 给 OneBot 协议端,适用于 NapCat / LLOneBot / SnowLuma / Lagrange 等支持本地路径的实现,可降低内存占用。"
},
"napcat_stream_threshold_mb": {
"type": "float",
"description": "NapCat 流式上传阈值(MB)",
"default": 2.0,
"hint": "NapCat 专属优化特性:先按常规策略发送本地图片;发送失败且文件大小达到阈值时,复用当前 NapCat 连接调用 upload_file_stream 分块流式上传并重试一次。填 0 禁用。Docker / 容器网络环境建议保持默认或按大图需求调大。"
},
"enable_analysis_reply": {
"type": "bool",
"description": "发送文本/表情回复",
"default": false,
"hint": "开启后,/群分析 将通过发送文本消息提示进度;关闭(默认)则使用表情回应。"
},
"show_report_caption": {
"type": "bool",
"description": "发送报告时附带 \"📊 每日群聊分析报告已生成\" 前缀",
"default": true,
"hint": "关闭后,发送图片/HTML 报告时将只发送文件本身,不附带 \"📊 每日群聊分析报告已生成\" 等文字前缀。"
}
}
},
"qq_official": {
"description": "QQ 官方机器人",
"type": "object",
"hint": "仅作用于 QQ 官方机器人及 QQ 官方 Webhook 的报告展示。",
"items": {
"enable_t2i_activity_histogram": {
"type": "bool",
"description": "启用 T2I 群聊概览图",
"default": true,
"hint": "在 QQ 官方 Markdown 报告中嵌入透明背景的日期、基础统计与 24 小时直方图。渲染失败时自动回退为完整文字报告。"
}
}
},
"t2i_rendering": {
"description": "图片渲染策略",
"type": "object",
"hint": "配置 HTML 转图片的渲染参数。支持两轮尝试:第一轮优先保证质量,第二轮作为回退方案,建议使用更低的分辨率和质量以提高成功率。",
"items": {
"t2i_r1_type": {
"type": "string",
"description": "第一轮:图片格式",
"options": [
"jpeg",
"png"
],
"default": "png",
"hint": "建议:PNG 格式无损但体积较大;JPEG 格式体积较小。"
},
"t2i_r1_quality": {
"type": "int",
"description": "第一轮:图片质量 (若为 JPEG)",
"default": 100,
"slider": {
"min": 1,
"max": 100,
"step": 1
},
"hint": "仅对 JPEG 格式生效。建议 80-100。"
},
"t2i_r1_device_scale": {
"type": "string",
"description": "第一轮:分辨率等级",
"options": [
"normal",
"high",
"ultra"
],
"default": "ultra",
"hint": "影响图片清晰度。normal=1.0x, high=1.3x, ultra=1.8x。高质量日报建议 ultra。"
},
"t2i_r1_timeout": {
"type": "int",
"description": "第一轮:渲染超时 (ms)",
"default": 50000,
"slider": {
"min": 30000,
"max": 180000,
"step": 5000
},
"hint": "单次渲染的最长等待时间。复杂页面建议调大。"
},
"t2i_viewport_width": {
"type": "int",
"description": "报告渲染视口兜底宽度 (px)",
"default": 1080,
"slider": {
"min": 800,
"max": 1440,
"step": 10
},
"hint": "仅在模板未提供 T2I 可识别的数字 width 时传给 AstrBot T2I,避免服务升级后回退到 800px 默认宽度而挤压宽版报告模板。内置主题建议保持 1440;自定义模板可用 meta viewport 的数字 width 指定自身宽度。"
},
"t2i_viewport_height": {
"type": "int",
"description": "报告渲染视口兜底高度 (px)",
"default": 900,
"slider": {
"min": 400,
"max": 1440,
"step": 10
},
"hint": "仅在模板未提供 T2I 可识别的数字 height 时传给 AstrBot T2I。图片报告始终使用 full_page,不会按此高度截断整张报告。"
},
"t2i_r2_type": {
"type": "string",
"description": "第二轮 (回退):图片格式",
"options": [
"jpeg",
"png"
],
"default": "jpeg",
"hint": "回退策略建议使用 jpeg 以减少渲染压力。"
},
"t2i_r2_quality": {
"type": "int",
"description": "第二轮 (回退):图片质量 (若为 JPEG)",
"default": 80,
"slider": {
"min": 1,
"max": 100,
"step": 1
},
"hint": "仅对 JPEG 格式生效。可以设置较低值以确保生成成功。"
},
"t2i_r2_device_scale": {
"type": "string",
"description": "第二轮 (回退):分辨率等级",
"options": [
"normal",
"high",
"ultra"
],
"default": "high",
"hint": "回退建议使用 high/normal 以降低复杂页面的内存消耗和超时概率。"
},
"t2i_r2_timeout": {
"type": "int",
"description": "第二轮 (回退):渲染超时 (ms)",
"default": 100000,
"slider": {
"min": 30000,
"max": 180000,
"step": 5000
},
"hint": "回退尝试通常针对复杂页面,建议设置更长的超时时间(如 100000ms+)。"
},
"t2i_cdn_base_url": {
"type": "string",
"description": "模板资源 CDN 基础地址",
"default": "https://cdn.jsdmirror.com",
"hint": "用于模板图片、字体和预览图,也提供 npm 资源地址。推荐填写 https://fastly.jsdelivr.net/ 这样的 CDN 网站地址,需支持 /gh/ 和 /npm/ 路径。只填网站地址,不要带具体文件路径;末尾的 / 和多余空格会自动去掉,留空使用默认地址。填好后可以点“检测可用性”,看看机器人所在服务器能否顺畅加载。使用远程图片渲染服务时,请再生成一份报告确认。Google 字体仍使用单独的镜像设置。"
},
"t2i_font_source": {
"type": "string",
"description": "t2i 渲染环境切换",
"options": [
"Mainland",
"Overseas"
],
"default": "Overseas",
"hint": "字体和静态资源的访问环境,内地(Mainland)、海外(Overseas),切换环境会自动应用下方对应的镜像站地址、语言标识(简体中文/繁体中文)及字体优先级。(实测 Overseas 也可以正常渲染简体中文,没有特殊的情况都建议使用 Overseas,Mainland 配置下建议检查镜像站可用性,或者配置可靠的站点)"
},
"t2i_mainland_google_fonts": {
"type": "string",
"description": "[内地] Google Fonts 镜像",
"default": "https://fonts.loli.net",
"hint": "内地环境下推荐使用 loli.net 或其他可访问镜像。"
},
"t2i_mainland_gstatic": {
"type": "string",
"description": "[内地] Gstatic 镜像",
"default": "https://gstatic.loli.net",
"hint": "内地环境下推荐使用 loli.net 或其他可访问镜像。"
},
"t2i_overseas_google_fonts": {
"type": "string",
"description": "[海外] Google Fonts 官方",
"default": "https://fonts.googleapis.com",
"hint": "海外环境通常直接使用官方地址即可。"
},
"t2i_overseas_gstatic": {
"type": "string",
"description": "[海外] Gstatic 官方",
"default": "https://fonts.gstatic.com",
"hint": "海外环境通常直接使用官方地址即可。"
}
}
},
"auto_analysis": {
"description": "定时分析设置",
"type": "object",
"hint": "配置每日自动分析的时间点和目标群聊范围。只有先通过基础群权限的群,才会在这里继续判断。",
"items": {
"auto_analysis_time": {
"type": "list",
"description": "自动分析时间列表",
"default": [
"23:00"
],
"hint": "每天几点自动出报告,格式是 HH:MM。可填多个时间,例如 [\"09:00\", \"21:30\"];留空并保存后会移除所有已注册的定时报告任务,已开始的分析不会中断。增量分析由独立配置控制,仍可能按新增消息量触发。",
"items": {
"type": "string"
}
},
"scheduled_group_list_mode": {
"type": "string",
"description": "定时分析名单模式",
"options": [
"inherit",
"whitelist",
"blacklist"
],
"default": "whitelist",
"hint": "定时任务要作用到哪些群。inherit=直接继承基础群权限,不需要重复填写;whitelist=只跑下面列表里的群;blacklist=除了下面列表,其他都跑。定时名单始终不会绕过基础群权限。"
},
"scheduled_group_list": {
"type": "list",
"description": "定时分析群列表",
"default": [],
"hint": "仅在 whitelist 或 blacklist 模式下使用。示例1:mode=whitelist + [\"onebot:GroupMessage:123456\"] => 只跑这个群。示例2:mode=blacklist + [\"onebot:GroupMessage:123456\"] => 这个群不跑,其他群跑。inherit 模式会忽略此列表并复用基础名单。whitelist + 空列表 = 不会开启定时任务。",
"items": {
"type": "string"
}
}
}
},
"llm": {
"description": "LLM 设置",
"type": "object",
"hint": "大语言模型相关配置,包括 Provider 选择、重试策略和 Token 限制",
"items": {
"llm_provider_id": {
"type": "string",
"description": "LLM Provider ID(用于所有分析任务)",
"_special": "select_provider",
"default": "",
"hint": "选择用于群聊分析的 LLM Provider。留空则使用当前会话的默认 Provider"
},
"topic_provider_id": {
"type": "string",
"description": "话题分析专用 Provider ID",
"_special": "select_provider",
"default": "",
"hint": "专门用于话题分析的 Provider。留空则使用主 LLM Provider"
},
"user_title_provider_id": {
"type": "string",
"description": "用户称号分析专用 Provider ID",
"_special": "select_provider",
"default": "",
"hint": "专门用于用户称号分析的 Provider。留空则使用主 LLM Provider"
},
"golden_quote_provider_id": {
"type": "string",
"description": "金句分析专用 Provider ID",
"_special": "select_provider",
"default": "",
"hint": "专门用于金句分析的 Provider。留空则使用主 LLM Provider"
},
"quality_provider_id": {
"type": "string",
"description": "聊天质量分析专用 Provider ID",
"_special": "select_provider",
"default": "",
"hint": "专门用于聊天质量锐评的 Provider。留空则使用主 LLM Provider"
},
"drawing_prompt_provider_id": {
"type": "string",
"description": "用于每日群漫画区域的功能,画图提示词专用 Provider ID",
"_special": "select_provider",
"default": "",
"hint": "专门用于生成漫画分镜、画图提示词及失败后的提示词重写。推荐最低使用 DeepSeek V4 Flash,避免使用角色扮演能力较弱的模型。留空则使用主 LLM Provider"
},
"llm_retries": {
"type": "int",
"description": "LLM 请求重试次数",
"default": 2,
"hint": "当请求超时或失败时自动重试的次数,建议设置为1~3之间。"
},
"llm_backoff": {
"type": "int",
"description": "LLM 请求重试退避基值(秒)",
"default": 2,
"hint": "重试之间的基准等待时间(秒)。实际等待时间会随尝试次数指数增长,并加入少量随机抖动;当专用 Provider 失败后,会继续按队列尝试默认 Provider。"
},
"llm_hard_timeout": {
"type": "int",
"description": "LLM 请求硬超时上限 (秒)",
"default": 0,
"hint": "单次大模型请求的最大等待耗时(秒)。设为 0 时自动遵循 Provider 配置的 timeout(未配置时默认兜底 300 秒)。超过此时间将主动截断请求并触发重试/降级。"
},
"enable_streaming_llm_call": {
"type": "bool",
"description": "启用流式 LLM 调用",
"default": false,
"hint": "默认关闭,使用原有非流式调用方式。开启后,插件将使用 AstrBot Provider 的流式接口并聚合结果,适用于仅支持 stream=true 的服务。"
}
}
},
"analysis_features": {
"description": "分析功能开关",
"type": "object",
"hint": "控制各项 LLM 分析功能的启用状态和数量限制",
"items": {
"topic_analysis_enabled": {
"type": "bool",
"description": "启用话题分析",
"default": true,
"hint": "是否使用LLM进行智能话题分析"
},
"user_title_analysis_enabled": {
"type": "bool",
"description": "启用用户称号分析",
"default": true,
"hint": "是否使用LLM进行用户称号分析"
},
"golden_quote_analysis_enabled": {
"type": "bool",
"description": "启用金句分析",
"default": true,
"hint": "是否使用LLM进行金句分析"
},
"chat_quality_analysis_enabled": {
"type": "bool",
"description": "启用聊天质量锐评",
"default": true,
"hint": "是否使用LLM进行聊天质量锐评(维度化分析)"
},
"max_topics": {
"type": "int",
"description": "最大话题数量",
"default": 5,
"hint": "分析报告中显示的最大话题数量,依赖于 LLM 输出的格式化信息质量,模型越好结果越好,可能出现数量不匹配。"
},
"max_user_titles": {
"type": "int",
"description": "最大用户称号数量",
"default": 8,
"hint": "分析报告中显示的最大用户称号数量,依赖于 LLM 输出的格式化信息质量,模型越好结果越好,可能出现数量不匹配。"
},
"max_golden_quotes": {
"type": "int",
"description": "最大金句数量",
"default": 5,
"hint": "分析报告中显示的最大金句数量,依赖于 LLM 输出的格式化信息质量,模型越好结果越好,可能出现数量不匹配。"
},
"keep_original_persona": {
"description": "继承会话人设风格",
"type": "bool",
"default": false,
"hint": "【优先级2】开启后将自动尝试识别当前群聊会话(或对话)的人格设定。若该群已设置人设,则分析报告会尽量模拟该人设的口吻进行回复。注意:此开关在“强制使用插件指定人格”关闭时才会生效。"
},
"use_plugin_specific_persona": {
"description": "强制使用插件指定人格",
"type": "bool",
"default": false,
"hint": "【优先级1:核心开关】若开启,将完全忽略当前群聊的人格设定,统一强制使用下方选择的“插件指定人格 ID”进行分析。适用于希望全群分析保持某种统一固定风格(如特定的“记录员”人设)的情况。"
},
"plugin_specific_persona_id": {
"description": "插件指定人格 ID",
"type": "string",
"_special": "select_persona",
"default": "",
"hint": "当“强制使用插件指定人格”开启时,在此处选择系统中已定义的人设。该人格会同时作用于画图提示词生成模型。若此处未选择,则仍会尝试识别全局默认人格。"
}
}
},
"daily_comic": {
"description": "每日群漫画",
"type": "object",
"hint": "群聊分析结果完成后,后台并行生成并发送趣味漫画,不等待报告渲染或发送结束。可选上传至群相册,支持配置独立绘图接口和图生图参考图。",
"items": {
"enable_daily_comic": {
"description": "启用漫画功能",
"type": "bool",
"default": false,
"hint": "漫画总开关。关闭时,/群漫画 和所有自动联动漫画都会停止。开启后可继续通过下方“分析后自动生成漫画”单独控制自动联动。"
},
"enable_auto_daily_comic": {
"description": "分析后自动生成漫画",
"type": "bool",
"default": true,
"hint": "控制手动群分析、定时分析和增量最终报告完成后是否自动生成漫画。关闭后仍可手动使用 /群漫画,且不会重复执行话题分析链路。"
},
"comic_group_list_mode": {
"description": "漫画群名单模式",
"type": "string",
"options": [
"inherit",
"whitelist",
"blacklist"
],
"default": "inherit",
"hint": "只控制漫画生成,不影响报告名单。inherit=继承基础群权限,适合漫画和分析使用同一批群且无需重复填写;blacklist=除列表外都允许生成漫画,适合只开放漫画不开放分析;whitelist=只允许列表里的群生成漫画。白名单为空时不会为任何群生成漫画。"
},
"comic_group_list": {
"type": "list",
"description": "漫画群白/黑名单列表",
"default": [],
"hint": "用于漫画生成的群列表。可以填完整会话ID(如 onebot:GroupMessage:123456)或只填群号。自动漫画和 /群漫画 手动命令都会检查这里。",
"items": {
"type": "string"
}
},
"random_daily_comic_character": {
"description": "每天随机切换漫画角色",
"type": "bool",
"default": false,
"hint": "开启后每天首次生成漫画时,会从下方已启用的角色方案随机选择一个,并按运行环境时区在当天持续使用;重启不会改变当天选择。关闭时固定使用第一个已启用方案。"
},
"comic_characters": {
"description": "漫画角色方案",
"type": "template_list",
"default": [],
"hint": "每个方案可绑定漫画专用人格、参考图和场景分析提示词。方案条目可展开编辑;请使用不同的方案名称,方便识别当天随机选中的角色。未配置方案时仍可正常文生图。",
"templates": {
"character": {
"name": "漫画角色方案",
"display_item": "name",
"items": {
"name": {
"description": "方案名称",
"type": "string",
"default": "",
"hint": "仅用于在配置面板和运行日志中识别此方案。"
},
"enable": {
"description": "启用此方案",
"type": "bool",
"default": true
},
"persona_id": {
"description": "漫画专用人格",
"type": "string",
"_special": "select_persona",
"default": "",
"hint": "仅影响漫画分镜提示词,不会改变群分析报告、话题或金句使用的人格。"
},
"reference_images": {
"description": "角色参考图",
"type": "file",
"default": [],
"file_types": [
"jpg",
"jpeg",
"png",
"webp"
],
"hint": "上传后点击 + 加入此角色方案。Images、Chat 和 Gemini 协议会按顺序传入全部参考图;Grok 协议仅使用第一张。"
},
"storyboard_prompt": {
"description": "漫画场景分析提示词",
"type": "text",
"editor_mode": true,
"editor_language": "markdown",
"default": "你是一个资深的漫画分镜师与 AI 绘画提示词专家。\n请根据以下给出的【群聊每日核心话题列表】,站在你【当前的人格角色设定】(详见系统注入的身份)的视角与语气,将其改编并设计为一个精彩的多格连环漫画(Comic Strip)全景视觉画图提示词 (Prompt)。\n\n【核心视觉、台词与双层排版规则】:\n1. 【全话题必须覆盖(共 ${topic_count} 个分格)】:给出的待创作核心话题列表中共有 ${topic_count} 个话题,你必须为每一个话题分别设计一个分格 Panel(即 Panel 1 到 Panel ${topic_count}),绝对不许随意裁减、挑选或遗漏任何一个话题!\n2. 【人设口语化台词改编】:绝对严禁将报告分析总结原文直接放进对话框!必须以【你当前的人格语气/性格/口吻】(例如傲娇、萌系或专属说话风格),将每个话题的事件提炼改编为一句角色在漫画中的生动台词或吐槽,【每条台词控制在 15 个汉字以内】(例如:“呜呜!家里云又断网了啦!”、“萝卜子才没有降智!那都是Gemini的错!”)。\n3. 【精美双层文字排版(气泡 + 可爱旁白字幕条)】:\n - 【角色的气泡】:在描述英文 Prompt 时,指定样式为“adorable kawaii anime speech bubble, soft rounded cloud-like shape, cute pointer tail pointing to the speaker”。\n - 【分格底部的事件旁白条】:将每个话题概括为生动精炼的短标题(控制在 30 字以内,严禁带有“【事件】”字样),在 Prompt 中指定样式为“cute pastel-colored kawaii caption strip at the bottom of the panel with soft rounded corners”,严禁死板白框!\n4. 【中文文本显式渲染】:画面整体构图与场景描述使用英文,但气泡与底部旁白条内渲染的中文必须显式指定(指令格式:containing a speech bubble with exact Chinese text \"人设吐槽台词\" 以及 and a cute caption strip at bottom with exact Chinese text \"精炼话题短标题\"),绝对禁止将中文翻译成英文!\n5. 【话题内容直传与文字渲染约束】:在生成传给生图 LLM 的英文提示词 (scene) 时,对于每一个分格,除了描述具体的视觉画面外,你必须将该话题的【完整详情(翻译为英文)】作为 Background Context 附加在该分格的提示词中,帮助生图模型理解剧情。但同时,必须极其强烈地警告生图模型:“绝对禁止将长篇上下文写在画面上,仅允许渲染短标题字幕条和气泡台词!”(示例:Background Context: [Details]. STRICT RULE: DO NOT render the background context text! ONLY render the exact Chinese text in the bubble and caption strip!)。\n6. 【核心角色强制全覆盖】:在提示词中必须明确要求并描述,每一个分格 (Panel) 都必须无一例外地出现你当前的人格设定(即参考图中的核心角色,例如 1girl, [特定外貌特征] 等),保持整篇连环画的主角绝对连贯!\n\n【待创作的群聊核心话题列表】:\n${chat_content}\n\n【输出格式与正反例规范 (GOOD & BAD EXAMPLES)】:\n⚠️ 核心要求:AI 绘图引擎会直接读取 \"scene\" 字段作为唯一生图指令。你必须将全局角色总设以及 Panel 1 到 Panel ${topic_count} 的每一格完整描述全部写入 \"scene\" 字符串中!\n\n✅ 正确示范 (GOOD EXAMPLE - 必须严格遵循此格式输出纯 JSON):\n{\n \"scene\": \"A ${topic_count}-panel comic strip featuring [protagonist description] observing a chaotic QQ group chat.\\n\\nPanel 1: [Visual action] containing a speech bubble with exact Chinese text \\\"[人设吐槽台词 15字内]\\\" and a cute pastel caption strip at bottom with exact Chinese text \\\"[精炼短标题]\\\". Background Context: [English Details]. STRICT RULE: DO NOT render the background context text!\\n\\nPanel 2: [Visual action] containing a speech bubble with exact Chinese text \\\"[人设吐槽台词 15字内]\\\" and a cute pastel caption strip at bottom with exact Chinese text \\\"[精炼短标题]\\\". Background Context: [English Details]. STRICT RULE: DO NOT render the background context text!\\n\\n... (必须依次写完 Panel 1 到 Panel ${topic_count})\"\n}\n\n❌ 错误示范 (BAD EXAMPLE - 严禁以下行为):\n1. 严禁把 scene 写成一句简短概括,却把具体话题藏在 panels 列表中(生图模型直接读取 scene,必须全内联写入 scene)!\n2. 严禁丢失气泡或字幕条里的 exact Chinese text 显式中文台词与短标题!\n3. 严禁在 JSON 之外输出任何多余的 Markdown 或闲聊文字!\n",
"hint": "此角色专属的分镜、画风和台词规则。留空时回退到下方全局默认模板。"
}
}
}
}
},
"drawing_reference_image": {
"description": "旧版漫画参考图(兼容迁移)",
"type": "file",
"default": [],
"file_types": [
"jpg",
"jpeg",
"png",
"webp"
],
"invisible": true,
"hint": "旧版配置仅用于自动迁移,不再在面板中显示。"
},
"drawing_backend": {
"description": "绘图后端",
"type": "string",
"options": [
"builtin",
"general_plugin",
"big_banana"
],
"default": "builtin",
"hint": "builtin=使用本插件内置绘图客户端;general_plugin=调用已安装的「通用生图」插件(https://cloud.astrbot.app/plugin/railgun19457/astrbot_plugin_image_generation)的公共 API;big_banana=调用已安装的「大香蕉」插件(https://cloud.astrbot.app/plugin/sukafon/astrbot_plugin_big_banana)的绘图管线(支持 Gemini、SiliconFlow 等多家服务)。使用外部后端时,需先在对应插件中配置其自身的 API/提供商;未安装、未激活或调用失败时自动回退内置后端。"
},
"drawing_external_fallback": {
"description": "外部后端失败时回退内置后端",
"type": "bool",
"default": true,
"hint": "使用通用生图/大香蕉外部绘图后端时,若其未安装、未激活或生成失败,是否自动回退到本插件内置绘图客户端;关闭后失败将直接取消本次漫画生成。"
},
"drawing_provider_overrides": {
"description": "绘图供应商配置表",
"type": "template_list",
"default": [],
"hint": "可添加多个绘图供应商。按 priority 从高到低尝试,同优先级按表中顺序尝试;所有候选失败后才判定漫画生成失败。至少添加一个包含 API Key 的启用条目。",
"templates": {
"google": {
"name": "google",
"description": "配置 Google Gemini 官方 API 的密钥和端点",
"items": {
"priority": {
"description": "优先级",
"type": "int",
"default": 0
},
"api_key": {
"description": "API Key",
"type": "string",
"default": ""
},
"api_url": {
"description": "API 端点",
"type": "string",
"default": "https://generativelanguage.googleapis.com/v1beta"
},
"proxy": {
"description": "代理地址",
"type": "string",
"default": "",
"hint": "填写即启用代理,留空使用全局生图代理。支持 http://host:port、https://host:port、socks5://host:port;优先级高于全局设置。"
},
"model": {
"description": "模型名称",
"type": "string",
"default": "gemini-3-pro-image-preview"
},
"image_size": {
"description": "图像分辨率",
"type": "string",
"default": "2K"
},
"aspect_ratio": {
"description": "宽高比",
"type": "string",
"default": "16:9"
},
"timeout": {
"description": "请求超时(秒)",
"type": "int",
"default": 600
}
}
},
"openai": {
"name": "openai",
"description": "配置 OpenAI 兼容格式的 Chat API 密钥和端点",
"items": {
"priority": {
"description": "优先级",
"type": "int",
"default": 0
},
"api_key": {
"description": "API Key",
"type": "string",
"default": ""
},
"api_url": {
"description": "API 端点",
"type": "string",
"default": ""
},
"proxy": {
"description": "代理地址",
"type": "string",
"default": "",
"hint": "填写即启用代理,留空使用全局生图代理。支持 http://host:port、https://host:port、socks5://host:port;优先级高于全局设置。"
},
"model": {
"description": "模型名称",
"type": "string",
"default": "gpt-4o"
},
"image_size": {
"description": "图像分辨率",
"type": "string",
"default": "2K"
},
"aspect_ratio": {
"description": "宽高比",
"type": "string",
"default": "16:9"
},
"timeout": {
"description": "请求超时(秒)",
"type": "int",
"default": 600
}
}
},
"zai": {
"name": "zai",
"description": "配置 Z.ai 的 API 密钥和端点",
"items": {
"priority": {
"description": "优先级",
"type": "int",
"default": 0
},
"api_key": {
"description": "API Key",
"type": "string",
"default": ""
},
"api_url": {
"description": "API 端点",
"type": "string",
"default": "https://api.z.ai/api/paas/v4"
},
"proxy": {
"description": "代理地址",
"type": "string",
"default": "",
"hint": "填写即启用代理,留空使用全局生图代理。支持 http://host:port、https://host:port、socks5://host:port;优先级高于全局设置。"
},
"model": {
"description": "模型名称",
"type": "string",
"default": "glm-4.6v"
},
"image_size": {
"description": "图像分辨率",
"type": "string",
"default": "2K"
},
"aspect_ratio": {
"description": "宽高比",
"type": "string",
"default": "16:9"
},
"timeout": {
"description": "请求超时(秒)",
"type": "int",
"default": 600
}
}
},
"grok2api": {
"name": "grok2api",
"description": "配置 grok2api 的 API 密钥和端点",
"items": {
"priority": {
"description": "优先级",
"type": "int",
"default": 0
},
"api_key": {
"description": "API Key",
"type": "string",
"default": ""
},
"api_url": {
"description": "API 端点",
"type": "string",
"default": ""
},
"proxy": {
"description": "代理地址",
"type": "string",
"default": "",
"hint": "填写即启用代理,留空使用全局生图代理。支持 http://host:port、https://host:port、socks5://host:port;优先级高于全局设置。"
},
"model": {
"description": "模型名称",
"type": "string",
"default": "grok-2-image"
},
"image_size": {
"description": "图像分辨率",
"type": "string",
"default": "2K"
},
"aspect_ratio": {
"description": "宽高比",
"type": "string",
"default": "16:9"
},
"timeout": {
"description": "请求超时(秒)",
"type": "int",
"default": 600
}
}
},
"agnes_ai": {
"name": "agnes_ai",
"description": "Agnes AI 国际站(apihub.agnes-ai.com),支持文生图和参考图",
"items": {
"priority": {
"description": "优先级",
"type": "int",
"default": 0
},
"api_key": {
"description": "API Key",
"type": "string",
"default": ""
},
"api_url": {
"description": "API 端点",
"type": "string",
"default": "https://apihub.agnes-ai.com"
},
"proxy": {
"description": "代理地址",
"type": "string",
"default": "",
"hint": "填写即启用代理,留空使用全局生图代理。支持 http://host:port、https://host:port、socks5://host:port;优先级高于全局设置。"
},
"model": {
"description": "模型名称",
"type": "string",
"default": "agnes-image-2.1-flash"
},
"image_size": {
"description": "图像分辨率",
"type": "string",
"default": "2K"
},
"aspect_ratio": {
"description": "宽高比",
"type": "string",
"default": "16:9"
},
"output_format": {
"description": "响应格式",
"type": "string",
"options": [
"url",
"b64_json"
],
"default": "url"
},
"timeout": {
"description": "请求超时(秒)",
"type": "int",
"default": 600
}
}
},
"agnes_ai_china": {
"name": "agnes_ai_china",
"description": "Agnes AI 中国站(api.agnes-ai.cn),API Key 仅可在所属站点使用",
"items": {
"priority": {
"description": "优先级",
"type": "int",
"default": 0
},
"api_key": {
"description": "API Key",
"type": "string",
"default": ""
},
"api_url": {
"description": "API 端点",
"type": "string",
"default": "https://api.agnes-ai.cn"
},
"proxy": {
"description": "代理地址",
"type": "string",
"default": "",
"hint": "填写即启用代理,留空使用全局生图代理。支持 http://host:port、https://host:port、socks5://host:port;优先级高于全局设置。"
},
"model": {
"description": "模型名称",
"type": "string",
"default": "agnes-image-2.1-flash"
},
"image_size": {
"description": "图像分辨率",
"type": "string",
"default": "2K"
},
"aspect_ratio": {
"description": "宽高比",
"type": "string",
"default": "16:9"
},
"output_format": {
"description": "响应格式",
"type": "string",
"options": [
"url",
"b64_json"
],
"default": "url"
},
"timeout": {
"description": "请求超时(秒)",
"type": "int",
"default": 600
}
}
},
"xai": {
"name": "xai",
"description": "配置 xAI /v1/images/generations 和 /v1/images/edits 端点",
"items": {
"priority": {
"description": "优先级",
"type": "int",
"default": 0
},
"api_key": {
"description": "API Key",
"type": "string",
"default": ""
},
"api_url": {
"description": "API 端点",
"type": "string",