@aigne/doc-smith 0.8.11-beta → 0.8.11-beta.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/.aigne/doc-smith/config.yaml +2 -0
- package/.aigne/doc-smith/output/structure-plan.json +3 -3
- package/.aigne/doc-smith/upload-cache.yaml +252 -0
- package/.github/workflows/publish-docs.yml +67 -0
- package/.release-please-manifest.json +1 -1
- package/CHANGELOG.md +22 -0
- package/README.md +45 -115
- package/agents/clear/choose-contents.mjs +170 -0
- package/agents/clear/clear-auth-tokens.mjs +111 -0
- package/agents/clear/clear-document-config.mjs +39 -0
- package/agents/clear/clear-document-structure.mjs +106 -0
- package/agents/clear/clear-generated-docs.mjs +51 -0
- package/agents/clear/index.yaml +23 -0
- package/agents/evaluate/code-snippet.mjs +93 -0
- package/agents/evaluate/document-structure.yaml +70 -0
- package/agents/evaluate/document.yaml +79 -0
- package/agents/evaluate/generate-report.mjs +78 -0
- package/agents/evaluate/index.yaml +39 -0
- package/agents/generate/document-structure-tools/add-document.mjs +56 -0
- package/agents/generate/document-structure-tools/delete-document.mjs +49 -0
- package/agents/generate/document-structure-tools/move-document.mjs +82 -0
- package/agents/generate/document-structure-tools/update-document.mjs +50 -0
- package/agents/generate/generate-structure.yaml +1 -1
- package/agents/generate/update-document-structure.yaml +42 -0
- package/agents/generate/user-review-document-structure.mjs +6 -4
- package/agents/init/index.mjs +1 -1
- package/agents/publish/publish-docs.mjs +12 -3
- package/agents/translate/choose-language.mjs +1 -1
- package/agents/update/batch-update-document.yaml +7 -0
- package/agents/update/check-update-is-single.mjs +38 -0
- package/agents/update/document-tools/update-document-content.mjs +293 -0
- package/agents/update/index.yaml +4 -10
- package/agents/update/update-document-detail.yaml +52 -0
- package/agents/update/update-single-document.yaml +15 -0
- package/agents/update/user-review-document.mjs +248 -0
- package/agents/utils/choose-docs.mjs +4 -2
- package/agents/utils/format-document-structure.mjs +12 -2
- package/agents/utils/load-document-all-content.mjs +84 -0
- package/agents/utils/load-sources.mjs +4 -1
- package/aigne.yaml +59 -20
- package/assets/report-template/report.html +198 -0
- package/biome.json +14 -2
- package/docs/advanced-how-it-works.ja.md +101 -0
- package/docs/advanced-how-it-works.zh-TW.md +101 -0
- package/docs/advanced-how-it-works.zh.md +20 -20
- package/docs/advanced-quality-assurance.ja.md +96 -0
- package/docs/advanced-quality-assurance.zh-TW.md +96 -0
- package/docs/advanced-quality-assurance.zh.md +18 -18
- package/docs/advanced.ja.md +16 -0
- package/docs/advanced.zh-TW.md +16 -0
- package/docs/advanced.zh.md +4 -4
- package/docs/changelog.ja.md +309 -0
- package/docs/changelog.zh-TW.md +309 -0
- package/docs/changelog.zh.md +23 -23
- package/docs/cli-reference.ja.md +210 -0
- package/docs/cli-reference.zh-TW.md +210 -0
- package/docs/cli-reference.zh.md +21 -21
- package/docs/configuration-interactive-setup.ja.md +135 -0
- package/docs/configuration-interactive-setup.zh-TW.md +135 -0
- package/docs/configuration-interactive-setup.zh.md +29 -29
- package/docs/configuration-language-support.ja.md +94 -0
- package/docs/configuration-language-support.zh-TW.md +94 -0
- package/docs/configuration-language-support.zh.md +13 -13
- package/docs/configuration-llm-setup.ja.md +54 -0
- package/docs/configuration-llm-setup.zh-TW.md +54 -0
- package/docs/configuration-llm-setup.zh.md +12 -12
- package/docs/configuration-preferences.ja.md +129 -0
- package/docs/configuration-preferences.zh-TW.md +129 -0
- package/docs/configuration-preferences.zh.md +36 -36
- package/docs/configuration.ja.md +172 -0
- package/docs/configuration.zh-TW.md +172 -0
- package/docs/configuration.zh.md +49 -49
- package/docs/features-generate-documentation.ja.md +101 -0
- package/docs/features-generate-documentation.zh-TW.md +101 -0
- package/docs/features-generate-documentation.zh.md +17 -17
- package/docs/features-publish-your-docs.ja.md +107 -0
- package/docs/features-publish-your-docs.zh-TW.md +107 -0
- package/docs/features-publish-your-docs.zh.md +22 -22
- package/docs/features-translate-documentation.ja.md +79 -0
- package/docs/features-translate-documentation.zh-TW.md +79 -0
- package/docs/features-translate-documentation.zh.md +12 -12
- package/docs/features-update-and-refine.ja.md +138 -0
- package/docs/features-update-and-refine.zh-TW.md +138 -0
- package/docs/features-update-and-refine.zh.md +21 -21
- package/docs/features.ja.md +52 -0
- package/docs/features.zh-TW.md +52 -0
- package/docs/features.zh.md +8 -8
- package/docs/getting-started.ja.md +123 -0
- package/docs/getting-started.zh-TW.md +123 -0
- package/docs/getting-started.zh.md +24 -24
- package/docs/overview.ja.md +30 -0
- package/docs/overview.zh-TW.md +30 -0
- package/docs/overview.zh.md +8 -8
- package/package.json +19 -11
- package/prompts/common/document/content-rules-core.md +19 -0
- package/prompts/common/document/media-handling-rules.md +9 -0
- package/prompts/common/document/role-and-personality.md +15 -0
- package/prompts/common/document/user-preferences.md +9 -0
- package/prompts/common/document-structure/conflict-resolution-guidance.md +16 -0
- package/prompts/common/document-structure/document-structure-rules.md +45 -0
- package/prompts/common/document-structure/glossary.md +7 -0
- package/prompts/common/document-structure/intj-traits.md +5 -0
- package/prompts/common/document-structure/output-constraints.md +9 -0
- package/prompts/common/document-structure/user-locale-rules.md +10 -0
- package/prompts/common/document-structure/user-preferences.md +9 -0
- package/prompts/detail/custom/custom-components.md +9 -1
- package/prompts/detail/document-rules.md +6 -6
- package/prompts/detail/generate-document.md +5 -45
- package/prompts/detail/update-document.md +145 -0
- package/prompts/evaluate/document-structure.md +94 -0
- package/prompts/evaluate/document.md +149 -0
- package/prompts/structure/document-rules.md +1 -1
- package/prompts/structure/generate-structure-system.md +74 -0
- package/prompts/structure/generate-structure-user.md +41 -0
- package/prompts/structure/update-document-structure.md +118 -0
- package/prompts/translate/translate-document.md +1 -1
- package/prompts/utils/feedback-refiner.md +3 -3
- package/release-please-config.json +1 -7
- package/tests/agents/clear/choose-contents.test.mjs +280 -0
- package/tests/agents/clear/clear-auth-tokens.test.mjs +268 -0
- package/tests/agents/clear/clear-document-config.test.mjs +167 -0
- package/tests/agents/clear/clear-document-structure.test.mjs +374 -0
- package/tests/agents/clear/clear-generated-docs.test.mjs +222 -0
- package/tests/agents/evaluate/code-snippet.test.mjs +163 -0
- package/tests/agents/evaluate/fixtures/api-services.md +87 -0
- package/tests/agents/evaluate/fixtures/js-sdk.md +94 -0
- package/tests/agents/evaluate/generate-report.test.mjs +312 -0
- package/tests/agents/generate/check-document-structure.test.mjs +0 -6
- package/tests/agents/generate/document-structure-tools/add-document.test.mjs +449 -0
- package/tests/agents/generate/document-structure-tools/delete-document.test.mjs +410 -0
- package/tests/agents/generate/document-structure-tools/move-document.test.mjs +476 -0
- package/tests/agents/generate/document-structure-tools/update-document.test.mjs +548 -0
- package/tests/agents/generate/generate-structure.test.mjs +0 -6
- package/tests/agents/generate/user-review-document-structure.test.mjs +9 -9
- package/tests/agents/publish/publish-docs.test.mjs +2 -2
- package/tests/agents/update/check-update-is-single.test.mjs +300 -0
- package/tests/agents/update/document-tools/update-document-content.test.mjs +326 -0
- package/tests/agents/update/user-review-document.test.mjs +561 -0
- package/tests/agents/utils/format-document-structure.test.mjs +100 -0
- package/tests/utils/auth-utils.test.mjs +239 -1
- package/tests/utils/blocklet.test.mjs +9 -7
- package/tests/utils/constants.test.mjs +1 -1
- package/tests/utils/d2-utils.test.mjs +1 -1
- package/tests/utils/deploy.test.mjs +310 -366
- package/tests/utils/kroki-utils.test.mjs +2 -15
- package/tests/utils/linter/fixtures/css/keyword-error.css +1 -0
- package/tests/utils/linter/fixtures/css/missing-semicolon.css +1 -0
- package/tests/utils/linter/fixtures/css/syntax-error.css +1 -0
- package/tests/utils/linter/fixtures/css/undeclare-variable.css +1 -0
- package/tests/utils/linter/fixtures/css/unused-variable.css +2 -0
- package/tests/utils/linter/fixtures/css/valid-code.css +1 -0
- package/tests/utils/linter/fixtures/dockerfile/keyword-error.dockerfile +1 -0
- package/tests/utils/linter/fixtures/dockerfile/missing-semicolon.dockerfile +2 -0
- package/tests/utils/linter/fixtures/dockerfile/syntax-error.dockerfile +2 -0
- package/tests/utils/linter/fixtures/dockerfile/undeclare-variable.dockerfile +1 -0
- package/tests/utils/linter/fixtures/dockerfile/unused-variable.dockerfile +1 -0
- package/tests/utils/linter/fixtures/dockerfile/valid-code.dockerfile +2 -0
- package/tests/utils/linter/fixtures/go/keyword-error.go +5 -0
- package/tests/utils/linter/fixtures/go/missing-semicolon.go +5 -0
- package/tests/utils/linter/fixtures/go/syntax-error.go +6 -0
- package/tests/utils/linter/fixtures/go/undeclare-variable.go +5 -0
- package/tests/utils/linter/fixtures/go/unused-variable.go +5 -0
- package/tests/utils/linter/fixtures/go/valid-code.go +7 -0
- package/tests/utils/linter/fixtures/js/keyword-error.js +3 -0
- package/tests/utils/linter/fixtures/js/missing-semicolon.js +6 -0
- package/tests/utils/linter/fixtures/js/syntax-error.js +4 -0
- package/tests/utils/linter/fixtures/js/undeclare-variable.js +3 -0
- package/tests/utils/linter/fixtures/js/unused-variable.js +7 -0
- package/tests/utils/linter/fixtures/js/valid-code.js +15 -0
- package/tests/utils/linter/fixtures/json/keyword-error.json +1 -0
- package/tests/utils/linter/fixtures/json/missing-semicolon.json +1 -0
- package/tests/utils/linter/fixtures/json/syntax-error.json +1 -0
- package/tests/utils/linter/fixtures/json/undeclare-variable.json +1 -0
- package/tests/utils/linter/fixtures/json/unused-variable.json +1 -0
- package/tests/utils/linter/fixtures/json/valid-code.json +1 -0
- package/tests/utils/linter/fixtures/jsx/keyword-error.jsx +5 -0
- package/tests/utils/linter/fixtures/jsx/missing-semicolon.jsx +5 -0
- package/tests/utils/linter/fixtures/jsx/syntax-error.jsx +5 -0
- package/tests/utils/linter/fixtures/jsx/undeclare-variable.jsx +5 -0
- package/tests/utils/linter/fixtures/jsx/unused-variable.jsx +4 -0
- package/tests/utils/linter/fixtures/jsx/valid-code.jsx +5 -0
- package/tests/utils/linter/fixtures/python/keyword-error.py +3 -0
- package/tests/utils/linter/fixtures/python/missing-semicolon.py +2 -0
- package/tests/utils/linter/fixtures/python/syntax-error.py +3 -0
- package/tests/utils/linter/fixtures/python/undeclare-variable.py +3 -0
- package/tests/utils/linter/fixtures/python/unused-variable.py +6 -0
- package/tests/utils/linter/fixtures/python/valid-code.py +12 -0
- package/tests/utils/linter/fixtures/ruby/keyword-error.rb +2 -0
- package/tests/utils/linter/fixtures/ruby/missing-semicolon.rb +1 -0
- package/tests/utils/linter/fixtures/ruby/syntax-error.rb +2 -0
- package/tests/utils/linter/fixtures/ruby/undeclare-variable.rb +1 -0
- package/tests/utils/linter/fixtures/ruby/unused-variable.rb +2 -0
- package/tests/utils/linter/fixtures/ruby/valid-code.rb +1 -0
- package/tests/utils/linter/fixtures/sass/keyword-error.sass +2 -0
- package/tests/utils/linter/fixtures/sass/missing-semicolon.sass +3 -0
- package/tests/utils/linter/fixtures/sass/syntax-error.sass +3 -0
- package/tests/utils/linter/fixtures/sass/undeclare-variable.sass +2 -0
- package/tests/utils/linter/fixtures/sass/unused-variable.sass +4 -0
- package/tests/utils/linter/fixtures/sass/valid-code.sass +2 -0
- package/tests/utils/linter/fixtures/scss/keyword-error.scss +1 -0
- package/tests/utils/linter/fixtures/scss/missing-semicolon.scss +1 -0
- package/tests/utils/linter/fixtures/scss/syntax-error.scss +1 -0
- package/tests/utils/linter/fixtures/scss/undeclare-variable.scss +1 -0
- package/tests/utils/linter/fixtures/scss/unused-variable.scss +2 -0
- package/tests/utils/linter/fixtures/scss/valid-code.scss +1 -0
- package/tests/utils/linter/fixtures/shell/keyword-error.sh +5 -0
- package/tests/utils/linter/fixtures/shell/missing-semicolon.sh +3 -0
- package/tests/utils/linter/fixtures/shell/syntax-error.sh +4 -0
- package/tests/utils/linter/fixtures/shell/undeclare-variable.sh +3 -0
- package/tests/utils/linter/fixtures/shell/unused-variable.sh +4 -0
- package/tests/utils/linter/fixtures/shell/valid-code.sh +3 -0
- package/tests/utils/linter/fixtures/ts/keyword-error.ts +1 -0
- package/tests/utils/linter/fixtures/ts/missing-semicolon.ts +1 -0
- package/tests/utils/linter/fixtures/ts/syntax-error.ts +1 -0
- package/tests/utils/linter/fixtures/ts/undeclare-variable.ts +1 -0
- package/tests/utils/linter/fixtures/ts/unused-variable.ts +3 -0
- package/tests/utils/linter/fixtures/ts/valid-code.ts +3 -0
- package/tests/utils/linter/fixtures/tsx/keyword-error.tsx +5 -0
- package/tests/utils/linter/fixtures/tsx/missing-semicolon.tsx +5 -0
- package/tests/utils/linter/fixtures/tsx/syntax-error.tsx +5 -0
- package/tests/utils/linter/fixtures/tsx/undeclare-variable.tsx +6 -0
- package/tests/utils/linter/fixtures/tsx/unused-variable.tsx +6 -0
- package/tests/utils/linter/fixtures/tsx/valid-code.tsx +5 -0
- package/tests/utils/linter/fixtures/vue/keyword-error.vue +6 -0
- package/tests/utils/linter/fixtures/vue/missing-semicolon.vue +6 -0
- package/tests/utils/linter/fixtures/vue/syntax-error.vue +6 -0
- package/tests/utils/linter/fixtures/vue/undeclare-variable.vue +6 -0
- package/tests/utils/linter/fixtures/vue/unused-variable.vue +7 -0
- package/tests/utils/linter/fixtures/vue/valid-code.vue +6 -0
- package/tests/utils/linter/fixtures/yaml/keyword-error.yml +1 -0
- package/tests/utils/linter/fixtures/yaml/missing-semicolon.yml +2 -0
- package/tests/utils/linter/fixtures/yaml/syntax-error.yml +1 -0
- package/tests/utils/linter/fixtures/yaml/undeclare-variable.yml +1 -0
- package/tests/utils/linter/fixtures/yaml/unused-variable.yml +2 -0
- package/tests/utils/linter/fixtures/yaml/valid-code.yml +3 -0
- package/tests/utils/linter/index.test.mjs +440 -0
- package/tests/utils/linter/scan-results.mjs +42 -0
- package/tests/utils/markdown/index.test.mjs +478 -0
- package/tests/utils/mermaid-validator.test.mjs +2 -2
- package/tests/utils/utils.test.mjs +3 -1
- package/types/document-schema.mjs +54 -0
- package/types/document-structure-schema.mjs +244 -0
- package/utils/auth-utils.mjs +131 -6
- package/utils/conflict-detector.mjs +5 -1
- package/utils/{constants.mjs → constants/index.mjs} +109 -0
- package/utils/constants/linter.mjs +102 -0
- package/utils/d2-utils.mjs +2 -4
- package/utils/debug.mjs +3 -0
- package/utils/deploy.mjs +81 -385
- package/utils/evaluate/report-utils.mjs +131 -0
- package/utils/file-utils.mjs +36 -1
- package/utils/kroki-utils.mjs +1 -1
- package/utils/linter/index.mjs +50 -0
- package/utils/markdown/index.mjs +26 -0
- package/utils/markdown-checker.mjs +1 -1
- package/utils/utils.mjs +19 -7
- package/prompts/structure/generate-structure.md +0 -161
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# 語言支援
|
|
2
|
+
|
|
3
|
+
AIGNE DocSmith 使用 AI 提供 12 種語言的自動化文件翻譯。這讓您可以使用 `aigne doc translate` 命令為全球使用者產生和維護文件。
|
|
4
|
+
|
|
5
|
+
翻譯工作流程會透過 AI 引擎處理您的來源文件,以產生您所選目標語言的本地化版本。
|
|
6
|
+
|
|
7
|
+
```d2
|
|
8
|
+
direction: down
|
|
9
|
+
|
|
10
|
+
Source-Doc: {
|
|
11
|
+
label: "來源文件\n(例如,英文)"
|
|
12
|
+
shape: rectangle
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
AI-Engine: {
|
|
16
|
+
label: "AIGNE DocSmith\nAI 翻譯引擎"
|
|
17
|
+
shape: rectangle
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
Translated-Docs: {
|
|
21
|
+
label: "翻譯後的文件"
|
|
22
|
+
shape: rectangle
|
|
23
|
+
grid-columns: 3
|
|
24
|
+
|
|
25
|
+
zh: "简体中文"
|
|
26
|
+
ja: "日本語"
|
|
27
|
+
es: "Español"
|
|
28
|
+
fr: "Français"
|
|
29
|
+
de: "Deutsch"
|
|
30
|
+
more: "..."
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
Source-Doc -> AI-Engine: "`aigne doc translate`"
|
|
34
|
+
AI-Engine -> Translated-Docs: "產生"
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## 支援的語言
|
|
38
|
+
|
|
39
|
+
DocSmith 為以下語言提供 AI 驅動的翻譯。您可以在初始設定時定義專案的主要語言,並選擇任意數量的目標語言進行翻譯。
|
|
40
|
+
|
|
41
|
+
| 語言 | 語言代碼 | 範例文字 |
|
|
42
|
+
|---|---|---|
|
|
43
|
+
| English | `en` | Hello |
|
|
44
|
+
| 简体中文 | `zh` | 你好 |
|
|
45
|
+
| 繁體中文 | `zh-TW` | 你好 |
|
|
46
|
+
| 日本語 | `ja` | こんにちは |
|
|
47
|
+
| 한국어 | `ko` | 안녕하세요 |
|
|
48
|
+
| Español | `es` | Hola |
|
|
49
|
+
| Français | `fr` | Bonjour |
|
|
50
|
+
| Deutsch | `de` | Hallo |
|
|
51
|
+
| Português | `pt` | Olá |
|
|
52
|
+
| Русский | `ru` | Привет |
|
|
53
|
+
| Italiano | `it` | Ciao |
|
|
54
|
+
| العربية | `ar` | مرحبا |
|
|
55
|
+
|
|
56
|
+
## 如何設定與使用翻譯
|
|
57
|
+
|
|
58
|
+
翻譯語言是在您使用 `aigne doc init` 初始化專案時設定的。您可以隨時使用 `aigne doc translate` 命令新增語言或翻譯文件,該命令有兩種操作模式。
|
|
59
|
+
|
|
60
|
+
### 用於引導式翻譯的互動模式
|
|
61
|
+
|
|
62
|
+
若要獲得逐步引導的體驗,請在不帶任何參數的情況下執行此命令。這是對大多數使用者推薦的方法。
|
|
63
|
+
|
|
64
|
+
```bash Interactive Translation icon=lucide:wand
|
|
65
|
+
aigne doc translate
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
互動模式將會顯示一系列提示,讓您可以:
|
|
69
|
+
|
|
70
|
+
1. 從清單中選擇要翻譯的現有文件。
|
|
71
|
+
2. 從支援的清單中選擇一種或多種目標語言。
|
|
72
|
+
3. 如果專案設定中尚未包含新的翻譯語言,則可以將其新增。
|
|
73
|
+
|
|
74
|
+
### 用於自動化的命令列參數
|
|
75
|
+
|
|
76
|
+
若要直接控制或在自動化腳本中使用,您可以直接將文件和語言指定為命令列參數。這對於開發人員和 CI/CD 管線來說是理想的選擇。
|
|
77
|
+
|
|
78
|
+
```bash Command Example icon=lucide:terminal
|
|
79
|
+
# 將 overview.md 和 examples.md 翻譯成中文和日文
|
|
80
|
+
aigne doc translate --langs zh --langs ja --docs overview.md --docs examples.md
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
該命令的主要參數包括:
|
|
84
|
+
|
|
85
|
+
| 參數 | 說明 |
|
|
86
|
+
|---|---|
|
|
87
|
+
| `--langs` | 指定目標語言代碼。此旗標可以多次使用以選擇多種語言。 |
|
|
88
|
+
| `--docs` | 指定要翻譯的文件的路徑(例如,`overview.md`)。此旗標也可以多次使用。 |
|
|
89
|
+
| `--feedback` | 提供具體說明以指導翻譯模型(例如,`"使用正式語氣"`)。 |
|
|
90
|
+
| `--glossary` | 使用自訂詞彙表檔案(例如,`@path/to/glossary.md`)以確保專案特定術語的翻譯一致性。 |
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
本節介紹了可用的語言以及如何啟用它們。有關翻譯工作流程的完整指南,請參閱 [翻譯文件](./features-translate-documentation.md) 指南。
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# 语言支持
|
|
2
2
|
|
|
3
|
-
AIGNE DocSmith 使用 AI 提供 12 种语言的自动化文档翻译。这使您可以使用 `aigne doc translate`
|
|
3
|
+
AIGNE DocSmith 使用 AI 提供 12 种语言的自动化文档翻译。这使您可以使用 `aigne doc translate` 命令为全球受众生成和维护文档。
|
|
4
4
|
|
|
5
|
-
翻译工作流通过 AI
|
|
5
|
+
翻译工作流通过 AI 引擎处理您的源文档,以生成所选目标语言的本地化版本。
|
|
6
6
|
|
|
7
7
|
```d2
|
|
8
8
|
direction: down
|
|
@@ -36,11 +36,11 @@ AI-Engine -> Translated-Docs: "生成"
|
|
|
36
36
|
|
|
37
37
|
## 支持的语言
|
|
38
38
|
|
|
39
|
-
DocSmith 为以下语言提供 AI
|
|
39
|
+
DocSmith 为以下语言提供 AI 驱动的翻译。您可以在初始设置期间定义项目的主要语言,并选择任意数量的目标语言进行翻译。
|
|
40
40
|
|
|
41
41
|
| 语言 | 语言代码 | 示例文本 |
|
|
42
42
|
|---|---|---|
|
|
43
|
-
|
|
|
43
|
+
| 英语 | `en` | Hello |
|
|
44
44
|
| 简体中文 | `zh` | 你好 |
|
|
45
45
|
| 繁體中文 | `zh-TW` | 你好 |
|
|
46
46
|
| 日本語 | `ja` | こんにちは |
|
|
@@ -59,23 +59,23 @@ DocSmith 为以下语言提供 AI 翻译。您可以在初始设置期间定义
|
|
|
59
59
|
|
|
60
60
|
### 用于引导式翻译的交互模式
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
要获得分步指导的体验,请在不带任何参数的情况下运行该命令。这是大多数用户的推荐方法。
|
|
63
63
|
|
|
64
|
-
```bash
|
|
64
|
+
```bash 交互式翻译 icon=lucide:wand
|
|
65
65
|
aigne doc translate
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
然后,交互模式将显示一系列提示,允许您:
|
|
69
69
|
|
|
70
70
|
1. 从列表中选择要翻译的现有文档。
|
|
71
|
-
2.
|
|
71
|
+
2. 从支持的语言列表中选择一个或多个目标语言。
|
|
72
72
|
3. 如果项目中尚未包含新的翻译语言,则将其添加到项目配置中。
|
|
73
73
|
|
|
74
74
|
### 用于自动化的命令行参数
|
|
75
75
|
|
|
76
76
|
为了直接控制或在自动化脚本中使用,您可以直接将文档和语言指定为命令行参数。这对于开发人员和 CI/CD 流水线非常理想。
|
|
77
77
|
|
|
78
|
-
```bash
|
|
78
|
+
```bash 命令示例 icon=lucide:terminal
|
|
79
79
|
# 将 overview.md 和 examples.md 翻译成中文和日文
|
|
80
80
|
aigne doc translate --langs zh --langs ja --docs overview.md --docs examples.md
|
|
81
81
|
```
|
|
@@ -84,11 +84,11 @@ aigne doc translate --langs zh --langs ja --docs overview.md --docs examples.md
|
|
|
84
84
|
|
|
85
85
|
| 参数 | 描述 |
|
|
86
86
|
|---|---|
|
|
87
|
-
| `--langs` |
|
|
88
|
-
| `--docs` |
|
|
89
|
-
| `--feedback` |
|
|
90
|
-
| `--glossary` |
|
|
87
|
+
| `--langs` | 指定目标语言代码。此标志可以多次使用以选择多种语言。 |
|
|
88
|
+
| `--docs` | 指定要翻译的文档路径(例如,`overview.md`)。此参数也可以多次使用。 |
|
|
89
|
+
| `--feedback` | 提供具体说明以指导翻译模型(例如,`"使用正式语气"`)。 |
|
|
90
|
+
| `--glossary` | 使用自定义术语表文件(例如,`@path/to/glossary.md`)以确保项目特定术语的一致翻译。 |
|
|
91
91
|
|
|
92
92
|
---
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
本节介绍了可用语言以及如何启用它们。有关翻译工作流的完整指南,请参阅[翻译文档](./features-translate-documentation.md)指南。
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# LLMセットアップ
|
|
2
|
+
|
|
3
|
+
AIGNE DocSmithは、大規模言語モデル(LLM)を使用してドキュメントコンテンツを生成します。AIモデルプロバイダーは、統合されたAIGNE Hubを使用する方法と、独自のカスタムAPIキーを接続する方法の2通りで設定できます。
|
|
4
|
+
|
|
5
|
+
## AIGNE Hub(推奨)
|
|
6
|
+
|
|
7
|
+
最も手軽に始める方法はAIGNE Hubを使用することです。これは複数のLLMプロバイダーへのゲートウェイとして機能し、主に2つの利点があります:
|
|
8
|
+
|
|
9
|
+
- **APIキー不要:** 独自のAPIキーやサービス契約を管理することなく、ドキュメントを生成できます。
|
|
10
|
+
- **簡単なモデル切り替え:** `--model`フラグを使用することで、どのコマンドでもAIモデルを変更できます。
|
|
11
|
+
|
|
12
|
+
AIGNE Hubを通じて特定のモデルを使用するには、コマンドに`--model`フラグを追加します。以下にいくつかの例を示します:
|
|
13
|
+
|
|
14
|
+
```bash Using Different Models via AIGNE Hub icon=mdi:code-braces
|
|
15
|
+
# GoogleのGemini 2.5 Flashモデルを使用
|
|
16
|
+
aigne doc generate --model google:gemini-2.5-flash
|
|
17
|
+
|
|
18
|
+
# AnthropicのClaude 3.5 Sonnetモデルを使用
|
|
19
|
+
aigne doc generate --model claude:claude-3-5-sonnet
|
|
20
|
+
|
|
21
|
+
# OpenAIのGPT-4oモデルを使用
|
|
22
|
+
aigne doc generate --model openai:gpt-4o
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
モデルを指定しない場合、DocSmithはプロジェクトの設定ファイルで定義されたデフォルトのモデルを使用します。
|
|
26
|
+
|
|
27
|
+
## カスタムAPIキーの使用
|
|
28
|
+
|
|
29
|
+
OpenAIやAnthropicのようなプロバイダーで自身のアカウントを使用したい場合は、個人のAPIキーでDocSmithを設定できます。この方法により、APIの使用状況と請求を直接管理できます。
|
|
30
|
+
|
|
31
|
+
設定は対話型のウィザードを通じて行われます。ウィザードを起動するには、次のコマンドを実行してください:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
aigne doc init
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
ウィザードがプロバイダーの選択と認証情報の入力を求めます。詳細なガイドについては、[対話型セットアップ](./configuration-interactive-setup.md)のドキュメントを参照してください。
|
|
38
|
+
|
|
39
|
+
## デフォルトモデルの設定
|
|
40
|
+
|
|
41
|
+
すべてのドキュメント生成タスクで一貫性を保つために、プロジェクトの`aigne.yaml`設定ファイルでデフォルトのLLMを設定できます。このモデルは、`--model`フラグを含まないコマンドで使用されます。
|
|
42
|
+
|
|
43
|
+
```yaml aigne.yaml icon=mdi:file-code
|
|
44
|
+
chat_model:
|
|
45
|
+
provider: google
|
|
46
|
+
name: gemini-2.5-pro
|
|
47
|
+
temperature: 0.8
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
この例では、DocSmithはGoogleの`gemini-2.5-pro`モデルをデフォルトで使用し、`temperature`設定は`0.8`に設定されています。
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
LLMプロバイダーの設定が完了したら、ドキュメントの言語設定を管理する準備が整いました。サポートされている言語の完全なリストを確認し、それらを有効にする方法については、[言語サポート](./configuration-language-support.md)ガイドに進んでください。
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# LLM 設定
|
|
2
|
+
|
|
3
|
+
AIGNE DocSmith 使用大型語言模型 (LLM) 來產生文件內容。您可以透過兩種方式設定 AI 模型提供者:使用整合的 AIGNE Hub,或連接您自己的自訂 API 金鑰。
|
|
4
|
+
|
|
5
|
+
## AIGNE Hub (推薦)
|
|
6
|
+
|
|
7
|
+
最直接的開始方式是使用 AIGNE Hub。它作為多個 LLM 提供者的閘道,提供兩大好處:
|
|
8
|
+
|
|
9
|
+
- **無需 API 金鑰:** 您無需管理自己的 API 金鑰或服務訂閱即可產生文件。
|
|
10
|
+
- **輕鬆切換模型:** 您可以使用 `--model` 旗標為任何指令變更 AI 模型。
|
|
11
|
+
|
|
12
|
+
若要透過 AIGNE Hub 使用特定模型,請在您的指令中加入 `--model` 旗標。以下是一些範例:
|
|
13
|
+
|
|
14
|
+
```bash 使用不同模型透過 AIGNE Hub icon=mdi:code-braces
|
|
15
|
+
# 使用 Google 的 Gemini 2.5 Flash 模型
|
|
16
|
+
aigne doc generate --model google:gemini-2.5-flash
|
|
17
|
+
|
|
18
|
+
# 使用 Anthropic 的 Claude 3.5 Sonnet 模型
|
|
19
|
+
aigne doc generate --model claude:claude-3-5-sonnet
|
|
20
|
+
|
|
21
|
+
# 使用 OpenAI 的 GPT-4o 模型
|
|
22
|
+
aigne doc generate --model openai:gpt-4o
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
如果您未指定模型,DocSmith 將使用您專案設定中定義的預設模型。
|
|
26
|
+
|
|
27
|
+
## 使用自訂 API 金鑰
|
|
28
|
+
|
|
29
|
+
如果您偏好使用自己像 OpenAI 或 Anthropic 等提供者的帳戶,您可以使用個人 API 金鑰來設定 DocSmith。這種方法讓您可以直接控制 API 的使用和計費。
|
|
30
|
+
|
|
31
|
+
設定是透過互動式精靈處理的。若要啟動它,請執行以下指令:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
aigne doc init
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
精靈會提示您選擇您的提供者並輸入您的憑證。有關完整的指南,請參閱 [互動式設定](./configuration-interactive-setup.md) 文件。
|
|
38
|
+
|
|
39
|
+
## 設定預設模型
|
|
40
|
+
|
|
41
|
+
為了在所有文件產生任務中保持一致性,您可以在專案的 `aigne.yaml` 設定檔中設定預設的 LLM。此模型將用於任何不包含 `--model` 旗標的指令。
|
|
42
|
+
|
|
43
|
+
```yaml aigne.yaml icon=mdi:file-code
|
|
44
|
+
chat_model:
|
|
45
|
+
provider: google
|
|
46
|
+
name: gemini-2.5-pro
|
|
47
|
+
temperature: 0.8
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
在此範例中,DocSmith 預設設定為使用 Google 的 `gemini-2.5-pro` 模型,並將 `temperature` 設定為 `0.8`。
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
設定好您的 LLM 提供者後,您就可以開始管理文件的語言設定了。請前往 [語言支援](./configuration-language-support.md) 指南查看支援的語言完整清單,並了解如何啟用它們。
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
# LLM 设置
|
|
2
2
|
|
|
3
|
-
AIGNE DocSmith 使用大语言模型 (
|
|
3
|
+
AIGNE DocSmith 使用大语言模型 (LLMs) 生成文档内容。您可以通过两种方式配置 AI 模型提供商:使用集成的 AIGNE Hub,或连接您自己的自定义 API 密钥。
|
|
4
4
|
|
|
5
|
-
## AIGNE Hub
|
|
5
|
+
## AIGNE Hub (推荐)
|
|
6
6
|
|
|
7
|
-
最直接的入门方式是使用 AIGNE Hub
|
|
7
|
+
最直接的入门方式是使用 AIGNE Hub。它充当多个 LLM 提供商的网关,提供两大主要优势:
|
|
8
8
|
|
|
9
|
-
- **无需 API 密钥:**
|
|
10
|
-
- **轻松切换模型:**
|
|
9
|
+
- **无需 API 密钥:** 您无需管理自己的 API 密钥或服务订阅即可生成文档。
|
|
10
|
+
- **轻松切换模型:** 您可以使用 `--model` 标志为任何命令更改 AI 模型。
|
|
11
11
|
|
|
12
|
-
要通过 AIGNE Hub 使用特定模型,请在命令中添加 `--model`
|
|
12
|
+
要通过 AIGNE Hub 使用特定模型,请在命令中添加 `--model` 标志。以下是一些示例:
|
|
13
13
|
|
|
14
14
|
```bash 通过 AIGNE Hub 使用不同模型 icon=mdi:code-braces
|
|
15
15
|
# 使用 Google 的 Gemini 2.5 Flash 模型
|
|
@@ -22,23 +22,23 @@ aigne doc generate --model claude:claude-3-5-sonnet
|
|
|
22
22
|
aigne doc generate --model openai:gpt-4o
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
如果您未指定模型,DocSmith 将使用您项目配置中定义的默认模型。
|
|
26
26
|
|
|
27
27
|
## 使用自定义 API 密钥
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
如果您更喜欢使用自己在 OpenAI 或 Anthropic 等提供商处的账户,可以用您的个人 API 密钥配置 DocSmith。这种方法让您可以直接控制 API 的使用和计费。
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
配置通过一个交互式向导进行。要启动它,请运行以下命令:
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
34
|
aigne doc init
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
该向导将提示您选择提供商并输入凭据。有关完整指南,请参阅 [交互式设置](./configuration-interactive-setup.md) 文档。
|
|
38
38
|
|
|
39
39
|
## 设置默认模型
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
为了在所有文档生成任务中保持一致性,您可以在项目的 `aigne.yaml` 配置文件中设置一个默认 LLM。任何不包含 `--model` 标志的命令都将使用此模型。
|
|
42
42
|
|
|
43
43
|
```yaml aigne.yaml icon=mdi:file-code
|
|
44
44
|
chat_model:
|
|
@@ -51,4 +51,4 @@ chat_model:
|
|
|
51
51
|
|
|
52
52
|
---
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
配置好您的 LLM 提供商后,您就可以管理文档的语言设置了。请继续阅读 [语言支持](./configuration-language-support.md) 指南,以查看支持语言的完整列表并了解如何启用它们。
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# プリファレンスの管理
|
|
2
|
+
|
|
3
|
+
AIGNE DocSmithは、ユーザーのフィードバックから学習するように設計されています。生成されたコンテンツを調整または修正すると、DocSmithはそのフィードバックを「プリファレンス」と呼ばれる永続的なルールに変換できます。これらのルールにより、特定のスタイル、構造要件、コンテンツポリシーが将来のドキュメント作成タスクで一貫して適用されるようになります。すべてのプリファレンスは、プロジェクトのルートにある人間が読めるYAMLファイル `.aigne/doc-smith/preferences.yml` に保存されます。
|
|
4
|
+
|
|
5
|
+
## プリファレンスのライフサイクル
|
|
6
|
+
|
|
7
|
+
次の図は、フィードバックが再利用可能なルールとなり、将来のタスクに適用され、コマンドラインから管理されるまでの流れを示しています。
|
|
8
|
+
|
|
9
|
+
```d2 プリファレンスのライフサイクル
|
|
10
|
+
direction: down
|
|
11
|
+
|
|
12
|
+
feedback: {
|
|
13
|
+
label: "1. ユーザーが「refine」または「translate」中に\nフィードバックを提供"
|
|
14
|
+
shape: rectangle
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
refiner: {
|
|
18
|
+
label: "2. Feedback Refiner Agentが\nフィードバックを分析"
|
|
19
|
+
shape: rectangle
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
decision: {
|
|
23
|
+
label: "再利用可能なポリシーか?"
|
|
24
|
+
shape: diamond
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
pref_file: {
|
|
28
|
+
label: "3. preferences.yml\nルールが保存される"
|
|
29
|
+
shape: cylinder
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
future_tasks: {
|
|
33
|
+
label: "4. 将来のタスク\n保存されたルールが適用される"
|
|
34
|
+
shape: rectangle
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
cli: {
|
|
38
|
+
label: "5. CLI管理\n('aigne doc prefs')"
|
|
39
|
+
shape: rectangle
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
feedback -> refiner: "入力"
|
|
43
|
+
refiner -> decision: "分析"
|
|
44
|
+
decision -> pref_file: "はい"
|
|
45
|
+
decision -> "破棄(一度限りの修正)": "いいえ"
|
|
46
|
+
pref_file -> future_tasks: "適用される"
|
|
47
|
+
cli <-> pref_file: "管理"
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### プリファレンスが作成される仕組み
|
|
52
|
+
|
|
53
|
+
`refine` または `translate` の段階でフィードバックを提供すると、内部のAgentがその入力を分析します。フィードバックが一度限りの修正(例:タイポの修正)なのか、再利用可能なポリシー(例:「コードコメントは常に英語で書く」)なのかを判断します。それが永続的な指示であると判断された場合、新しいプリファレンスルールが作成されます。
|
|
54
|
+
|
|
55
|
+
### ルールのプロパティ
|
|
56
|
+
|
|
57
|
+
`preferences.yml` に保存される各ルールは、次の構造を持っています:
|
|
58
|
+
|
|
59
|
+
<x-field data-name="id" data-type="string" data-desc="ルールの一意なランダムに生成された識別子(例:pref_a1b2c3d4e5f6g7h8)。"></x-field>
|
|
60
|
+
<x-field data-name="active" data-type="boolean" data-desc="ルールが現在有効かどうかを示します。無効なルールは生成タスク中に無視されます。"></x-field>
|
|
61
|
+
<x-field data-name="scope" data-type="string" data-desc="ルールをいつ適用するかを定義します。有効なスコープは 'global'、'structure'、'document'、または 'translation' です。"></x-field>
|
|
62
|
+
<x-field data-name="rule" data-type="string" data-desc="将来のタスクでAIに渡される、具体的で洗練された指示。"></x-field>
|
|
63
|
+
<x-field data-name="feedback" data-type="string" data-desc="参照用に保存される、ユーザーが提供した元の自然言語のフィードバック。"></x-field>
|
|
64
|
+
<x-field data-name="createdAt" data-type="string" data-desc="ルールが作成された日時を示すISO 8601形式のタイムスタンプ。"></x-field>
|
|
65
|
+
<x-field data-name="paths" data-type="string[]" data-required="false" data-desc="オプションのファイルパスのリスト。存在する場合、ルールはこれらの特定のソースファイルに対して生成されたコンテンツにのみ適用されます。"></x-field>
|
|
66
|
+
|
|
67
|
+
## CLIによるプリファレンスの管理
|
|
68
|
+
|
|
69
|
+
`aigne doc prefs` コマンドを使用して、保存されているすべてのプリファレンスを表示および管理できます。これにより、ルールの一覧表示、有効化、無効化、または恒久的な削除が可能です。
|
|
70
|
+
|
|
71
|
+
### すべてのプリファレンスを一覧表示する
|
|
72
|
+
|
|
73
|
+
有効なものと無効なものを含め、保存されているすべてのプリファレンスを表示するには、`--list` フラグを使用します。
|
|
74
|
+
|
|
75
|
+
```bash すべてのプリファレンスを一覧表示する icon=lucide:terminal
|
|
76
|
+
aigne doc prefs --list
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
このコマンドは、各ルールのステータス、スコープ、ID、およびパスの制限を示すフォーマットされたリストを表示します。
|
|
80
|
+
|
|
81
|
+
```text 出力例 icon=lucide:clipboard-list
|
|
82
|
+
# ユーザープリファレンス
|
|
83
|
+
|
|
84
|
+
**フォーマットの説明:**
|
|
85
|
+
- 🟢 = 有効なプリファレンス, ⚪ = 無効なプリファレンス
|
|
86
|
+
- [scope] = プリファレンスのスコープ (global, structure, document, translation)
|
|
87
|
+
- ID = 一意のプリファレンス識別子
|
|
88
|
+
- Paths = 特定のファイルパス(該当する場合)
|
|
89
|
+
|
|
90
|
+
🟢 [structure] pref_a1b2c3d4e5f6g7h8 | Paths: overview.md
|
|
91
|
+
概要ドキュメントの末尾に「次のステップ」セクションを追加する。
|
|
92
|
+
|
|
93
|
+
⚪ [document] pref_i9j0k1l2m3n4o5p6
|
|
94
|
+
コードコメントは英語で記述する必要があります。
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### プリファレンスの無効化と再有効化
|
|
98
|
+
|
|
99
|
+
ルールを削除せずに一時的に無効にしたい場合は、`--toggle` フラグを使用してアクティブステータスを切り替えることができます。IDなしでコマンドを実行すると、対話モードが起動し、切り替えたいプリファレンスを1つ以上選択できます。
|
|
100
|
+
|
|
101
|
+
```bash 対話形式でプリファレンスを切り替える icon=lucide:terminal
|
|
102
|
+
aigne doc prefs --toggle
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
特定のルールを直接切り替えるには、`--id` フラグでそのIDを指定します。これは `deactivateRule` 関数に対応しており、ルールの `active` プロパティを `false` に設定します。
|
|
106
|
+
|
|
107
|
+
```bash 特定のプリファレンスを切り替える icon=lucide:terminal
|
|
108
|
+
aigne doc prefs --toggle --id pref_i9j0k1l2m3n4o5p6
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### プリファレンスの削除
|
|
112
|
+
|
|
113
|
+
1つ以上のプリファレンスを完全に削除するには、`--remove` フラグを使用します。この操作は `removeRule` 関数に対応し、元に戻すことはできません。
|
|
114
|
+
|
|
115
|
+
対話的な選択プロンプトを表示するには、IDなしでコマンドを実行します。
|
|
116
|
+
|
|
117
|
+
```bash 対話形式でプリファレンスを削除する icon=lucide:terminal
|
|
118
|
+
aigne doc prefs --remove
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
特定のルールをIDで直接削除するには、`--id` フラグを使用します。
|
|
122
|
+
|
|
123
|
+
```bash 特定のプリファレンスを削除する icon=lucide:terminal
|
|
124
|
+
aigne doc prefs --remove --id pref_a1b2c3d4e5f6g7h8
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## 次のステップ
|
|
128
|
+
|
|
129
|
+
プリファレンスの管理は、DocSmithをプロジェクトの特定のニーズに合わせて調整するための重要な部分です。さらなるカスタマイズオプションについては、メインの[設定ガイド](./configuration.md)をご覧ください。
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# 管理偏好設定
|
|
2
|
+
|
|
3
|
+
AIGNE DocSmith 旨在從您的回饋中學習。當您對生成的內容進行優化或更正時,DocSmith 可以將這些回饋轉換為持久性規則,稱為偏好設定。這些規則確保您特定的風格、結構要求和內容策略在未來的文件任務中得到一致的應用。所有偏好設定都儲存在專案根目錄下的 `.aigne/doc-smith/preferences.yml` 中,這是一個易於閱讀的 YAML 檔案。
|
|
4
|
+
|
|
5
|
+
## 偏好設定的生命週期
|
|
6
|
+
|
|
7
|
+
下圖說明了您的回饋如何成為一個可重複使用的規則,該規則可以應用於未來的任務,並可透過命令列進行管理。
|
|
8
|
+
|
|
9
|
+
```d2 The Preference Lifecycle
|
|
10
|
+
direction: down
|
|
11
|
+
|
|
12
|
+
feedback: {
|
|
13
|
+
label: "1. 使用者在 'refine' 或 'translate' 過程中提供回饋"
|
|
14
|
+
shape: rectangle
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
refiner: {
|
|
18
|
+
label: "2. Feedback Refiner Agent\n分析回饋"
|
|
19
|
+
shape: rectangle
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
decision: {
|
|
23
|
+
label: "這是一個可重複使用的策略嗎?"
|
|
24
|
+
shape: diamond
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
pref_file: {
|
|
28
|
+
label: "3. preferences.yml\n規則已儲存"
|
|
29
|
+
shape: cylinder
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
future_tasks: {
|
|
33
|
+
label: "4. 未來的任務\n已儲存的規則被應用"
|
|
34
|
+
shape: rectangle
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
cli: {
|
|
38
|
+
label: "5. CLI 管理\n('aigne doc prefs')"
|
|
39
|
+
shape: rectangle
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
feedback -> refiner: "輸入"
|
|
43
|
+
refiner -> decision: "分析"
|
|
44
|
+
decision -> pref_file: "是"
|
|
45
|
+
decision -> "捨棄(一次性修復)": "否"
|
|
46
|
+
pref_file -> future_tasks: "應用於"
|
|
47
|
+
cli <-> pref_file: "管理"
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 如何建立偏好設定
|
|
52
|
+
|
|
53
|
+
當您在 `refine` 或 `translate` 階段提供回饋時,一個內部 agent 會分析您的輸入。它會判斷該回饋是一次性的修復(例如,更正錯字)還是可重複使用的策略(例如,「總是使用英文撰寫程式碼註解」)。如果它代表一個持久性的指令,就會建立一個新的偏好設定規則。
|
|
54
|
+
|
|
55
|
+
### 規則屬性
|
|
56
|
+
|
|
57
|
+
儲存在 `preferences.yml` 中的每個規則都具有以下結構:
|
|
58
|
+
|
|
59
|
+
<x-field data-name="id" data-type="string" data-desc="規則的唯一、隨機產生的識別碼(例如,pref_a1b2c3d4e5f6g7h8)。"></x-field>
|
|
60
|
+
<x-field data-name="active" data-type="boolean" data-desc="表示該規則目前是否啟用。未啟用的規則在生成任務期間會被忽略。"></x-field>
|
|
61
|
+
<x-field data-name="scope" data-type="string" data-desc="定義該規則應在何時應用。有效的範圍是 'global'、'structure'、'document' 或 'translation'。"></x-field>
|
|
62
|
+
<x-field data-name="rule" data-type="string" data-desc="將在未來任務中傳遞給 AI 的具體、精煉的指令。"></x-field>
|
|
63
|
+
<x-field data-name="feedback" data-type="string" data-desc="使用者提供的原始自然語言回饋,保留以供參考。"></x-field>
|
|
64
|
+
<x-field data-name="createdAt" data-type="string" data-desc="表示規則建立時間的 ISO 8601 時間戳記。"></x-field>
|
|
65
|
+
<x-field data-name="paths" data-type="string[]" data-required="false" data-desc="一個可選的檔案路徑列表。如果存在,該規則僅適用於為這些特定來源檔案生成的內容。"></x-field>
|
|
66
|
+
|
|
67
|
+
## 使用 CLI 管理偏好設定
|
|
68
|
+
|
|
69
|
+
您可以使用 `aigne doc prefs` 命令來查看和管理所有已儲存的偏好設定。這讓您可以列出、啟用、停用或永久移除規則。
|
|
70
|
+
|
|
71
|
+
### 列出所有偏好設定
|
|
72
|
+
|
|
73
|
+
若要查看所有已儲存的偏好設定,包括啟用和未啟用的,請使用 `--list` 旗標。
|
|
74
|
+
|
|
75
|
+
```bash List all preferences icon=lucide:terminal
|
|
76
|
+
aigne doc prefs --list
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
該命令會顯示一個格式化的列表,顯示每個規則的狀態、範圍、ID 和任何路徑限制。
|
|
80
|
+
|
|
81
|
+
```text Example Output icon=lucide:clipboard-list
|
|
82
|
+
# 使用者偏好設定
|
|
83
|
+
|
|
84
|
+
**格式說明:**
|
|
85
|
+
- 🟢 = 啟用中的偏好設定,⚪ = 未啟用的偏好設定
|
|
86
|
+
- [scope] = 偏好設定範圍 (global, structure, document, translation)
|
|
87
|
+
- ID = 唯一的偏好設定識別碼
|
|
88
|
+
- Paths = 特定檔案路徑(如果適用)
|
|
89
|
+
|
|
90
|
+
🟢 [structure] pref_a1b2c3d4e5f6g7h8 | Paths: overview.md
|
|
91
|
+
在概覽文件的末尾新增一個「後續步驟」部分。
|
|
92
|
+
|
|
93
|
+
⚪ [document] pref_i9j0k1l2m3n4o5p6
|
|
94
|
+
程式碼註解必須以英文撰寫。
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### 停用和重新啟用偏好設定
|
|
98
|
+
|
|
99
|
+
如果您想暫時停用某個規則而不刪除它,可以使用 `--toggle` 旗標來切換其啟用狀態。在沒有 ID 的情況下執行該命令將啟動互動模式,讓您可以選擇一個或多個偏好設定進行切換。
|
|
100
|
+
|
|
101
|
+
```bash Toggle preferences interactively icon=lucide:terminal
|
|
102
|
+
aigne doc prefs --toggle
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
若要直接切換特定規則,請使用 `--id` 旗標提供其 ID。這對應於 `deactivateRule` 函式,該函式會將規則的 `active` 屬性設定為 `false`。
|
|
106
|
+
|
|
107
|
+
```bash Toggle a specific preference icon=lucide:terminal
|
|
108
|
+
aigne doc prefs --toggle --id pref_i9j0k1l2m3n4o5p6
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### 移除偏好設定
|
|
112
|
+
|
|
113
|
+
若要永久刪除一個或多個偏好設定,請使用 `--remove` 旗標。此操作對應於 `removeRule` 函式,且無法復原。
|
|
114
|
+
|
|
115
|
+
若要進入互動式選擇提示,請在不帶 ID 的情況下執行此命令。
|
|
116
|
+
|
|
117
|
+
```bash Remove preferences interactively icon=lucide:terminal
|
|
118
|
+
aigne doc prefs --remove
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
若要透過 ID 直接移除特定規則,請使用 `--id` 旗標。
|
|
122
|
+
|
|
123
|
+
```bash Remove a specific preference icon=lucide:terminal
|
|
124
|
+
aigne doc prefs --remove --id pref_a1b2c3d4e5f6g7h8
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## 後續步驟
|
|
128
|
+
|
|
129
|
+
管理偏好設定是根據專案特定需求量身打造 DocSmith 的關鍵部分。若要了解更多自訂選項,請探索主要的 [設定指南](./configuration.md)。
|