best-geo-test 0.3.0 → 0.3.2
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.
- package/capabilities/capabilities.json +1458 -2
- package/dist/index.cjs +12 -12
- package/guides/article.json +16 -3
- package/guides/knowledge.json +8 -1
- package/guides/publication.json +117 -0
- package/guides/question.json +6 -0
- package/guides/scheduled-monitor.json +10 -3
- package/package.json +1 -1
- package/skills/best-geo/SKILL.md +8 -0
|
@@ -369,6 +369,68 @@
|
|
|
369
369
|
"additionalProperties": false
|
|
370
370
|
}
|
|
371
371
|
},
|
|
372
|
+
{
|
|
373
|
+
"name": "questions.linkKnowledge",
|
|
374
|
+
"mode": "write",
|
|
375
|
+
"guide": "question",
|
|
376
|
+
"requiresPlan": true,
|
|
377
|
+
"description": "给搜索问题绑定知识库。绑定之后,AI 写这个问题的文章时会去这些知识库里检索 —— 绑错了写出来的内容就跑偏。重复绑定会自动跳过。不扣费。",
|
|
378
|
+
"inputSchema": {
|
|
379
|
+
"type": "object",
|
|
380
|
+
"properties": {
|
|
381
|
+
"questionId": {
|
|
382
|
+
"type": "integer",
|
|
383
|
+
"minimum": 1,
|
|
384
|
+
"description": "哪个搜索问题"
|
|
385
|
+
},
|
|
386
|
+
"knowledgeBaseIds": {
|
|
387
|
+
"type": "array",
|
|
388
|
+
"minItems": 1,
|
|
389
|
+
"items": {
|
|
390
|
+
"type": "integer",
|
|
391
|
+
"minimum": 1
|
|
392
|
+
},
|
|
393
|
+
"description": "要绑定的知识库 id,来自 knowledge.list"
|
|
394
|
+
}
|
|
395
|
+
},
|
|
396
|
+
"required": [
|
|
397
|
+
"questionId",
|
|
398
|
+
"knowledgeBaseIds"
|
|
399
|
+
],
|
|
400
|
+
"additionalProperties": false
|
|
401
|
+
}
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
"name": "questions.unlinkKnowledge",
|
|
405
|
+
"mode": "write",
|
|
406
|
+
"guide": "question",
|
|
407
|
+
"requiresPlan": true,
|
|
408
|
+
"description": "解除搜索问题与知识库的绑定。解绑后 AI 写这个问题的文章时不再检索这些知识库。知识库本身不受影响,还在。不扣费。",
|
|
409
|
+
"inputSchema": {
|
|
410
|
+
"type": "object",
|
|
411
|
+
"properties": {
|
|
412
|
+
"questionId": {
|
|
413
|
+
"type": "integer",
|
|
414
|
+
"minimum": 1,
|
|
415
|
+
"description": "哪个搜索问题"
|
|
416
|
+
},
|
|
417
|
+
"knowledgeBaseIds": {
|
|
418
|
+
"type": "array",
|
|
419
|
+
"minItems": 1,
|
|
420
|
+
"items": {
|
|
421
|
+
"type": "integer",
|
|
422
|
+
"minimum": 1
|
|
423
|
+
},
|
|
424
|
+
"description": "要解绑的知识库 id"
|
|
425
|
+
}
|
|
426
|
+
},
|
|
427
|
+
"required": [
|
|
428
|
+
"questionId",
|
|
429
|
+
"knowledgeBaseIds"
|
|
430
|
+
],
|
|
431
|
+
"additionalProperties": false
|
|
432
|
+
}
|
|
433
|
+
},
|
|
372
434
|
{
|
|
373
435
|
"name": "articles.list",
|
|
374
436
|
"mode": "read",
|
|
@@ -392,7 +454,11 @@
|
|
|
392
454
|
},
|
|
393
455
|
"status": {
|
|
394
456
|
"type": "integer",
|
|
395
|
-
"description": "按文章状态过滤。取值:0=待审核,1=已通过,2
|
|
457
|
+
"description": "按文章状态过滤。取值:0=待审核,1=已通过,2=已拒绝。不传就是全部状态。要找能发出去的文章就传 1。"
|
|
458
|
+
},
|
|
459
|
+
"mustHaveCover": {
|
|
460
|
+
"type": "boolean",
|
|
461
|
+
"description": "只看有封面图的。要挑文章去发布或投稿时,配上 status=1 一起传,出来的就都是发得出去的——不然查到一篇没封面的,建任务时才被拒。"
|
|
396
462
|
},
|
|
397
463
|
"published": {
|
|
398
464
|
"type": "boolean",
|
|
@@ -498,7 +564,7 @@
|
|
|
498
564
|
"mode": "write",
|
|
499
565
|
"guide": "article",
|
|
500
566
|
"requiresPlan": true,
|
|
501
|
-
"description": "
|
|
567
|
+
"description": "改一篇已有文章的标题、正文、封面、标签、摘要。改不了所属 GEO 项目——那个要去网页改;换文件夹用 articles.moveFolder,改状态用 articles.setStatus。不扣费。",
|
|
502
568
|
"inputSchema": {
|
|
503
569
|
"type": "object",
|
|
504
570
|
"properties": {
|
|
@@ -542,6 +608,95 @@
|
|
|
542
608
|
"additionalProperties": false
|
|
543
609
|
}
|
|
544
610
|
},
|
|
611
|
+
{
|
|
612
|
+
"name": "folders.list",
|
|
613
|
+
"mode": "read",
|
|
614
|
+
"guide": "article",
|
|
615
|
+
"requiresPlan": false,
|
|
616
|
+
"description": "列出文章文件夹(扁平,自己按 parentId 拼树)。要把文章放进指定文件夹、或要回答「这篇在哪个文件夹」时,先查这里拿 id —— 不要猜 id,猜错会被服务端拒掉、白跑一次 plan。",
|
|
617
|
+
"inputSchema": {
|
|
618
|
+
"type": "object",
|
|
619
|
+
"properties": {
|
|
620
|
+
"companyId": {
|
|
621
|
+
"type": "integer",
|
|
622
|
+
"minimum": 1,
|
|
623
|
+
"description": "只看某家公司的"
|
|
624
|
+
},
|
|
625
|
+
"productId": {
|
|
626
|
+
"type": "integer",
|
|
627
|
+
"minimum": 1,
|
|
628
|
+
"description": "只看某个 GEO 项目的。建文章前一般都该带上它"
|
|
629
|
+
}
|
|
630
|
+
},
|
|
631
|
+
"additionalProperties": false
|
|
632
|
+
}
|
|
633
|
+
},
|
|
634
|
+
{
|
|
635
|
+
"name": "articles.moveFolder",
|
|
636
|
+
"mode": "write",
|
|
637
|
+
"guide": "article",
|
|
638
|
+
"requiresPlan": true,
|
|
639
|
+
"description": "把一篇或多篇文章移到另一个文件夹。只能移到同一个 GEO 项目下的文件夹,跨项目会被拒。不改文章内容,也不扣费。目标文件夹的 id 来自 folders.list。",
|
|
640
|
+
"inputSchema": {
|
|
641
|
+
"type": "object",
|
|
642
|
+
"properties": {
|
|
643
|
+
"articleIds": {
|
|
644
|
+
"type": "array",
|
|
645
|
+
"minItems": 1,
|
|
646
|
+
"items": {
|
|
647
|
+
"type": "integer",
|
|
648
|
+
"minimum": 1
|
|
649
|
+
},
|
|
650
|
+
"description": "要移动的文章 id,一次可以给多个"
|
|
651
|
+
},
|
|
652
|
+
"folderId": {
|
|
653
|
+
"type": "integer",
|
|
654
|
+
"minimum": 1,
|
|
655
|
+
"description": "移到哪个文件夹,来自 folders.list"
|
|
656
|
+
}
|
|
657
|
+
},
|
|
658
|
+
"required": [
|
|
659
|
+
"articleIds",
|
|
660
|
+
"folderId"
|
|
661
|
+
],
|
|
662
|
+
"additionalProperties": false
|
|
663
|
+
}
|
|
664
|
+
},
|
|
665
|
+
{
|
|
666
|
+
"name": "articles.setStatus",
|
|
667
|
+
"mode": "write",
|
|
668
|
+
"guide": "article",
|
|
669
|
+
"requiresPlan": true,
|
|
670
|
+
"description": "批量改文章的审核状态。不改文章内容,也不扣费。",
|
|
671
|
+
"inputSchema": {
|
|
672
|
+
"type": "object",
|
|
673
|
+
"properties": {
|
|
674
|
+
"articleIds": {
|
|
675
|
+
"type": "array",
|
|
676
|
+
"minItems": 1,
|
|
677
|
+
"items": {
|
|
678
|
+
"type": "integer",
|
|
679
|
+
"minimum": 1
|
|
680
|
+
},
|
|
681
|
+
"description": "要改的文章 id,一次可以给多个"
|
|
682
|
+
},
|
|
683
|
+
"status": {
|
|
684
|
+
"type": "integer",
|
|
685
|
+
"enum": [
|
|
686
|
+
0,
|
|
687
|
+
1,
|
|
688
|
+
2
|
|
689
|
+
],
|
|
690
|
+
"description": "0=待审核,1=已通过,2=已拒绝"
|
|
691
|
+
}
|
|
692
|
+
},
|
|
693
|
+
"required": [
|
|
694
|
+
"articleIds",
|
|
695
|
+
"status"
|
|
696
|
+
],
|
|
697
|
+
"additionalProperties": false
|
|
698
|
+
}
|
|
699
|
+
},
|
|
545
700
|
{
|
|
546
701
|
"name": "knowledge.list",
|
|
547
702
|
"mode": "read",
|
|
@@ -690,6 +845,51 @@
|
|
|
690
845
|
"additionalProperties": false
|
|
691
846
|
}
|
|
692
847
|
},
|
|
848
|
+
{
|
|
849
|
+
"name": "knowledge.addFiles",
|
|
850
|
+
"mode": "write",
|
|
851
|
+
"guide": "knowledge",
|
|
852
|
+
"requiresPlan": true,
|
|
853
|
+
"description": "往一个已有知识库里再加文档。用户说「把这份资料补进 XX 知识库」时用它 —— 不要另建一个库,同一个主题散成好几个库反而让检索更差。按文档计费,执行时才扣。加进去要后台解析一会儿才检索得到。",
|
|
854
|
+
"inputSchema": {
|
|
855
|
+
"type": "object",
|
|
856
|
+
"properties": {
|
|
857
|
+
"knowledgeBaseId": {
|
|
858
|
+
"type": "integer",
|
|
859
|
+
"minimum": 1,
|
|
860
|
+
"description": "加到哪个知识库,来自 knowledge.list"
|
|
861
|
+
},
|
|
862
|
+
"files": {
|
|
863
|
+
"type": "array",
|
|
864
|
+
"description": "至少一个文档。每个文档扣一次费。",
|
|
865
|
+
"items": {
|
|
866
|
+
"type": "object",
|
|
867
|
+
"properties": {
|
|
868
|
+
"name": {
|
|
869
|
+
"type": "string",
|
|
870
|
+
"description": "文档名,展示用",
|
|
871
|
+
"maxLength": 255
|
|
872
|
+
},
|
|
873
|
+
"file": {
|
|
874
|
+
"type": "string",
|
|
875
|
+
"description": "可以是链接,也可以直接是整段正文文本"
|
|
876
|
+
}
|
|
877
|
+
},
|
|
878
|
+
"required": [
|
|
879
|
+
"name",
|
|
880
|
+
"file"
|
|
881
|
+
],
|
|
882
|
+
"additionalProperties": false
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
},
|
|
886
|
+
"required": [
|
|
887
|
+
"knowledgeBaseId",
|
|
888
|
+
"files"
|
|
889
|
+
],
|
|
890
|
+
"additionalProperties": false
|
|
891
|
+
}
|
|
892
|
+
},
|
|
693
893
|
{
|
|
694
894
|
"name": "images.list",
|
|
695
895
|
"mode": "read",
|
|
@@ -2217,6 +2417,1262 @@
|
|
|
2217
2417
|
],
|
|
2218
2418
|
"additionalProperties": false
|
|
2219
2419
|
}
|
|
2420
|
+
},
|
|
2421
|
+
{
|
|
2422
|
+
"name": "scheduledIndexing.answers",
|
|
2423
|
+
"mode": "read",
|
|
2424
|
+
"guide": "scheduled-monitor",
|
|
2425
|
+
"requiresPlan": false,
|
|
2426
|
+
"description": "定时收录:每一次提问的记录,含 AI 回答原文。metrics 只给数字(提及率、平均排名),这里给的是**AI 到底怎么说的**——要回答「豆包最近怎么评价我们」「它推荐了哪几家」就查这里。",
|
|
2427
|
+
"inputSchema": {
|
|
2428
|
+
"type": "object",
|
|
2429
|
+
"properties": {
|
|
2430
|
+
"planId": {
|
|
2431
|
+
"type": "integer",
|
|
2432
|
+
"minimum": 1,
|
|
2433
|
+
"description": "哪个计划"
|
|
2434
|
+
},
|
|
2435
|
+
"platform": {
|
|
2436
|
+
"type": "string",
|
|
2437
|
+
"description": "只看某个 AI 平台。取值来自 indexingPlatforms.list"
|
|
2438
|
+
},
|
|
2439
|
+
"topicId": {
|
|
2440
|
+
"type": "integer",
|
|
2441
|
+
"minimum": 1,
|
|
2442
|
+
"description": "只看某一条搜索问题"
|
|
2443
|
+
},
|
|
2444
|
+
"runId": {
|
|
2445
|
+
"type": "integer",
|
|
2446
|
+
"minimum": 1,
|
|
2447
|
+
"description": "只看某一次执行。不传就是跨所有执行"
|
|
2448
|
+
},
|
|
2449
|
+
"startDate": {
|
|
2450
|
+
"type": "string",
|
|
2451
|
+
"description": "起始日期,ISO 字符串,如 2026-08-01"
|
|
2452
|
+
},
|
|
2453
|
+
"endDate": {
|
|
2454
|
+
"type": "string",
|
|
2455
|
+
"description": "结束日期,ISO 字符串,如 2026-08-31"
|
|
2456
|
+
},
|
|
2457
|
+
"withContent": {
|
|
2458
|
+
"type": "boolean",
|
|
2459
|
+
"description": "要不要 AI 回答的全文。**默认不给**,只给前 200 字预览 —— 一条回答动辄上千字,一页 20 条就能把上下文占满。先看预览,确实要读全文再对那几条单独传 true"
|
|
2460
|
+
},
|
|
2461
|
+
"page": {
|
|
2462
|
+
"type": "integer",
|
|
2463
|
+
"default": 1,
|
|
2464
|
+
"description": "第几页"
|
|
2465
|
+
},
|
|
2466
|
+
"limit": {
|
|
2467
|
+
"type": "integer",
|
|
2468
|
+
"default": 20,
|
|
2469
|
+
"maximum": 100,
|
|
2470
|
+
"description": "每页几条"
|
|
2471
|
+
}
|
|
2472
|
+
},
|
|
2473
|
+
"required": [
|
|
2474
|
+
"planId"
|
|
2475
|
+
],
|
|
2476
|
+
"additionalProperties": false
|
|
2477
|
+
}
|
|
2478
|
+
},
|
|
2479
|
+
{
|
|
2480
|
+
"name": "scheduledIndexing.citations",
|
|
2481
|
+
"mode": "read",
|
|
2482
|
+
"guide": "scheduled-monitor",
|
|
2483
|
+
"requiresPlan": false,
|
|
2484
|
+
"description": "定时收录:AI 答题时引用了哪些来源。channels 按站点聚合、contents 按具体网页聚合,各带次数与占比。这个直接回答「该往哪儿发内容」——AI 常引谁,就该去谁那儿发。",
|
|
2485
|
+
"inputSchema": {
|
|
2486
|
+
"type": "object",
|
|
2487
|
+
"properties": {
|
|
2488
|
+
"planId": {
|
|
2489
|
+
"type": "integer",
|
|
2490
|
+
"minimum": 1,
|
|
2491
|
+
"description": "哪个计划"
|
|
2492
|
+
},
|
|
2493
|
+
"aiPlatform": {
|
|
2494
|
+
"type": "string",
|
|
2495
|
+
"description": "只看某个 AI 平台。取值来自 indexingPlatforms.list"
|
|
2496
|
+
},
|
|
2497
|
+
"runId": {
|
|
2498
|
+
"type": "integer",
|
|
2499
|
+
"minimum": 1,
|
|
2500
|
+
"description": "只看某一次执行。不传就是跨所有执行"
|
|
2501
|
+
},
|
|
2502
|
+
"startDate": {
|
|
2503
|
+
"type": "string",
|
|
2504
|
+
"description": "起始日期,ISO 字符串,如 2026-08-01"
|
|
2505
|
+
},
|
|
2506
|
+
"endDate": {
|
|
2507
|
+
"type": "string",
|
|
2508
|
+
"description": "结束日期,ISO 字符串,如 2026-08-31"
|
|
2509
|
+
},
|
|
2510
|
+
"limit": {
|
|
2511
|
+
"type": "integer",
|
|
2512
|
+
"maximum": 100,
|
|
2513
|
+
"description": "最多给几条"
|
|
2514
|
+
}
|
|
2515
|
+
},
|
|
2516
|
+
"required": [
|
|
2517
|
+
"planId"
|
|
2518
|
+
],
|
|
2519
|
+
"additionalProperties": false
|
|
2520
|
+
}
|
|
2521
|
+
},
|
|
2522
|
+
{
|
|
2523
|
+
"name": "scheduledIndexing.topicStats",
|
|
2524
|
+
"mode": "read",
|
|
2525
|
+
"guide": "scheduled-monitor",
|
|
2526
|
+
"requiresPlan": false,
|
|
2527
|
+
"description": "定时收录:按问题维度的表现——哪几句问出来有效果、哪几句一次都没提到我们。带提及率和被提到时的平均排名(越小越靠前)。用来决定下一轮该换掉哪些问题。",
|
|
2528
|
+
"inputSchema": {
|
|
2529
|
+
"type": "object",
|
|
2530
|
+
"properties": {
|
|
2531
|
+
"planId": {
|
|
2532
|
+
"type": "integer",
|
|
2533
|
+
"minimum": 1,
|
|
2534
|
+
"description": "哪个计划"
|
|
2535
|
+
},
|
|
2536
|
+
"platform": {
|
|
2537
|
+
"type": "string",
|
|
2538
|
+
"description": "只看某个 AI 平台。取值来自 indexingPlatforms.list"
|
|
2539
|
+
},
|
|
2540
|
+
"runId": {
|
|
2541
|
+
"type": "integer",
|
|
2542
|
+
"minimum": 1,
|
|
2543
|
+
"description": "只看某一次执行。不传就是跨所有执行"
|
|
2544
|
+
},
|
|
2545
|
+
"startDate": {
|
|
2546
|
+
"type": "string",
|
|
2547
|
+
"description": "起始日期,ISO 字符串,如 2026-08-01"
|
|
2548
|
+
},
|
|
2549
|
+
"endDate": {
|
|
2550
|
+
"type": "string",
|
|
2551
|
+
"description": "结束日期,ISO 字符串,如 2026-08-31"
|
|
2552
|
+
},
|
|
2553
|
+
"page": {
|
|
2554
|
+
"type": "integer",
|
|
2555
|
+
"default": 1,
|
|
2556
|
+
"description": "第几页"
|
|
2557
|
+
},
|
|
2558
|
+
"limit": {
|
|
2559
|
+
"type": "integer",
|
|
2560
|
+
"default": 20,
|
|
2561
|
+
"maximum": 100,
|
|
2562
|
+
"description": "每页几条"
|
|
2563
|
+
}
|
|
2564
|
+
},
|
|
2565
|
+
"required": [
|
|
2566
|
+
"planId"
|
|
2567
|
+
],
|
|
2568
|
+
"additionalProperties": false
|
|
2569
|
+
}
|
|
2570
|
+
},
|
|
2571
|
+
{
|
|
2572
|
+
"name": "scheduledIndexing.topicPlatformMatrix",
|
|
2573
|
+
"mode": "read",
|
|
2574
|
+
"guide": "scheduled-monitor",
|
|
2575
|
+
"requiresPlan": false,
|
|
2576
|
+
"description": "定时收录:问题 × 平台矩阵,一眼看出哪个平台在哪个问题上提到了我们。每行还带这个问题下 AI 引到的媒体源。",
|
|
2577
|
+
"inputSchema": {
|
|
2578
|
+
"type": "object",
|
|
2579
|
+
"properties": {
|
|
2580
|
+
"planId": {
|
|
2581
|
+
"type": "integer",
|
|
2582
|
+
"minimum": 1,
|
|
2583
|
+
"description": "哪个计划"
|
|
2584
|
+
},
|
|
2585
|
+
"runId": {
|
|
2586
|
+
"type": "integer",
|
|
2587
|
+
"minimum": 1,
|
|
2588
|
+
"description": "只看某一次执行。不传就是跨所有执行"
|
|
2589
|
+
},
|
|
2590
|
+
"startDate": {
|
|
2591
|
+
"type": "string",
|
|
2592
|
+
"description": "起始日期,ISO 字符串,如 2026-08-01"
|
|
2593
|
+
},
|
|
2594
|
+
"endDate": {
|
|
2595
|
+
"type": "string",
|
|
2596
|
+
"description": "结束日期,ISO 字符串,如 2026-08-31"
|
|
2597
|
+
},
|
|
2598
|
+
"page": {
|
|
2599
|
+
"type": "integer",
|
|
2600
|
+
"default": 1,
|
|
2601
|
+
"description": "第几页"
|
|
2602
|
+
},
|
|
2603
|
+
"limit": {
|
|
2604
|
+
"type": "integer",
|
|
2605
|
+
"default": 20,
|
|
2606
|
+
"maximum": 100,
|
|
2607
|
+
"description": "每页几条"
|
|
2608
|
+
}
|
|
2609
|
+
},
|
|
2610
|
+
"required": [
|
|
2611
|
+
"planId"
|
|
2612
|
+
],
|
|
2613
|
+
"additionalProperties": false
|
|
2614
|
+
}
|
|
2615
|
+
},
|
|
2616
|
+
{
|
|
2617
|
+
"name": "scheduledSentiment.answers",
|
|
2618
|
+
"mode": "read",
|
|
2619
|
+
"guide": "scheduled-monitor",
|
|
2620
|
+
"requiresPlan": false,
|
|
2621
|
+
"description": "定时舆情:每一次提问的记录,含 AI 回答原文。要回答「AI 具体是怎么评价我们的」就查这里,metrics 只给褒贬词的汇总。",
|
|
2622
|
+
"inputSchema": {
|
|
2623
|
+
"type": "object",
|
|
2624
|
+
"properties": {
|
|
2625
|
+
"planId": {
|
|
2626
|
+
"type": "integer",
|
|
2627
|
+
"minimum": 1,
|
|
2628
|
+
"description": "哪个计划"
|
|
2629
|
+
},
|
|
2630
|
+
"platform": {
|
|
2631
|
+
"type": "string",
|
|
2632
|
+
"description": "只看某个 AI 平台。取值来自 indexingPlatforms.list"
|
|
2633
|
+
},
|
|
2634
|
+
"question": {
|
|
2635
|
+
"type": "string",
|
|
2636
|
+
"description": "只看某一句问句"
|
|
2637
|
+
},
|
|
2638
|
+
"runId": {
|
|
2639
|
+
"type": "integer",
|
|
2640
|
+
"minimum": 1,
|
|
2641
|
+
"description": "只看某一次执行。不传就是跨所有执行"
|
|
2642
|
+
},
|
|
2643
|
+
"startDate": {
|
|
2644
|
+
"type": "string",
|
|
2645
|
+
"description": "起始日期,ISO 字符串,如 2026-08-01"
|
|
2646
|
+
},
|
|
2647
|
+
"endDate": {
|
|
2648
|
+
"type": "string",
|
|
2649
|
+
"description": "结束日期,ISO 字符串,如 2026-08-31"
|
|
2650
|
+
},
|
|
2651
|
+
"withContent": {
|
|
2652
|
+
"type": "boolean",
|
|
2653
|
+
"description": "要不要 AI 回答的全文。**默认不给**,只给前 200 字预览 —— 一条回答动辄上千字,一页 20 条就能把上下文占满。先看预览,确实要读全文再对那几条单独传 true"
|
|
2654
|
+
},
|
|
2655
|
+
"page": {
|
|
2656
|
+
"type": "integer",
|
|
2657
|
+
"default": 1,
|
|
2658
|
+
"description": "第几页"
|
|
2659
|
+
},
|
|
2660
|
+
"limit": {
|
|
2661
|
+
"type": "integer",
|
|
2662
|
+
"default": 20,
|
|
2663
|
+
"maximum": 100,
|
|
2664
|
+
"description": "每页几条"
|
|
2665
|
+
}
|
|
2666
|
+
},
|
|
2667
|
+
"required": [
|
|
2668
|
+
"planId"
|
|
2669
|
+
],
|
|
2670
|
+
"additionalProperties": false
|
|
2671
|
+
}
|
|
2672
|
+
},
|
|
2673
|
+
{
|
|
2674
|
+
"name": "scheduledSentiment.citations",
|
|
2675
|
+
"mode": "read",
|
|
2676
|
+
"guide": "scheduled-monitor",
|
|
2677
|
+
"requiresPlan": false,
|
|
2678
|
+
"description": "定时舆情:AI 答题时引用了哪些来源。口径与收录那套相同。",
|
|
2679
|
+
"inputSchema": {
|
|
2680
|
+
"type": "object",
|
|
2681
|
+
"properties": {
|
|
2682
|
+
"planId": {
|
|
2683
|
+
"type": "integer",
|
|
2684
|
+
"minimum": 1,
|
|
2685
|
+
"description": "哪个计划"
|
|
2686
|
+
},
|
|
2687
|
+
"aiPlatform": {
|
|
2688
|
+
"type": "string",
|
|
2689
|
+
"description": "只看某个 AI 平台。取值来自 indexingPlatforms.list"
|
|
2690
|
+
},
|
|
2691
|
+
"runId": {
|
|
2692
|
+
"type": "integer",
|
|
2693
|
+
"minimum": 1,
|
|
2694
|
+
"description": "只看某一次执行。不传就是跨所有执行"
|
|
2695
|
+
},
|
|
2696
|
+
"startDate": {
|
|
2697
|
+
"type": "string",
|
|
2698
|
+
"description": "起始日期,ISO 字符串,如 2026-08-01"
|
|
2699
|
+
},
|
|
2700
|
+
"endDate": {
|
|
2701
|
+
"type": "string",
|
|
2702
|
+
"description": "结束日期,ISO 字符串,如 2026-08-31"
|
|
2703
|
+
},
|
|
2704
|
+
"limit": {
|
|
2705
|
+
"type": "integer",
|
|
2706
|
+
"maximum": 100,
|
|
2707
|
+
"description": "最多给几条"
|
|
2708
|
+
}
|
|
2709
|
+
},
|
|
2710
|
+
"required": [
|
|
2711
|
+
"planId"
|
|
2712
|
+
],
|
|
2713
|
+
"additionalProperties": false
|
|
2714
|
+
}
|
|
2715
|
+
},
|
|
2716
|
+
{
|
|
2717
|
+
"name": "scheduledSentiment.topicStats",
|
|
2718
|
+
"mode": "read",
|
|
2719
|
+
"guide": "scheduled-monitor",
|
|
2720
|
+
"requiresPlan": false,
|
|
2721
|
+
"description": "定时舆情:问句 × 平台矩阵。注意它和收录的 topicStats **不是一回事**——舆情这边一行是一句问句加各平台的状态,没有提及率和排名那套数字。",
|
|
2722
|
+
"inputSchema": {
|
|
2723
|
+
"type": "object",
|
|
2724
|
+
"properties": {
|
|
2725
|
+
"planId": {
|
|
2726
|
+
"type": "integer",
|
|
2727
|
+
"minimum": 1,
|
|
2728
|
+
"description": "哪个计划"
|
|
2729
|
+
},
|
|
2730
|
+
"platform": {
|
|
2731
|
+
"type": "string",
|
|
2732
|
+
"description": "只看某个 AI 平台。取值来自 indexingPlatforms.list"
|
|
2733
|
+
},
|
|
2734
|
+
"runId": {
|
|
2735
|
+
"type": "integer",
|
|
2736
|
+
"minimum": 1,
|
|
2737
|
+
"description": "只看某一次执行。不传就是跨所有执行"
|
|
2738
|
+
},
|
|
2739
|
+
"startDate": {
|
|
2740
|
+
"type": "string",
|
|
2741
|
+
"description": "起始日期,ISO 字符串,如 2026-08-01"
|
|
2742
|
+
},
|
|
2743
|
+
"endDate": {
|
|
2744
|
+
"type": "string",
|
|
2745
|
+
"description": "结束日期,ISO 字符串,如 2026-08-31"
|
|
2746
|
+
},
|
|
2747
|
+
"page": {
|
|
2748
|
+
"type": "integer",
|
|
2749
|
+
"default": 1,
|
|
2750
|
+
"description": "第几页"
|
|
2751
|
+
},
|
|
2752
|
+
"limit": {
|
|
2753
|
+
"type": "integer",
|
|
2754
|
+
"default": 20,
|
|
2755
|
+
"maximum": 100,
|
|
2756
|
+
"description": "每页几条"
|
|
2757
|
+
}
|
|
2758
|
+
},
|
|
2759
|
+
"required": [
|
|
2760
|
+
"planId"
|
|
2761
|
+
],
|
|
2762
|
+
"additionalProperties": false
|
|
2763
|
+
}
|
|
2764
|
+
},
|
|
2765
|
+
{
|
|
2766
|
+
"name": "scheduledSentiment.generateQuestions",
|
|
2767
|
+
"mode": "read",
|
|
2768
|
+
"guide": "scheduled-monitor",
|
|
2769
|
+
"requiresPlan": false,
|
|
2770
|
+
"description": "让 AI 想一批舆情问句。**不写库也不扣费**,所以是查询不是写操作——拿到候选之后,挑好的填进 scheduledSentiment.create 的 questions。项目必须先配好品牌词。",
|
|
2771
|
+
"inputSchema": {
|
|
2772
|
+
"type": "object",
|
|
2773
|
+
"properties": {
|
|
2774
|
+
"companyId": {
|
|
2775
|
+
"type": "integer",
|
|
2776
|
+
"minimum": 1,
|
|
2777
|
+
"description": "哪家公司"
|
|
2778
|
+
},
|
|
2779
|
+
"productId": {
|
|
2780
|
+
"type": "integer",
|
|
2781
|
+
"minimum": 1,
|
|
2782
|
+
"description": "哪个 GEO 项目,必须已配置品牌词"
|
|
2783
|
+
},
|
|
2784
|
+
"count": {
|
|
2785
|
+
"type": "integer",
|
|
2786
|
+
"minimum": 1,
|
|
2787
|
+
"maximum": 20,
|
|
2788
|
+
"default": 10,
|
|
2789
|
+
"description": "生成几条,1-20"
|
|
2790
|
+
}
|
|
2791
|
+
},
|
|
2792
|
+
"required": [
|
|
2793
|
+
"companyId",
|
|
2794
|
+
"productId"
|
|
2795
|
+
],
|
|
2796
|
+
"additionalProperties": false
|
|
2797
|
+
}
|
|
2798
|
+
},
|
|
2799
|
+
{
|
|
2800
|
+
"name": "indexing.suggestCompetitors",
|
|
2801
|
+
"mode": "read",
|
|
2802
|
+
"guide": "scheduled-monitor",
|
|
2803
|
+
"requiresPlan": false,
|
|
2804
|
+
"description": "让 AI 推荐这家公司的竞品品牌名。**不写库也不扣费**。拿到之后挑几个填进 scheduledIndexing.create 的 competitorBrands。",
|
|
2805
|
+
"inputSchema": {
|
|
2806
|
+
"type": "object",
|
|
2807
|
+
"properties": {
|
|
2808
|
+
"companyId": {
|
|
2809
|
+
"type": "integer",
|
|
2810
|
+
"minimum": 1,
|
|
2811
|
+
"description": "哪家公司"
|
|
2812
|
+
}
|
|
2813
|
+
},
|
|
2814
|
+
"required": [
|
|
2815
|
+
"companyId"
|
|
2816
|
+
],
|
|
2817
|
+
"additionalProperties": false
|
|
2818
|
+
}
|
|
2819
|
+
},
|
|
2820
|
+
{
|
|
2821
|
+
"name": "articles.generateSummaries",
|
|
2822
|
+
"mode": "write",
|
|
2823
|
+
"guide": "article",
|
|
2824
|
+
"requiresPlan": true,
|
|
2825
|
+
"description": "让 AI 给一篇文章生成几条摘要。**按次扣费**,所以要走确认。标题正文由服务端从库里读,不用你传。生成结果只回给你看,**不会自动写进文章**——用户认可之后再用 articles.update 存进去。",
|
|
2826
|
+
"inputSchema": {
|
|
2827
|
+
"type": "object",
|
|
2828
|
+
"properties": {
|
|
2829
|
+
"articleId": {
|
|
2830
|
+
"type": "integer",
|
|
2831
|
+
"minimum": 1,
|
|
2832
|
+
"description": "给哪篇文章生成。这篇必须已经有正文"
|
|
2833
|
+
}
|
|
2834
|
+
},
|
|
2835
|
+
"required": [
|
|
2836
|
+
"articleId"
|
|
2837
|
+
],
|
|
2838
|
+
"additionalProperties": false
|
|
2839
|
+
}
|
|
2840
|
+
},
|
|
2841
|
+
{
|
|
2842
|
+
"name": "keywordTasks.list",
|
|
2843
|
+
"mode": "read",
|
|
2844
|
+
"guide": "question-task",
|
|
2845
|
+
"requiresPlan": false,
|
|
2846
|
+
"description": "列出关键词拓展任务,看跑到哪一步了。建完任务用它查状态——L1 要跑一会儿才出词。不含拓出来的词,要看结果用 keywordTasks.get。",
|
|
2847
|
+
"inputSchema": {
|
|
2848
|
+
"type": "object",
|
|
2849
|
+
"properties": {
|
|
2850
|
+
"companyId": {
|
|
2851
|
+
"type": "integer",
|
|
2852
|
+
"description": "只看某家公司;不传就是全部授权公司"
|
|
2853
|
+
},
|
|
2854
|
+
"productId": {
|
|
2855
|
+
"type": "integer",
|
|
2856
|
+
"description": "只看某个 GEO 项目"
|
|
2857
|
+
},
|
|
2858
|
+
"id": {
|
|
2859
|
+
"type": "integer",
|
|
2860
|
+
"description": "只看某一个任务"
|
|
2861
|
+
},
|
|
2862
|
+
"name": {
|
|
2863
|
+
"type": "string",
|
|
2864
|
+
"description": "按任务名前缀匹配"
|
|
2865
|
+
},
|
|
2866
|
+
"keyword": {
|
|
2867
|
+
"type": "string",
|
|
2868
|
+
"description": "按拓展起点词前缀匹配"
|
|
2869
|
+
},
|
|
2870
|
+
"stageStatus": {
|
|
2871
|
+
"type": "integer",
|
|
2872
|
+
"description": "按当前阶段的状态过滤。0=待处理,1=生成中,2=已完成,3=失败",
|
|
2873
|
+
"enum": [
|
|
2874
|
+
0,
|
|
2875
|
+
1,
|
|
2876
|
+
2,
|
|
2877
|
+
3
|
|
2878
|
+
]
|
|
2879
|
+
},
|
|
2880
|
+
"page": {
|
|
2881
|
+
"type": "integer",
|
|
2882
|
+
"default": 1
|
|
2883
|
+
},
|
|
2884
|
+
"limit": {
|
|
2885
|
+
"type": "integer",
|
|
2886
|
+
"default": 20,
|
|
2887
|
+
"maximum": 100
|
|
2888
|
+
}
|
|
2889
|
+
},
|
|
2890
|
+
"additionalProperties": false
|
|
2891
|
+
}
|
|
2892
|
+
},
|
|
2893
|
+
{
|
|
2894
|
+
"name": "keywordTasks.get",
|
|
2895
|
+
"mode": "read",
|
|
2896
|
+
"guide": "question-task",
|
|
2897
|
+
"requiresPlan": false,
|
|
2898
|
+
"description": "读一个关键词拓展任务,含各阶段拓出来的词。要做 keywordTasks.expandL2 必须先读这一条——挑词传的就是 result[0].output 里的字符串。",
|
|
2899
|
+
"inputSchema": {
|
|
2900
|
+
"type": "object",
|
|
2901
|
+
"properties": {
|
|
2902
|
+
"taskId": {
|
|
2903
|
+
"type": "integer",
|
|
2904
|
+
"minimum": 1
|
|
2905
|
+
}
|
|
2906
|
+
},
|
|
2907
|
+
"required": [
|
|
2908
|
+
"taskId"
|
|
2909
|
+
],
|
|
2910
|
+
"additionalProperties": false
|
|
2911
|
+
}
|
|
2912
|
+
},
|
|
2913
|
+
{
|
|
2914
|
+
"name": "keywordTasks.create",
|
|
2915
|
+
"mode": "write",
|
|
2916
|
+
"guide": "question-task",
|
|
2917
|
+
"requiresPlan": true,
|
|
2918
|
+
"description": "新建关键词多阶段拓展任务(L1)。和 questionTasks 不是一回事:那个一次性生成一批搜索问题,这个是分阶段的关键词树——先出 L1 一批词,用户挑几个,再拓 L2。按任务扣一次费,后面的 L2 不再扣。执行是异步的。",
|
|
2919
|
+
"inputSchema": {
|
|
2920
|
+
"type": "object",
|
|
2921
|
+
"properties": {
|
|
2922
|
+
"name": {
|
|
2923
|
+
"type": "string",
|
|
2924
|
+
"maxLength": 100,
|
|
2925
|
+
"description": "任务名"
|
|
2926
|
+
},
|
|
2927
|
+
"productId": {
|
|
2928
|
+
"type": "integer",
|
|
2929
|
+
"minimum": 1,
|
|
2930
|
+
"description": "归哪个 GEO 项目"
|
|
2931
|
+
},
|
|
2932
|
+
"keyword": {
|
|
2933
|
+
"type": "string",
|
|
2934
|
+
"description": "从哪个词拓开"
|
|
2935
|
+
},
|
|
2936
|
+
"count": {
|
|
2937
|
+
"type": "integer",
|
|
2938
|
+
"minimum": 1,
|
|
2939
|
+
"maximum": 50,
|
|
2940
|
+
"description": "要拓多少个词,1-50"
|
|
2941
|
+
},
|
|
2942
|
+
"userPrompt": {
|
|
2943
|
+
"type": "string",
|
|
2944
|
+
"maxLength": 500,
|
|
2945
|
+
"description": "给 AI 的额外要求,指导输出方向"
|
|
2946
|
+
}
|
|
2947
|
+
},
|
|
2948
|
+
"required": [
|
|
2949
|
+
"name",
|
|
2950
|
+
"productId",
|
|
2951
|
+
"keyword",
|
|
2952
|
+
"count"
|
|
2953
|
+
],
|
|
2954
|
+
"additionalProperties": false
|
|
2955
|
+
}
|
|
2956
|
+
},
|
|
2957
|
+
{
|
|
2958
|
+
"name": "keywordTasks.updateL1",
|
|
2959
|
+
"mode": "write",
|
|
2960
|
+
"guide": "question-task",
|
|
2961
|
+
"requiresPlan": true,
|
|
2962
|
+
"description": "改写关键词拓展任务的 L1 结果——AI 出的词不满意时,直接把整批换成你要的。不扣费。改完再做 L2 拓展。",
|
|
2963
|
+
"inputSchema": {
|
|
2964
|
+
"type": "object",
|
|
2965
|
+
"properties": {
|
|
2966
|
+
"taskId": {
|
|
2967
|
+
"type": "integer",
|
|
2968
|
+
"minimum": 1,
|
|
2969
|
+
"description": "哪个任务"
|
|
2970
|
+
},
|
|
2971
|
+
"output": {
|
|
2972
|
+
"type": "array",
|
|
2973
|
+
"minItems": 1,
|
|
2974
|
+
"items": {
|
|
2975
|
+
"type": "string"
|
|
2976
|
+
},
|
|
2977
|
+
"description": "新的 L1 词表,整体覆盖"
|
|
2978
|
+
}
|
|
2979
|
+
},
|
|
2980
|
+
"required": [
|
|
2981
|
+
"taskId",
|
|
2982
|
+
"output"
|
|
2983
|
+
],
|
|
2984
|
+
"additionalProperties": false
|
|
2985
|
+
}
|
|
2986
|
+
},
|
|
2987
|
+
{
|
|
2988
|
+
"name": "keywordTasks.expandL2",
|
|
2989
|
+
"mode": "write",
|
|
2990
|
+
"guide": "question-task",
|
|
2991
|
+
"requiresPlan": true,
|
|
2992
|
+
"description": "从 L1 结果里挑几个词,拓展到 L2。不扣费,但**只能做一次**——重复触发会覆盖已经跑出来的 L3 结果,服务端会直接拒绝。挑词之前先跟用户确认清楚。",
|
|
2993
|
+
"inputSchema": {
|
|
2994
|
+
"type": "object",
|
|
2995
|
+
"properties": {
|
|
2996
|
+
"taskId": {
|
|
2997
|
+
"type": "integer",
|
|
2998
|
+
"minimum": 1,
|
|
2999
|
+
"description": "哪个任务"
|
|
3000
|
+
},
|
|
3001
|
+
"selected": {
|
|
3002
|
+
"type": "array",
|
|
3003
|
+
"minItems": 1,
|
|
3004
|
+
"items": {
|
|
3005
|
+
"type": "string"
|
|
3006
|
+
},
|
|
3007
|
+
"description": "从 L1 结果里挑中的词"
|
|
3008
|
+
},
|
|
3009
|
+
"count": {
|
|
3010
|
+
"type": "integer",
|
|
3011
|
+
"minimum": 1,
|
|
3012
|
+
"maximum": 50,
|
|
3013
|
+
"description": "每个词拓多少,1-50"
|
|
3014
|
+
},
|
|
3015
|
+
"userPrompt": {
|
|
3016
|
+
"type": "string",
|
|
3017
|
+
"maxLength": 500,
|
|
3018
|
+
"description": "给 AI 的额外要求,指导输出方向"
|
|
3019
|
+
}
|
|
3020
|
+
},
|
|
3021
|
+
"required": [
|
|
3022
|
+
"taskId",
|
|
3023
|
+
"selected",
|
|
3024
|
+
"count"
|
|
3025
|
+
],
|
|
3026
|
+
"additionalProperties": false
|
|
3027
|
+
}
|
|
3028
|
+
},
|
|
3029
|
+
{
|
|
3030
|
+
"name": "tags.list",
|
|
3031
|
+
"mode": "read",
|
|
3032
|
+
"guide": "article",
|
|
3033
|
+
"requiresPlan": false,
|
|
3034
|
+
"description": "某个域下已经用过的标签清单。要按标签筛选、或者给新内容打标签时先查这里——用已有的标签,别每次造新词,不然标签体系很快就散了。",
|
|
3035
|
+
"inputSchema": {
|
|
3036
|
+
"type": "object",
|
|
3037
|
+
"properties": {
|
|
3038
|
+
"domain": {
|
|
3039
|
+
"type": "string",
|
|
3040
|
+
"enum": [
|
|
3041
|
+
"article",
|
|
3042
|
+
"knowledge",
|
|
3043
|
+
"image",
|
|
3044
|
+
"video",
|
|
3045
|
+
"prompt",
|
|
3046
|
+
"question"
|
|
3047
|
+
],
|
|
3048
|
+
"description": "查哪个域的标签:article=文章,knowledge=知识库,image=图片,video=视频,prompt=提示词,question=搜索问题"
|
|
3049
|
+
},
|
|
3050
|
+
"companyId": {
|
|
3051
|
+
"type": "integer",
|
|
3052
|
+
"minimum": 1,
|
|
3053
|
+
"description": "只看某家公司的"
|
|
3054
|
+
},
|
|
3055
|
+
"productId": {
|
|
3056
|
+
"type": "integer",
|
|
3057
|
+
"minimum": 1,
|
|
3058
|
+
"description": "只看某个 GEO 项目的"
|
|
3059
|
+
}
|
|
3060
|
+
},
|
|
3061
|
+
"required": [
|
|
3062
|
+
"domain"
|
|
3063
|
+
],
|
|
3064
|
+
"additionalProperties": false
|
|
3065
|
+
}
|
|
3066
|
+
},
|
|
3067
|
+
{
|
|
3068
|
+
"name": "prompts.create",
|
|
3069
|
+
"mode": "write",
|
|
3070
|
+
"guide": "article",
|
|
3071
|
+
"requiresPlan": true,
|
|
3072
|
+
"description": "新建提示词(写作模板)。只能建「文章正文」和「文章标题」两类——和 prompts.list 同口径,建了别的类型你自己也查不到。建出来不扣费,也不会自动用到任何文章上。",
|
|
3073
|
+
"inputSchema": {
|
|
3074
|
+
"type": "object",
|
|
3075
|
+
"properties": {
|
|
3076
|
+
"name": {
|
|
3077
|
+
"type": "string",
|
|
3078
|
+
"maxLength": 100,
|
|
3079
|
+
"description": "提示词名称"
|
|
3080
|
+
},
|
|
3081
|
+
"companyId": {
|
|
3082
|
+
"type": "integer",
|
|
3083
|
+
"minimum": 1,
|
|
3084
|
+
"description": "归哪家公司"
|
|
3085
|
+
},
|
|
3086
|
+
"productId": {
|
|
3087
|
+
"type": "integer",
|
|
3088
|
+
"minimum": 1,
|
|
3089
|
+
"description": "可选:绑定到某个 GEO 项目下"
|
|
3090
|
+
},
|
|
3091
|
+
"content": {
|
|
3092
|
+
"type": "string",
|
|
3093
|
+
"maxLength": 20000,
|
|
3094
|
+
"description": "提示词正文"
|
|
3095
|
+
},
|
|
3096
|
+
"negativeContent": {
|
|
3097
|
+
"type": "string",
|
|
3098
|
+
"description": "反向提示词:不希望 AI 怎么写"
|
|
3099
|
+
},
|
|
3100
|
+
"tags": {
|
|
3101
|
+
"type": "array",
|
|
3102
|
+
"items": {
|
|
3103
|
+
"type": "string"
|
|
3104
|
+
},
|
|
3105
|
+
"description": "标签,取值先查 tags.list"
|
|
3106
|
+
},
|
|
3107
|
+
"type": {
|
|
3108
|
+
"type": "integer",
|
|
3109
|
+
"enum": [
|
|
3110
|
+
1,
|
|
3111
|
+
2
|
|
3112
|
+
],
|
|
3113
|
+
"description": "1=文章正文,2=文章标题"
|
|
3114
|
+
}
|
|
3115
|
+
},
|
|
3116
|
+
"required": [
|
|
3117
|
+
"name",
|
|
3118
|
+
"companyId",
|
|
3119
|
+
"content",
|
|
3120
|
+
"type"
|
|
3121
|
+
],
|
|
3122
|
+
"additionalProperties": false
|
|
3123
|
+
}
|
|
3124
|
+
},
|
|
3125
|
+
{
|
|
3126
|
+
"name": "prompts.update",
|
|
3127
|
+
"mode": "write",
|
|
3128
|
+
"guide": "article",
|
|
3129
|
+
"requiresPlan": true,
|
|
3130
|
+
"description": "改一条提示词,只传要改的字段。改不了所属公司和项目。**系统内置的公共模板改不了**——要按自己的写法调整,用 prompts.create 复制一份新建。不扣费。",
|
|
3131
|
+
"inputSchema": {
|
|
3132
|
+
"type": "object",
|
|
3133
|
+
"properties": {
|
|
3134
|
+
"promptId": {
|
|
3135
|
+
"type": "integer",
|
|
3136
|
+
"minimum": 1,
|
|
3137
|
+
"description": "改哪条"
|
|
3138
|
+
},
|
|
3139
|
+
"name": {
|
|
3140
|
+
"type": "string",
|
|
3141
|
+
"maxLength": 100
|
|
3142
|
+
},
|
|
3143
|
+
"content": {
|
|
3144
|
+
"type": "string",
|
|
3145
|
+
"maxLength": 20000
|
|
3146
|
+
},
|
|
3147
|
+
"negativeContent": {
|
|
3148
|
+
"type": "string"
|
|
3149
|
+
},
|
|
3150
|
+
"tags": {
|
|
3151
|
+
"type": "array",
|
|
3152
|
+
"items": {
|
|
3153
|
+
"type": "string"
|
|
3154
|
+
}
|
|
3155
|
+
},
|
|
3156
|
+
"type": {
|
|
3157
|
+
"type": "integer",
|
|
3158
|
+
"enum": [
|
|
3159
|
+
1,
|
|
3160
|
+
2
|
|
3161
|
+
],
|
|
3162
|
+
"description": "1=文章正文,2=文章标题"
|
|
3163
|
+
}
|
|
3164
|
+
},
|
|
3165
|
+
"required": [
|
|
3166
|
+
"promptId"
|
|
3167
|
+
],
|
|
3168
|
+
"additionalProperties": false
|
|
3169
|
+
}
|
|
3170
|
+
},
|
|
3171
|
+
{
|
|
3172
|
+
"name": "articles.copy",
|
|
3173
|
+
"mode": "write",
|
|
3174
|
+
"guide": "article",
|
|
3175
|
+
"requiresPlan": true,
|
|
3176
|
+
"description": "复制一篇文章。复制出来的是一篇独立的新文章,**按新建文章扣一次费**,执行时才扣。改副本不影响原文。想「照着这篇再写一篇」时用它。",
|
|
3177
|
+
"inputSchema": {
|
|
3178
|
+
"type": "object",
|
|
3179
|
+
"properties": {
|
|
3180
|
+
"articleId": {
|
|
3181
|
+
"type": "integer",
|
|
3182
|
+
"minimum": 1,
|
|
3183
|
+
"description": "复制哪一篇"
|
|
3184
|
+
}
|
|
3185
|
+
},
|
|
3186
|
+
"required": [
|
|
3187
|
+
"articleId"
|
|
3188
|
+
],
|
|
3189
|
+
"additionalProperties": false
|
|
3190
|
+
}
|
|
3191
|
+
},
|
|
3192
|
+
{
|
|
3193
|
+
"name": "questions.delete",
|
|
3194
|
+
"mode": "write",
|
|
3195
|
+
"guide": "question",
|
|
3196
|
+
"requiresPlan": true,
|
|
3197
|
+
"description": "删除搜索问题。已经跑出来的收录记录不受影响,只是这个问题以后不再被问。",
|
|
3198
|
+
"inputSchema": {
|
|
3199
|
+
"type": "object",
|
|
3200
|
+
"properties": {
|
|
3201
|
+
"id": {
|
|
3202
|
+
"type": "integer",
|
|
3203
|
+
"minimum": 1,
|
|
3204
|
+
"description": "要删哪一条"
|
|
3205
|
+
}
|
|
3206
|
+
},
|
|
3207
|
+
"required": [
|
|
3208
|
+
"id"
|
|
3209
|
+
],
|
|
3210
|
+
"additionalProperties": false
|
|
3211
|
+
}
|
|
3212
|
+
},
|
|
3213
|
+
{
|
|
3214
|
+
"name": "articles.delete",
|
|
3215
|
+
"mode": "write",
|
|
3216
|
+
"guide": "article",
|
|
3217
|
+
"requiresPlan": true,
|
|
3218
|
+
"description": "删除文章。删了就没了,**不可恢复**。已经发布出去的内容不受影响。",
|
|
3219
|
+
"inputSchema": {
|
|
3220
|
+
"type": "object",
|
|
3221
|
+
"properties": {
|
|
3222
|
+
"id": {
|
|
3223
|
+
"type": "integer",
|
|
3224
|
+
"minimum": 1,
|
|
3225
|
+
"description": "要删哪一条"
|
|
3226
|
+
}
|
|
3227
|
+
},
|
|
3228
|
+
"required": [
|
|
3229
|
+
"id"
|
|
3230
|
+
],
|
|
3231
|
+
"additionalProperties": false
|
|
3232
|
+
}
|
|
3233
|
+
},
|
|
3234
|
+
{
|
|
3235
|
+
"name": "knowledge.delete",
|
|
3236
|
+
"mode": "write",
|
|
3237
|
+
"guide": "knowledge",
|
|
3238
|
+
"requiresPlan": true,
|
|
3239
|
+
"description": "删除知识库。库里文档一起删掉,**不可恢复**。绑定了这个库的搜索问题会失去这份资料。",
|
|
3240
|
+
"inputSchema": {
|
|
3241
|
+
"type": "object",
|
|
3242
|
+
"properties": {
|
|
3243
|
+
"id": {
|
|
3244
|
+
"type": "integer",
|
|
3245
|
+
"minimum": 1,
|
|
3246
|
+
"description": "要删哪一条"
|
|
3247
|
+
}
|
|
3248
|
+
},
|
|
3249
|
+
"required": [
|
|
3250
|
+
"id"
|
|
3251
|
+
],
|
|
3252
|
+
"additionalProperties": false
|
|
3253
|
+
}
|
|
3254
|
+
},
|
|
3255
|
+
{
|
|
3256
|
+
"name": "prompts.delete",
|
|
3257
|
+
"mode": "write",
|
|
3258
|
+
"guide": "article",
|
|
3259
|
+
"requiresPlan": true,
|
|
3260
|
+
"description": "删除提示词。已经用它生成过的文章不受影响。系统内置的公共模板删不了。",
|
|
3261
|
+
"inputSchema": {
|
|
3262
|
+
"type": "object",
|
|
3263
|
+
"properties": {
|
|
3264
|
+
"id": {
|
|
3265
|
+
"type": "integer",
|
|
3266
|
+
"minimum": 1,
|
|
3267
|
+
"description": "要删哪一条"
|
|
3268
|
+
}
|
|
3269
|
+
},
|
|
3270
|
+
"required": [
|
|
3271
|
+
"id"
|
|
3272
|
+
],
|
|
3273
|
+
"additionalProperties": false
|
|
3274
|
+
}
|
|
3275
|
+
},
|
|
3276
|
+
{
|
|
3277
|
+
"name": "publicationPlatforms.list",
|
|
3278
|
+
"mode": "read",
|
|
3279
|
+
"guide": "publication",
|
|
3280
|
+
"requiresPlan": false,
|
|
3281
|
+
"description": "当前能用的自媒体发布平台。文章平台和视频平台是两批,建发布任务前先按 contentType 取对应的那批——拿文章平台去发视频会被拒。",
|
|
3282
|
+
"inputSchema": {
|
|
3283
|
+
"type": "object",
|
|
3284
|
+
"properties": {
|
|
3285
|
+
"contentType": {
|
|
3286
|
+
"type": "string",
|
|
3287
|
+
"enum": ["article", "video"],
|
|
3288
|
+
"description": "只看发文章的还是只看发视频的。不传就是全部"
|
|
3289
|
+
}
|
|
3290
|
+
},
|
|
3291
|
+
"additionalProperties": false
|
|
3292
|
+
}
|
|
3293
|
+
},
|
|
3294
|
+
{
|
|
3295
|
+
"name": "publicationAccounts.list",
|
|
3296
|
+
"mode": "read",
|
|
3297
|
+
"guide": "publication",
|
|
3298
|
+
"requiresPlan": false,
|
|
3299
|
+
"description": "已经绑定到公司的发布账号。平台名猜得出来,账号 id 猜不出来——要发内容必须先从这里拿到 id。**只挑 usable=true 的号**:登录过期或已停用的号建任务时会被拒(statusLabel 会写明是哪种),在这一步避开比建完被拒再回头省事。",
|
|
3300
|
+
"inputSchema": {
|
|
3301
|
+
"type": "object",
|
|
3302
|
+
"properties": {
|
|
3303
|
+
"companyId": { "type": "integer", "minimum": 1, "description": "只看某家公司的" },
|
|
3304
|
+
"platform": { "type": "string", "description": "只看某个平台的。取值来自 publicationPlatforms.list" },
|
|
3305
|
+
"page": { "type": "integer", "minimum": 1 },
|
|
3306
|
+
"limit": { "type": "integer", "minimum": 1, "maximum": 100 }
|
|
3307
|
+
},
|
|
3308
|
+
"additionalProperties": false
|
|
3309
|
+
}
|
|
3310
|
+
},
|
|
3311
|
+
{
|
|
3312
|
+
"name": "publicationTasks.list",
|
|
3313
|
+
"mode": "read",
|
|
3314
|
+
"guide": "publication",
|
|
3315
|
+
"requiresPlan": false,
|
|
3316
|
+
"description": "自媒体发布任务列表。一个任务下面挂着若干条「某篇内容发到某个平台某个账号」的记录,这里只给任务级汇总,要看每条的下场用 publicationRecords.list。",
|
|
3317
|
+
"inputSchema": {
|
|
3318
|
+
"type": "object",
|
|
3319
|
+
"properties": {
|
|
3320
|
+
"companyId": { "type": "integer", "minimum": 1, "description": "只看某家公司的" },
|
|
3321
|
+
"productId": { "type": "integer", "minimum": 1, "description": "只看某个 GEO 项目的" },
|
|
3322
|
+
"name": { "type": "string", "description": "按任务名模糊搜" },
|
|
3323
|
+
"page": { "type": "integer", "minimum": 1 },
|
|
3324
|
+
"limit": { "type": "integer", "minimum": 1, "maximum": 100 }
|
|
3325
|
+
},
|
|
3326
|
+
"additionalProperties": false
|
|
3327
|
+
}
|
|
3328
|
+
},
|
|
3329
|
+
{
|
|
3330
|
+
"name": "publicationRecords.list",
|
|
3331
|
+
"mode": "read",
|
|
3332
|
+
"guide": "publication",
|
|
3333
|
+
"requiresPlan": false,
|
|
3334
|
+
"description": "发布记录:每条内容在每个平台的实际下场。这是「发出去了没有、发到哪个链接、失败为什么」的唯一出处——用户问「小红书那篇发了吗」就查这里。status 同时给数值和 statusLabel,念给用户用后者。",
|
|
3335
|
+
"inputSchema": {
|
|
3336
|
+
"type": "object",
|
|
3337
|
+
"properties": {
|
|
3338
|
+
"taskId": { "type": "integer", "minimum": 1, "description": "只看某个发布任务下的" },
|
|
3339
|
+
"articleId": { "type": "integer", "minimum": 1, "description": "只看某篇文章的" },
|
|
3340
|
+
"platform": { "type": "string", "description": "只看某个平台的" },
|
|
3341
|
+
"status": { "type": "integer", "description": "0待发布 1发布中 2已发布 3失败 4已暂停 5已取消 6人工 7被拒" },
|
|
3342
|
+
"companyId": { "type": "integer", "minimum": 1 },
|
|
3343
|
+
"productId": { "type": "integer", "minimum": 1 },
|
|
3344
|
+
"page": { "type": "integer", "minimum": 1 },
|
|
3345
|
+
"limit": { "type": "integer", "minimum": 1, "maximum": 100 }
|
|
3346
|
+
},
|
|
3347
|
+
"additionalProperties": false
|
|
3348
|
+
}
|
|
3349
|
+
},
|
|
3350
|
+
{
|
|
3351
|
+
"name": "mediaPlatforms.list",
|
|
3352
|
+
"mode": "read",
|
|
3353
|
+
"guide": "publication",
|
|
3354
|
+
"requiresPlan": false,
|
|
3355
|
+
"description": "可投稿的媒体清单,含分类、地区、价格和上下架状态。媒体投稿和自媒体发布是两回事:这个是花钱请媒体发,那个是用自己的账号发。",
|
|
3356
|
+
"inputSchema": {
|
|
3357
|
+
"type": "object",
|
|
3358
|
+
"properties": {
|
|
3359
|
+
"mediaName": { "type": "string", "description": "按媒体名搜" },
|
|
3360
|
+
"page": { "type": "integer", "minimum": 1 },
|
|
3361
|
+
"limit": { "type": "integer", "minimum": 1, "maximum": 100 }
|
|
3362
|
+
},
|
|
3363
|
+
"additionalProperties": false
|
|
3364
|
+
}
|
|
3365
|
+
},
|
|
3366
|
+
{
|
|
3367
|
+
"name": "mediaPlatforms.get",
|
|
3368
|
+
"mode": "read",
|
|
3369
|
+
"guide": "publication",
|
|
3370
|
+
"requiresPlan": false,
|
|
3371
|
+
"description": "单个媒体的实时状态与当前价格。**报价给用户前必须查这条**——列表是分页快照,遇上刚调过价就会和实际扣费对不上。",
|
|
3372
|
+
"inputSchema": {
|
|
3373
|
+
"type": "object",
|
|
3374
|
+
"properties": {
|
|
3375
|
+
"mediaId": { "type": "integer", "minimum": 1, "description": "哪个媒体。id 来自 mediaPlatforms.list" }
|
|
3376
|
+
},
|
|
3377
|
+
"required": ["mediaId"],
|
|
3378
|
+
"additionalProperties": false
|
|
3379
|
+
}
|
|
3380
|
+
},
|
|
3381
|
+
{
|
|
3382
|
+
"name": "mediaPublications.list",
|
|
3383
|
+
"mode": "read",
|
|
3384
|
+
"guide": "publication",
|
|
3385
|
+
"requiresPlan": false,
|
|
3386
|
+
"description": "媒体投稿记录:订单状态、失败原因、发布链接、退款状态。投稿是异步的,提交完要过一阵才出结果,用这条查进展。**status 和 refundStatus 是两件事**——status 说稿子发出去没有,refundStatus 说钱退没退;被拒稿的记录要把两个都念给用户。",
|
|
3387
|
+
"inputSchema": {
|
|
3388
|
+
"type": "object",
|
|
3389
|
+
"properties": {
|
|
3390
|
+
"articleId": { "type": "integer", "minimum": 1, "description": "只看某篇文章投出去的" },
|
|
3391
|
+
"mediaId": { "type": "integer", "minimum": 1, "description": "只看投到某个媒体的" },
|
|
3392
|
+
"companyId": { "type": "integer", "minimum": 1 },
|
|
3393
|
+
"page": { "type": "integer", "minimum": 1 },
|
|
3394
|
+
"limit": { "type": "integer", "minimum": 1, "maximum": 100 }
|
|
3395
|
+
},
|
|
3396
|
+
"additionalProperties": false
|
|
3397
|
+
}
|
|
3398
|
+
},
|
|
3399
|
+
{
|
|
3400
|
+
"name": "mediaPublications.summary",
|
|
3401
|
+
"mode": "read",
|
|
3402
|
+
"guide": "publication",
|
|
3403
|
+
"requiresPlan": false,
|
|
3404
|
+
"description": "投稿记录的状态汇总。要回答「投出去的都怎么样了」用这条,别去翻列表自己数——投稿动辄上百条,翻列表会把上下文占满。念结果用 items 里的 statusLabel(如「已拒稿 × 15」),counts 是给过滤用的原始数值,别把里面的数字念给用户。",
|
|
3405
|
+
"inputSchema": {
|
|
3406
|
+
"type": "object",
|
|
3407
|
+
"properties": {
|
|
3408
|
+
"articleId": { "type": "integer", "minimum": 1 },
|
|
3409
|
+
"mediaId": { "type": "integer", "minimum": 1 },
|
|
3410
|
+
"companyId": { "type": "integer", "minimum": 1 }
|
|
3411
|
+
},
|
|
3412
|
+
"additionalProperties": false
|
|
3413
|
+
}
|
|
3414
|
+
},
|
|
3415
|
+
{
|
|
3416
|
+
"name": "articleTasks.reuseConfig",
|
|
3417
|
+
"mode": "read",
|
|
3418
|
+
"guide": "article-task",
|
|
3419
|
+
"requiresPlan": false,
|
|
3420
|
+
"description": "把一个已有文章任务的参数读回来,供「照着上次再来一批」用。**只读参数,不建任务、不扣费**。拿到后要先跟用户确认(可以改问题、改篇数、换模型),再走 articleTasks.create。返回里 warnings 说明哪些资源已失效,missingRequiredFields 列出必须重新指定的字段——这两项非空时不要直接拿去 create。",
|
|
3421
|
+
"inputSchema": {
|
|
3422
|
+
"type": "object",
|
|
3423
|
+
"properties": {
|
|
3424
|
+
"taskId": { "type": "integer", "minimum": 1, "description": "照着哪个任务。id 来自 articleTasks.list" }
|
|
3425
|
+
},
|
|
3426
|
+
"required": ["taskId"],
|
|
3427
|
+
"additionalProperties": false
|
|
3428
|
+
}
|
|
3429
|
+
},
|
|
3430
|
+
{
|
|
3431
|
+
"name": "articleTasks.delete",
|
|
3432
|
+
"mode": "write",
|
|
3433
|
+
"guide": "article-task",
|
|
3434
|
+
"requiresPlan": true,
|
|
3435
|
+
"description": "删除文章任务。⚠️ **会连带删掉这个任务生成的全部文章,不可恢复**(数据库级联,不是可选项)。plan 摘要里会给出确切篇数,那个数必须念给用户听——他多半以为只是清掉一条任务记录。还在跑的任务删不了。",
|
|
3436
|
+
"inputSchema": {
|
|
3437
|
+
"type": "object",
|
|
3438
|
+
"properties": {
|
|
3439
|
+
"taskId": { "type": "integer", "minimum": 1, "description": "要删哪个任务" }
|
|
3440
|
+
},
|
|
3441
|
+
"required": ["taskId"],
|
|
3442
|
+
"additionalProperties": false
|
|
3443
|
+
}
|
|
3444
|
+
},
|
|
3445
|
+
{
|
|
3446
|
+
"name": "folders.create",
|
|
3447
|
+
"mode": "write",
|
|
3448
|
+
"guide": "article",
|
|
3449
|
+
"requiresPlan": true,
|
|
3450
|
+
"description": "新建文章文件夹。建完是空的,文章要另外用 articles.moveFolder 移进来。不扣费。",
|
|
3451
|
+
"inputSchema": {
|
|
3452
|
+
"type": "object",
|
|
3453
|
+
"properties": {
|
|
3454
|
+
"productId": { "type": "integer", "minimum": 1, "description": "建在哪个 GEO 项目下" },
|
|
3455
|
+
"name": { "type": "string", "minLength": 1, "description": "文件夹名" },
|
|
3456
|
+
"parentId": { "type": "integer", "minimum": 1, "description": "建成谁的子文件夹。不传就是顶层。id 来自 folders.list" }
|
|
3457
|
+
},
|
|
3458
|
+
"required": ["productId", "name"],
|
|
3459
|
+
"additionalProperties": false
|
|
3460
|
+
}
|
|
3461
|
+
},
|
|
3462
|
+
{
|
|
3463
|
+
"name": "folders.update",
|
|
3464
|
+
"mode": "write",
|
|
3465
|
+
"guide": "article",
|
|
3466
|
+
"requiresPlan": true,
|
|
3467
|
+
"description": "重命名文件夹或把它移到别处。parentId 传 null 表示移到顶层。默认文件夹改不了。只动文件夹本身,里面的文章不受影响。不扣费。",
|
|
3468
|
+
"inputSchema": {
|
|
3469
|
+
"type": "object",
|
|
3470
|
+
"properties": {
|
|
3471
|
+
"folderId": { "type": "integer", "minimum": 1, "description": "改哪个" },
|
|
3472
|
+
"name": { "type": "string", "minLength": 1, "description": "新名字" },
|
|
3473
|
+
"parentId": { "type": ["integer", "null"], "minimum": 1, "description": "移到谁下面。传 null = 移到顶层" }
|
|
3474
|
+
},
|
|
3475
|
+
"required": ["folderId"],
|
|
3476
|
+
"additionalProperties": false
|
|
3477
|
+
}
|
|
3478
|
+
},
|
|
3479
|
+
{
|
|
3480
|
+
"name": "folders.delete",
|
|
3481
|
+
"mode": "write",
|
|
3482
|
+
"guide": "article",
|
|
3483
|
+
"requiresPlan": true,
|
|
3484
|
+
"description": "删除文件夹。**只能删空的**——里面还有文章或子文件夹会被拒绝,不会连带删除任何内容。要先清空就用 articles.moveFolder 把文章移走。默认文件夹删不了。",
|
|
3485
|
+
"inputSchema": {
|
|
3486
|
+
"type": "object",
|
|
3487
|
+
"properties": {
|
|
3488
|
+
"folderId": { "type": "integer", "minimum": 1, "description": "要删哪个" }
|
|
3489
|
+
},
|
|
3490
|
+
"required": ["folderId"],
|
|
3491
|
+
"additionalProperties": false
|
|
3492
|
+
}
|
|
3493
|
+
},
|
|
3494
|
+
{
|
|
3495
|
+
"name": "publicationTasks.createArticle",
|
|
3496
|
+
"mode": "write",
|
|
3497
|
+
"guide": "publication",
|
|
3498
|
+
"requiresPlan": true,
|
|
3499
|
+
"description": "建文章发布任务:把已有文章发到自媒体平台。**执行后稿子会真的发出去,CLI 撤不回来**。费用按发布记录条数算——一篇文章发 3 个账号就是 3 条。建之前先用 publicationPlatforms.list(contentType=article)查平台、publicationAccounts.list 查这个公司绑了哪些账号。**文章必须已审核通过且有封面**,两者缺一发不了——用 articles.list 时带上 status 和 mustHaveCover 就只会看到能发的。",
|
|
3500
|
+
"inputSchema": {
|
|
3501
|
+
"type": "object",
|
|
3502
|
+
"properties": {
|
|
3503
|
+
"name": { "type": "string", "minLength": 1, "maxLength": 100, "description": "任务名,给用户认的" },
|
|
3504
|
+
"productId": { "type": "integer", "minimum": 1, "description": "发哪个 GEO 项目的内容" },
|
|
3505
|
+
"aigc": { "type": "boolean", "description": "要不要打「AI 创作」声明。**得问用户**,别替他决定" },
|
|
3506
|
+
"items": {
|
|
3507
|
+
"type": "array",
|
|
3508
|
+
"minItems": 1,
|
|
3509
|
+
"description": "每项是「一篇文章 + 它要发到哪些平台的哪些账号」",
|
|
3510
|
+
"items": {
|
|
3511
|
+
"type": "object",
|
|
3512
|
+
"properties": {
|
|
3513
|
+
"articleId": { "type": "integer", "minimum": 1 },
|
|
3514
|
+
"platforms": {
|
|
3515
|
+
"type": "array",
|
|
3516
|
+
"minItems": 1,
|
|
3517
|
+
"items": {
|
|
3518
|
+
"type": "object",
|
|
3519
|
+
"properties": {
|
|
3520
|
+
"platform": { "type": "string", "description": "平台标识,填 publicationPlatforms.list 返回的 platform 值" },
|
|
3521
|
+
"publishAccountIds": {
|
|
3522
|
+
"type": "array",
|
|
3523
|
+
"minItems": 1,
|
|
3524
|
+
"items": { "type": "integer", "minimum": 1 },
|
|
3525
|
+
"description": "用哪些账号发。一个账号一条发布记录"
|
|
3526
|
+
},
|
|
3527
|
+
"publishTime": {
|
|
3528
|
+
"type": "string",
|
|
3529
|
+
"description": "定时发布时间,ISO 格式如 2026-09-01T09:00:00+08:00。**不传 = 立即发布**。不能填过去的时间"
|
|
3530
|
+
}
|
|
3531
|
+
},
|
|
3532
|
+
"required": ["platform", "publishAccountIds"],
|
|
3533
|
+
"additionalProperties": false
|
|
3534
|
+
}
|
|
3535
|
+
}
|
|
3536
|
+
},
|
|
3537
|
+
"required": ["articleId", "platforms"],
|
|
3538
|
+
"additionalProperties": false
|
|
3539
|
+
}
|
|
3540
|
+
}
|
|
3541
|
+
},
|
|
3542
|
+
"required": ["name", "productId", "aigc", "items"],
|
|
3543
|
+
"additionalProperties": false
|
|
3544
|
+
}
|
|
3545
|
+
},
|
|
3546
|
+
{
|
|
3547
|
+
"name": "publicationTasks.createVideo",
|
|
3548
|
+
"mode": "write",
|
|
3549
|
+
"guide": "publication",
|
|
3550
|
+
"requiresPlan": true,
|
|
3551
|
+
"description": "建视频发布任务。和 createArticle 同一套结构,只把 articleId 换成 videoId,平台要用 contentType=video 那批——拿文章平台发视频会被拒。",
|
|
3552
|
+
"inputSchema": {
|
|
3553
|
+
"type": "object",
|
|
3554
|
+
"properties": {
|
|
3555
|
+
"name": { "type": "string", "minLength": 1, "maxLength": 100 },
|
|
3556
|
+
"productId": { "type": "integer", "minimum": 1 },
|
|
3557
|
+
"aigc": { "type": "boolean", "description": "要不要打「AI 创作」声明。**得问用户**" },
|
|
3558
|
+
"items": {
|
|
3559
|
+
"type": "array",
|
|
3560
|
+
"minItems": 1,
|
|
3561
|
+
"items": {
|
|
3562
|
+
"type": "object",
|
|
3563
|
+
"properties": {
|
|
3564
|
+
"videoId": { "type": "integer", "minimum": 1 },
|
|
3565
|
+
"platforms": {
|
|
3566
|
+
"type": "array",
|
|
3567
|
+
"minItems": 1,
|
|
3568
|
+
"items": {
|
|
3569
|
+
"type": "object",
|
|
3570
|
+
"properties": {
|
|
3571
|
+
"platform": { "type": "string" },
|
|
3572
|
+
"publishAccountIds": {
|
|
3573
|
+
"type": "array",
|
|
3574
|
+
"minItems": 1,
|
|
3575
|
+
"items": { "type": "integer", "minimum": 1 }
|
|
3576
|
+
},
|
|
3577
|
+
"publishTime": { "type": "string", "description": "ISO 格式。不传 = 立即发布" }
|
|
3578
|
+
},
|
|
3579
|
+
"required": ["platform", "publishAccountIds"],
|
|
3580
|
+
"additionalProperties": false
|
|
3581
|
+
}
|
|
3582
|
+
}
|
|
3583
|
+
},
|
|
3584
|
+
"required": ["videoId", "platforms"],
|
|
3585
|
+
"additionalProperties": false
|
|
3586
|
+
}
|
|
3587
|
+
}
|
|
3588
|
+
},
|
|
3589
|
+
"required": ["name", "productId", "aigc", "items"],
|
|
3590
|
+
"additionalProperties": false
|
|
3591
|
+
}
|
|
3592
|
+
},
|
|
3593
|
+
{
|
|
3594
|
+
"name": "publicationTasks.delete",
|
|
3595
|
+
"mode": "write",
|
|
3596
|
+
"guide": "publication",
|
|
3597
|
+
"requiresPlan": true,
|
|
3598
|
+
"description": "删发布任务。只删任务和它名下**还没发出去**的记录——已经发布成功的稿子留在平台上不受影响,要撤那些得去各平台自己删。一次只能删同一家公司的。",
|
|
3599
|
+
"inputSchema": {
|
|
3600
|
+
"type": "object",
|
|
3601
|
+
"properties": {
|
|
3602
|
+
"taskIds": {
|
|
3603
|
+
"type": "array",
|
|
3604
|
+
"minItems": 1,
|
|
3605
|
+
"items": { "type": "integer", "minimum": 1 },
|
|
3606
|
+
"description": "要删哪些。必须都属于同一家公司"
|
|
3607
|
+
}
|
|
3608
|
+
},
|
|
3609
|
+
"required": ["taskIds"],
|
|
3610
|
+
"additionalProperties": false
|
|
3611
|
+
}
|
|
3612
|
+
},
|
|
3613
|
+
{
|
|
3614
|
+
"name": "publicationTasks.pause",
|
|
3615
|
+
"mode": "write",
|
|
3616
|
+
"guide": "publication",
|
|
3617
|
+
"requiresPlan": true,
|
|
3618
|
+
"description": "暂停发布任务:把它名下**还没发出去**的记录挂起。已经发成功的撤不回来,正在发的那条也拦不住。不扣费。",
|
|
3619
|
+
"inputSchema": {
|
|
3620
|
+
"type": "object",
|
|
3621
|
+
"properties": { "taskId": { "type": "integer", "minimum": 1 } },
|
|
3622
|
+
"required": ["taskId"],
|
|
3623
|
+
"additionalProperties": false
|
|
3624
|
+
}
|
|
3625
|
+
},
|
|
3626
|
+
{
|
|
3627
|
+
"name": "publicationTasks.resume",
|
|
3628
|
+
"mode": "write",
|
|
3629
|
+
"guide": "publication",
|
|
3630
|
+
"requiresPlan": true,
|
|
3631
|
+
"description": "恢复被暂停的发布任务,挂起的记录重新排队发出去。定时的按原定时间走,时间已经过了的会尽快发。不扣费。",
|
|
3632
|
+
"inputSchema": {
|
|
3633
|
+
"type": "object",
|
|
3634
|
+
"properties": { "taskId": { "type": "integer", "minimum": 1 } },
|
|
3635
|
+
"required": ["taskId"],
|
|
3636
|
+
"additionalProperties": false
|
|
3637
|
+
}
|
|
3638
|
+
},
|
|
3639
|
+
{
|
|
3640
|
+
"name": "mediaPublications.create",
|
|
3641
|
+
"mode": "write",
|
|
3642
|
+
"guide": "publication",
|
|
3643
|
+
"requiresPlan": true,
|
|
3644
|
+
"description": "把一篇文章投给一家付费媒体。**文章必须已审核通过且有封面**。**按家收费,单价各不相同**——计划里会逐家列出名字和价格,念给用户听再让他确认。投出去之后发不发由媒体那边定,被拒稿会原路退款。",
|
|
3645
|
+
"inputSchema": {
|
|
3646
|
+
"type": "object",
|
|
3647
|
+
"properties": {
|
|
3648
|
+
"articleId": { "type": "integer", "minimum": 1, "description": "投哪篇" },
|
|
3649
|
+
"mediaId": { "type": "integer", "minimum": 1, "description": "投给哪家。用 mediaPlatforms.list 查在架的媒体和价格" }
|
|
3650
|
+
},
|
|
3651
|
+
"required": ["articleId", "mediaId"],
|
|
3652
|
+
"additionalProperties": false
|
|
3653
|
+
}
|
|
3654
|
+
},
|
|
3655
|
+
{
|
|
3656
|
+
"name": "mediaPublications.batchCreate",
|
|
3657
|
+
"mode": "write",
|
|
3658
|
+
"guide": "publication",
|
|
3659
|
+
"requiresPlan": true,
|
|
3660
|
+
"description": "把**一篇**文章一次投给多家媒体,最多 20 家。按家收费,计划里逐家列价格和合计。允许部分成功:某家失败不影响别家。执行结果里每家都带 settlementStatus——charged=扣了、not_charged=没扣、refunded=扣了又退回了、refund_pending=扣了但还没退回来(系统会自动补退)。汇总看 netChargedTotal(这次实际净扣多少),**金额单位是元**(结果里的 amountUnit 也写了)。**报账目念这几个数,别自己按成功家数乘单价算**。要重投得重新生成计划。投多篇文章就一篇一篇来。",
|
|
3661
|
+
"inputSchema": {
|
|
3662
|
+
"type": "object",
|
|
3663
|
+
"properties": {
|
|
3664
|
+
"articleId": { "type": "integer", "minimum": 1, "description": "投哪篇。一次只能一篇" },
|
|
3665
|
+
"mediaIds": {
|
|
3666
|
+
"type": "array",
|
|
3667
|
+
"minItems": 1,
|
|
3668
|
+
"maxItems": 20,
|
|
3669
|
+
"items": { "type": "integer", "minimum": 1 },
|
|
3670
|
+
"description": "投给哪几家"
|
|
3671
|
+
}
|
|
3672
|
+
},
|
|
3673
|
+
"required": ["articleId", "mediaIds"],
|
|
3674
|
+
"additionalProperties": false
|
|
3675
|
+
}
|
|
2220
3676
|
}
|
|
2221
3677
|
]
|
|
2222
3678
|
}
|