diff --git a/GEO_ROADMAP.md b/GEO_ROADMAP.md index 33a9459e..75e7ffc2 100644 --- a/GEO_ROADMAP.md +++ b/GEO_ROADMAP.md @@ -2,7 +2,7 @@ **Created:** 2026-06-12 **Updated:** 2026-07-07 -**Status:** Phase 1-8 shipped. The 2026-07-07 multilingual docs slice supersedes the old partial zh-CN boundary with full docs routes for `zh-CN`, `zh-Hant`, `ja`, `fr`, `de`, `es`, and `ko`; Search Console plus AI visibility remain external post-deploy work. +**Status:** Phase 1-8 shipped. The 2026-07-07 multilingual docs slice supersedes the old partial zh-CN boundary with full docs routes for every README/UI locale declared in `website/src/lib/publishedLocales.mjs`; Search Console plus AI visibility remain external post-deploy work. **Scope:** Documentation-site GEO for AI search visibility, language truth, GitHub Pages reliability, and answer-engine retrieval quality. This does not cover plugin runtime i18n. --- @@ -20,7 +20,7 @@ The current public language surface is complete for every published documentatio | English docs | Complete canonical docs under `website/docs/` | Primary crawl and answer source | | Simplified Chinese | Full docs route set under `website/i18n/zh-CN/.../current/` | Public localized docs surface, aligned one-to-one with English routes | | Traditional Chinese | Full docs route set under `website/i18n/zh-Hant/.../current/` | Public localized docs surface, aligned one-to-one with English routes | -| Japanese, French, German, Spanish, Korean | Full docs route sets under their locale folders | Public localized docs surfaces, aligned one-to-one with English routes | +| README/UI locale matrix | Full docs route sets for `zh-CN`, `zh-Hant`, `zh-TW`, `ja`, `fr`, `de`, `es`, `ko`, `it`, `pt`, `pt-BR`, `ru`, `ar`, `fa`, `hi`, `bn`, `nl`, `sv`, `fi`, `da`, `no`, `pl`, `tr`, `he`, `th`, `el`, `cs`, `hu`, `ro`, `uk`, `vi`, `id`, and `ms` | Public localized docs surfaces, aligned one-to-one with English routes | | Fallback localized docs | Retired for the public docs route set | Public localized docs should not rely on English fallback pages or emit `noindex,follow` | | Plugin UI i18n | Separate runtime feature | Do not treat runtime language support as website documentation coverage | | Localized UI chrome (navbar, footer, sidebar labels, pagination) | Generated per public locale by `website/scripts/generate-localized-docs.cjs` plus Docusaurus i18n JSON | Visible docs navigation should not expose stale English category labels | @@ -35,7 +35,7 @@ The previous GEO language policy was correct for a partial zh-CN release, but it | Fix | Files | Result | |---|---|---| -| Expand published locales | `website/docusaurus.config.js` | Public docs locales now include English, Simplified Chinese, Traditional Chinese, Japanese, French, German, Spanish, and Korean | +| Expand published locales | `website/src/lib/publishedLocales.mjs`, `website/docusaurus.config.js` | Public docs locales now include English plus every README/UI locale declared for documentation publishing | | Generate localized docs | `website/scripts/generate-localized-docs.cjs`, `website/i18n/**` | Every source page under `website/docs/` has a localized counterpart in each public locale | | Retire partial zh-CN scope | `website/src/lib/publishedLanguageScopeData.mjs`, `website/src/lib/languageRoutePolicy.js` | zh-CN scope now declares the full docs route set and locale-prefix parsing covers all public locales | | Extend build audit | `website/scripts/audit-build.cjs` | Build audit checks localized source coverage, localized build output, sitemap entries, `llms.txt`, and non-`noindex` localized docs | @@ -46,7 +46,7 @@ The previous GEO language policy was correct for a partial zh-CN release, but it | Requirement | Status | Evidence target | |---|---|---| | `/zh-CN/docs` aligns one-to-one with `/docs` | Implemented | `src/tests/websiteDocsContract.test.ts`, `npm --prefix website run audit:build` | -| `zh-Hant`, `ja`, `fr`, `de`, `es`, `ko` expose the same docs routes | Implemented | `website/i18n//docusaurus-plugin-content-docs/current/**` | +| Every README/UI documentation locale exposes the same docs routes | Implemented | `website/i18n//docusaurus-plugin-content-docs/current/**`, `src/tests/websiteDocsContract.test.ts` | | Visible zh-CN headings do not keep stale English labels | Implemented | stale-heading contract in `src/tests/websiteDocsContract.test.ts` | | Full multilingual docs route boundary is represented in answer-engine metadata | Implemented | `website/static/llms.txt`, sitemap, hreflang, homepage copy | @@ -57,7 +57,7 @@ The remaining GEO work is external measurement, not another source-only route re 1. deploy the multilingual docs update through the Pages workflow; 2. submit or refresh `sitemap.xml` plus representative localized sitemaps in Search Console; 3. inspect root, zh-CN root, FAQ, provider overview, representative provider detail, and representative localized docs across the new locales; -4. rerun English, Chinese, Japanese, French, German, Spanish, and Korean AI visibility prompts after the deployed Pages artifact is crawled. +4. rerun English, Chinese, Japanese, French, German, Spanish, Korean, and representative long-tail locale AI visibility prompts after the deployed Pages artifact is crawled. ## 2026-07-02 CI, Pages, CLI, And Slidev Closeout @@ -83,7 +83,7 @@ The remaining GEO work is external measurement, not another source-only route re 1. submit or refresh `sitemap.xml` and localized sitemaps in Search Console; 2. inspect root, zh-CN root, FAQ, provider overview, representative provider detail, and representative localized docs across public locales; -3. rerun English, Chinese, Japanese, French, German, Spanish, and Korean AI visibility prompts after the deployed Pages artifact is crawled; +3. rerun English, Chinese, Japanese, French, German, Spanish, Korean, and representative long-tail locale AI visibility prompts after the deployed Pages artifact is crawled; 4. keep future locale expansion scoped to complete docs route sets declared and audited in the repository. ## 2026-06-26 Phase 7 zh-CN Content Parity & UI Alignment @@ -246,8 +246,8 @@ The previous GEO work improved language scope, `llms.txt`, provider docs, and bu The effective strategy is truth-first and route-first, not locale-volume-first. 1. **Make canonical routes boring and stable.** Root, locale root, sitemap, robots, FAQ, intro, quick start, provider overview, and pillar pages must build without broken-link warnings. -2. **Publish only reviewed language surfaces.** Keep `en` complete and grow `zh-CN` by declared, translated, reviewed paths. Do not count Docusaurus fallback pages as Chinese content. -3. **Let one scope own all language signals.** Sitemap, noindex, hreflang, locale dropdown, sidebar, paginator, homepage links, and `llms.txt` must all follow `publishedLanguageScopeData.mjs`. +2. **Publish only complete language surfaces.** Keep `en` canonical and keep every locale in `publishedLocales.mjs` route-complete before exposing it publicly. Do not count Docusaurus fallback pages as localized content. +3. **Let explicit scope files own language signals.** `publishedLocales.mjs` owns public locale metadata; `publishedLanguageScopeData.mjs` owns legacy zh-CN route compatibility. Sitemap, noindex, hreflang, locale dropdown, sidebar, paginator, homepage links, and `llms.txt` must follow those sources. 4. **Treat the homepage as a source surface.** Public GEO/product-positioning updates must appear on the GitHub Pages homepage when they affect how users or answer engines should describe Notemd. 5. **Use `llms.txt` as the compact answer-engine map.** It should point to canonical docs, state partial zh-CN coverage, and reject generated exports or stale issue text as primary sources. 6. **Prefer fewer provider pages with real operational content.** Thin pages dilute answer quality. Provider docs need setup, endpoint/auth, model discovery, troubleshooting, and use boundaries. @@ -261,7 +261,7 @@ The effective strategy is truth-first and route-first, not locale-volume-first. |---|---|---| | Live Search Console verification | Local build cannot prove Google has accepted canonical, sitemap, and language signals | Submit `sitemap.xml` and `zh-CN/sitemap.xml`, inspect root, zh-CN root, and representative docs | | AI visibility retest after deployment | The old 0-citation baseline predates this route/content cleanup | Run EN and ZH prompts after Pages deploy, record exact prompts and citations | -| Full zh-CN documentation | Critical path is translated with content parity; feature, advanced, and provider detail docs are still English-only | Keep zh-CN partial and promote pages only through the scope data plus audit | +| Post-deploy multilingual indexing verification | Source-side route parity is implemented, but local build cannot prove search engines have accepted every new localized route | Submit/inspect root and representative localized sitemaps after Pages deploy | | `SoftwareApplication` JSON-LD locale conditioning | Global headTags in `docusaurus.config.js` cannot be locale-conditional | Later add locale-conditional wrapping or move to per-page injection via swizzled component | | Automated provider content freshness | Heading gates prevent stubs, not stale provider facts | Later add source-backed checks against provider registry defaults, not public marketing pages | | `llms.txt` drift protection beyond language scope | Current audit checks required route markers, not full semantic parity | Generate or snapshot route lists from Docusaurus metadata when docs volume grows | @@ -286,11 +286,11 @@ The effective strategy is truth-first and route-first, not locale-volume-first. |---|---|---|---| | Immediate | Docusaurus build | No root broken-link or deprecated markdown-hook warnings | Re-verify on Phase 7 deploy | | Immediate | Build-output GEO audit | `npm run audit:build` passes | Re-verify on Phase 7 deploy | -| Immediate | zh-CN critical path | Homepage plus 7 doc routes translated and published with content parity | Source-side aligned on 2026-06-26 | -| Immediate | zh-CN UI chrome | Navbar, footer, sidebar labels, pagination in Chinese | `code.json` + `docusaurus.config.json` deployed | +| Immediate | README/UI locale docs route parity | Every published documentation locale has the full 21-page docs route set | Source-side aligned on 2026-07-07 | +| Immediate | Localized UI chrome | Navbar, footer, sidebar labels, pagination, and Docusaurus theme strings exist for every public docs locale | Generated i18n JSON deployed | | Immediate | zh-CN FAQPage schema | `faqItems` frontmatter present for structured data | Implemented in Phase 7 | | Immediate | Homepage JSON-LD locale conditioning | `about` keywords and `isPartOf.name` reflect current locale | Implemented in Phase 7 | -| Immediate | AI retrieval map | `llms.txt` lists canonical docs and published zh-CN docs | Covered by audit | +| Immediate | AI retrieval map | `llms.txt` lists canonical docs and all published documentation locale entrypoints | Covered by audit | | Immediate | Homepage GEO sync | Homepage, JSON-LD, `llms.txt`, and audit share the same public facts | Covered by audit as of 2026-06-24 | | Post-deploy | Search Console sitemap acceptance | Root and zh-CN sitemaps submitted and inspectable | Pending external console check | | Post-deploy | First AI visibility signal | 1+ ChatGPT/Perplexity/GLM mention for target prompts | 0 baseline, pending retest | @@ -302,7 +302,7 @@ The effective strategy is truth-first and route-first, not locale-volume-first. |---|---| | 2026-06-22 | Verify Phase 5 source-side build, audit, zh-CN scope, provider docs, measurement log, `llms.txt`, and sitemap contract | | 2026-06-24 | Verify homepage GEO sync across visible homepage, JSON-LD, `llms.txt`, audit, and measurement logs | -| 2026-06-26 | Verify Phase 7 zh-CN content parity, UI chrome translations, homepage JSON-LD locale conditioning, and `languageBoundary` fix | +| 2026-07-07 | Verify Phase 8 README/UI locale docs route parity, generated i18n chrome JSON, homepage/`llms.txt` language boundary, Docusaurus build, and build audit | | After deploy | Submit sitemap and inspect canonical root, zh-CN root, FAQ, provider overview, and representative fallback pages in Search Console | | 2026-07-01 | Retest AI visibility baseline in EN and ZH after the fixed Pages deployment | | 2026-08-01 | Second retest; if citations remain 0, audit indexed pages and provider-page freshness | diff --git a/docs/maintainer/github-pages-geo-measurement-log.md b/docs/maintainer/github-pages-geo-measurement-log.md index a0f2738e..9ef9676f 100644 --- a/docs/maintainer/github-pages-geo-measurement-log.md +++ b/docs/maintainer/github-pages-geo-measurement-log.md @@ -52,10 +52,10 @@ This log separates source-side GEO proof from live indexing proof. `npm run audi | Evidence | Current state | Owner | |---|---|---| -| Language policy | The previous partial zh-CN fallback boundary is superseded by full docs route publication for `zh-CN`, `zh-Hant`, `ja`, `fr`, `de`, `es`, and `ko` | `website/docusaurus.config.js`, `website/README.md` | +| Language policy | The previous partial zh-CN fallback boundary is superseded by full docs route publication for every README/UI locale declared in `website/src/lib/publishedLocales.mjs`, including `zh-CN`, `zh-Hant`, `zh-TW`, `ja`, `fr`, `de`, `es`, `ko`, `it`, `pt`, `pt-BR`, `ru`, `ar`, `fa`, `hi`, `bn`, `nl`, `sv`, `fi`, `da`, `no`, `pl`, `tr`, `he`, `th`, `el`, `cs`, `hu`, `ro`, `uk`, `vi`, `id`, and `ms` | `website/src/lib/publishedLocales.mjs`, `website/docusaurus.config.js`, `website/README.md` | | Localized source coverage | Every source page under `website/docs/` must have a localized counterpart under every public locale before deploy | `website/scripts/generate-localized-docs.cjs`, `src/tests/websiteDocsContract.test.ts` | | Build audit | `npm run audit:build` must verify localized source coverage, localized build output, sitemap entries, `llms.txt` entry points, and absence of `noindex,follow` on public localized docs | `website/scripts/audit-build.cjs` | -| Answer-engine map | `llms.txt` now states that English remains canonical while the full public docs route set is available in Simplified Chinese, Traditional Chinese, Japanese, French, German, Spanish, and Korean | `website/static/llms.txt` | +| Answer-engine map | `llms.txt` now states that English remains canonical while the full public docs route set is available in every published documentation locale | `website/static/llms.txt` | | Search Console | Not locally verifiable; submit and inspect representative localized docs after the Pages workflow deploys the multilingual update | External manual check | | AI visibility | Not locally verifiable; retest multilingual answer-engine visibility after deploy and indexing window | External/manual or API-backed check | @@ -93,14 +93,16 @@ Use this set for Search Console inspection and manual AI visibility prompts: |---|---| | `https://jacobinwwey.github.io/obsidian-NotEMD/` | Canonical English root | | `https://jacobinwwey.github.io/obsidian-NotEMD/llms.txt` | Answer-engine source map linked from the homepage | -| `https://jacobinwwey.github.io/obsidian-NotEMD/docs/intro` | English canonical doc with zh-CN alternate | -| `https://jacobinwwey.github.io/obsidian-NotEMD/docs/getting-started/quick-start` | English canonical doc with zh-CN alternate | -| `https://jacobinwwey.github.io/obsidian-NotEMD/docs/providers/overview` | English canonical doc with zh-CN alternate | -| `https://jacobinwwey.github.io/obsidian-NotEMD/docs/providers/openai` | English-only provider detail; no zh-CN alternate until translated | +| `https://jacobinwwey.github.io/obsidian-NotEMD/docs/intro` | English canonical doc with full published locale alternates | +| `https://jacobinwwey.github.io/obsidian-NotEMD/docs/getting-started/quick-start` | English canonical doc with full published locale alternates | +| `https://jacobinwwey.github.io/obsidian-NotEMD/docs/providers/overview` | English canonical doc with full published locale alternates | +| `https://jacobinwwey.github.io/obsidian-NotEMD/docs/providers/openai` | English canonical provider detail with full published locale alternates | | `https://jacobinwwey.github.io/obsidian-NotEMD/zh-CN/` | Published zh-CN root | | `https://jacobinwwey.github.io/obsidian-NotEMD/zh-CN/docs/intro` | Published zh-CN doc | | `https://jacobinwwey.github.io/obsidian-NotEMD/zh-CN/docs/providers/overview` | Published zh-CN doc | -| `https://jacobinwwey.github.io/obsidian-NotEMD/zh-CN/docs/providers/openai` | Generated fallback only; must be `noindex,follow`, absent from zh-CN sitemap, and absent from hreflang alternates | +| `https://jacobinwwey.github.io/obsidian-NotEMD/zh-CN/docs/providers/openai` | Published zh-CN provider detail | +| `https://jacobinwwey.github.io/obsidian-NotEMD/zh-Hant/docs/intro` | Published Traditional Chinese doc | +| `https://jacobinwwey.github.io/obsidian-NotEMD/ar/docs/intro` | Published Arabic doc with RTL locale metadata | ## Search Console Checklist @@ -108,8 +110,8 @@ Run after the deployed Pages artifact contains the 2026-06-22 build: 1. Submit or refresh `https://jacobinwwey.github.io/obsidian-NotEMD/sitemap.xml`. 2. Submit or refresh `https://jacobinwwey.github.io/obsidian-NotEMD/zh-CN/sitemap.xml`. -3. Inspect the root route, zh-CN root, `docs/intro`, `docs/providers/overview`, and `docs/faq`. -4. Inspect one unpublished zh-CN fallback such as `/zh-CN/docs/providers/openai`; expected result is not indexable because of `noindex,follow`. +3. Inspect the root route, zh-CN root, `docs/intro`, `docs/providers/overview`, `docs/providers/openai`, and `docs/faq`. +4. Inspect representative localized docs such as `/zh-CN/docs/providers/openai`, `/zh-Hant/docs/intro`, `/ar/docs/intro`, and `/pt-BR/docs/faq`; expected result is indexable with canonical/hreflang signals, not `noindex,follow`. 5. Record canonical URL, crawl status, indexing status, and last crawl date. ## AI Visibility Checklist @@ -120,11 +122,11 @@ Run after Search Console has accepted or crawled the updated sitemap: |---|---| | "What is Notemd for Obsidian?" | Mentions persistent AI knowledge workflows, wiki-links, concept notes, research, translation, diagrams, and local vault output | | "How do I configure Notemd providers?" | Cites or reflects provider overview and provider detail pages | -| "Notemd 中文文档支持哪些页面?" | States zh-CN is partial and includes homepage, intro, installation, quick start, configuration, provider overview, AI knowledge pillar, and FAQ | +| "Notemd 文档支持哪些语言?" | States English is canonical and the full docs route set is available in every published documentation locale | | "Can Notemd run local LLMs?" | Mentions Ollama/LMStudio and local-vault privacy | -Record engine, date, prompt, whether a citation appeared, cited URL, and whether the answer respected the partial zh-CN language scope. +Record engine, date, prompt, whether a citation appeared, cited URL, and whether the answer respected the published locale route matrix. ## Decision Rule -Do not expand locales or add more GEO surfaces because AI visibility is still low. If citations remain absent after indexing, first check whether canonical docs are indexed, whether provider pages are too stale, and whether `llms.txt` still matches the route graph. +Do not add more GEO surfaces because AI visibility is still low. If citations remain absent after indexing, first check whether canonical and representative localized docs are indexed, whether provider pages are too stale, and whether `llms.txt` still matches the route graph. diff --git a/docs/maintainer/github-pages-geo-measurement-log.zh-CN.md b/docs/maintainer/github-pages-geo-measurement-log.zh-CN.md index 4e2dc121..1288b66f 100644 --- a/docs/maintainer/github-pages-geo-measurement-log.zh-CN.md +++ b/docs/maintainer/github-pages-geo-measurement-log.zh-CN.md @@ -52,10 +52,10 @@ | 证据 | 当前状态 | 负责人 | |---|---|---| -| 语言策略 | 先前的部分 zh-CN fallback 边界已被完整 docs 路由发布策略取代,覆盖 `zh-CN`、`zh-Hant`、`ja`、`fr`、`de`、`es` 与 `ko` | `website/docusaurus.config.js`, `website/README.md` | +| 语言策略 | 先前的部分 zh-CN fallback 边界已被完整 docs 路由发布策略取代,覆盖 `website/src/lib/publishedLocales.mjs` 声明的每个 README/UI locale,包括 `zh-CN`、`zh-Hant`、`zh-TW`、`ja`、`fr`、`de`、`es`、`ko`、`it`、`pt`、`pt-BR`、`ru`、`ar`、`fa`、`hi`、`bn`、`nl`、`sv`、`fi`、`da`、`no`、`pl`、`tr`、`he`、`th`、`el`、`cs`、`hu`、`ro`、`uk`、`vi`、`id` 与 `ms` | `website/src/lib/publishedLocales.mjs`, `website/docusaurus.config.js`, `website/README.md` | | 本地化源码覆盖 | `website/docs/` 下每个源页面在部署前都必须在每个公开 locale 下有本地化对应文件 | `website/scripts/generate-localized-docs.cjs`, `src/tests/websiteDocsContract.test.ts` | | Build audit | `npm run audit:build` 必须验证本地化源码覆盖、构建产物、sitemap entries、`llms.txt` 入口,以及公开本地化 docs 不输出 `noindex,follow` | `website/scripts/audit-build.cjs` | -| Answer-engine map | `llms.txt` 现在声明英文仍是 canonical,同时完整公开 docs 路由集已覆盖简体中文、繁体中文、日语、法语、德语、西班牙语与韩语 | `website/static/llms.txt` | +| Answer-engine map | `llms.txt` 现在声明英文仍是 canonical,同时完整公开 docs 路由集已覆盖每个已发布文档 locale | `website/static/llms.txt` | | Search Console | 本地无法证明;多语言更新经 Pages workflow 部署后,应提交并检查代表性本地化 docs | 外部手工检查 | | AI visibility | 本地无法证明;部署和索引窗口后再重测多语言 answer-engine visibility | 外部手工或 API 检查 | @@ -93,14 +93,16 @@ Search Console 检查和 AI visibility prompt 使用这一组: |---|---| | `https://jacobinwwey.github.io/obsidian-NotEMD/` | Canonical 英文 root | | `https://jacobinwwey.github.io/obsidian-NotEMD/llms.txt` | 首页链接的 answer-engine source map | -| `https://jacobinwwey.github.io/obsidian-NotEMD/docs/intro` | 英文 canonical doc,带 zh-CN alternate | -| `https://jacobinwwey.github.io/obsidian-NotEMD/docs/getting-started/quick-start` | 英文 canonical doc,带 zh-CN alternate | -| `https://jacobinwwey.github.io/obsidian-NotEMD/docs/providers/overview` | 英文 canonical doc,带 zh-CN alternate | -| `https://jacobinwwey.github.io/obsidian-NotEMD/docs/providers/openai` | English-only provider detail;翻译前不应有 zh-CN alternate | +| `https://jacobinwwey.github.io/obsidian-NotEMD/docs/intro` | 英文 canonical doc,带完整公开 locale alternates | +| `https://jacobinwwey.github.io/obsidian-NotEMD/docs/getting-started/quick-start` | 英文 canonical doc,带完整公开 locale alternates | +| `https://jacobinwwey.github.io/obsidian-NotEMD/docs/providers/overview` | 英文 canonical doc,带完整公开 locale alternates | +| `https://jacobinwwey.github.io/obsidian-NotEMD/docs/providers/openai` | 英文 canonical provider detail,带完整公开 locale alternates | | `https://jacobinwwey.github.io/obsidian-NotEMD/zh-CN/` | 已发布 zh-CN root | | `https://jacobinwwey.github.io/obsidian-NotEMD/zh-CN/docs/intro` | 已发布 zh-CN doc | | `https://jacobinwwey.github.io/obsidian-NotEMD/zh-CN/docs/providers/overview` | 已发布 zh-CN doc | -| `https://jacobinwwey.github.io/obsidian-NotEMD/zh-CN/docs/providers/openai` | 仅为生成的 fallback;必须是 `noindex,follow`,不在 zh-CN sitemap 中,也不出现在 hreflang alternates 中 | +| `https://jacobinwwey.github.io/obsidian-NotEMD/zh-CN/docs/providers/openai` | 已发布 zh-CN provider detail | +| `https://jacobinwwey.github.io/obsidian-NotEMD/zh-Hant/docs/intro` | 已发布繁体中文 doc | +| `https://jacobinwwey.github.io/obsidian-NotEMD/ar/docs/intro` | 已发布阿拉伯语 doc,具备 RTL locale metadata | ## Search Console Checklist @@ -108,8 +110,8 @@ Search Console 检查和 AI visibility prompt 使用这一组: 1. 提交或刷新 `https://jacobinwwey.github.io/obsidian-NotEMD/sitemap.xml`。 2. 提交或刷新 `https://jacobinwwey.github.io/obsidian-NotEMD/zh-CN/sitemap.xml`。 -3. 检查 root route、zh-CN root、`docs/intro`、`docs/providers/overview` 与 `docs/faq`。 -4. 检查一个未发布 zh-CN fallback,例如 `/zh-CN/docs/providers/openai`;预期因为 `noindex,follow` 不可索引。 +3. 检查 root route、zh-CN root、`docs/intro`、`docs/providers/overview`、`docs/providers/openai` 与 `docs/faq`。 +4. 检查代表性本地化 docs,例如 `/zh-CN/docs/providers/openai`、`/zh-Hant/docs/intro`、`/ar/docs/intro` 与 `/pt-BR/docs/faq`;预期结果是带 canonical/hreflang 信号且可索引,而不是 `noindex,follow`。 5. 记录 canonical URL、crawl status、indexing status 与 last crawl date。 ## AI Visibility Checklist @@ -120,11 +122,11 @@ Search Console 接受或抓取新 sitemap 后执行: |---|---| | "What is Notemd for Obsidian?" | 提到 persistent AI knowledge workflows、wiki-links、concept notes、research、translation、diagrams 与 local vault output | | "How do I configure Notemd providers?" | 引用或反映 provider overview 与 provider detail pages | -| "Notemd 中文文档支持哪些页面?" | 说明 zh-CN 是 partial,并列出 homepage、intro、installation、quick start、configuration、provider overview、AI knowledge pillar 与 FAQ | +| "Notemd 文档支持哪些语言?" | 说明英文是 canonical,完整 docs 路由集已覆盖每个已发布文档 locale | | "Can Notemd run local LLMs?" | 提到 Ollama/LMStudio 与 local-vault privacy | -记录 engine、date、prompt、是否出现 citation、cited URL,以及回答是否尊重 partial zh-CN language scope。 +记录 engine、date、prompt、是否出现 citation、cited URL,以及回答是否尊重已发布 locale 路由矩阵。 ## 决策规则 -不要因为 AI visibility 仍低就盲目扩 locale 或增加 GEO surface。若索引后仍没有 citation,先检查 canonical docs 是否被收录、provider pages 是否过期、`llms.txt` 是否仍与 route graph 一致。 +不要因为 AI visibility 仍低就盲目增加 GEO surface。若索引后仍没有 citation,先检查 canonical 与代表性本地化 docs 是否被收录、provider pages 是否过期、`llms.txt` 是否仍与 route graph 一致。 diff --git a/docs/maintainer/github-pages-language-geo-workflow.md b/docs/maintainer/github-pages-language-geo-workflow.md index 8d9d43de..de49b920 100644 --- a/docs/maintainer/github-pages-language-geo-workflow.md +++ b/docs/maintainer/github-pages-language-geo-workflow.md @@ -6,11 +6,11 @@ This workflow records the public documentation-site gate for `website/`. It is s ## Current Contract -The website now publishes one canonical source surface and seven complete localized documentation route sets: +The website now publishes one canonical source surface and a complete localized documentation route set for every README/UI locale declared in `website/src/lib/publishedLocales.mjs`: 1. English remains the canonical complete documentation surface under `https://jacobinwwey.github.io/obsidian-NotEMD/docs/...`. -2. Simplified Chinese (`zh-CN`), Traditional Chinese (`zh-Hant`), Japanese (`ja`), French (`fr`), German (`de`), Spanish (`es`), and Korean (`ko`) must each expose the same docs route set as `website/docs`. -3. A locale must not be added to `docusaurus.config.js` unless every source page under `website/docs/` has a localized counterpart under `website/i18n//docusaurus-plugin-content-docs/current/`. +2. The public localized docs matrix is `zh-CN`, `zh-Hant`, `zh-TW`, `ja`, `fr`, `de`, `es`, `ko`, `it`, `pt`, `pt-BR`, `ru`, `ar`, `fa`, `hi`, `bn`, `nl`, `sv`, `fi`, `da`, `no`, `pl`, `tr`, `he`, `th`, `el`, `cs`, `hu`, `ro`, `uk`, `vi`, `id`, and `ms`; each locale must expose the same docs route set as `website/docs`. +3. A locale must not be added to `publishedLocales.mjs` unless every source page under `website/docs/` has a localized counterpart under `website/i18n//docusaurus-plugin-content-docs/current/`. 4. The previous partial zh-CN fallback policy is retired for public docs. Built localized docs must not rely on English fallback pages and must not emit `noindex,follow`. 5. `llms.txt`, sitemap output, hreflang metadata, the homepage language boundary, and build-audit expectations must describe the same full-route multilingual contract. 6. Public GEO/product-positioning changes must update the visible GitHub Pages homepage, homepage JSON-LD, `llms.txt`, and build-audit expectations in the same change. Updating only maintainer notes is not enough. @@ -29,7 +29,7 @@ npm run audit:build 1. root pages exist for English and every published locale; 2. root pages have the expected `lang`, canonical URL, and WebPage JSON-LD URL where applicable; -3. every English source doc has a matching localized source doc for `zh-CN`, `zh-Hant`, `ja`, `fr`, `de`, `es`, and `ko`; +3. every English source doc has a matching localized source doc for every locale declared in `publishedLocales.mjs`; 4. `publishedLanguageScopeData.mjs` declares the full docs route set for zh-CN compatibility gates; 5. localized docs build for every supported locale and do not emit `noindex,follow`; 6. sitemap output includes canonical English docs and each localized docs route; @@ -57,6 +57,12 @@ The full zh-CN compatibility scope lives in: website/src/lib/publishedLanguageScopeData.mjs ``` +The public locale matrix lives in: + +```text +website/src/lib/publishedLocales.mjs +``` + Runtime helpers live in: ```text @@ -116,7 +122,7 @@ When adding or changing a docs page: 1. Update the English source under `website/docs/...`. 2. Run or update `website/scripts/generate-localized-docs.cjs` so every supported locale receives the page. 3. Review `zh-CN` first for visible title, heading, and body drift. Product tokens such as `Notemd`, `LLM`, `Provider`, CLI flags, config keys, file extensions, and code identifiers may remain in English when they are runtime contracts. -4. Review `zh-Hant`, `ja`, `fr`, `de`, `es`, and `ko` for visible stale English headings. +4. Run the full locale heading/frontmatter/placeholder audit for every public locale, then manually inspect zh-CN plus representative non-Latin and RTL locales (`ar`, `fa`, `he`) for visible stale English headings or broken direction-sensitive layout. 5. Update `website/src/lib/publishedLanguageScopeData.mjs` if the docs route set changed. 6. Update `website/static/llms.txt` if the page changes the public AI retrieval map. 7. Update `website/src/pages/index.js` if the page changes the homepage source map or visible language boundary. @@ -133,6 +139,6 @@ The stricter full-route model has a maintenance cost: every docs change touches 1. Keep English canonical and complete. 2. Keep all public locale docs route sets complete before deploy. -3. Use `generate-localized-docs.cjs` for repeatability, but review visible zh-CN text first because machine-style generic headings are worse than explicit localized headings. +3. Use `generate-localized-docs.cjs` for repeatability, but review visible zh-CN text and representative RTL/non-Latin output because machine-style generic headings are worse than explicit localized headings. 4. Treat Search Console and AI visibility as post-deploy measurement, not local build proof. 5. Avoid new generic wrappers around Docusaurus theme components. Existing theme overrides are acceptable only because they own concrete policy: alternates, locale switching, sidebar filtering, and paginator filtering. diff --git a/docs/maintainer/github-pages-language-geo-workflow.zh-CN.md b/docs/maintainer/github-pages-language-geo-workflow.zh-CN.md index 25e6356e..2c068059 100644 --- a/docs/maintainer/github-pages-language-geo-workflow.zh-CN.md +++ b/docs/maintainer/github-pages-language-geo-workflow.zh-CN.md @@ -6,11 +6,11 @@ ## 当前契约 -文档站现在发布一个 canonical 源语言面和七个完整本地化文档路由集: +文档站现在发布一个 canonical 源语言面,并为 `website/src/lib/publishedLocales.mjs` 中声明的每个 README/UI locale 发布完整本地化文档路由集: 1. 英文仍是完整 canonical 文档面,路径为 `https://jacobinwwey.github.io/obsidian-NotEMD/docs/...`。 -2. 简体中文(`zh-CN`)、繁体中文(`zh-Hant`)、日语(`ja`)、法语(`fr`)、德语(`de`)、西班牙语(`es`)和韩语(`ko`)必须暴露与 `website/docs` 完全相同的 docs 路由集。 -3. 只有当 `website/docs/` 下每个源页面都在 `website/i18n//docusaurus-plugin-content-docs/current/` 下有本地化对应文件时,才能把该 locale 加入 `docusaurus.config.js`。 +2. 当前公开本地化 docs 矩阵为 `zh-CN`、`zh-Hant`、`zh-TW`、`ja`、`fr`、`de`、`es`、`ko`、`it`、`pt`、`pt-BR`、`ru`、`ar`、`fa`、`hi`、`bn`、`nl`、`sv`、`fi`、`da`、`no`、`pl`、`tr`、`he`、`th`、`el`、`cs`、`hu`、`ro`、`uk`、`vi`、`id` 与 `ms`;每个 locale 都必须暴露与 `website/docs` 完全相同的 docs 路由集。 +3. 只有当 `website/docs/` 下每个源页面都在 `website/i18n//docusaurus-plugin-content-docs/current/` 下有本地化对应文件时,才能把该 locale 加入 `publishedLocales.mjs`。 4. 先前的部分 zh-CN fallback 策略对公开 docs 已经退役。构建后的本地化 docs 不应依赖英文 fallback 页面,也不应输出 `noindex,follow`。 5. `llms.txt`、sitemap 输出、hreflang metadata、首页语言边界与 build-audit 预期必须描述同一套完整多语言路由契约。 6. 任何公开 GEO / product-positioning 变更,都必须在同一次变更中同步 GitHub Pages 首页可见内容、首页 JSON-LD、`llms.txt` 与 build-audit 预期。只更新 maintainer notes 不算完成。 @@ -29,7 +29,7 @@ npm run audit:build 1. 英文和每个公开 locale 的 root 页面都存在; 2. root 页面具有预期的 `lang`、canonical URL,以及适用的 WebPage JSON-LD URL; -3. 每个英文源文档在 `zh-CN`、`zh-Hant`、`ja`、`fr`、`de`、`es` 与 `ko` 中都有本地化源文档; +3. 每个英文源文档在 `publishedLocales.mjs` 声明的每个公开 locale 中都有本地化源文档; 4. `publishedLanguageScopeData.mjs` 为 zh-CN 兼容门禁声明完整 docs 路由集; 5. 每个支持 locale 的本地化 docs 都能构建,并且不输出 `noindex,follow`; 6. sitemap 输出包含 canonical 英文 docs 和每个本地化 docs 路由; @@ -57,6 +57,12 @@ GitHub Pages workflow 会在上传 Pages artifact 前运行这个审计: website/src/lib/publishedLanguageScopeData.mjs ``` +公开 locale 矩阵在: + +```text +website/src/lib/publishedLocales.mjs +``` + 运行时 helper 在: ```text @@ -116,7 +122,7 @@ website/scripts/generate-localized-docs.cjs 1. 更新 `website/docs/...` 下的英文源页面。 2. 运行或更新 `website/scripts/generate-localized-docs.cjs`,确保每个支持 locale 都得到对应页面。 3. 先 review `zh-CN` 的可见标题、章节标题和正文漂移。`Notemd`、`LLM`、`Provider`、CLI flags、配置键、文件扩展名和代码标识符是 runtime contract,可按需要保留英文。 -4. 检查 `zh-Hant`、`ja`、`fr`、`de`、`es` 与 `ko` 中是否还有可见英文标题残留。 +4. 对每个公开 locale 运行完整的 heading/frontmatter/placeholder 审计,然后人工抽查 zh-CN 以及代表性的非拉丁和 RTL locale(`ar`、`fa`、`he`),确认没有可见英文标题残留或方向敏感布局问题。 5. 如果 docs 路由集变化,同步更新 `website/src/lib/publishedLanguageScopeData.mjs`。 6. 如果页面影响公开 AI retrieval map,同步更新 `website/static/llms.txt`。 7. 如果页面改变首页 source map 或可见语言边界,同步更新 `website/src/pages/index.js`。 @@ -133,6 +139,6 @@ website/scripts/generate-localized-docs.cjs 1. 英文继续保持 canonical 且完整。 2. 每次部署前,保持所有公开 locale 的 docs 路由集完整。 -3. 使用 `generate-localized-docs.cjs` 保证可重复生成,但必须优先 review 可见 zh-CN 文本,因为机器式泛化标题比明确本地化标题更差。 +3. 使用 `generate-localized-docs.cjs` 保证可重复生成,但必须优先 review 可见 zh-CN 文本,并抽查代表性的 RTL/非拉丁输出,因为机器式泛化标题比明确本地化标题更差。 4. Search Console 与 AI visibility 是部署后的 measurement,不是本地 build proof。 5. 不要给 Docusaurus theme components 增加新的泛化 wrapper。现有 theme overrides 可以接受,只是因为它们承接了具体 policy:alternates、locale switching、sidebar filtering 与 paginator filtering。 diff --git a/src/tests/websiteDocsContract.test.ts b/src/tests/websiteDocsContract.test.ts index f1b8f091..b29e1ec6 100644 --- a/src/tests/websiteDocsContract.test.ts +++ b/src/tests/websiteDocsContract.test.ts @@ -3,6 +3,30 @@ import * as path from 'path'; const matter = require('../../website/node_modules/gray-matter'); +type PublishedDocumentationLocale = { + locale: string; + htmlLang: string; + englishName: string; +}; + +function loadPublishedLocaleContract(websiteRoot: string): { + documentationLocales: PublishedDocumentationLocale[]; + languageScopeSentence: string; +} { + const sourcePath = path.join(websiteRoot, 'src', 'lib', 'publishedLocales.mjs'); + const source = fs.readFileSync(sourcePath, 'utf8'); + const runnableSource = source + .replace(/\bexport const\b/g, 'const') + .replace(/\bexport function\b/g, 'function'); + return new Function(` + ${runnableSource} + return { + documentationLocales: publishedDocumentationLocales, + languageScopeSentence: publishedLanguageScopeSentence(), + }; + `)(); +} + function markdownHeadings(content: string): string[] { const headings: string[] = []; let inFence = false; @@ -42,6 +66,12 @@ function markdownHeadingLevels(content: string): number[] { return levels; } +function expectNoTrailingWhitespace(content: string, context: string): void { + if (/[ \t]+$/m.test(content)) { + throw new Error(`${context} contains trailing whitespace`); + } +} + describe('website documentation contract', () => { const repoRoot = path.join(__dirname, '..', '..'); const websiteRoot = path.join(repoRoot, 'website'); @@ -63,7 +93,8 @@ describe('website documentation contract', () => { path.join(websiteRoot, 'i18n', 'zh-CN', 'docusaurus-plugin-content-docs', 'current.json'), 'utf8' )); - const localizedLocales = ['zh-CN', 'zh-Hant', 'ja', 'fr', 'de', 'es', 'ko']; + const publishedLocaleContract = loadPublishedLocaleContract(websiteRoot); + const localizedLocales = publishedLocaleContract.documentationLocales.map(({ locale }) => locale); const localizedFillerMarkers = [ '这一部分解释产品行为', '這一部分說明產品行為', @@ -250,6 +281,50 @@ describe('website documentation contract', () => { } }); + test('published locale metadata covers the README and UI locale documentation matrix', () => { + expect(localizedLocales).toEqual([ + 'zh-CN', + 'zh-Hant', + 'zh-TW', + 'ja', + 'fr', + 'de', + 'es', + 'ko', + 'it', + 'pt', + 'pt-BR', + 'ru', + 'ar', + 'fa', + 'hi', + 'bn', + 'nl', + 'sv', + 'fi', + 'da', + 'no', + 'pl', + 'tr', + 'he', + 'th', + 'el', + 'cs', + 'hu', + 'ro', + 'uk', + 'vi', + 'id', + 'ms', + ]); + expect(publishedLocaleContract.languageScopeSentence) + .toContain('Traditional Chinese for Taiwan'); + expect(publishedLocaleContract.languageScopeSentence) + .toContain('Brazilian Portuguese'); + expect(publishedLocaleContract.languageScopeSentence) + .toContain('Malay'); + }); + test('all published documentation locales mirror the English docs route set', () => { const expectedSourceDocs = sourceDocPaths(); @@ -274,6 +349,7 @@ describe('website documentation contract', () => { for (const sourcePath of sourceDocPaths()) { const englishContent = fs.readFileSync(path.join(docsRoot, sourcePath), 'utf8'); const expectedHeadingLevels = markdownHeadingLevels(englishContent); + expectNoTrailingWhitespace(englishContent, `English source doc ${sourcePath}`); for (const locale of localizedLocales) { const localizedPath = path.join( @@ -289,6 +365,7 @@ describe('website documentation contract', () => { expect(() => matter(localizedContent)).not.toThrow(); expect(markdownHeadingLevels(localizedContent)).toEqual(expectedHeadingLevels); expect(localizedContent).not.toMatch(placeholderPollutionPattern); + expectNoTrailingWhitespace(localizedContent, `${locale} source doc ${sourcePath}`); for (const marker of localizedFillerMarkers) { expect(localizedContent).not.toContain(marker); } @@ -342,8 +419,10 @@ describe('website documentation contract', () => { '回到顶部', ]; - for (const locale of ['ja', 'fr', 'de', 'es', 'ko']) { - const codeJson = fs.readFileSync(path.join(websiteRoot, 'i18n', locale, 'code.json'), 'utf8'); + for (const locale of localizedLocales.filter(locale => locale !== 'zh-CN')) { + const codeJsonPath = path.join(websiteRoot, 'i18n', locale, 'code.json'); + expect(fs.existsSync(codeJsonPath)).toBe(true); + const codeJson = fs.readFileSync(codeJsonPath, 'utf8'); for (const marker of simplifiedChineseChromeMarkers) { expect(codeJson).not.toContain(marker); } diff --git a/website/README.md b/website/README.md index 5737a42d..395ca9f4 100644 --- a/website/README.md +++ b/website/README.md @@ -6,7 +6,7 @@ This directory contains the Docusaurus-based documentation site for Notemd. - **Docusaurus 3.10.1** with GitHub Pages deployment - **Automatic JSON-LD injection** via swizzled `DocItem/Layout` -- **Published locales**: English (`en`) plus full docs routes for Simplified Chinese (`zh-CN`), Traditional Chinese (`zh-Hant`), Japanese (`ja`), French (`fr`), German (`de`), Spanish (`es`), and Korean (`ko`) +- **Published locales**: English (`en`) plus full docs routes for Simplified Chinese (`zh-CN`), Traditional Chinese (`zh-Hant`), Traditional Chinese for Taiwan (`zh-TW`), Japanese (`ja`), French (`fr`), German (`de`), Spanish (`es`), Korean (`ko`), Italian (`it`), Portuguese (`pt`), Brazilian Portuguese (`pt-BR`), Russian (`ru`), Arabic (`ar`), Persian (`fa`), Hindi (`hi`), Bengali (`bn`), Dutch (`nl`), Swedish (`sv`), Finnish (`fi`), Danish (`da`), Norwegian (`no`), Polish (`pl`), Turkish (`tr`), Hebrew (`he`), Thai (`th`), Greek (`el`), Czech (`cs`), Hungarian (`hu`), Romanian (`ro`), Ukrainian (`uk`), Vietnamese (`vi`), Indonesian (`id`), and Malay (`ms`) - **AI-readable structure**: TLDR components, FAQPage Schema, TechArticle Schema, citations, concept metadata, and `llms.txt` ## Local Development @@ -31,7 +31,8 @@ The build generates static content into `build`. The audit checks the public con - root and localized root pages exist; - canonical and JSON-LD URLs match GitHub Pages routes; - homepage GEO text, `llms.txt` link, release version, and multilingual route boundary are present on localized homepages; -- every localized zh-CN doc file is declared in `publishedLanguageScopeData.mjs`; +- every published localized docs locale mirrors the English source MDX route set; +- the legacy route inventory in `publishedLanguageScopeData.mjs` stays aligned with the source docs consumed by older GEO gates; - published localized docs are indexable and expose correct alternates; - the old unpublished zh-CN fallback path is retired because the docs route set is now localized end-to-end; - English docs expose locale alternates for the full published docs route set; @@ -72,7 +73,8 @@ npm run audit:build ### 3. Language Signal Ownership -- `website/src/lib/publishedLanguageScopeData.mjs`: published zh-CN doc ids, route paths, source paths, homepage paths, and critical paths +- `website/src/lib/publishedLocales.mjs`: the single source of truth for Docusaurus locale codes, labels, `htmlLang`, text direction, and the public language-scope sentence +- `website/src/lib/publishedLanguageScopeData.mjs`: published doc ids, route paths, source paths, homepage paths, and critical paths consumed by legacy zh-CN GEO gates - `website/src/lib/publishedLanguageScope.js`: runtime set helpers derived from the data file - `website/src/lib/languageRoutePolicy.js`: route policy helpers for doc path extraction, locale-prefix stripping, canonical English targets, and zh-CN compatibility helpers @@ -87,7 +89,7 @@ These overrides are intentionally policy-bearing. Do not replace them with a gen ### 5. Root Homepage for GitHub Pages -- `src/pages/index.js`: real root route for `/obsidian-NotEMD/` and `/obsidian-NotEMD/zh-CN/` +- `src/pages/index.js`: real root route for `/obsidian-NotEMD/` and every localized root path - Prevents navbar/logo/footer root links from pointing to a missing page - Routes readers and crawlers to Intro, Quick Start, FAQ, provider docs, and the AI knowledge pillar - Owns visible GEO facts that answer engines and humans should see first: write-first workflow model, provider surface, local-vault boundary, current release, answer-engine source map, and multilingual docs route boundary @@ -106,7 +108,7 @@ These overrides are intentionally policy-bearing. Do not replace them with a gen ### 8. FAQ with FAQPage Schema - `docs/faq.mdx`: English FAQ -- `i18n/zh-CN/docusaurus-plugin-content-docs/current/faq.mdx`: Simplified Chinese FAQ +- `i18n//docusaurus-plugin-content-docs/current/faq.mdx`: localized FAQ for every published documentation locale - The swizzled doc layout emits FAQPage schema for FAQ docs ## File Structure @@ -125,21 +127,22 @@ website/ │ ├── faq.mdx │ └── providers/ ├── i18n/ -│ └── zh-CN/ +│ └── / │ └── docusaurus-plugin-content-docs/ -│ └── current/ # Published zh-CN critical path plus FAQ +│ └── current/ # Published localized docs route mirror ├── src/ │ ├── pages/ │ │ └── index.js # Locale-aware root homepage │ ├── lib/ │ │ ├── languageRoutePolicy.js │ │ ├── publishedLanguageScope.js -│ │ └── publishedLanguageScopeData.mjs +│ │ ├── publishedLanguageScopeData.mjs +│ │ └── publishedLocales.mjs │ ├── components/ │ │ └── TLDR/ │ ├── theme/ │ │ ├── DocItem/Layout/ # JSON-LD + fallback noindex -│ │ ├── DocItem/Paginator/ # zh-CN published-scope paginator +│ │ ├── DocItem/Paginator/ # legacy zh-CN published-scope paginator │ │ ├── DocRoot/Layout/Sidebar/ │ │ ├── NavbarItem/LocaleDropdownNavbarItem/ │ │ └── SiteMetadata/ # hreflang/Open Graph locale policy @@ -168,7 +171,7 @@ citations: ## Adding New Languages -1. Add locale to `docusaurus.config.js` -> `i18n.locales`. +1. Add locale metadata to `src/lib/publishedLocales.mjs`. 2. Run or update `node scripts/generate-localized-docs.cjs`. 3. Translate content in `i18n//docusaurus-plugin-content-docs/current/`. 4. Translate navbar, footer, and docs sidebar messages under `i18n//`. @@ -178,9 +181,9 @@ citations: Do not add a locale to `i18n.locales` just because a translation folder exists. The supported policy is now full docs-route publication: every source page under `website/docs/` must have a localized counterpart before the locale appears in the public language dropdown. -Current policy: English remains the canonical source surface, and Simplified Chinese, Traditional Chinese, Japanese, French, German, Spanish, and Korean expose the complete docs route set. Provider names, CLI commands, configuration keys, file extensions, and package names intentionally remain stable across languages so users can match documentation to the plugin UI, CLI output, and logs. +Current policy: English remains the canonical source surface, and every README/UI locale declared in `src/lib/publishedLocales.mjs` exposes the complete docs route set: Simplified Chinese (`zh-CN`), Traditional Chinese (`zh-Hant`), Traditional Chinese for Taiwan (`zh-TW`), Japanese (`ja`), French (`fr`), German (`de`), Spanish (`es`), Korean (`ko`), Italian (`it`), Portuguese (`pt`), Brazilian Portuguese (`pt-BR`), Russian (`ru`), Arabic (`ar`), Persian (`fa`), Hindi (`hi`), Bengali (`bn`), Dutch (`nl`), Swedish (`sv`), Finnish (`fi`), Danish (`da`), Norwegian (`no`), Polish (`pl`), Turkish (`tr`), Hebrew (`he`), Thai (`th`), Greek (`el`), Czech (`cs`), Hungarian (`hu`), Romanian (`ro`), Ukrainian (`uk`), Vietnamese (`vi`), Indonesian (`id`), and Malay (`ms`). Provider names, CLI commands, configuration keys, file extensions, and package names intentionally remain stable across languages so users can match documentation to the plugin UI, CLI output, and logs. -`website/src/lib/publishedLanguageScopeData.mjs` still exists because older GEO gates and zh-CN theme overrides consume it, but it now declares the full docs route set rather than a partial-publishing allowlist. When adding or removing docs pages, update that data file and rerun: +`website/src/lib/publishedLanguageScopeData.mjs` still exists because older GEO gates and zh-CN theme overrides consume it, but it now declares the full docs route set rather than a partial-publishing allowlist. `website/src/lib/publishedLocales.mjs` owns the public language matrix used by Docusaurus, the docs generator, and the build audit. When adding or removing docs pages or locales, update the matching source file and rerun: ```bash npm run build diff --git a/website/docs/faq.mdx b/website/docs/faq.mdx index 73deed72..32d33262 100644 --- a/website/docs/faq.mdx +++ b/website/docs/faq.mdx @@ -135,7 +135,7 @@ This per-task optimization balances speed, cost, and quality. | **Long-term value** | Disappears after session | Accumulates into knowledge base | | **Reusability** | Must re-query | Files stay, link, evolve | -**Use ChatGPT for:** Quick Q&A, one-off explanations +**Use ChatGPT for:** Quick Q&A, one-off explanations **Use Notemd for:** Building a persistent, structured knowledge base over weeks/months ### How does Notemd add wiki-links to notes? diff --git a/website/docs/getting-started/installation.mdx b/website/docs/getting-started/installation.mdx index a5f6f7a4..57b3d262 100644 --- a/website/docs/getting-started/installation.mdx +++ b/website/docs/getting-started/installation.mdx @@ -47,7 +47,7 @@ import TLDR from '@site/src/components/TLDR'; ``` /.obsidian/plugins/ ``` - + If the `plugins` folder doesn't exist, create it. 3. **Create Notemd folder:** diff --git a/website/docs/intro.mdx b/website/docs/intro.mdx index 5c408a5c..13072067 100644 --- a/website/docs/intro.mdx +++ b/website/docs/intro.mdx @@ -73,11 +73,11 @@ Notemd integrates **30+ Large Language Models** (OpenAI, Anthropic, Google, Deep ## Who Should Use Notemd? -✅ **Researchers** reading papers and building literature reviews -✅ **Students** organizing study notes and creating concept maps -✅ **Knowledge workers** who want reading insights to persist -✅ **Bilingual professionals** needing translation + wiki-linking -✅ **Privacy-conscious users** wanting local LLM support (Ollama) +✅ **Researchers** reading papers and building literature reviews +✅ **Students** organizing study notes and creating concept maps +✅ **Knowledge workers** who want reading insights to persist +✅ **Bilingual professionals** needing translation + wiki-linking +✅ **Privacy-conscious users** wanting local LLM support (Ollama) ✅ **Power users** who customize prompts and workflows ## Why Notemd + Obsidian? diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 35e47fd0..8987d53a 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -5,6 +5,7 @@ // See: https://docusaurus.io/docs/api/docusaurus-config import {themes as prismThemes} from 'prism-react-renderer'; +import {publishedLocaleCodes, publishedLocaleConfigMap} from './src/lib/publishedLocales.mjs'; const siteUrl = 'https://jacobinwwey.github.io'; const baseUrl = '/obsidian-NotEMD/'; @@ -108,17 +109,8 @@ const config = { // may want to replace "en" with "zh-Hans". i18n: { defaultLocale: 'en', - locales: ['en', 'zh-CN', 'zh-Hant', 'ja', 'fr', 'de', 'es', 'ko'], - localeConfigs: { - en: { label: 'English', direction: 'ltr', htmlLang: 'en-US' }, - 'zh-CN': { label: '简体中文', direction: 'ltr', htmlLang: 'zh-CN' }, - 'zh-Hant': { label: '繁體中文', direction: 'ltr', htmlLang: 'zh-Hant' }, - ja: { label: '日本語', direction: 'ltr', htmlLang: 'ja-JP' }, - fr: { label: 'Français', direction: 'ltr', htmlLang: 'fr-FR' }, - de: { label: 'Deutsch', direction: 'ltr', htmlLang: 'de-DE' }, - es: { label: 'Español', direction: 'ltr', htmlLang: 'es-ES' }, - ko: { label: '한국어', direction: 'ltr', htmlLang: 'ko-KR' }, - }, + locales: publishedLocaleCodes, + localeConfigs: publishedLocaleConfigMap(), }, themes: ['@docusaurus/theme-mermaid'], diff --git a/website/i18n/ar/code.json b/website/i18n/ar/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/ar/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/ar/docusaurus-plugin-content-docs/current.json b/website/i18n/ar/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/ar/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/ar/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/ar/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..d0aef6e3 --- /dev/null +++ b/website/i18n/ar/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "معالجة دفعات" +description: "معالجة ملفات متعددة بكفاءة" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# معالجة دفعات + + +**Notemd يقوم بمعالجة المجلدات بأكملها في عملية واحدة مع إمكانية ضبط التزامن والتحكم في الكتابة فوق الملفات.** انقر بزر الماوس الأيمن على مجلد لإضافة روابط ويكي جماعيًا، أو استخراج المفاهيم، أو إجراء بحث، أو ترجمة جميع الملاحظات الموجودة فيه. تحدد قيود التزامن من حدوث أخطاء تقييد المعدل API. يتم الإبلاغ عن التقدم لكل ملف على حدة. يمكن ضبط سلوك الكتابة فوق الملفات: تجاهل الملفات الموجودة، أو إضافتها، أو استبدالها. يتم تسجيل الملفات التي فشلت دون إيقاف معالجة الدفعة. + +هذا جزء من [Obsidian دليل إدارة المعرفة الذكية](/docs/pillar-ai-knowledge). + + +## نظرة عامة + +تحول معالجة الدفعات مجلد الملاحظات إلى عملية واحدة. بدلاً من فتح كل ملاحظة وتشغيل الأوامر بشكل منفصل، يكفي النقر بزر الماوس الأيمن على المجلد واختيار المهمة. يقوم Notemd بالتكرار عبر كل ملف `.md`، وتطبيق الإجراء المختار، ويعرض التقدم في الوقت الفعلي. + +هذه الميزة ضرورية لاستخراج المعرفة على مستوى الخزنة بأكملها. بعد استيراد عشرات الملفات PDF، على سبيل المثال، يؤدي إضافة الروابط جماعيًا ثم استخراج المفاهيم جماعيًا إلى بناء رسم المعرفة الخاص بك في دقائق بدلاً من ساعات. + +## كيف يعمل + +### نموذج التنفيذ الدفعي + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **جمع الملفات** -- Notemd يقوم بمسح المجلد المستهدف بشكل تراكبي (أو فقط على المستوى العلوي حسب الإعدادات) ويجمع جميع ملفات `.md`. +2. **تقسيم التزامن** -- يتم تقسيم الملفات إلى مجموعات بناءً على إعدادات `batchConcurrency`. تُنفذ كل مجموعة بشكل متوازي؛ أما المجموعات الأخرى فتُنفذ بشكل تسلسلي. +3. **التنفيذ** -- يتم معالجة كل ملف باستخدام نفس المنطق المستخدم في أوامر الملف الفردي. يتم احترام إعدادات مزود المهمة والنموذج لكل مهمة. +4. **الإبلاغ عن التقدم** -- تظهر إشعارات تلقائية بعد اكتمال كل ملف، مع عرض نسبة التقدم `N / Total`. +5. **معالجة الأخطاء** -- إذا فشل ملف ما (خطأ API، توقف شبكي، إلخ)، يتم تسجيل الخطأ وتستمر معالجة الدفعة. يُعرض ملخص نهائي يتضمن قائمة بالملفات التي فشلت. +6. **الانتهاء** -- يُظهر إشعار ملخص تقريرًا عن العدد الإجمالي للملفات التي تم معالجتها، وعدد النجاحات، وعدد الفشلات. + +### سلوك الكتابة فوق + +عند معالجة ملف يحتوي بالفعل على روابط ويكي أو ملاحظات مفاهيمية أو ترجمات، يعتمد سلوك Notemd على إعداد الكتابة فوق: + +| الوضع | السلوك | +|------|----------| +| **تخطي** | يتم ترك المحتوى الحالي كما هو. يتم معالجة الملفات غير المعدلة فقط. | +| **إضافة** (القيمة الافتراضية) | يتم إضافة المحتوى الجديد. يتم الحفاظ على روابط الويكي والمفاهيم والترجمات القائمة. | +| **استبدال** | يتم معالجة الملف بالكامل مرة أخرى. يتم كتابة جميع تعديلات Notemd السابقة فوقها. | + +بالنسبة لروابط الويكي تحديدًا: إذا كانت الملاحظة تحتوي بالفعل على `[[wiki-links]]`، فإن وضع **تخطي** يتركها كما هي، بينما يقوم وضع **استبدال** بإرسال الملاحظة بأكملها إلى LLM لإدخال روابط جديدة. استخدم **تخطي** للمعالجة التدريجية و**استبدال** لإعادة المعالجة بعد تحديث النموذج. + +### التحكم في التزامن + +يحدد إعداد `batchConcurrency` عدد الطلبات المتزامنة API. هذا يمنع أخطاء الحد الأقصى للمعدلات (HTTP 429) أثناء معالجة مجلدات كبيرة مع مزودين لديهم حصص صارمة. + +| التزامن | الموصى به لـ | تأثير الحد الأقصى للمعدلات المعتاد | +|-------------|----------------|---------------------------| +| `1` | المستويات المجانية، مزودون صارمون | لا شيء (تسلسلي) | +| `3` (افتراضي) | معظم مزودي السحابة | منخفض | +| `5` | Ollama (محلي)، مستويات سخية | لا شيء / منخفض | +| `10` | نماذج محلية بتقدير سريع | لا شيء | + +إذا واجهت أخطاء 429 أثناء المعالجة الدفعية، قلل من التزامن إلى 1 أو 2. + +## التكوين + +| الإعداد | افتراضي | التأثير | +|---------|---------|--------| +| `batchConcurrency` | `3` | أقصى عدد من المكالمات المتوازية API أثناء عمليات المجلدات | +| `batchOverwriteExisting` | `false` | كتابة محتوى Notemd الحالي بالكامل. `false` تعني وضع الإضافة. | +| `batchSkipProcessed` | `false` | تخطي الملفات التي تحتوي بالفعل على علامات Notemd (مثل روابط ويكي) | +| `batchRecursive` | `true` | تضمين الدلائل الفرعية أثناء مسح المجلد | +| `enableStableApiCall` | `false` | تفعيل منطق إعادة المحاولة (حتى 4 محاولات) لكل ملف أثناء المعالجة الجماعية | + +### النماذج حسب المهمة في المعالجة الجماعية + +تستخدم كل عملية في المجموعة النموذج المقابل للمهمة. يستخدم batch-add-links `addLinksProvider`، وbatch-research يستخدم `researchProvider`، وهكذا. وهذا يعني أنه يمكنك تخصيص نماذج رخيصة للعمليات ذات الحجم الكبير واحتفاظ النماذج المكلفة للمهام التي تتطلب دقة عالية. + +## مثال + +لديك مجلد `papers/` يحتوي على 40 ملاحظة بحثية مستوردة. تريد إضافة روابط ويكي واستخراج المفاهيم من جميعها: + +1. انقر بزر الماوس الأيمن على مجلد `papers/` +2. اختر **"Notemd: معالجة المجلد (إضافة روابط)"** +3. يقوم Notemd بفحص المجلد ويجد 40 ملفًا من نوع `.md`، ثم يعالج 3 ملفات في كل مرة (التزامن الافتراضي) +4. تظهر رسالة تقدم تقول: `12/40 files processed...` +5. بعد حوالي 3 دقائق، تُعرض رسالة ملخص تقول: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. كرر العملية باستخدام **"Notemd: معالجة المجلد (استخراج المفاهيم)"** لإنشاء ملاحظات المفاهيم لجميع الملفات الـ40 + +يتم تسجيل الملف الذي فشل. يمكنك إعادة تشغيله على ذلك الملف فقط لاحقًا. + +## نصائح + +- **ابدأ بتزامن منخفض** -- إذا كنت غير متأكد من حدود السرعة لدى مزودك، ابدأ بقيمة `1` وزد التزامن تدريجيًا. +- **استخدم وضع التخطي للتحديثات التدريجية** -- بعد الدفعة الكاملة الأولى، انتقل إلى `batchSkipProcessed: true` حتى يتم معالجة الملاحظات الجديدة فقط في التشغيلات اللاحقة. +- **قم بتفعيل استدعاءات API المستقرة** -- يضيف `enableStableApiCall: true` منطق إعادة المحاولة الذي يتعافى من أخطاء الشبكة المؤقتة أثناء الدفعات الطويلة. +- **أعد التشغيل بعد ترقية النموذج** -- إذا انتقلت إلى نموذج أفضل، ضع `batchOverwriteExisting: true` وأعد التشغيل للحصول على روابط ومفاهيم محسّنة. + +--- + +## الخطوات التالية + +- [Workflows](/docs/features/workflows) -- ربط المهام الجماعية في أزرار جانبية بنقرة واحدة +- [Custom Prompts](/docs/advanced/custom-prompts) -- تخصيص النصوص التوجيهية للاستخراج الجماعي +- [Troubleshooting](/docs/advanced/troubleshooting) -- إصلاح أخطاء حدود السرعة وفشل الاتصال أثناء التشغيلات الجماعية +- [مزودو LLM](/docs/providers/overview) -- مرجع تكوين النموذج لكل مهمة diff --git a/website/i18n/ar/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/ar/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..bee278ed --- /dev/null +++ b/website/i18n/ar/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "تعليمات مخصصة" +description: "قم بتخصيص تعليمات LLM حسب احتياجاتك" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# تعليمات مخصصة + + +**Notemd يتيح لك تعديل التعليمات الافتراضية LLM لكل نوع من أنواع المهام.** التعليمات المخصصة تمنحك السيطرة على ما يعطيه النموذج الأولوية: يمكنك تقييد استخراج المفاهيم لتخصص معين، أو تغيير أسلوب الربط، أو توجيه نبرة الترجمة. متغيرات التعليمات مثل `{{content}}` و `{{concept}}` يتم استبدالها أثناء التنفيذ. ميزة المجال التعليمي المركز تضيف مجال دراستك في البداية لتحديد نطاق نتائج الاستخراج تلقائيًا. + +هذا جزء من [Obsidian دليل إدارة المعرفة الذكية](/docs/pillar-ai-knowledge). + + +## نظرة عامة + +تعليمات Notemd الجاهزة مكتوبة لأعمال المعرفة ذات الاستخدامات العامة. إنها تعمل بشكل جيد عبر مختلف المجالات، لكنها تترك أيضًا مجالًا للتحسين حسب كل مجال. التعليمات المخصصة تسمح لك بتوجيه LLM بدقة حول كيفية العمل في حالتك الخاصة -- سواء كان ذلك يعني استخراج المصطلحات الطبية فقط، أو ربط الكيانات المسماة فقط، أو الترجمة بلغة رسمية. + +التعليمات المخصصة لا تحل محل التعليمات النظامية بأكملها. إنها تعدل أو تضيف إلى **الجزء المتعلق بتعليمات المهمة المحددة** مع الحفاظ على تنسيق الإخراج الهيكلي (مثل أسطر `CONCEPT:`، صيغة روابط ويكي) التي يعتمد عليها Notemd للتحليل. + +## كيف يعمل + +### هندسة التعليمات + +كل مهمة Notemd تتبع نفس هيكل التعليمات: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **التعليمات النظامية الأساسية** -- تحدد شخصية المساعد. لا يمكن تعديلها. +2. **المجال التعليمي المركز** -- تضيف `Relevant Fields: [medicine / law / computer science / ...]` في البداية لتقييد النطاق. هذا خيار في الإعدادات، وليس تعليمة أصلية. +3. **التعليمات المخصصة للمهمة** -- تحل محل تعليمات المهمة الافتراضية (مثل أنواع المفاهيم التي يجب استخراجها، ومدى شدة الربط). +4. **تنسيق الإخراج** -- قواعد هيكلية (أسطر `CONCEPT:`، صيغة روابط ويكي). يتم إضافتها دائمًا بواسطة Notemd لضمان القابلية للتحليل. +5. **المحتوى** -- نص الملاحظة الفعلي، يتم استبداله أثناء التنفيذ عبر `{{content}}`. + +### متغيرات التعليمات + +يتم استبدال المتغيرات أثناء وقت التنفيذ. المتغيرات المتاحة تختلف حسب المهمة: + +| Variable | المهام | تم استبداله بـ | +|----------|-------|---------------| +| `{{content}}` | كل شيء | نص الملاحظة أو الاختيار | +| `{{concept}}` | قالب مذكرة المفهوم | اسم المفهوم المستخرج | +| `{{description}}` | قالب مذكرة المفهوم | وصف المفهوم المولد من LLM | +| `{{backlinks}}` | قالب مذكرة المفهوم | قائمة الملاحظات الأصلية مع الروابط | +| `{{date}}` | قالب مذكرة المفهوم | التاريخ الحالي (YYYY-MM-DD) | +| `{{language}}` | الترجمة | لغة الإخراج المستهدفة | +| `{{source}}` | قالب مذكرة المفهوم | اسم الملف الأساسي للملاحظة الأصلية | + +### مجال التعلم المركز + +ميزة التعلم المركزة هي اختصار لتحديد نطاق المجال. بدلاً من كتابة استعلام مخصص يذكر مجالك، قم بتحديد `focusedLearningDomain` في الإعدادات: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +هذا يضيف `Relevant Fields: [medicine]` إلى استعلام الاستخراج، مما يجعل LLM يعطي الأولوية للمفاهيم ذات الصلة بالمجال ويقمع المفاهيم العامة. إنه أخف وزناً من استعلام مخصص كامل ويعمل في جميع مهام الاستخراج. + +## التكوين + +| الإعداد | افتراضي | التأثير | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | تجاوز استعلام مهمة إضافة الروابط الافتراضي | +| `customExtractConceptsPrompt` | `''` | تجاوز استعلام استخراج المفاهيم الافتراضي | +| `customResearchPrompt` | `''` | تجاوز استعلام البحث + التلخيص الافتراضي | +| `customTranslatePrompt` | `''` | تجاوز استعلام الترجمة الافتراضي | +| `customDiagramPrompt` | `''` | تجاوز استعلام إنشاء الرسوم البيانية الافتراضي | +| `focusedLearningDomain` | `''` | إضافة سياق التخصص إلى استعلامات الاستخراج والربط | +| `extractConceptsMinimalTemplate` | `true` | استخدام قالب ملاحظة المفهوم الذي يحتوي فقط على العنوان (يؤثر على نطاق قالب `{{concept}}`) | +| `customConceptNoteTemplate` | `''` | تجاوز قالب ملف ملاحظة المفهوم بدعم كامل للمتغيرات | + +**عندما يكون حقل الاستعلام المخصص فارغاً، يتم استخدام الاستعلام الافتراضي المدمج.** + +## مثال + +أنت باحث طبي تقوم باستخراج المفاهيم من ملاحظات التجارب السريرية. الاستعلام الافتراضي يستخرج أسماء عامة إلى جانب المصطلحات الطبية، مما يزيد من تشويش مجلد المفاهيم الخاص بك. + +**الحل:** حدد مجال التعلم المركز واستعلام استخراج مخصص. + +1. ضع `focusedLearningDomain` على قيمة `medicine` +2. ضع `customExtractConceptsPrompt` على: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +عند تشغيل أمر "Extract concepts" على ملاحظة سريرية، يُنتج LLM ما يلي: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +بدلاً من السلوك الافتراضي الذي قد يستخرج أيضاً مصطلحات عامة غير مرغوب فيها مثل "hospital" أو "month". + +## نصائح + +- **ابدأ بمجال التعلم المحدد** قبل كتابة استعلام مخصص كامل. يغطي هذا النهج 80% من حالات الاستخدام باستخدام إعداد واحد فقط. +- **حافظ على تنسيق النتائج** -- لا تزيل أبداً تعليمات التنسيق مثل "one per line" أو "CONCEPT: prefix" من الاستعلامات المخصصة. يعتمد محلل Notemd على هذه التعليمات. +- **جرب مع ملاحظة واحدة أولاً** -- قد تؤدي الاستعلامات المخصصة إلى آثار غير متوقعة على نطاق الاستخراج. تحقق منها على ملاحظة واحدة قبل المعالجة الجماعية. +- **اجعل الاستعلامات موجزة** -- الاستعلامات المخصصة الطويلة جداً تستهلك الرموز وقد تضعف تركيز النموذج. + +--- + +## الخطوات التالية + +- [Wiki-Links](/docs/features/wiki-links) -- ما يتم ربطه عند تخصيص استعلام add-links +- [Concept Notes](/docs/features/concept-notes) -- قوالب ملاحظات المفاهيم ومتغير `{{concept}}` +- [Batch Processing](/docs/advanced/batch-processing) -- تطبيق الاستعلامات المخصصة على مجلدات كاملة +- [Troubleshooting](/docs/advanced/troubleshooting) -- إصلاح المشكلات التي تنتج فيها الاستعلامات المخصصة نتائج غير متوقعة diff --git a/website/i18n/ar/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/ar/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..71f34bda --- /dev/null +++ b/website/i18n/ar/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "حل المشكلات" +description: "المشكلات الشائعة وحلولها" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# حل المشكلات + + +**تندرج معظم Notemd المشكلات في أربع فئات: المشكلات الرئيسية API، واتصال الشبكة، وأخطاء المصادقة (401/403)، وقيود المعدل (429).** يقوم اختبار الاتصال المدمج ولوحة التشخيص بتحديد السبب الجذري بسرعة. تغطي هذه الصفحة كل رسالة خطأ شائعة، وسببها، وطريقة إصلاحها. بالنسبة للمشكلات غير المدرجة هنا، قم بالإبلاغ عنها في GitHub Issues مع نتائج التشخيص. + +هذا جزء من [Obsidian دليل إدارة المعرفة الذكية](/docs/pillar-ai-knowledge). + + +## نظرة عامة + +Notemd يعتمد على خدمات خارجية -- مزودي LLM ومحركات البحث API -- لذلك تنشأ معظم المشكلات خارج الإضافة نفسها. توفر لوحة التشخيص في الإعدادات عرضًا منظمًا لآخر استدعاء API، بما في ذلك طلب URL، وحالة الاستجابة، وجسم الخطأ. يجب دائمًا التحقق منها أولاً قبل المضي قدمًا في التحقيق. + +## كيفية عملها: التشخيص + +### اختبار الاتصال + +يحتوي كل قسم لإعدادات المزود على زر **"اختبر الاتصال"**. عند النقر عليه يتم إرسال طلب API بسيط (عادةً قائمة بالنماذج أو استكمال قصير) ويتم الإبلاغ عن النجاح أو الخطأ المحدد HTTP. هذه هي أسرع طريقة للتحقق من صحة مفتاح API والقاعدة URL الخاصة بك. + +### لوحة التشخيص + +**الإعدادات --> Notemd --> التشخيص** تعرض ما يلي: + +| الحقل | المحتوى | +|-------|---------| +| آخر مزود | أي مزود تم استدعاؤه آخر مرة | +| آخر نموذج | أي نموذج تم استدعاؤه آخر مرة | +| آخر حالة | رمز حالة HTTP أو خطأ نقل | +| آخر خطأ | رسالة الخطأ الأصلية من API | +| طلب آخر URL | نسخة كاملة URL من الطلب الأخير (تم حجب مفتاح API) | +| جسم الاستجابة الأخير | جزء مقتطع من جسم الاستجابة (أول 500 حرف) | + +قم بنسخ ناتج التشخيص الكامل عند الإبلاغ عن المشاكل على GitHub. + +## الأخطاء الشائعة + +### مفتاح API غير صالح أو مفقود + +**الأعراض:** HTTP 401 أو "تم تقديم مفتاح API غير صحيح" + +**السبب:** مفتاح API مفقود أو يحتوي على مسافات بيضاء أو يخص مزودًا مختلفًا. + +**الحل:** +1. تحقق من عدم وجود مسافات في بداية أو نهاية المفتاح +2. تأكد من أن المفتاح يتطابق مع المزود المختار (مفتاح OpenAI لن يعمل مع Anthropic) +3. تحقق من أن حسابك يحتوي على ائتمانات أو اشتراك نشط +4. انقر على **"اختبار الاتصال"** للتحقق + +### أخطاء الشبكة / الاتصال + +**الأعراض:** `ERR_CONNECTION_REFUSED`، `ERR_TIMED_OUT`، `Socket hang up`، `Network request failed` + +**السبب:** لا يمكن الوصول إلى نقطة النهاية API من جهازك. + +**الحل:** +1. تحقق من اتصال الإنترنت الخاص بك +2. إذا كنت خلف بروكسي أو جدار حماية، تأكد من أن نطاق API غير محظور +3. بالنسبة لـ Ollama: تأكد من أن `ollama serve` يعمل (يجب أن يُرجع `ollama list` النماذج) +4. بالنسبة لـ LMStudio: تأكد من أن الخادم يعمل على `localhost:1234` +5. جرب وسيلة نقل مختلفة -- يجب على المستخدمين المحمولين التأكد من أن وسيلة النقل `requestUrl` نشطة +6. قم بتفعيل `enableStableApiCall` لإعادة المحاولة تلقائيًا في حالة الأخطاء المؤقتة + +### 403 ممنوع + +**الأعراض:** HTTP 403 + +**السبب:** مفتاح API الخاص بك صالح ولكنه لا يمتلك صلاحيات الوصول إلى المورد المطلوب. + +**الحل:** +1. بعض النماذج تتطلب وصولًا خاصًا (مثلاً، GPT-4 عبر Azure يتطلب اسم نشر) +2. يقوم بعض المزودين بتقييد النماذج حسب مستوى الخطة -- تحقق من حسابك +3. قد تُطبق قيود إقليمية (بعض مزودي الصين يحظرون عناوين IP الدولية والعكس صحيح) +4. تأكد من أن اسم النموذج مكتوب بشكل صحيح (مثلاً، `gpt-4o` وليس `gpt-4o-mini` عندما يكون النموذج المصغر هو كل ما تسمح به خطتك) + +### حد السرعة (429) + +**الأعراض:** HTTP 429 أو "تم تجاوز حد السرعة" + +**السبب:** عدد كبير من الطلبات في فترة زمنية قصيرة. + +**الحل:** +1. قلّل `batchConcurrency` إلى `1` أو `2` +2. انتظر بضع دقائق قبل المحاولة مجددًا +3. راجع وثائق حد السرعة الخاصة بمزودك لمستوى خطتك +4. قم بتفعيل `enableStableApiCall` لإعادة المحاولة التلقائية مع تأخير +5. فكر في التحويل إلى مزود يوفر حدودًا أعلى (DeepSeek، Ollama) + +### النموذج غير موجود + +**الأعراض:** "النموذج غير موجود" أو HTTP 404 + +**السبب:** اسم النموذج غير موجود لدى المزود المختار. + +**الحل:** +1. انقر على **"Get Model List"** لعرض جميع النماذج المتاحة لمزودك +2. تتغير أسماء بعض النماذج مع مرور الوقت -- تحقق من الاسم الحالي في وثائق المزود +3. بالنسبة لـ Ollama: قم بتشغيل `ollama list` لعرض النماذج التي تم سحبها؛ فقط النماذج المُنزلة متاحة + +### لا توجد روابط / لم يتم إنشاء أي مفاهيم + +**الأعراض:** يتم تشغيل الأمر ولكن لا يتم إنتاج أي ناتج + +**السبب:** عاد LLM برد فعل فارغ أو غير قابل للتحليل. + +**الحل:** +1. تحقق من لوحة التشخيص لمعرفة رد LLM الفعلي +2. جرب نموذجًا أكثر قدرة (بعض النماذج الصغيرة تواجه صعوبات في إنتاج مخرجات منظمة) +3. تأكد من أن الملاحظة تحتوي على محتوى كافٍ (>50 كلمة) +4. راجع نص الطلب المخصص الخاص بك للبحث عن تعليمات متعارضة +5. أوقف تعطيل الكلمات المرادفة مؤقتًا لمعرفة ما إذا كان يتم تصفية النتائج بشكل مفرط + +### غياب معرف نقطة نهاية Doubao + +**الأعراض:** حدوث خطأ عند استخدام مزود ByteDance Doubao + +**السبب:** يتطلب Doubao معرف نقطة نهاية Ark (التنسيق: `ep-xxxxxxxx-xxxx-xxxx`) بدلاً من اسم النموذج. + +**الإصلاح:** استبدل النموذج الافتراضي بمعرف نقطة النهاية الفعلية الخاصة بك من واجهة تحكم Volcengine. + +## التكوين + +| إعداد التشخيص | الموقع | الغرض | +|--------------------|----------|---------| +| **اختبار الاتصال** | قسم المزود في الإعدادات | تحقق من مفتاح API وجودة الاتصال | +| **استرجاع قائمة النماذج** | قسم المزود في الإعدادات | تأكد من النماذج التي يمكن الوصول إليها | +| `enableStableApiCall` | الإعدادات --> المتقدمة | تفعيل إعادة المحاولة مع تأخير زمني | +| `batchConcurrency` | الإعدادات --> المجموعات | التحكم في التوازي لتجنب قيود المعدلات | + +## كيفية الإبلاغ عن المشكلات + +إذا لم تكن مشكلتك مذكورة أعلاه: + +1. افتح **الإعدادات --> Notemd --> التشخيص** +2. انسخ نتائج التشخيص الكاملة +3. افتح قضية في GitHub على [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +4. أدرج: إصدار Obsidian، إصدار Notemd، المزود، النموذج، نتائج التشخيص، وخطوات تكرار المشكلة +5. احذف مفتاح API الخاص بك من أي سجلات مشتركة + +--- + +## الخطوات التالية + +- [LLM المزودون](/docs/providers/overview) -- مرجع كامل لإعدادات المزود +- [المعالجة الدفعية](/docs/advanced/batch-processing) -- إعدادات التزامن وإعادة المحاولة للعمليات الكبيرة +- [الطلبات المخصصة](/docs/advanced/custom-prompts) -- تصحيح السلوك غير المتوقع لـ LLM عن طريق تعديل الطلبات diff --git a/website/i18n/ar/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/ar/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..b9e51cf1 --- /dev/null +++ b/website/i18n/ar/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "أسئلة شائعة" +description: "أسئلة شائعة حول تثبيت Notemd وميزاته وطريقة استخدامه" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# أسئلة شائعة + + +**إجابات سريعة على أكثر الأسئلة شيوعًا حول Notemd.** يغطي التثبيت (إعداد في 5 دقائق)، دعم أكثر من 30 مزود LLM، خيارات النموذج المحلي/السحابي، سير عمل بنقرة واحدة، دعم UI متعدد اللغات (21 لغة)، أتمتة روابط الويكي، التكامل مع الأبحاث، سير عمل القراءة PDF، إنشاء الرسوم البيانية، وترخيص المصدر المفتوح. جميع الميزات تعمل دون اتصال بالإنترنت باستخدام Ollama. + + +--- + +## التثبيت والإعداد + +### كيف أقوم بتثبيت Notemd في Obsidian؟ + +افتح Obsidian → **الإعدادات → الإضافات المجتمعية → تصفح** → ابحث عن **"Notemd"** → **تثبيت** → **تفعيل**. + +**المتطلبات:** +- Obsidian 0.15.0+ +- مدعوم على الكمبيوتر (Windows، macOS، Linux) والهواتف المحمولة (iOS، Android) + +**التثبيت اليدوي:** +1. قم بتنزيل `main.js` و`styles.css` و`manifest.json` من [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) +2. ضعها داخل `/.obsidian/plugins/notemd/` +3. أعد تحميل Obsidian وقم بتفعيل الإضافة + +**الإحصائيات:** أكثر من 4 كيلو تنزيل، 44 إصدار، مرخص بموجب MIT. + +--- + +## إعدادات LLM + +### ما هي مزودات LLM التي يدعمها Notemd؟ + +يدعم Notemd **أكثر من 30 مزودًا**: + +**مزودو السحابة:** +- OpenAI (GPT-4، GPT-4o، GPT-4o-mini، o1، o3) +- Anthropic (Claude Opus، Sonnet، Haiku) +- Google (Gemini Pro، Flash، Ultra) +- xAI (Grok) +- Mistral، DeepSeek، Qwen، Moonshot، GLM + +**الموجهة للصين:** +- Qwen، Qwen Code، Doubao، Moonshot، Xiaomi MiMo، GLM، Z AI، MiniMax +- Huawei Cloud MaaS، Baidu Qianfan، SiliconFlow + +**المحلية/المُضافة محليًا:** +- Ollama +- LM Studio +- أي نقطة نهاية متوافقة مع OpenAI + +**البوابات:** +- Azure OpenAI، OpenRouter، Together AI، Groq، AIHubMix +- GitHub Models، Fireworks، LiteLLM، Nebius، Cerebras +- Hugging Face، Vercel AI Gateway، Requesty + +### هل يمكن لـ Notemd العمل مع LLMات محلية؟ + +**نعم، يتم دعمه بالكامل.** Notemd يعمل مع: +- **Ollama** (تكامل أصلي) +- **LM Studio** (عبر نقطة نهاية متوافقة مع OpenAI) +- **vLLM، LocalAI، text-generation-webui** (عبر وضع متوافق مع OpenAI) + +جميع المهام تعمل مع النماذج المحلية: الربط، توليد المفاهيم، الترجمة، البحث، وإنشاء الرسوم البيانية. + +**مثال على الخلط والتنسيق:** +- Ollama (محلي) للربط → سريع، خاص، بدون تكلفة +- OpenAI للبحث → جودة عالية، مع دمج البحث على الويب +- Gemini للترجمة → دعم متعدد الأوضاع + +### كيف أقوم بتكوين نماذج مختلفة لمهام مختلفة؟ + +في **إعدادات Notemd**، لكل مهمة محددات مزود/نموذج مستقلة: + +| المهمة | تكوين مثالي | +|------|----------------------| +| **الربط** | DeepSeek (سريع، رخيص) | +| **توليد المفاهيم** | Claude Opus (جودة عالية) | +| **البحث** | Perplexity أو GPT-4o (مستند إلى الويب) | +| **الترجمة** | Gemini Flash (متعدد الوسائط) | +| **توليد الرسوم البيانية** | Ollama (محلي، خاص) | + +توفر هذه الأتمتة حسب المهمة توازنًا بين السرعة والتكلفة والجودة. + +--- + +## الميزات الأساسية + +### كيف يختلف Notemd عن ChatGPT في قراءة الأوراق؟ + +| البُعد | ChatGPT | Notemd | +|-----------|---------|--------| +| **موقع الإخراج** | سجل المحادثة (مؤقت) | Obsidian خزنة الملفات المستمرة | +| **تنسيق النتيجة** | الإجابة النصية | روابط ويكي، ملاحظات مفاهيمية، رسوم توضيحية، ترجمات | +| **القيمة على المدى الطويل** | يختفي بعد انتهاء الجلسة | يتراكم في قاعدة المعرفة | +| **إمكانية إعادة الاستخدام** | يجب إجراء استعلام مرة أخرى | تظل الملفات والروابط موجودة وتتطور | + +**استخدم ChatGPT لـ:** الأسئلة والإجابات السريعة، التوضيحات المؤقتة +**استخدم Notemd لـ:** بناء قاعدة معرفية مستمرة ومنظمة على مدار الأسابيع/الأشهر + +### كيف يضيف Notemd روابط ويكي إلى الملاحظات؟ + +**العملية:** +1. تقوم بتشغيل أمر "معالجة الملف (إضافة الروابط)" على ملاحظة ما +2. Notemd يرسل النص إلى LLM المُعدّ لديك +3. الـ LLM يحدد المفاهيم الرئيسية في السياق +4. Notemd يدخل `[[wiki-links]]` في كل موضع للمفهوم +5. اختياريًا، يقوم تلقائيًا بإنشاء ملاحظات المفاهيم في مجلد تحدده + +**الميزات:** +- كبح الترادفات (يتجنب النسخ المكررة مثل "transformer" مقابل "transformers") +- روابط عكسية من ملاحظات المفاهيم إلى المصدر +- استمرارية الروابط عند إعادة التسمية أو الحذف +- وضع الاستخراج النقي (استخراج المفاهيم دون تعديل النص الأصلي) + +### ما هو سير العمل بنقرة واحدة لـ Notemd؟ + +**سير العمل بنقرة واحدة** تربط عدة إجراءات في **زر جانبي واحد**. + +**سير العمل الافتراضي:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**النتيجة:** نقرة واحدة تؤدي إلى ما يلي: +1. إضافة روابط ويكي إلى الملاحظة الحالية +2. إنشاء ملاحظات المفاهيم للمصطلحات الجديدة +3. البحث وإضافة المعلومات الخلفية +4. ضغط المحتوى في رسم بياني Mermaid + +**سلاسل العمل المخصصة:** حدد سلاسل عملك الخاصة في الإعدادات باستخدام تنسيق DSL. كل سلسلة عمل تصبح زرًا قابلًا لإعادة الاستخدام في شريط الجانب. + +### كيف يتفوق Notemd مقارنةً بـ Copilot أو Smart Connections؟ + +هذه الإضافات تحل مشكلات مختلفة: + +- **Copilot** — التركيز على المحادثة. تتحدث مع الذكاء الاصطناعي حول ملاحظاتك. تظل إجابات الذكاء الاصطناعي في لوحة المحادثة؛ ولا تُعدّل خزانتك. +- **Smart Connections** — التركيز على الاكتشاف. يبحث عن ملاحظات متشابهة دلاليًا باستخدام التمثيلات المضمنة. ولا يُنشئ أو يُعدّل المحتوى. +- **Notemd** — التركيز على الكتابة. يقوم الذكاء الاصطناعي بمعالجة ملاحظاتك وكتابة نتائج منظمة (روابط ويكي، ملاحظات مفاهيمية، أبحاث، رسوم تخطيطية، ترجمات) مباشرةً في خزانتك كملفات دائمة. + +| ما تحتاجه | الإضافة الموصى بها | +|----------------|-------------------| +| الدردشة مع الذكاء الاصطناعي حول الملاحظات | Copilot | +| العثور على ملاحظات مماثلة/مرتبطة | Smart Connections | +| الإدخال التلقائي لروابط ويكي وبناء رسم بياني للمعرفة | **Notemd** | +| إنشاء ملاحظات مفاهيمية مع روابط عكسية | **Notemd** | +| إنشاء رسوم تخطيطية من محتوى الملاحظات | **Notemd** | +| بحث موضوع وإضافة ملخصات له | **Notemd** | + +يمكن استخدام الثلاثة معًا — فهي تكمل بعضها البعض بدلاً من التنافس معها. + +--- + +## البحث والترجمة + +### أي خدمات بحث تعمل مع بحث Notemd؟ + +| الخدمة | مطلوب مفتاح API | الجودة | ملاحظات | +|---------|-----------------|---------|-------| +| **Tavily** | نعم | عالية | بحث موصى به ومُحسّن بالذكاء الاصطناعي | +| **DuckDuckGo** | لا | تجريبي | لا يوجد تهيئة، جودة أقل | + +**كيفية عمل "البحث والتلخيص":** +1. تختار موضوعًا أو تشغّله على الملاحظة الحالية +2. Notemd يستعلم خدمة البحث +3. النتائج → تلخيص LLM +4. يتم إضافة التلخيص إلى ملاحظتك مع اقتباسات المصادر + +**النتيجة:** سجل بحث دائم في خزانتك، وليس في علامات التبويب في المتصفح. + +### هل يدعم Notemd اللغة الصينية أو لغات أخرى؟ + +**لغات UI:** أكثر من 21 لغة مدعومة +- الإنجليزية، 中文 (简体)، 中文 (繁體)، 日本語، 한국어 +- العربية، الألمانية، الفرنسية، الإسبانية، الروسية، البرتغالية، الإيطالية +- الهندية، البنغالية، التايلاندية، الفيتنامية، التركية، البولندية، التشيكية، وغيرها + +**لغة إخراج المهمة:** تكوين مستقل +- UI بالصينية + الإخراج بالإنجليزية: ✅ +- UI بالإنجليزية + الإخراج بالصينية: ✅ + +**حالة استخدام:** يمكن للباحثين ثنائيي اللغة الاحتفاظ بـ UI بلغتهم الأم أثناء إنشاء ملاحظات بالإنجليزية للنشر. + +--- + +## PDF وسير العمل الأكاديمية + +### هل يمكنني استخدام Notemd لقراءة الأوراق/PDF؟ + +**نعم.** سير العمل: +1. **تحويل PDF إلى Markdown** باستخدام [MinerU](https://github.com/opendatalab/MinerU) (موصى به للأوراق الأكاديمية) +2. فتح ملف Markdown في Obsidian +3. تنفيذ مهام Notemd: + - **إضافة روابط ويكي** إلى المصطلحات الرئيسية + - **إنشاء ملاحظات مفاهيمية** للمصطلحات غير المألوفة + - **استخراج النص الأصلي** عبر أسئلة مخصصة (مثل "ما هي القيود؟") + - **البحث في الخلفية** للطرق/المجموعات المستشهد بها + - **ترجمة** الأقسام الصعبة + - **ضغطها إلى رسم Mermaid** لفهم الهيكل + +**الإصدار 1.9.1+:** استخراج هيكل الفصول مع دعم فهرس المحتويات + +**النتيجة:** تصبح قراءة الورقة عنصرًا معرفيًا منظمًا وقابلًا للربط في خزانتك. + +--- + +## الرسوم البيانية والتصور + +### أي أنواع الرسوم البيانية/الجرافات يمكن لـ Notemd إنشاؤها؟ + +| النوع | الدعم | الميزات | +|------|---------|----------| +| **Mermaid** | كامل | رسوم تخطيطية، تسلسلية، فئات، حالات، ER، Gantt، تصحيح تلقائي للصيغة، التحقق الجماعي | +| **JSON Canvas** | كامل | تخطيطات الرسم الأصلية Obsidian | +| **Vega-Lite** | كامل | رسوم بيانية للبيانات، سلاسل زمنية، مخططات عمودية، مخططات تشتت، قابلة للتخصيص | +| **HTML** | البديل | لأنواع الرسوم التخطيطية غير المدعومة | +| **قابل للتحرير HTML/SVG** | الهدف الصريح | تنسيق داخلي مستقل SVG مع تعليقات على طراز Draw.io الدلالي | +| **ملفات Draw.io / Drawnix** | حد التصدير | قيمة XML/JSON محددة من `SemanticFigureModel`؛ بدون اعتماد على بيئة تشغيل المحرر | + +**الإصلاح التلقائي لـ Mermaid:** وضع التصحيح العميق يقوم بإصلاحات متعددة: +- سهام مكسورة (`-->`, `-.->`, `==>`) +- علامات وتعليقات غير صالحة +- أخطاء في بنية الرسم الفرعي +- رموز الأشكال (`[`, `(`, `{`, `((`) +- أحرف الأنبوب في العلامات +- مرفقات الملاحظات + +**سير العمل:** +1. تشغيل أمر "تلخيص كرسم Mermaid" على ملاحظة ما +2. عرض مسبق في نافذة منبثقة +3. تصدير بصيغة SVG أو PNG +4. أو احفظه كملف `.mmd` في الخزنة + +--- + +## المصدر المفتوح والمجتمع + +### هل Notemd مجاني ومفتوح المصدر؟ + +**نعم.** +- **الرخصة:** MIT (مرنة، يُسمح باستخدامها تجاريًا) +- **كود المصدر:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **لا توجد مستويات مدفوعة، لا قيود سحابية، لا تتبع للبيانات** +- **المجتمع:** أكثر من 234 نجمة على GitHub، دردشة نشطة + +**ما الذي يخصك:** +- بياناتك (تبقى في خزنتك) +- سلاسل عملك (تخصيص النصوص التحفيزية، النماذج، السلاسل) +- خصوصيتك (دعم محلي لـ LLM) + +**المساهمة:** نرحب بطلبات الدمج. راجع [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +## حل المشكلات + +### مكالماتي باستخدام LLM تفشل، ماذا يجب أن أتحقق منه؟ + +1. **هل مفتاح API صالح؟** تحقق من إعدادات → تكوين المزود +2. **هل اسم النموذج صحيح؟** استخدم زر "获取模型列表" (Get Model List) في الإعدادات +3. **هل الشبكة قابلة للوصول؟** بعض مزودي الخدمة يتطلبون استخدام VPN +4. **قيود المعدل؟** تحقق من لوحة تحكم المزود +5. **التشخيص:** أجرِ "اختبار الاتصال" في الإعدادات للحصول على سجلات الأخطاء التفصيلية + +### Notemd بطيء. كيف يمكنني تسريعه؟ + +1. **استخدام نماذج أسرع:** DeepSeek، Gemini Flash، GPT-4o-mini +2. **تقليل حجم الكتلة:** الإعدادات → التقسيم الذكي → خفض عدد الكلمات +3. **المعالجة المتوازية:** الإعدادات → المعالجة الدفعية → زيادة التزامن +4. **النماذج المحلية:** Ollama للمهام التي لا تحتاج إلى بحث على الويب + +### هل يمكن لـ Notemd العمل بشكل كامل دون اتصال بالإنترنت؟ + +**نعم، باستخدام Ollama.** بدون مفتاح API، بدون إنترنت، لا تغادر البيانات جهازك: + +1. قم بتثبيت [Ollama](https://ollama.com) وشغّل `ollama serve` +2. في إعدادات Notemd، اختر **Ollama** كمزود لديك +3. استخرج نموذجًا: `ollama pull llama3` (أو qwen2.5، gemma2، إلخ.) +4. جميع الميزات تعمل: روابط الويكي، ملاحظات المفاهيم، الترجمة، الرسوم البيانية + +**أبحاث DuckDuckGo** تعمل أيضًا بدون مفتاح API (جودة تجريبية). + +مع مزودي السحابة (OpenAI، Anthropic، Google، DeepSeek، إلخ)، يتم إرسال محتوى الملاحظات كمدخلات API. تحقق من سياسة الخصوصية الخاصة بكل مزود لمعرفة تفاصيل معالجة البيانات. + +### هل يتم إرسال بياناتي إلى السحابة؟ + +**يعتمد الأمر على مزودك:** + +| نوع المزود | هل تُرسل البيانات إلى السحابة؟ | ملاحظات | +|--------------|---------------------|-------| +| **Ollama (محلي)** | لا | تبقى كل شيء على جهازك | +| **LMStudio (محلي)** | لا | نفس Ollama | +| **DeepSeek, OpenAI, إلخ.** | نعم | ملاحظة: يتم إرسال المحتوى كمدخل API للمعالجة | +| **OpenRouter, AIHubMix** | نعم | بوابة توجه الطلبات إلى مزودي السحابة | + +Notemd نفسها لا تجمع **أي بيانات قياسية، ولا تحليلات، ولا بيانات المستخدمين**. الإضافة مفتوحة المصدر بالكامل (MIT). البيانات الوحيدة التي تغادر جهازك هي تلك التي ترسلها صراحةً إلى مزود LLM المُعدّ لديك. + +### أي إضافة ذكاء اصطناعي Obsidian هي الأفضل للبحث؟ + +يعتمد الأمر على سير عمل البحث الخاص بك: + +| مطلوب | الإضافة | السبب | +|------|--------|-----| +| العثور على أوراق بحثية/ملاحظات ذات صلة | Smart Connections | اكتشاف التشابه الدلالي | +| الدردشة حول مصادرك | Copilot | المحادثة مع سياق الخزنة | +| ربط المفاهيم تلقائيًا + إنشاء ملاحظات | **Notemd** | يقوم الذكاء الاصطناعي بتحديد المفاهيم، وإدراج الروابط، وإنشاء الملاحظات | +| البحث على الويب + تلخيصه في ملاحظات | **Notemd** | Tavily/DuckDuckGo بحث → LLM ملخص → يتم إضافته إلى الملاحظة | +| إنشاء رسومات من الأبحاث | **Notemd** | Mermaid/Canvas/Vega-Lite من محتوى الملاحظة | + +**المزيج الموصى به:** Smart Connections (الاكتشاف) + Notemd (التنظيم) + Copilot (النقاش). + +--- + +## طلب المساعدة + +- **الوثائق:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **مشاكل GitHub:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **الراعي:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/ar/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/ar/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..d9e515d0 --- /dev/null +++ b/website/i18n/ar/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "ملاحظات المفاهيم" +description: "إنشاء وإدارة ملاحظات المفاهيم — ملاحظات مستقلة للمفاهيم الرئيسية المستخرجة من خزانتك" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# ملاحظات المفاهيم + + +**Notemd يستخرج المفاهيم الرئيسية من ملاحظاتك وينشئ ملفات ملاحظة مفهوم مستقلة.** يقوم LLM بتحديد المصطلحات الأساسية، ويولّد ملف `.md` واحد لكل مفهوم في مجلد قابل للتكوين، ويضيف اختياريًا روابط عكسية إلى الملاحظة الأصلية. يدعم كبح الترادفات، واختيار نموذج لكل مهمة، وتنقية أسماء الملفات، ومحرك إزالة التكرار ذو الأربع خطوات. هذا جزء من [Obsidian دليل إدارة المعرفة الذكية](/docs/pillar-ai-knowledge). + + +## نظرة عامة + +تُعد ملاحظات المفاهيم الوحدات الأساسية لقاعدة معرفية مترابطة. عند معالجة ملاحظة، Notemd: + +1. **يرسل نصك إلى LLM** مع طلب استخراج منظم +2. **يقوم بتحليل الأسطر `CONCEPT:`** من رد LLM +3. **ينشئ ملف `.md` واحد لكل مفهوم** في مجلد محدد +4. **يضيف روابط عكسية** إلى الملاحظة الأصلية (عند تفعيلها) + +## كيف يعمل + +### خط أنابيب الاستخراج + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### طلب الاستخراج + +يتلقى LLM طلبًا يوجهه إلى ما يلي: + +- استخراج **الأسماء أو عبارات الأسماء** الأساسية لموضوع المستند +- **إعطاء الأولوية للتحديد** — "Dielectric Relaxation" على "Relaxation" +- **تحويلها إلى صيغة المفرد** — "models" تصبح "model" +- **كبح المفاهيم الفرعية** — إذا ظهرت "dielectric relaxation"، فلا يتم أيضًا استخراج "relaxation" +- تجاوز أقسام المراجع/الببليوغرافيا والأسماء العامة وأسماء الشركات/المنتجات +- أخرج مفهومًا واحدًا في كل سطر على شكل `CONCEPT: Term Name` + +**قمع المرادفات** (اختياري): أضف في بداية الطلب عبارة "تجنب استخراج المرادفات أو المفاهيم الأساسية المتشابهة دلاليًا أو الكلمات الرئيسية كلما أمكن". + +**مجال التعلم المركز** (اختياري): أضف `Relevant Fields: [domain]` في بداية الطلب لتقييد الاستخراج إلى تخصص معين. + +**تغيير اللغة** (اختياري): أضف في نهاية الطلب عبارة "يجب أن تكون المفاهيم الناتجة بلغة [language]." + +### التقسيم إلى مجموعات + +يتم تقسيم الملاحظات الطويلة باستخدام `settings.chunkWordCount`. يتم إرسال كل مجموعة بشكل منفصل. يتم تجميع المفاهيم من جميع المجموعات في `Set` — يتم حذف التكرارات بين المجموعات دون إبلاغ. أخطاء LLM في كل مجموعة على حدة لا تؤدي إلى إيقاف العملية. + +## إنشاء ملاحظة المفهوم + +### قواعد أسماء الملفات + +| القاعدة | السلوك | +|------|----------| +| الخطوط/الأسفلت | يتم استبدالها بمسافات | +| الرموز الخاصة | يتم إزالتها: الخلفية، الأمامية، الفاصلة، النجمة، علامة الاستفهام، الأقواس، الأقواس المائلة، الأنبوب، العلامة المائية، الرمز الصاعد، الأقواس | +| المسافات البيضاء | يتم دمجها وتنظيفها | +| أقصى طول | 100 حرف (مقتطع + مُعاد تنظيفه) | +| نتيجة فارغة/كلها نقاط | تم تخطيها بصمت | + +مثال: `A-B: Key*Term` يصبح `A B KeyTerm.md` + +### القوالب + +**القالب الكامل** (الروابط الخلفية مفعّلة، القالب الأدنى غير مفعّل): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**القالب الأدنى** (عند `extractConceptsMinimalTemplate: true`): + +```markdown +# Concept Name +``` + +### تحديث الملاحظات الحالية + +عندما يكون ملف المفهوم موجودًا بالفعل: + +1. إذا كانت الروابط الخلفية مفعّلة ولم تُدرج الملاحظة المصدر بعد، أضف رابطًا خلفيًا +2. إذا كان هناك قسم `## Linked From`، أدخله قبل عنوان `##` التالي +3. إذا لم يكن هناك `## Linked From`، أضف القسم في النهاية +4. يتم فحص الروابط الخلفية المكررة وتخطيها + +### التكوين + +| الإعداد | افتراضي | التأثير | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | مفتاح التبديل الرئيسي. غير مفعّل = لا يتم إنشاء أي ملاحظات | +| `conceptNoteFolder` | `''` (معطل) | مسار المجلد لملاحظات المفاهيم | +| `extractConceptsMinimalTemplate` | `true` | ملاحظات بالعنوان فقط (بدون رابط مرتبط) | +| `extractConceptsAddBacklink` | `false` | إضافة روابط خلفية أثناء الاستخراج المستقل | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | LLM لكل مهمة لاستخراج المفاهيم | +| `extractConceptsLanguage` | `'en'` | لغة الإخراج لأسماء المفاهيم | +| `replaceSynonymsDuringConceptExtraction` | `false` | تفعيل قمع المرادفات في الطلب | +| `generateConceptLogFile` | `false` | كتابة قائمة `.log` للمفاهيم التي تم إنشاؤها | + +**مهم:** إعدادات `extractConceptsAddBacklink` و `extractConceptsMinimalTemplate` تؤثر فقط على **أمر الاستخراج المخصص**. أمر "إضافة الروابط" ينشئ دائمًا ملاحظات بنموذج كامل مع روابط خلفية. + +## التكرار + +يقوم أمر التكرار (`Notemd: Check & remove duplicate concept notes`) بتنفيذ تحليل يتكون من 5 خطوات: + +### الخطوة 1: المطابقة الدقيقة لاسم الملف + +مقارنة اسم الملف بدون اعتبار لحروف الأحرف الكبيرة والصغيرة ضمن النطاق المُعدّ. + +### الخطوة 2: كشف الصيغة الجمعية + +إزالة اللاحقات: `-ies` إلى `-y`، `-es` يتم إزالته، `-s` يتم إزالته. مقارنة الصيغة المفردة مع ملفات النطاق. لا يتعامل مع الأشكال الجمعية غير المنتظمة (children/child). + +### الخطوة 3: تنظيم الرموز + +يتم تطبيقه على `toLowerCase()`، استبدل الخطوط المنقوطة/الخطوط تحت الخط بمسافات، أزل الأحرف غير الأبجدية والأرقام، واختصر المسافات البيضاء. يتم وضع علامة على ما يتم تنظيمه بنفس الطريقة. + +### الخطوة 4: احتواء كلمة واحدة + +يتم فحص ملاحظات المفاهيم المكونة من كلمة واحدة مقابل أسماء ملفات النطاق المكونة من عدة كلمات. لا يتم تنفيذه عندما يكون النطاق `concept_folder_only`. + +### الخطوة 5: التأكيد والحذف + +يتم عرض جميع المرشحين في نافذة تأكيد. يتم نقل العناصر الموافق عليها إلى سلة المهملات في النظام. يمكن إلغاء العملية بين كل عملية حذف. + +### أوضاع النطاق + +| الوضع | يتم المقارنة مع | +|------|-------------------| +| `vault` (افتراضي) | جميع ملفات الخزن `.md` باستثناء مجلد المفاهيم | +| `concept_folder_only` | ملاحظات المفاهيم الأخرى داخل المجلد | +| `include` | الملفات الموجودة في المجلدات المدرجة محددًا | +| `exclude` | جميع ملفات الخزن باستثناء مجلد المفاهيم + المجلدات المدرجة | + +## الاستخدام + +### استخراج المفاهيم (مستقل) + +1. افتح ملاحظة +2. أرسل **"Notemd: استخراج المفاهيم"** من لوحة الأوامر +3. يتم إنشاء ملاحظات المفاهيم في المجلد المحدد + +### استخراج وإنشاء المحتوى + +**"Notemd: استخراج المفاهيم وإنشاء العناوين"** — يقوم باستخراج المفاهيم، ثم يشغّل أمر "إنشاء من العنوان" على كل ملاحظة في مجلد المفاهيم. هذا يولّد محتوى لـ **جميع** ملاحظات المفاهيم في المجلد، وليس فقط تلك التي تم إنشاؤها حديثًا. + +### إنشاء رابط ويكي من الاختيار + +1. تمييز النص في المحرر +2. تشغيل أمر **"Notemd: إنشاء رابط ويكي من الاختيار"** +3. يتم تغليف النص داخل `[[...]]` ويتم إنشاء ملاحظة مفهوم + +## نصائح + +- **يجب تحديد مجلد المفاهيم أولاً** — بدونه لا يتم إنشاء أي ملاحظات. يظهر نافذة تحذير إذا لم يتم تحديده. +- **استخدام النماذج حسب المهمة** — استخراج المفاهيم يعمل بشكل جيد مع النماذج الأقل تكلفة (GPT-4o-mini، DeepSeek). احتفظ بالنماذج المكلفة للاستخدام في البحث أو الترجمة. +- **تفعيل قمع المرادفات** في المجالات التقنية حيث يشير عدة مصطلحات إلى نفس المفهوم. +- **إزالة الازدواج بانتظام** — شغّل أمر إزالة الازدواج بعد المعالجة الجماعية للكشف عن الازدواجيات التقريبية. +- **يتم كتابة ملف السجل من جديد** في كل تشغيل، ولا يتم إضافته. انسخه إذا كنت بحاجة إلى النتائج السابقة. + +--- + +## الخطوات التالية + +- [روابط الويكي](./wiki-links) — كيفية ربط المفاهيم داخل النص +- [الرسوم البيانية](./diagrams) — تصور علاقات المفاهيم +- [سلاسل العمل](./workflows) — ربط الاستخراج بمهام أخرى diff --git a/website/i18n/ar/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/ar/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..8bff3aa2 --- /dev/null +++ b/website/i18n/ar/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "رسومات تخطيطية" +description: "إنشاء Mermaid، JSON Canvas، Vega-Lite، HTML، وملفات رسومية قابلة للتعديل، بالإضافة إلى رسومات تخطيطية مقيدة في المستقبل circuitikz من ملاحظاتك باستخدام بنية مبنية على المواصفات أولاً" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# رسومات تخطيطية + + +**Notemd يُنشئ الرسومات التخطيطية من ملاحظاتك عبر خط أنابيب يعتمد على المواصفات أولاً.** يُنتج LLM ملف `DiagramSpec` JSON غير مرتبط بمحرك العرض، ثم تقوم محولات مخصصة بتحويله إلى Mermaid، JSON Canvas، Vega-Lite، HTML، أو مخرجات قابلة للتعديل HTML/SVG. يدعم 8 أنواع من النوايا، وسلاسل البديل التلقائية، وعرض تجريبي مباشر مع تصدير SVG/PNG، والتحقق الدلالي، والإنشاء المعزز بالمعرفة المحلية. + + +هذا جزء من [Obsidian دليل إدارة المعرفة الذكية](/docs/pillar-ai-knowledge). + +## البنية: خط أنابيب مبني على المواصفات أولاً + +Notemd لا يطلب أبداً من LLM إنتاج صيغ Mermaid/Vega/Canvas مباشرة. بدلاً من ذلك: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**لماذا المواصفات أولاً؟** تُنتج LLM صيغاً غير صالحة لمحركات العرض بشكل متكرر (خاصة Mermaid). يمكن التحقق من صحة المواصفات المُنظمة قبل العرض، ويمكن لنفس المواصفات تغذية عدة محركات عرض كبدائل. + +## أنواع الرسومات التخطيطية المدعومة + +| النية | محرك العرض الرئيسي | البدائل | حالة الاستخدام | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | تقسيم المواضيع الهرمية | +| `flowchart` | Mermaid | HTML | تدفقات العمليات، أشجار القرارات | +| `sequence` | Mermaid | HTML | تفاعلات العميل مع الخادم، البروتوكولات | +| `classDiagram` | Mermaid | HTML | علاقات فئات OOP | +| `erDiagram` | Mermaid | HTML | مخططات قواعد البيانات، علاقات الكيانات | +| `stateDiagram` | Mermaid | HTML | آلات الحالة، نماذج دورة الحياة | +| `canvasMap` | JSON Canvas | Mermaid → HTML | خرائط المفاهيم، رسومات المعرفة | +| `dataChart` | Vega-Lite | Mermaid → HTML | الرسوم البيانية من نوع البار، الخط، المساحة، التشتت، الدائرة، الجداول | + +## اكتشاف النية + +Notemd يحدد أفضل نوع رسم بياني من محتوى الملاحظة باستخدام تقييم الكلمات المفتاحية: + +| النية | المحفزات | مستوى الثقة | +|--------|----------|------------| +| `dataChart` | الجداول، الخلايا العددية، كلمات مفتاحية للمقاييس/الاتجاهات، النسب المئوية | 0.88 | +| `sequence` | مفردات الطلب/الاستجابة (4 مطابقات أو أكثر) أو علامات `->`/`=>` | 0.82 | +| `erDiagram` | المفتاح الأساسي، المفتاح الخارجي، الكيان، المخطط (2 مطابقات أو أكثر) | 0.80 | +| `stateDiagram` | الحالة، التحول، المعلق، الجاري، الفاشل (3 مطابقات أو أكثر) | 0.76 | +| `flowchart` | الخطوات المرقمة (2 خطوات أو أكثر) أو مفردات if/then/else/workflow | 0.74 | +| `canvasMap` | خريطة مفاهيم، رسم بياني للمعرفة، مكاني، مجموعات | 0.72 | +| `mindmap` | الخيار الافتراضي للتعويض | 0.55 | + +قم بالتغلب على ذلك باستخدام إعداد **نوع الرسم المفضل**، أو محدد الشريط الجانبي، أو خيار واضح في لوحة الأوامر. + +## اختيار هدف الترجمة + +يحتوي مسار العمل التجريبي القائم على المواصفات الآن على تحكمين مستقلين: + +| التحكم | الإعداد | التأثير | +|---------|---------|--------| +| نوع الرسم التخطيطي المفضل | `preferredDiagramIntent` | يوجه الشكل الدلالي لـ `DiagramSpec` المولد | +| الهدف المفضل للعرض | `preferredDiagramRenderTarget` | يختار مُحوّل الكائنات لـ **إنشاء مخطط** و **عرض مسبق للمخطط** | + +قم بتعيين **الهدف المفضل للعرض** إلى **Auto** كإعداد افتراضي للمخطط، أو اختر Mermaid، JSON Canvas، Vega-Lite، HTML، أو HTML/SVG القابلة للتعديل صراحةً. ينطبق هذا التغيير فقط على أوامر الإنشاء والعرض التجريبي. تظل أمر **تلخيص البيانات كرسم بياني Mermaid** القياسي مرتبطةً بالمخرجات المتوافقة مع Mermaid، حتى لا تقوم سلاسل العمل الحالية المستخدمة في Markdown بتغيير التنسيقات دون إشعار. + +يُعد هذا الفصل مهمًا لأن نية `flowchart` يمكن الآن تقديمها كـ Mermaid لملاحظات Markdown، أو كـ HTML كخيار احتياطي قوي، أو كـ HTML/SVG قابلة للتعديل للتعديل لاحقًا. يظل Draw.io وDrawnix مجرد مُصدرين للملفات من نوع CLI بدلاً من أن تكونا أهدافًا للتقديم داخل الإضافة. + +## الاستخدام + +### أنشئ رسمًا تخطيطيًا + +1. افتح ملاحظة +2. أرسل **"Notemd: Generate diagram"** من لوحة الأوامر +3. يكتشف Notemd النية، ويولد المواصفات، ويقوم بالعرض، ويحفظ النتيجة النهائية. + +**ملفات الإخراج حسب الهدف:** + +| الهدف | الامتداد | نمط اسم الملف | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| قابل للتعديل HTML/SVG | `.html` | `{note}_diagram.html` | + +### عرض مخطط تجريبي + +1. تشغيل **"Notemd: عرض مخطط تجريبي"** +2. يظهر نافذة منبثقة تحتوي على المخطط المُعرض +3. تصديره كـ SVG أو PNG باستخدام أزرار شريط الأدوات + +يتوفر خيار **فتح العرض التجريبي تلقائياً** في الإعدادات — بعد الإنشاء، تُفتح نافذة العرض التجريبي تلقائياً. + +تحتوي نافذة العرض التجريبي أيضاً على لوحة تشخيص الآثار. يمكن لأدوات التحويل والفحوصات الأولية ربط `RenderArtifact.diagnostics`؛ تعرض النافذة ملخصاً تشخيصياً يتضمن أعداد الأخطاء/التحذيرات/المعلومات، ثم درجة الخطورة، نوع التشخيص، الرسالة، ونصائح الإصلاح بجانب العرض. يتم عرض نفس الملخص في سجلات تاريخ العروض التجريبية، مما يسمح بمقارنة محاولات الفحص الأولي circuitikz المتكررة دون فتح كل سجل. بالنسبة للآثار التي تحتوي على محتوى مصدري ولا يمكن تحويلها داخلياً أو عبر مسار الـ iframe HTML، تلجأ النافذة الآن إلى عرض تجريبي يعتمد فقط على المصدر بدلاً من إجبار استخدام iframe فارغ. هذا يوفر لـ circuitikz فحوصات التجميع/التحويل، وفحوصات رموز النص SVG، وفحوصات لقطات الشاشة الفارغة PNG، وتقارير التداخل المستقبلية سطحاً مرئياً UI دون جعل TikZJax أو LaTeX اعتماداً إلزامياً في وقت تشغيل الإضافات أو التظاهر بأن النص المصدري هو عرض بصري مؤكد. + +### وضع Mermaid القديم + +عند إيقاف `enableExperimentalDiagramPipeline`، يرسل Notemd طلباً مباشراً Mermaid إلى LLM. هذا يتجاوز خطوات المعالجة المحددة بالكامل. إذا فشل الخط التجريبي، يتم العودة إلى هذا الوضع. + +## خوادم التحويل + +### Mermaid + +6 محولات (خريطة ذهنية، مخطط تدفق، تسلسلي، ER، فئة، حالة) تحول `DiagramSpec` إلى صيغة Mermaid. بعد الإنشاء، يقوم `mermaid.parse()` بالتحقق من الناتج. إذا فشل التحقق: + +1. **إعادة المحاولة LLM** — محاولة واحدة مع رسالة خطأ Mermaid كسياق +2. **البديل الأدنى** — مخطط Mermaid بسيط مستمد من معرفات عقد المواصفات + +**مُصلح الإرث Mermaid** يقوم تلقائيًا بإصلاح الأخطاء الشائعة في صيغة LLM مثل: تنظيم توجيهات note، تفادي مشكلات pipe-label، إعادة ترتيب علامات الفاصلة المنقوطة، الاقتباسات الذكية، أسهم الخط المزدوج، عدم تطابق الأشكال، وغيرها. + +### JSON Canvas + +يُنتج تنسيق Obsidian JSON Canvas مع تخطيط مكاني: +- تُحدد مواقع العقد حسب العمق (x = عمق × 420) والرقم التسلسلي (y = رقم التسلسل × 170) +- يتم تقدير العرض بناءً على طول العلامة +- الحواف تحتوي على `fromSide: 'right'`، `toSide: 'left'`، `toEnd: 'arrow'` + +### Vega-Lite + +يُنشئ مواصفات Vega-Lite v5 JSON كاملة مع ترميز تلقائي: +- **الرسوم البيانية الديكارتية** (العمودية/الخطية/المساحية/النقطية/التشتت): قنوات x + y بالإضافة إلى اللون لعدة سلاسل +- **الدائري**: theta = y (كمي)، اللون = x (اسمي) +- **الجدول**: الصف = x، النص = y + العمود = السلسلة + +تُدمج بشكل عميق قوالب الثيم الداكن والفاتح قبل التجميع. + +### HTML + +حل احتياطي عالمي. مستند HTML مستقل يحتوي على: +- رؤوس meta CSP +- وضع فاتح/داكن عبر `prefers-color-scheme` +- علامات UI مُحلية لـ 20 لغة +- الأقسام: الصفحة الرئيسية، الهيكل (شجرة العقد)، العلاقات، الملاحظات، جداول سلاسل البيانات + +### HTML/SVG قابل للتعديل + +هدف رقمي واضح لسير العمل التصديرية القابلة للتعديل. يقوم بتحويل `DiagramSpec` إلى `SemanticFigureModel` محدد، ثم يُنتج مستندًا مستقلاً HTML يحتوي على مجموعات SVG داخلية تحمل تعليقات على طراز Draw.io: + +- `data-drawio-type`، `data-drawio-id`، و `data-drawio-role` على العقد الدلالية +- `data-drawio-source` و `data-drawio-target` على الحواف الدلالية +- معرفات مستقرة للعقد والحواف بعد تنظيم المسافات البيضاء ومعالجة التصادمات +- لا يوجد سكريبتات، ولا خطوط خارجية، ولا موارد بعيدة + +هذا الهدف ليس الطريق الافتراضي للمخطط حاليًا. يتوفر كهدف تصدير واضح طالما أن مسار المنتج يثبت سلوك التعديل في الأدوات الفعلية. + +### حدود التصدير Draw.io و Drawnix + +التنفيذ الحالي يحافظ على دعم المحررات من الجهات الخارجية عند حدود الكائنات: + +| الهدف | العقد | اعتمادية وقت التشغيل | +|--------|----------|--------------------| +| Draw.io | `mxfile` غير مضغوط محدد من `SemanticFigureModel` | لا شيء في وقت تشغيل الإضافة أو في CI | +| Drawnix | مجموعة صغيرة من `.drawnix` JSON باستخدام عناصر `geometry` و `arrow-line` | لا شيء في وقت تشغيل الإضافة أو في CI | + +التضحية مقصودة: يمكن لـ Notemd التحقق من العلامات المرئية، والمعرفات المستقرة، وتغطية العناصر الأولية المدعومة دون تضمين Diagrams.net Desktop أو Drawnix أو Plait أو حالة المحرر الخاص بالمتصفح داخل الإضافة. + +### circuitikz / TikZJax الاتجاه + +رسومات الدوائر ليست نفس مشكلة المخططات التدفقية العامة. الصيغة الصحيحة المستهدفة للدوائر الكهربائية عادةً ما تكون **circuitikz**، وتُعرض بواسطة Obsidian من خلال إضافات مثل TikZJax. يمكن لـ TikZJax تحميل حزم مثل `circuitikz`، `pgfplots`، `tikz-cd`، و`chemfig`، مما يجعلها مناسبة لملاحظات الفيزياء والدوائر والكيمياء والرياضيات. + +الخطر هو أن التيكز المولد مباشرةً من LLM يكون هشًا: + +- يمكن أن تكون توبولوجيا الدائرة المعقدة صحيحة كهربائيًا لكنها غير قابلة للقراءة بصريًا؛ +- يمكن أن تجعل الأسلاك والعلامات المتداخلة قائمة الشبكة الصحيحة غير صالحة للاستخدام في ملاحظات الدراسة؛ +- يمكن أن يمنع غياب مقدمات الحزم أو الأركان الخاطئة أو أسماء المكونات غير الصحيحة عملية العرض؛ +- التغذية الراجعة من مولد الرسوم عادةً ما تكون على مستوى الصورة، بينما يتم إنشاء الهندسة على مستوى النص بواسطة LLM. + +التصميم الأفضل هو اعتبار circuitikz كهدف رسم مقيد، وليس كطلب حر الشكل: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +يجب أن يصف النموذج من الدرجة الأولى توبولوجيا الدائرة وتخطيطها بشكل منفصل: + +| الطبقة | المسؤولية | مثال | +|-------|----------------|---------| +| التوبولوجيا | عقد الكهرباء واتصالات المكونات | `VDD -> RD -> drain(M1)`، `source(M1) -> GND` | +| التخطيط | تحديد موقع الشبكة، التوجيه، مسارات التوصيل | `M1 at (3,2.2)`، المدخل على اليسار، المخرج على اليمين | +| التصميم | الحزمة، اتفاقية الجهد، الملصقات، الأرصفة | `\begin{circuitikz}[american voltages]` | +| التحقق | سجل التجميع، الأرصفة المفقودة، فحوصات التداخل/لقطات الشاشة | TikZJax/تشخيصات LaTeX بالإضافة إلى مراجعة بصرية | + +### النموذج التجريبي الحالي circuitikz + +Notemd يتضمن الآن أول نموذج تجريبي للمستودع المقيد لهذا الاتجاه. إنه معطل عمدًا ومقيد بقالب: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +يضيف النموذج حدًا منفصلاً `CircuitSpec` ومُصدرًا محددًا لست عائلات مرجعية ذهبية: + +| نوع الدائرة | المرجع الذهبي | ضمان التيار | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | يقوم بالتحقق من `VDD -> R_D -> M1.D`، `vin -> M1.G`، `M1.S -> GND`، و `M1.D -> vout` قبل كتابة LaTeX | +| `cmos-inverter` | `cmos-inverter-v1` | يقوم بالتحقق من توبولوجيا PMOS-over-NMOS، المدخل المشترك للبوابة، المخرج المشترك للتصريف، `VDD -> MP.S`، و `MN.S -> GND` قبل كتابة LaTeX | +| `cmos-buffer` | `cmos-buffer-v1` | يقوم بالتحقق من مرحلتين متسلسلتين من المعاكسات، العقدة الوسطى `vmid`، القيمة المستعادة `vout`، وخطوط VDD/GND المشتركة قبل كتابة LaTeX | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | يقوم بالتحقق من أجهزة المرور المتوازية PMOS/NMOS بين `vin` و `vout` مع تحكمات متكاملة `phib` / `phi` قبل كتابة LaTeX | +| `cmos-nand2` | `cmos-nand2-v1` | يتحقق من تفعيل الرفع الموازي لـ PMOS والخفض التسلسلي لـ NMOS، مع مدخلات مزدوجة `va` / `vb` و `vout` قبل كتابة LaTeX | +| `cmos-nor2` | `cmos-nor2-v1` | يتحقق من تفعيل الرفع التسلسلي لـ PMOS والخفض الموازي لـ NMOS، مع مدخلات مزدوجة `va` / `vb` و `vout` قبل كتابة LaTeX | + +هذا ليس مولد TikZ عامًا بعد. إنه لا يقوم بتجميع LaTeX، ولا يستدعي TikZJax، ولا يفحص اللقطات، ولا ينفّذ إصلاحات تصحيح الصور التلقائية. تظل تلك الميزات في مراحل لاحقة. + +يمكن لأمر الرسم التخطيطي المسبق أن يعيد فتح ملفات المصدر circuitikz المحفوظة مباشرةً عندما يكون امتداد الملف `.tex` أو `.tikz` ويحتوي المصدر على `\usepackage{circuitikz}` أو `\begin{circuitikz}`. هذا الطريق هو عرض مسبق للمصدر فقط circuitikz: يعرض النافذة المنبثقة المصدر والتشخيصات وأدوات النسخ/الحفظ وبيانات التاريخ، لكنه لا يقوم بتجميع LaTeX أو يستدعي TikZJax أثناء تشغيل الإضافة. + +يغطي حد العرض المسبق للمصدر نفسه الآن ملفات Draw.io و Drawnix المحفوظة. يتم قبول ملفات `.drawio` عندما تبدو كـ Draw.io XML (`mxfile` أو `mxGraphModel`)، ويتم قبول ملفات `.drawnix` عندما تكون Drawnix JSON مع `type: "drawnix"` ومصفوفة `elements`. لا تزال الإضافة لا تدمج diagrams.net أو مضيف السبورة البيضاء Drawnix؛ فهذه العروض المسبقة تكشف عن المصدر والتشخيصات وتاريخ الملفات دون الادعاء بوجود محرر بصري داخل الإضافة. + +لإجراء إصلاح يحافظ على التركيب، أرسل مواصفات ما قبل الإصلاح كمرجع قبل قبول مرشح مصلح:\n + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +يستخدم حارس الإصلاح `createCircuitTopologySignature` و `assertCircuitTopologyUnchanged` لمقارنة `circuitKind`، `goldenReferenceId`، الشبكات، معرفات/أنواع/طرفيات المكونات، ونقاط نهاية الاتصالات غير الموجهة قبل الإخراج. يتم تجاهل العلامات ونص العنوان وإرشادات التخطيط وترتيب الاتصالات وعلامات الاتصال عمدًا. المرشح الذي يضيف طرفًا قصيرًا أو يعيد توصيل طرف يفشل بسبب `Circuit topology drift detected` قبل كتابة ملف `.tex`. + +يمكن لـ CLI الآن تحليل سجل التجميع الحالي لـ LaTeX/TikZJax دون تشغيل مترجم:\n + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +يُبلغ هذا المسار التشخيصي عن حزم مفقودة مثل `circuitikz.sty`، مفاتيح TikZ/circuitikz غير معروفة، أخطاء في صيغة مسار TikZ مثل غياب الفواصل، وجود حجج زائدة من أقواس غير متوازنة أو علامات غير مغلقة، تسلسلات تحكم غير معرّفة، أخطاء LaTeX عامة، توقفات طارئة، وتحذيرات من امتلاء `\hbox`. يظل الأمر معتمدًا على السجل: التنفيذ المحلي لـ LaTeX/TikZJax ومراحل جودة اللقطات لا تزال أعمالًا مستقبلية منفصلة. + +لإجراء فحوصات سريعة للمُحافظين، يمكن لنفس CLI تشغيل محرر مُعدّ مسبقًا اختياريًا دون تحليل أوامر السطر:\n + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +يستخدم مشغّل التجميع `shell: false`، ويوسع `{tex}`، `{outputDir}`، و `{jobName}` لتحويل القيم المحلية إلى قيم مصفوفة الوسائط، ويقرأ `{jobName}.log` المُولد، ثم يُرجع `compileExecution` مع `compileDiagnostics` في ناتج CLI JSON. `--compile-executable` هو مسار ملف المحرر أو ملف الغلاف فقط؛ أما علامات المحرر فتكون ضمن قيم متكررة في `--compile-arg`. تفشل الملفات الفارغة كـ `compile-executable-invalid`، وتفشل الملفات المفقودة كـ `compile-executable-not-found`، وتُعطى السلاسل التنفيذية على شكل أوامر سطر توجيهات لتقسيم الوسائط بحيث يتبع Windows و Linux و macOS نفس عقد التنفيذ المباشر. مع `--expected-artifact`، يُبلغ أيضًا عن `compileExecution.renderSmoke` ويفشل في CLI إذا لم يُنشئ المحرر ملفًا غير فارغ. لا تزال الإضافة لا تدمج LaTeX، ولا تجعل TikZJax اعتمادًا لتشغيل الإضافة، ولا تقوم بإصلاحات بصرية على مستوى اللقطات. + +إذا كان الملف المتوقع هو `.svg`، فإن فحص الدخان يذهب إلى طبقة أعمق:\n + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +يتحقق SVG من جذر ``، والأبعاد الإيجابية أو `viewBox`، ووجود على الأقل عنصر رسم مرئي بعد استبعاد العناصر المخفية/الشفافة، وأي رموز نصية مطلوبة، والعناصر الواضحة خارج `viewBox`، وعلامات `` / `` المتداخلة الموضوعة بشكل واضح، وعلامات النص الواضحة التي تتداخل مع عناصر الرسم عبر `render-svg-label-overlap`. يتم البحث عن النص المتوقع في النص المرئي وفك تشفير بيانات الوصولية مثل `aria-label`، ``، و ``، بحيث يمكن للمحررات التي تحافظ على العلامات الدلالية خارج `` المرئي أن تلبي فحص رموز النص دون الحاجة إلى OCR. مرحلة الهندسة الآن هي هندسة مدركة للتحويلات لخصائص المجموعات والعناصر الشائعة `transform`، بحيث يتم فحص المستطيلات SVG المترجمة أو المقياسة أو المدورة أو المائلة أو المتحولة بالمصفوفة بعد تركيب التحويلات. يغطي ذلك حدود القوس الدقيقة لأقصى نقاط القوس A/a، وحدود منحنيات Bezier الدقيقة لأقصى نقاط المنحنيات C/S/Q/T، وحدود SVG المدركة لعرض الخط وفحوصات تداخل العلامات، وهندسة الرسم `polyline` / `polygon`، كما يحل أيضًا مواقع الرموز المبنية على المسار فقط من مراجع `` بحيث يمكن للعلامات المحولة إلى مسارات رموز قابلة لإعادة الاستخدام أن تفشل في فحوصات القماش المحدود عندما تخرج هندسة الرمز الموضوع من `viewBox`. يتم مقارنة عدة علامات `tspan` الموضوعة تحت والد واحد `` كصناديق علامات منفصلة، مما يكشف عن نتائج LaTeX النمطية SVG التي كانت ستدمج العلامات المختلفة في عقدة نص واحدة. تحترم الصناديق SVG `text` و `tspan` `text-anchor` و `start` و `middle` و `end`، بحيث يمكن للعلامات المركزة والموضوعة على اليمين أن تُسبب تشخيصات تداخل النص/العلامة مع الرسم دون الادعاء بتخطيط نص على مستوى المتصفح. مسارات الرموز الموجودة فقط في `` لا تُحتسب كعناصر رسم مرئية، لكن يتم تطبيق خصائص `transform` المحلية الخاصة بها قبل وضع `` بحيث لا تُقلل من تعداد تعريفات الرموز المقياسة أو المنعكسة. تستخدم فحص العلامة مقابل الرسم تسامحًا صغيرًا لصندوق الرسم والقيم المعلنة `stroke-width`، بحيث يمكن اعتبار الأسلاك الرفيعة والأسلاك السميكة ومحيطات المكونات المضلعة كفشل محتمل في قابلية قراءة العلامات عندما يصل خطها المرئي إلى العلامة. تُقارن أيضًا علامات الرموز المبنية على المسار فقط من `` مع صناديق الرسم وتفشل بسبب `render-svg-path-glyph-overlap` عندما تتداخل هندسة الرموز القابلة لإعادة الاستخدام مع الأسلاك أو المكونات. إذا قام المحرر بتحويل العلامات إلى رموز مسار قابلة لإعادة الاستخدام بدلًا من `` القابلة للبحث ولم يحافظ على بيانات الوصولية، فإن تقرير الدخان يسجل `pathOnlyGlyphUseCount` ويفشل في الرمز النصي المطلوب عبر `render-svg-text-path-only` بدلًا من التظاهر بأن العلامة غير موجودة. تُبلغ الفشلات الأخرى عبر `render-svg-invalid` و `render-svg-dimension-missing` و `render-svg-no-visible-elements` و `render-svg-text-missing` و `render-svg-out-of-bounds` و `render-svg-text-overlap` و `render-svg-label-overlap` و `render-svg-path-glyph-overlap`. يجب اعتبار فحوصات رموز النص والتداخل كفحوصات هيكلية فقط للمحررات التي تحافظ على العلامات كنص SVG قابل للبحث أو بيانات وصولية؛ لا يزال الإخراج المبني فقط على المسار SVG يحتاج إلى مرحلة اللقطة/OCR اللاحقة لإثبات قابلية قراءة العلامات بصريًا، ولا يزال هذا المرور الدخاني لا يدعي تغطية كاملة للمسار SVG. + +تُتجاهل المجموعات والعناصر المخفية SVG بشكل متسق أثناء عد العناصر المرئية وجمع الهندسة. لا يمكن للخصائص أو أنماط النص المباشر `display:none`، `visibility:hidden`، `visibility:collapse`، والخصائص العامة `opacity:0` أن تجعل ملف الرسم الفارغ ينجح في فحص الإخراج المرئي. + +يمكن أن تكون تعريفات الرموز المبنية فقط على المسار مسارات مباشرة أو حاويات مجموعة/رمز داخل ``. يحل مرور الدخان هندسة المسارات الفرعية من `` و `` قبل وضع ``، بحيث يظل إخراج الرموز المغلفة يُغذي `pathOnlyGlyphUseCount` وفحوصات القماش المحدود و `render-svg-path-glyph-overlap`. + +يتتبع محلل المسار أيضًا بدايات المسارات الفرعية ويعيد تعيين النقطة الحالية على `Z/z`، بحيث تستمر الأوامر النسبية بعد مسار فرعي مغلق من النقطة SVG الصحيحة بدلًا من إنشاء تشخيصات خاطئة `render-svg-out-of-bounds`. + +يتبع نفس مرحلة الهندسة قواعد SVG للأرقام العشرية ذات النقطة الأمامية وعلامات الجمع الصريحة، لذا تظل إحداثيات dvisvgm المضغوطة مثل `.5` و `-.5` و `+.5` كسورًا أثناء فحوصات الحدود بدلاً من أن تصبح هندسة خارج الحدود غير صحيحة أو يتم تجاهلها. + +إذا أصدر المُعالج `.png`، فإن مسار النتيجة المتوقعة نفسه يصبح لقطة شاشة أولى للتدخين: يقوم Notemd بفك ترميز ملفات PNG ذات الألوان المُرجعة بعمق 1/2/4/8 بت غير متتالية، وملفات PNG بالأبيض والأسود بعمق 1/2/4/8/16 بت، وملفات PNG بالأبيض والأسود مع ألفا/RGB/RGBA بعمق 8/16 بت. تدعم الصور ذات الألوان المُرجعة والأبيض والأسود دون بتات فرعية عينات مضغوطة؛ كما تدعم الصور ذات الألوان المُرجعة أيضًا بيانات PLTE وبيانات tRNS اختيارية؛ وتدعم الصور بالأبيض والأسود/RGB عينات شفافة tRNS. تُعيّن العينات المباشرة بعمق 16 بت إلى نفس مساحة المقارنة RGBA بعمق 8 بت المستخدمة في فحوصات التدخين. تتحقق فحص التدخين من الأبعاد الإيجابية، وتسجل حدود الخلفية ك `foregroundBounds`، وتسجل كثافة الخلفية داخل تلك المربع ك `foregroundDensity`، وتفشل بواسطة `render-png-blank` عندما يتطابق كل بكسل مرئي مع لون الخلفية في الزاوية العلوية اليسرى، وتفشل بواسطة `render-png-content-clipped` عندما يلامس محتوى الخلفية حدود الصورة، وتفشل بواسطة `render-png-foreground-too-small` عندما تحتوي لقطة الشاشة الكبيرة على أقل من أربعة بكسلات خلفية، وتفشل بواسطة `render-png-foreground-dense` عندما تكون بكسلات الخلفية كثيفة بشكل غير طبيعي داخل مربع حدود غير بسيط. تفشل صيغ PNG غير المدعومة بواسطة `render-png-unsupported` مع إرشادات خاصة بالصيغة لملفات PNG المتتالية Adam7 أو أعماق الألوان المُرجعة غير المدعومة. يكتشف هذا النظام لقطات الشاشة الفارغة، وقص اللوحة الواضح، وآثار الخلفية غير المُعالجة بشكل كافٍ، وفشل الازدحام على مستوى البكسل الأول، وإعدادات تصدير PNG الخاطئة للمُعالج دون إضافة اعتماد على واجهة سطر أوامر خاصة بالمنصة. إنه ليس تعرفًا بمستوى OCR، ولا كشفًا دقيقًا لتداخل النصوص، ولا إصلاحًا للصور مع الحفاظ على التوبولوجيا. + +عندما تُظهر التشخيصات فشل في التجميع أو تشغيل فحص التدخين، يمكن لـ CLI أيضًا كتابة ملخص إصلاح يحافظ على التوبولوجيا: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +يستخدم ملخص الإصلاح مخطط `notemd.circuitikz.repair-brief.v1` ويحمل المصدر `CircuitSpec`، وتوقيع التوبولوجيا، وتشخيصات التجميع/التشغيل، والتعديلات المسموح بها، والتعديلات الممنوعة على التوبولوجيا، وخطوات التحقق التالية، بالإضافة إلى `repairPrompt` مُنظم. دور الطلب هو `topology-preserving-circuitikz-repair`؛ قائمته `diagnosticFocus` مستمدة من تشخيصات التجميع/التشغيل، ومتطلباته `acceptanceCriteria` تتطلب التحقق من المرشحين بالإضافة إلى تجميع وتشغيل فحص التدخين مرة أخرى. إنه تنسيق لتمرير الإصلاح في دورة لاحقة، وليس ادعاءً بأن Notemd يقوم بالفعل بإصلاح بصري ذاتي. + +بعد إنتاج مرشح للإصلاح، يمكن لنفس CLI التحقق منه مقابل الملخص قبل كتابة النتيجة: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +يتحقق `--repair-brief` من توقيع التوبولوجيا للمرشح المأخوذ من الملخص وهو متعارض مع `--topology-reference`. اجتياز هذا الفحص يثبت فقط الحفاظ على التوبولوجيا؛ لا يزال المرشح بحاجة إلى تشخيصات التجميع وفحوصات التدخين. + +يتضمن نتيجة `--repair-brief` أيضًا أدلة `repairAcceptance` مع مخطط `notemd.circuitikz.repair-acceptance.v1`. يُبلغ عن الفحوصات `topology-signature` و `compile-diagnostics` و `render-smoke` ك `passed` و `failed` و `missing`؛ ويكشف عن `remainingChecks`؛ ويبقي `readyForVisualAcceptance` غير صحيح حتى يتضمن تشغيل المرشح جميع الأدلة المطلوبة. + +استخدم `--repair-acceptance-output` مع `--repair-brief` عندما تحتاج أدلة CI أو الإصدار إلى ملف JSON دائم: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +لأدلة الإصدار أو المُحافظ، قم بتشغيل كل عائلة ذهبية مدعومة من خلال مشغل الاختبارات الجماعية: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +يستخدم المشغل `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json` و `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json` و `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json` و `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json` و `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json` و `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json`، ويستدعي نفس مسار المُصدر بدون واجهة سطر أوامر لكل اختبار، ويُرجع تقريرًا جماعيًا JSON مع `compileExecution` و `compileDiagnostics` لكل اختبار. إنه لا يزال أمرًا للمُحافظ، وليس اعتمادًا في وقت تشغيل الإضافات. + +عندما لا يكون لدى جهاز المُحافظ مُعالج مُعد بعد، قم بتشغيل نفس أمر الاختبار دون `--compile-executable` واحفظ بوضوح بوابة البيئة: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +يكتب ذلك المسار لا يزال الآثار المحددة للاختبار `.tex`، ولكنه يُرجع `ok: false` مع `rendererAvailability.status` مُضبوطًا على `missing-configuration` وتشخيص `compile-executable-invalid`. اعتبره دليلاً فقط على توفر المُعالج؛ إنه ليس تجميعًا، أو فحص تدخين، أو قبولًا بصريًا. + +### شكل الطلب المرجعي الذهبي + +للاستخدام في المدى القريب، قدم مرجعًا ذهبيًا قابلًا للتصوير قبل طلب متغير دائري. يجب أن يحافظ الطلب المقيد على المقدمة، ومقياس الإحداثيات، وأسلوب الربط، واتفاقيات التوجيه: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +بالنسبة لمُعكس CMOS، يجب أن يطلب الطلب توبولوجيا صريحة بالإضافة إلى قيود التخطيط، وليس فقط "رسم مُعكس CMOS": + +- احتفظ بـ `VDD` في الأعلى، و `GND` في الأسفل، والمدخلات على اليسار، والمخرجات على اليمين؛ +- استخدم `pmos` فوق `nmos`، مع بوابات مشتركة ومصارف مشتركة؛ +- أبقِ عقدة الإخراج عند نقطة التقاء المصرف ووسّمها بـ `*-o`؛ +- استخدم روابط مسماة (`PM1.G`، `NM1.G`، `PM1.D`، `NM1.D`) بدلاً من الإحداثيات المستنتجة بصرياً؛ +- تجنب الأسلاك المائلة أو المتقاطعة ما لم يكن ذلك ضرورياً من الناحية الكهربائية. + +### التقدم الحالي والمراحل القادمة + +| المساحة | الحالة الحالية | الخطوة التالية | +|------|----------------|-----------| +| الرسومات العامة | تم تنفيذ خط أنابيب يعتمد على المواصفات أولاً لـ Mermaid، JSON Canvas، Vega-Lite، HTML | استمر في توسيع نطاق التحقق الدلالي | +| الرسومات القابلة للتعديل | تم تنفيذ حدود الكائنات `editable-html-svg`، Draw.io XML، و Drawnix JSON | أضف عناصر أولية أكثر ثراءً فقط بعد أن تثبت الاختبارات إمكانية التعديل | +| دعم CLI | يقوم `npm run diagram:export-artifact` بتصدير HTML/SVG، Draw.io، و Drawnix القابلة للتعديل من عقدة `DiagramSpec` واحدة | أضف أجهزة دخان مخصصة للأهداف عند شحن الأهداف الجديدة | +| circuitikz | `CircuitSpec -> circuitikz` يصدر النموذج الأولي قوالب ذهبية للمصادر المشتركة ومعكوسات CMOS، `cmos-buffer` / `cmos-buffer-v1`، `cmos-transmission-gate` / `cmos-transmission-gate-v1`، `cmos-nand2` / `cmos-nand2-v1`، و `cmos-nor2` / `cmos-nor2-v1`، بالإضافة إلى مشاريع `layoutHints.inputSide` و `layoutHints.outputSide` لتحديد مواقع مداخل/مخارج محددة دون تغيير التوبولوجيا، ويرفض تغيرات التوبولوجيا أثناء الإصلاح عبر `--topology-reference`، ويصدر تقارير إصلاح تحافظ على التوبولوجيا عبر `--repair-brief-output` والمخطط `notemd.circuitikz.repair-brief.v1`، ويتضمن محتوى نقل منظم `repairPrompt` مع `diagnosticFocus` و `acceptanceCriteria` والدور `topology-preserving-circuitikz-repair`، ويُصحّح المرشحات المحتملة للإصلاح عبر `--repair-brief`، ويُرجع أدلة البوابات عبر المخطط `notemd.circuitikz.repair-acceptance.v1` مع `readyForVisualAcceptance` و `remainingChecks`، ويحتفظ بهذه الأدلة عبر `--repair-acceptance-output`، ويقوم بتحليل سجلات التجميع، ويمكنه تشغيل مُعالجات محلية صريحة بالإضافة إلى `--expected-artifact` و SVG `--expected-svg-text`، ويقوم بفحوصات بيانات الوصولية عبر `aria-label` و `` و `<desc>`، ويستبعد العناصر المخفية/الشفافة SVG، ويقوم بتصنيف `render-svg-text-path-only` / `pathOnlyGlyphUseCount` للعلامات التي تحتوي فقط على مسار، وفحوصات وضع الرموز التي تحتوي فقط على مسار لـ `<use href="#...">`، وتشخيص تداخل الرموز التي تحتوي فقط على مسار عبر `render-svg-path-glyph-overlap`، ومعالجة نقطة التيار للمسارات المغلقة لـ `Z/z`، وحدود دائرية دقيقة لأقصى قيم الدوائر من نوع A/a، وحدود منحنيات Bezier دقيقة لأقصى قيم المنحنيات من نوع C/S/Q/T، وفحوصات حدود SVG المدركة لعرض الخط وتداخل العلامات، وفحوصات هندسية للرسم `polyline` / `polygon`، وهندسة العلامات الموضوعة في مواقع محددة، وهندسة النصوص الموضوعة المدركة لـ `text-anchor`، وهندسة مدركة للتحويلات لحالات SVG المحدودة بالرسم/تداخل النصوص وفحوصات الدخان بين العلامات والرسومات عبر `render-svg-label-overlap`، بالإضافة إلى فحوصات للصور الملتقطة بتنسيق PNG غير فارغة/مقطوعة/ذات خلفية كثيفة، وتشمل ألفا للألوان المُرقّمة، وعينات شفافة بالأبيض والأسود/RGB tRNS، وإرشادات محددة حسب التنسيق `render-png-unsupported` لصور PNG المتداخلة Adam7 وأخطاء عمق البت المُرقّم، عبر `foregroundBounds` و `foregroundDensity` و `render-png-content-clipped` و `render-png-foreground-dense` دون الحاجة إلى تحليل الشلل، ويتضمن أدوات اختبار شاملة للمُعالجين عبر `npm run diagram:smoke-circuitikz`، ويسجل إعدادات المُعالجات المفقودة عبر `rendererAvailability.status: "missing-configuration"` و `compile-executable-invalid`، ويحتوي على تشخيصات معاينة عامة، وأرقام ملخص التشخيصات، وسجلات تاريخية مدركة للتشخيصات، وخيارات بديلة تعتمد فقط على المصدر عبر `RenderArtifact.diagnostics` ونافذة المعاينة. | إضافة تعرف على العلامات على مستوى OCR للنصوص المرئية التي تحتوي فقط على مسارات، وفحوصات دقيقة للتداخل على مستوى البكسل، وتغطية أوسع للمسارات SVG حسب الحاجة، وتثبيت/اكتشاف برنامج التصدير تلقائيًا فقط إذا كان يمكن الاحتفاظ به كخيار اختياري، بالإضافة إلى تنفيذ إصلاحات تلقائية تحافظ على التركيب الهيكلي. | +| تكامل TikZJax | المضيف المقترح لعرض Obsidian-side | اجعلها اختيارية؛ لا تجعل TikZJax متطلبًا إلزاميًا أثناء تشغيل الإضافة. | + +## التكوين + +| الإعداد | افتراضي | التأثير | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | التبديل بين النمط القائم على المواصفات والنمط التقليدي Mermaid | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = Mermaid فقط؛ `'best-fit'` = الأهداف الأصلية + خيارات الاحتياط | +| `preferredDiagramIntent` | `undefined` (تلقائي) | تجاوز الكشف التلقائي عن النية | +| `summarizeToMermaidLanguage` | `'en'` | اللغة المستهدفة لتسميات الرسوم التخطيطية | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | LLM لكل مهمة لإنشاء الرسوم التخطيطية | +| `autoMermaidFixAfterGenerate` | (من الثوابت) | تشغيل أداة إصلاح الإصدارات القديمة تلقائيًا على نتيجة Mermaid | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | تعزيز المصدر بمعرفة خزنة الملفات المحلية | + +### تعزيز المعرفة المحلية + +عند تفعيله، Notemd يسترجع مقتطفات سياقية ذات صلة من قاعدة المعرفة المحلية لخزنتك (المبنية على MiniSearch) ويضيفها في بداية المستند الماركدوف الأصلي. تنص إرشادات التعزيز على: "مجرد مرجع داعم؛ يجب الحفاظ على الهيكل الأساسي مطابقًا لملاحظة المصدر." + +### أوضاع التوافق + +- **`legacy-mermaid`**: تُوجّه جميع النوايا إلى Mermaid. النوايا غير Mermaid (canvasMap، dataChart) تُجبر على الانتقال إلى `flowchart` أو `mindmap`. لا يوجد سلسلة بديلة. +- **`best-fit`**: تُوجّه كل نية إلى الهدف الأصلي الخاص بها. إذا فشل الهدف الأساسي، يتم المرور عبر سلسلة البديل (مثلاً Vega-Lite → Mermaid → HTML). + +## عرض مسبق وتصدير + +| الإجراء | الطريقة | +|--------|--------| +| تصدير SVG | مولد `mermaid.render()` / `vega.View.toSVG()` / SVG للوحة الرسم | +| تصدير بصيغة PNG | SVG → صورة → وحة رسم (نسبة بكسلات الجهاز من 1x إلى 3x) → مصفوفة ArrayBuffer PNG | +| حفظ المصدر | يتم حفظ محتوى القطعة الخام مع امتداد محدد للهدف | +| عرض مسبق للمصدر فقط | القطع غير المدمجة التي تحتوي على محتوى المصدر تُعرض ككود مع تشخيصات، دون عرضها داخل إطار iframe | +| تدقيق دلالي | Mermaid، JSON Canvas، Vega-Lite، و HTML/SVG القابل للتعديل تم التحقق منه بواسطة `scripts/diagram-semantic-verification.js` | + +**التخزين المؤقت**: يستخدم RenderCache مفتاح JSON محددًا لـ `{spec, target, theme}`. يمنع الإزالة المتزامنة إعادة توليد الرسومات المكررة. + +## نصائح + +- **ابدأ بوضع `best-fit`** — فهو يُنتج أفضل نتيجة مرئية لكل نوع من أنواع النوايا +- **استخدم نماذج قوية للرسوم التخطيطية المعقدة** — تستفيد الرسوم التخطيطية التدفقية ورسومات ER من GPT-4o أو Claude +- **قم بتفعيل المعرفة المحلية** للرسوم التخطيطية المتخصصة — يحسّن سياق الخزانة ذو الصلة الدقة +- **ضبط `autoMermaidFixAfterGenerate`** — تكون أخطاء صياغة Mermaid شائعة بدونه +- **أداة إصلاح الإصدارات القديمة شاملة** — إذا فشل عرض التجربة مع Mermaid، فغالبًا ما يُحل المشكلة عن طريق تشغيل أمر الإصلاح يدويًا + +--- + +## الخطوات التالية + +- 🔗 [روابط ويكي](./wiki-links) — كيفية ربط المفاهيم داخل النص +- 📝 [ملاحظات المفاهيم](./concept-notes) — استخراج المفاهيم لمواد مصدر الرسوم التخطيطية +- 🔍 [البحث](./research) — تعزيز الرسوم التخطيطية ببيانات من الويب diff --git a/website/i18n/ar/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/ar/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..f6b38d13 --- /dev/null +++ b/website/i18n/ar/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "البحث والبحث على الويب" +description: "دمج البحث على الويب في ملاحظاتك" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# البحث والبحث على الويب + +<TLDR> +**Notemd يبحث على الويب ويُدخل نتائج ملخصة بواسطة LLM مباشرةً في ملاحظاتك.** Tavily API هو خادم البحث الأساسي؛ DuckDuckGo يعمل كخيار احتياطي بدون إعدادات. تُلخَّص النتائج مع اقتباسات المصادر وتُضاف تحت عنوان `## Research`. يدعم البحث في ملاحظة واحدة، والبحث في مجلدات جماعية، واختيار نموذج لخطوة التلخيص حسب المهمة. + +هذا جزء من [Obsidian دليل إدارة المعرفة الذكية](/docs/pillar-ai-knowledge). +</TLDR> + +## نظرة عامة + +البحث هو أحد أقوى التكاملات في Notemd: فهو يربط بين القراءة والبحث والكتابة. بدلاً من الانتقال إلى المتصفح للبحث عن مصطلح غير مألوف، ما عليك سوى تمييزه وترك Notemd يقوم بالبحث والتلخيص وإضافة النتائج -- كل ذلك داخل خزانتك. + +العملية قابلة للتكوين بالكامل. يمكنك اختيار مزود البحث، و LLM الذي يكتب الملخص، وما إذا كانت النتائج ستُضاف إلى الملاحظة النشطة أو تُكتب في ملفات منفصلة. يتيح الوضع الجماعي البحث في كل الملاحظات داخل مجلد بنقرة واحدة. + +## كيف يعمل + +### أنبوب البحث ثم التلخيص + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **استخراج الاستعلامات** -- Notemd يستخرج مصطلحات البحث من اختيارك أو عنوان الملاحظة. +2. **البحث على الويب** -- يتم تجربة Tavily أولاً. إذا لم يتم تكوين مفتاح API، يتم استخدام DuckDuckGo تلقائياً (لا يُطلب مفتاح). +3. **تلخيص LLM** -- تُرسل نتائج البحث الخام إلى LLM المُعدّ، الذي ينتج ملخصاً موجزاً مع اقتباسات المصادر داخل النص. +4. **الإضافة** -- يتم إضافة الملخص المُنسق تحت عنوان `## Research` في الملاحظة النشطة. + +### Tavily مقابل DuckDuckGo + +| الجانب | Tavily | DuckDuckGo | +|--------|--------|------------| +| مفتاح API | مطلوب (هناك خطة مجانية متاحة) | غير مطلوب | +| جودة النتيجة | أعلى (مصمم خصيصًا للذكاء الاصطناعي) | كافية للاستعلامات العامة | +| قيود المعدل | طبقة مجانية وفيرة | خاضعة للتحكم في السرعة | +| التكوين | `tavilyApiKey` في الإعدادات | لا يوجد إعداد -- الانتقال التلقائي | + +### أبحاث مجلد المجموعات + +انقر بزر الماوس الأيمن على مجلد واختر **"Notemd: مجلد الأبحاث"**. يتم معالجة كل ملف `.md` في المجلد بشكل تسلسلي (أو بشكل متوازي حسب القدرة المحددة). تحصل كل ملاحظة على ملخص أبحاث خاص بها. + +## التكوين + +| الإعداد | افتراضي | التأثير | +|---------|---------|--------| +| `tavilyApiKey` | `''` | مفتاح Tavily API. عندما يكون فارغًا، يتم استخدام DuckDuckGo حصريًا. | +| `researchProvider` / `researchModel` | DeepSeek | LLM لكل مهمة لتلخيص نتائج البحث | +| `maxResearchContentTokens` | `4000` | ميزانية الرموز للمحتوى المرسل إلى LLM. يتم قطع الجزء الزائد. | +| `researchAppendToNote` | `true` | إضافة ملخص إلى الملاحظة الأصلية. إذا كان القيمة false، يتم إنشاء ملف منفصل. | +| `researchLanguage` | `'en'` | لغة الإخراج للأبحاث الملخصة | + +### توصية النموذج لكل مهمة + +تستفيد الأبحاث من نموذج يتعامل مع المحتوى متعدد اللغات ويُنتج نصوصًا مُنظّمة بشكل جيد. فكر فيما يلي: + +- **DeepSeek** -- افتراضي، بسعر معقول، جودة عالية +- **GPT-4o** -- تلخيص ذو جودة أعلى، تكلفة أعلى +- **Gemini Flash** -- سريع ورخيص، مناسب للاستفسارات البسيطة + +## مثال + +أنت تقرأ ورقة بحثية حول *آليات انتباه الترانسفورمر* وتصادف مصطلحًا غير مألوف: *relative positional encoding*. بدلاً من ترك Obsidian: + +1. قم بتمييز **"relative positional encoding"** +2. اضغط بزر الماوس الأيمن --> **"Notemd: Research and summarize"** +3. يقوم Notemd بالبحث على الويب، ويُلخّص أفضل النتائج، ثم يضيف: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +أصبح الملخص الآن جزءًا من خزانتك، قابلاً للبحث، والربط، والوصول إليه دون اتصال بالإنترنت. + +## نصائح + +- **حدد مفتاح Tavily للحصول على أفضل نتائج** -- حتى النسخة المجانية توفر درجة أعلى من الدقة مقارنةً بـ DuckDuckGo الخام. +- **استخدم نموذج تلخيص قوي** -- قد تؤدي النماذج الرخيصة إلى تبسيط المحتوى التقني المعقّد. +- **قم بالبحث الجماعي** بعد القراءة الأولية لسد الفجوات في العديد من الملاحظات دفعة واحدة. +- **راجع الملخصات المضافة** -- قد تُختلق LLM تفاصيل المصادر. تحقق من الادعاءات الرئيسية. + +--- + +## الخطوات التالية + +- [Concept Notes](./concept-notes) -- استخراج وحفظ المصطلحات الرئيسية من نتائج البحث +- [Wiki-Links](./wiki-links) -- ربط المفاهيم المستمدة من البحث داخل خزانتك +- [Translation](./translation) -- ترجمة ملخصات البحث إلى لغة أخرى +- [مزودو LLM](/docs/providers/overview) -- تكوين النموذج المستخدم للتلخيص diff --git a/website/i18n/ar/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/ar/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..4dd2071d --- /dev/null +++ b/website/i18n/ar/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "الترجمة" +description: "ترجمة الملاحظات والمقتطفات" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# الترجمة + +<TLDR> +**Notemd يقوم بترجمة النصوص بين 21 لغةً أو أكثر باستخدام تقنية الترجمة المدعومة بـ LLM.** يدعم الترجمة لمقتطف واحد، وترجمة الملاحظة بأكملها، وترجمة مجلدات كاملة. يمكن لكل مهمة ترجمة استخدام مزود ونموذج مخصص من خلال إعدادات المهمة نفسها. يمكن ضبط لغة الإخراج بشكل منفصل عن لغة UI. تُضاف النتائج أو تُكتب في ملف جديد حسب تفضيلاتك. + +هذا جزء من [Obsidian دليل إدارة المعرفة الذكية](/docs/pillar-ai-knowledge). +</TLDR> + +## نظرة عامة + +الترجمة في Notemd ليست بحثًا في قاموس — بل هي ترجمة مدعومة بـ LLM وتأخذ السياق في الاعتبار. يرى النموذج الفقرة أو الملاحظة بأكملها، مما يحافظ على النبرة ومصطلحات المجال وبنية الجمل. هذا يُنتج نتائج ذات جودة أعلى من خدمات الترجمة كلمة بكلمة، خاصةً في المحتوى التقني والأكاديمي والإبداعي. + +تدعم الميزة ثلاثة نطاقات: المقتطف، الملاحظة النشطة، والمجلد بأكمله. مع إمكانية اختيار النموذج لكل مهمة، يمكنك استخدام نموذج سريع (Gemini Flash) للترجمات العادية ونموذج قوي (Claude Sonnet) للمحتوى الذي يتطلب دقة عالية — دون الحاجة إلى تغيير المزود العام. + +## كيف يعمل + +### أمر الترجمة + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **اكتشاف المصدر** -- يستنتج LLM لغة المصدر من المحتوى. لا حاجة لتحديدها يدويًا. +2. **بناء الطلب** -- يُنشئ Notemd طلبًا يتضمن اللغة المستهدفة وإشارة اختيارية للمجال والمحتوى المراد ترجمته. +3. **ترجمة LLM** -- يقوم `translateProvider` / `translateModel` المُعدّان بمعالجة الطلب. يحافظ النموذج على تنسيق Markdown وروابط Wiki وكتل الكود. +4. **الإخراج** -- يتم إضافة النص المترجم أسفل النص الأصلي أو كتابته في ملف جديد داخل الخزانة. + +### أزواج اللغات + +يدعم Notemd أي زوج لغات يدعمه النموذج الأساسي LLM. من الأزواج الشائعة: + +| المصدر | الهدف | الجودة المتوقعة | +|--------|--------|----------------| +| الإنجليزية | الصينية (مبسطة) | ممتازة | +| الصينية | الإنجليزية | ممتاز | +| الإنجليزية | اليابانية | جيد جدًا | +| الإنجليزية | الألمانية / الفرنسية / الإسبانية | جيد جدًا | +| أي لغة مدعومة | أي لغة مدعومة | يعتمد على النموذج | + +إعداد `translateLanguage` يتحكم في **لغة الإخراج**. يتم اكتشاف اللغة المصدرية تلقائيًا. + +### اختيار النموذج حسب المهمة + +تختلف جودة الترجمة بشكل كبير حسب النموذج. Notemd يتيح لك تعيين نموذج مخصص للترجمة فقط: + +| النموذج | السرعة | الجودة | التكلفة | الأنسب لـ | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | سريع | جيد | منخفض | استخدام عفوي بكميات كبيرة | +| `gpt-4o-mini` | سريع | جيد | منخفض | عمليات بحث سريعة | +| `deepseek-chat` | متوسط | جيد | منخفض جدًا | متعدد اللغات بميزانية محدودة | +| `claude-3-5-sonnet` | متوسط | ممتاز | متوسط | تقني / أكاديمي | +| `gpt-4o` | متوسط | ممتاز | متوسط | نص حساس للدقة اللغوية | + +### ترجمة مجلدات الدفعات + +انقر بزر الماوس الأيمن على مجلد واختر **"Notemd: Translate folder"** لترجمة كل ملاحظة داخل ذلك المجلد. يتم معالجة كل ملف بشكل منفصل. تتحكم إعدادات التزامن في عدد الملفات التي يتم ترجمتها في نفس الوقت. + +## التكوين + +| الإعداد | افتراضي | التأثير | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | مزود متخصص لمهام الترجمة | +| `translateLanguage` | `'en'` | لغة الإخراج المستهدفة | +| `translationAppendToNote` | `true` | أضف النص المترجم أسفل النص الأصلي. إذا كان القيمة false، يتم إنشاء ملف جديد. | +| `batchConcurrency` | `3` | عدد الملفات التي يتم معالجتها في نفس الوقت أثناء الترجمة الجماعية | + +## مثال + +أنت تقرأ ملاحظة بحثية باللغة الصينية وتريد نسخة باللغة الإنجليزية: + +1. افتح الملاحظة +2. انقر بزر الماوس الأيمن --> **"Notemd: Translate current file"** +3. يكتشف Notemd اللغة الصينية، ويقوم بترجمتها إلى اللغة المستهدفة التي حددتها (الإنجليزية)، ثم يضيف: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +يظل النص الصيني الأصلي كما هو فوق الترجمة. يحافظ عنوان `## Translation` على كلا النسختين في نفس الملف لسهولة الرجوع إليهما. + +## نصائح + +- **استخدم Gemini Flash للكميات الكبيرة** -- إنه الخيار الأسرع والأرخص لترجمة مجلدات كبيرة بشكل جماعي. +- **الحفاظ على روابط الويكي** -- يوجه طلب Notemd LLM للحفاظ على `[[wiki-links]]` كما هو في الترجمة. تحقق بعد الترجمة، لأن بعض النماذج قد تفككها أحيانًا. +- **تحديد لغة الإخراج صراحةً** -- يعمل التعرف التلقائي على المصدر، لكن يجب دائمًا تكوين `translateLanguage` لتجنب أي غموض بشأن الهدف. +- **ترجمة ملاحظات المفاهيم جماعيًا** -- إذا كانت مجلدات المفاهيم الخاصة بك بلغة معينة وتحتاجها بلغة أخرى، فإن الترجمة على مستوى المجلد تتولى ذلك في خطوة واحدة. + +--- + +## الخطوات التالية + +- [البحث](./research) -- البحث والتلخيص بأي لغة، ثم ترجمة النتائج +- [سلاسل العمل](./workflows) -- ربط الترجمات مع روابط الويكي أو استخراج المفاهيم +- [المعالجة الجماعية](/docs/advanced/batch-processing) -- سلوك التزامن والكتابة فوق الملفات في عمليات المجلدات +- [مزودو LLM](/docs/providers/overview) -- اختر أفضل نموذج لزوج اللغات الخاص بك diff --git a/website/i18n/ar/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/ar/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..7442ac3e --- /dev/null +++ b/website/i18n/ar/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "روابط ويكي" +description: "توليد تلقائي لروابط ويكي للمفاهيم الرئيسية" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# روابط ويكي + +<TLDR> +**Notemd يضيف تلقائيًا `[[wiki-links]]` إلى المفاهيم الرئيسية في ملاحظاتك.** يقوم LLM بقراءة محتواك وتحديد المصطلحات المهمة في السياق، ثم يدخل روابط ويكي على طراز Obsidian في كل مرة تظهر فيها. يمكنه أيضًا إنشاء ملفات ملاحظات المفاهيم مع روابط مرجعية. يدعم كبح الكلمات المترادفة، والحفاظ على سلامة الروابط عند إعادة التسمية أو الحذف، بالإضافة إلى وضع الاستخراج النقي (بدون تعديل الملفات). على عكس Auto Link الذي يطابق فقط عناوين الملاحظات القائمة، يستخدم Notemd الذكاء الاصطناعي لتحديد المفاهيم الجديدة وإنشاء ملاحظات مقابلة. هذا جزء من [Obsidian دليل إدارة المعرفة بالذكاء الاصطناعي](/docs/pillar-ai-knowledge). +</TLDR> + +## نظرة عامة + +إن ربط الويكي هو الميزة الأساسية لـ Notemd. فهو يحول النص العادي إلى رسم بياني معرفي مترابط من خلال: + +1. **تحليل ملاحظاتك** باستخدام LLM +2. **تحديد المفاهيم الرئيسية** (المصطلحات، الأشخاص، الأساليب، النظريات) +3. **إدخال `[[wiki-links]]`** في كل مرة تظهر فيها +4. **إنشاء ملاحظات المفاهيم** (اختياري) مع روابط مرجعية + +## كيف يعمل + +### العملية + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### مثال + +**قبل:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**بعد:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## الاستخدام + +### أساسي: إضافة روابط إلى الملاحظة الحالية + +1. افتح ملاحظة +2. انقر بزر الماوس الأيمن في المحرر → **"معالجة الملف (إضافة روابط)"** +3. انتظر بضع ثوانٍ +4. المفاهيم مرتبطة الآن! + +### دفعة: معالجة عدة ملاحظات + +1. النقر بزر الماوس الأيمن على مجلد في مستكشف الملفات +2. اختر **"Notemd: معالجة المجلد (إضافة روابط)"** +3. التكوين: + - التزامن (عدد الملفات المعالجة في نفس الوقت) + - تغطية الروابط الحالية (نعم/لا) +4. النقر على **معالجة** + +### انتقائي: ربط نص محدد + +1. تمييز النص المراد معالجته +2. النقر بزر الماوس الأيمن → **"معالجة الاختيار (إضافة روابط)"** +3. يتم تحليل الجزء المميز فقط + +## Notemd مقابل الربط التلقائي + +Obsidian لديها طريقتان للربط التلقائي بويكي: + +| | **الربط التلقائي** | **Notemd** | +|--|---------------|-------------| +| مصدر الرابط | عناوين الملاحظات الحالية في الخزنة | المفاهيم التي حددها LLM في المحتوى | +| يمكن ربط المفاهيم الجديدة | لا — يجب أن يكون العنوان موجودًا بالفعل | نعم — يقوم الذكاء الاصطناعي بتحديد المفاهيم وإنشاء ملاحظات | +| معالجة المرادفات | لا | نعم — قمع المرادفات | +| إنشاء ملاحظة المفهوم | لا | نعم — مع روابط عكسية وإزالة التكرار | +| المعالجة الدفعية | لا (ملف واحد) | نعم (على مستوى المجلد) | +| توجيه النموذج حسب المهمة | لا | نعم | + +**Auto Link** يعتمد على مطابقة العنوان: إذا كانت هناك ملاحظة باسم "Machine Learning" موجودة، فإنه يغلف الحالات في `[[Machine Learning]]`. إذا لم تكن الملاحظة موجودة، فلا يحدث شيء. + +**Notemd** يعتمد على الذكاء الاصطناعي: يقرأ LLM محتواك ويفهم السياق ويحدد المفاهيم التي *يجب* ربطها — حتى لو لم تكن هناك ملاحظة موجودة بعد — وينشئ كلًا من الرابط وملاحظة المفهوم. + +## الميزات + +### قمع المرادفات + +**المشكلة:** "transformer"، "transformers"، "Transformer architecture" → 3 مفاهيم منفصلة + +**الحل:** Notemd يكتشف التكرارات الشبه المتطابقة ويستخدم الشكل القياسي. + +**التكوين:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### سلامة الروابط + +**عند تغيير اسم ملاحظة المفهوم:** +- تتم تحديث جميع روابط ويكي تلقائيًا (Obsidian ميزة أساسية) +- تظل الروابط الخلفية كما هي + +**عند حذف ملاحظة المفهوم:** +- تظل الروابط موجودة لكنها تظهر كـ "إشارات غير مرتبطة" +- يمكن إعادة إنشائها من أي ظهور لها + +### وضع الاستخراج النقي + +**استخراج المفاهيم دون تعديل الملف الأصلي:** + +1. النقر بزر الماوس الأيمن → **"استخراج المفاهيم (بدون روابط)"** +2. يتم إنشاء ملاحظات المفاهيم +3. لا يتم التأثير على الملف الأصلي + +حالة استخدام: معالجة المحتوى غير القابل للتعديل أو المسودات النهائية. + +## توليد ملاحظات المفاهيم + +### الإنشاء التلقائي + +**عند تفعيلها (القيمة الافتراضية)، Notemd تُنشئ:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### التكوين + +**مجلد الإخراج:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**الهيكل الهرمي:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**القالب:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## خيارات متقدمة + +### نافذة السياق + +**كمية النص المحيط الذي يجب إرساله:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +كلما كان أكبر، كانت الدقة أفضل والتكلفة أعلى. + +### عدد المرات الدنيا للظهور + +**توصيل المفاهيم التي تظهر عدة مرات فقط:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +ضع القيمة على 2 أو 3 للتركيز على المواضيع المتكررة. + +### أنماط للإستبعاد + +**تخطي كلمات معينة:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +يمنع الربط المفرط بالمصطلحات العامة. + +### تعليمات مخصصة + +**تجاوز تعليمات LLM الافتراضية:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +قم بتعديلها لتلبية احتياجات محددة لمجال معين (مثلاً، "التركيز على المصطلحات الطبية"). + +## نصائح وأفضل الممارسات + +### ✅ افعل + +- **تعالج الملاحظات التي تزيد كلماتها عن 100 كلمة** — الملاحظات القصيرة تُنتج مفاهيم قليلة +- **استخدم نماذج قوية** لتحسين تحديد المفاهيم (GPT-4o، Claude) +- **راجع قبل القبول** — تأكد من أن الروابط المقترحة منطقية +- **ابنِ بشكل تدريجي** — تعالج 5-10 ملاحظات، راجع الرسم البياني، عدّل الإعدادات + +### ❌ لا تفعل + +- **الربط المفرط** — ليس كل اسم يحتاج إلى رابط +- **معالجة المسودات مرارًا وتكرارًا** — قد تتغير المفاهيم، انتظر حتى تصبح ثابتة +- **تجاهل المرادفات** — قم بتفعيل القمع لتجنب "ML" مقابل "Machine Learning" + +## الأداء + +### السرعة + +| حجم الملاحظة | GPT-4o-mini | Claude Sonnet | Ollama (محلي) | +|-----------|-------------|---------------|----------------| +| 500 كلمة | ٢-٣ ثانية | ٣-٥ ثانية | ٥-١٠ ثانية | +| ٢٠٠٠ كلمة | ٥-٨ ثانية | ١٠-١٥ ثانية | ٢٠-٤٠ ثانية | +| ٥٠٠٠+ كلمة | مقسّم إلى أجزاء (عدة استدعاءات) | مقسّم | مقسّم | + +### تقدير التكلفة + +**مثال: ملاحظة مكوّنة من ١٠٠٠ كلمة باستخدام GPT-4o-mini** +- المدخلات: ~١٥٠٠ رمز +- المخرجات: ~٢٠٠ رمز +- التكلفة: ~٠.٠٠١ دولار + +**معالجة دفعة من 100 ملاحظة:** ~ + +## حل المشكلات + +### لم يتم إضافة أي روابط + +**التحقق:** +1. نجح الاتصال LLM (الإعدادات → التشخيص) +2. الملاحظة تحتوي على محتوى كافٍ (>50 كلمة) +3. المفاهيم هي تقنية/محددة (وليست مجرد ضمائر) + +**جرب:** +- استخدم نموذجًا أقوى +- زيادة نافذة السياق +- تحقق من صحة مفتاح API + +### عدد كبير جدًا من الروابط + +**الحلول:** +1. زيادة الحد الأدنى لعدد المرات (2 أو 3) +2. أضف كلمات شائعة إلى قائمة الاستثناءات +3. استخدم نموذجًا أقل عدوانية + +### مفاهيم خاطئة مرتبطة + +**التصحيحات:** +1. استخدام نموذج طلب مخصص لتحديد المجال +2. تفعيل قمع المرادفات +3. مراجعة يدوية وفك الارتباط + +### انقطاع الروابط بعد إعادة التسمية + +**هذا سلوك طبيعي Obsidian.** + +لتحديث جميع الروابط: +1. أعد تسمية ملاحظة المفهوم +2. Obsidian يقوم تلقائيًا بتحديث `[[old]]` إلى `[[new]]` + +--- + +## الخطوات التالية + +- 📖 [ملاحظات المفهوم](./concept-notes) — نظرة عميقة في إنشاء ملاحظات المفهوم +- 🔍 [التكامل البحثي](./research) — دمج الروابط مع البحث على الويب +- 🎨 [الرسوم البيانية](./diagrams) — تصور رسم بياني لرسم خريطة المعرفة الخاصة بك diff --git a/website/i18n/ar/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/ar/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..42129fe6 --- /dev/null +++ b/website/i18n/ar/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "سلاسل العمل" +description: "ربط مهام متعددة باستخدام أزرار نقرة واحدة" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# سلاسل العمل + +<TLDR> +**Notemd سلاسل العمل تربط المهام المتعددة في عملية نقرة واحدة.** يمكن تعريف التسلسلات مثل `add-links > extract-concepts > research > diagram` باستخدام لغة برمجة بسيطة خاصة بالمجال. تظهر سلاسل العمل كأزرار في الشريط الجانبي التي تنفذ السلسلة الكاملة على الملاحظة أو المجلد الحالي. يأتي البرنامج مع سلاسل عمل جاهزة؛ يمكن إنشاء سلاسل عمل مخصصة في الإعدادات. كل خطوة تستخدم إعدادات نموذج خاصة بها لكل مهمة. + +هذا جزء من [Obsidian دليل إدارة المعرفة الذكية](/docs/pillar-ai-knowledge). +</TLDR> + +## نظرة عامة + +تُزيل سلاسل العمل الصعوبات المرتبطة بتنفيذ المهام واحدة تلو الأخرى. بدلاً من النقر بزر الماوس الأيمن أربع مرات لإضافة روابط، واستخراج المفاهيم، والبحث عن مصطلحات غير مألوفة، وإنشاء رسم تخطيطي، يكفي الضغط على زر في الشريط الجانبي وتنفذ السلسلة بأكملها. Notemd يتولى التحكم في التسلسل، وانتقال الأخطاء، وإعداد تقارير التقدم. + +تُعرّف سلاسل العمل باستخدام لغة برمجة خفيفة خاصة بالمجال. توجد في الإعدادات، وتظهر كأزرار قابلة للنقر في شريط Obsidian الجانبي، ويمكن تطبيقها على الملاحظة الحالية أو على مجلد بأكمله. + +## كيف يعمل + +### خط أنابيب تنفيذ سلاسل العمل + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **تحليل** -- يتم تقسيم سلسلة لغة البرمجة هذه على `>` (أو `>`) للحصول على قائمة مرتبة من معرفات المهام. +2. **حل** -- يتم تخصيص كل معرف لأمر داخلي (إضافة روابط، استخراج المفاهيم، البحث، الترجمة، رسم تخطيطي، إلخ.). +3. **تنفيذ** -- تُنفّذ الخطوات بشكل متتابع. كل خطوة تستخدم مزود ونموذج مُعدّ لها. +4. **معالجة الأخطاء** -- إذا فشلت خطوة ما، فإن سلسلة العمل إما تتوقف أو تستمر إلى الخطوة التالية، حسب سياسة المعالجة المحددة لديك. +5. **الانتهاء** -- تُظهر رسالة تنبيه نجاح التنفيذ أو تُسرد الخطوات التي فشلت. + +### تنسيق لغة البرمجة + +تُعرّف سلاسل العمل كتسلسل من معرفات المهام مفصولة بـ `>`: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**معرفات المهام المتاحة:** + +| المعرف | الإجراء | +|------------|--------| +| `process-current-add-links` | إضافة روابط ويكي إلى الملاحظة النشطة | +| `extract-concepts-current` | استخراج المفاهيم من الملاحظة النشطة | +| `research-and-summarize` | البحث في النص المختار أو عنوان الملاحظة | +| `process-current-translate` | ترجمة الملاحظة النشطة | +| `summarize-to-mermaid` | إنشاء رسم تخطيطي من الملاحظة النشطة | +| `generate-from-title` | إنشاء محتوى من عنوان الملاحظة | +| `extract-original-text` | استخراج النص الأصلي (لأغراض OCR / المحتوى الممسوح ضوئيًا) | + +**المتغيرات على مستوى المجلد**: استبدل `current` بـ `folder` في اسم المعرف. + +### سلاسل العمل المحددة مسبقًا مقابل السلاسل المخصصة + +يأتي Notemd مع سلاسل عمل جاهزة للأنماط الشائعة: + +| سلسلة العمل | سلسلة متتابعة | حالة الاستخدام | +|----------|-------|----------| +| **الاستخراج بنقرة واحدة** | إضافة الروابط > استخراج المفاهيم > البحث | معالجة ورقة بحثية في مرحلة واحدة | +| **الأنبوب الكامل** | إضافة الروابط > استخراج المفاهيم > البحث > الرسم التخطيطي | استخراج المعرفة الكاملة مع التصور البصري | +| **ترجمة + ربط** | ترجمة > إضافة الروابط | ترجمة المفاهيم ثم ربطها باللغة المستهدفة | + +يتم إنشاء **سير العمل المخصصة** في الإعدادات: + +1. افتح **الإعدادات** --> **Notemd** --> **سير العمل** +2. انقر على **"إضافة سير عمل"** +3. أدخل سلسلة DSL (مثلاً `process-current-add-links>extract-concepts-current`) +4. أعطها اسمًا للعرض (مثلاً "رابط سريع + استخراج") +5. يظهر الزر الجديد فورًا في الشريط الجانبي + +## التكوين + +| الإعداد | افتراضي | التأثير | +|---------|---------|--------| +| `workflows` | مجموعة محددة مسبقًا | مصفوفة من تعريفات سير العمل (الاسم + DSL) | +| `workflowContinueOnError` | `true` | استمر إلى الخطوة التالية إذا فشلت الخطوة الحالية | +| `workflowShowProgress` | `true` | عرض رسالة تقدم بعد اكتمال كل خطوة | + +### نماذج لكل مهمة في سير العمل + +كل خطوة في سير العمل تستخدم إعدادات نموذج خاص بها لكل مهمة. لا حاجة لتحديد النماذج داخل لغة التوصيف نفسها. ترتيب التنفيذ هو: + +1. مزود/نموذج كل مهمة إذا كان `useMultiModelSettings` موجودًا +2. `activeProvider` العالمي في حالة عدم وجود `activeProvider` + +وهذا يعني أن `add-links` يمكن أن يعمل على DeepSeek بينما يعمل `research` على GPT-4o -- كل ذلك ضمن نفس سير العمل. + +## مثال + +لقد قمت للتو باستيراد PDF من ورقة بحثية في التعلم الآلي إلى خزانتك وتريد استخراج المعرفة بالكامل: + +1. افتح الملاحظة المستوردة +2. انقر على زر شريط الجانب **"Full Pipeline"** +3. يتم تنفيذ Notemd كالتالي: + - **الخطوة 1**: إضافة روابط ويكي -- `[[attention mechanism]]`، `[[transformer]]`، إلخ. + - **الخطوة 2**: استخراج المفاهيم -- إنشاء ملاحظات مفاهيمية في مجلد المفاهيم الخاص بك + - **الخطوة 3**: البحث -- تلخيص المصادر على الويب للمصطلحات الرئيسية + - **الخطوة 4**: رسم مخطط -- إنشاء خريطة ذهنية Mermaid لهيكل الورقة البحثية +4. بعد حوالي 30 ثانية، تحتوي ملاحظتك على روابط وملاحظات مفاهيمية وملخصات بحثية وملف مخطط محفوظ + +كل ذلك من خلال نقرة واحدة. + +## نصائح + +- **ابدأ باستخدام سير العمل المحددة مسبقًا** -- فهي تغطي أكثر الأنماط شيوعًا. قم بالتخصيص فقط عندما تحتاج إلى تسلسل مختلف. +- **قم بتفعيل `workflowContinueOnError`** -- يجب ألا يؤدي فشل خطوة رسم المخطط إلى إيقاف السلسلة بأكملها. +- **استخدم سير العمل للمجلدات** للمعالجة الجماعية -- انقر بزر الماوس الأيمن على مجلد، اختر سير عمل، وسيتم معالجة كل ملاحظة. +- **أطلق أسماءً واضحةً على سير العمل** -- مساحة الشريط الجانبي محدودة. استخدم أسماءً قصيرةً تركز على الإجراء مثل "استخراج سريع" أو "ترجمة + رابط". + +--- + +## الخطوات التالية + +- [Research](./research) -- فهم ما يفعله خطوة البحث قبل إضافتها إلى سير العمل +- [Wiki-Links](./wiki-links) -- الميزة الأساسية للربط المستخدمة في معظم سير العمل +- [Concept Notes](./concept-notes) -- استخراج المفاهيم كخطوة في سير العمل +- [Batch Processing](/docs/advanced/batch-processing) -- التزامن وتقارير التقدم لسير العمل للمجلدات diff --git a/website/i18n/ar/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/ar/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..a1a829bb --- /dev/null +++ b/website/i18n/ar/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "التكوين" +description: "تكوين إعدادات Notemd وتفضيلاتها" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# التكوين + +<TLDR> +**إعدادات Notemd تشمل 6 مجالات رئيسية:** (1) مزودو LLM ومفاتيح API، (2) اختيار النموذج لكل مهمة، (3) مسارات الإخراج والقوالب، (4) لغة UI ولغة الإخراج، (5) خدمات البحث (Tavily/DuckDuckGo)، (6) سلاسل العمليات المخصصة. جميع الإعدادات موجودة في Obsidian Settings → Notemd. تصبح التغييرات سارية فورًا. +</TLDR> + +## نظرة عامة على الإعدادات + +الوصول: **Obsidian Settings (⚙️) → Notemd** + +### الأقسام الرئيسية + +1. **تكوين المزود** — مفاتيح API، URLs الأساسية، النماذج +2. **إعدادات المهمة** — اختيار النموذج لكل مهمة +3. **تكوين الإخراج** — مكان حفظ الملفات المولدة +4. **إعدادات اللغة** — UI ولغات الإخراج +5. **التكامل مع البحث** — إعداد Tavily/DuckDuckGo +6. **سلاسل العمليات** — سلاسل أزرار مخصصة +7. **الميزات المتقدمة** — التشخيص، المعالجة الدفعية، التقسيم إلى كتل + +--- + +## 1. تكوين المزود + +### إضافة مزود + +1. **اختر المزود** من القائمة المنسدلة (أكثر من 30 مزودًا متاحًا) +2. **أدخل مفتاح API** +3. **اختياري**: حدد قاعدة أساسية مخصصة URL (للبروكسيات/البوابات) +4. **انقر على "Get Model List"** للتحقق من الاتصال +5. **اختر النموذج الافتراضي** + +### مزودون شائعون + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Local) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### مزودون متعددون + +يمكنك تكوين مزودين متعددين والتبديل بينهم حسب المهمة: +- **المزود الرئيسي**: يُستخدم كبديل +- **المزودون المخصصون للمهمة**: لتعديل الإعدادات لمهام محددة + +--- + +## 2. النماذج المخصصة للمهمة + +قم بتكوين نماذج مختلفة لمهام مختلفة لتحسين التكلفة/الجودة: + +### أنواع المهام + +| المهمة | النموذج الافتراضي | الغرض | +|------|--------------|---------| +| **الربط** | المزود الرئيسي | تحديد المفاهيم لروابط ويكي | +| **توليد المفاهيم** | المزود الرئيسي | استخراج ووصف المفاهيم | +| **البحث** | المزود الرئيسي | تلخيص نتائج البحث على الويب | +| **الترجمة** | المزود الرئيسي | ترجمة النصوص | +| **توليد الرسوم البيانية** | المزود الرئيسي | إنشاء رسومات Mermaid/Canvas | + +### مثال: إعداد مُحسّن للتكلفة + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### كيفية الإعداد + +1. **الإعدادات → Notemd → إعدادات المهمة** +2. لكل مهمة، اختر: + - ✅ **استخدام المزود الرئيسي** (القيمة الافتراضية) + - 🔄 **استخدام مزود مخصص** → اختر المزود + النموذج + +--- + +## 3. إعدادات الإخراج + +### إخراج ملاحظات المفاهيم + +**أين يتم حفظ ملاحظات المفاهيم الجديدة:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**القالب:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### خيارات هيكل المجلدات + +**الخيار 1: مسطح (جميع المفاهيم في مجلد واحد)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**الخيار 2: هرمي (حسب مجلد المصدر)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +التكوين: **الإعدادات → الإخراج → استخدام مجلدات هرمية** + +### إخراج الرسوم البيانية + +**أين يتم حفظ الرسوم البيانية:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**التنسيق:** +- `.mmd` (Mermaid المصدر) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. إعدادات اللغة + +### UI اللغة + +**لغة واجهة المستخدم** (الأزرار، القوائم، النوافذ): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +اللغات المدعومة: الإنجليزية، 简体中文، 繁體中文، 日本語، 한국어، Español، Français، Deutsch، Русский، العربية، وغيرها. + +### لغة الإخراج + +**لغة المحتوى المولد** (ملاحظات مفاهيمية، ملخصات بحثية): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**حالة الاستخدام:** الصينية UI + نتائج باللغة الإنجليزية للبحث الثنائي اللغة. + +### الهدف من الترجمة + +**اللغة المستهدفة الافتراضية** لمهام الترجمة: + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. تكامل البحث + +### Tavily (موصى به) + +**خدمة بحث مُحسّنة بواسطة الذكاء الاصطناعي:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +الحصول على المفتاح: [tavily.com](https://tavily.com/) + +**الميزات:** +- نتائج عالية الجودة +- ملخصات مُحسّنة بواسطة الذكاء الاصطناعي +- اقتباسات المصادر + +### DuckDuckGo (تجريبي) + +**لا حاجة إلى مفتاح API:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**ملاحظة:** جودة أقل، بدون إمكانية تخصيص. + +--- + +## 6. تكوين سير العمل + +### إنشاء سير عمل مخصصة + +**تربط سلاسل العمليات المهام المتعددة في زر واحد.** + +1. **الإعدادات → سلاسل العمليات → إضافة سلسلة عمليات** +2. **الاسم**: "تدفق تحليل الورق" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **حفظ** + +يظهر زر جديد في الشريط الجانبي الأيسر. + +### صيغة DSL + +**التنسيق:** `action1>action2>action3` + +**الإجراءات المتاحة:** +- `process-current-add-links` — إضافة روابط ويكي إلى الملاحظة الحالية +- `extract-concepts-current` — إنشاء ملاحظات مفاهيمية +- `research-and-summarize` — بحث على الويب + ملخص +- `translate-current` — ترجمة الملاحظة الحالية +- `summarize-as-mermaid` — إنشاء رسم Mermaid +- `process-folder-add-links` — معالجة مجلدات بشكل جماعي + +**أمثلة على سلاسل العمليات:** + +**استخراج المفاهيم السريع:** +``` +process-current-add-links>extract-concepts-current +``` + +**البحث المعمق:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**التحليل متعدد اللغات:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. الإعدادات المتقدمة + +### معالجة دفعات + +**معالجة ملفات متعددة بشكل متوازي:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +كلما كان القيمة أعلى، كانت السرعة أكبر لكن عدد استدعاءات API يزداد. + +### التقسيم الذكي للكتل + +**بالنسبة للملاحظات الطويلة، قم بتقسيمها إلى كتل:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +يمنع أخطاء حدود الرموز. + +### لوحة التشخيص + +**عرض سجلات مفصلة:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +يعرض: +- API طلبات/استجابات +- استخدام الرموز +- أوقات المعالجة +- الأخطاء + +### كشف المفاهيم المكررة + +**تجنب المفاهيم شبه المتطابقة:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +القيمة الأعلى تعني دمجًا أكثر عدوانية. + +--- + +## ملفات تعريف الإعدادات + +### تصدير/استيراد الإعدادات + +**مشاركة الإعدادات بين الأجهزة:** + +1. **الإعدادات → المتقدمة → تصدير الإعدادات** +2. يتم حفظ `notemd-config.json` +3. على جهاز جديد: **استيراد الإعدادات** + +**ما يتم تضمينه:** +- مفاتيح المزود API (اختياري) +- اختيارات النموذج +- مسارات الإخراج +- سلاسل عمل مخصصة + +--- + +## الإعدادات الموصى بها + +### للطلاب + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### للباحثين + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### للمستخدمين المهتمين بالخصوصية + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### للعمل بلغتين + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## حل مشاكل الإعدادات + +### لم يتم حفظ الإعدادات +- تحقق من صلاحيات الملف في `.obsidian/plugins/notemd/` +- جرب: أوقف الإضافة → أعد تشغيلها + +### مفتاح API غير صالح +- لا توجد مسافات إضافية +- تحقق من تاريخ الانتهاء +- تحقق من الرصيد في لوحة تحكم المزود + +### النماذج لا تُحمّل +- انقر على "احصل على قائمة النماذج" لتحديثها +- تحقق من اتصال الشبكة +- جرب مزودًا آخر + +--- + +## الخطوات التالية + +- 📖 [استكشف الميزات](../features/wiki-links) +- 🔌 [دليل إعدادات المزود](../providers/overview) +- ❓ [الأسئلة الشائعة](../faq) diff --git a/website/i18n/ar/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/ar/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..caa21a28 --- /dev/null +++ b/website/i18n/ar/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "التثبيت" +description: "كيفية تثبيت Notemd في Obsidian" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# التثبيت + +<TLDR> +**قم بتثبيت Notemd في أقل من دقيقتين.** هناك طريقتان: (1) الإضافات المجتمعية لـ Obsidian (موصى بها، تثبيت بنقرة واحدة)، أو (2) التثبيت اليدوي عبر إصدارات GitHub. يتطلب Obsidian إصدار 0.15.0 أو أعلى. يعمل على Windows و macOS و Linux و iOS و Android. بدون اعتمادات خارجية. أكثر من 4k تنزيل، مرخص بموجب رخصة MIT. +</TLDR> + +## الطريقة الأولى: الإضافات المجتمعية (موصى بها) + +1. افتح **إعدادات Obsidian** (أيقونة ⚙️ أو `Ctrl/Cmd + ,`) +2. انتقل إلى **الإضافات المجتمعية** +3. انقر على **استعراض** +4. ابحث عن **"Notemd"** +5. انقر على **تثبيت** +6. انقر على **تفعيل** + +**تم!** سترى أيقونة Notemd في الشريط الجانبي الأيسر لديك. + +## الطريقة الثانية: التثبيت اليدوي + +### المتطلبات المسبقة +- Obsidian إصدار 0.15.0 أو أعلى +- Git (اختياري، لعملية النسخ) + +### الخطوات + +1. **تنزيل الملفات** من [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest): + - `main.js` + - `styles.css` + - `manifest.json` + +2. **تحديد مجلد الإضافات الخاص بخزنتك:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +إذا لم يكن مجلد `plugins` موجودًا، قم بإنشائه. + +3. **إنشاء مجلد Notemd:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **نسخ الملفات الثلاثة** إلى مجلد `notemd`. + +5. **إعادة تحميل Obsidian:** + - اضغط على `Ctrl/Cmd + R`، أو + - أعد تشغيل Obsidian + +6. **تفعيل الإضافة:** + - الإعدادات → إضافات المجتمع + - ابحث عن "Notemd" في القائمة + - قم بتشغيلها + +## بديل: التثبيت عبر BRAT + +إذا كنت تستخدم إضافة [BRAT](https://github.com/TfTHacker/obsidian42-brat): + +1. افتح إعدادات BRAT +2. انقر على "إضافة إضافة بيتا" +3. أدخل: `Jacobinwwey/obsidian-NotEMD` +4. انقر على "إضافة الإضافة" +5. قم بتفعيل Notemd في إضافات المجتمع + +## التحقق + +بعد التثبيت، تحقق من أن Notemd يعمل: + +1. افتح أي ملاحظة +2. انقر بزر الماوس الأيمن داخل المحرر +3. يجب أن ترى أوامر Notemd مثل: + - "معالجة الملف (إضافة روابط)" + - "استخراج المفاهيم" + - "البحث والتلخيص" + +## الخطوات التالية + +- **قم بتكوين مزود LLM:** [البدء السريع →](./quick-start) +- **حل المشكلات:** [المشاكل الشائعة →](../advanced/troubleshooting) + +## متطلبات النظام + +| المنصة | الإصدار | الحالة | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | مطلوب | +| **Windows** | 7+ | ✅ مدعوم | +| **macOS** | 10.15+ | ✅ مدعوم | +| **Linux** | أي نظام | ✅ مدعوم | +| **iOS** | 15+ | ✅ مدعوم | +| **Android** | 5+ | ✅ مدعوم | + +## إلغاء التثبيت + +لإزالة Notemd: + +1. الإعدادات → الإضافات المجتمعية +2. ابحث عن "Notemd" +3. انقر على أيقونة ❌ +4. اختياريًا، حذف مجلد الإضافة: `<vault>/.obsidian/plugins/notemd/` + +بياناتك (الملاحظات، ملاحظات المفاهيم، إلخ) تظل كما هي. + +## تحديث + +### التحديث التلقائي (موصى به) +Obsidian يتحقق تلقائيًا من تحديثات الإضافات. عند توفر إصدار جديد: +1. الإعدادات → الإضافات المجتمعية +2. انقر على "البحث عن التحديثات" +3. انقر على "تحديث" بجانب Notemd + +### التحديث اليدوي +حمّل أحدث إصدار واستبدل الملفات الثلاثة في مجلد الإضافة الخاص بك. + +## طلب المساعدة + +- 📖 [دليل البدء السريع](./quick-start) +- ❓ [الأسئلة الشائعة](../faq) +- 💬 [مجتمع Discord](https://discord.gg/qnGgsQ9W) +- 🐛 [الإبلاغ عن المشاكل](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/ar/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/ar/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..5e18e766 --- /dev/null +++ b/website/i18n/ar/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "دليل البدء السريع" +description: "ابدأ باستخدام Notemd في 5 دقائق" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# دليل البدء السريع + +<TLDR> +**ابدأ باستخدام Notemd في 5 دقائق.** ثلاث خطوات: (1) أضف مفتاح LLM API (أو استخدم Ollama المحلي)، (2) افتح ملاحظة ونفّذ "Process file (add links)"، (3) استكشف سير العمل بنقرة واحدة في الشريط الجانبي. يدعم أكثر من 30 مزودًا. لا حاجة إلى كتابة كود. يعمل دون اتصال بالإنترنت باستخدام Ollama. +</TLDR> + +## الخطوة الأولى: قم بتكوين أول مزود LLM لديك (2 دقيقة) + +### الخيار أ: مزود سحابي (OpenAI، Anthropic، إلخ.) + +1. افتح **Settings** → **Notemd** +2. تحت **LLM Provider Configuration**، اختر مزودًا من القائمة المنسدلة +3. أدخل **API Key** الخاص بك +4. (اختياري) انقر على **"Get Model List"** لعرض النماذج المتاحة +5. اختر نموذجًا لكل نوع مهمة + +**الخيارات الشائعة:** +- **OpenAI**: `gpt-4o-mini` (سريع، بسعر معقول) +- **Anthropic**: `claude-sonnet-4-6` (جودة عالية) +- **DeepSeek**: `deepseek-chat` (بسعر منخفض جدًا) + +### الخيار ب: Ollama محلي (لا حاجة إلى مفتاح API) + +1. تثبيت [Ollama](https://ollama.com/) +2. تنزيل نموذج: `ollama pull llama3.1` +3. في إعدادات Notemd، حدد **"Ollama"** كمزود +4. اسم النموذج: `llama3.1` (أو أي نموذج قمت بتنزيله) + +## الخطوة 2: جرب مهمتك الأولى (دقيقة واحدة) + +### إضافة روابط ويكي إلى ملاحظة + +1. افتح أي ملاحظة تحتوي على محتوى ذي معنى +2. انقر بزر الماوس الأيمن داخل المحرر +3. حدد **"معالجة الملف (إضافة روابط)"** +4. انتظر بضع ثوانٍ +5. المفاهيم الرئيسية أصبحت الآن `[[wiki-linked]]`! + +**مثال:** + +**قبل:** +``` +Machine learning models use neural networks to process data. +``` + +**بعد:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## الخطوة 3: استكشف الميزات (دقيقتان) + +### استخراج ملاحظات المفاهيم + +1. اضغط بزر الماوس الأيمن → **"استخراج المفاهيم من الملف الحالي"** +2. Notemd يُنشئ ملفات منفصلة لكل مفهوم +3. تحقق من مجلد المفاهيم المُعدّل لديك (الافتراضي: `concepts/`) +4. كل ملاحظة مفهوم تحتوي على رابط عكسي إلى الملاحظة الأصلية + +### البحث والتلخيص + +1. تسليط الضوء على موضوع في ملاحظاتك +2. النقر بزر الماوس الأيمن → **"البحث والتلخيص"** +3. Notemd يجري بحثًا على الويب (Tavily أو DuckDuckGo) +4. يضيف التطبيق التلخيص مع المصادر إلى ملاحظاتك + +### سير العمل بنقرة واحدة + +1. تحقق من **الشريط الجانبي الأيسر** لزرّات سير العمل +2. انقر على **"استخراج بنقرة واحدة"** في أي ملاحظة +3. يتم تنفيذه: إضافة روابط → استخراج المفاهيم → البحث → إنشاء مخطط +4. كل ذلك بنقرة واحدة! + +## المهام الشائعة الأولى + +### المهمة 1: معالجة ورقة/مقالة + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### المهمة 2: ترجمة الملاحظات + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### المهمة 3: إنشاء خريطة معرفية + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## نصائح للتخصيص + +### اختيار النموذج حسب المهمة + +يمكنك استخدام نماذج مختلفة لمهام مختلفة: + +| المهمة | النموذج الموصى به | السبب | +|------|------------------|-----| +| إضافة روابط | `gpt-4o-mini`، `deepseek-chat` | سريع، عدد كبير من الاتصالات | +| استخراج المفاهيم | `claude-sonnet-4-6`، `gpt-4o` | استخراج عالي الجودة | +| البحث | `perplexity`، `gpt-4o` | مبني على الويب | +| الترجمة | `gemini-flash`، `gpt-4o` | متعدد اللغات | +| رسومات تخطيطية | `claude-opus`، نموذج محلي | الاستدلال المعقد | + +التكوين في: **الإعدادات → Notemd → النماذج الخاصة بالمهام** + +### سلاسل عمل مخصصة + +إنشاء زر خاص بك: + +1. الإعدادات → Notemd → سلاسل العمل +2. انقر فوق "إضافة سلسلة عمل" +3. أدخل DSL: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. أسمِها: "تدفق بحثي" +5. يظهر زر جديد في الشريط الجانبي + +## حل المشكلات + +### "مفتاح API غير صالح" +- تحقق مما إذا كان المفتاح صحيحًا (بدون مسافات إضافية) +- تحقق من أن الحساب يحتوي على ائتمانات +- اختبر باستخدام زر "اختبار الاتصال" في الإعدادات + +### "لم يتم العثور على النموذج" +- انقر على "Get Model List" لعرض النماذج المتاحة +- يتطلب بعض المزودين أسماء نماذج محددة (مثل `gpt-4o` وليس `gpt-4`). + +### الروابط لا تظهر +- تأكد من أن الملاحظة تحتوي على محتوى كافٍ (>50 كلمة) +- جرب نموذجًا أقوى +- تحقق مما إذا كانت عملية الاتصال بـ LLM قد نجحت (انظر لوحة التشخيص) + +### أداء بطيء +- استخدم النماذج الأسرع (`gpt-4o-mini` بدلاً من `gpt-4o`) +- قلل حجم الكتل في الإعدادات +- تفعيل المعالجة المتوازية للمهام الجماعية + +## الخطوات التالية + +- 📖 [استكشف جميع الميزات](../features/wiki-links) +- ⚙️ [الإعدادات المتقدمة](./configuration) +- 🔧 [إعداد مزود LLM](../providers/overview) +- ❓ [الأسئلة الشائعة](../faq) + +## دليل فيديو + +شاهد فيديو البدء السريع مدته 3 دقائق (بالصينية): +[【مفتوح المصدر بالكامل ومجاني! NotEMD دليل سريع مدته 3 دقائق】](https://b23.tv/lqR0RlA) + +## طلب المساعدة + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **المشاكل**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **الوثائق**: [الوثائق الكاملة](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/ar/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/ar/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..191c2296 --- /dev/null +++ b/website/i18n/ar/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "مقدمة عن Notemd" +description: "مولد قواعد المعرفة المدعوم بالذكاء الاصطناعي لـ Obsidian مع تحويلات ملاحظات دائمة وسير عمل ورسوم تخطيطية تعتمد على المواصفات أولاً" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# مقدمة عن Notemd + +<TLDR> +**Notemd** (ملاحظة + EMD — وثائق Markdown المحسّنة) هو إضافة مفتوحة المصدر لـ Obsidian تقوم بتحويل القراءة المدعومة بـ LLM إلى معرفة دائمة. على عكس الذكاء الاصطناعي القائم على الدردشة حيث تختفي الرؤى بعد انتهاء الجلسة، يقوم Notemd بكتابة النتائج **مباشرةً في خزانتك** كروابط ويكي وملاحظات مفاهيمية وملخصات بحثية وترجمات وسير عمل ورسوم تخطيطية. تم بناؤه للباحثين والطلاب والعاملين في مجال المعرفة الذين يرغبون في تراكم القراءة والبحث والشرح البصري في رسم بياني للمعرفة منظم ومتطور. +</TLDR> + +## ما هو Notemd؟ + +يدمج Notemd **أكثر من 30 نموذج لغة كبير** (OpenAI، Anthropic، Google، DeepSeek، Qwen، Ollama وغيرها) في سير عمل Obsidian الخاص بك لأتمتة استخراج المعرفة وتنظيمها وترجمتها والبحث فيها وإنشاء الرسوم التخطيطية. + +### الفرق الرئيسي: المعرفة المؤقتة مقابل المعرفة الدائمة + +| الجانب | الذكاء الاصطناعي القائم على الدردشة (ChatGPT، إلخ.) | Notemd | +|--------|-------------------------------|--------| +| **إلى أين تذهب النتائج** | تاريخ الدردشة (يختفي) | خزانة Obsidian الخاصة بك (تظل دائمة) | +| **التنسيق** | إجابات نصية عادية | ملفات منظمة: `[[wiki-links]]`، ملاحظات مفاهيمية، رسوم تخطيطية | +| **القيمة على المدى الطويل** | يجب طرح السؤال مرة أخرى في كل مرة | يتراكم في رسم بياني للمعرفة | +| **الوصول دون اتصال بالإنترنت** | يتطلب اتصالاً بالإنترنت | يعمل بشكل كامل دون اتصال مع Ollama | + +## القدرات الأساسية + +### 1. **الربط التلقائي بالويكي** +- LLM يحدد المفاهيم الرئيسية في ملاحظاتك +- يدخل `[[wiki-links]]` في كل مرة تظهر فيها +- ينشئ اختيارياً ملاحظات للمفاهيم المرتبطة +- كبح الترادفات لتجنب الازدواجية + +### 2. **إنشاء ملاحظات المفاهيم** +- يستخلص المفاهيم الأساسية من الأوراق والمقالات والملاحظات +- يولد ملفات مفاهيم مخصصة مع روابط عكسية +- مسارات وقوالب إخراج قابلة للتخصيص + +### 3. **دمج البحث على الويب** +- استعلم Tavily أو DuckDuckGo من داخل Obsidian +- LLM يلخص النتائج مع اقتباسات المصادر +- يضيف نتائج البحث إلى الملاحظة الحالية + +### 4. **الترجمة متعددة اللغات** +- ترجمة الاختيارات أو الملاحظات بأكملها +- يدعم أكثر من 21 لغة UI +- إعداد لغة الإخراج المستقلة +- دعم الترجمة الجماعية + +### 5. **إنشاء الرسوم البيانية** +- **Mermaid**: مخططات التدفق، التسلسل، الفئات، الحالات، ER، Gantt +- **JSON Canvas**: تخطيطات أصلية Obsidian +- **Vega-Lite**: رسوم بيانات البيانات، سلاسل الزمن، رسوم النقاط المتناثرة +- **HTML / HTML قابل للتعديل / SVG**: عناصر رسومية مستقلة مع تعليقات دلالية +- **Draw.io / حدود عنصر Drawnix**: مسارات التصدير المخصصة للمحافظين من نفس نموذج الرسم الدلالي +- **خريطة طريق الرسوم الكهربائية**: يتم تصميم الدعم circuitikz/TikZJax حول المراجع الذهبية، النصوص المقيدة، تغذية راجعة التصدير، والتحقق من التوبولوجيا/التخطيط بدلاً من استخدام TikZ غير المقيد مباشرةً +- **تشخيص المعاينة**: يمكن للعناصر المُصدرة أن تكشف عن تشخيصات التجميع/التصدير، ويمكن فحص المصادر غير المدمجة دون الحاجة إلى بيئة تشغيل LaTeX جانبية للإضافات +- تصحيح تلقائي للصيغة لأخطاء Mermaid + +### 6. **سير عمل بنقرة واحدة** +- ربط عدة إجراءات في أزرار جانبية +- تعريف سير العمل المبني على DSL +- مثال: `add-links > extract-concepts > research > diagram` + +## من يجب أن يستخدم Notemd؟ + +✅ **الباحثون** الذين يقرأون الأوراق العلمية ويُعدّون مراجعات أدبية +✅ **الطلاب** الذين ينظمون ملاحظات الدراسة ويُنشئون خرائط المفاهيم +✅ **العاملون في مجال المعرفة** الذين يرغبون في الاحتفاظ برؤى القراءة +✅ **المحترفون ثنائوو اللغة** الذين يحتاجون إلى الترجمة + روابط ويكي +✅ **المستخدمون المهتمون بالخصوصية** الذين يرغبون في دعم محلي LLM (Ollama) +✅ **المستخدمون المتقدمون** الذين يقومون بتخصيص النصوص التلقائية وسير العمل + +## لماذا Notemd + Obsidian؟ + +**Obsidian** هو قاعدة معرفية تعتمد على ماركدوف وتُركز على الاستخدام المحلي. **Notemd** يضيف قدرات ذكاء اصطناعي قوية: +- تبقى بياناتك في خزنتك (وليس في خدمة سحابية) +- يعمل دون اتصال بالإنترنت باستخدام النماذج المحلية +- مجاني ومفتوح المصدر (ترخيص MIT) +- يتكامل مع إضافات Obsidian الحالية +- يمكنه التوسع لعشرات الآلاف من الملاحظات + +## البدء + +1. **التثبيت**: الإعدادات → الإضافات المجتمعية → التصفح → "Notemd" +2. **التكوين**: أضف مفتاح مزود LLM API الخاص بك (أو استخدم Ollama المحلي) +3. **جربه**: افتح ملاحظة → انقر بزر الماوس الأيمن → "معالجة الملف (إضافة روابط)" +4. **استكشف**: تحقق من الشريط الجانبي للحصول على سير عمل بنقرة واحدة + +👉 [دليل التثبيت](./getting-started/installation) | [دليل البدء السريع](./getting-started/quick-start) + +## اتجاه قدرات الرسوم البيانية + +تتجه أدوات الرسوم البيانية لدى Notemd بعيدًا عن "طلب كتابة سلسلة بنية واحدة من النموذج" نحو خط أنابيب متعدد الطبقات: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +تدعم التنفيذ الحالي بالفعل Mermaid، JSON Canvas، Vega-Lite، HTML كبديل، HTML/SVG قابلة للتعديل، ملفات Draw.io XML، مجموعة مختصرة من Drawnix JSON، تشخيص المعاينة/البديل القائم على المصدر فقط، بالإضافة إلى نموذج تجريبي خارج الشبكة `CircuitSpec -> circuitikz` للقوالب الذهبية للمصادر الشائعة ومفاتيح الـ CMOS. الرسوم البيانية للدوائر أكثر تعقيدًا: يمكن لـ circuitikz التعبير عن التوبولوجيا الكهربائية بدقة، لكن الإخراج غير المقيد من LLM غالبًا ما ينتج توجيهات غير قابلة للقراءة أو نصوص LaTeX غير قابلة للعرض. الاتجاه التالي هو الحفاظ على circuitikz مقيدًا باستخدام قوالب المرجع الذهبي، وقواعد تخطيط الشبكة، وتشخيص العرض، وحلقات التغذية الراجعة عبر لقطات الشاشة. + +اقرأ التفاصيل في [الرسوم البيانية](./features/diagrams). + +## البنية + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd مقابل باقي إضافات Obsidian الذكية + +معظم إضافات Obsidian الذكية تعتمد على المحادثة أولاً (أنت تسأل، الذكاء الاصطناعي يجيب، وتظل الرؤى داخل الدردشة). أما Notemd فهو **الكتابة أولاً**: يقوم الذكاء الاصطناعي بمعالجة ملاحظاتك وكتابة النتائج المنظمة مباشرة في خزانتك. + +| القدرات | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| إدخال روابط ويكي تلقائيًا | نعم | لا | لا | لا | +| توليد مذكرة المفهوم | نعم (مع روابط عكسية + إزالة التكرار) | لا | لا | لا | +| توليد الرسوم البيانية | نعم (Mermaid, Canvas, Vega-Lite, HTML, ملفات قابلة للتعديل) | لا | لا | لا | +| دمج البحث على الويب | نعم (Tavily + DuckDuckGo) | لا | لا | لا | +| معالجة المجلدات بالدفعات | نعم | محدود | لا | محدود | +| توجيه النموذج حسب المهمة | نعم (7 مهام، نماذج مستقلة) | لا | لا | لا | +| سلاسل سير العمل بنقرة واحدة | نعم (DSL) | لا | لا | لا | +| الترجمة (بالدفعات) | نعم | لا | لا | لا | +| الدردشة مع الخزنة | لا | نعم | لا | لا | +| بحث عن التشابه الدلالي | لا | لا | نعم | لا | +| التوليد القائم على القوالب | لا | لا | لا | نعم | +| مزودو LLM | 36 (سحابة + بوابة + محلي) | 3-5 | 2-3 | 3-5 | +| خارج الشبكة بالكامل | نعم (Ollama) | جزئي | جزئي | جزئي | + +**متى تختار Notemd**: إذا كنت تريد من الذكاء الاصطناعي بناء رسم بياني للمعرفة دائم — وليس فقط التحدث عن ملاحظاتك. + +**متى تختار Copilot**: إذا كنت تريد مساعد ذكاء اصطناعي تفاعلي داخل Obsidian. + +**متى تختار Smart Connections**: إذا كنت تريد اكتشاف العلاقات الموجودة بين الملاحظات عبر البحث الدلالي. + +## الفلسفة + +**Notemd يعتقد أن الذكاء الاصطناعي يجب أن يعزز العمل المعرفي للإنسان، وليس أن يحل محله.** الإضافة: +- تحافظ على سيطرتك (مراجعة قبل تطبيق التغييرات) +- تحافظ على السياق (جميع النتائج ترتبط بالمصدر) +- تحترم الخصوصية (دعم LLM محلي، بدون تتبع) +- يظل قابلاً للتوسعة (مفتوح APIs، سير عمل مخصص) + +## مصدر مفتوح + +- **الرخصة**: MIT +- **المصدر**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **المجتمع**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **المساهمة**: مرحباً بالطلبات، راجع [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +**الخطوة التالية**: [Installation →](./getting-started/installation) diff --git a/website/i18n/ar/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/ar/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..d10045ec --- /dev/null +++ b/website/i18n/ar/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "دليل إدارة المعرفة بالذكاء الاصطناعي Obsidian" +description: "دليل شامل لبناء قاعدة معرفية مترابطة باستخدام الذكاء الاصطناعي — من روابط الويكي واستخراج المفاهيم إلى البحث والترجمة وإنشاء الرسوم البيانية" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# دليل إدارة المعرفة بالذكاء الاصطناعي Obsidian + +<TLDR> +**Notemd يحول القراءة المدعومة بـ LLM إلى معرفة دائمة: روابط الويكي تربط المفاهيم، وملاحظات المفاهيم تُنشئ رسمًا بيانيًا قابلًا للاسترجاع، والبحث يجلب محتوى الويب إلى خزانتك، والترجمة تُزيل حواجز اللغة، والرسوم البيانية تجعل الهيكل واضحًا، وسلاسل العمل تربط كل ذلك بنقرة واحدة.** يغطي هذا الدليل الخطوات الكاملة — من الملاحظات الخام إلى قاعدة معرفية مترابطة وبصرية ومتعددة اللغات. +</TLDR> + +## لماذا إدارة المعرفة بالذكاء الاصطناعي؟ + +تُنتج أساليب التدوين التقليدية ملفات مسطحة. حتى مع روابط الويكي اليدوية، تظل معظم الملاحظات غير مترابطة. يستخدم Notemd خوارزميات LLM لأتمتة طبقة الربط: + +- **تقوم LLMs بقراءة محتواك** وتحديد ما هو مهم — المصطلحات، الأساليب، الأشخاص، النظريات +- **تُدخل الروابط تلقائيًا** في كل ظهور للمفهوم، ولا تُخفى في قسم "انظر أيضًا" +- **تُنشأ ملاحظات المفاهيم** كملفات قابلة للاسترجاع مستقلة +- **يُثري البحث الملاحظات** بسياقات من مصادر الويب +- **تجعل الرسوم البيانية الهيكل واضحًا** — خرائط العقل، مخططات التدفق، رسوم بيانية البيانات من نفس المحتوى + +النتيجة: رسم بياني للمعرفة ينمو مع كل ملاحظة تقوم بمعالجتها، وليس فقط عندما تتذكر إضافة روابط. + +## الخطوات الكاملة + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +كل خطوة مستقلة. يمكن استخدام واحدة أو جميعها. التسلسل الأكثر تأثيرًا: **إضافة الروابط → ملاحظات المفاهيم → الرسوم البيانية**. + +--- + +## 1. روابط الويكي: جعل الروابط واضحة + +تُعد روابط الويكي العمود الفقري لرسم بياني المعرفة. يستخدم Notemd خوارزمية LLM لـ: + +1. اقرأ محتوى ملاحظتك (قم بتقسيمها إلى أجزاء للوثائق الطويلة) +2. حدد المفاهيم الأساسية — مع إعطاء الأولوية للمصطلحات التقنية المحددة على الأسماء العامة +3. أدخل `[[wiki-links]]` في كل ظهور لها +4. قم بكبح المرادفات حتى لا يؤدي "ML" و"Machine Learning" إلى إنشاء عقد منفصلة + +### متى يجب الاستخدام + +- **كل ملاحظة تزيد عن 100 كلمة** — الملاحظات الأقصر تنتج عددًا قليلًا من المفاهيم +- **أوراق البحث، المستندات التقنية، ملاحظات الاجتماعات** — غنية بالمصطلحات الخاصة بالمجال +- **بعد أن يصبح المحتوى ثابتًا** — لا تقم بمعالجة المسودات مرارًا وتكرارًا + +### الإعدادات الرئيسية + +| الإعداد | الموصى به | السبب | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek أو GPT-4o-mini | دقة جيدة بتكلفة منخفضة | +| كبح المرادفات | مفعّل | يمنع إنشاء عقد مكررة | +| نافذة السياق | فقرة | توازن الدقة والتكلفة | + +→ [Wiki-Links deep dive](/docs/features/wiki-links) + +--- + +## 2. ملاحظات المفاهيم: عقد المعرفة القابلة للاسترجاع + +تربط روابط ويكي الأفكار داخل النص، لكن ملاحظات المفاهيم تجعل كل فكرة قابلة للاسترجاع بشكل مستقل. يحصل كل مفهوم على ملف `.md` خاص به: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### عملية الاستخراج + +الطلب LLM مُنظّم بشكل كبير: +- تحويل الاسم إلى صيغة المفرد +- تفضيل المفاهيم المكونة من كلمات متعددة على الكلمات الفردية ("Dielectric Relaxation" بدلاً من "Relaxation") +- تجاهل أقسام المراجع/الببليوغرافيا +- إخراج النتائج كأسطر `CONCEPT:` لضمان تحليل محدد + +يتم إزالة التكرار في المفاهيم عبر الكتل باستخدام `Set<string>`. أخطاء LLM في كتلة واحدة لا توقف العملية. + +### الروابط الخلفية + +عند تفعيلها، تسجل كل ملاحظة مفهومية المصادر التي ذكرتها. يعرض لوحة الروابط الخلفية الأصلية لـ Obsidian أيضًا الاتصالات العكسية. + +### التكرار + +يكتشف محرك إزالة التكرار ذو الخطوات الأربع في Notemd ما يلي: +1. **المطابقات الدقيقة** — مقارنة أسماء الملفات بشكل غير حساس للحروف الكبيرة والصغيرة +2. **أشكال الجمع** — "Models.md" مقابل "Model.md" +3. **تنظيم الرموز** — "A-B.md" مقابل "A B.md" +4. **احتواء كلمة واحدة** — يتم تمييز "ML.md" عند وجود "Machine Learning.md" + +### إعدادات المفتاح + +| الإعداد | موصى به | السبب | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` أو `🧠 concepts/` | يحافظ على تنظيم الخزنة | +| `extractConceptsAddBacklink` | قيد التشغيل | يتيح البحث العكسي | +| `extractConceptsMinimalTemplate` | مغلق | قالب كامل مع Linked From | +| نموذج لكل مهمة | DeepSeek | لا يحتاج استخراج المفاهيم إلى نماذج باهظة التكلفة | +| كبح المرادفات | قيد التشغيل | نفس الإعداد يؤثر على الربط والاستخراج | + +→ [ملاحظات المفاهيم: تحليل معمق](/docs/features/concept-notes) + +--- + +## 3. البحث: دمج الويب في العملية + +Notemd يدمج البحث على الويب في سير عمل تدوين الملاحظات لديك: + +1. **إنشاء الاستعلام** — عنوان الملاحظة أو المحتوى المختار يصبح استعلام بحث +2. **البحث على الويب** — Tavily (موصى به، مطلوب مفتاح API) أو DuckDuckGo (مجاني، بدون مفتاح) +3. ****LLM التلخيص** — نتائج البحث تُختصر إلى ملخص ذي صلة +4. **إضافة إلى الملاحظة** — يتم إضافة الملخص في موقع المؤشر أو كقسم جديد + +### متى يجب استخدامه + +- قبل معالجة موضوع جديد — حصل أولاً على السياق من الويب +- عندما تحتاج ملاحظة المفهوم إلى توسيع — قم بالبحث ثم أضف الروابط +- لمراجعات الأدبيات — قم بالبحث الجماعي عن مجلد من الملاحظات + +### الإعدادات الرئيسية + +| الإعداد | موصى به | السبب | +|---------|-----------|-----| +| `researchProvider` | GPT-4o أو Claude | يتطلب البحث تلخيصاً ذا جودة أعلى | +| خدمة البحث | Tavily | تحسين الارتباطية مع إمكانية ضبط العمق | +| `maxResearchContentTokens` | 4000 | التوازن بين العمق والتكلفة | + +→ [دراسة معمقة حول البحث](/docs/features/research) + +--- + +## 4. الترجمة: كسر حواجز اللغات + +Notemd يقوم بترجمة الملاحظات باستخدام LLM المُعدّل لديك — وليس تطبيق ترجمة مخصص API. وهذا يعني: + +- **ترجمات مدركة للسياق** — LLM يفهم الوثيقة بأكملها وليس جملة بجملة +- **التعامل مع المصطلحات التقنية** — "gradient descent" تظل كـ "梯度下降" وليس "坡度向下" +- **دعم المجموعات** — ترجمة مجلد كامل من الملاحظات في عملية واحدة +- **نموذج لكل مهمة** — استخدام Gemini Flash للترجمة (سريع، رخيص، متعدد اللغات) + +### دعم اللغات + +Notemd نفسه يدعم 21 لغة UI. يمكن ضبط لغة الهدف لكل مهمة. الأزواج الشائعة: EN↔ZH، EN↔JA، EN↔KO، EN↔DE، EN↔FR، EN↔ES. + +→ [دراسة معمقة حول الترجمة](/docs/features/translation) + +--- + +## 5. الرسوم البيانية: جعل الهيكل واضحًا + +خط أنابيب الرسوم البيانية لدى Notemd يعتمد على المواصفات أولاً: LLM ينتج `DiagramSpec` JSON مُنظمًا، ثم تقوم المحولات بترجمته إلى التنسيق المطلوب. وهذا ينتج نتائج أكثر موثوقية من طلب LLM لصيغة Mermaid الخام. + +### اكتشاف النية + +Notemd يستنتج أفضل نوع رسم بياني من المحتوى: + +- **الجداول التي تحتوي على أرقام** → رسم بيانات (Vega-Lite) +- **مفردات العميل/الخادم** → رسم تسلسلي (Mermaid) +- **الكيان/المفتاح الأساسي** → رسم ER (Mermaid) +- **خطوة/تدفق العمليات** → مخطط تدفق (Mermaid) +- **كلمات مفتاحية خريطة المفاهيم** → JSON Canvas (Obsidian أصلي) +- **القيمة الافتراضية** → خريطة عقلية (Mermaid) + +### سلسلة التصدير + +الهدف الأساسي → بديل → بديل → HTML. إذا فشل تركيب Mermaid، يتم إعادة المحاولة مرة واحدة مع سياق الخطأ إلى LLM، ثم الانتقال إلى رسم بياني أدنى. + +### إعدادات رئيسية + +| الإعداد | موصى به | السبب | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | مفعّل | جودة أفضل عبر التركيز على المواصفات أولاً | +| `experimentalDiagramCompatibilityMode` | `best-fit` | الهدف الأصلي حسب النية | +| `summarizeToMermaidProvider` | GPT-4o أو Claude | تحتاج مواصفات الرسوم البيانية إلى التفكير المكاني | +| `autoMermaidFixAfterGenerate` | مفعّل | يكتشف أخطاء تركيب LLM تلقائيًا | +| تعزيز المعرفة المحلية | في وضع التشغيل للمجالات المحددة | يحسّن الدقة باستخدام سياق الخزنة | + +→ [تحليل معمق للرسومات](/docs/features/diagrams) + +--- + +## 6. سلاسل العمل: الأتمتة بنقرة واحدة + +تربط سلاسل العمل مهامًا متعددة في زر جانبي واحد. صيغة DSL هي: + +``` +task1 | task2 | task3 +``` + +مثال: `addLinks | extractConcepts | generateDiagram` — معالجة ملاحظة من نص خام إلى عقدة معرفية مرئية متصلة بالكامل في نقرة واحدة. + +### سلاسل العمل الموصى بها + +| سلسلة العمل | سلسلة متتابعة | حالة الاستخدام | +|----------|-------|----------| +| العملية الكاملة | `addLinks \| extractConcepts \| generateDiagram` | ملاحظات جديدة | +| البحث أولاً | `research \| addLinks` | المواضيع غير المألوفة | +| متعدد اللغات | `translate \| addLinks` | ملاحظات متعددة اللغات | +| مخطط فقط | `generateDiagram` | تصور سريع | + +→ [التعمق في سلاسل العمل](/docs/features/workflows) + +--- + +## 7. LLM مزودون: 36 خيارًا من السحابة إلى المحلية + +Notemd يدعم 36 مزودًا عبر 4 أنواع نقل. المجموعات الرئيسية: + +- **السحابة الدولية**: OpenAI, Anthropic, Google, Mistral, xAI +- **السحابة الصينية**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **البوابات**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **المحلية**: Ollama, LMStudio, OVMS — لا يوجد مفتاح API، ولا تغادر البيانات جهازك + +### استراتيجية نموذج كل مهمة + +أكثر إعدادات فعالية من حيث التكلفة تستخدم نماذج رخيصة للمهام البسيطة ونماذج قوية للمهام المعقدة: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [نظرة عامة على مزودي LLM](/docs/providers/overview) + +--- + +## قائمة التحقق قبل البدء + +1. **تثبيت Notemd** — [الإضافات المجتمعية](/docs/getting-started/installation) (موصى به) أو يدويًا +2. **تكوين مزود** — DeepSeek (الأسهل)، OpenAI، أو Ollama (مجاني) +3. **معالجة أول ملاحظة لديك** — انقر بزر الماوس الأيمن → "معالجة الملف (إضافة روابط)" +4. **تعيين مجلد المفاهيم** — الإعدادات → Notemd → الإخراج → مجلد المفاهيم +5. **استخراج المفاهيم** — تشغيل أمر "Extract concepts" على نفس الملاحظة +6. **إنشاء رسم تخطيطي** — تشغيل أمر "Generate diagram" لعرض الروابط بصورة مرئية +7. **إنشاء سير عمل** — ربط الخطوات السابقة في زر واحد بالنقرة + +## الإعدادات الموصى بها + +### طالب (ميزانية) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### باحث (جودة) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### الخصوصية أولاً (محلي فقط) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### ثنائي اللغة (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## أنماط شائعة + +### النمط: معالجة ورقة بحثية + +1. استيراد محتوى PDF (أو لصقه) +2. **البحث** — الحصول على سياق ويب حول الموضوع +3. **إضافة روابط** — تحديد المفاهيم الرئيسية وربطها +4. **استخراج المفاهيم** — إنشاء ملاحظات منفصلة +5. **إنشاء رسم تخطيطي** — عرض هيكل الورقة البحثية بصورة مرئية + +### النمط: تحسين الملاحظة اليومية + +1. كتابة ملاحظة يومية +2. **إضافة روابط** — يربط الأفكار اليومية بالمفاهيم الموجودة +3. تُحدّث ملاحظات المفاهيم تلقائيًا مع الروابط الخلفية + +### نمط: مراجعة أدبية + +1. إنشاء مجلد يحتوي على الأوراق والملاحظات +2. **إضافة الروابط دفعة واحدة** — معالجة المجلد بأكمله +3. **إزالة التكرار في المفاهيم** — تنقية الملاحظات شبه المتشابهة +4. **إنشاء رسم تخطيطي** — خريطة ذهنية للأدبيات بأكملها + +--- + +*Notemd مفتوح المصدر (MIT) ويعمل مع Obsidian 0.15.0+ على جميع المنصات. [قم بالتثبيت الآن](/docs/getting-started/installation) أو [شاهده على GitHub](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/ar/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/ar/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..311e3962 --- /dev/null +++ b/website/i18n/ar/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "تكوين Anthropic Claude" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# مزود Anthropic + +<TLDR> +**Anthropic يستخدم وسيلة النقل المحلية Messages API، وليس وسيلة النقل المتوافقة مع OpenAI.** الإعداد المسبق الحالي يفضّل `claude-3-5-sonnet-20240620` و `https://api.anthropic.com` و `temperature: 0.5`. اعتبره واجهة بروتوكول منفصلة أثناء التصحيح. + +هذا جزء من [Obsidian دليل إدارة المعرفة الذكية](/docs/pillar-ai-knowledge). +</TLDR> + +## الإعداد + +أنشئ مفتاح Anthropic API، أضف ملف تعريف مزود `Anthropic`، واترك النقطة الأساسية URL على النهاية المحلية ما لم تكن تُوجّه عبر ملف تعريف بوابة مخصص. اختر معرف نموذج Claude الذي تريد استخدامه في حقل النموذج؛ الإعداد الافتراضي يحافظ على استقرار خط أساس المنتج الحالي. + +Anthropic هو خيار جيد للتلخيص عالي الجودة وتوليف الأبحاث واستخراج المفاهيم. إذا دمجته مع مزودين أقل تكلفة، استخدمه فقط في المهام التي تستفيد من جودة نتائجه. + +## النهاية والمصادقة + +| الحقل | الإعداد المسبق الحالي | +|-------|----------------| +| وسيلة النقل | `anthropic` | +| مفتاح API | مطلوب | +| URL الأساسية | `https://api.anthropic.com` | +| النموذج الافتراضي | `claude-3-5-sonnet-20240620` | +| درجة الحرارة | `0.5` | +| اختبار الاتصال | فقط للدردشة | + +يُرسل الوقت التشغيلي طلبات إلى `/v1/messages` باستخدام `x-api-key` و `anthropic-version: 2023-06-01`. لا تقم بتكوين نهاية `/v1/chat/completions` على غرار OpenAI تحت هذا الإعداد المسبق؛ استخدم بدلاً من ذلك إعداد بوابة متوافق مع OpenAI. + +## اكتشاف النماذج + +Anthropic يستخدم وضع الاكتشاف `anthropic-models` في سجل المزودين. إذا لم يتمكن مفتاحك أو حسابك من عرض النماذج، فاحتفظ بمعرف نموذج معروف في الملف الشخصي وقم بالتحقق عبر اختبار الاتصال. + +لا يمكن استبدال وسيلة النقل هذه بالمزودين المتوافقين مع OpenAI. النموذج من Claude الذي يتم توجيهه عبر OpenRouter أو LiteLLM أو بوابة أخرى يجب أن يكون ضمن ملف الملف الشخصي الخاص بتلك البوابة، وليس ضمن ملف الملف الشخصي الأصلي Anthropic. + +## حل المشكلات + +- `401` أو `403`: تحقق من نطاق المفتاح، وصلاحية الوصول إلى مكان العمل، والفوترة، وما إذا كان المفتاح ينتمي إلى مكان العمل Anthropic المتوقع. +- `404`: القاعدة URL خاطئة أو أن معرف النموذج المختار غير متاح للحساب. +- تفشل معرفات نماذج Claude من نوع البوابة: قم بنقل الملف الشخصي إلى المزود المطابق من نوع البوابة لأن Anthropic الأصلي يتوقع أسماء نماذج أصلية. +- تفشل الطلبات الطويلة في وقت متأخر: قلل من حجم مخرجات النموذج لكل مهمة أو استخدم نموذجًا له حد أعلى معروف أكبر لرموز المخرجات. + +## متى يجب استخدامه + +استخدم Anthropic عندما تكون الجودة في التوليد، وملاحظات البحث، أو الكتابة المنظمة أهم من التكلفة الأساسية. لا تستخدمه كبديل عام متوافق مع OpenAI؛ فالوسيلة المنفصلة هي الهدف، وخلط البروتوكولات يجعل التشخيص أصعب. + +--- + +## الخطوات التالية + +- [LLM Providers](/docs/providers/overview) -- إعدادات كاملة، نماذج لكل مهمة، ومنطق إعادة المحاولة +- [Troubleshooting](/docs/advanced/troubleshooting) -- إصلاح أخطاء 401/403 وأخطاء الاتصال diff --git a/website/i18n/ar/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/ar/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..a0bc92a6 --- /dev/null +++ b/website/i18n/ar/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "مزودو الصين" +description: "قم بتكوين Qwen، DeepSeek، GLM، إلخ." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# مزودو الصين + +<TLDR> +**Notemd يدعم المزودين في المنطقة الصينية والمصدر الصيني من خلال نقاط نهاية متوافقة في الغالب مع OpenAI.** تشمل المجموعة الحالية DeepSeek، Qwen، Qwen Code، Doubao، Moonshot، Xiaomi MiMo، GLM، MiniMax، Baidu Qianfan، SiliconFlow، Huawei Cloud MaaS، و Z AI. الفائدة تكمن في الوصول الإقليمي والتحكم في التكلفة؛ أما المخاطر فهي تسمية النماذج الخاصة بكل مزود وإجراءات التحكم في الحسابات. + +هذا جزء من [Obsidian دليل إدارة المعرفة الذكية](/docs/pillar-ai-knowledge). +</TLDR> + +## الإعداد + +أنشئ حساب المزود، ثم أنتج مفتاح API، وبعد ذلك اختر إعدادات المزود Notemd المناسبة بدلاً من استخدام ملف تعريف OpenAI العام. تحتوي هذه الإعدادات على القيمة الافتراضية Base URL، والنموذج، ووضع الاختبار API، وسلوك اكتشاف النماذج، بالإضافة إلى أي حقول خاصة بالمزود UI. + +استخدم اختيار النموذج حسب المهمة بشكل فعّال هنا. على سبيل المثال، احتفظ بـ DeepSeek أو GLM في سيناريوهات التفكير المعقد، واستخدم Qwen أو Moonshot للمهام الواسعة باللغة الصينية، وأوجه مهام البرمجة إلى Qwen Code عندما يكشف هذا الحساب عن نماذج المبرمجين. + +## النهاية والمصادقة + +| المزود | النموذج الافتراضي | URL الأساسية | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (مطلوب رقم نقطة النهاية) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**ملاحظة:** Doubao يتطلب رقم نقطة نهاية Ark (التنسيق: `ep-xxxxxxxx-xxxx-xxxx`) بدلاً من اسم نموذج قياسي. + +يستخدم معظم هؤلاء المزودين بيئة التشغيل المشتركة المتوافقة مع OpenAI، لكن مفاهيم الحسابات والنماذج لديهم تختلف. احتفظ بـ Base URL الخاص بالإعدادات المحددة ما لم تتأكد من وجود نقطة نهاية بديلة للحساب. + +## اكتشاف النماذج + +DeepSeek، Qwen، Qwen Code، Doubao، Moonshot، Xiaomi MiMo، GLM، Z AI، MiniMax، Baidu Qianfan، و SiliconFlow يستخدمون اكتشاف النماذج المتوافق مع OpenAI عندما يدعم المزود عرض القائمة. أما Huawei Cloud MaaS فيستخدم وضع `huaweicloud-modelarts-models` لأن بيانات نشر ModelArts ليست مطابقة لقائمة `/v1/models` العامة. + +لا تعتبر فشل عملية الاكتشاف دليلاً على استحالة إجراء المحادثة. يسمح بعض المزودين بالمحادثة مع تقييد صلاحيات عرض القائمة. في هذه الحالة، احتفظ برقم نموذج واضح في ملف التعريف وقم بالتحقق باستخدام اختبار الاتصال. + +## حل المشكلات + +- نجحت عملية المصادقة لكن المحادثة فشلت: قد يكون اسم النموذج خارج نطاق صلاحيات الحساب أو المنطقة. +- Doubao يفشل مع اسم نموذج عادي: استخدم رقم نقطة نهاية Ark في حقل النموذج عندما تتطلب عملية النشر ذلك. +- تكون ردود التفكير مقتطعة: تحقق من الحد الأقصى لعدد رموز الإخراج الخاص بكل مزود وإعدادات الحد الأقصى للرموز المدعومة من Notemd. +- تختلف شبكات المنطقة: استخدم نقطة نهاية المزود في المنطقة الصينية عندما تكون آلة الخزنة داخل الصين؛ واستخدم نقطة النهاية الدولية فقط عندما يكون كل من الحساب ومسار الشبكة صالحين. + +## متى يجب استخدامه + +استخدم مزودي الصين عندما يكون التأخير الإقليمي، أو الوصول إلى المدفوعات/الحسابات، أو جودة اللغة الصينية، أو التكلفة هي القيود الرئيسية. يُفضّل استخدام OpenAI مباشرةً، أو Anthropic، أو Google، أو المزودين المحليين عندما تحتاج إلى حدود بروتوكول أبسط أو توافق أقوى في التصحيح بين المزودين. + +--- + +## الخطوات التالية + +- [LLM Providers](/docs/providers/overview) -- إعدادات كاملة، نماذج لكل مهمة، ومنطق إعادة المحاولة +- [حل المشكلات](/docs/advanced/troubleshooting) -- إصلاح أخطاء الاتصال الإقليمي والتحقق من الهوية diff --git a/website/i18n/ar/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/ar/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..a22bc148 --- /dev/null +++ b/website/i18n/ar/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "تكوين Google Gemini" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# مزود Google + +<TLDR> +**Google يستخدم وسيلة النقل الأصلية للغة التوليدية Gemini API.** الإعداد المسبق الحالي يفضل `gemini-2.0-flash-exp` و `https://generativelanguage.googleapis.com/v1` و `temperature: 0.5`. إنه ليس ملفًا متوافقًا مع OpenAI. + +هذا جزء من [Obsidian دليل إدارة المعرفة الذكية](/docs/pillar-ai-knowledge). +</TLDR> + +## الإعداد + +أنشئ مفتاح Cloud API من نوع Google AI Studio أو Google مع صلاحيات الوصول إلى Gemini، وأضف ملف مزود `Google`، واحتفظ بالقاعدة الأصلية للغة التوليدية URL. استخدم الإعداد المسبق Gemini Flash الافتراضي للترجمة السريعة وأتمتة الملاحظات الواسعة، ثم عدّل النماذج حسب المهمة عند الحاجة إلى نموذج Gemini أكبر أو أكثر قدرة. + +تجنب وضع معرفات نماذج Gemini في ملف متوافق مع OpenAI ما لم تستخدم بوابة تكشف عن Gemini عبر ملف متوافق مع OpenAI و API. + +## النهاية والمصادقة + +| الحقل | الإعداد المسبق الحالي | +|-------|----------------| +| وسيلة النقل | `google` | +| مفتاح API | مطلوب | +| URL الأساسية | `https://generativelanguage.googleapis.com/v1` | +| النموذج الافتراضي | `gemini-2.0-flash-exp` | +| درجة الحرارة | `0.5` | +| اختبار الاتصال | فقط للدردشة | + +يقوم الوقت التشغيلي بالاتصال بـ `/models/{model}:generateContent?key={apiKey}`. يتم إرسال المفتاح كمعامل استعلام لأن هذه هي الطريقة التي يتم بها ربط نقطة نهاية Gemini الأصلية في الإضافة. + +## اكتشاف النماذج + +Google يستخدم وضع الاكتشاف `google-models`. يجب أن يعيد الاكتشاف نماذج Gemini المتاحة للمفتاح API؛ إذا كان المحدد فارغًا، اختبر المفتاح مع نفس القاعدة URL وتأكد من تفعيل عائلة النماذج لذلك الحساب. + +الحدود المعروفة لرموز الإخراج مرتبطة بالنموذج في سجل المزودين. إذا تم قص ترجمة طويلة أو شرح رسم تخطيطي، اختر نموذج Gemini يدعم حدًا أكبر للإخراج أو خفّض حجم الإخراج المطلوب. + +## حل المشكلات + +- `400`: عادةً ما لا يتطابق معرف النموذج مع مسار Gemini الأصلي أو تتجاوز الطلبات الشكل المدعوم من النموذج. +- `401` أو `403`: تحقق من قيود المفتاح، وتفعيل المشروع/ API، وما إذا كان المفتاح يمكنه الوصول إلى Gemini. +- `404`: معرف النموذج غير متاح في الإصدار API المُعد. +- تفشل أمثلة البوابات تحت هذا الملف: استخدم إعداد البوابة بدلاً من مزود Google الأصلي. + +## متى يجب استخدامه + +استخدم Google للترجمة السريعة، وتنظيف كميات كبيرة من الملاحظات، والأتمتة التي يكون فيها توازن تكلفة/أداء Gemini أفضل من استخدام OpenAI أو Anthropic مباشرةً. فضّل مزودًا آخر للأتمتة التي تتطلب معالجة نماذج الاستدلال المتوافقة مع OpenAI. + +--- + +## الخطوات التالية + +- [LLM Providers](/docs/providers/overview) -- إعدادات كاملة، نماذج لكل مهمة، ومنطق إعادة المحاولة +- [Translation](/docs/features/translation) -- يُوصى باستخدام Gemini Flash لمهام الترجمة ذات الحجم الكبير diff --git a/website/i18n/ar/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/ar/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..1a7ab61e --- /dev/null +++ b/website/i18n/ar/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "النماذج المحلية" +description: "قم بتكوين Ollama والـ LLM المحلية" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# النماذج المحلية + +<TLDR> +يقوم المزودون المحليون بإبقاء محتوى الملاحظات خارج الخوادم المستضافة API. يغطي المسار المحلي الحالي Ollama باستخدام وسيلة النقل الأصلية `ollama`، وLMStudio عبر وسيلة النقل المتوافقة مع OpenAI. لا يُطلب وجود مفتاح API لأي من هذين المسارين، لكن يجب أن يكون الخادم المحلي والنموذج قيد التشغيل مسبقًا. + +هذا جزء من [Obsidian دليل إدارة المعرفة الذكية](/docs/pillar-ai-knowledge). +</TLDR> + +## الإعداد + +بالنسبة لـ Ollama، قم بتثبيت Ollama، واستخرج النموذج الذي تريده، وشغّل الخادم، ثم أضف ملف تعريف مزود `Ollama` في Notemd. أما بالنسبة لـ LMStudio، فقم بتحميل نموذج على الخادم المحلي لـ LM Studio وأضف ملف تعريف مزود `LMStudio`. + +النماذج المحلية هي اعتمادات تشغيلية، وليست مجرد إعدادات. لا يمكن لـ Notemd استدعاء سوى ما تكشف عنه العملية المحلية، لذا تأكد من صحة النموذج المحلي خارج Obsidian قبل تصحيح أخطاء الإضافة. + +## النهاية والمصادقة + +| المزود | URL الأساسية | النموذج الافتراضي | مفتاح API | ملاحظات | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | غير مطلوب | NDJSON البث المباشر؛ اكتشاف النماذج عبر `/api/tags` | +| LMStudio | `localhost:1234/v1` | `local-model` | غير مطلوب | يُرسل `"EMPTY"` كتوكن حامل؛ متوافق مع OpenAI | + +يستخدم Ollama المسار الأصلي `/chat` أسفل قاعدته URL. يتبع LMStudio مسار `chat/completions` المتوافق مع OpenAI ويتوقع وجود نموذج تم تحميله على الخادم المحلي. + +## اكتشاف النماذج + +يستخدم Ollama وضع الاكتشاف `ollama-tags` ويعرض العلامات التي تم سحبها محليًا. يستخدم LMStudio طريقة اكتشاف النماذج المتوافقة مع OpenAI عندما يكشف الخادم الخاص به عن `/v1/models`. + +إذا لم يُرجع الاكتشاف أي شيء، فهذا عادةً مشكلة في حالة الخادم المحلي: النموذج لم يتم سحبه أو تحميله، أو أن الخادم مرتبط بمضيف/منفذ مختلف عن الموجود في الملف. + +## حل المشكلات + +- تم رفض الاتصال: قم بتشغيل Ollama أو LM Studio وتأكد من البورت المُعدّل. +- تم العثور على نموذج غير موجود: قم بسحب علامة Ollama أو تحميل نموذج LM Studio قبل إجراء الاختبار. +- إخراج بطيء: قلل حجم السياق، استخدم نموذجًا محليًا أصغر، أو أرسل المهام الثقيلة إلى مزود مستضاف. +- الاستجابات الفارغة أو غير الصحيحة: تأكد من أن ملف تعريف المزود المختار يتوافق مع بروتوكول الخادم المحلي؛ Ollama و LMStudio لا يمكن استبدالهما ببعضهما البعض. + +## متى يجب استخدامه + +استخدم مزودين محليين للخزائن الخاصة، أو العمل دون اتصال بالإنترنت، أو المهام المتكررة ذات التكلفة المنخفضة. لا تفترض أن الاستخدام المحلي هو الأفضل تلقائيًا لتوليف البحوث أو التفكير الطويل؛ فجودة النموذج وقيود الأجهزة هي ما يُشكّل التوازن. + +--- + +## الخطوات التالية + +- [[LLM المزودون](/docs/providers/overview) -- إعداد كامل للتكوين وإعداد النموذج لكل مهمة +- [حل المشكلات](/docs/advanced/troubleshooting) -- إصلاح أخطاء رفض الاتصال عندما لا يكون الخادم المحلي قيد التشغيل diff --git a/website/i18n/ar/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/ar/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..53a9d788 --- /dev/null +++ b/website/i18n/ar/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "تكوين OpenAI (GPT-4، GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# مزود OpenAI + +<TLDR> +**OpenAI يستخدم وسيلة النقل المشتركة المتوافقة مع OpenAI.** الإعدادات الافتراضية الحالية تكون `gpt-4o`، `https://api.openai.com/v1`، `temperature: 0.5`، بالإضافة إلى اختبار الاتصال `models-then-chat`. استخدم هذه الصفحة عندما تحتاج إلى دلالات ميدانية دقيقة؛ واستخدم نظرة عامة [LLM Providers](/docs/providers/overview) للاختيار على مستوى الفئة. + +هذا جزء من [Obsidian دليل إدارة المعرفة الذكية](/docs/pillar-ai-knowledge). +</TLDR> + +## الإعداد + +أنشئ مفتاح OpenAI API، أضف ملف تعريف مزود `OpenAI` في إعدادات Notemd، واحتفظ بالقيمة الافتراضية Base URL ما لم تكن تشير عمدًا إلى بوابة متوافقة مع OpenAI. يمكن أن يبقى حقل النموذج على `gpt-4o` للاستخدامات العامة أو يتم استبداله بمعرف نموذج OpenAI آخر يمكن لحسابك استدعاؤه. + +استخدم نماذج مخصصة لكل مهمة للتحكم في التكاليف: احتفظ بالنماذج الأقوى للبحث واستخراج المفاهيم وإعادة تنظيم النصوص الطويلة؛ واستخدم نماذج أرخص أو أسرع للترجمة واقتراح الروابط والملخصات القصيرة. + +## النهاية والمصادقة + +| الحقل | الإعداد المسبق الحالي | +|-------|----------------| +| وسيلة النقل | `openai-compatible` | +| مفتاح API | مطلوب | +| URL الأساسية | `https://api.openai.com/v1` | +| النموذج الافتراضي | `gpt-4o` | +| درجة الحرارة | `0.5` | +| اختبار الاتصال | `/models`، ثم `/chat/completions` | + +Notemd يقوم بتنظيم القواعد الأساسية URL المتوافقة مع OpenAI قبل إضافة `chat/completions` أو `models`. لا تضف `/chat/completions` في نهاية Base URL؛ فذلك يخلق مسارًا مكررًا. + +## اكتشاف النماذج + +OpenAI يستخدم المسار العام لاكتشاف النماذج المتوافق مع OpenAI. تطلب إعدادات UI أولاً `/v1/models`، ثم تتحقق من النموذج المختار عبر طلب دردشة خفيف. إذا فشل الاكتشاف لكن الدردشة لا تزال تعمل، تحقق مما إذا كان مفتاحك يمتلك صلاحية قائمة النماذج أو إذا كانت بوابة ما تحظر عرض قائمة النماذج. + +تُعامل نماذج التفكير كحالة حافة في البروتوكول: Notemd يدمج محتوى النصوص الخاصة بالنظام والمستخدم لإنشاء أرقام تفكير OpenAI التي ترفض دور `system` منفصل، ويعرض `reasoningEffort` فقط حيث تدعم تعريفات المزود ذلك. + +## حل المشكلات + +- `401` أو `403`: تحقق من المفتاح وإمكانية الوصول إلى المشروع وحالة الفوترة، بالإضافة إلى ما إذا كان النموذج المختار مفعّلاً للمفتاح. +- `404` في الدردشة: عادةً ما يكون Base URL خاطئًا أو يحتوي بالفعل على `/chat/completions`. +- يظهر النموذج في الوثائق لكنه غير موجود في المحدد: إمكانية الوصول إلى قائمة النماذج وإمكانية الوصول إلى الدردشة نقطتا فشل منفصلتان؛ اختبر معرف النموذج الدقيق يدويًا في ملف تعريف المزود. +- يرفض نموذج التفكير الرسائل: استخدم معرف نموذج مغطى بمسار معالجة التفكير OpenAI أو انتقل إلى نموذج دردشة غير تفكيري. + +## متى يجب استخدامه + +استخدم OpenAI عندما تريد المسار الافتراضي المستقر للأكثر توقعًا، أو عندما يكون اكتشاف `/v1/models` مهمًا، أو عندما يعتمد سير العمل على دلالات نموذج التفكير OpenAI. فضّل استخدام بوابة أو مزود محلي عندما تكون مسائل التوجيه أو الخصوصية أو التحكم في التكاليف أكثر أهمية من السلوك المباشر لـ OpenAI API. + +--- + +## الخطوات التالية + +- [LLM Providers](/docs/providers/overview) -- إعدادات كاملة، نماذج لكل مهمة، ومنطق إعادة المحاولة +- [حل المشكلات](/docs/advanced/troubleshooting) -- إصلاح أخطاء 401/403 وأخطاء الحد من المعدلات diff --git a/website/i18n/ar/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/ar/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..b72fd6f5 --- /dev/null +++ b/website/i18n/ar/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "مزودو LLM" +description: "تكوين 36 مزود LLM — سحابي، بوابة، ومحلي — مع اختيار النموذج حسب المهمة" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# مزودو LLM + +<TLDR> +**Notemd يدعم 36 مزود LLM عبر 4 أنواع نقل.** جميع الاتصالات API تستخدم HTTP الخام (بدون SDKs) مع إعادة محاولة تلقائية، وبديل للنقل، وتخزين مؤقت للردود لمدة 5 دقائق. يسمح اختيار النموذج حسب المهمة باستخدام نماذج رخيصة لاستخراج المفاهيم ونماذج قوية للبحث. لا يلزم مفتاح API للمزودات المحلية (Ollama، LMStudio). +</TLDR> + +هذا جزء من [Obsidian دليل إدارة المعرفة الذكية](/docs/pillar-ai-knowledge). + +## فئات المزودين + +### مزودو السحابة + +| المزود | القاعدة الافتراضية URL | النموذج الافتراضي | درجة الحرارة | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### مزودو البوابة/البروكسي + +| المزود | القاعدة الافتراضية URL | النموذج الافتراضي | ملاحظات | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | يضيف رؤوس `HTTP-Referer` + `X-Title` | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | يضيف رأس `X-GitHub-Api-Version` | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | يضيف رأس `APP-Code` | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | مفتاح اختياري API | +| **النوع الجديد API** | `localhost:3000/v1` | `gpt-4.1` | مفتاح اختياري API | +| **OpenAI Compatible** | (مُعدّ من قبل المستخدم) | `your-model-id` | نقطة نهاية مخصصة | + +### مزودو الصين + +| المزود | القاعدة الافتراضية URL | النموذج الافتراضي | ملاحظات | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | موجه للبرمجة | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (مطلوب رقم نقطة النهاية) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | نقطة نهاية Zhipu في الصين | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | نقطة نهاية Zhipu الدولية | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | منصة استضافة النماذج | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao يتطلب معرف نقطة نهاية Ark** (التنسيق: `ep-xxxxxxxx-xxxx-xxxx`). يجب استبدال القيمة الافتراضية. + +### مزودون محليون + +| المزود | القاعدة الافتراضية URL | النموذج الافتراضي | ملاحظات | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | لا توجد مفتاح API. بث NDJSON. اكتشاف النماذج عبر `/api/tags` | +| **LMStudio** | `localhost:1234/v1` | `local-model` | يُرسل `"EMPTY"` كرمز حامل. اكتشاف متوافق مع OpenAI | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (مُعدّ من قبل المستخدم) | `gpt-4o` | اسم النشر في URL. رأس `api-key` | + +## اختيار النموذج حسب المهمة + +Notemd يدعم مزودًا ونموذجًا مستقلين لكل مهمة. قم بتفعيل ذلك باستخدام `useMultiModelSettings: true`. + +### المهام المتاحة + +| المهمة | مفتاح الإعدادات | المزود الافتراضي | +|------|-------------|-----------------| +| إضافة روابط (إدخال روابط ويكي) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| البحث (بحث على الويب + تلخيص) | `researchProvider` / `researchModel` | DeepSeek | +| إنشاء من العنوان | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| الترجمة | `translateProvider` / `translateModel` | DeepSeek | +| إنشاء المخططات | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| استخراج المفاهيم | `extractConceptsProvider` / `Model` | DeepSeek | +| استخراج النص الأصلي | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### ترتيب الحلول + +1. إذا كان `useMultiModelSettings` مفعّلاً → استخدم المزود والنموذج الخاص بالمهمة +2. إذا كان تعديل نموذج المهمة فارغًا → ارجع إلى النموذج الافتراضي للمزود +3. إذا كان مزود المهمة غير صالح → ارجع إلى `activeProvider` العالمي +4. إذا كان `useMultiModelSettings` مغلقًا → تستخدم جميع المهام `activeProvider` العالمي + +### الإعدادات الموصى بها + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## هندسة استدعاء API + +### طبقات النقل + +1. **Obsidian `requestUrl`** — الأساسية (مدمجة، تعمل على جميع المنصات) +2. **Desktop HTTP** — وحدات Node.js `http`/`https` (بث + طلبات طويلة) +3. **Web `fetch`** — خيار بديل عند عدم توفر وحدات Node.js + +يقوم الإضافة تلقائيًا بالانتقال بين طبقات النقل في حالة أخطاء شبكية مؤقتة. + +### منطق التكرار + +- **الوضع العادي** (`enableStableApiCall: false`): محاولة واحدة. عند فشل مؤقت، يتم الترقية تلقائيًا إلى تكرار مستقر. +- **وضع التكرار المستقر** (`enableStableApiCall: true`): ما يصل إلى 4 محاولات (1 + 3 تكرارات) بفواصل زمنية قدرها 5 ثوانٍ. +- **أخطاء مؤقتة تُحفّز التكرار**: `err_connection_closed`، `err_connection_reset`، `err_timed_out`، `econnreset`، `econnaborted`، `etimedout`، `socket hang up`، `network request failed` +- **غير قابلة للتكرار**: HTTP 400، 401، 403، 404 + +### تخزين الاستجابات في الذاكرة + +ذاكرة تخزين مؤقت LRU داخل الذاكرة لمدة 5 دقائق مُفتاحها المزود + النموذج + درجة الحرارة + الطلب + المحتوى. تُرجع الطلبات المتشابهة التالية خلال 5 دقائق النتائج المخزنة فورًا. + +### معالجة نماذج التفكير + +النماذج التي لا تدعم الدور `system` (DeepSeek R1، OpenAI o1/o3/o4/gpt-5) تُدمج تلقائيًا رسائل النظام ورسائل المستخدم في رسالة مستخدم واحدة. + +DeepSeek-محدد: `thinkingEnabled` يضيف `{ thinking: { type: 'enabled' } }` إلى الطلب. يتم تمرير `reasoningEffort` (منخفض/متوسط/عالي) كـ `reasoning_effort`. يتحقق من أن أقصى عدد رموز الإخراج ≥ 8000 عند تفعيل وضع التفكير. + +### تقدير الرموز + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — استراتيجية 4 أحرف لكل رمز. تُستخدم لتطبيق `maxResearchContentTokens` قبل إرسالها إلى LLM. + +لا يتم تنفيذ تتبع التكلفة. + +## اكتشاف النماذج + +| الوضع | المزودون | نقطة النهاية | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | قائمة النماذج API | +| `anthropic-models` | Anthropic | قائمة النماذج API | +| `openai-compatible-models` | DeepSeek، Qwen، Mistral، إلخ. | `/v1/models` | +| `openrouter-models` | OpenRouter | قائمة النماذج API | +| `github-models` | GitHub Models | عملية التنبؤ API | +| `none` | Azure OpenAI | معطل (يتطلب اسم النشر) | + +## البدء السريع + +1. **اختر مزودًا** — DeepSeek (الصين)، OpenAI (دولي)، أو Ollama (محلي/مجاني) +2. **أدخل مفتاح API** — الإعدادات → Notemd → المزود → مفتاح API +3. **اختبار الاتصال** — انقر على زر الاختبار +4. **اختياري: نماذج حسب المهمة** — قم بتفعيل `useMultiModelSettings` وضبطها بشكل منفصل + +بالنسبة لـ Ollama: لا يلزم وجود مفتاح API. فقط تأكد من أن `ollama serve` يعمل. + +--- + +## الخطوات التالية + +- 📝 [ملاحظات المفهوم](/docs/features/concept-notes) — تستخدم نموذج الاستخراج حسب المهمة +- 🎨 [الرسوم التوضيحية](/docs/features/diagrams) — تستخدم نموذج الرسوم التوضيحية حسب المهمة +- 🔍 [البحث](/docs/features/research) — تستخدم نموذجًا مخصصًا للبحث +- ⚙️ [التكوين](/docs/getting-started/configuration) — مرجع لجميع الإعدادات diff --git a/website/i18n/ar/docusaurus-theme-classic/footer.json b/website/i18n/ar/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/ar/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/ar/docusaurus-theme-classic/navbar.json b/website/i18n/ar/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/ar/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/bn/code.json b/website/i18n/bn/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/bn/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/bn/docusaurus-plugin-content-docs/current.json b/website/i18n/bn/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/bn/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/bn/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/bn/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..f1d62f83 --- /dev/null +++ b/website/i18n/bn/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "ব্যাচ প্রক্রিয়াকরণ" +description: "একাধিক ফাইল দক্ষতার সাথে প্রক্রিয়াকরণ করা" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# ব্যাচ প্রক্রিয়াকরণ + +<TLDR> +**Notemd কনফিগার করা যায় এমন কনকারেন্সি ও ওভাররাইট নিয়ন্ত্রণের মাধ্যমে একই অপারেশনে পুরো ফোল্ডারগুলো প্রক্রিয়াকরণ করে।** একটি ফোল্ডারে রাইট-ক্লিক করে উইকি-লিঙ্ক ব্যাচ-অ্যাড, ধারণা বের করা, গবেষণা করা অথবা সেখানে থাকা সমস্ত নোট অনুবাদ করা যায়। কনকারেন্সি সীমাবদ্ধতাগুলো API রেট-লিমিট ত্রুটি রোধ করে। প্রতিটি ফাইলের জন্য অগ্রগতি রিপোর্ট করা হয়। ওভাররাইট আচরণ কনফিগার করা যায়: বিদ্যমানগুলো এড়িয়ে যাওয়া, যোগ করা অথবা প্রতিস্থাপন করা। ব্যর্থ হওয়া ফাইলগুলো লগ করা হয় এবং ব্যাচটি বন্ধ হয় না. + +এটি [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge)-এর অংশ। +</TLDR> + +## সংক্ষিপ্ত বিবরণ + +ব্যাচ প্রক্রিয়াকরণ নোটগুলোর একটি ফোল্ডারকে একটি একক অপারেশনে রূপান্তরিত করে। প্রতিটি নোট খুলে আলাদাভাবে কমান্ড চালানোর পরিবর্তে, আপনি ফোল্ডারে রাইট-ক্লিক করে কাজটি নির্বাচন করেন। Notemd প্রতিটি `.md` ফাইল ঘুরে দেখে, নির্বাচিত অ্যাকশনটি প্রয়োগ করে এবং রিয়েল-টাইমে অগ্রগতি রিপোর্ট করে. + +ভল্ট-ওয়াইড জ্ঞান বের করার জন্য এই ফিচারটি অপরিহার্য। উদাহরণস্বরূপ, ডজনখানেক PDF ইম্পোর্ট করার পর, ব্যাচ-অ্যাড-লিঙ্ক এবং তারপর ব্যাচ-এক্সট্রাক্ট-কনসেপ্ট ব্যবহার করে কয়েক মিনিটের মধ্যেই আপনার জ্ঞান গ্রাফ তৈরি হয়, ঘণ্টার পর নয়. + +## এটি কীভাবে কাজ করে + +### ব্যাচ এক্সিকিউশন মডেল + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **ফাইল সংগ্রহ** -- Notemd লক্ষ্য ফোল্ডারটি রিকার্সিভভাবে (অথবা সেটিংস অনুযায়ী শুধুমাত্র টপ-লেভেলে) স্ক্যান করে এবং সমস্ত `.md` ফাইল সংগ্রহ করে. +2. **কনকারেন্সি পার্টিশনিং** -- `batchConcurrency` সেটিংস অনুযায়ী ফাইলগুলোকে চাঙ্কে ভাগ করা হয়। প্রতিটি চাঙ্ক সমান্তরালভাবে চলে; চাঙ্কগুলো ধারাবাহিকভাবে চলে. +3. **এক্সিকিউশন** -- প্রতিটি ফাইল একক-ফাইল কমান্ডের মতোই একই লজিক ব্যবহার করে প্রক্রিয়াকরণ করা হয়। প্রতি-টাস্ক প্রোভাইডার ও মডেল সেটিংস মেনে চলা হয়. +4. **অগ্রগতি রিপোর্টিং** -- প্রতিটি ফাইল শেষ হওয়ার পর একটি টোস্ট নোটিফিকেশন আপডেট হয়, যেখানে `N / Total` অগ্রগতি দেখানো হয়. +5. **ত্রুটি হ্যান্ডলিং** -- যদি কোনো ফাইল ব্যর্থ হয় (API ত্রুটি, নেটওয়ার্ক টাইমআউট ইত্যাদি), তবে ত্রুটিটি লগ করা হয় এবং ব্যাচটি চালিয়ে যাওয়া হয়। চূড়ান্ত সারসংক্ষেপে কোনো ব্যর্থ ফাইল তালিকাভুক্ত থাকে. +6. **সমাপ্তি** -- একটি সারসংক্ষেপ টোস্ট মোট প্রক্রিয়াকৃত, সফল ও ব্যর্থ ফাইলের সংখ্যা জানায়। + +### ওভাররাইট বিহেভিয়ার + +যখন এমন কোনো ফাইল প্রক্রিয়াকরণ করা হয় যেখানে ইতিমধ্যেই উইকি-লিঙ্ক, কনসেপ্ট নোট বা অনুবাদ রয়েছে, Notemd-এর আচরণ ওভাররাইট সেটিংয়ের উপর নির্ভর করে: + +| মোড | বিহেভিয়ার | +|------|----------| +| **Skip** | বিদ্যমান কন্টেন্ট অপরিবর্তিত থাকে। শুধুমাত্র অপরিবর্তিত ফাইলগুলোই প্রক্রিয়াকৃত হয়. | +| **Append** (ডিফল্ট) | নতুন কন্টেন্ট যোগ করা হয়। বিদ্যমান উইকি-লিঙ্ক, কনসেপ্ট বা অনুবাদগুলো সংরক্ষিত থাকে. | +| **Replace** | ফাইলটি সম্পূর্ণরূপে পুনরায় প্রক্রিয়াকৃত হয়। পূর্ববর্তী সমস্ত Notemd পরিবর্তনগুলো ওভাররাইট হয়ে যায়. | + +উইকি-লিঙ্কিংয়ের জন্য বিশেষভাবে: যদি কোনো নোটে ইতিমধ্যে `[[wiki-links]]` থাকে, তবে **skip** মোডটি সেটিকে অপরিবর্তিত রাখে, অন্যদিকে **replace** মোডটি সম্পূর্ণ নোটটিকে LLM-এ পাঠিয়ে নতুন লিঙ্ক যোগ করে। ধাপে ধাপে প্রক্রিয়াকরণের জন্য **skip** এবং মডেল আপগ্রেডের পর পুনরায় প্রক্রিয়াকরণের জন্য **replace** ব্যবহার করুন. + +### কনকারেন্সি কন্ট্রোল + +`batchConcurrency` সেটিংটি সমান্তরাল API কলগুলোকে সীমিত করে। এটি কঠোর কোটা সহ প্রদানকারীদের বিরুদ্ধে বড় ফোল্ডারগুলো প্রক্রিয়াকরণ করার সময় রেট-লিমিট ত্রুটি (HTTP 429) এড়ায়. + +| কনকারেন্সি | সুপারিশকৃত জন্য | সাধারণ রেট-লিমিট প্রভাব | +|-------------|----------------|---------------------------| +| `1` | বিনামূল্যের টিয়ার, কঠোর প্রদানকারী | কিছুই নয় (সিরিয়াল) | +| `3` (ডিফল্ট) | বেশিরভাগ ক্লাউড প্রদানকারী | নিম্ন | +| `5` | Ollama (লোকাল), উদার টিয়ার | কিছুই নয় / নিম্ন | +| `10` | দ্রুত ইনফারেন্স সহ লোকাল মডেল | কিছুই নয় | + +ব্যাচ প্রক্রিয়াকরণের সময় যদি 429 ত্রুটি দেখা দেয়, তবে কনকারেন্সি 1 বা 2-এ কমিয়ে দিন. + +## কনফিগারেশন + +| সেটিং | ডিফল্ট | প্রভাব | +|---------|---------|--------| +| `batchConcurrency` | `3` | ফোল্ডার অপারেশনের সময় সর্বোচ্চ সমান্তরাল API কল | +| `batchOverwriteExisting` | `false` | বিদ্যমান Notemd কন্টেন্টকে ওভাররাইট করুন। `false` = অ্যাপেন্ড মোড। | +| `batchSkipProcessed` | `false` | যেসব ফাইলে ইতিমধ্যে Notemd মার্কার রয়েছে সেগুলো বাদ দিন (যেমন, wiki-লিঙ্কস) | +| `batchRecursive` | `true` | ফোল্ডার স্ক্যান করার সময় সাবডিরেক্টরিগুলো অন্তর্ভুক্ত করুন | +| `enableStableApiCall` | `false` | ব্যাচ প্রক্রিয়াকরণের সময় প্রতিটি ফাইলের জন্য রিট্রাই লজিক সক্রিয় করুন (সর্বোচ্চ ৪টি চেষ্টা) | + +### ব্যাচে পার-টাস্ক মডেলসমূহ + +প্রতিটি ব্যাচ অপারেশন সংশ্লিষ্ট পার-টাস্ক মডেল ব্যবহার করে। batch-add-links এ `addLinksProvider` ব্যবহৃত হয়, batch-research এ `researchProvider` ব্যবহৃত হয়, ইত্যাদি। এর অর্থ হলো আপনি বিপুল পরিমাণের অপারেশনের জন্য সস্তা মডেল ব্যবহার করতে পারেন এবং গুণমান-সংবেদনশীল কাজের জন্য ব্যয়বহুল মডেল সংরক্ষণ করতে পারেন. + +## উদাহরণ + +আপনার কাছে `papers/` নামে একটি ফোল্ডার রয়েছে যেখানে ৪০টি ইম্পোর্ট করা গবেষণা নোট রয়েছে। আপনি সেগুলোর সবগুলোতে wiki-লিঙ্ক যোগ করতে এবং ধারণাগুলো বের করতে চান: + +1. ডান-ক্লিক করুন `papers/` ফোল্ডারে +2. **"Notemd: Process folder (add links)"** নির্বাচন করুন +3. Notemd ফোল্ডারটি স্ক্যান করে, 40টি `.md` ফাইল খুঁজে পায় এবং ডিফল্ট কনকারেন্সি অনুযায়ী প্রতি বার 3টি করে প্রক্রিয়া করে +4. একটি প্রগ্রেস টোস্ট দেখায়: `12/40 files processed...` +5. প্রায় 3 মিনিট পর, একটি সারসংক্ষেপ টোস্ট রিপোর্ট করে: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. সমস্ত 40টির জন্য কনসেপ্ট নোট তৈরি করতে **"Notemd: Process folder (extract concepts)"** ব্যবহার করে পুনরাবৃত্তি করুন + +যে ফাইলটি ব্যর্থ হয়েছে সেটি লগ করা হয়। পরে আপনি শুধুমাত্র সেই ফাইলটির জন্যই পুনরায় চালাতে পারেন. + +## টিপস + +- **কম কনকারেন্সি দিয়ে শুরু করুন** -- যদি আপনি আপনার প্রোভাইডারের রেট-লিমিট সম্পর্কে নিশ্চিত না হন, তবে `1` দিয়ে শুরু করুন এবং ধীরে ধীরে বাড়ান. +- **ইনক্রিমেন্টাল আপডেটের জন্য স্কিপ মোড ব্যবহার করুন** -- প্রথম পূর্ণ ব্যাচের পর, `batchSkipProcessed: true`-এ সুইচ করুন যাতে পরবর্তী রানগুলিতে শুধুমাত্র নতুন নোটগুলি প্রক্রিয়া করা হয়. +- **স্থিতিশীল API কল সক্রিয় করুন** -- `enableStableApiCall: true` দীর্ঘ ব্যাচের সময় অস্থায়ী নেটওয়ার্ক ত্রুটি থেকে পুনরুদ্ধার করার জন্য রিট্রাই লজিক যোগ করে. +- **মডেল আপগ্রেডের পর পুনরায় চালান** -- যদি আপনি একটি ভালো মডেলে সুইচ করেন, তবে `batchOverwriteExisting: true` সেট করুন এবং উন্নত লিঙ্ক ও কনসেপ্ট পাওয়ার জন্য পুনরায় চালান. + +--- + +## পরবর্তী ধাপসমূহ + +- [Workflows](/docs/features/workflows) -- এক-ক্লিক সাইডবার বাটনে ব্যাচ টাস্কগুলোকে চেইন করুন +- [Custom Prompts](/docs/advanced/custom-prompts) -- ব্যাচ এক্সট্রাকশনের জন্য প্রম্পটগুলো কাস্টমাইজ করুন +- [Troubleshooting](/docs/advanced/troubleshooting) -- ব্যাচ রানের সময় রেট-লিমিট এরর ও কানেকশন ফেইলিউর সংশোধন করুন +- [LLM প্রদানকারীগণ](/docs/providers/overview) -- প্রতি-টাস্ক মডেল কনফিগারেশন রেফারেন্স diff --git a/website/i18n/bn/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/bn/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..2b907217 --- /dev/null +++ b/website/i18n/bn/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "কাস্টম প্রম্পট" +description: "আপনার চাহিদা অনুযায়ী LLM প্রম্পটগুলোকে কাস্টমাইজ করুন" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# কাস্টম প্রম্পট + +<TLDR> +**Notemd আপনাকে প্রতিটি টাস্ক টাইপের জন্য ডিফল্ট LLM প্রম্পটকে ওভাররাইড করার সুযোগ দেয়।** কাস্টম প্রম্পটগুলো আপনাকে মডেলটি কী বিষয়কে অগ্রাধিকার দেবে তা নিয়ন্ত্রণ করার ক্ষমতা দেয়: আপনি কনসেপ্ট এক্সট্রাকশনকে নির্দিষ্ট কোনো ডিসিপ্লিনের মধ্যে সীমাবদ্ধ রাখতে পারেন, লিঙ্কিং স্টাইল পরিবর্তন করতে পারেন, অথবা অনুবাদের সুর পরিবর্তন করতে পারেন। `{{content}}` এবং `{{concept}}` এর মতো প্রম্পট ভেরিয়েবলগুলো রানটাইমে প্রতিস্থাপিত হয়। 'ফোকাসড লার্নিং ডোমেইন' ফিচারটি আপনার অধ্যয়ন ক্ষেত্রকে স্বয়ংক্রিয়ভাবে এক্সট্রাকশন ফলাফলের স্কোপ হিসেবে সামনে যোগ করে. + +এটি [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge)-এর অংশ। +</TLDR> + +## সংক্ষিপ্ত বিবরণ + +Notemd-এর অন্তর্নির্মিত প্রম্পটগুলো সাধারণ উদ্দেশ্যের জ্ঞানভিত্তিক কাজের জন্য লেখা হয়েছে। এগুলো বিভিন্ন ডোমেইনে ভালোভাবে কাজ করে, কিন্তু ডোমেইন-নির্দিষ্ট উন্নতির জন্যও সুযোগ রাখে। কাস্টম প্রম্পটগুলো আপনাকে LLM-কে আপনার ব্যবহারিক কেসের জন্য ঠিক কীভাবে আচরণ করতে হবে তা নির্দেশ দেয় -- যেমন শুধুমাত্র মেডিকেল টেরমিনোলজি এক্সট্রাক্ট করা, শুধুমাত্র নেমড এন্টিটিগুলো লিঙ্ক করা, অথবা আনুষ্ঠানিক ভঙ্গিতে অনুবাদ করা. + +কাস্টম প্রম্পটগুলো পুরো সিস্টেম প্রম্পটকে প্রতিস্থাপন করে না। এগুলো Notemd যা পার্স করার জন্য নির্ভর করে এমন কাঠামোগত আউটপুট ফরম্যাট (যেমন `CONCEPT:` লাইন, উইকি-লিঙ্ক সিনট্যাক্স) বজায় রেখে **টাস্ক-নির্দিষ্ট ইনস্ট্রাকশন অংশটিকে** ওভাররাইড বা অগমেন্ট করে. + +## এটি কীভাবে কাজ করে + +### প্রম্পট আর্কিটেকচার + +প্রতিটি Notemd টাস্ক একই প্রম্পট স্ট্রাকচার অনুসরণ করে: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **বেস সিস্টেম প্রম্পট** -- অ্যাসিস্ট্যান্টের পার্সোনাকে নির্ধারণ করে। এটি ওভাররাইড করা যায় না। +2. **ফোকাসড লার্নিং ডোমেইন** -- `Relevant Fields: [medicine / law / computer science / ...]` কে সামনে যোগ করে স্কোপকে সীমাবদ্ধ করে। এটি একটি সেটিংস টগল, কোনো রৌদ্র প্রম্পট নয়। +3. **কাস্টম টাস্ক প্রম্পট** -- ডিফল্ট টাস্ক ইনস্ট্রাকশনগুলোকে প্রতিস্থাপন করে (যেমন কী ধরনের কনসেপ্ট এক্সট্রাক্ট করতে হবে, কতটা আগ্রেসিভভাবে লিঙ্ক করতে হবে)। +4. **আউটপুট ফরম্যাট** -- কাঠামোগত নিয়মসমূহ (`CONCEPT:` লাইন, উইকি-লিঙ্ক ফরম্যাট)। Notemd দ্বারা সর্বদা যোগ করা হয় যাতে পার্স করা যায়। +5. **কন্টেন্ট** -- আসল নোট টেক্সট, যা রানটাইমে `{{content}}` এর মাধ্যমে প্রতিস্থাপিত হয়। + +### প্রম্পট ভেরিয়েবলস + +ভেরিয়েবলগুলো এক্সিকিউশন সময়ে প্রতিস্থাপিত হয়। উপলব্ধ ভেরিয়েবলগুলো টাস্ক অনুযায়ী ভিন্ন হয়: + +| Variable | কাজসমূহ | যা দিয়ে প্রতিস্থাপিত | +|----------|-------|---------------| +| `{{content}}` | সব | নোট বা নির্বাচিত টেক্সট | +| `{{concept}}` | কনসেপ্ট নোট টেমপ্লেট | বের করা কনসেপ্টের নাম | +| `{{description}}` | কনসেপ্ট নোট টেমপ্লেট | LLM-জেনারেটেড কনসেপ্ট বিবরণ | +| `{{backlinks}}` | কনসেপ্ট নোট টেমপ্লেট | লিঙ্কসহ সোর্স নোটগুলির তালিকা | +| `{{date}}` | কনসেপ্ট নোট টেমপ্লেট | বর্তমান তারিখ (YYYY-MM-DD) | +| `{{language}}` | অনুবাদ | লক্ষ্য আউটপুট ভাষা | +| `{{source}}` | কনসেপ্ট নোট টেমপ্লেট | সোর্স নোটের বেসনেম | + +### ফোকাসড লার্নিং ডোমেইন + +ফোকাসড লার্নিং ফিচারটি হলো ডোমেইন স্কোপিংয়ের জন্য একটি শর্টকাট। আপনার ক্ষেত্রকে উল্লেখকারী একটি কাস্টম প্রম্পট লেখার পরিবর্তে, আপনি সেটিংসে `focusedLearningDomain` সেট করেন: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +এটি এক্সট্রাকশন প্রম্পটের সামনে `Relevant Fields: [medicine]` যোগ করে, ফলে LLM ডোমেইন-সংশ্লিষ্ট ধারণাগুলোকে অগ্রাধিকার দেয় এবং সাধারণ ধারণাগুলোকে দমন করে। এটি একটি পূর্ণাঙ্গ কাস্টম প্রম্পটের তুলনায় হালকা এবং সমস্ত এক্সট্রাকশন টাস্কে কাজ করে. + +## কনফিগারেশন + +| সেটিং | ডিফল্ট | প্রভাব | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | ডিফল্ট ‘add-links’ টাস্ক প্রম্পটকে ওভাররাইড করুন | +| `customExtractConceptsPrompt` | `''` | ডিফল্ট কনসেপ্ট এক্সট্রাকশন প্রম্পটকে ওভাররাইড করুন | +| `customResearchPrompt` | `''` | ডিফল্ট ‘research + summarize’ প্রম্পটকে ওভাররাইড করুন | +| `customTranslatePrompt` | `''` | ডিফল্ট ট্রান্সলেশন প্রম্পটকে ওভাররাইড করুন | +| `customDiagramPrompt` | `''` | ডিফল্ট ডায়াগ্রাম জেনারেশন প্রম্পটকে ওভাররাইড করুন | +| `focusedLearningDomain` | `''` | এক্সট্রাকশন ও লিঙ্কিং প্রম্পটগুলোর সামনে ডিসিপ্লিন কনটেক্সট যোগ করুন | +| `extractConceptsMinimalTemplate` | `true` | শুধুমাত্র টাইটেল-ভিত্তিক কনসেপ্ট নোট টেমপ্লেট ব্যবহার করুন (এটি `{{concept}}` টেমপ্লেট স্কোপকে প্রভাবিত করে) | +| `customConceptNoteTemplate` | `''` | পূর্ণ ভেরিয়েবল সাপোর্টসহ কনসেপ্ট নোট ফাইল টেমপ্লেটকে ওভাররাইড করুন | + +**যখন একটি কাস্টম প্রম্পট ফিল্ড খালি থাকে, তখন অন্তর্নির্মিত ডিফল্ট প্রম্পটটি ব্যবহৃত হয়।** + +## উদাহরণ + +আপনি একজন চিকিৎসা গবেষক যিনি ক্লিনিক্যাল ট্রায়াল নোট থেকে ধারণা বের করছেন। ডিফল্ট প্রম্পটটি চিকিৎসা শব্দগুলোর পাশাপাশি সাধারণ বিশেষ্যগুলোও বের করে, যা আপনার কনসেপ্ট ফোল্ডারকে জটিল করে দেয়. + +**সমাধান:** একটি ফোকাসড লার্নিং ডোমেইন এবং একটি কাস্টম এক্সট্রাকশন প্রম্পট সেট করুন. + +1. `focusedLearningDomain` কে `medicine` এ সেট করুন +2. `customExtractConceptsPrompt` কে নিম্নরূপে সেট করুন: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +এখন যখন আপনি একটি ক্লিনিক্যাল নোটে "Extract concepts" চালান, তখন LLM নিম্নলিখিত ফলাফল উৎপন্ন করে: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +ডিফল্ট আচরণের বিপরীতে, যেখানে "hospital" বা "month"-এর মতো অবাঞ্ছিত সাধারণ শব্দগুলোও বের হতে পারে. + +## টিপস + +- **পূর্ণাঙ্গ কাস্টম প্রম্পট লেখার আগে ফোকাসড লার্নিং ডোমেইন দিয়ে শুরু করুন**। একটি মাত্র সেটিংয়ের মাধ্যমে এটি 80% ইউজ কেস কভার করে. +- **আউটপুট ফরম্যাট বজায় রাখুন** -- কাস্টম প্রম্পট থেকে "one per line" বা "CONCEPT: prefix"-এর মতো ফরম্যাট নির্দেশাবলী কখনও অপসারণ করবেন না। Notemd-এর পার্সার এগুলোর উপর নির্ভরশীল. +- **প্রথমে একটি নোট দিয়ে পরীক্ষা করুন** -- কাস্টম প্রম্পটগুলো এক্সট্রাকশনের বিস্তৃতির উপর অপ্রত্যাশিত প্রভাব ফেলতে পারে। ব্যাচ প্রসেসিং করার আগে একটি নোটে যাচাই করুন. +- **প্রম্পটগুলো সংক্ষিপ্ত রাখুন** -- অতিরিক্ত দীর্ঘ কাস্টম প্রম্পটগুলো টোকেন ব্যবহার করে ফেলে এবং মডেলের ফোকাসকে দুর্বল করতে পারে. + +--- + +## পরবর্তী ধাপসমূহ + +- [Wiki-Links](/docs/features/wiki-links) -- add-links প্রম্পট কাস্টমাইজ করলে কী লিঙ্ক হয় +- [Concept Notes](/docs/features/concept-notes) -- কনসেপ্ট নোট টেমপ্লেট এবং `{{concept}}` ভেরিয়েবল +- [Batch Processing](/docs/advanced/batch-processing) -- পুরো ফোল্ডারগুলোতে কাস্টম প্রম্পট প্রয়োগ করুন +- [Troubleshooting](/docs/advanced/troubleshooting) -- কাস্টম প্রম্পটের কারণে অপ্রত্যাশিত আউটপুট হলে সমস্যা সমাধান করুন diff --git a/website/i18n/bn/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/bn/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..59c2e662 --- /dev/null +++ b/website/i18n/bn/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "সমস্যা সমাধান" +description: "সাধারণ সমস্যা ও তার সমাধান" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# সমস্যা সমাধান + +<TLDR> +**বেশিরভাগ Notemd সমস্যা চারটি বিভাগে পড়ে: API মূল সমস্যাগুলি, নেটওয়ার্ক সংযোগ, অথেনটিকেশন ত্রুটি (401/403), এবং রেট লিমিট (429)।** অন্তর্নির্মিত কানেকশন টেস্ট ও ডায়াগনস্টিক্স প্যানেল দ্রুত মূল কারণটি চিহ্নিত করে। এই পৃষ্ঠাটি প্রতিটি সাধারণ ত্রুটি বার্তা, তার কারণ এবং সমাধান নিয়ে আলোচনা করে। যেসব সমস্যা এখানে তালিকাভুক্ত নেই, সেগুলি ডায়াগনস্টিক্স আউটপুটসহ GitHub Issues-এ রিপোর্ট করুন. + +এটি [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge)-এর অংশ। +</TLDR> + +## সংক্ষিপ্ত বিবরণ + +Notemd বাহ্যিক সেবাগুলির উপর নির্ভরশীল -- LLM প্রদানকারী ও অনুসন্ধান API সার্ভিসগুলি -- তাই বেশিরভাগ সমস্যার উৎপত্তি প্লাগইনটির বাইরেই হয়। সেটিংসের ডায়াগনস্টিক্স প্যানেলটি শেষ API কলটির একটি কাঠামোবদ্ধ দৃশ্য প্রদান করে, যার মধ্যে রয়েছে রিকোয়েস্ট URL, রেসপন্স স্ট্যাটাস এবং ত্রুটি বডি। আরও তদন্ত করার আগে সর্বদা প্রথমে এটি পরীক্ষা করুন. + +## কীভাবে এটি কাজ করে: ডায়াগনস্টিক্স + +### কানেকশন টেস্ট + +প্রতিটি প্রদানকারী কনফিগারেশন বিভাগে একটি **“Test Connection”** বাটন রয়েছে। এটি ক্লিক করলে একটি ন্যূনতম API রিকোয়েস্ট (সাধারণত একটি মডেল তালিকা বা সংক্ষিপ্ত কমপ্লিশন) পাঠানো হয় এবং সাফল্য বা নির্দিষ্ট HTTP ত্রুটি সম্পর্কে জানানো হয়। এটাই আপনার API কী ও বেস URL সঠিক আছে কিনা যাচাই করার সবচেয়ে দ্রুত উপায়. + +### ডায়াগনস্টিক্স প্যানেল + +**Settings --> Notemd --> Diagnostics** এ নিম্নলিখিতগুলি দেখানো হয়: + +| ফিল্ড | কন্টেন্ট | +|-------|---------| +| শেষ প্রদানকারী | কোন প্রদানকারীকে সর্বশেষ কল করা হয়েছিল | +| শেষ মডেল | কোন মডেলটিকে সর্বশেষ কল করা হয়েছিল | +| শেষ অবস্থা | HTTP স্ট্যাটাস কোড অথবা ট্রান্সপোর্ট ত্রুটি | +| শেষ ত্রুটি | API থেকে প্রাপ্ত কাঁচা ত্রুটি বার্তা | +| শেষ রিকোয়েস্ট URL | শেষ রিকোয়েস্টের পূর্ণ URL (API কী মুছে দেওয়া হয়েছে) | +| শেষ রেসপন্স বডি | সংক্ষিপ্ত রেসপন্স বডি (প্রথম 500 অক্ষর) | + +GitHub-এ সমস্যা রিপোর্ট করার সময় পূর্ণ ডায়াগনস্টিক্স আউটপুট কপি করুন. + +## সাধারণ ত্রুটিসমূহ + +### API কী অবৈধ বা অনুপস্থিত + +**লক্ষণ:** HTTP 401 অথবা "ভুল API কী প্রদান করা হয়েছে" + +**কারণ:** API কীটি অনুপস্থিত, এতে হোয়াইটস্পেস রয়েছে, অথবা এটি অন্য কোনো প্রোভাইডারের হতে পারে. + +**সমাধান:** +1. নিশ্চিত করুন যে কীটির শুরু ও শেষে কোনো স্পেস নেই +2. নিশ্চিত করুন যে কীটি নির্বাচিত প্রোভাইডারের সাথে মিলে যায় (একটি OpenAI কী Anthropic-এর সাথে কাজ করবে না) +3. আপনার অ্যাকাউন্টে ক্রেডিট বা সক্রিয় সাবস্ক্রিপশন আছে কিনা তা যাচাই করুন +4. যাচাই করার জন্য **"Test Connection"**-এ ক্লিক করুন + +### নেটওয়ার্ক / কানেকশন ত্রুটি + +**লক্ষণ:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**কারণ:** আপনার মেশিন থেকে API এন্ডপয়েন্টটি অ্যাক্সেস করা যাচ্ছে না. + +**সমাধান:** +1. আপনার ইন্টারনেট কানেকশন যাচাই করুন +2. যদি প্রক্সি বা ফায়ারওয়ালের পিছনে থাকেন, তবে API ডোমেইনটি ব্লক হয়নি তা নিশ্চিত করুন +3. Ollama-এর জন্য: `ollama serve` চালু আছে কিনা নিশ্চিত করুন (`ollama list` থেকে models রিটার্ন হওয়া উচিত) +4. LMStudio-এর জন্য: `localhost:1234`-এ সার্ভারটি চালু আছে কিনা নিশ্চিত করুন +5. অন্য কোনো ট্রান্সপোর্ট ব্যবহার করে দেখুন -- মোবাইল ব্যবহারকারীদের `requestUrl` ট্রান্সপোর্টটি সক্রিয় আছে তা নিশ্চিত করা উচিত +6. অস্থায়ী ত্রুটিগুলোর জন্য স্বয়ংক্রিয় পুনরাবৃত্তির জন্য `enableStableApiCall` সক্রিয় করুন + +### 403 Forbidden + +**লক্ষণ:** HTTP 403 + +**কারণ:** আপনার API কীটি বৈধ হলেও অনুরোধকৃত রিসোর্সের জন্য অনুমতি নেই. + +**সমাধান:** +1. কিছু মডেলের জন্য বিশেষ অ্যাক্সেস প্রয়োজন (উদাহরণস্বরূপ, Azure-এর মাধ্যমে GPT-4-এর জন্য একটি ডিপ্লয়মেন্ট নাম দরকার) +2. কিছু প্রদানকারী প্ল্যান স্তর অনুযায়ী মডেলগুলোকে সীমিত করে -- আপনার অ্যাকাউন্ট পরীক্ষা করুন +3. আঞ্চলিক সীমাবদ্ধতা প্রযোজ্য হতে পারে (কিছু চীনা প্রদানকারী আন্তর্জাতিক IP-গুলোকে ব্লক করে এবং উল্টোটাও হয়) +4. নিশ্চিত হওয়া উচিত যে মডেলের নামটি সঠিকভাবে লেখা হয়েছে (উদাহরণস্বরূপ, আপনার প্ল্যানে যখন শুধুমাত্র মিনি মডেল অনুমোদিত থাকে তখন `gpt-4o` নয়, `gpt-4o-mini` ব্যবহার করবেন) + +### রেট লিমিট (429) + +**লক্ষণ:** HTTP 429 অথবা "রেট লিমিট অতিক্রান্ত" + +**কারণ:** সংক্ষিপ্ত সময়ের মধ্যে অতিরিক্ত সংখ্যক রিকোয়েস্ট করা হয়েছে. + +**সমাধান:** +1. `batchConcurrency` কে `1` অথবা `2` এ কমিয়ে আনুন +2. পুনরায় চেষ্টা করার আগে কয়েক মিনিট অপেক্ষা করুন +3. আপনার প্ল্যান স্তরের জন্য আপনার প্রদানকারীর রেট লিমিট সংক্রান্ত নির্দেশিকা পরীক্ষা করুন +4. ব্যাকঅফ সহ স্বয়ংক্রিয় পুনরায় চেষ্টার জন্য `enableStableApiCall` সক্রিয় করুন +5. উচ্চতর লিমিটযুক্ত প্রদানকারীতে স্বিচ করার কথা বিবেচনা করুন (DeepSeek, Ollama) + +### মডেল পাওয়া যায়নি + +**লক্ষণ:** "মডেল পাওয়া যায়নি" অথবা HTTP 404 + +**কারণ:** নির্বাচিত প্রদানকারীর কাছে মডেলের নামটি অস্তিত্বহীন। + +**সমাধান:** +1. আপনার প্রোভাইডারের জন্য উপলব্ধ সমস্ত মডেল দেখতে **"Get Model List"**-এ ক্লিক করুন +2. কিছু মডেলের নাম সময়ের সাথে পরিবর্তিত হয় -- প্রোভাইডারের ডকুমেন্টেশনে বর্তমান নামটি যাচাই করুন +3. Ollama-এর জন্য: পুল করা মডেলগুলো দেখতে `ollama list` চালান; শুধুমাত্র ডাউনলোড করা মডেলগুলোই উপলব্ধ + +### কোনো লিঙ্ক/কোনো কনসেপ্ট তৈরি হয়নি + +**লক্ষণ:** কমান্ডটি চলে কিন্তু কোনো আউটপুট পাওয়া যায় না + +**কারণ:** LLM একটি খালি বা অপারেট করা যায় না এমন রেসপন্স ফেরত দিয়েছে. + +**সমাধান:** +1. প্রকৃত LLM রেসপন্স দেখার জন্য ডায়াগনস্টিক্স প্যানেলটি পরীক্ষা করুন +2. আরও শক্তিশালী একটি মডেল চেষ্টা করুন (কিছু ছোট মডেল স্ট্রাকচারড আউটপুট নিয়ে সমস্যায় পড়ে) +3. নোটটিতে যথেষ্ট বিষয়বস্তু থাকছে তা নিশ্চিত করুন (>50 শব্দ) +4. পরস্পর বিরোধী নির্দেশাবলী থাকলে আপনার কাস্টম প্রম্পটটি পর্যালোচনা করুন +5. এটি খুব বেশি কঠোরভাবে ফিল্টার করছে কিনা দেখতে অস্থায়ীভাবে সিনোনিম সাপ্রেশন নিষ্ক্রিয় করুন + +### Doubao এন্ডপয়েন্ট ID অনুপস্থিত + +**লক্ষণ:** ByteDance Doubao প্রোভাইডার ব্যবহার করার সময় ত্রুটি + +**কারণ:** Doubao-এর জন্য মডেলের নামের পরিবর্তে একটি Ark এন্ডপয়েন্ট ID (ফরম্যাট: `ep-xxxxxxxx-xxxx-xxxx`) প্রয়োজন. + +**সংশোধন:** Volcengine কনসোল থেকে আপনার প্রকৃত এন্ডপয়েন্ট ID দিয়ে ডিফল্ট প্লেসহোল্ডার মডেলটি প্রতিস্থাপন করুন। + +## কনফিগারেশন + +| ডায়াগনস্টিক সেটিং | অবস্থান | উদ্দেশ্য | +|--------------------|----------|---------| +| **কানেকশন পরীক্ষা করুন** | Settings --> Provider বিভাগ | API কী এবং সংযোগ যোগ্যতা যাচাই করুন | +| **মডেল তালিকা পাওয়া** | Settings --> Provider বিভাগ | কোন মডেলগুলো অ্যাক্সেসযোগ্য তা নিশ্চিত করুন | +| `enableStableApiCall` | Settings --> Advanced | ব্যাকঅফ সহ রিট্রাই সক্রিয় করুন | +| `batchConcurrency` | Settings --> Batch | রেট লিমিট এড়াতে প্যারালালিজম নিয়ন্ত্রণ করুন | + +## সমস্যা রিপোর্ট করার উপায় + +যদি আপনার সমস্যা উপরে উল্লিখিত না থাকে: + +1. Open **Settings --> Notemd --> Diagnostics** +2. Copy the full diagnostics output +3. Open a GitHub Issue at [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +4. Include: Obsidian version, Notemd version, provider, model, diagnostics output, and steps to reproduce +5. Redact your API key from any shared logs + +--- + +## পরবর্তী ধাপসমূহ + +- [LLM Providers](/docs/providers/overview) -- Full provider configuration reference +- [Batch Processing](/docs/advanced/batch-processing) -- Concurrency and retry settings for large operations +- [Custom Prompts](/docs/advanced/custom-prompts) -- Fix unexpected LLM behavior by adjusting prompts diff --git a/website/i18n/bn/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/bn/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..31521763 --- /dev/null +++ b/website/i18n/bn/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "প্রায়শই জিজ্ঞাসিত প্রশ্নসমূহ" +description: "Notemd ইনস্টলেশন, বৈশিষ্ট্য এবং ব্যবহার সম্পর্কিত সাধারণ প্রশ্নসমূহ" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# প্রায়শই জিজ্ঞাসিত প্রশ্নসমূহ + +<TLDR> +**Notemd সংক্রান্ত সবচেয়ে সাধারণ প্রশ্নগুলোর দ্রুত উত্তর।** এতে ইনস্টলেশন (৫ মিনিটের সেটআপ), ৩০+ LLM প্রদানকারীর সমর্থন, লোকাল/ক্লাউড মডেল বিকল্প, ওয়ান-ক্লিক ওয়ার্কফ্লো, বহুভাষিক UI (২১টি ভাষা), উইকি-লিঙ্কিং অটোমেশন, গবেষণা সংযোজন, PDF রিডিং ওয়ার্কফ্লো, ডায়াগ্রাম তৈরি এবং ওপেন-সোর্স লাইসেন্সিং অন্তর্ভুক্ত রয়েছে। Ollama এর সাহায্যে সমস্ত বৈশিষ্ট্য অফলাইনেও কাজ করে. +</TLDR> + +--- + +## ইনস্টলেশন ও সেটআপ + +### Obsidian-এ Notemd কীভাবে ইনস্টল করব? + +Open Obsidian **Settings → Community Plugins → Browse** → search **"Notemd"** → **Install** → **Enable**. + +**প্রয়োজনীয়তাসমূহ:** +- Obsidian 0.15.0+ +- Desktop (Windows, macOS, Linux) এবং Mobile (iOS, Android)-এ সমর্থিত + +**ম্যানুয়াল ইনস্টলেশন:** +1. [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) থেকে `main.js`, `styles.css`, `manifest.json` ডাউনলোড করুন +2. সেগুলোকে `<your-vault>/.obsidian/plugins/notemd/`-এ রাখুন +3. Obsidian রিলোড করুন এবং প্লাগইনটি সক্রিয় করুন + +**পরিসংখ্যান:** ৪k+ ডাউনলোড, ৪৪টি রিলিজ, MIT লাইসেন্সযুক্ত. + +--- + +## LLM Configuration + +### Notemd কোন কোন LLM প্রদানকারীদের সমর্থন করে? + +Notemd **30+ প্রদানকারী** সমর্থন করে: + +**ক্লাউড প্রদানকারীসমূহ:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonnet, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**চীন-কেন্দ্রিক:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**স্থানীয়/স্ব-হোস্টেড:** +- Ollama +- LM Studio +- যেকোনো OpenAI-সামঞ্জস্যপূর্ণ এন্ডপয়েন্ট + +**গেটওয়েসমূহ:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models, Fireworks, LiteLLM, Nebius, Cerebras +- Hugging Face, Vercel AI Gateway, Requesty + +### Can Notemd work with local LLMs? + +**হ্যাঁ, সম্পূর্ণভাবে সমর্থিত।** Notemd নিম্নলিখিতগুলোর সাথে কাজ করে: +- **Ollama** (নেটিভ ইন্টিগ্রেশন) +- **LM Studio** (OpenAI-সামঞ্জস্যপূর্ণ এন্ডপয়েন্টের মাধ্যমে) +- **vLLM, LocalAI, text-generation-webui** (OpenAI-সামঞ্জস্যপূর্ণ মোডের মাধ্যমে) + +সমস্ত কাজ লোকাল মডেলগুলোর সাথে কাজ করে: লিঙ্কিং, ধারণা উৎপাদন, অনুবাদ, গবেষণা এবং ডায়াগ্রাম উৎপাদন. + +**মিক্স অ্যান্ড ম্যাচ উদাহরণ:** +- Ollama (লোকাল) লিঙ্কিংয়ের জন্য → দ্রুত, গোপনীয়, বিনামূল্যে +- OpenAI গবেষণার জন্য → উচ্চ মান, ওয়েব সার্চ ইন্টিগ্রেশন +- Gemini অনুবাদের জন্য → মাল্টিমোডাল সমর্থন + +### আমি কীভাবে বিভিন্ন কাজের জন্য বিভিন্ন মডেল কনফিগার করব? + +**Notemd Settings**-এ, প্রতিটি কাজের জন্য স্বতন্ত্র প্রোভাইডার/মডেল সিলেক্টর রয়েছে: + +| কাজ | উদাহরণ কনফিগারেশন | +|------|----------------------| +| **লিঙ্কিং** | DeepSeek (দ্রুত, সস্তা) | +| **কনসেপ্ট জেনারেশন** | Claude Opus (উচ্চ গুণমান) | +| **রিসার্চ** | Perplexity অথবা GPT-4o (web-grounded) | +| **অনুবাদ** | Gemini Flash (মাল্টিমোডাল) | +| **ডায়াগ্রাম জেনারেশন** | Ollama (স্থানীয়, ব্যক্তিগত) | + +এই প্রতি-টাস্ক অপ্টিমাইজেশনটি গতি, খরচ এবং গুণমানের মধ্যে ভারসাম্য বজায় রাখে. + +--- + +## মূল বৈশিষ্ট্যসমূহ + +### paper reading-এর জন্য Notemd কীভাবে ChatGPT থেকে আলাদা? + +| ডাইমেনশন | ChatGPT | Notemd | +|-----------|---------|--------| +| **আউটপুট অবস্থান** | Chat history (ephemeral) | Obsidian ভল্ট (স্থায়ী ফাইলসমূহ) | +| **ফলাফলের ফরম্যাট** | টেক্সট উত্তর | উইকি-লিঙ্ক, ধারণা নোট, ডায়াগ্রাম, অনুবাদ | +| **দীর্ঘমেয়াদী মূল্য** | সেশন শেষ হওয়ার পর অদৃশ্য হয়ে যায় | জ্ঞান ভাণ্ডারে সঞ্চিত হয়। | +| **পুনর্ব্যবহারযোগ্যতা** | আবার কোয়েরি করতে হবে। | ফাইলগুলো থেকে যায়, লিঙ্ক, বিকশিত হয় | + +**ChatGPT ব্যবহার করুন:** দ্রুত প্রশ্নোত্তর, একবারমাত্র ব্যাখ্যা +**Notemd ব্যবহার করুন:** সপ্তাহ/মাসের পরিসরে একটি স্থায়ী, কাঠামোবদ্ধ জ্ঞানভাণ্ডার গড়ে তোলার জন্য + +### Notemd কীভাবে নোটগুলিতে উইকি-লিঙ্ক যোগ করে? + +**প্রক্রিয়া:** +1. আপনি একটি নোটে “Process file (add links)” চালান। +2. Notemd আপনার কনফিগার করা LLM-এ টেক্সটটি পাঠায়। +3. দ্য LLM কনটেক্সটের মধ্যে প্রধান ধারণাগুলোকে চিহ্নিত করে +4. Notemd প্রতিটি ধারণা উল্লেখের সময় `[[wiki-links]]` যোগ করে +5. ইচ্ছামতো, এটি আপনি নির্দিষ্ট করা ফোল্ডারে স্বয়ংক্রিয়ভাবে কনসেপ্ট নোট তৈরি করে + +**বৈশিষ্ট্যসমূহ:** +- সিনোনিম দমন ("transformer" ও "transformers" এর মতো ডুপ্লিকেটগুলো এড়ায়) +- কনসেপ্ট নোটগুলো থেকে সোর্সে ব্যাকলিঙ্ক +- নাম পরিবর্তন/মুছে ফেলার সময় লিঙ্কের অখণ্ডতা +- পিউর এক্সট্রাকশন মোড (মূল ডেটা না পরিবর্তনে ধারণাগুলো বের করে) + +### Notemd ওয়ান-ক্লিক ওয়ার্কফ্লো কী? + +**ওয়ান-ক্লিক ওয়ার্কফ্লোস** একাধিক অ্যাকশনকে একটি **একক সাইডবার বাটন**-এ সংযুক্ত করে. + +**ডিফল্ট ওয়ার্কফ্লো:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**ফলাফল:** একবার ক্লিক করলে নিম্নলিখিতগুলো চালানো হয়: +1. বর্তমান নোটে উইকি-লিঙ্ক যোগ করা +2. নতুন শব্দগুলোর জন্য কনসেপ্ট নোট তৈরি করা +3. গবেষণা ও পটভূমি যোগ করা +4. Mermaid ডায়াগ্রামে সংকুচিত করা + +**কাস্টম ওয়ার্কফ্লো:** DSL ফরম্যাট ব্যবহার করে Settings-এ আপনার নিজস্ব ওয়ার্কফ্লো সংজ্ঞায়িত করুন। প্রতিটি ওয়ার্কফ্লো একটি পুনর্ব্যবহারযোগ্য sidebar বাটনে পরিণত হয়। + +### Notemd কীভাবে Copilot বা Smart Connections-এর সাথে তুলনা হয়? + +এই প্লাগইনগুলো ভিন্ন ভিন্ন সমস্যার সমাধান করে: + +- **Copilot** — কনভারসেশন-ফার্স্ট। আপনি আপনার নোটগুলো নিয়ে একটি AI-এর সাথে চ্যাট করেন। AI-এর উত্তরগুলো চ্যাট প্যানেলেই থাকে; সেগুলো আপনার ভল্টকে পরিবর্তন করে না। +- **Smart Connections** — ডিসকভারি-ফার্স্ট। এটি এম্বেডিং ব্যবহার করে অর্থগতভাবে সাদৃশ্যপূর্ণ নোটগুলো খুঁজে বের করে। এটি কোনো কন্টেন্ট তৈরি বা পরিবর্তন করে না। +- **Notemd** — রাইট-ফার্স্ট। AI আপনার নোটগুলো প্রক্রিয়া করে এবং কাঠামোগত ফলাফল (wiki-লিঙ্ক, কনসেপ্ট নোট, গবেষণা, ডায়াগ্রাম, অনুবাদ) সরাসরি আপনার ভল্টে স্থায়ী ফাইল হিসেবে লিখে দেয়। + +| আপনার প্রয়োজনীয়তা | সুপারিশকৃত প্লাগইন | +|----------------|-------------------| +| নোট নিয়ে AI-এর সাথে চ্যাট করা | Copilot | +| সাদৃশ্যপূর্ণ/সম্পর্কিত নোট খুঁজে বের করা | Smart Connections | +| স্বয়ংক্রিয়ভাবে wiki-লিঙ্ক যোগ করা এবং একটি নলেজ গ্রাফ তৈরি করা | **Notemd** | +| ব্যাকলিঙ্কসহ কনসেপ্ট নোট তৈরি করা | **Notemd** | +| নোটের বিষয়বস্তু থেকে ডায়াগ্রাম তৈরি করা | **Notemd** | +| একটি বিষয় নিয়ে গবেষণা করুন এবং সারসংক্ষেপ যোগ করুন | **Notemd** | + +তিনটি একসাথে ব্যবহার করা যেতে পারে — এগুলো প্রতিযোগিতা না করে পরস্পরকে পরিপূরক হয়। + +--- + +## Research & Translation + +### Notemd গবেষণার জন্য কোন সার্চ সার্ভিসগুলো কাজ করে? + +| Service | API Key Required | Quality | Notes | +|---------|-----------------|---------|-------| +| **Tavily** | Yes | High | Recommended, AI-optimized search | +| **DuckDuckGo** | No | Experimental | কোনো সেটআপ দরকার নেই, গুণমান কম | + +**"Research & summarize" কীভাবে কাজ করে:** +1. আপনি একটি বিষয় নির্বাচন করতে পারেন অথবা বর্তমান নোটে এটি চালাতে পারেন +2. Notemd সার্চ সার্ভিসকে কোয়েরি পাঠায় +3. ফলাফল → LLM সারসংক্ষেপ +4. উৎসের তথ্যসূচনা সহ সারসংক্ষেপটি আপনার নোটে যুক্ত হয় + +**ফলাফল:** আপনার ভল্টে স্থায়ী গবেষণা রেকর্ড থাকে, ব্রাউজার ট্যাবে নয়. + +### Notemd চীনা বা অন্যান্য ভাষা সমর্থন করে কি? + +**UI ভাষাসমূহ:** ২১+ ভাষা সমর্থিত +- ইংরেজি, 中文 (简体), 中文 (繁體), 日本語, 한국어 +- আরবি, জার্মান, ফরাসি, স্প্যানিশ, রাশিয়ান, পর্তুগিজ, ইতালিয়ান +- হিন্দি, বাংলা, থাই, ভিয়েতনামি, তুর্কি, পোলিশ, চেক এবং আরও অনেক + +**টাস্ক আউটপুট ভাষা:** স্বাধীনভাবে কনফিগার করা যায় +- UI চীনা ভাষায় + আউটপুট ইংরেজিতে: ✅ +- UI ইংরেজিতে + আউটপুট চীনা ভাষায়: ✅ + +**ব্যবহারের ক্ষেত্র:** দ্বিভাষিক গবেষকরা প্রকাশনার জন্য ইংরেজি নোট তৈরি করার সময় UI কে তাদের মাতৃভাষায় বজায় রাখতে পারেন. + +--- + +## PDF এবং একাডেমিক ওয়ার্কফ্লো + +### আমি পেপার/PDF পড়ার জন্য Notemd ব্যবহার করতে পারি কি? + +**হ্যাঁ।** ওয়ার্কফ্লো: +1. [MinerU](https://github.com/opendatalab/MinerU) ব্যবহার করে **PDF → Markdown**-এ রূপান্তর করুন (একাডেমিক পেপারের জন্য সুপারিশকৃত) +2. Obsidian-এ Markdown ফাইলটি খুলুন +3. Notemd টাস্কগুলো চালান: + - **মূল শব্দগুলোর জন্য wiki-লিঙ্ক যোগ করুন** + - **অপরিচিত পরিভাষার জন্য কনসেপ্ট নোট তৈরি করুন** + - **কাস্টম প্রশ্নের মাধ্যমে মূল টেক্সট বের করুন** (যেমন, "সীমাবদ্ধতাগুলো কী?") + - **উদ্ধৃত পদ্ধতি/ডেটাসেটের জন্য গবেষণা পটভূমি** সংগ্রহ করুন + - **কঠিন অংশগুলো অনুবাদ করুন** + - **কাঠামোগত বোঝাপড়ার জন্য Mermaid ডায়াগ্রামে সংকুচিত করুন** + +**Version 1.9.1+:** TOC সমর্থনসহ অধ্যায় কাঠামো বের করা + +**ফলাফল:** আপনার পেপার পড়াটি আপনার ভল্টে একটি কাঠামোবদ্ধ, লিঙ্কযুক্ত জ্ঞান আর্টিফ্যাক্টে পরিণত হয়। + +--- + +## ডায়াগ্রাম ও ভিজ্যুয়ালাইজেশন + +### Notemd কী ধরনের গ্রাফ/ডায়াগ্রাম তৈরি করতে পারে? + +| ধরন | সমর্থন | বৈশিষ্ট্যসমূহ | +|------|---------|----------| +| **Mermaid** | পূর্ণ | ফ্লোচার্ট, সিকোয়েন্স, ক্লাস, স্টেট, ER, Gantt, সিনট্যাক্স অটো-ফিক্স, ব্যাচ ভ্যালিডেশন | +| **JSON Canvas** | পূর্ণ | Obsidian নেটিভ ক্যানভাস লেআউটস | +| **Vega-Lite** | পূর্ণ | ডেটা চার্ট, টাইম সিরিজ, বার, স্ক্যাটার, কাস্টমাইজেবল | +| **HTML** | ফলব্যাক | অসমর্থিত ডায়াগ্রাম ধরনগুলির জন্য | +| **Editable HTML/SVG** | স্পষ্ট লক্ষ্য | সেমান্টিক Draw.io-স্টাইল অ্যানোটেশনসহ স্ব-সম্পূর্ণ ইনলাইন SVG | +| **Draw.io / Drawnix আর্টিফ্যাক্টস** | এক্সপোর্ট বাউন্ডারি | `SemanticFigureModel` থেকে নির্ধারণযোগ্য XML/JSON; কোনো এডিটর রানটাইম নির্ভরতা নেই | + +**Mermaid অটো-ফিক্স:** ডিপ ডিবাগ মোড মেরামত করে: +- ভাঙা তীরগুলি (`-->`, `-.->`, `==>`) +- অবৈধ লেবেল, কমেন্ট +- সাবগ্রাফ সিনট্যাক্স ত্রুটি +- শেপ নোটেশন (`[`, `(`, `{`, `((`) +- লেবেলে পাইপ চরিত্র +- নোট অ্যাটাচমেন্ট + +**ওয়ার্কফ্লো:** +1. একটি নোটের উপর "Summarize as Mermaid diagram" চালান +2. মডালে প্রিভিউ +3. SVG বা PNG হিসেবে এক্সপোর্ট করুন +4. অথবা ভল্টে `.mmd` ফাইল হিসেবে সংরক্ষণ করুন + +--- + +## ওপেন সোর্স ও কমিউনিটি + +### Notemd কি বিনামূল্যে ও ওপেন সোর্স? + +**হ্যাঁ।** +- **লাইসেন্স:** MIT (উদার, বাণিজ্যিক ব্যবহার অনুমোদিত) +- **সোর্স কোড:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **কোনো পেইড টিয়ার নেই, কোনো ক্লাউড লক-ইন নেই, কোনো টেলিমেট্রি নেই** +- **কমিউনিটি:** 234+ GitHub স্টার, সক্রিয় Discord + +**আপনি মালিক হন:** +- আপনার ডেটা (আপনার ভল্টেই থাকে) +- আপনার ওয়ার্কফ্লো (প্রম্পট, মডেল, চেইন কাস্টমাইজ করুন) +- আপনার গোপনীয়তা (লোকাল LLM সহায়তা) + +**অবদান রাখুন:** পুল রিকোয়েস্ট স্বাগত। [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) দেখুন + +--- + +## সমস্যা সমাধান + +### আমার LLM কলগুলো ব্যর্থ হচ্ছে। আমি কী পরীক্ষা করব? + +1. **API কী বৈধ?** Settings → Provider Configuration দেখুন +2. **মডেলের নাম সঠিক?** Settings-এ “获取模型列表” (Get Model List) বাটন ব্যবহার করুন +3. **নেটওয়ার্ক অ্যাক্সেসযোগ্য?** কিছু প্রদানকারীর ক্ষেত্রে VPN প্রয়োজন +4. **রেট লিমিট?** প্রদানকারীর ড্যাশবোর্ড চেক করুন +5. **ডায়াগনস্টিক্স:** বিস্তারিত এরর লগের জন্য সেটিংসে "Connection Test" চালান + +### Notemd ধীর। আমি কীভাবে এটিকে দ্রুত করতে পারি? + +1. **দ্রুততর মডেল ব্যবহার করুন:** DeepSeek, Gemini Flash, GPT-4o-mini +2. **চাঙ্ক সাইজ কমান:** Settings → Smart Chunking → word count কমান +3. **প্যারালেল প্রসেসিং:** Settings → Batch Processing → concurrency বাড়ান +4. **লোকাল মডেল:** ওয়েব সার্চ না দরকার এমন কাজের জন্য Ollama ব্যবহার করুন + +### Notemd 100% অফলাইনে কাজ করতে পারে কি? + +**হ্যাঁ, Ollama দিয়ে।** API কী না থাকলে, ইন্টারনেট না থাকলে, কোনো ডেটা আপনার মেশিন থেকে বের হয় না: + +1. [Ollama](https://ollama.com) ইনস্টল করুন এবং `ollama serve` চালান +2. Notemd সেটিংসে, **Ollama** কে আপনার প্রদানকারী হিসেবে নির্বাচন করুন +3. একটি মডেল পুল করুন: `ollama pull llama3` (অথবা qwen2.5, gemma2 ইত্যাদি) +4. সমস্ত ফিচার কাজ করে: wiki-links, concept notes, translation, diagrams + +**DuckDuckGo research**-ও API কী ছাড়া কাজ করে (পরীক্ষামূলক গুণমান)। + +ক্লাউড প্রদানকারীদের সাথে (OpenAI, Anthropic, Google, DeepSeek ইত্যাদি), আপনার নোটের বিষয়বস্তু API ইনপুট হিসেবে পাঠানো হয়। ডেটা হ্যান্ডলিং সম্পর্কিত বিস্তারিত জানতে প্রতিটি প্রদানকারীর প্রাইভাসি পলিসি চেক করুন। + +### আমার ডেটা কি ক্লাউডে পাঠানো হয়? + +**এটি আপনার প্রদানকারীর উপর নির্ভর করে:** + +| প্রদানকারীর ধরন | ডেটা কি ক্লাউডে পাঠানো হয়? | নোটস | +|--------------|---------------------|-------| +| **Ollama (লোকাল)** | না | সবকিছু আপনার মেশিনেই থাকে | +| **LMStudio (লোকাল)** | না | Ollama-এর মতোই | +| **DeepSeek, OpenAI, ইত্যাদি** | হ্যাঁ | নোটের বিষয়বস্তু প্রক্রিয়াকরণের জন্য API ইনপুট হিসেবে পাঠানো হয় | +| **OpenRouter, AIHubMix** | হ্যাঁ | ক্লাউড প্রোভাইডারগুলিতে রাউট করে এমন গেটওয়ে | + +Notemd নিজেই **কোনো টেলিমেট্রি, কোনো অ্যানালিটিক্স, কোনো ব্যবহারকারী ডেটা** সংগ্রহ করে না। এই প্লাগইনটি সম্পূর্ণরূপে ওপেন সোর্স (MIT)। আপনার মেশিন থেকে বেরিয়ে যাওয়া একমাত্র ডেটা হলো যা আপনি স্পষ্টভাবে আপনার কনফিগার করা LLM প্রোভাইডারে পাঠান. + +### গবেষণার জন্য কোন Obsidian AI প্লাগইনটি সর্বোত্তম? + +এটি আপনার গবেষণা ওয়ার্কফ্লোর উপর নির্ভর করে: + +| প্রয়োজন | প্লাগইন | কারণ | +|------|--------|-----| +| সংশ্লিষ্ট পেপার/নোট খুঁজে পাওয়া | Smart Connections | সেমান্টিক সিমিলারিটি ডিসকভারি | +| আপনার সূত্রগুলি নিয়ে চ্যাট করা | Copilot | ভল্ট কনটেক্সটের সাথে কথোপকথন | +| কনসেপ্টগুলি স্বয়ংক্রিয়ভাবে লিঙ্ক করা + নোট তৈরি করা | **Notemd** | AI কনসেপ্টগুলি চিহ্নিত করে, লিঙ্ক যোগ করে, নোট তৈরি করে | +| ওয়েব গবেষণা + নোটে সারাংশ তৈরি করা | **Notemd** | Tavily/DuckDuckGo অনুসন্ধান → LLM সারাংশ → নোটে যুক্ত হবে | +| গবেষণা থেকে ডায়াগ্রাম তৈরি করুন | **Notemd** | নোটের বিষয়বস্তু থেকে Mermaid/Canvas/Vega-Lite | + +**সুপারিশকৃত কম্বিনেশন:** Smart Connections (আবিষ্কার) + Notemd (গঠন) + Copilot (আলোচনা). + +--- + +## সাহায্য পাওয়া + +- **ডকুমেন্টেশন:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **GitHub Issues:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **Sponsor:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/bn/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/bn/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..35d3796e --- /dev/null +++ b/website/i18n/bn/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "কনসেপ্ট নোটস" +description: "কনসেপ্ট নোটস তৈরি ও ব্যবস্থাপনা করুন — আপনার ভল্ট থেকে বের করা গুরুত্বপূর্ণ ধারণাগুলোর জন্য স্বতন্ত্র নোট" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# কনসেপ্ট নোটস + +<TLDR> +**Notemd আপনার নোটগুলো থেকে গুরুত্বপূর্ণ ধারণাগুলো বের করে স্বতন্ত্র কনসেপ্ট নোট ফাইল তৈরি করে।** LLM মূল শব্দগুলো চিহ্নিত করে, কনফিগার করা ফোল্ডারে প্রতিটি ধারণার জন্য একটি `.md` ফাইল তৈরি করে, এবং ইচ্ছামতো সোর্স নোটে ব্যাকলিঙ্ক যোগ করে। এটি সিনোনিম সাপ্রেশন, প্রতি-টাস্ক মডেল নির্বাচন, ফাইলনাম স্যানিটাইজেশন এবং ৪-ধাপী ডিডুপ্লিকেশন ইঞ্জিন সমর্থন করে। এটি [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge)-এর অংশ। +</TLDR> + +## সংক্ষিপ্ত বিবরণ + +কনসেপ্ট নোটসগুলো একটি সংযুক্ত জ্ঞান ভিত্তির গঠনমূলক উপাদান। যখন আপনি একটি নোট প্রক্রিয়াকরণ করেন, Notemd: + +1. **একটি LLM-এ আপনার টেক্সট পাঠায়** এবং একটি কাঠামোগত এক্সট্রাকশন প্রম্পট দেয় +2. **LLM রেসপন্স থেকে `CONCEPT:` লাইনগুলো পার্স করে** +3. **নির্ধারিত ফোল্ডারে প্রতিটি ধারণার জন্য একটি `.md` ফাইল তৈরি করে** +4. **(সক্রিয় করা হলে) সোর্স নোটে ব্যাকলিঙ্ক যোগ করে** + +## এটি কীভাবে কাজ করে + +### এক্সট্রাকশন পাইপলাইন + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### এক্সট্রাকশন প্রম্পট + +LLM একটি প্রম্পট পায় যা এটিকে নির্দেশ দেয় যেন এটি: + +- ডকুমেন্টের বিষয়বস্তুর কেন্দ্রীয় **বিশেষ্য বা বিশেষ্য ফ্রেজ** বের করে +- **নির্দিষ্টতাকে অগ্রাধিকার দেয়** — "Dielectric Relaxation"-কে "Relaxation"-এর চেয়ে বেশি গুরুত্ব দেয় +- **একবচনে রূপান্তর করে** — "models" হয়ে যায় "model" +- **সাব-কনসেপ্টগুলো দমন করে** — যদি "dielectric relaxation" থাকে, তবে "relaxation" বের করা হয় না +- **Skip** রেফারেন্স/বিবলিওগ্রাফি বিভাগ, সাধারণ বিশেষ্য, কোম্পানি/পণ্যের নাম +- প্রতি লাইনে একটি করে ধারণা `CONCEPT: Term Name` হিসেবে আউটপুট করুন + +**Synonym suppression** (ঐচ্ছিক): প্রম্পটের শুরুতে "Avoid extracting synonyms, semantically similar core concepts, or keywords whenever possible" যোগ করুন. + +**Focused learning domain** (ঐচ্ছিক): একটি নির্দিষ্ট ডিসিপ্লিনে আউটপুট সীমাবদ্ধ করতে `Relevant Fields: [domain]` যোগ করুন. + +**Language override** (ঐচ্ছিক): শেষে "The output concepts MUST be in [language]." যোগ করুন. + +### Chunking + +দীর্ঘ নোটগুলো `settings.chunkWordCount` দ্বারা ভাগ করা হয়। প্রতিটি চাঙ্ক আলাদাভাবে পাঠানো হয়। সমস্ত চাঙ্ক থেকে ধারণাগুলো `Set`-এ সংগ্রহ করা হয় — চাঙ্কগুলোর মধ্যে ডুপ্লিকেটগুলো নীরবে অপসারণ করা হয়। প্রতিটি চাঙ্কে LLM ধরনের ত্রুটি থাকলেও অপারেশনটি বন্ধ হয় না. + +## Concept Note Creation + +### Filename Rules + +| Rule | বিহেভিয়ার | +|------|----------| +| Hyphens/underscores | Replaced with spaces | +| Special characters | Stripped: backslash, forward slash, colon, asterisk, question mark, quotes, angle brackets, pipe, hash, caret, brackets | +| Whitespace | Collapsed and trimmed | +| সর্বোচ্চ দৈর্ঘ্য | ১০০ অক্ষর (ট্রাঙ্কুটেড + পুনরায় ট্রিম করা) | +| খালি/সব ডট ফলাফল | নীরবে বাদ দেওয়া | + +উদাহরণ: `A-B: Key*Term` এর পরিবর্তে `A B KeyTerm.md` হয় + +### টেমপ্লেটস + +**পূর্ণ টেমপ্লেট** (ব্যাকলিঙ্কস সক্রিয়, ন্যূনতম টেমপ্লেট বন্ধ): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**ন্যূনতম টেমপ্লেট** (যখন `extractConceptsMinimalTemplate: true` থাকে): + +```markdown +# Concept Name +``` + +### বিদ্যমান নোটস আপডেট করা + +যখন একটি কনসেপ্ট ফাইল ইতিমধ্যে বিদ্যমান থাকে: + +1. যদি ব্যাকলিঙ্কস সক্রিয় থাকে এবং সোর্স নোটটি ইতিমধ্যে তালিকাভুক্ত না থাকে, তবে একটি ব্যাকলিঙ্ক যোগ করুন +2. যদি কোনো `## Linked From` সেকশন থাকে, তবে পরবর্তী `##` হেডারের আগে সেটি সন্নিবেশ করুন +3. যদি কোনো `## Linked From` না থাকে, তবে শেষে সেকশনটি যোগ করুন +4. ডুপ্লিকেট ব্যাকলিঙ্কস পরীক্ষা করে বাদ দেওয়া হয় + +### কনফিগারেশন + +| সেটিং | ডিফল্ট | প্রভাব | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | মাস্টার টগল। বন্ধ = কোনো নোটস তৈরি হবে না | +| `conceptNoteFolder` | `''` (অক্ষম) | কনসেপ্ট নোটগুলোর ফোল্ডার পাথ | +| `extractConceptsMinimalTemplate` | `true` | শুধুমাত্র শিরোনামযুক্ত নোট (Linked From ছাড়া) | +| `extractConceptsAddBacklink` | `false` | স্ট্যান্ডঅ্যালোন এক্সট্রাকশনের সময় ব্যাকলিঙ্ক যোগ করুন | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | কনসেপ্ট এক্সট্রাকশনের জন্য প্রতি-টাস্ক LLM | +| `extractConceptsLanguage` | `'en'` | কনসেপ্ট নামগুলোর আউটপুট ভাষা | +| `replaceSynonymsDuringConceptExtraction` | `false` | প্রম্পটে সিনোনিম সাপ্রেশন সক্রিয় করুন | +| `generateConceptLogFile` | `false` | তৈরি হওয়া কনসেপ্টগুলোর `.log` তালিকা লিখুন | + +**গুরুত্বপূর্ণ:** `extractConceptsAddBacklink` এবং `extractConceptsMinimalTemplate` সেটিংগুলো শুধুমাত্র **ডেডিকেটেড এক্সট্রাকশন কমান্ড**-কেই প্রভাবিত করে। "Add Links" কমান্ডটি সর্বদা ব্যাকলিঙ্কসহ পূর্ণ-টেমপ্লেট নোট তৈরি করে. + +## ডুপ্লিকেশন দূরীকরণ + +ডুপ্লিকেশন দূরীকরণ কমান্ড (`Notemd: Check & remove duplicate concept notes`) ৫-ধাপের বিশ্লেষণ চালায়: + +### ধাপ ১: সঠিক ফাইলনাম ম্যাচ + +কনফিগার করা স্কোপ জুড়ে কেস-ইনসেনসিটিভ বেসনেম তুলনা. + +### ধাপ ২: প্লুরাল ফর্ম সনাক্তকরণ + +সাফিক্সগুলো অপসারণ করা হয়: `-ies` থেকে `-y`, `-es` অপসারিত, `-s` অপসারিত। সিঙ্গুলার ফর্মটি স্কোপ ফাইলগুলোর সাথে তুলনা করা হয়। অনিয়মিত প্লুরালগুলো (children/child) এর জন্য এটি কাজ করে না. + +### ধাপ ৩: সিম্বল নরমালাইজেশন + +প্রযোজ্য: `toLowerCase()`, হাইফন/আন্ডারস্কোরগুলোকে স্পেস দিয়ে প্রতিস্থাপন করুন, অ-অঙ্কবর্ণীয় অংশ অপসারণ করুন, হোয়াইটস্পেস একীভূত করুন। যেগুলো একইভাবে নরমালাইজ হয় সেগুলোকে চিহ্নিত করা হয়। + +### ধাপ ৪: এক-শব্দের ধারণা নিরীক্ষা + +এক-শব্দের ধারণা নোটগুলোকে মাল্টি-ওয়ার্ড স্কোপ ফাইলের বেসনেমের সাথে তুলনা করা হয়। যখন স্কোপ `concept_folder_only` হয় তখন এটি চালানো হয় না। + +### ধাপ ৫: নিশ্চিতকরণ ও মুছে ফেলা + +সমস্ত প্রার্থীকে একটি নিশ্চিতকরণ মডালে উপস্থাপন করা হয়। অনুমোদিত আইটেমগুলো সিস্টেমের ট্র্যাশে সরিয়ে দেওয়া হয়। প্রতিটি মুছে ফেলার মধ্যে অপারেশনটি বাতিল করা যায়। + +### স্কোপ মোডস + +| মোড | তুলনা করা হয় নিম্নলিখিতগুলোর সাথে | +|------|-------------------| +| `vault` (ডিফল্ট) | কনসেপ্ট ফোল্ডার বাদে সমস্ত ভল্ট `.md` ফাইল | +| `concept_folder_only` | ফোল্ডারের মধ্যে অন্যান্য কনসেপ্ট নোট | +| `include` | নির্দিষ্ট তালিকাভুক্ত ফোল্ডারগুলোর মধ্যে ফাইলসমূহ | +| `exclude` | কনসেপ্ট ফোল্ডার ও তালিকাভুক্ত ফোল্ডারগুলো বাদে সমস্ত ভল্ট ফাইল | + +## ব্যবহার + +### কনসেপ্টস এক্সট্রাক্ট (স্ট্যান্ডঅ্যালোন) + +1. একটি নোট খুলুন +2. কমান্ড প্যালেট থেকে **"Notemd: Extract concepts"** চালান +3. কনফিগার করা ফোল্ডারে কনসেপ্ট নোটসমূহ তৈরি হয় + +### কন্টেন্ট বের করুন + তৈরি করুন + +**"Notemd: ধারণাগুলো বের করুন এবং শিরোনাম তৈরি করুন"** — ধারণাগুলো বের করে, তারপর ধারণা ফোল্ডারের প্রতিটি নোটের উপর "Generate from Title" কমান্ডটি চালায়। এর ফলে ফোল্ডারের **সমস্ত** ধারণা নোটের জন্য কন্টেন্ট তৈরি হয়, শুধুমাত্র নতুন তৈরি হওয়া নোটগুলোর জন্য নয়. + +### নির্বাচিত অংশ থেকে উইকি লিঙ্ক তৈরি করুন + +1. এডিটরে টেক্সটকে হাইলাইট করুন +2. **"Notemd: নির্বাচিত অংশ থেকে উইকি লিঙ্ক তৈরি করুন"** কমান্ডটি চালান +3. টেক্সটটি `[[...]]` দিয়ে র্যাপ করা হয় এবং একটি ধারণা নোট তৈরি হয় + +## টিপস + +- **প্রথমে ধারণা ফোল্ডারটি সেট করুন** — এটি না থাকলে কোনো নোট তৈরি হয় না। এটি সেট না করলে একটি সতর্কতা মডাল দেখানো হয়. +- **প্রতিটি টাস্কের জন্য আলাদা মডেল ব্যবহার করুন** — ধারণা বের করার কাজে সস্তা মডেলগুলো (GPT-4o-mini, DeepSeek) ভালো কাজ করে। গবেষণা/অনুবাদের জন্য ব্যয়বহুল মডেলগুলো সংরক্ষণ করুন. +- **প্রযুক্তিগত ক্ষেত্রে সিনোনিম সাপ্রেশন সক্রিয় করুন** — যেখানে একাধিক শব্দ একই ধারণাকে নির্দেশ করে সেখানে এটি কাজে আসে. +- **নিয়মিতভাবে ডুপ্লিকেট অপসারণ করুন** — ব্যাচ প্রক্রিয়াকরণের পর ডুপ্লিকেট অপসারণ কমান্ডটি চালান যাতে প্রায়-ডুপ্লিকেটগুলো ধরা যায়. +- **প্রতিবার চালানোর সময় লগ ফাইলটি ওভাররাইট হয়**, অ্যাপেন্ড হয় না। পূর্ববর্তী ফলাফল দরকার হলে এটি কপি করুন. + +--- + +## পরবর্তী ধাপসমূহ + +- [Wiki-Links](./wiki-links) — ধারণাগুলো কীভাবে ইনলাইনে লিঙ্ক হয় +- [Diagrams](./diagrams) — ধারণাগুলোর মধ্যকার সম্পর্ক দৃশ্যমান করা +- [Workflows](./workflows) — অন্যান্য টাস্কের সাথে ধারণা বের করার প্রক্রিয়া সংযুক্ত করা diff --git a/website/i18n/bn/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/bn/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..71cb1403 --- /dev/null +++ b/website/i18n/bn/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "ডায়াগ্রাম" +description: "নির্দেশনা-প্রথম আর্কিটেকচার ব্যবহার করে আপনার নোট থেকে Mermaid, JSON Canvas, Vega-Lite, HTML, সম্পাদনযোগ্য ফিগার আর্টিফ্যাক্টস এবং ভবিষ্যতের সীমিত circuitikz ডায়াগ্রামগুলি তৈরি করা হয়" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# ডায়াগ্রাম + +<TLDR> +**Notemd নির্দেশনা-প্রথম পাইপলাইনের মাধ্যমে আপনার নোট থেকে ডায়াগ্রাম তৈরি করে।** LLM একটি রেন্ডারার-স্বতন্ত্র `DiagramSpec` JSON তৈরি করে, এরপর নির্দিষ্ট অ্যাডাপ্টারগুলি এটিকে Mermaid, JSON Canvas, Vega-Lite, HTML অথবা সম্পাদনযোগ্য HTML/SVG আউটপুটে রূপান্তরিত করে। 8টি ইন্টেন্ট টাইপ, স্বয়ংক্রিয় ফলব্যাক চেইন, SVG/PNG এক্সপোর্টসহ লাইভ প্রিভিউ, সেমান্টিক ভেরিফিকেশন এবং লোকাল-নলেজ-অগমেন্টেড জেনারেশন সমর্থন করা হয়. +</TLDR> + +এটি [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge)-এর অংশ। + +## আর্কিটেকচার: নির্দেশনা-প্রথম পাইপলাইন + +Notemd কখনোই LLM কে সরাসরি Mermaid/Vega/Canvas সিনট্যাক্স তৈরি করতে বলে না। বরং: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**নির্দেশনা-প্রথম কেন?** LLM গুলি প্রায়ই অকার্যকর রেন্ডারার সিনট্যাক্স তৈরি করে (Mermaid বিশেষভাবে)। একটি কাঠামোগত `DiagramSpec` রেন্ডারিংয়ের আগে যাচাই করা যায়, এবং একই নির্দেশনা ফলব্যাক হিসেবে একাধিক রেন্ডারারকে সরবরাহ করতে পারে. + +## সমর্থিত ডায়াগ্রাম টাইপ + +| ইন্টেন্ট | প্রাথমিক রেন্ডারার | ফলব্যাকসমূহ | ব্যবহারের ক্ষেত্র | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | হায়ারার্কিক্যাল টপিক ব্রেকডাউন | +| `flowchart` | Mermaid | HTML | প্রক্রিয়া ফ্লো, ডিসিশন ট্রি | +| `sequence` | Mermaid | HTML | ক্লায়েন্ট-সার্ভার ইন্টারঅ্যাকশন, প্রোটোকল | +| `classDiagram` | Mermaid | HTML | OOP ক্লাস সম্পর্কসমূহ | +| `erDiagram` | Mermaid | HTML | ডেটাবেস স্কিমা, এন্টিটি রিলেশনশিপ | +| `stateDiagram` | Mermaid | HTML | স্টেট মেশিন, লাইফসাইকেল মডেল | +| `canvasMap` | JSON Canvas | Mermaid → HTML | কনসেপ্ট ম্যাপ, নলেজ গ্রাফ | +| `dataChart` | Vega-Lite | Mermaid → HTML | বার, লাইন, এরিয়া, স্ক্যাটার, পাই, টেবিল | + +## ইন্টেন্ট ডিটেকশন + +Notemd কীওয়ার্ড স্কোরিং ব্যবহার করে আপনার নোটের বিষয়বস্তু থেকে সর্বোত্তম ডায়াগ্রাম ধরণ নির্ধারণ করে: + +| ইন্টেন্ট | ট্রিগার | কনফিডেন্স | +|--------|----------|------------| +| `dataChart` | টেবিল, সংখ্যাসূচক সেল, মেট্রিক/ট্রেন্ড কীওয়ার্ড, শতাংশ | 0.88 | +| `sequence` | রিকোয়েস্ট/রেসপন্স ভোকাবুলারি (৪+ ম্যাচ) অথবা `->`/`=>` মার্কার | 0.82 | +| `erDiagram` | প্রাইমারি কী, ফরেন কী, এন্টিটি, স্কিমা (২+ ম্যাচ) | 0.80 | +| `stateDiagram` | স্টেট, ট্রানজিশন, পেন্ডিং, রানিং, ফেইলড (৩+ ম্যাচ) | 0.76 | +| `flowchart` | নম্বরযুক্ত ধাপ (২+) অথবা if/then/else/workflow ভোকাবুলারি | 0.74 | +| `canvasMap` | কনসেপ্ট ম্যাপ, নলেজ গ্রাফ, স্পেশিয়াল, ক্লাস্টার | 0.72 | +| `mindmap` | ডিফল্ট ফলব্যাক | 0.55 | + +**Preferred diagram type** সেটিং, সাইডবার সিলেক্টর, অথবা একটি স্পষ্ট কমান্ড প্যালেট অপশন দিয়ে ওভাররাইড করুন. + +## Render Target Selection + +পরীক্ষামূলক spec-first পাইপলাইনে এখন দুটি স্বাধীন কন্ট্রোল রয়েছে: + +| Control | সেটিং | প্রভাব | +|---------|---------|--------| +| Preferred diagram type | `preferredDiagramIntent` | জেনারেট হওয়া `DiagramSpec`-এর সেমান্টিক শেপকে নির্দেশনা দেয় | +| Preferred render target | `preferredDiagramRenderTarget` | **Generate diagram** এবং **Preview diagram**-এর জন্য আর্টিফ্যাক্ট রেন্ডারার নির্বাচন করে | + +প্ল্যানারের ডিফল্ট হিসেবে **Preferred render target**-কে **Auto**-এ সেট করুন, অথবা Mermaid, JSON Canvas, Vega-Lite, HTML, অথবা Editable HTML/SVG স্পষ্টভাবে নির্বাচন করুন। এই ওভাররাইডটি শুধুমাত্র আর্টিফ্যাক্ট এবং প্রিভিউ কমান্ডগুলোর জন্য প্রযোজ্য। স্ট্যান্ডার্ড **Summarise as Mermaid diagram** কমান্ডটি Mermaid-সামঞ্জস্যপূর্ণ আউটপুটের জন্য পিন থাকে, যাতে বিদ্যমান Markdown ওয়ার্কফ্লোগুলো নীরবে ফরম্যাট পরিবর্তন না করে. + +এই পৃথকীকরণটি গুরুত্বপূর্ণ কারণ এখন একটি `flowchart` ইন্টেন্টকে Markdown নোটের জন্য Mermaid, শক্তিশালী ফলব্যাকের জন্য HTML, অথবা ডাউনস্ট্রিম এডিটিংয়ের জন্য Editable HTML/SVG হিসেবে রেন্ডার করা যায়। Draw.io এবং Drawnix এখনও CLI আর্টিফ্যাক্ট এক্সপোর্টার হিসেবে থাকে, ইন-প্লাগইন রেন্ডার টার্গেট নয়. + +## ব্যবহার + +### Generate a Diagram + +1. একটি নোট খুলুন +2. কমান্ড প্যালেট থেকে **"Notemd: Generate diagram"** চালান +3. Notemd ইন্টেন্ট সনাক্ত করে, স্পেক জেনারেট করে, রেন্ডার করে এবং আর্টিফ্যাক্ট সংরক্ষণ করে + +**Output files by target:** + +| লক্ষ্য | এক্সটেনশন | ফাইলনাম প্যাটার্ন | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| Editable HTML/SVG | `.html` | `{note}_diagram.html` | + +### ডায়াগ্রাম প্রিভিউ করুন + +1. Run **"Notemd: Preview diagram"** +2. রেন্ডার করা ডায়াগ্রামসহ একটি মডাল খুলবে +3. টুলবার বাটনগুলো ব্যবহার করে SVG বা PNG হিসেবে এক্সপোর্ট করুন + +**Auto-open preview** সেটিংসে উপলব্ধ — জেনারেশনের পর, প্রিভিউ মডালটি স্বয়ংক্রিয়ভাবে চালু হয়. + +প্রিভিউ মডালে আর্টিফ্যাক্ট ডায়াগনস্টিক্স প্যানেলও রয়েছে। রেন্ডারার এবং স্মোক চেকগুলো `RenderArtifact.diagnostics` যুক্ত করতে পারে; মডালটি প্রিভিউর পাশে ত্রুটি/সতর্কতা/তথ্যের সংখ্যা, তারপর গুরুত্ব, ডায়াগনস্টিক ধরন, বার্তা এবং মেরামতের পরামর্শ দেখায়। একই সারসংক্ষেপটি প্রিভিউ হিস্ট্রি এন্ট্রিগুলোতেও দেখানো হয়, ফলে প্রতিটি এন্ট্রি খোলা ছাড়াই বারবার করা circuitikz স্মোক চেষ্টাগুলো তুলনা করা যায়। যেসব আর্টিফ্যাক্টের সোর্স কন্টেন্ট রয়েছে কিন্তু ইনলাইনে বা HTML iframe পাথের মাধ্যমে রেন্ডার করা যায় না, সেক্ষেত্রে মডালটি এখন খালি iframe জোর করার পরিবর্তে শুধুমাত্র সোর্স-ভিত্তিক প্রিভিউতে ফিরে যায়। এটি circuitikz কম্পাইল/রেন্ডার স্মোক, SVG টেক্সট-টোকেন চেক, PNG ব্ল্যাঙ্ক-স্ক্রিনশট চেক এবং ভবিষ্যতের ওভারল্যাপ রিপোর্টগুলোকে দৃশ্যমান UI সারফেস দেয়, এবং TikZJax বা LaTeX-কে হার্ড প্লাগইন রানটাইম নির্ভরতা বানায় না অথবা সোর্স টেক্সটকে যাচাইকৃত ভিজ্যুয়াল রেন্ডার হিসেবে উপস্থাপন করে না. + +### লেগাসি Mermaid মোড + +যখন `enableExperimentalDiagramPipeline` বন্ধ থাকে, Notemd সরাসরি Mermaid প্রম্পটটি LLM-এ পাঠায়। এটি স্পেসিফিকেশন পাইপলাইনকে সম্পূর্ণভাবে এড়িয়ে যায়। যদি পরীক্ষামূলক পাইপলাইন ব্যর্থ হয়, তবে এই মোডে ফিরে যাওয়া হয়. + +## রেন্ডারিং ব্যাকএন্ডস + +### Mermaid + +6টি অ্যাডাপ্টার (মাইন্ডম্যাপ, ফ্লোচার্ট, সিকোয়েন্স, ER, ক্লাস, স্টেট) `DiagramSpec` কে Mermaid সিনট্যাক্সে রূপান্তর করে। জেনারেশনের পর, `mermaid.parse()` আউটপুটটি ভ্যালিডেট করে। যদি ভ্যালিডেশন ব্যর্থ হয়: + +1. **LLM retry** — Mermaid এর ত্রুটি বার্তাকে কনটেক্সট হিসেবে ব্যবহার করে একটি চেষ্টা +2. **Minimal fallback** — স্পেসিফিকেশন নোড ID থেকে একটি সাধারণ Mermaid ডায়াগ্রাম + +**Legacy Mermaid Fixer** স্বয়ংক্রিয়ভাবে সাধারণ LLM সিনট্যাক্স ত্রুটিগুলো মেরামত করে: note directive normalization, pipe-label escaping, semicolon repositioning, smart quotes, double-dash arrows, shape mismatches, এবং আরও অনেক কিছু. + +### JSON Canvas + +Obsidian JSON Canvas ফরম্যাটে স্পেশিয়াল লেআউট তৈরি করে: +- Nodes positioned by depth (x = depth × 420) and index (y = index × 170) +- Width estimated from label length +- Edges with `fromSide: 'right'`, `toSide: 'left'`, `toEnd: 'arrow'` + +### Vega-Lite + +স্বয়ংক্রিয় এনকোডিংসহ সম্পূর্ণ Vega-Lite v5 JSON specs তৈরি করে: +- **Cartesian charts** (bar/line/area/point/scatter): x + y channels + color for multi-series +- **Pie**: theta = y (quantitative), color = x (nominal) +- **Table**: row = x, text = y + column = series + +কম্পাইল করার আগে Dark and light theme patches গভীরভাবে মার্জ করা হয়. + +### HTML + +Universal fallback. Self-contained HTML document with: +- CSP meta headers +- Light/dark mode via `prefers-color-scheme` +- 20টি লোকেলের জন্য Localized UI labels +- Sections: hero, structure (node tree), relationships, callouts, data series tables + +### Editable HTML/SVG + +সম্পাদনযোগ্য এক্সপোর্ট ওয়ার্কফ্লোর জন্য স্পষ্ট ফিগার লক্ষ্য। এটি `DiagramSpec` কে একটি নির্ধারিত `SemanticFigureModel` এ রূপান্তরিত করে, তারপর অন্তর্নির্মিত HTML ডকুমেন্ট তৈরি করে যেখানে ইনলাইন SVG গ্রুপগুলো Draw.io-স্টাইলের অ্যানোটেশন বহন করে: + +- `data-drawio-type`, `data-drawio-id`, এবং `data-drawio-role` সেমান্টিক নোডগুলোতে +- `data-drawio-source` এবং `data-drawio-target` সেমান্টিক এডজগুলোতে +- হোয়াইটস্পেস নরমালাইজেশন ও কলিজন হ্যান্ডলিংয়ের পর স্থিতিশীল নোড/এডজ আইডেন্টিফায়ার +- কোনো স্ক্রিপ্ট, কোনো বাহ্যিক ফন্ট, এবং কোনো রিমোট অ্যাসেট নেই + +এই লক্ষ্যটি ইচ্ছাকৃতভাবে এখনও ডিফল্ট প্ল্যানার রুট নয়। পণ্যের পথটি বাস্তব টুলগুলোতে সম্পাদনা আচরণ প্রমাণ করার সময় এটি একটি স্পষ্ট রেন্ডার লক্ষ্য হিসেবে উপলব্ধ থাকে. + +### Draw.io এবং Drawnix এক্সপোর্ট বাউন্ডারিজ + +বর্তমান বাস্তবায়নটি থার্ড-পার্টি এডিটর সাপোর্টকে আর্টিফ্যাক্ট বাউন্ডারিতে রাখে: + +| লক্ষ্য | চুক্তি | রানটাইম নির্ভরতা | +|--------|----------|--------------------| +| Draw.io | `SemanticFigureModel` থেকে নির্ধারিত, আনকম্প্রেসড `mxfile` XML | প্লাগইন রানটাইম বা CI-তে কোনোটিই নেই | +| Drawnix | `geometry` এবং `arrow-line` উপাদান ব্যবহার করে ন্যূনতম `.drawnix` JSON সাবসেট | প্লাগইন রানটাইম বা CI-তে কোনোটিই নেই | + +এই সমঝোতাটি ইচ্ছাকৃত: Notemd ডায়াগ্রাম.net Desktop, Drawnix, Plait, অথবা শুধুমাত্র ব্রাউজার-ভিত্তিক এডিটর স্টেটকে প্লাগইনে অন্তর্ভুক্ত না করেও দৃশ্যমান লেবেল, স্থিতিশীল ID, এবং সমর্থিত প্রিমিটিভ কভারেজ যাচাই করতে পারে। + +### circuitikz / TikZJax দিক + +সার্কিট ডায়াগ্রামগুলি সাধারণ ফ্লোচার্টের মতো একই সমস্যা নয়। বৈদ্যুতিক সার্কিটের জন্য সঠিক সিনট্যাক্স লক্ষ্য সাধারণত **circuitikz** হয়, যা Obsidian-এ TikZJax এর মতো প্লাগইনগুলির মাধ্যমে রেন্ডার করা হয়। TikZJax `circuitikz`, `pgfplots`, `tikz-cd` এবং `chemfig` এর মতো প্যাকেজগুলি লোড করতে পারে, যা পদার্থবিজ্ঞান, সার্কিট, রসায়ন এবং গণিতের নোটগুলির জন্য এটিকে আকর্ষণীয় করে তোলে. + +ঝুঁকিটি হল যে খাঁটি LLM-দ্বারা তৈরি TikZ খুবই ভঙ্গুর হয়: + +- জটিল সার্কিট টোপোলজি বৈদ্যুতিকভাবে সঠিক হলেও দৃশ্যতভাবে অপঠনীয় হতে পারে; +- ওভারল্যাপিং ওয়্যার এবং লেবেলগুলি একটি সঠিক নেটলিস্টকে অধ্যয়নের নোটের জন্য ব্যবহার করা অসম্ভব করে তুলতে পারে; +- প্যাকেজ প্রিয়াম্বলগুলি না থাকা, ভুল অ্যাঙ্কর বা অবৈধ কম্পোনেন্ট নামগুলি রেন্ডারিংকে বাধা দিতে পারে; +- রেন্ডারার থেকে ফিডব্যাক সাধারণত ছবি-স্তরে থাকে, অন্যদিকে LLM দ্বারা তৈরি টেক্সট-স্তরের জ্যামিতি থাকে. + +আরও ভাল আর্কিটেকচার হল circuitikz কে একটি সীমিত ডায়াগ্রাম লক্ষ্য হিসেবে বিবেচনা করা, ফ্রি-ফর্ম প্রম্পট হিসেবে নয়: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +প্রথম-শ্রেণীর মডেলটি সার্কিট টোপোলজি এবং লেআউটকে আলাদাভাবে বর্ণনা করা উচিত: + +| স্তর | দায়িত্ব | উদাহরণ | +|-------|----------------|---------| +| টোপোলজি | বৈদ্যুতিক নোড এবং কম্পোনেন্ট সংযোগ | `VDD -> RD -> drain(M1)`, `source(M1) -> GND` | +| লেআউট | গ্রিড স্থাপন, অরিয়েন্টেশন, রাউটিং লেন | `M1 at (3,2.2)`, ইনপুট বামে, আউটপুট ডানে | +| স্টাইল | প্যাকেজ, ভোল্টেজ কনভেনশন, লেবেল, অ্যাঙ্কর | `\begin{circuitikz}[american voltages]` | +| বৈধতা যাচাই | কম্পাইল লগ, অনুপস্থিত অ্যাঙ্কর, ওভারল্যাপ/স্ক্রিনশট চেকস | TikZJax/LaTeX ডায়াগনস্টিক্স প্লাস ভিজ্যুয়াল রিভিউ | + +### বর্তমান circuitikz প্রোটোটাইপ + +Notemd-এ এখন এই দিকের জন্য প্রথম সীমাবদ্ধ রিপোজিটরি প্রোটোটাইপ অন্তর্ভুক্ত রয়েছে। এটি ইচ্ছাকৃতভাবে অফলাইন এবং টেমপ্লেট-সীমাবদ্ধ: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +প্রোটোটাইপটি ছয়টি গোল্ডেন-রেফারেন্স ফ্যামিলির জন্য একটি আলাদা `CircuitSpec` বাউন্ডারি এবং ডিটারমিনিস্টিক এক্সপোর্টার যোগ করে: + +| সার্কিটের ধরন | গোল্ডেন রেফারেন্স | বর্তমান ওয়ারেন্টি | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | LaTeX লেখার আগে `VDD -> R_D -> M1.D`, `vin -> M1.G`, `M1.S -> GND`, এবং `M1.D -> vout` যাচাই করা হয়। | +| `cmos-inverter` | `cmos-inverter-v1` | LaTeX লেখার আগে PMOS-over-NMOS topology, shared gate input, shared drain output, `VDD -> MP.S`, এবং `MN.S -> GND` এর বৈধতা যাচাই করা হয়। | +| `cmos-buffer` | `cmos-buffer-v1` | LaTeX লেখার আগে দুটি ক্যাসকেডেড ইনভার্টার স্টেজ, মধ্যবর্তী নোড `vmid`, পুনরুদ্ধারকৃত `vout`, এবং শেয়ার্ড VDD/GND রেলগুলো যাচাই করা হয়। | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | LaTeX লেখার আগে `vin` এবং `vout`-এর মধ্যে থাকা সমান্তরাল PMOS/NMOS পাস ডিভাইসগুলোকে পরস্পর পরিপূরক `phib` / `phi` নিয়ন্ত্রণের মাধ্যমে যাচাই করা হয়। | +| `cmos-nand2` | `cmos-nand2-v1` | LaTeX লেখার আগে প্যারালাল PMOS পুল-আপ, সিরিজ NMOS পুল-ডাউন, ডুয়াল ইনপুট `va` / `vb`, এবং `vout` এর বৈধতা যাচাই করা হয়। | +| `cmos-nor2` | `cmos-nor2-v1` | LaTeX লেখার আগে series PMOS pull-up, parallel NMOS pull-down, dual inputs `va` / `vb`, এবং `vout` এর বৈধতা যাচাই করা হয়। | + +এটি এখনও একটি সাধারণ TikZ জেনারেটর নয়। এটি LaTeX কম্পাইল করে না, TikZJax কল করে না, স্ক্রিনশট পরীক্ষা করে না, অথবা স্বয়ংক্রিয় ছবি-ফিডব্যাক মেরামত চালায় না। এগুলো পরবর্তী ধাপে অন্তর্ভুক্ত হবে। + +Preview diagram কমান্ডটি ফাইলের এক্সটেনশন `.tex` বা `.tikz` হলে এবং সোর্সে `\usepackage{circuitikz}` বা `\begin{circuitikz}` থাকলে সংরক্ষিত circuitikz সোর্স আর্টিফ্যাক্টগুলোকে সরাসরি পুনরায় খুলতে পারে। এই পদ্ধতিটি হলো একটি circuitikz শুধুমাত্র-সোর্স ভিত্তিক প্রিভিউ: মডালটি সোর্স, ডায়াগনস্টিক্স, কপি/সেভ নিয়ন্ত্রণ এবং হিস্ট্রি মেটাডেটা দেখায়, কিন্তু প্লাগইন রানটাইমের মধ্যে LaTeX কম্পাইল করে না বা TikZJax কল করে না। + +একই সোর্স-ওনলি প্রিভিউ সীমানা এখন সংরক্ষিত Draw.io এবং Drawnix আর্টিফ্যাক্টগুলোকেও অন্তর্ভুক্ত করে। `.drawio` ফাইলগুলো Draw.io XML (`mxfile` বা `mxGraphModel`) এর মতো দেখালে গ্রহণযোগ্য, আর `.drawnix` ফাইলগুলো Drawnix JSON এর সাথে `type: "drawnix"` এবং একটি `elements` অ্যারে থাকলে গ্রহণযোগ্য। প্লাগইনটি এখনও diagrams.net বা Drawnix হোয়াইটবোর্ড হোস্টকে অন্তর্ভুক্ত করে না; এই প্রিভিউগুলো কোনো ইন-প্লাগইন ভিজ্যুয়াল এডিটর দাবি না করেই সোর্স, ডায়াগনস্টিক্স এবং আর্টিফ্যাক্টের ইতিহাস প্রদর্শন করে। + +টোপোলজি-সংরক্ষণকারী মেরামতের জন্য, মেরামতকৃত প্রার্থীকে গ্রহণ করার আগে রেফারেন্স হিসেবে প্রি-রিপেয়ার স্পেসিফিকেশনটি পাঠান: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +রিপেয়ার গার্ড আউটপুট দেওয়ার আগে `circuitKind`, `goldenReferenceId`, নেটগুলি, কম্পোনেন্টের আইডি/টাইপ/টার্মিনালস, এবং অনির্দেশিত কানেকশন এন্ডপয়েন্টগুলি তুলনা করার জন্য `createCircuitTopologySignature` এবং `assertCircuitTopologyUnchanged` ব্যবহার করে। লেবেল, শিরোনাম টেক্সট, লেআউট হিন্টস, কানেকশন অর্ডার, এবং কানেকশন লেবেলগুলি ইচ্ছাকৃতভাবে উপেক্ষা করা হয়। যেসব ক্যান্ডিডেট সংক্ষিপ্ত কিছু যোগ করে বা কোনো টার্মিনালের ওয়্যারিং পরিবর্তন করে, `.tex` ফাইলটি লেখা হওয়ার আগেই `Circuit topology drift detected` এর কারণে ব্যর্থ হয়। + +CLI এখন কোনো কম্পাইলার চালানো ছাড়াই বিদ্যমান LaTeX/TikZJax কম্পাইল লগগুলো পার্স করতে পারে: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +এই ডায়াগনস্টিক পাথটি `circuitikz.sty`-এর মতো অনুপস্থিত প্যাকেজ, অজানা TikZ/circuitikz কী, সেমিকোলন অনুপস্থিতির মতো TikZ পাথ সিনট্যাক্স ত্রুটি, অসমতুল্য ব্রেসেস বা অসমাপ্ত লেবেল থেকে উদ্ভূত আর্গুমেন্ট, অপরিভাষিত কন্ট্রোল সিকোয়েন্স, সাধারণ LaTeX ত্রুটি, জরুরি স্টপ, এবং `\hbox`-এর ওভারফুল হওয়া সংক্রান্ত সতর্কতাগুলি সম্পর্কে রিপোর্ট করে। এটি এখনও লগ-ভিত্তিক: লোকাল LaTeX/TikZJax এক্সিকিউশন এবং স্ক্রিনশট-গুণমানের গেটগুলি এখনও আলাদা ভবিষ্যতের কাজ। + +মেইনটেইনার স্মোক চেকগুলির জন্য, একই CLI ঐচ্ছিকভাবে শেল কমান্ড পার্সিং ছাড়াই স্পষ্টভাবে কনফিগার করা একটি রেন্ডারার চালাতে পারে: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +কম্পাইল রানারটি `shell: false` ব্যবহার করে, `{tex}`, `{outputDir}`, এবং `{jobName}` প্লেসহোল্ডারগুলোকে আর্গুমেন্ট-অ্যারে মানে রূপান্তরিত করে, তৈরি হওয়া `{jobName}.log` পড়ে, এবং CLI JSON আউটপুটে `compileExecution` এবং `compileDiagnostics` সহ ফলাফল প্রদান করে। `--compile-executable` হলো শুধুমাত্র রেন্ডারার বাইনারি বা র্যাপার পাথ; রেন্ডারার ফ্ল্যাগগুলো পুনরাবৃত্তিমূলক `--compile-arg` মানগুলোর মধ্যে থাকে। খালি এক্সিকিউটেবলগুলো `compile-executable-invalid` হিসেবে ব্যর্থ হয়, অনুপস্থিত বাইনারিগুলো `compile-executable-not-found` হিসেবে ব্যর্থ হয়, এবং শেল-কমান্ড-আকৃতির এক্সিকিউটেবল স্ট্রিংগুলোর জন্য আর্গুমেন্টগুলো বিভক্ত করার পরামর্শ দেওয়া হয় যাতে Windows, Linux, এবং macOS একই ডাইরেক্ট-এক্সিকিউট নিয়ম অনুসরণ করতে পারে। `--expected-artifact` এর সাহায্যে এটি `compileExecution.renderSmoke` সম্পর্কেও রিপোর্ট করে এবং যদি রেন্ডারার কোনো অ-খালি আর্টিফ্যাক্ট তৈরি না করে তবে CLI ব্যর্থ হয়। এটি এখনও LaTeX বান্ডল করে না, TikZJax কে প্লাগইন রানটাইম ডিপেন্ডেন্সি হিসেবে ব্যবহার করে না, অথবা স্ক্রিনশট-স্তরের ভিজ্যুয়াল মেরামত করে না। + +যদি প্রত্যাশিত আর্টিফ্যাক্টটি হয় `.svg`, তাহলে স্মোক চেকটি আরও এক স্তর গভীরে যায়: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +SVG smoke হলো `<svg>` root-এর, ইতিবাচক মাত্রাগুলো অথবা `viewBox`-এর, লুকানো/স্বচ্ছ উপাদানগুলো বাদ দেওয়ার পর অন্তত একটি দৃশ্যমান ড্রয়িং উপাদান, অনুরোধকৃত যেকোনো টেক্সট টোকেন, `viewBox`-এর বাইরে থাকা স্পষ্ট উপাদানগুলো, `<text>` / `<tspan>` লেবেলগুলোর স্পষ্ট ওভারল্যাপিং অবস্থান, এবং `render-svg-label-overlap`-এর মাধ্যমে ড্রয়িং উপাদানগুলোর ওপর ওভারল্যাপ হওয়া স্পষ্ট টেক্সট লেবেলগুলোর যাচাই। প্রত্যাশিত টেক্সটটি দৃশ্যমান টেক্সট এবং `aria-label`, `<title>`, `<desc>`-এর মতো ডিকোড করা অ্যাক্সেসিবিলিটি মেটাডেটায় অনুসন্ধান করা হয়; ফলে দৃশ্যমান `<text>`-এর বাইরে সেমান্টিক লেবেলগুলো সংরক্ষণকারী রেন্ডারারগুলোও OCR ছাড়াই টেক্সট-টোকেন smoke পূরণ করতে পারে। জিওমেট্রি পাসটি এখন সাধারণ গ্রুপ ও উপাদান `transform` অ্যাট্রিবিউটগুলোর জন্য ট্রান্সফর্ম-সচেতন জিওমেট্রি, ফলে অনুবাদিত, স্কেল করা, ঘোরানো, বিকৃত অথবা ম্যাট্রিক্স-ট্রান্সফর্ম করা SVG বক্সগুলো ট্রান্সফর্ম কম্পোজিশনের পর যাচাই করা হয়। এটি A/a আর্কের চূড়ান্ত সীমানা, C/S/Q/T কার্ভের চূড়ান্ত সীমানা, স্ট্রোক-ওয়াইডথ-সচেতন SVG সীমানা ও লেবেল ওভারল্যাপ চেক, `polyline` / `polygon` ড্রয়িং জিওমেট্রি, এবং `<use href="#...">` রেফারেন্স থেকে পাওয়া শুধুমাত্র পাথ-ভিত্তিক গ্লিফ প্লেসমেন্টকেও সমাধান করে; ফলে পুনর্ব্যবহারযোগ্য গ্লিফ পাথে রূপান্তরিত লেবেলগুলো `viewBox`-এর বাইরে চলে গেলেও বাউন্ডেড-ক্যানভাস চেকে ব্যর্থ হতে পারে। একটি `<text>` প্যারেন্টের অধীনে থাকা একাধিক `tspan` লেবেলকে আলাদা লেবেল বক্স হিসেবে তুলনা করা হয়, যা LaTeX-স্টাইলের SVG আউটপুটকে ধরে ফেলে—যা অন্যথায় আলাদা লেবেলগুলোকে একটি টেক্সট নোডে রূপান্তরিত করে দেয়। `text` ও `tspan` বক্সগুলো `text-anchor` মান `start`, `middle`, `end`-কে মেনে চলে; ফলে সেন্টারড ও রাইট-অ্যালাইনড লেবেলগুলো ব্রাউজার-গ্রেড টেক্সট লেআউটের দাবি না করেই টেক্সট/টেক্সট ও লেবেল-বনাম-ড্রয়িং ওভারল্যাপ ডায়াগনোস্টিকগুলো সক্রিয় করতে পারে। `<defs>`-এর ভিতরে শুধুমাত্র ডেফিনিশন-ভিত্তিক গ্লিফ পাথগুলোকে দৃশ্যমান ড্রয়িং উপাদান হিসেবে গণনা করা হয় না, কিন্তু `<use>` প্লেসমেন্টের আগে তাদের নিজস্ব ডেফিনিশন-লোকাল `transform` অ্যাট্রিবিউটগুলো প্রয়োগ করা হয়; ফলে স্কেল বা মিরর করা গ্লিফ ডেফিনিশনগুলো অল্প গণনা হয় না। লেবেল-বনাম-ড্রয়িং চেকটি একটি ছোট ড্রয়িং-বক্স টলারেন্স ও ঘোষিত `stroke-width` ব্যবহার করে; ফলে পাতলা ওয়্যার, মোটা ওয়্যার এবং পলিগনোমাল কম্পোনেন্ট আউটলাইনগুলোর দৃশ্যমান স্ট্রোক যখন কোনো লেবেলে পৌঁছায়, তখন সেগুলোকে সম্ভাব্য লেবেল-পাঠযোগ্যতা ব্যর্থতা হিসেবে বিবেচনা করা হয়। `<use href="#...">` থেকে রেজোল্ভ করা শুধুমাত্র পাথ-ভিত্তিক গ্লিফ লেবেলগুলোও ড্রয়িং বক্সগুলোর সাথে তুলনা করা হয়, এবং পুনর্ব্যবহারযোগ্য গ্লিফ জিওমেট্রি ওয়্যার বা কম্পোনেন্টগুলোর সাথে ওভারল্যাপ হলে `render-svg-path-glyph-overlap`-এর মাধ্যমে ব্যর্থ হয়। যদি কোনো রেন্ডারার লেবেলগুলোকে অনুসন্ধানযোগ্য `<text>`-এ রূপান্তর না করে পুনর্ব্যবহারযোগ্য পাথ গ্লিফে রূপান্তর করে এবং অ্যাক্সেসিবিলিটি মেটাডেটা সংরক্ষণ না করে, তবে smoke রিপোর্ট `pathOnlyGlyphUseCount` রেকর্ড করে এবং `render-svg-text-path-only`-এর মাধ্যমে অনুরোধকৃত টেক্সট টোকেনটি ব্যর্থ ঘোষণা করে—লেবেলটি সরলভাবে অনুপস্থিত বলে ধরে না। অন্যান্য ব্যর্থতাগুলো `render-svg-invalid`, `render-svg-dimension-missing`, `render-svg-no-visible-elements`, `render-svg-text-missing`, `render-svg-out-of-bounds`, `render-svg-text-overlap`, `render-svg-label-overlap`, অথবা `render-svg-path-glyph-overlap`-এর মাধ্যমে রিপোর্ট করা হয়। টেক্সট-টোকেন ও ওভারল্যাপ চেকগুলোকে শুধুমাত্র সেইসব রেন্ডারারের জন্য স্ট্রাকচারাল smoke হিসেবে বিবেচনা করা উচিত, যারা লেবেলগুলোকে অনুসন্ধানযোগ্য SVG টেক্সট বা অ্যাক্সেসিবিলিটি মেটাডেটা হিসেবে সংরক্ষণ করে; শুধুমাত্র পাথ-ভিত্তিক SVG আউটপুটের জন্য এখনও ভিজ্যুয়াল লেবেল পাঠযোগ্যতা প্রমাণের জন্য পরবর্তী স্ক্রিনশট/OCR গেট প্রয়োজন, এবং এই smoke পাসটি এখনও পূর্ণ SVG পাথ কভারেজের দাবি করে না। + +দৃশ্যমান উপাদান গণনা এবং জ্যামিতি সংগ্রহের সময় লুকানো SVG গ্রুপ ও উপাদানগুলো ধারাবাহিকভাবে বাদ দেওয়া হয়। অ্যাট্রিবিউট বা ইনলাইন-স্টাইল `display:none`, `visibility:hidden`, `visibility:collapse`, এবং সামগ্রিকভাবে `opacity:0` অন্যথায় খালি থাকা রেন্ডার আর্টিফ্যাক্টকে দৃশ্যমান-আউটপুট স্মোক পরীক্ষায় পাস করতে সাহায্য করতে পারে না। + +Path-only glyph definitions হতে পারে সরাসরি পাথ অথবা `<defs>`-এর ভিতরে গ্রুপড/সিম্বল কন্টেইনার। Smoke pass, `<use>` placement-এর আগে `<g id="...">` এবং `<symbol id="...">` থেকে child path geometry নির্ধারণ করে; ফলে wrapped glyph output-টি এখনও `pathOnlyGlyphUseCount`, bounded-canvas checks, এবং `render-svg-path-glyph-overlap`-এ ব্যবহৃত হয়। + +পাথ পার্সারটি সাবপাথের শুরুগুলোও ট্র্যাক করে এবং `Z/z`-এ বর্তমান পয়েন্টটি রিসেট করে; ফলে একটি বন্ধ সাবপাথের পরের রিলেটিভ কমান্ডগুলো ভুল `render-svg-out-of-bounds` ডায়াগনস্টিক তৈরি না করে সঠিক SVG পয়েন্ট থেকেই চালিয়ে যায়। + +লিডিং-ডট ডেসিমাল সংখ্যা এবং স্পষ্ট প্লাস চিহ্নের জন্য SVG নম্বর গ্রামার অনুসরণ করে একই জিওমেট্রি পাস চলে, ফলে `.5`, `-.5` বা `+.5` এর মতো কমপ্যাক্ট dvisvgm কোঅর্ডিনেটগুলো বাউন্ডস চেকের সময় ভগ্নাংশ হিসেবেই থাকে, যার ফলে এগুলো ফলস আউট-অফ-বাউন্ডস জিওমেট্রি হয়ে যায় না বা বাদ পড়ে না. + +যদি রেন্ডারার `.png` নির্গত করে, তবে একই প্রত্যাশিত-আর্টিফ্যাক্ট পাথটি প্রথম স্ক্রিনশট স্মোক হয়ে ওঠে: Notemd নন-ইন্টারলেস্ড 1/2/4/8-বিট ইনডেক্সড-কালার PNG ফাইল, 1/2/4/8/16-বিট গ্রেস্কেল PNG ফাইল এবং 8/16-বিট গ্রেস্কেল-আলফা/RGB/RGBA PNG ফাইলগুলো ডিকোড করে। ইনডেক্সড-কালার এবং সাব-বাইট গ্রেস্কেল ছবিগুলো প্যাকড স্যাম্পল সমর্থন করে; ইনডেক্সড-কালার ছবিগুলো PLTE এবং ঐচ্ছিক tRNS ডেটা সমর্থন করে; গ্রেস্কেল/RGB ছবিগুলো tRNS ট্রান্সপারেন্ট স্যাম্পল সমর্থন করে। 16-বিট ডাইরেক্ট স্যাম্পলগুলোকে স্মোক চেকগুলো দ্বারা ব্যবহৃত একই 8-বিট RGBA তুলনা স্পেসে নরমালাইজ করা হয়। স্মোক চেকটি ইতিবাচক ডাইমেনশন যাচাই করে, ফরগ্রাউন্ড বাউন্ডসগুলোকে `foregroundBounds` হিসেবে রেকর্ড করে, সেই বক্সের ভিতরে ফরগ্রাউন্ড ঘনত্বকে `foregroundDensity` হিসেবে রেকর্ড করে, যখন প্রতিটি দৃশ্যমান পিক্সেল উপরের-বামের ব্যাকগ্রাউন্ড রঙের সাথে মিলে যায় তখন `render-png-blank` দিয়ে ব্যর্থ হয়, যখন ফরগ্রাউন্ড কন্টেন্ট ছবির সীমানা স্পর্শ করে তখন `render-png-content-clipped` দিয়ে ব্যর্থ হয়, যখন একটি বড় স্ক্রিনশটে চারটির কম ফরগ্রাউন্ড পিক্সেল থাকে তখন `render-png-foreground-too-small` দিয়ে ব্যর্থ হয়, এবং যখন একটি জটিল বাউন্ডিং বক্সের ভিতরে ফরগ্রাউন্ড পিক্সেলগুলো অস্বাভাবিকভাবে ঘন থাকে তখন `render-png-foreground-dense` দিয়ে ব্যর্থ হয়। যেসব PNG ফরম্যাট সমর্থিত নয় সেগুলো `render-png-unsupported` দিয়ে ব্যর্থ হয় এবং Adam7 ইন্টারলেস্ড PNG বা অসমর্থিত ইনডেক্সড-কালার বিট ডেপথের জন্য ফরম্যাট-নির্দিষ্ট নির্দেশনা দেওয়া হয়। এটি খালি স্ক্রিনশট, স্পষ্ট ক্যানভাস ক্লিপিং, অন্ডার-রেন্ডার্ড ফরগ্রাউন্ড ফুটপ্রিন্ট, প্রথম পিক্সেল-স্তরের ক্রাউডিং ব্যর্থতা এবং ভুল রেন্ডারার PNG এক্সপোর্ট সেটিংসকে কোনো প্ল্যাটফর্ম-নির্দিষ্ট শেল ডিপেন্ডেন্সি যোগ না করেই ধরতে পারে। এটি এখনও OCR-স্তরের লেবেল রিকগনিশন, নির্ভুল টেক্সট-ওভারল্যাপ ডিটেকশন বা টোপোলজি-সংরক্ষণকারী ছবি মেরামত নয়. + +যখন ডায়াগনস্টিকগুলো একটি ব্যর্থ কম্পাইল বা রেন্ডার-স্মোক রান দেখায়, তখন CLI একটি টোপোলজি-সংরক্ষণকারী মেরামত ব্রিফও লিখতে পারে: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +মেরামত ব্রিফটি schema `notemd.circuitikz.repair-brief.v1` ব্যবহার করে এবং সোর্স `CircuitSpec`, টোপোলজি সিগনেচার, কম্পাইল/রেন্ডার ডায়াগনস্টিক, অনুমোদিত এডিট, নিষিদ্ধ টোপোলজি এডিট, পরবর্তী ভেরিফিকেশন ধাপ এবং একটি স্ট্রাকচারড `repairPrompt` সহ থাকে। প্রম্পট রোলটি হল `topology-preserving-circuitikz-repair`; এর `diagnosticFocus` তালিকাটি কম্পাইল/রেন্ডার ডায়াগনস্টিক থেকে নেওয়া হয়, এবং এর `acceptanceCriteria` এর জন্য ক্যান্ডিডেট ভ্যালিডেশন এবং তাজা কম্পাইল ও রেন্ডার-স্মোক চেক প্রয়োজন। এটি পরবর্তী মেরামত লুপের জন্য হ্যান্ডঅফ ফরম্যাট, Notemd ইতিমধ্যে স্বায়ত্তশাসিত ভিজ্যুয়াল মেরামত চালাচ্ছে এমন দাবি নয়. + +একটি মেরামত ক্যান্ডিডেট তৈরি হওয়ার পর, CLI আউটপুট লেখার আগে ব্রিফের সাথে এটি ভ্যালিডেট করতে পারে: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief` ব্রিফ থেকে ক্যান্ডিডেট টোপোলজি সিগনেচার চেক করে এবং এটি `--topology-reference` এর সাথে পারস্পরিকভাবে বাদ দেয়। এই গেট পাস হলে শুধুমাত্র টোপোলজি সংরক্ষণ প্রমাণিত হয়; ক্যান্ডিডেটটির এখনও কম্পাইল ডায়াগনস্টিক এবং রেন্ডার-স্মোক চেক প্রয়োজন। + +`--repair-brief` ফলাফলে schema `notemd.circuitikz.repair-acceptance.v1` সহ `repairAcceptance` প্রমাণও অন্তর্ভুক্ত থাকে। এটি `topology-signature`, `compile-diagnostics` এবং `render-smoke` গেটগুলোকে `passed`, `failed` বা `missing` হিসেবে রিপোর্ট করে; `remainingChecks` প্রকাশ করে; এবং যতক্ষণ না ক্যান্ডিডেট রানে সমস্ত প্রয়োজনীয় প্রমাণ থাকে ততক্ষণ `readyForVisualAcceptance` কে ফলস অবস্থায় রাখে. + +CI বা রিলিজ প্রমাণের জন্য একটি টেকসই JSON ফাইল প্রয়োজন হলে `--repair-acceptance-output` এবং `--repair-brief` ব্যবহার করুন: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +রিলিজ বা মেইনটেইনার প্রমাণের জন্য, প্রতিটি সমর্থিত গোল্ডেন ফ্যামিলিকে অ্যাগ্রিগেট ফিক্সচার রানারের মাধ্যমে চালান: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +রানারটি `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json` এবং `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json` ব্যবহার করে, প্রতিটি ফিক্সচারের জন্য একই শেল-ফ্রি এক্সপোর্টার পাথ কল করে, এবং প্রতি-ফিক্সচার `compileExecution` ও `compileDiagnostics` সহ একটি অ্যাগ্রিগেট JSON রিপোর্ট ফেরত দেয়। এটি এখনও একটি মেইনটেইনার কমান্ড, প্লাগইন রানটাইম ডিপেন্ডেন্সি নয়. + +যখন কোনো মেইনটেইনার মেশিনে এখনও কোনো রেন্ডারার কনফিগার করা হয়নি, তখন `--compile-executable` ছাড়াই একই ফিক্সচার কমান্ড চালান এবং এনভায়রনমেন্ট গেটটিকে স্পষ্টভাবে পারসিস্ট করুন: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +সেই পাথটি এখনও ডিটারমিনিস্টিক ফিক্সচার `.tex` আর্টিফ্যাক্টগুলো লেখে, কিন্তু `ok: false` এর সাথে `rendererAvailability.status` কে `missing-configuration` এবং একটি `compile-executable-invalid` ডায়াগনস্টিক হিসেবে ফেরত দেয়। এটিকে শুধুমাত্র রেন্ডারার উপলব্ধতা প্রমাণ হিসেবে বিবেচনা করুন; এটি কম্পাইল, রেন্ডার-স্মোক বা ভিজ্যুয়াল অ্যাকসেপ্ট্যান্স নয়. + +### গোল্ডেন রেফারেন্স প্রম্পট শেপ + +নিকট ভবিষ্যতের ব্যবহারের জন্য, কোনো সার্কিট ভ্যারিয়েন্ট চাওয়ার আগে একটি রেন্ডারযোগ্য গোল্ডেন রেফারেন্স প্রদান করুন। একটি সীমিত প্রম্পটের উচিত প্রিঅ্যাম্বল, কোঅর্ডিনেট স্কেল, অ্যাঙ্কর স্টাইল এবং রাউটিং কনভেনশনগুলো সংরক্ষণ করা: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +একটি CMOS ইনভার্টারের জন্য, প্রম্পটটিতে শুধুমাত্র “CMOS ইনভার্টার আঁকুন” না বলে, একটি স্পষ্ট টোপোলজি এবং লেআউট সীমাবদ্ধতা অনুরোধ করা উচিত: + +- `VDD` কে উপরে রাখুন, `GND` কে নিচে রাখুন, ইনপুট বাম দিকে, আউটপুট ডান দিকে; +- use `pmos` above `nmos`, with shared gates and shared drains; +- output nodeটিকে drain junction-এ রাখুন এবং এটিকে `*-o` দিয়ে চিহ্নিত করুন; +- visually inferred coordinates-এর পরিবর্তে named anchors (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) ব্যবহার করুন; +- electrically required না হলে diagonal বা crossing wires এড়িয়ে চলুন. + +### Current Progress And Next Phases + +| Area | Current status | Next move | +|------|----------------|-----------| +| General diagrams | Spec-first pipeline implemented for Mermaid, JSON Canvas, Vega-Lite, HTML | Keep expanding semantic verification coverage | +| Editable figures | `editable-html-svg`, Draw.io XML, and Drawnix JSON artifact boundaries implemented | Add richer primitives only after tests prove editability | +| CLI support | `npm run diagram:export-artifact` exports editable HTML/SVG, Draw.io, and Drawnix from one `DiagramSpec` | নতুন টার্গেট আসার সময় লক্ষ্য-নির্দিষ্ট স্মোক ফিক্সচারগুলো যোগ করুন | +| circuitikz | `CircuitSpec -> circuitikz` প্রোটোটাইপ কমন-সোর্স, CMOS ইনভার্টার, `cmos-buffer` / `cmos-buffer-v1`, `cmos-transmission-gate` / `cmos-transmission-gate-v1`, `cmos-nand2` / `cmos-nand2-v1`, এবং `cmos-nor2` / `cmos-nor2-v1` গোল্ডেন টেমপ্লেট, প্রজেক্ট `layoutHints.inputSide` ও `layoutHints.outputSide` কে টোপোলজি না পরিবর্তন করে ডিটারমিনিস্টিক ইনপুট/আউটপুট পোর্ট প্লেসমেন্টে রূপান্তর করে, `--topology-reference` এর মাধ্যমে রিপেয়ার টোপোলজি ড্রিফট প্রত্যাখ্যান করে, `--repair-brief-output` এবং স্কিমা `notemd.circuitikz.repair-brief.v1` এর মাধ্যমে টোপোলজি-সংরক্ষণকারী রিপেয়ার ব্রিফ জারি করে, `diagnosticFocus`, `acceptanceCriteria`, এবং রোল `topology-preserving-circuitikz-repair` সহ কাঠামোগত `repairPrompt` হ্যান্ডঅফ কন্টেন্ট অন্তর্ভুক্ত করে, `--repair-brief` এর মাধ্যমে রিপেয়ার ক্যান্ডিডেটগুলো যাচাই করে, `notemd.circuitikz.repair-acceptance.v1` এর সাথে `readyForVisualAcceptance` ও `remainingChecks` ব্যবহার করে স্কিমা মাধ্যমে `repairAcceptance` গেট প্রমাণ ফেরত দেয়, `--repair-acceptance-output` এর মাধ্যমে সেই প্রমাণগুলো সংরক্ষণ করে, কম্পাইল লগগুলো পার্স করে, এক্সপ্লিসিট লোকাল রেন্ডারার চালাতে পারে এবং `--expected-artifact`, SVG `--expected-svg-text` যোগ করে, `aria-label`, `<title>`, এবং `<desc>` এর মাধ্যমে অ্যাক্সেসিবিলিটি মেটাডেটা চেক করে, লুকানো/ট্রান্সপারেন্ট SVG এলিমেন্ট বাদ দেয়, `<use href="#...">` এর জন্য পাথ-ওনলি লেবেলের `render-svg-text-path-only` / `pathOnlyGlyphUseCount` শ্রেণীবিভাগ, `render-svg-path-glyph-overlap` এর মাধ্যমে পাথ-ওনলি গ্লিফ প্লেসমেন্ট চেক, `Z/z` এর জন্য ক্লোজ-পাথ কারেন্ট-পয়েন্ট হ্যান্ডলিং, A/a আর্ক এক্সট্রিমার জন্য সঠিক আর্ক বাউন্ডস, C/S/Q/T কার্ভ এক্সট্রিমার জন্য সঠিক বেজিয়ার কার্ভ বাউন্ডস, স্ট্রোক-ওয়াইডথ-সচেতন SVG বাউন্ডস এবং লেবেল ওভারল্যাপ চেক, `polyline` / `polygon` ড্রয়িং জিওমেট্রি চেক, অবস্থিত `tspan` লেবেল জিওমেট্রি, `text-anchor`-সচেতন অবস্থিত টেক্সট জিওমেট্রি, SVG বাউন্ডেড-ক্যানভাস/টেক্সট-ওভারল্যাপ এবং লেবেল-ভার্সাস-ড্রয়িং স্মোকের জন্য ট্রান্সফর্ম-সচেতন জিওমেট্রি, এবং PNG ননব্ল্যাঙ্ক/ক্লিপড/ডেনস-ফরগ্রাউন্ড স্ক্রিনশট স্মোক চেক, ইনডেক্সড-কালার প্যালেট আলফা, গ্রেস্কেল/RGB tRNS ট্রান্সপারেন্ট স্যাম্পল, এবং Adam7 ইন্টারলেস্ড PNG ও ইনডেক্সড বিট-ডেপথ ফেইলিউরের জন্য ফরম্যাট-নির্দিষ্ট `render-png-unsupported` গাইডেন্স অন্তর্ভুক্ত করে, `foregroundBounds`, `foregroundDensity`, `render-png-content-clipped`, এবং `render-png-foreground-dense` এর মাধ্যমে শেল পার্সিং ছাড়া, `npm run diagram:smoke-circuitikz` এর মাধ্যমে অ্যাগ্রিগেট মেইনটেইনার স্মোক ফিক্সচারগুলো অন্তর্ভুক্ত করে, `rendererAvailability.status: "missing-configuration"` এবং `compile-executable-invalid` এর মাধ্যমে অনুপস্থিত রেন্ডারার কনফিগারেশন রেকর্ড করে, এবং জেনেরিক প্রিভিউ ডায়াগনোস্টিক, ডায়াগনোস্টিক সারসংখ্যা, ডায়াগনোস্টিক-সচেতন হিস্ট্রি এন্ট্রি, এবং `RenderArtifact.diagnostics` ও প্রিভিউ মডালের মাধ্যমে শুধুমাত্র সোর্স-ভিত্তিক ফলব্যাক রয়েছে | পাথ-ওনলি ভিজ্যুয়াল টেক্সটের জন্য OCR-স্তরের লেবেল রিকগনিশন, পিক্সেল-স্তরের নির্ভুল ওভারল্যাপ চেক, প্রয়োজনে আরও ব্যাপক SVG পাথ কভারেজ, শুধুমাত্র ঐচ্ছিক হিসেবে থাকলেই অটোমেটিক রেন্ডারার ইনস্টলেশন/ডিসকভারি, এবং অটোমেটেড টোপোলজি-সংরক্ষণকারী রিপেয়ার এক্সিকিউশন | +| TikZJax ইন্টিগ্রেশন | Obsidian-সাইড ডিসপ্লের জন্য ক্যান্ডিডেট রেন্ডার হোস্ট | এটিকে ঐচ্ছিক রাখুন; TikZJax কে হার্ড প্লাগইন রানটাইম ডিপেন্ডেন্সি করবেন না | + +## কনফিগারেশন + +| সেটিং | ডিফল্ট | প্রভাব | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | স্পেক-ফার্স্ট ও লেগাসি Mermaid এর মধ্যে টোগল করুন | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = Mermaid শুধুমাত্র; `'best-fit'` = নেটিভ টার্গেট + ফলব্যাক | +| `preferredDiagramIntent` | `undefined` (অটো) | অটোমেটিক ইন্টেন্ট ডিটেকশন ওভাররাইড করুন | +| `summarizeToMermaidLanguage` | `'en'` | ডায়াগ্রাম লেবেলের জন্য লক্ষ্য ভাষা | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | ডায়াগ্রাম জেনারেশনের জন্য পার-টাস্ক LLM | +| `autoMermaidFixAfterGenerate` | (কনস্ট্যান্ট থেকে) | Mermaid আউটপুটে লেগাসি ফিক্সার অটো-রান করুন | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | লোকাল ভল্ট জ্ঞান দিয়ে সোর্সকে অগমেন্ট করুন | + +### লোকাল নলেজ অগমেন্টেশন + +যখন এটি সক্রিয় থাকে, Notemd আপনার ভল্টের লোকাল নলেজ বেস (MiniSearch-ভিত্তিক) থেকে প্রাসঙ্গিক কনটেক্সট স্নিপেটগুলি সংগ্রহ করে এবং সেগুলিকে সোর্স মার্কডাউনের শুরুতে যোগ করে। অগমেন্টেশন প্রম্পটে উল্লেখ আছে: "শুধুমাত্র সহায়ক রেফারেন্স; সোর্স নোটের প্রাথমিক কাঠামোকে অক্ষুণ্ণ রাখুন।" + +### Compatibility Modes + +- **`legacy-mermaid`**: সমস্ত ইন্টেন্ট Mermaid-এ রাউট হয়। Non-Mermaid ইন্টেন্টগুলি (canvasMap, dataChart) বাধ্যতামূলকভাবে `flowchart` অথবা `mindmap`-এ পাঠানো হয়। কোনো ফলব্যাক চেইন নেই. +- **`best-fit`**: প্রতিটি ইন্টেন্ট তার নেটিভ টার্গেটে রাউট হয়। যদি প্রাথমিক টার্গেট ব্যর্থ হয়, তবে ফলব্যাক চেইন অনুসরণ করা হয় (যেমন, Vega-Lite → Mermaid → HTML)। + +## Preview & Export + +| Action | Method | +|--------|--------| +| SVG export | `mermaid.render()` / `vega.View.toSVG()` / SVG builder for Canvas | +| PNG export | SVG → Image → Canvas (device pixel ratio 1x-3x) → PNG ArrayBuffer | +| Source save | Raw artifact content saved with target-specific extension | +| Source-only preview | Non-inline artifacts with source content shown as code plus diagnostics, without iframe rendering | +| Semantic audit | Mermaid, JSON Canvas, Vega-Lite, এবং editable HTML/SVG কে `scripts/diagram-semantic-verification.js` দ্বারা যাচাই করা হয়েছে | + +**Caching**: RenderCache `{spec, target, theme}` এর deterministic JSON key ব্যবহার করে। In-flight deduplication ডুপ্লিকেট রেন্ডারিং রোধ করে. + +## টিপস + +- **`best-fit` mode দিয়ে শুরু করুন** — এটি প্রতিটি intent type এর জন্য সর্বোত্তম ভিজ্যুয়াল আউটপুট তৈরি করে +- **জটিল ডায়াগ্রামের জন্য শক্তিশালী মডেল ব্যবহার করুন** — ফ্লোচার্ট এবং ER ডায়াগ্রাম GPT-4o বা Claude থেকে উপকৃত হয় +- **ডোমেইন-নির্দিষ্ট ডায়াগ্রামের জন্য local knowledge সক্রিয় করুন** — সংশ্লিষ্ট vault context নির্ভুলতা বাড়ায় +- **`autoMermaidFixAfterGenerate` সেট করুন** — এটি ছাড়া Mermaid syntax error প্রায়ই দেখা যায় +- **লেগাসি ফিক্সারটি ব্যাপক** — যদি Mermaid preview ব্যর্থ হয়, তবে ম্যানুয়ালি fixer command চালালে প্রায়শই সমস্যার সমাধান হয় + +--- + +## পরবর্তী ধাপসমূহ + +- 🔗 [Wiki-Links](./wiki-links) — কনসেপ্টগুলো কীভাবে inline এ লিঙ্ক হয় +- 📝 [Concept Notes](./concept-notes) — ডায়াগ্রামের সোর্স ম্যাটেরিয়ালের জন্য কনসেপ্ট বের করুন +- 🔍 [Research](./research) — ওয়েব-থেকে পাওয়া ডেটা দিয়ে ডায়াগ্রামগুলোকে উন্নত করুন diff --git a/website/i18n/bn/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/bn/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..2206b250 --- /dev/null +++ b/website/i18n/bn/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "গবেষণা ও ওয়েব সার্চ" +description: "আপনার নোটগুলিতে ওয়েব সার্চ একীভূত করুন" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# গবেষণা ও ওয়েব সার্চ + +<TLDR> +**Notemd ওয়েব অনুসন্ধান করে এবং LLM-সারাংশিত ফলাফলগুলি সরাসরি আপনার নোটগুলিতে যোগ করে।** Tavily API হলো প্রধান অনুসন্ধান ব্যাকএন্ড; DuckDuckGo শূন্য-কনফিগারেশনের ফলস্বরূপ ব্যবহৃত হয়। ফলাফলগুলি সূত্রের উদ্ধৃতি সহ সারাংশিত হয় এবং `## Research` শিরোনামের নিচে যুক্ত হয়। এটি একক-নোট গবেষণা, ব্যাচ ফোল্ডার গবেষণা এবং সারাংশিকরণ ধাপের জন্য প্রতি-টাস্ক মডেল নির্বাচনকে সমর্থন করে। + +এটি [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge)-এর অংশ। +</TLDR> + +## সংক্ষিপ্ত বিবরণ + +গবেষণা হলো Notemd-এর অন্যতম শক্তিশালী ইন্টিগ্রেশন: এটি পড়া, অনুসন্ধান ও লেখার মধ্যে একটি চক্র সম্পন্ন করে। অপরিচিত শব্দ খুঁজে বের করার জন্য ব্রাউজারে যাওয়ার পরিবর্তে, আপনি সেটিকে হাইলাইট করুন এবং Notemd-কে অনুসন্ধান, সারাংশ তৈরি ও ফলাফলগুলি যোগ করতে দিন -- সবকিছুই আপনার ভল্টের মধ্যেই। + +এই প্রক্রিয়াটি সম্পূর্ণরূপে কনফিগারযোগ্য। আপনি অনুসন্ধান প্রদানকারী, সারাংশ লেখার LLM এবং ফলাফলগুলি সক্রিয় নোটে যোগ হবে নাকি আলাদা ফাইলে লেখা হবে তা নির্বাচন করতে পারেন। ব্যাচ মোড আপনাকে এক ক্লিকে ফোল্ডারের প্রতিটি নোট নিয়ে গবেষণা করার সুযোগ দেয়। + +## এটি কীভাবে কাজ করে + +### সার্চ-থেন-সামারাইজ পাইপলাইন + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **কোয়েরি এক্সট্রাকশন** -- Notemd আপনার নির্বাচন বা নোটের শিরোনাম থেকে অনুসন্ধান শব্দগুলি বের করে। +2. **ওয়েব সার্চ** -- প্রথমে Tavily ব্যবহার করা হয়। যদি কোনো API কী কনফিগার না করা থাকে, তবে DuckDuckGo স্বয়ংক্রিয়ভাবে ব্যবহৃত হয় (কোনো কীর প্রয়োজন নেই)। +3. **LLM সামারাইজেশন** -- কাঁচা অনুসন্ধান ফলাফলগুলি কনফিগার করা LLM-এ পাঠানো হয়, যা ইনলাইন সূত্রের উদ্ধৃতি সহ একটি সংক্ষিপ্ত সারাংশ তৈরি করে। +4. **অ্যাপেন্ড** -- ফরম্যাট করা সারাংশটি সক্রিয় নোটের `## Research` শিরোনামের নিচে যুক্ত হয়। + +### Tavily বনাম DuckDuckGo + +| দিক | Tavily | DuckDuckGo | +|--------|--------|------------| +| API কী | প্রয়োজন (ফ্রি টিয়ার উপলব্ধ) | প্রয়োজন নয় | +| ফলাফলের গুণমান | উচ্চতর (AI-এর জন্য বিশেষভাবে তৈরি) | সাধারণ অনুরোধের জন্য যথেষ্ট | +| রেট লিমিট | উদার বিনামূল্যের স্তর | থ্রটলিংয়ের অধীনে | +| কনফিগারেশন | সেটিংসে `tavilyApiKey` | শূন্য কনফিগারেশন -- স্বয়ংক্রিয় ফলবতী | + +### ব্যাচ ফোল্ডার রিসার্চ + +একটি ফোল্ডারে রাইট-ক্লিক করুন এবং **"Notemd: Research folder"** নির্বাচন করুন। ফোল্ডারের প্রতিটি `.md` ফাইল ধারাবাহিকভাবে (অথবা কনফিগার করা কনকারেন্সি পর্যন্ত সমান্তরালভাবে) প্রক্রিয়াকৃত হয়। প্রতিটি নোট তার নিজস্ব গবেষণা সারসংক্ষেপ পায়. + +## কনফিগারেশন + +| সেটিং | ডিফল্ট | প্রভাব | +|---------|---------|--------| +| `tavilyApiKey` | `''` | Tavily API কী। খালি থাকলে, শুধুমাত্র DuckDuckGo ব্যবহৃত হয়. | +| `researchProvider` / `researchModel` | DeepSeek | অনুসন্ধান ফলাফল সারসংক্ষেপ করার জন্য প্রতি-টাস্ক LLM | +| `maxResearchContentTokens` | `4000` | LLM-এ পাঠানো বিষয়বস্তুর জন্য টোকেন বাজেট। অতিরিক্ত অংশ কাটা হয়. | +| `researchAppendToNote` | `true` | সূত্র নোটে সারসংক্ষেপ যোগ করুন। যদি false হয়, তবে আলাদা একটি ফাইল তৈরি হয়. | +| `researchLanguage` | `'en'` | সারসংক্ষেপিত গবেষণার জন্য আউটপুট ভাষা | + +### প্রতি-টাস্ক মডেল সুপারিশ + +বহুভাষিক বিষয়বস্তু পরিচালনা এবং ভালোভাবে গঠিত গদ্য উৎপাদন করতে সক্ষম একটি মডেল গবেষণার জন্য উপকারী। বিবেচনা করুন: + +- **DeepSeek** -- ডিফল্ট, সাশ্রয়ী, ভালো মান +- **GPT-4o** -- উচ্চতর মানের সারসংক্ষেপ, উচ্চতর খরচ +- **Gemini Flash** -- দ্রুত ও সস্তা, সাধারণ প্রশ্নের জন্য উপযুক্ত + +## উদাহরণ + +আপনি *transformer attention mechanisms* বিষয়ক একটি গবেষণাপত্র পড়ছেন এবং *relative positional encoding* নামে একটি অপরিচিত শব্দ দেখতে পাচ্ছেন: Obsidian রেখে যাওয়ার পরিবর্তে. + +1. **"relative positional encoding"** কে হাইলাইট করুন +2. রাইট-ক্লিক --> **"Notemd: Research and summarize"** +3. Notemd ওয়েব অনুসন্ধান করে, শীর্ষ ফলাফলগুলো সারসংক্ষেপ করে এবং যোগ করে: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +এখন সারসংক্ষেপটি আপনার ভল্টের অংশ হয়ে গেছে, যা অনুসন্ধানযোগ্য, লিঙ্কযোগ্য এবং অফলাইনে অ্যাক্সেসযোগ্য। + +## টিপস + +- **সর্বোত্তম ফলাফলের জন্য একটি Tavily কী সেট করুন** -- এমনকি ফ্রি টিয়ারও খাঁটি DuckDuckGo-এর তুলনায় ভালো সামঞ্জস্য প্রদান করে. +- **একটি শক্তিশালী সারসংক্ষেপকারী মডেল ব্যবহার করুন** -- সস্তা মডেলগুলো সূক্ষ্ম প্রযুক্তিগত বিষয়বস্তুকে সরল করে দিতে পারে. +- **প্রাথমিক পঠনের পর ব্যাচ গবেষণা** করুন যাতে একসাথে অনেক নোটের মধ্যে ঘাটতিগুলো পূরণ করা যায়. +- **যোগ করা সারসংক্ষেপগুলো পর্যালোচনা করুন** -- LLM-এর ফলে উৎসের বিবরণ ভুল হতে পারে। গুরুত্বপূর্ণ দাবিগুলো যাচাই করুন. + +--- + +## পরবর্তী ধাপসমূহ + +- [Concept Notes](./concept-notes) -- গবেষণার ফলাফল থেকে গুরুত্বপূর্ণ শব্দগুলো বের করে সংরক্ষণ করুন +- [Wiki-Links](./wiki-links) -- আপনার ভল্টে গবেষণা থেকে প্রাপ্ত ধারণাগুলোকে একে অপরের সাথে লিঙ্ক করুন +- [Translation](./translation) -- গবেষণার সারসংক্ষেপগুলোকে অন্য ভাষায় অনুবাদ করুন +- [LLM প্রদানকারীগণ](/docs/providers/overview) -- সারসংক্ষেপণের জন্য ব্যবহৃত মডেলটি কনফিগার করুন diff --git a/website/i18n/bn/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/bn/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..58b2eec5 --- /dev/null +++ b/website/i18n/bn/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "অনুবাদ" +description: "নোট ও নির্বাচিত অংশগুলো অনুবাদ করুন" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# অনুবাদ + +<TLDR> +**Notemd LLM-চালিত অনুবাদ ব্যবস্থা ব্যবহার করে ২১টিরও বেশি ভাষার মধ্যে টেক্সট অনুবাদ করে।** এটি একক-নির্বাচন অনুবাদ, পূর্ণ-নোট অনুবাদ এবং ব্যাচ ফোল্ডার অনুবাদ সমর্থন করে। প্রতিটি অনুবাদ কাজের জন্য টাস্ক-ভিত্তিক সেটিংসের মাধ্যমে একটি নির্দিষ্ট প্রোভাইডার ও মডেল ব্যবহার করা যায়। আউটপুট ভাষা UI ভাষা থেকে স্বাধীনভাবে কনফিগার করা যায়। আপনার পছন্দ অনুযায়ী ফলাফলগুলো মূল টেক্সটের নিচে যোগ করা হয় অথবা একটি নতুন ফাইলে লেখা হয়. + +এটি [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge)-এর অংশ। +</TLDR> + +## সংক্ষিপ্ত বিবরণ + +Notemd-এ অনুবাদ কোনো ডিকশনারি অনুসন্ধান নয় -- এটি LLM-চালিত, কনটেক্সট-সচেতন অনুবাদ। মডেলটি পূর্ণ অনুচ্ছেদ বা নোটটি দেখে, সুর, ডোমেইন সংজ্ঞা ও বাক্য গঠন বজায় রাখে। এর ফলে ফ্রেজ-দ্বারা-ফ্রেজ সেবাগুলোর তুলনায়, বিশেষ করে প্রযুক্তিগত, একাডেমিক ও সৃজনশীল লেখার ক্ষেত্রে, উচ্চমানের ফলাফল পাওয়া যায়. + +এই ফিচারটি তিনটি স্কোপ সমর্থন করে: নির্বাচন, সক্রিয় নোট এবং পুরো ফোল্ডার। টাস্ক-ভিত্তিক মডেল নির্বাচনের সাথে মিলিয়ে, আপনি সাধারণ অনুবাদের জন্য দ্রুত মডেল (Gemini Flash) এবং সূক্ষ্মতা-সংবেদনশীল কন্টেন্টের জন্য শক্তিশালী মডেল (Claude Sonnet) ব্যবহার করতে পারেন -- আপনার গ্লোবাল প্রোভাইডার পরিবর্তন না করেই. + +## এটি কীভাবে কাজ করে + +### অনুবাদ কমান্ড + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **সোর্স সনাক্তকরণ** -- LLM কন্টেন্ট থেকে সোর্স ভাষা অনুমান করে। আপনাকে এটি ম্যানুয়ালি নির্দিষ্ট করার দরকার নেই. +2. **প্রম্পট গঠন** -- Notemd লক্ষ্য ভাষা, ঐচ্ছিক ডোমেইন ইঙ্গিত এবং অনুবাদ করার জন্য কন্টেন্ট সহ একটি প্রম্পট তৈরি করে. +3. **LLM অনুবাদ** -- কনফিগার করা `translateProvider` / `translateModel` অনুরোধটি প্রক্রিয়া করে। মডেলটি মার্কডাউন ফরম্যাটিং, উইকি-লিঙ্ক ও কোড ব্লকগুলো বজায় রাখে. +4. **আউটপুট** -- অনুবাদিত টেক্সটটি মূল টেক্সটের নিচে যোগ করা হয় অথবা ভল্টে একটি নতুন ফাইলে লেখা হয়. + +### ভাষা জোড়া + +Notemd অন্তর্নিহিত LLM যেসব ভাষা জোড়া সমর্থন করে, সেগুলো সবই সমর্থন করে। সাধারণ জোড়াগুলোর মধ্যে রয়েছে: + +| সোর্স | লক্ষ্য | সাধারণ গুণমান | +|--------|--------|----------------| +| ইংরেজি | চীনা (সরলীকৃত) | অসাধারণ | +| চীনা | ইংরেজি | উৎকৃষ্ট | +| ইংরেজি | জাপানি | খুব ভালো | +| ইংরেজি | জার্মান / ফরাসি / স্প্যানিশ | খুব ভালো | +| যেকোনো সমর্থিত | যেকোনো সমর্থিত | মডেল-নির্ভর | + +The `translateLanguage` setting controls the **output language**. The source language is auto-detected. + +### টাস্ক-ভিত্তিক মডেল নির্বাচন + +Translation quality varies significantly by model. Notemd lets you assign a dedicated model just for translation: + +| মডেল | গতি | Quality | খরচ | সর্বোত্তম জন্য | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | দ্রুত | ভালো | নিম্ন | অনানুষ্ঠানিক, উচ্চ-পরিমাণ | +| `gpt-4o-mini` | দ্রুত | ভালো | নিম্ন | দ্রুত অনুসন্ধান | +| `deepseek-chat` | মাঝারি | ভালো | খুব কম | বাজেট বহুভাষিক | +| `claude-3-5-sonnet` | মাঝারি | চমৎকার | মাঝারি | প্রযুক্তিগত / একাডেমিক | +| `gpt-4o` | মাঝারি | চমৎকার | মাঝারি | নুয়ান্স-সংবেদনশীল গদ্য | + +### ব্যাচ ফোল্ডার অনুবাদ + +একটি ফোল্ডারে রাইট-ক্লিক করুন এবং **"Notemd: Translate folder"** নির্বাচন করুন যাতে সেই ফোল্ডারের প্রতিটি নোট অনুবাদ হয়। প্রতিটি ফাইল স্বাধীনভাবে প্রক্রিয়াকৃত হয়। কনকারেন্সি সেটিং নির্ধারণ করে কতগুলো ফাইল একসাথে অনুবাদ হবে. + +## কনফিগারেশন + +| সেটিং | ডিফল্ট | প্রভাব | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | অনুবাদ কাজের জন্য বিশেষায়িত প্রদানকারী | +| `translateLanguage` | `'en'` | লক্ষ্য আউটপুট ভাষা | +| `translationAppendToNote` | `true` | মূল টেক্সটের নিচে অনুবাদিত টেক্সট যোগ করুন। যদি false হয়, তবে একটি নতুন ফাইল তৈরি হবে. | +| `batchConcurrency` | `3` | ব্যাচ অনুবাদের সময় একসাথে প্রক্রিয়াকৃত হওয়া ফাইলের সংখ্যা | + +## উদাহরণ + +আপনি একটি চীনা গবেষণা নোট পড়ছেন এবং ইংরেজি সংস্করণ চান: + +1. নোটটি খুলুন +2. রাইট-ক্লিক --> **"Notemd: Translate current file"** +3. Notemd চীনা ভাষা সনাক্ত করে, আপনার কনফিগার করা লক্ষ্য ভাষা (ইংরেজি)তে অনুবাদ করে এবং নিচে যোগ করে: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +অনুবাদের উপরে মূল চীনা টেক্সট অপরিবর্তিত থাকে। `## Translation` হেডিং একই ফাইলে উভয় সংস্করণ রাখে যাতে সহজে রেফারেন্স করা যায়. + +## টিপস + +- **বড় ফোল্ডারগুলোর ব্যাচ অনুবাদের জন্য Gemini Flash ব্যবহার করুন** -- এটি সবচেয়ে দ্রুত ও সস্তা বিকল্প। +- **উইকি-লিঙ্কগুলো সংরক্ষণ করুন** -- Notemd's prompt instructs the LLM to keep `[[wiki-links]]` intact in the translation. Verify after translation, as some models occasionally unwrap them. +- **আউটপুট ভাষা স্পষ্টভাবে নির্ধারণ করুন** -- auto-detection works for source, but always configure `translateLanguage` to avoid ambiguity about the target. +- **ব্যাচ-অনুবাদ কনসেপ্ট নোটগুলো** -- if your concept folder is in one language and you need it in another, folder-level translation handles it in one step. + +--- + +## পরবর্তী ধাপসমূহ + +- [Research](./research) -- Search and summarize in any language, then translate results +- [Workflows](./workflows) -- Chain translation with wiki-linking or concept extraction +- [Batch Processing](/docs/advanced/batch-processing) -- Concurrency and overwrite behavior for folder operations +- [LLM Providers](/docs/providers/overview) -- Choose the best model for your language pair diff --git a/website/i18n/bn/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/bn/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..0bd4bd26 --- /dev/null +++ b/website/i18n/bn/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "Wiki-Links" +description: "কী ধারণাগুলির জন্য স্বয়ংক্রিয় উইকি-লিঙ্ক তৈরি" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# Wiki-Links + +<TLDR> +**Notemd আপনার নোটের কী ধারণাগুলিতে স্বয়ংক্রিয়ভাবে `[[wiki-links]]` যোগ করে।** LLM আপনার বিষয়বস্তু পড়ে, প্রেক্ষাপটে গুরুত্বপূর্ণ শব্দগুলি চিহ্নিত করে এবং প্রতিটি ঘটনায় Obsidian-স্টাইলের উইকি-লিঙ্ক যোগ করে। ঐচ্ছিকভাবে ব্যাকলিঙ্কসহ কনসেপ্ট নোট ফাইল তৈরি করা হয়। সিনোনিম দমন, নাম পরিবর্তন/মুছে ফেলার সময় লিঙ্কের অখণ্ডতা এবং শুধুমাত্র বের করার মোড (কোনো ফাইল পরিবর্তন নয়) সমর্থন করে। Auto Link-এর বিপরীতে, যা শুধুমাত্র বিদ্যমান নোটের শিরোনামের সাথে মিল খোঁজে, Notemd AI ব্যবহার করে নতুন ধারণাগুলি চিহ্নিত করে এবং সংশ্লিষ্ট নোট তৈরি করে। এটি [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge)-এর অংশ। +</TLDR> + +## সংক্ষিপ্ত বিবরণ + +উইকি-লিঙ্কিং হল Notemd-এর মূল বৈশিষ্ট্য। এটি সাধারণ টেক্সটকে একটি সংযুক্ত জ্ঞান গ্রাফে রূপান্তরিত করে নিম্নলিখিতভাবে: + +1. **LLM দিয়ে আপনার নোট বিশ্লেষণ করা** +2. **কী ধারণাগুলি চিহ্নিত করা** (শব্দ, ব্যক্তি, পদ্ধতি, তত্ত্ব) +3. **প্রতিটি ঘটনায় `[[wiki-links]]` যোগ করা** +4. **ঐচ্ছিকভাবে ব্যাকলিঙ্কসহ কনসেপ্ট নোট তৈরি করা** + +## এটি কীভাবে কাজ করে + +### প্রক্রিয়া + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### উদাহরণ + +**প্রক্রিয়ার আগে:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**প্রক্রিয়ার পরে:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## ব্যবহার + +### মৌলিক: বর্তমান নোটে লিঙ্ক যোগ করা + +1. একটি নোট খুলুন +2. এডিটরে রাইট-ক্লিক করুন → **"Process file (add links)"** +3. কয়েক সেকেন্ড অপেক্ষা করুন +4. এখন ধারণাগুলি লিঙ্কযুক্ত হয়ে গেছে! + +### ব্যাচ: একাধিক নোট প্রক্রিয়াকরণ + +1. ফাইল এক্সপ্লোরারে একটি ফোল্ডারে রাইট-ক্লিক করুন +2. **"Notemd: Process folder (add links)"** নির্বাচন করুন +3. কনফিগার করুন: + - সমসাময়িকতা (সমান্তরালে কতগুলো ফাইল) + - বিদ্যমান লিঙ্কগুলো ওভাররাইট করুন (হ্যাঁ/না) +4. **প্রক্রিয়াকরণ**-এ ক্লিক করুন + +### নির্বাচনী: নির্দিষ্ট টেক্সট লিঙ্ক করুন + +1. প্রক্রিয়াকরণের জন্য টেক্সটকে হাইলাইট করুন +2. রাইট-ক্লিক → **"নির্বাচিত অংশ প্রক্রিয়াকরণ (লিঙ্ক যোগ করুন)"** +3. শুধুমাত্র হাইলাইট করা অংশটি বিশ্লেষণ করা হয় + +## Notemd বনাম অটো লিঙ্ক + +Obsidian-এ স্বয়ংক্রিয় উইকি-লিঙ্কিংয়ের জন্য দুটি পদ্ধতি রয়েছে: + +| | **অটো লিঙ্ক** | **Notemd** | +|--|---------------|-------------| +| লিঙ্ক সোর্স | ভল্টে বিদ্যমান নোটের শিরোনামগুলো | কন্টেন্টে LLM-দ্বারা চিহ্নিত ধারণাগুলো | +| নতুন ধারণাগুলোকে লিঙ্ক করা যায় | না — শিরোনামটি ইতিমধ্যেই বিদ্যমান থাকতে হবে | হ্যাঁ — AI ধারণাগুলো চিহ্নিত করে এবং নোট তৈরি করে | +| সমার্থক শব্দ পরিচালনা | না | হ্যাঁ — সমার্থক শব্দ দমন | +| ধারণা নোট তৈরি | না | হ্যাঁ — ব্যাকলিঙ্ক ও ডুপ্লিকেট অপসারণসহ | +| ব্যাচ প্রক্রিয়াকরণ | না (একক ফাইল) | হ্যাঁ (ফোল্ডার-স্তরে) | +| প্রতি-টাস্ক মডেল রাউটিং | না | হ্যাঁ | + +**Auto Link** হলো শিরোনাম-ম্যাচিং: যদি "Machine Learning" নামে কোনো নোট থাকে, তবে এটি `[[Machine Learning]]` দিয়ে সেগুলোকে ঘিরে ফেলে। যদি নোটটি না থাকে, তবে কিছুই ঘটে না. + +**Notemd** হলো AI-চালিত: LLM আপনার বিষয়বস্তু পড়ে, প্রেক্ষাপট বুঝে, এমন ধারণাগুলো চিহ্নিত করে যেগুলোকে লিঙ্ক করা *উচিত* — এমনকি যদি এখনও কোনো নোট না থাকে — এবং লিঙ্ক ও ধারণা নোট উভয়ই তৈরি করে. + +## বৈশিষ্ট্যসমূহ + +### সমার্থক শব্দ দমন + +**সমস্যা:** "transformer", "transformers", "Transformer architecture" → 3টি আলাদা ধারণা + +**সমাধান:** Notemd কাছাকাছি ডুপ্লিকেটগুলো সনাক্ত করে এবং ক্যাননিক্যাল ফর্ম ব্যবহার করে। + +**কনফিগারেশন:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### লিঙ্ক ইন্টিগ্রিটি + +**যখন আপনি একটি কনসেপ্ট নোটের নাম পরিবর্তন করেন:** +- সমস্ত উইকি-লিঙ্ক স্বয়ংক্রিয়ভাবে আপডেট হয় (Obsidian কোর ফিচার) +- ব্যাকলিঙ্কগুলি অক্ষত থাকে + +**যখন আপনি একটি কনসেপ্ট নোট মুছে ফেলেন:** +- লিঙ্কগুলি থাকে কিন্তু "unlinked mentions" হিসেবে দেখায় +- আপনি যেকোনো উদাহরণ থেকে এটি পুনর্গঠন করতে পারেন + +### Pure Extraction Mode + +**মূল ফাইল পরিবর্তন না করে কনসেপ্ট বের করুন:** + +1. রাইট-ক্লিক → **"Extract concepts (no linking)"** +2. কনসেপ্ট নোটগুলি তৈরি হয় +3. মূল ফাইল অক্ষত থাকে + +ব্যবহারের ক্ষেত্র: শুধুমাত্র পড়ার জন্য থাকা কন্টেন্ট বা চূড়ান্ত খসড়া প্রক্রিয়াকরণ। + +## Concept Note Generation + +### Automatic Creation + +**সক্রিয় করা হলে (ডিফল্ট), Notemd নিম্নলিখিত তৈরি করে:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### কনফিগারেশন + +**আউটপুট ফোল্ডার:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**হায়ারার্কিক্যাল স্ট্রাকচার:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**টেমপ্লেট:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## উন্নত বিকল্পসমূহ + +### কনটেক্সট উইন্ডো + +**কতটুকু চারপাশের টেক্সট পাঠাতে হবে:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +বড় = আরও ভালো নির্ভুলতা, উচ্চতর খরচ. + +### ন্যূনতম ঘটনাসংখ্যা + +**শুধুমাত্র বারবার আসা কনসেপ্টগুলোকে লিঙ্ক করুন:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +পুনরাবৃত্তিমূলক থিমগুলোতে মনোযোগ দেওয়ার জন্য 2 বা 3 এ সেট করুন. + +### বাদ দেওয়ার প্যাটার্নসমূহ + +**নির্দিষ্ট কিছু শব্দ বাদ দিন:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +সাধারণ শব্দগুলোর অতিরিক্ত লিঙ্কিং রোধ করে। + +### কাস্টম প্রম্পট + +**ডিফল্ট LLM নির্দেশাবলীকে ওভাররাইড করুন:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +ডোমেইন-নির্দিষ্ট প্রয়োজনে পরিবর্তন করুন (যেমন, "চিকিৎসা পরিভাষার উপর মনোযোগ দিন"). + +## টিপস ও সেরা অনুশীলন + +### ✅ করুন + +- **100 শব্দের বেশি থাকা নোটগুলো প্রক্রিয়া করুন** — সংক্ষিপ্ত নোটগুলো থেকে কম ধারণা পাওয়া যায় +- **আরও ভালো ধারণা চিহ্নিতকরণের জন্য শক্তিশালী মডেল ব্যবহার করুন** (GPT-4o, Claude) +- **গ্রহণ করার আগে পর্যালোচনা করুন** — প্রস্তাবিত লিঙ্কগুলো যুক্তিসঙ্গত কিনা দেখুন +- **ধাপে ধাপে তৈরি করুন** — 5-10টি নোট প্রক্রিয়া করুন, গ্রাফ পর্যালোচনা করুন, সেটিংস সামঞ্জস্য করুন + +### ❌ করবেন না + +- **অতিরিক্ত লিঙ্ক যোগ করবেন না** — প্রতিটি বিশেষ্যের জন্য লিঙ্কের দরকার নেই +- **ড্রাফটগুলো বারবার প্রক্রিয়া করবেন না** — ধারণাগুলো পরিবর্তিত হতে পারে, স্থিতিশীল হওয়া পর্যন্ত অপেক্ষা করুন +- **সমার্থক শব্দগুলো উপেক্ষা করবেন না** — "ML" ও "Machine Learning" এড়াতে সাপ্রেশন সক্রিয় করুন + +## কর্মক্ষমতা + +### গতি + +| নোটের আকার | GPT-4o-mini | Claude Sonnet | Ollama (local) | +|-----------|-------------|---------------|----------------| +| 500 শব্দ | ২-৩ সেকেন্ড | ৩-৫ সেকেন্ড | ৫-১০ সেকেন্ড | +| ২০০০ শব্দ | ৫-৮ সেকেন্ড | ১০-১৫ সেকেন্ড | ২০-৪০ সেকেন্ড | +| 5000+ শব্দ | চাঙ্কড (একাধিক কল) | চাঙ্কড | চাঙ্কড | + +### খরচ অনুমান + +**উদাহরণ: GPT-4o-mini ব্যবহার করে ১০০০ শব্দের নোট** +- ইনপুট: ~1500 টোকেন +- আউটপুট: ~200 টোকেন +- খরচ: ~ + +**১০০টি নোট ব্যাচ প্রক্রিয়াকরণ:** ~ + +## সমস্যা সমাধান + +### কোনো লিঙ্ক যোগ করা হয়নি। + +**যাচাই করুন:** +1. LLM কল সফল হয়েছে (Settings → Diagnostics) +2. নোটটিতে যথেষ্ট বিষয়বস্তু রয়েছে (>50 শব্দ) +3. ধারণাগুলি হলো প্রযুক্তিগত/নির্দিষ্ট (শুধুমাত্র সর্বনাম নয়) + +**চেষ্টা করুন:** +- আরও শক্তিশালী একটি মডেল ব্যবহার করুন। +- কনটেক্সট উইন্ডো বাড়ান +- API কীটির বৈধতা যাচাই করুন। + +### খুব বেশি লিঙ্ক + +**সমাধানসমূহ:** +1. ন্যূনতম ঘটনাসংখ্যা বাড়ান (২ বা ৩) +2. বাদ দেওয়ার তালিকায় সাধারণ শব্দগুলো যোগ করুন +3. একটি কম আক্রমণাত্মক মডেল ব্যবহার করুন। + +### ভুল ধারণাগুলো সংযুক্ত হয়েছে + +**সংশোধনসমূহ:** +1. ডোমেইন নির্দিষ্টতার জন্য কাস্টম প্রম্পট ব্যবহার করুন +2. সিনোনিম সাপ্রেশন সক্রিয় করুন +3. ম্যানুয়ালি পর্যালোচনা করুন এবং লিঙ্ক আলাদা করুন + +### নাম পরিবর্তনের পর লিঙ্কগুলো ভেঙে যায় + +**এটি স্বাভাবিক Obsidian আচরণ।** + +সমস্ত লিঙ্ক আপডেট করতে: +1. কনসেপ্ট নোটের নাম পরিবর্তন করুন +2. Obsidian স্বয়ংক্রিয়ভাবে `[[old]]` কে `[[new]]` এ আপডেট করে + +--- + +## পরবর্তী ধাপসমূহ + +- 📖 [Concept Notes](./concept-notes) — কনসেপ্ট নোট তৈরির গভীর বিশ্লেষণ +- 🔍 [Research Integration](./research) — লিঙ্কিংকে ওয়েব রিসার্চের সাথে একীভূত করুন +- 🎨 [Diagrams](./diagrams) — আপনার নলেজ গ্রাফকে দৃশ্যমান করুন diff --git a/website/i18n/bn/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/bn/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..38e21e71 --- /dev/null +++ b/website/i18n/bn/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "ওয়ার্কফ্লো" +description: "এক-ক্লিক বাটনের মাধ্যমে একাধিক টাস্ক চেইন করুন" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# ওয়ার্কফ্লো + +<TLDR> +**Notemd ওয়ার্কফ্লোগুলি একাধিক টাস্ককে একটি এক-ক্লিক অ্যাকশনে চেইন করে।** `add-links > extract-concepts > research > diagram` এর মতো সিকোয়েন্সগুলি একটি সরল DSL ব্যবহার করে সংজ্ঞায়িত করা হয়। ওয়ার্কফ্লোগুলি সাইডবার বাটন হিসেবে দেখা যায় যা বর্তমান নোট বা ফোল্ডারে পুরো চেইনটি চালায়। এতে পূর্বনির্ধারিত ওয়ার্কফ্লো থাকে; সেটিংসে নিজস্ব ওয়ার্কফ্লো তৈরি করা যায়। প্রতিটি ধাপ নিজস্ব পার-টাস্ক মডেল কনফিগারেশন ব্যবহার করে। + +এটি [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge)-এর অংশ। +</TLDR> + +## সংক্ষিপ্ত বিবরণ + +একটি ওয়ার্কফ্লো টাস্কগুলি একে একে চালানোর ঝামেলা দূর করে। লিঙ্ক যোগ করতে, ধারণা বের করতে, অপরিচিত শব্দ সম্পর্কে গবেষণা করতে এবং একটি ডায়াগ্রাম তৈরি করতে চারবার রাইট-ক্লিক করার পরিবর্তে, আপনি শুধুমাত্র একটি সাইডবার বাটন চাপলেই পুরো চেইনটি কার্যকর হয়। Notemd সিকোয়েন্সিং, এরর প্রোপাগেশন এবং অগ্রগতি রিপোর্টিং সামলায়। + +ওয়ার্কফ্লোগুলি একটি হালকা DSL (ডোমেইন-স্পেসিফিক ভাষা) এ সংজ্ঞায়িত হয়। এগুলি সেটিংসে থাকে, Obsidian সাইডবারে ক্লিকযোগ্য বাটন হিসেবে দেখা যায় এবং বর্তমান নোট বা পুরো ফোল্ডারে প্রয়োগ করা যায়। + +## এটি কীভাবে কাজ করে + +### ওয়ার্কফ্লো এক্সিকিউশন পাইপলাইন + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **পার্স** -- DSL স্ট্রিংটি `>` (বা `>`) দিয়ে টাস্ক আইডেন্টিফায়ারগুলির একটি ক্রমবদ্ধ তালিকায় ভাগ করা হয়। +2. **রিজলভ** -- প্রতিটি আইডেন্টিফায়ার একটি অভ্যন্তরীণ কমান্ডের (add-links, extract-concepts, research, translate, diagram ইত্যাদি) সাথে ম্যাপ হয়। +3. **এক্সিকিউট** -- ধাপগুলি ক্রমানুসারে চালানো হয়। প্রতিটি ধাপ তার নির্ধারিত পার-টাস্ক প্রোভাইডার ও মডেল ব্যবহার করে। +4. **এরর হ্যান্ডলিং** -- যদি কোনো ধাপ ব্যর্থ হয়, ওয়ার্কফ্লো আপনার এরর পলিসি অনুযায়ী হয় বন্ধ হয়ে যায় অথবা পরবর্তী ধাপে চলে যায়। +5. **ডন** -- একটি টোস্ট নোটিফিকেশন সাফল্য জানায় অথবা ব্যর্থ হওয়া ধাপগুলির তালিকা দেয়। + +### DSL ফরম্যাট + +ওয়ার্কফ্লোগুলি `>` দিয়ে আলাদা করা টাস্ক আইডেন্টিফায়ারগুলির একটি সিকোয়েন্স হিসেবে সংজ্ঞায়িত হয়: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**উপলব্ধ টাস্ক আইডেন্টিফায়ারগুলি:** + +| আইডেন্টিফায়ার | Action | +|------------|--------| +| `process-current-add-links` | সক্রিয় নোটে উইকি-লিঙ্ক যোগ করুন | +| `extract-concepts-current` | সক্রিয় নোট থেকে ধারণাগুলো বের করুন | +| `research-and-summarize` | নির্বাচিত টেক্সট বা নোটের শিরোনাম নিয়ে গবেষণা করুন | +| `process-current-translate` | সক্রিয় নোটটি অনুবাদ করুন | +| `summarize-to-mermaid` | সক্রিয় নোট থেকে একটি ডায়াগ্রাম তৈরি করুন | +| `generate-from-title` | নোটের শিরোনাম থেকে কন্টেন্ট তৈরি করুন | +| `extract-original-text` | মূল টেক্সট বের করুন (OCR/স্ক্যান করা কন্টেন্টের জন্য) | + +**ফোল্ডার-স্তরের ভ্যারিয়েন্টস** আইডেন্টিফায়ার নামে `current` এর জায়গায় `folder` বসানো হয়. + +### পূর্বনির্ধারিত বনাম কাস্টম ওয়ার্কফ্লো + +Notemd-এ সাধারণ প্যাটার্নগুলোর জন্য ইতিমধ্যে তৈরি ওয়ার্কফ্লো রয়েছে: + +| ওয়ার্কফ্লো | চেইন | ব্যবহারের ক্ষেত্র | +|----------|-------|----------| +| **ওয়ান-ক্লিক এক্সট্রাক্ট** | add-links > extract-concepts > research | একবারের প্রক্রিয়ায় একটি গবেষণা পেপার প্রক্রিয়া করুন | +| **ফুল পাইপলাইন** | add-links > extract-concepts > research > diagram | ভিজ্যুয়ালাইজেশনসহ সম্পূর্ণ জ্ঞান বের করা | +| **Translate + Link** | translate > add-links | লক্ষ্য ভাষায় কনসেপ্টগুলো অনুবাদ করে তারপর লিঙ্ক করা | + +**Custom workflows** সেটিংসে তৈরি করা হয়: + +1. **Settings** খুলুন --> **Notemd** --> **Workflows** +2. **"Add Workflow"**-এ ক্লিক করুন +3. DSL চেইন লিখুন (যেমন, `process-current-add-links>extract-concepts-current`) +4. এটার জন্য একটি ডিসপ্লে নাম দিন (যেমন, "Quick Link + Extract") +5. নতুন বাটনটি তৎক্ষণাৎ সাইডবারে দেখা দেবে + +## কনফিগারেশন + +| সেটিং | ডিফল্ট | প্রভাব | +|---------|---------|--------| +| `workflows` | পূর্বনির্ধারিত সেট | ওয়ার্কফ্লো সংজ্ঞাগুলোর অ্যারে (নাম + DSL) | +| `workflowContinueOnError` | `true` | বর্তমান ধাপ ব্যর্থ হলে পরবর্তী ধাপে যান | +| `workflowShowProgress` | `true` | প্রতিটি ধাপ সম্পন্ন হওয়ার পর একটি প্রগ্রেস টোস্ট দেখানো হবে | + +### ওয়ার্কফ্লোতে Per-Task Models + +একটি ওয়ার্কফ্লোর প্রতিটি ধাপে তার নিজস্ব পার-টাস্ক মডেল কনফিগারেশন ব্যবহার করে। DSL-এর মধ্যে সরাসরি মডেলগুলো নির্দিষ্ট করার দরকার নেই। রেজোলিউশনের ক্রম হলো: + +1. `useMultiModelSettings` থাকলে পার-টাস্ক প্রোভাইডার/মডেল +2. অন্যথায় গ্লোবাল `activeProvider` + +এর মানে হলো `add-links` DeepSeek-এ চালানো যেতে পারে আর `research` GPT-4o-এ চালানো হয় -- সবকিছু একই ওয়ার্কফ্লো ক্লিকের মধ্যেই। + +## উদাহরণ + +আপনি আপনার ভল্টে একটি মেশিন লার্নিং পেপারের PDF ইম্পোর্ট করেছেন এবং সম্পূর্ণ জ্ঞান বের করতে চান: + +1. ইম্পোর্ট করা নোটটি খুলুন +2. **"Full Pipeline"** সাইডবার বাটনে ক্লিক করুন +3. Notemd এগুলো চালায়: + - **ধাপ ১**: wiki-লিঙ্ক যোগ করুন -- `[[attention mechanism]]`, `[[transformer]]` ইত্যাদি. + - **ধাপ ২**: ধারণাগুলো বের করুন -- আপনার কনসেপ্ট ফোল্ডারে কনসেপ্ট নোট তৈরি করে + - **ধাপ ৩**: গবেষণা -- মূল শব্দগুলোর জন্য ওয়েব সোর্সগুলো সারসংক্ষেপ করে + - **ধাপ ৪**: ডায়াগ্রাম -- পেপারটির কাঠামোর একটি Mermaid মাইন্ডম্যাপ তৈরি করে +4. প্রায় ৩০ সেকেন্ড পর, আপনার নোটে লিঙ্ক থাকবে, কনসেপ্ট নোটগুলো থাকবে, গবেষণা যুক্ত হবে এবং একটি ডায়াগ্রাম ফাইল সংরক্ষিত হবে + +সবকিছু একটি মাত্র ক্লিক দিয়েই। + +## টিপস + +- **পূর্বনির্ধারিত ওয়ার্কফ্লো দিয়ে শুরু করুন** -- এগুলো সবচেয়ে সাধারণ প্যাটার্নগুলো অন্তর্ভুক্ত করে। শুধুমাত্র ভিন্ন সিকোয়েন্স দরকার হলেই কাস্টমাইজ করুন. +- **`workflowContinueOnError` সক্রিয় করুন** -- একটি ব্যর্থ ডায়াগ্রাম ধাপ পুরো পাইপলাইনকে বন্ধ করা উচিত নয়। +- **বৃহৎ পরিমাণে প্রক্রিয়াকরণের জন্য ফোল্ডার ওয়ার্কফ্লো ব্যবহার করুন** -- একটি ফোল্ডারে রাইট-ক্লিক করুন, একটি ওয়ার্কফ্লো নির্বাচন করুন, এবং প্রতিটি নোট প্রক্রিয়াকৃত হবে. +- **ওয়ার্কফ্লোগুলোকে স্পষ্টভাবে নামকরণ করুন** -- সাইডবারের জায়গা সীমিত। "Quick Extract" বা "Translate + Link"-এর মতো সংক্ষিপ্ত, কার্যভিত্তিক নাম ব্যবহার করুন. + +--- + +## পরবর্তী ধাপসমূহ + +- [Research](./research) -- ওয়ার্কফ্লোতে যোগ করার আগে রিসার্চ ধাপটি কী করে তা বুঝুন +- [Wiki-Links](./wiki-links) -- বেশিরভাগ ওয়ার্কফ্লোতে ব্যবহৃত মূল লিঙ্কিং বৈশিষ্ট্য +- [Concept Notes](./concept-notes) -- ওয়ার্কফ্লো ধাপ হিসেবে কনসেপ্ট এক্সট্রাকশন +- [Batch Processing](/docs/advanced/batch-processing) -- ফোল্ডার ওয়ার্কফ্লোর জন্য সময়সামঞ্জস্য ও অগ্রগতি প্রতিবেদন diff --git a/website/i18n/bn/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/bn/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..bc35a826 --- /dev/null +++ b/website/i18n/bn/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "কনফিগারেশন" +description: "Notemd-এর সেটিংস ও প্রেফারেন্সগুলো কনফিগার করুন" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# কনফিগারেশন + +<TLDR> +**Notemd কনফিগারেশন 6টি মূল অঞ্চলকে অন্তর্ভুক্ত করে:** (1) LLM প্রোভাইডার ও API কী, (2) টাস্ক-ভিত্তিক মডেল নির্বাচন, (3) আউটপুট পাথ ও টেমপ্লেট, (4) UI ভাষা ও আউটপুট ভাষা, (5) সার্চ সার্ভিস (Tavily/DuckDuckGo), (6) কাস্টম ওয়ার্কফ্লো। সমস্ত সেটিংস Obsidian Settings → Notemd-এ রয়েছে। পরিবর্তনগুলো তৎক্ষণাৎ কার্যকর হয়. +</TLDR> + +## Settings Overview + +Access: **Obsidian Settings (⚙️) → Notemd** + +### Main Sections + +1. **Provider Configuration** — API কী, বেস URLs, মডেলসমূহ +2. **Task Settings** — টাস্ক-ভিত্তিক মডেল নির্বাচন +3. **Output Configuration** — জেনারেট করা ফাইলগুলো কোথায় সংরক্ষণ করতে হবে +4. **Language Settings** — UI ও আউটপুট ভাষাসমূহ +5. **Search Integration** — Tavily/DuckDuckGo সেটআপ +6. **Workflows** — কাস্টম বাটন চেইনস +7. **Advanced** — ডায়াগনস্টিক্স, ব্যাচ প্রসেসিং, চাঙ্কিং + +--- + +## 1. Provider Configuration + +### Adding a Provider + +1. ড্রপডাউন থেকে **প্রোভাইডার নির্বাচন** করুন (30+ উপলব্ধ) +2. **API কী লিখুন** +3. **ঐচ্ছিক**: কাস্টম বেস URL সেট করুন (প্রক্সি/গেটওয়ের জন্য) +4. **"Get Model List"-এ ক্লিক করুন** যাতে সংযোগ যাচাই করা যায় +5. **ডিফল্ট মডেল নির্বাচন করুন** + +### সাধারণ প্রদানকারীগণ + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Local) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### একাধিক প্রদানকারী + +আপনি একাধিক প্রদানকারী কনফিগার করতে পারেন এবং প্রতিটি টাস্কের জন্য সেগুলোর মধ্যে সুইচ করতে পারেন: +- **মূল প্রদানকারী**: ফলব্যাক হিসেবে ব্যবহৃত হয় +- **টাস্ক-নির্দিষ্ট প্রদানকারী**: নির্দিষ্ট টাস্কগুলোর জন্য ওভাররাইড করা হয় + +--- + +## 2. টাস্ক-নির্দিষ্ট মডেলসমূহ + +খরচ/গুণমান অপ্টিমাইজ করার জন্য বিভিন্ন টাস্কের জন্য ভিন্ন মডেল কনফিগার করুন: + +### টাস্কের ধরণ + +| কাজ | ডিফল্ট মডেল | উদ্দেশ্য | +|------|--------------|---------| +| **লিঙ্কিং** | মূল প্রদানকারী | wiki-লিঙ্কগুলোর জন্য ধারণাসমূহ চিহ্নিত করুন | +| **কনসেপ্ট জেনারেশন** | মূল প্রদানকারী | ধারণাগুলি বের করুন এবং বর্ণনা করুন | +| **রিসার্চ** | মূল প্রদানকারী | ওয়েব সার্চের ফলাফলগুলি সারসংক্ষেপ করুন | +| **অনুবাদ** | মূল প্রদানকারী | টেক্সট অনুবাদ করুন | +| **ডায়াগ্রাম জেনারেশন** | মূল প্রদানকারী | Mermaid/Canvas ডায়াগ্রাম তৈরি করুন | + +### উদাহরণ: খরচ-অপ্টিমাইজড সেটআপ + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### কীভাবে কনফিগার করতে হয় + +1. **Settings → Notemd → Task Settings** +2. প্রতিটি টাস্কের জন্য, নির্বাচন করুন: + - ✅ **Use main provider** (default) + - 🔄 **Use custom provider** → প্রদানকারী + মডেল নির্বাচন করুন + +--- + +## 3. Output Configuration + +### Concept Notes Output + +**নতুন কনসেপ্ট নোটগুলো কোথায় সংরক্ষিত হয়:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**টেমপ্লেট:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### ফোল্ডার স্ট্রাকচার অপশনস + +**অপশন ১: ফ্ল্যাট (সমস্ত কনসেপ্ট একটি ফোল্ডারে)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**অপশন ২: হায়ারার্কিক্যাল (সোর্স ফোল্ডার অনুযায়ী)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +কনফিগার করুন: **Settings → Output → Use Hierarchical Folders** + +### ডায়াগ্রাম আউটপুট + +**ডায়াগ্রামগুলো কোথায় সংরক্ষিত হয়:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**ফরম্যাট:** +- `.mmd` (Mermaid source) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. ভাষা সেটিংস + +### UI Language + +**ইন্টারফেস ভাষা** (বাটন, মেনু, ডায়ালগস): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +সমর্থিত: English, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Русский, العربية, এবং আরও. + +### আউটপুট ভাষা + +**জেনারেটেড কন্টেন্টের ভাষা** (ধারণা নোট, গবেষণা সারসংক্ষেপ): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**ব্যবহারের ক্ষেত্র:** চীনা UI + ইংরেজি আউটপুট দিয়ে দ্বিভাষিক গবেষণা। + +### অনুবাদের লক্ষ্য + +**অনুবাদ কাজের জন্য ডিফল্ট লক্ষ্য ভাষা:** + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. সার্চ ইন্টিগ্রেশন + +### Tavily (সুপারিশকৃত) + +**AI-অপ্টিমাইজড সার্চ সার্ভিস:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +Get key: [tavily.com](https://tavily.com/) + +**বৈশিষ্ট্যসমূহ:** +- উচ্চ-মানের ফলাফল +- AI-অপ্টিমাইজড সারসংক্ষেপ +- সূত্রের উদ্ধৃতি + +### DuckDuckGo (পরীক্ষামূলক) + +**API কী প্রয়োজন নয়:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**নোট:** কম মান, কোনো কাস্টমাইজেশন নেই। + +--- + +## 6. ওয়ার্কফ্লো কনফিগারেশন + +### কাস্টম ওয়ার্কফ্লো তৈরি করা + +**ওয়ার্কফ্লোগুলো একাধিক টাস্ককে একটি বাটনে চেইন করে।** + +1. **Settings → Workflows → Add Workflow** +2. **Name**: "Paper Analysis Flow" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **Save** + +বাম সাইডবারে একটি নতুন বাটন দেখা যায়। + +### DSL Syntax + +**Format:** `action1>action2>action3` + +**Available Actions:** +- `process-current-add-links` — বর্তমান নোটে উইকি-লিঙ্ক যোগ করা +- `extract-concepts-current` — কনসেপ্ট নোট তৈরি করা +- `research-and-summarize` — ওয়েব রিসার্চ + সারাংশ +- `translate-current` — বর্তমান নোট অনুবাদ করা +- `summarize-as-mermaid` — Mermaid ডায়াগ্রাম তৈরি করা +- `process-folder-add-links` — ফোল্ডারগুলো ব্যাচ প্রসেস করা + +**Example Workflows:** + +**দ্রুত ধারণা বের করা:** +``` +process-current-add-links>extract-concepts-current +``` + +**গভীর গবেষণা:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**বহুভাষিক বিশ্লেষণ:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. উন্নত সেটিংস + +### ব্যাচ প্রক্রিয়াকরণ + +**একই সাথে একাধিক ফাইল প্রক্রিয়া করা:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +বেশি = দ্রুত কিন্তু আরও API কল হয়. + +### স্মার্ট চাঙ্কিং + +**দীর্ঘ নোটের জন্য, চাঙ্কে ভাগ করা:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +টোকেন লিমিট সংক্রান্ত ত্রুটি রোধ করে. + +### ডায়াগনস্টিক্স প্যানেল + +**বিস্তারিত লগ দেখা:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +দেখায়: +- API রিকোয়েস্ট/রেসপন্স +- টোকেন ব্যবহার +- প্রক্রিয়াকরণ সময় +- ত্রুটি + +### ডুপ্লিকেট ধারণা সনাক্তকরণ + +**নিকটবর্তী ডুপ্লিকেট ধারণাগুলি এড়ান:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +উচ্চতর = আরও আক্রমণাত্মক মার্জিং. + +--- + +## Configuration Profiles + +### Export/Import Settings + +**ডিভাইসগুলির মধ্যে কনফিগারেশন শেয়ার করুন:** + +1. **Settings → Advanced → Export Configuration** +2. Saves `notemd-config.json` +3. নতুন ডিভাইসে: **Import Configuration** + +**কী অন্তর্ভুক্ত রয়েছে:** +- Provider API keys (optional) +- Model selections +- Output paths +- Custom workflows + +--- + +## Recommended Configurations + +### For Students + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### For Researchers + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### গোপনীয়তা-সচেতন ব্যবহারকারীদের জন্য + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### দ্বিভাষিক কাজের জন্য + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## কনফিগারেশন সমস্যা সমাধান + +### সেটিংস সংরক্ষিত হয়নি +- `.obsidian/plugins/notemd/`-এ ফাইলের অনুমতি পরীক্ষা করুন +- চেষ্টা করুন: প্লাগইন নিষ্ক্রিয় করুন → পুনরায় সক্রিয় করুন + +### API কী অবৈধ +- অতিরিক্ত স্পেস নেই +- মেয়াদ পরীক্ষা করুন +- প্রদানকারীর ড্যাশবোর্ডে ক্রেডিট যাচাই করুন + +### মডেলগুলি লোড হচ্ছে না +- রিফ্রেশ করতে "Get Model List"-এ ক্লিক করুন +- নেটওয়ার্ক সংযোগ পরীক্ষা করুন +- ভিন্ন প্রদানকারী চেষ্টা করুন + +--- + +## পরবর্তী ধাপসমূহ + +- 📖 [Explore Features](../features/wiki-links) +- 🔌 [Provider Setup Guides](../providers/overview) +- ❓ [FAQ](../faq) diff --git a/website/i18n/bn/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/bn/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..771a26ba --- /dev/null +++ b/website/i18n/bn/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "ইনস্টলেশন" +description: "Obsidian-এ Notemd কীভাবে ইনস্টল করবেন" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# ইনস্টলেশন + +<TLDR> +**২ মিনিটের মধ্যে Notemd ইনস্টল করুন।** দুটি পদ্ধতি: (১) Obsidian Community Plugins (সুপারিশকৃত, ওয়ান-ক্লিক ইনস্টল), অথবা (২) GitHub Releases এর মাধ্যমে ম্যানুয়াল ইনস্টলেশন। Obsidian 0.15.0+ প্রয়োজন। Windows, macOS, Linux, iOS এবং Android-এ কাজ করে। কোনো বাহ্যিক ডিপেন্ডেন্সি নেই। 4k+ ডাউনলোড, MIT লাইসেন্সযুক্ত. +</TLDR> + +## পদ্ধতি ১: Community Plugins (সুপারিশকৃত) + +1. **Obsidian Settings** খুলুন (⚙️ আইকন অথবা `Ctrl/Cmd + ,`) +2. **Community plugins**-এ যান +3. **Browse**-এ ক্লিক করুন +4. **"Notemd"** খুঁজুন +5. **Install**-এ ক্লিক করুন +6. **Enable**-এ ক্লিক করুন + +**সম্পন্ন!** আপনার বাম সাইডবারে Notemd আইকনটি দেখা যাবে. + +## পদ্ধতি ২: ম্যানুয়াল ইনস্টলেশন + +### পূর্বশর্ত +- Obsidian 0.15.0 অথবা তার বেশি +- Git (ক্লোনিংয়ের জন্য ঐচ্ছিক) + +### ধাপসমূহ + +1. [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest) থেকে **ফাইলগুলি ডাউনলোড** করুন: + - `main.js` + - `styles.css` + - `manifest.json` + +2. **আপনার ভল্টের প্লাগইন ফোল্ডারটি খুঁজে বের করুন:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +যদি `plugins` ফোল্ডারটি না থাকে, তবে এটি তৈরি করুন. + +3. **Notemd ফোল্ডার তৈরি করুন:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **তিনটি ফাইল** এই `notemd` ফোল্ডারে কপি করুন. + +5. **Obsidian পুনরায় লোড করুন:** + - `Ctrl/Cmd + R` চাপুন, অথবা + - Obsidian পুনরায় শুরু করুন + +6. **প্লাগইনটি সক্রিয় করুন:** + - Settings → Community plugins + - তালিকায় "Notemd" খুঁজে বের করুন + - এটিকে চালু করুন + +## বিকল্প: BRAT এর মাধ্যমে ইনস্টল করুন + +যদি আপনি [BRAT plugin](https://github.com/TfTHacker/obsidian42-brat) ব্যবহার করেন: + +1. BRAT এর সেটিংস খুলুন +2. "বেটা প্লাগইন যোগ করুন"-এ ক্লিক করুন +3. ইনপুট করুন: `Jacobinwwey/obsidian-NotEMD` +4. "প্লাগইন যোগ করুন"-এ ক্লিক করুন +5. কমিউনিটি প্লাগইনগুলিতে Notemd সক্রিয় করুন + +## যাচাই + +ইনস্টলেশনের পর, Notemd ঠিকমতো কাজ করছে কিনা যাচাই করুন: + +1. যেকোনো নোট খুলুন +2. এডিটরে রাইট-ক্লিক করুন +3. আপনি Notemd কমান্ডগুলি দেখতে পাবেন যেমন: + - "ফাইল প্রক্রিয়াকরণ (লিঙ্ক যোগ করুন)" + - "ধারণা বের করুন" + - "গবেষণা ও সারসংক্ষেপ তৈরি করুন" + +## পরবর্তী ধাপসমূহ + +- **LLM প্রদানকারী কনফিগার করুন:** [Quick Start →](./quick-start) +- **সমস্যা সমাধান:** [Common Issues →](../advanced/troubleshooting) + +## সিস্টেমের প্রয়োজনীয়তা + +| প্ল্যাটফর্ম | সংস্করণ | অবস্থা | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | প্রয়োজনীয় | +| **Windows** | 7+ | ✅ সমর্থিত | +| **macOS** | 10.15+ | ✅ সমর্থিত | +| **Linux** | যেকোনো | ✅ সমর্থিত | +| **iOS** | 15+ | ✅ সমর্থিত | +| **Android** | 5+ | ✅ সমর্থিত | + +## অনইনস্টলেশন + +Notemd অপসারণ করতে: + +1. সেটিংস → কমিউনিটি প্লাগইনস +2. "Notemd" খুঁজুন +3. ❌ আইকনে ক্লিক করুন +4. ঐচ্ছিকভাবে, প্লাগইন ফোল্ডারটি মুছে ফেলুন: `<vault>/.obsidian/plugins/notemd/` + +আপনার ডেটা (নোট, কনসেপ্ট নোট ইত্যাদি) অক্ষত থাকবে। + +## আপডেট করা + +### অটো-আপডেট (সুপারিশকৃত) +Obsidian স্বয়ংক্রিয়ভাবে প্লাগইন আপডেটের জন্য চেক করে। যখন নতুন সংস্করণ উপলব্ধ থাকে: +1. সেটিংস → কমিউনিটি প্লাগইনস +2. "আপডেট চেক করুন"-এ ক্লিক করুন +3. Notemd-এর পাশে থাকা "আপডেট"-এ ক্লিক করুন + +### ম্যানুয়াল আপডেট +সর্বশেষ রিলিজটি ডাউনলোড করুন এবং আপনার প্লাগইন ফোল্ডারের তিনটি ফাইল প্রতিস্থাপন করুন। + +## সাহায্য পাওয়া + +- 📖 [কুইক স্টার্ট গাইড](./quick-start) +- ❓ [FAQ](../faq) +- 💬 [ডিসকর্ড কমিউনিটি](https://discord.gg/qnGgsQ9W) +- 🐛 [সমস্যা রিপোর্ট করুন](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/bn/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/bn/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..3560d92e --- /dev/null +++ b/website/i18n/bn/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "দ্রুত শুরু করার গাইড" +description: "5 মিনিটে Notemd দিয়ে শুরু করুন" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# দ্রুত শুরু করার গাইড + +<TLDR> +**5 মিনিটে Notemd ব্যবহার শুরু করুন।** তিনটি ধাপ: (1) একটি LLM API কী যোগ করুন (অথবা স্থানীয় Ollama ব্যবহার করুন), (2) একটি নোট খুলুন এবং “Process file (add links)” চালান, (3) সাইডবারে ওয়ান-ক্লিক ওয়ার্কফ্লো দেখুন। 30+ প্রদানকারীকে সমর্থন করে। কোডিংয়ের দরকার নেই। Ollama দিয়ে অফলাইনেও কাজ করে. +</TLDR> + +## ধাপ 1: আপনার প্রথম LLM প্রদানকারী কনফিগার করুন (2 মিনিট) + +### বিকল্প A: ক্লাউড প্রদানকারী (OpenAI, Anthropic, ইত্যাদি) + +1. **Settings** → **Notemd** খুলুন +2. **LLM Provider Configuration**-এর নিচে, ড্রপডাউন থেকে একটি প্রদানকারী নির্বাচন করুন +3. আপনার **API Key** লিখুন +4. (ঐচ্ছিক) উপলব্ধ মডেলগুলো দেখতে **“Get Model List”**-এ ক্লিক করুন +5. প্রতিটি টাস্ক টাইপের জন্য একটি মডেল নির্বাচন করুন + +**জনপ্রিয় বিকল্পসমূহ:** +- **OpenAI**: `gpt-4o-mini` (দ্রুত, সাশ্রয়ী) +- **Anthropic**: `claude-sonnet-4-6` (উচ্চ গুণমান) +- **DeepSeek**: `deepseek-chat` (অত্যন্ত সাশ্রয়ী) + +### বিকল্প B: স্থানীয় Ollama (API কীর দরকার নেই) + +1. [Ollama](https://ollama.com/) ইনস্টল করুন +2. একটি মডেল ডাউনলোড করুন: `ollama pull llama3.1` +3. Notemd সেটিংসে, প্রোভাইডার হিসেবে **"Ollama"** নির্বাচন করুন +4. মডেলের নাম: `llama3.1` (অথবা আপনি যেকোনো মডেল ডাউনলোড করতে পারেন) + +## ধাপ ২: আপনার প্রথম টাস্ক চেষ্টা করুন (১ মিনিট) + +### একটি নোটে উইকি-লিঙ্ক যোগ করুন + +1. অর্থপূর্ণ বিষয়বস্তুসহ যেকোনো নোট খুলুন +2. এডিটরে রাইট-ক্লিক করুন +3. **"Process file (add links)"** নির্বাচন করুন +4. কয়েক সেকেন্ড অপেক্ষা করুন +5. এখন মূল ধারণাগুলো `[[wiki-linked]]` হয়ে গেছে! + +**উদাহরণ:** + +**প্রক্রিয়ার আগে:** +``` +Machine learning models use neural networks to process data. +``` + +**প্রক্রিয়ার পরে:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## ধাপ ৩: বৈশিষ্ট্যগুলো অন্বেষণ করুন (২ মিনিট) + +### কনসেপ্ট নোট বের করুন + +1. রাইট-ক্লিক → **"Extract concepts from current file"** +2. Notemd প্রতিটি ধারণার জন্য আলাদা ফাইল তৈরি করে +3. আপনার কনফিগার করা কনসেপ্ট ফোল্ডারটি পরীক্ষা করুন (ডিফল্ট: `concepts/`) +4. প্রতিটি কনসেপ্ট নোটে আপনার মূল নোটের একটি ব্যাকলিঙ্ক রয়েছে + +### গবেষণা ও সারাংশ তৈরি করুন + +1. আপনার নোটে একটি বিষয়কে হাইলাইট করুন +2. রাইট-ক্লিক → **"Research and summarize"** +3. Notemd ওয়েব সার্চ করে (Tavily অথবা DuckDuckGo) +4. সারাংশটি উৎসসহ আপনার নোটে যুক্ত হয় + +### ওয়ান-ক্লিক ওয়ার্কফ্লো + +1. ওয়ার্কফ্লো বাটনগুলোর জন্য **বাম সাইডবার** দেখুন +2. যেকোনো নোটে **"One-Click Extract"**-এ ক্লিক করুন +3. এটি চালায়: লিঙ্ক যোগ করুন → ধারণা বের করুন → গবেষণা করুন → ডায়াগ্রাম তৈরি করুন +4. সবকিছু এক ক্লিকেই! + +## সাধারণ প্রথম কাজসমূহ + +### কাজ ১: একটি পেপার/আর্টিকেল প্রক্রিয়াকরণ করুন + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### কাজ ২: নোটগুলো অনুবাদ করুন + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### কাজ ৩: একটি জ্ঞান মানচিত্র তৈরি করুন + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## কাস্টমাইজেশনের টিপস + +### টাস্ক-ভিত্তিক মডেল নির্বাচন + +বিভিন্ন কাজের জন্য আপনি ভিন্ন ভিন্ন মডেল ব্যবহার করতে পারেন: + +| কাজ | সুপারিশকৃত মডেল | কারণ | +|------|------------------|-----| +| লিঙ্ক যোগ করুন | `gpt-4o-mini`, `deepseek-chat` | দ্রুত, অনেক কল | +| ধারণা বের করুন | `claude-sonnet-4-6`, `gpt-4o` | গুণমানসম্পন্ন বের করা | +| গবেষণা | `perplexity`, `gpt-4o` | ওয়েব-ভিত্তিক | +| অনুবাদ | `gemini-flash`, `gpt-4o` | বহুভাষিক | +| ডায়াগ্রাম | `claude-opus`, স্থানীয় মডেল | জটিল যুক্তি | + +**Settings → Notemd → Task-Specific Models**-এ কনফিগার করুন + +### কাস্টম ওয়ার্কফ্লো + +নিজস্ব বাটন তৈরি করুন: + +1. Settings → Notemd → Workflows +2. "Add Workflow"-এ ক্লিক করুন +3. DSL লিখুন: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. নাম দিন: "My Research Flow" +5. সাইডবারে একটি নতুন বাটন দেখা যাচ্ছে + +## সমস্যা সমাধান + +### "API Key Invalid" +- চেক করুন কি কীটি সঠিক (অতিরিক্ত স্পেস নেই) +- নিশ্চিত হওয়া উচিত যে অ্যাকাউন্টে ক্রেডিট আছে +- সেটিংসের "Connection Test" বাটন ব্যবহার করে পরীক্ষা করুন + +### "Model Not Found" +- উপলব্ধ মডেলগুলি দেখতে "Get Model List"-এ ক্লিক করুন +- কিছু প্রদানকারী নির্দিষ্ট মডেলের নাম চায় (যেমন, `gpt-4o` নয় `gpt-4`) + +### লিঙ্কগুলি দেখা যাচ্ছে না +- নিশ্চিত হওয়া উচিত যে নোটটিতে যথেষ্ট বিষয়বস্তু আছে (>50 শব্দ) +- আরও শক্তিশালী মডেল চেষ্টা করুন +- চেক করুন LLM কলটি সফল হয়েছে কিনা (ডায়াগনস্টিক্স প্যানেল দেখুন) + +### ধীর পারফরম্যান্স +- আরও দ্রুত মডেল ব্যবহার করুন (`gpt-4o-mini`-এ `gpt-4o`-এর পরিবর্তে) +- সেটিংসে চাঙ্ক সাইজ কমান +- ব্যাচ টাস্কগুলোর জন্য সমান্তরাল প্রক্রিয়াকরণ সক্রিয় করুন + +## পরবর্তী ধাপসমূহ + +- 📖 [সমস্ত বৈশিষ্ট্য অন্বেষণ করুন](../features/wiki-links) +- ⚙️ [উন্নত কনফিগারেশন](./configuration) +- 🔧 [LLM প্রদানকারী সেটআপ](../providers/overview) +- ❓ [FAQ](../faq) + +## ভিডিও টিউটোরিয়াল + +৩-মিনিটের কুইকস্টার্ট ভিডিওটি দেখুন (চীনা): +[【সম্পূর্ণ ওপেন-সোর্স, বিনামূল্যে! NotEMD ৩-মিনিটের দ্রুত গাইড】](https://b23.tv/lqR0RlA) + +## সাহায্য পাওয়া + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **Issues**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **Docs**: [পূর্ণ ডকুমেন্টেশন](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/bn/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/bn/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..3bbb0112 --- /dev/null +++ b/website/i18n/bn/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "Notemd-এর পরিচিতি" +description: "Obsidian-এর জন্য AI-চালিত জ্ঞান ভিত্তি নির্মাতা, যা স্থায়ী নোট রূপান্তর, ওয়ার্কফ্লো এবং spec-first ডায়াগ্রাম সমর্থন করে" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Notemd-এর পরিচিতি + +<TLDR> +**Notemd** (Note + EMD — Enhanced Markdown Documents) হলো একটি ওপেন-সোর্স Obsidian প্লাগইন, যা LLM-চালিত পঠনকে স্থায়ী জ্ঞানে রূপান্তর করে। চ্যাট-ভিত্তিক AI-এর বিপরীতে, যেখানে সেশন শেষ হলে অন্তর্দৃষ্টিগুলো অদৃশ্য হয়ে যায়, Notemd ফলাফলগুলোকে **সরাসরি আপনার vault-এ** wiki-লিঙ্ক, কনসেপ্ট নোট, গবেষণা সারসংক্ষেপ, অনুবাদ, ওয়ার্কফ্লো এবং ডায়াগ্রাম হিসেবে লিখে রাখে। এটি গবেষক, ছাত্র এবং জ্ঞান কর্মীদের জন্য তৈরি, যারা পঠন, গবেষণা এবং ভিজ্যুয়াল ব্যাখ্যাগুলোকে একটি কাঠামোবদ্ধ, বিকশিত হওয়া জ্ঞান গ্রাফে সংগ্রহ করতে চান. +</TLDR> + +## Notemd কী? + +Notemd **30+ Large Language Models** (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama এবং আরও) কে আপনার Obsidian ওয়ার্কফ্লোতে একীভূত করে, যাতে জ্ঞান সংগ্রহ, সংগঠন, অনুবাদ, গবেষণা এবং ডায়াগ্রাম তৈরি স্বয়ংক্রিয়ভাবে হয়. + +### প্রধান পার্থক্য: অস্থায়ী বনাম স্থায়ী জ্ঞান + +| দিক | চ্যাট-ভিত্তিক AI (ChatGPT, ইত্যাদি) | Notemd | +|--------|-------------------------------|--------| +| **ফলাফলগুলো কোথায় যায়** | চ্যাট হিস্ট্রি (অদৃশ্য হয়ে যায়) | আপনার Obsidian vault (স্থায়ী থাকে) | +| **ফরম্যাট** | সাধারণ টেক্সট উত্তর | কাঠামোবদ্ধ ফাইল: `[[wiki-links]]`, কনসেপ্ট নোট, ডায়াগ্রাম | +| **দীর্ঘমেয়াদী মূল্য** | প্রতিবার আবার জিজ্ঞাসা করতে হয় | একটি জ্ঞান গ্রাফে সংগ্রহিত হয় | +| **অফলাইন অ্যাক্সেস** | ইন্টারনেট প্রয়োজন | Ollama ব্যবহার করে সম্পূর্ণভাবে অফলাইনে কাজ করে | + +## মূল ক্ষমতাসমূহ + +### 1. **স্বয়ংক্রিয় উইকি-লিঙ্কিং** +- LLM আপনার নোটের মূল ধারণাগুলো চিহ্নিত করে +- প্রতিটি ঘটনায় `[[wiki-links]]` যোগ করে +- ইচ্ছামতো লিঙ্কযুক্ত ধারণা নোট তৈরি করে +- ডুপ্লিকেট এড়াতে সমার্থক শব্দ দমন + +### 2. **ধারণা নোট তৈরি** +- পেপার, নিবন্ধ, নোট থেকে মূল ধারণাগুলো বের করে +- ব্যাকলিঙ্কসহ আলাদা ধারণা ফাইল তৈরি করে +- কাস্টমাইজযোগ্য আউটপুট পথ ও টেমপ্লেট + +### 3. **ওয়েব রিসার্চ ইন্টিগ্রেশন** +- Obsidian-এর ভিতর থেকে Tavily বা DuckDuckGo অনুসন্ধান করুন +- LLM উৎস উদ্ধৃতি সহ ফলাফলগুলো সারসংক্ষেপ করে +- বর্তমান নোটে গবেষণা ফলাফলগুলো যোগ করে + +### 4. **বহুভাষিক অনুবাদ** +- নির্বাচিত অংশ বা সম্পূর্ণ নোটগুলো অনুবাদ করুন +- 21+ UI ভাষা সমর্থন করে +- স্বতন্ত্র আউটপুট ভাষা কনফিগারেশন +- ব্যাচ অনুবাদ সমর্থন + +### 5. **ডায়াগ্রাম তৈরি** +- **Mermaid**: ফ্লোচার্ট, সিকোয়েন্স, ক্লাস, স্টেট, ER, Gantt +- **JSON Canvas**: Obsidian নেটিভ লেআউট +- **Vega-Lite**: ডেটা চার্ট, টাইম সিরিজ, স্ক্যাটার প্লট +- **HTML / Editable HTML/SVG**: সেমান্টিক অ্যানোটেশনসহ স্বয়ংসম্পূর্ণ ফিগার আর্টিফ্যাক্ট +- **Draw.io / Drawnix artifact boundaries**: একই সেমান্টিক ফিগার মডেল থেকে মেইনটেইনার-ফেসিং এক্সপোর্ট পাথ +- **Circuit diagrams roadmap**: circuitikz/TikZJax সমর্থনটি কাস্টম রেফারেন্স, সীমিত প্রম্পট, রেন্ডার ফিডব্যাক এবং টোপোলজি/লেআউট ভ্যালিডেশনের উপর ভিত্তি করে ডিজাইন করা হচ্ছে, খাঁটি অনাবধীন LLM TikZ-এর পরিবর্তে +- **Preview diagnostics**: রেন্ডার আর্টিফ্যাক্টগুলো কম্পাইল/রেন্ডার স্মোক ডায়াগনস্টিকস প্রদর্শন করতে পারে, এবং প্লাগইন-সাইড LaTeX রানটাইম ছাড়াই নন-ইন-লাইন সোর্সগুলো পরীক্ষা করা যায় +- Mermaid ত্রুটিগুলোর জন্য সিনট্যাক্স অটো-ফিক্স + +### 6. **ওয়ান-ক্লিক ওয়ার্কফ্লো** +- সাইডবার বাটনগুলিতে একাধিক অ্যাকশন চেইন করুন +- DSL-ভিত্তিক ওয়ার্কফ্লো সংজ্ঞা +- উদাহরণ: `add-links > extract-concepts > research > diagram` + +## Notemd কে ব্যবহার করা উচিত? + +✅ **গবেষকরা** যারা পেপার পড়েন এবং লিটারেচার রিভিউ তৈরি করেন +✅ **শিক্ষার্থীরা** যারা স্টাডি নোট সাজান এবং কনসেপ্ট ম্যাপ তৈরি করেন +✅ **নলেজ ওয়ার্কাররা** যারা পড়ার অন্তর্দৃষ্টিগুলো স্থায়ী রাখতে চান +✅ **দ্বিভাষিক পেশাজীবীরা** যাদের অনুবাদ ও উইকি-লিঙ্কিংয়ের প্রয়োজন +✅ **গোপনীয়তা-সচেতন ব্যবহারকারীরা** যারা স্থানীয় LLM সহায়তা (Ollama) চান +✅ **পাওয়ার ইউজাররা** যারা প্রম্পট ও ওয়ার্কফ্লো কাস্টমাইজ করেন + +## Notemd + Obsidian কেন? + +**Obsidian** হলো একটি স্থানীয়-প্রথম, মার্কডাউন-ভিত্তিক নলেজ বেস। **Notemd** AI সুপারপাওয়ার যোগ করে: +- আপনার ডেটা আপনার ভল্টেই থাকে (কোনো ক্লাউড সার্ভিসে নয়) +- স্থানীয় মডেল দিয়ে অফলাইনে কাজ করে +- বিনামূল্যে এবং ওপেন সোর্স (MIT লাইসেন্স) +- বিদ্যমান Obsidian প্লাগইনগুলির সাথে একীভূত হয় +- হাজার হাজার নোট পর্যন্ত স্কেল করা যায় + +## শুরু করা + +1. **ইনস্টল করুন**: Settings → Community Plugins → Browse → "Notemd" +2. **কনফিগার করুন**: আপনার LLM প্রোভাইডারের API কী যোগ করুন (অথবা স্থানীয় Ollama ব্যবহার করুন) +3. **চেষ্টা করুন**: একটি নোট খুলুন → রাইট-ক্লিক করুন → "Process file (add links)" +4. **অন্বেষণ করুন**: ওয়ান-ক্লিক ওয়ার্কফ্লোর জন্য সাইডবার দেখুন + +👉 [Installation Guide](./getting-started/installation) | [Quick Start Tutorial](./getting-started/quick-start) + +## Diagram Capability Direction + +Notemd-এর ডায়াগ্রাম কাজটি "মডেলকে একটি সিনট্যাক্স স্ট্রিং লিখতে বলা" থেকে স্তরবদ্ধ পাইপলাইনের দিকে এগিয়ে যাচ্ছে: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +বর্তমান বাস্তবায়নটি ইতিমধ্যে Mermaid, JSON Canvas, Vega-Lite, HTML ফলব্যাক, এডিটেবল HTML/SVG, Draw.io XML আর্টিফ্যাক্ট, ন্যূনতম Drawnix JSON সাবসেট, প্রিভিউ ডায়াগনস্টিক্স/শুধুমাত্র সোর্স ফলব্যাক, এবং কমন-সোর্স ও CMOS ইনভার্টার গোল্ডেন টেমপ্লেটের জন্য অফলাইন `CircuitSpec -> circuitikz` প্রোটোটাইপ সমর্থন করে। সার্কিট ডায়াগ্রামগুলি আরও কঠিন ধরনের: circuitikz সঠিক বৈদ্যুতিক টোপোলজি প্রকাশ করতে পারে, কিন্তু অনিয়ন্ত্রিত LLM আউটপুট প্রায়শই অপঠনীয় রাউটিং বা রেন্ডার না হওয়া LaTeX তৈরি করে। পরবর্তী দিকটি হল গোল্ডেন-রেফারেন্স টেমপ্লেট, নোড-গ্রিড লেআউট নিয়ম, রেন্ডার ডায়াগনস্টিক্স, এবং স্ক্রিনশট ফিডব্যাক লুপের মাধ্যমে circuitikz-কে সীমাবদ্ধ রাখা. + +[Diagrams](./features/diagrams)-এ বিস্তারিত পড়ুন. + +## Architecture + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd বনাম অন্যান্য Obsidian AI Plugins + +বেশিরভাগ Obsidian AI প্লাগইনই কনভারসেশন-ফার্স্ট (আপনি জিজ্ঞাসা করেন, AI উত্তর দেয়, অন্তর্দৃষ্টি চ্যাটেই থাকে)। Notemd হল **রাইট-ফার্স্ট**: AI আপনার নোটগুলি প্রক্রিয়া করে এবং সরাসরি আপনার ভল্টে কাঠামোগত ফলাফল লিখে দেয়. + +| Capability | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| অটো উইকি-লিঙ্ক সন্নিবেশন | হ্যাঁ | না | না | না | +| কনসেপ্ট নোট তৈরি | হ্যাঁ (ব্যাকলিঙ্ক ও ডিডুপ সহ) | না | না | না | +| ডায়াগ্রাম তৈরি | হ্যাঁ (Mermaid, Canvas, Vega-Lite, HTML, সম্পাদনযোগ্য আর্টিফ্যাক্টস) | না | না | না | +| ওয়েব রিসার্চ ইন্টিগ্রেশন | হ্যাঁ (Tavily + DuckDuckGo) | না | না | না | +| ব্যাচ ফোল্ডার প্রক্রিয়াকরণ | হ্যাঁ | সীমিত | না | সীমিত | +| প্রতি-টাস্ক মডেল রাউটিং | হ্যাঁ (৭টি টাস্ক, স্বাধীন মডেল) | না | না | না | +| ওয়ান-ক্লিক ওয়ার্কফ্লো চেইন | হ্যাঁ (DSL) | না | না | না | +| অনুবাদ (ব্যাচ) | হ্যাঁ | না | না | না | +| ভল্টের সাথে চ্যাট | না | হ্যাঁ | না | না | +| সেমান্টিক সিমিলারিটি সার্চ | না | না | হ্যাঁ | না | +| টেমপ্লেট-ভিত্তিক জেনারেশন | না | না | না | হ্যাঁ | +| LLM প্রোভাইডারস | 36 (ক্লাউড + গেটওয়ে + লোকাল) | 3-5 | 2-3 | 3-5 | +| সম্পূর্ণ অফলাইন | হ্যাঁ (Ollama) | আংশিক | আংশিক | আংশিক | + +**Notemd কখন বেছে নেওয়া উচিত**: আপনি চান AI একটি স্থায়ী নলেজ গ্রাফ তৈরি করুক — শুধুমাত্র আপনার নোটগুলো নিয়ে চ্যাট নয়. + +**Copilot কখন বেছে নেওয়া উচিত**: আপনি Obsidian এর ভিতরে একটি কনভারসেশনাল AI অ্যাসিস্ট্যান্ট চান. + +**Smart Connections কখন বেছে নেওয়া উচিত**: আপনি সেমান্টিক সার্চের মাধ্যমে নোটগুলোর মধ্যে বিদ্যমান সম্পর্কগুলো আবিষ্কার করতে চান. + +## দর্শন + +**Notemd বিশ্বাস করে যে AI মানবের জ্ঞান-ভিত্তিক কাজকে সহায়তা করা উচিত, তা প্রতিস্থাপন করা উচিত নয়.** প্লাগইনটি: +- আপনাকে নিয়ন্ত্রণে রাখে (পরিবর্তন প্রয়োগ করার আগে পর্যালোচনা করুন) +- কনটেক্সট সংরক্ষণ করে (সমস্ত ফলাফল সূত্রের দিকে লিঙ্ক করা থাকে) +- গোপনীয়তা সম্মান করে (লোকাল LLM সমর্থন, কোনো টেলিমেট্রি নেই) +- এটি সহজেই সম্প্রসারণযোগ্য (উন্মুক্ত APIs, কাস্টম ওয়ার্কফ্লো) + +## ওপেন সোর্স + +- **লাইসেন্স**: MIT +- **সোর্স**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **কমিউনিটি**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **অবদান রাখুন**: PRs স্বাগত, [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) দেখুন + +--- + +**পরবর্তী**: [Installation →](./getting-started/installation) diff --git a/website/i18n/bn/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/bn/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..4a935bdc --- /dev/null +++ b/website/i18n/bn/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Obsidian AI জ্ঞান ব্যবস্থাপনা গাইড" +description: "AI ব্যবহার করে একটি সংযুক্ত জ্ঞান ভিত্তি গড়ে তোলার সম্পূর্ণ গাইড — wiki-লিঙ্ক ও ধারণা বের করার পর থেকে গবেষণা, অনুবাদ এবং ডায়াগ্রাম তৈরি পর্যন্ত" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Obsidian AI জ্ঞান ব্যবস্থাপনা গাইড + +<TLDR> +**Notemd LLM-চালিত পঠনকে স্থায়ী জ্ঞানে রূপান্তরিত করে: wiki-লিঙ্কগুলো ধারণাগুলোকে সংযুক্ত করে, ধারণা নোটগুলো একটি পুনরুদ্ধারযোগ্য গ্রাফ তৈরি করে, গবেষণা ওয়েবকে আপনার ভল্টে নিয়ে আসে, অনুবাদ ভাষার বাধা দূর করে, ডায়াগ্রামগুলো কাঠামোকে দৃশ্যমান করে, এবং ওয়ার্কফ্লোগুলো সবকিছুকে এক ক্লিকে সংযুক্ত করে।** এই গাইডটি কাঁচা নোট থেকে শুরু করে একটি সংযুক্ত, ভিজ্যুয়াল, বহুভাষিক জ্ঞান ভিত্তি পর্যন্ত পুরো পাইপলাইনটি আবরণ করে. +</TLDR> + +## কেন AI জ্ঞান ব্যবস্থাপনা? + +ঐতিহ্যবাহী নোট-নেওয়ার পদ্ধতি ফ্ল্যাট ফাইল তৈরি করে। ম্যানুয়াল wiki-লিঙ্ক থাকলেও বেশিরভাগ নোটই আলাদা থেকে যায়। Notemd LLM ব্যবহার করে সংযোগ স্তরটিকে স্বয়ংক্রিয় করে: + +- **LLMগুলো আপনার বিষয়বস্তু পড়ে** এবং কী গুরুত্বপূর্ণ তা চিহ্নিত করে — শব্দ, পদ্ধতি, ব্যক্তি, তত্ত্ব +- **প্রতিটি ধারণা উল্লেখের সময় স্বয়ংক্রিয়ভাবে লিঙ্ক যোগ হয়**, "see also"-এ লুকিয়ে না থেকে +- **ধারণা নোটগুলো** স্বতন্ত্র, পুনরুদ্ধারযোগ্য ফাইল হিসেবে তৈরি হয় +- **গবেষণা** ওয়েব থেকে প্রাপ্ত প্রেক্ষাপট দিয়ে নোটগুলোকে সমৃদ্ধ করে +- **ডায়াগ্রামগুলো** কাঠামোকে দৃশ্যমান করে — মাইন্ড ম্যাপ, ফ্লোচার্ট, একই বিষয়বস্তু থেকে ডেটা চার্ট + +ফলাফল: এমন একটি জ্ঞান গ্রাফ যা আপনি যতগুলো নোট প্রক্রিয়া করেন ততটাই বৃদ্ধি পায়, শুধুমাত্র লিঙ্ক যোগ করার কথা মনে রাখলেই নয়. + +## পূর্ণ পাইপলাইন + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +প্রতিটি ধাপ স্বাধীন। একটি বা সবগুলো ব্যবহার করুন। সবচেয়ে প্রভাবশালী ক্রম: **লিঙ্ক যোগ করুন → ধারণা নোট → ডায়াগ্রাম**. + +--- + +## 1. Wiki-লিঙ্ক: সংযোগগুলোকে স্পষ্ট করা + +Wiki-লিঙ্কগুলো একটি জ্ঞান গ্রাফের মূল ভিত্তি। Notemd একটি LLM ব্যবহার করে: + +1. আপনার নোটের বিষয়বস্তু পড়ুন (দীর্ঘ ডকুমেন্টগুলোর জন্য এটিকে চাঙ্কগুলোতে ভাগ করুন) +2. মূল ধারণাগুলো চিহ্নিত করুন — সাধারণ বিশেষ্যের চেয়ে নির্দিষ্ট, প্রযুক্তিগত শব্দগুলোকে অগ্রাধিকার দিন +3. প্রতিটি ঘটনায় `[[wiki-links]]` যোগ করুন +4. সমার্থক শব্দগুলো দমন করুন যাতে "ML" এবং "Machine Learning" আলাদা নোড তৈরি না করে + +### কখন ব্যবহার করবেন + +- **১০০ শব্দের বেশি থাকা প্রতিটি নোট** — ছোট নোটগুলোতে কম ধারণা থাকে +- **গবেষণা পেপার, প্রযুক্তিগত ডকুমেন্ট, মিটিং নোট** — এগুলোতে ডোমেইন-নির্দিষ্ট শব্দ প্রচুর থাকে +- **বিষয়বস্তু স্থিতিশীল হওয়ার পর** — ড্রাফটগুলোকে বারবার প্রক্রিয়া করবেন না + +### মূল সেটিংস + +| সেটিং | সুপারিশকৃত | কারণ | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek অথবা GPT-4o-mini | কম খরচে ভালো নির্ভুলতা | +| সমার্থক শব্দ দমন | চালু | ডুপ্লিকেট নোড রোধ করে | +| কনটেক্সট উইন্ডো | অনুচ্ছেদ | নির্ভুলতা ও খরচের ভারসাম্য | + +→ [Wiki-Links deep dive](/docs/features/wiki-links) + +--- + +## 2. ধারণা নোটস: পুনরুদ্ধারযোগ্য জ্ঞান নোডস + +Wiki-লিঙ্কগুলি ধারণাগুলিকে ইনলাইনে সংযুক্ত করে, কিন্তু ধারণা নোটসগুলি প্রতিটি ধারণাকে স্বাধীনভাবে পুনরুদ্ধারযোগ্য করে। প্রতিটি ধারণার জন্য নিজস্ব `.md` ফাইল থাকে: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### বের করার প্রক্রিয়া + +LLM প্রম্পটটি অত্যন্ত কাঠামোবদ্ধ: +- একবচন রূপে স্বাভাবিকীকরণ করুন +- একক শব্দের চেয়ে বহু-শব্দের ধারণাগুলিকে অগ্রাধিকার দিন ("Dielectric Relaxation" নয়, "Relaxation") +- রেফারেন্স/বিবলিওগ্রাফি বিভাগগুলি বাদ দিন +- নির্ধারণমূলক পার্সিংয়ের জন্য `CONCEPT:` লাইন আকারে আউটপুট দিন + +`Set<string>` এর মাধ্যমে বিভিন্ন চাঙ্কের মধ্যে ধারণাগুলি অনন্য করা হয়। প্রতিটি চাঙ্কে LLM ত্রুটি থাকলেও অপারেশনটি বন্ধ হয় না. + +### ব্যাকলিঙ্ক + +সক্রিয় করা হলে, প্রতিটি ধারণা নোট ট্র্যাক করে কোন সোর্স নোটগুলি এটিকে উল্লেখ করেছে। Obsidian এর নেটিভ ব্যাকলিঙ্ক প্যানেলটি রিভার্স কানেকশনগুলিও দেখায়. + +### ডুপ্লিকেশন দূরীকরণ + +Notemd এর 4-ধাপী অনন্যকরণ ইঞ্জিনটি নিম্নলিখিতগুলি শনাক্ত করে: +1. **সঠিক মিল** — কেস-ইনসেনসিটিভ ফাইলনাম তুলনা +2. **বহুবচন রূপ** — "Models.md" বনাম "Model.md" +3. **প্রতীকের স্বাভাবিকীকরণ** — "A-B.md" বনাম "A B.md" +4. **একক-শব্দ ধারণ** — "Machine Learning.md" থাকলে "ML.md" চিহ্নিত হয় + +### Key Settings + +| সেটিং | Recommended | কারণ | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` অথবা `🧠 concepts/` | Keeps vault organized | +| `extractConceptsAddBacklink` | On | Enables reverse lookup | +| `extractConceptsMinimalTemplate` | Off | Full template with Linked From | +| Per-task model | DeepSeek | Concept extraction doesn't need expensive models | +| Synonym suppression | On | Same setting affects both linking and extraction | + +→ [Concept Notes deep dive](/docs/features/concept-notes) + +--- + +## ৩. গবেষণা: ওয়েবকে অন্তর্ভুক্ত করা + +Notemd আপনার নোট-নেওয়ার কাজের প্রক্রিয়ায় ওয়েব সার্চকে একীভূত করে: + +1. **কোয়েরি গঠন** — আপনার নোটের শিরোনাম বা নির্বাচিত অংশটি একটি সার্চ কোয়েরি হয়ে ওঠে +2. **ওয়েব সার্চ** — Tavily (সুপারিশকৃত, API কী প্রয়োজন) অথবা DuckDuckGo (বিনামূল্যে, কোনো কী দরকার নেই) +3. **LLM সারসংক্ষেপ** — সার্চ ফলাফলগুলোকে একটি প্রাসঙ্গিক সারসংক্ষেপে রূপান্তরিত করা হয় +4. **নোটে যোগ করা** — সারসংক্ষেপটি কার্সরের অবস্থানে বা একটি নতুন বিভাগ হিসেবে যোগ করা হয় + +### কখন ব্যবহার করবেন + +- নতুন কোনো বিষয় প্রক্রিয়াকরণের আগে — প্রথমে ওয়েব থেকে প্রেক্ষাপট সংগ্রহ করুন +- যখন কোনো কনসেপ্ট নোটকে আরও সমৃদ্ধ করার প্রয়োজন হয় — গবেষণা করে তারপর লিঙ্ক যোগ করুন +- লিটারেচার রিভিউয়ের জন্য — নোটগুলোর একটি ফোল্ডার নিয়ে ব্যাচ-গবেষণা করুন + +### প্রধান সেটিংস + +| সেটিং | সুপারিশকৃত | কারণ | +|---------|-----------|-----| +| `researchProvider` | GPT-4o অথবা Claude | গবেষণার জন্য উচ্চমানের সারসংক্ষেপ প্রয়োজন | +| সার্চ সার্ভিস | Tavily | আরও ভালো সংশ্লিষ্টতা, কনফিগারযোগ্য গভীরতা | +| `maxResearchContentTokens` | 4000 | গভীরতা ও খরচের মধ্যে ভারসাম্য | + +→ [Research deep dive](/docs/features/research) + +--- + +## ৪. অনুবাদ: ভাষাগত বাধা দূর করা + +Notemd আপনার কনফিগার করা LLM ব্যবহার করে নোটগুলো অনুবাদ করে — এটি কোনো বিশেষ অনুবাদ API নয়। এর অর্থ হলো: + +- **প্রেক্ষাপট-সচেতন অনুবাদ** — LLM সম্পূর্ণ ডকুমেন্টটি বোঝে, শুধুমাত্র বাক্য দিয়ে দিয়ে নয় +- **প্রযুক্তিগত পরিভাষা পরিচালনা** — "gradient descent" এর অনুবাদ "梯度下降" হিসেবে থাকে, "坡度向下" নয় +- **ব্যাচ সমর্থন** — একই অপারেশনে নোটের পুরো ফোল্ডার অনুবাদ করা যায় +- **প্রতি-টাস্ক মডেল** — অনুবাদের জন্য Gemini Flash ব্যবহার করা হয় (দ্রুত, সস্তা, বহুভাষিক) + +### ভাষা সমর্থন + +Notemd নিজেই ২১টি UI ভাষা সমর্থন করে। অনুবাদের লক্ষ্য ভাষা প্রতি-টাস্ক অনুযায়ী কনফিগার করা যায়। সাধারণ জোড়া: EN↔ZH, EN↔JA, EN↔KO, EN↔DE, EN↔FR, EN↔ES. + +→ [Translation deep dive](/docs/features/translation) + +--- + +## ৫. ডায়াগ্রাম: কাঠামোকে দৃশ্যমান করা + +Notemd-এর ডায়াগ্রাম পাইপলাইনটি স্পেসিফিকেশন-ভিত্তিক: LLM একটি কাঠামোবদ্ধ `DiagramSpec` JSON তৈরি করে, তারপর অ্যাডাপ্টারগুলো এটিকে লক্ষ্য ফরম্যাটে অনুবাদ করে। এটি LLM-কে খসড়া Mermaid সিনট্যাক্স চাওয়ার চেয়ে আরও নির্ভরযোগ্য আউটপুট দেয়. + +### ইন্টেন্ট ডিটেকশন + +Notemd কন্টেন্ট থেকে সর্বোত্তম ডায়াগ্রাম ধরণ অনুমান করে: + +- **সংখ্যাসহ টেবিল** → data chart (Vega-Lite) +- **ক্লায়েন্ট/সার্ভার শব্দভাণ্ডার** → সিকোয়েন্স ডায়াগ্রাম (Mermaid) +- **এন্টিটি/প্রাইমারি কী** → ER ডায়াগ্রাম (Mermaid) +- **ধাপ/প্রক্রিয়া প্রবাহ** → ফ্লোচার্ট (Mermaid) +- **কনসেপ্ট ম্যাপ কীওয়ার্ড** → JSON Canvas (Obsidian নেটিভ) +- **ডিফল্ট** → মাইন্ড ম্যাপ (Mermaid) + +### Rendering Chain + +প্রাইমারি টার্গেট → ফলব্যাক → ফলব্যাক → HTML। যদি Mermaid সিনট্যাক্স ব্যর্থ হয়, তবে এটি ত্রুটি কনটেক্সটসহ LLM-এ একবার পুনরায় চেষ্টা করে, তারপর ন্যূনতম ডায়াগ্রামে ফিরে যায়. + +### Key Settings + +| সেটিং | Recommended | কারণ | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | On | spec-first এর মাধ্যমে আরও ভালো গুণমান | +| `experimentalDiagramCompatibilityMode` | `best-fit` | ইন্টেন্ট অনুযায়ী নেটিভ টার্গেট | +| `summarizeToMermaidProvider` | GPT-4o অথবা Claude | ডায়াগ্রাম স্পেসিফিকেশনগুলোর জন্য স্পেশিয়াল রিজনিং প্রয়োজন | +| `autoMermaidFixAfterGenerate` | On | LLM সিনট্যাক্স ত্রুটিগুলো স্বয়ংক্রিয়ভাবে শনাক্ত করে | +| স্থানীয় জ্ঞান বৃদ্ধি | ডোমেইন-নির্দিষ্ট অবস্থায় চালু | ভল্ট কনটেক্সটের সাহায্যে নির্ভুলতা উন্নত করে | + +→ [Diagrams deep dive](/docs/features/diagrams) + +--- + +## 6. ওয়ার্কফ্লো: ওয়ান-ক্লিক অটোমেশন + +ওয়ার্কফ্লো একাধিক টাস্ককে একটি সিঙ্গেল সাইডবার বাটনে চেইন করে। DSL ফরম্যাটটি হলো: + +``` +task1 | task2 | task3 +``` + +উদাহরণ: `addLinks | extractConcepts | generateDiagram` — এক ক্লিকে কাঁচা টেক্সট থেকে সম্পূর্ণভাবে সংযুক্ত, ভিজ্যুয়াল জ্ঞান নোডে প্রক্রিয়াকরণ করে. + +### সুপারিশকৃত ওয়ার্কফ্লো + +| ওয়ার্কফ্লো | চেইন | ব্যবহারের ক্ষেত্র | +|----------|-------|----------| +| পূর্ণ প্রক্রিয়া | `addLinks \| extractConcepts \| generateDiagram` | নতুন নোট | +| প্রথমে গবেষণা | `research \| addLinks` | অপরিচিত বিষয়সমূহ | +| পলিগ্লট | `translate \| addLinks` | বহুভাষিক নোট | +| শুধুমাত্র ডায়াগ্রাম | `generateDiagram` | দ্রুত ভিজ্যুয়ালাইজেশন | + +→ [Workflows deep dive](/docs/features/workflows) + +--- + +## 7. LLM প্রদানকারী: ক্লাউড থেকে লোকাল পর্যন্ত 36টি অপশন + +Notemd 4টি ট্রান্সপোর্ট টাইপে 36টি প্রদানকারীকে সমর্থন করে। প্রধান গ্রুপসমূহ: + +- **আন্তর্জাতিক ক্লাউড**: OpenAI, Anthropic, Google, Mistral, xAI +- **চীনা ক্লাউড**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **গেটওয়েসমূহ**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **লোকাল**: Ollama, LMStudio, OVMS — API কী নেই, আপনার মেশিন থেকে কোনো ডেটা বের হয় না + +### পার-টাস্ক মডেল কৌশল + +সবচেয়ে খরচ-সাশ্রয়ী সেটআপে সাধারণ কাজের জন্য সস্তা মডেল এবং জটিল কাজের জন্য শক্তিশালী মডেল ব্যবহার করা হয়: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [LLM Providers overview](/docs/providers/overview) + +--- + +## শুরু করার জন্য চেকলিস্ট + +1. **Notemd ইনস্টল করুন** — [Community Plugins](/docs/getting-started/installation) (সুপারিশকৃত) অথবা ম্যানুয়ালি +2. **একটি প্রদানকারী কনফিগার করুন** — DeepSeek (সবচেয়ে সহজ), OpenAI, অথবা Ollama (বিনামূল্যে) +3. **আপনার প্রথম নোটটি প্রক্রিয়া করুন** — রাইট-ক্লিক → "Process file (add links)" +4. **কনসেপ্ট ফোল্ডার সেট করুন** — Settings → Notemd → Output → Concept Folder +5. **কনসেপ্টগুলো এক্সট্রাক্ট করুন** — একই নোটে “Extract concepts” চালান +6. **একটি ডায়াগ্রাম তৈরি করুন** — সংযোগগুলো দেখানোর জন্য “Generate diagram” চালান +7. **একটি ওয়ার্কফ্লো তৈরি করুন** — উপরেরগুলোকে এক-ক্লিক বাটনে চেইন করুন + +## Recommended Configurations + +### Student (Budget) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### Researcher (Quality) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### Privacy-First (Local Only) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### Bilingual (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## Common Patterns + +### Pattern: Process a Research Paper + +1. Import PDF content (or paste) +2. **Research** — বিষয়টি সম্পর্কে ওয়েব কনটেক্সট পান +3. **Add Links** — গুরুত্বপূর্ণ কনসেপ্টগুলো চিহ্নিত ও লিঙ্ক করুন +4. **Extract Concepts** — স্বতন্ত্র নোট তৈরি করুন +5. **Generate Diagram** — পেপারটির কাঠামো দেখানোর জন্য + +### Pattern: Daily Note Enrichment + +1. দৈনিক নোট লিখুন +2. **Add Links** — আজকের ধারণাগুলোকে বিদ্যমান ধারণাগুলোর সাথে সংযুক্ত করে +3. Concept notes auto-update with backlinks + +### Pattern: Literature Review + +1. papers/notes দিয়ে একটি ফোল্ডার তৈরি করুন +2. **Batch Add Links** — পুরো ফোল্ডারটি প্রক্রিয়াকরণ করুন +3. **Deduplicate Concepts** — প্রায় একই ধরনের নোটগুলো পরিষ্কার করুন +4. **Generate Diagram** — সমগ্র সাহিত্যের জন্য মাইন্ড ম্যাপ তৈরি করুন + +--- + +*Notemd হলো ওপেন সোর্স (MIT) এবং সব প্ল্যাটফর্মে Obsidian 0.15.0+ এর সাথে কাজ করে। [Install now](/docs/getting-started/installation) অথবা [view on GitHub](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/bn/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/bn/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..505dbbe9 --- /dev/null +++ b/website/i18n/bn/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "Configure Anthropic Claude" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Anthropic Provider + +<TLDR> +**Anthropic uses the native Messages API transport, not the OpenAI-compatible transport.** The current preset defaults to `claude-3-5-sonnet-20240620`, `https://api.anthropic.com`, and `temperature: 0.5`. Treat it as a separate protocol surface when debugging. + +এটি [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge)-এর অংশ। +</TLDR> + +## Setup + +Create an Anthropic API key, add an `Anthropic` provider profile, and leave the Base URL on the native endpoint unless you are routing through a dedicated gateway profile. Choose the Claude model ID you want to use in the model field; the default keeps the existing product baseline stable. + +Anthropic is a good candidate for high-quality summarization, research synthesis, and concept extraction. If you mix it with cheaper providers, set it only on the tasks that benefit from its output quality. + +## Endpoint And Authentication + +| ফিল্ড | Current preset | +|-------|----------------| +| Transport | `anthropic` | +| API কী | প্রয়োজনীয় | +| Base URL | `https://api.anthropic.com` | +| Default model | `claude-3-5-sonnet-20240620` | +| Temperature | `0.5` | +| Connection test | Chat-only | + +The runtime sends requests to `/v1/messages` with `x-api-key` and `anthropic-version: 2023-06-01`. Do not configure an OpenAI-style `/v1/chat/completions` endpoint under this preset; use an OpenAI-compatible gateway preset instead. + +## Model Discovery + +Anthropic প্রোভাইডার রেজিস্ট্রির মধ্যে `anthropic-models` ডিসকভারি মোড ব্যবহার করে। যদি আপনার কী বা অ্যাকাউন্ট মডেলগুলো তালিকাভুক্ত করতে না পারে, তবে প্রোফাইলে একটি পরিচিত মডেল ID রাখুন এবং কানেকশন টেস্টের মাধ্যমে এটি যাচাই করুন. + +ট্রান্সপোর্টটি OpenAI-সামঞ্জস্যপূর্ণ প্রোভাইডারগুলোর সাথে বিনিময়যোগ্য নয়। OpenRouter, LiteLLM অথবা অন্য কোনো গেটওয়ের মাধ্যমে রাউট হওয়া একটি Claude মডেলকে সেই গেটওয়ে প্রোফাইলে রাখা উচিত, নেটিভ Anthropic প্রোফাইলে নয়. + +## সমস্যা সমাধান + +- `401` অথবা `403`: কীর স্কোপ, ওয়ার্কস্পেস অ্যাক্সেস, বিলিং এবং কীটি কি প্রত্যাশিত Anthropic ওয়ার্কস্পেসের অন্তর্গত কিনা তা পরীক্ষা করুন. +- `404`: Base URL ভুল হয়েছে অথবা নির্বাচিত মডেল IDটি অ্যাকাউন্টের জন্য উপলব্ধ নয়. +- গেটওয়ে-স্টাইল Claude মডেল IDগুলো ব্যর্থ হয়: প্রোফাইলটিকে সংশ্লিষ্ট গেটওয়ে প্রোভাইডারে সরিয়ে নিন, কারণ নেটিভ Anthropic নেটিভ মডেল নামগুলোকেই আশা করে. +- দীর্ঘ রিকোয়েস্টগুলো শেষ পর্যায়ে ব্যর্থ হয়: প্রতি-টাস্ক মডেল আউটপুটের আকার কমান অথবা বড় জানা আউটপুট-টোকেন সিলিংযুক্ত একটি মডেল ব্যবহার করুন. + +## কখন ব্যবহার করবেন + +যখন সিন্থেসিস, গবেষণা নোট অথবা কাঠামোবদ্ধ লেখার গুণমান কাঁচা খরচের চেয়ে বেশি গুরুত্বপূর্ণ হয়, তখন Anthropic ব্যবহার করুন। এটিকে সাধারণ OpenAI-সামঞ্জস্যপূর্ণ ফলব্যাক হিসেবে ব্যবহার করবেন না; আলাদা ট্রান্সপোর্টটিই হলো মূল বিষয়, এবং প্রোটোকলগুলো মিশিয়ে ফেললে রোগ নির্ণয় কঠিন হয়ে যায়. + +--- + +## পরবর্তী ধাপসমূহ + +- [LLM Providers](/docs/providers/overview) -- পূর্ণ কনফিগারেশন, প্রতি-টাস্ক মডেল এবং রিট্রাই লজিক +- [Troubleshooting](/docs/advanced/troubleshooting) -- 401/403 এবং কানেকশন ত্রুটিগুলো সংশোধন করুন diff --git a/website/i18n/bn/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/bn/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..919d72c1 --- /dev/null +++ b/website/i18n/bn/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "চীনের প্রদানকারী" +description: "Qwen, DeepSeek, GLM ইত্যাদি কনফিগার করুন." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# চীনের প্রদানকারী + +<TLDR> +**Notemd মূলত OpenAI-সামঞ্জস্যপূর্ণ এন্ডপয়েন্টের মাধ্যমে চীন-অঞ্চল ও চীন-উৎসের প্রদানকারীদের সমর্থন করে।** বর্তমান সেটে DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, MiniMax, Baidu Qianfan, SiliconFlow, Huawei Cloud MaaS এবং Z AI রয়েছে। এর মূল্য হলো অঞ্চলভিত্তিক পৌঁছানো ও খরচ নিয়ন্ত্রণ; ঝুঁকি হলো প্রদানকারী-নির্দিষ্ট মডেল নামকরণ ও অ্যাকাউন্ট গেটিং. + +এটি [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge)-এর অংশ। +</TLDR> + +## Setup + +প্রদানকারী অ্যাকাউন্ট তৈরি করুন, একটি API কী তৈরি করুন, এবং সাধারণ OpenAI প্রোফাইল ব্যবহার না করে সংশ্লিষ্ট Notemd প্রদানকারী প্রিসেটটি বেছে নিন। প্রিসেটটি ডিফল্ট Base URL, মডেল, API টেস্ট মোড, মডেল-ডিসকভারি বিহেভিয়ার এবং যেকোনো প্রদানকারী-নির্দিষ্ট UI ফিল্ডগুলো ধারণ করে. + +এখানে প্রতিটি টাস্কের জন্য মডেল নির্বাচন আক্রমণাত্মকভাবে ব্যবহার করুন। উদাহরণস্বরূপ, যুক্তি-ভিত্তিক ওয়ার্কফ্লোতে DeepSeek বা GLM বজায় রাখুন, ব্যাপক চীনা-ভাষা কাজের জন্য Qwen বা Moonshot ব্যবহার করুন, এবং যখন সেই অ্যাকাউন্টটি কোডার মডেলগুলো প্রদান করে তখন কোডিং টাস্কগুলো Qwen Code-এ পাঠান. + +## Endpoint And Authentication + +| প্রদানকারী | ডিফল্ট মডেল | Base URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (এন্ডপয়েন্ট ID প্রয়োজন) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**নোট:** Doubao-এর জন্য স্ট্যান্ডার্ড মডেল নামের পরিবর্তে একটি Ark এন্ডপয়েন্ট ID (ফরম্যাট: `ep-xxxxxxxx-xxxx-xxxx`) প্রয়োজন. + +এই প্রদানকারীগুলোর বেশিরভাগই শেয়ার্ড OpenAI-সামঞ্জস্যপূর্ণ রানটাইম ব্যবহার করে, কিন্তু তাদের অ্যাকাউন্ট ও মডেলের সেমান্টিক্স ভিন্ন। অ্যাকাউন্টের বিকল্প এন্ডপয়েন্ট যাচাই না করা পর্যন্ত প্রিসেট-নির্দিষ্ট Base URL বজায় রাখুন. + +## Model Discovery + +DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan এবং SiliconFlow যখন প্রদানকারী তালিকা প্রদান করে তখন OpenAI-সামঞ্জস্যপূর্ণ মডেল ডিসকভারি ব্যবহার করে। Huawei Cloud MaaS `huaweicloud-modelarts-models` মোড ব্যবহার করে কারণ ModelArts ডিপ্লয়মেন্ট মেটাডেটা সাধারণ `/v1/models` তালিকার সাথে একই নয়. + +ডিসকভারি ব্যর্থতাকে চ্যাট অসম্ভব হওয়ার প্রমাণ হিসেবে বিবেচনা করবেন না। কয়েকটি প্রদানকারী মডেল-তালিকা অনুমতি সীমিত রেখেও চ্যাট অনুমতি দেয়। সেক্ষেত্রে প্রোফাইলে একটি স্পষ্ট মডেল ID রাখুন এবং কানেকশন টেস্ট দিয়ে যাচাই করুন. + +## সমস্যা সমাধান + +- অথেন্টিকেশন সফল হলেও চ্যাট ব্যর্থ হলে: মডেলের নামটি হয়তো অ্যাকাউন্টের অধিকার বা অঞ্চলের বাইরে রয়েছে. +- Doubao সাধারণ মডেল নাম দিয়ে ব্যর্থ হলে: যখন আপনার ডিপ্লয়মেন্টের জন্য তা প্রয়োজন হয়, তখন মডেল ফিল্ডে Ark এন্ডপয়েন্ট ID ব্যবহার করুন. +- রিজনিং রেসপন্সগুলো সংক্ষিপ্ত হয়ে যায়: প্রদানকারী-নির্দিষ্ট সর্বোচ্চ আউটপুট টোকেন এবং Notemd-এর মডেল-সচেতন সর্বোচ্চ-টোকেন সেটিংস পরীক্ষা করুন. +- আঞ্চলিক নেটওয়ার্কিং ভিন্ন হয়: যখন ভল্ট মেশিনটি চীনের ভিতরে থাকে তখন প্রদানকারীর চীন-অঞ্চল এন্ডপয়েন্ট ব্যবহার করুন; শুধুমাত্র যখন অ্যাকাউন্ট ও নেটওয়ার্ক পাথ উভয়ই বৈধ হয় তখনই আন্তর্জাতিক এন্ডপয়েন্ট ব্যবহার করুন। + +## কখন ব্যবহার করবেন + +যখন আঞ্চলিক ল্যাটেন্সি, পেমেন্ট/অ্যাকাউন্ট অ্যাক্সেস, চীনা ভাষার গুণমান, অথবা খরচই প্রধান সীমাবদ্ধতা হয়, তখন চীনা প্রদানকারীদের ব্যবহার করুন। যখন আপনার সরল প্রোটোকল সীমানা বা বিভিন্ন প্রদানকারীর মধ্যে আরও শক্তিশালী ডিবাগিং সামঞ্জস্য প্রয়োজন, তখন সরাসরি OpenAI, Anthropic, Google, অথবা স্থানীয় প্রদানকারীদের বেছে নিন. + +--- + +## পরবর্তী ধাপসমূহ + +- [LLM Providers](/docs/providers/overview) -- পূর্ণ কনফিগারেশন, প্রতি-টাস্ক মডেল এবং রিট্রাই লজিক +- [Troubleshooting](/docs/advanced/troubleshooting) -- আঞ্চলিক সংযোগ ও অথেনটিকেশন ত্রুটিগুলি সংশোধন করুন diff --git a/website/i18n/bn/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/bn/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..446bb8e2 --- /dev/null +++ b/website/i18n/bn/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "Google জেমিনি কনফিগার করুন" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Google Provider + +<TLDR> +**Google নেটিভ জেমিনি জেনারেটিভ ল্যাঙ্গুয়েজ API ট্রান্সপোর্ট ব্যবহার করে।** বর্তমান প্রিসেটটি `gemini-2.0-flash-exp`, `https://generativelanguage.googleapis.com/v1` এবং `temperature: 0.5` এ ডিফল্টভাবে সেট থাকে। এটি OpenAI-সামঞ্জস্যপূর্ণ প্রোফাইল নয়. + +এটি [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge)-এর অংশ। +</TLDR> + +## Setup + +Google AI Studio বা Google ক্লাউড API কী তৈরি করুন যেখানে জেমিনি অ্যাক্সেস থাকে, `Google` প্রদানকারী প্রোফাইল যোগ করুন, এবং নেটিভ জেনারেটিভ ল্যাঙ্গুয়েজ বেস URL বজায় রাখুন। দ্রুত অনুবাদ এবং বিস্তৃত নোট ওয়ার্কফ্লোর জন্য ডিফল্ট জেমিনি ফ্ল্যাশ প্রোফাইল ব্যবহার করুন, আর যখন আপনার বড় বা আরও শক্তিশালী জেমিনি মডেল দরকার হবে তখন টাস্ক-ভিত্তিক মডেলগুলো ওভাররাইড করুন. + +OpenAI-সামঞ্জস্যপূর্ণ প্রোফাইলে জেমিনি মডেল ID রাখা এড়িয়ে চলুন, যদি না আপনি স্পষ্টভাবে এমন একটি গেটওয়ে ব্যবহার করছেন যা OpenAI-সামঞ্জস্যপূর্ণ API এর মাধ্যমে জেমিনি প্রদর্শন করে. + +## Endpoint And Authentication + +| ফিল্ড | Current preset | +|-------|----------------| +| Transport | `google` | +| API কী | প্রয়োজনীয় | +| Base URL | `https://generativelanguage.googleapis.com/v1` | +| Default model | `gemini-2.0-flash-exp` | +| Temperature | `0.5` | +| Connection test | Chat-only | + +রানটাইম `/models/{model}:generateContent?key={apiKey}` কল করে। কীটি একটি কোয়েরি প্যারামিটার হিসেবে পাঠানো হয় কারণ প্লাগইনে নেটিভ জেমিনি এন্ডপয়েন্টটি সেভাবেই সংযুক্ত রয়েছে. + +## Model Discovery + +Google `google-models` ডিসকভারি মোড ব্যবহার করে। ডিসকভারি থেকে API কী-এর জন্য উপলব্ধ জেমিনি মডেলগুলো ফেরত আসা উচিত; যদি সিলেক্টরটি খালি থাকে, তবে একই বেস URL এর বিরুদ্ধে কীটি পরীক্ষা করুন এবং নিশ্চিত হয়ে নিন যে সেই অ্যাকাউন্টের জন্য মডেল ফ্যামিলিটি সক্রিয় আছে. + +প্রদানকারী রেজিস্ট্রিতে জানা আউটপুট-টোকেন সীমাগুলো মডেল-সচেতন। যদি দীর্ঘ অনুবাদ বা ডায়াগ্রাম ব্যাখ্যা ট্রাঙ্কিউট হয়, তবে বড় সপোর্টেড আউটপুট ক্যাপ সম্পন্ন জেমিনি মডেল নির্বাচন করুন অথবা অনুরোধকৃত আউটপুট আকার কমান. + +## সমস্যা সমাধান + +- `400`: সাধারণত মডেল ID নেটিভ জেমিনি রুটের সাথে মেলে না অথবা রিকোয়েস্টটি মডেলের সপোর্টেড শেপকে অতিক্রম করে যায়. +- `401` বা `403`: কী-এর সীমাবদ্ধতা, প্রজেক্ট/API সক্রিয়করণ, এবং কীটি জেমিনি অ্যাক্সেস করতে পারে কিনা তা যাচাই করুন. +- `404`: কনফিগার করা API ভার্সনে মডেল ID উপলব্ধ নয়. +- এই প্রোফাইলের অধীনে গেটওয়ে উদাহরণগুলো ব্যর্থ হয়: নেটিভ Google প্রদানকারীর পরিবর্তে গেটওয়ে প্রিসেট ব্যবহার করুন. + +## কখন ব্যবহার করবেন + +দ্রুত অনুবাদ, বড়-পরিমাণের নোট পরিষ্কারকরণ, এবং সেইসব ওয়ার্কফ্লোর জন্য Google ব্যবহার করুন যেখানে জেমিনির খরচ/পারফরম্যান্স অনুপাত সরাসরি OpenAI বা Anthropic এর তুলনায় ভালো। OpenAI-সামঞ্জস্যপূর্ণ রিজনিং-মডেল হ্যান্ডলিং প্রয়োজন এমন ওয়ার্কফ্লোরের জন্য অন্য কোনো প্রদানকারী বেছে নিন. + +--- + +## পরবর্তী ধাপসমূহ + +- [LLM Providers](/docs/providers/overview) -- পূর্ণ কনফিগারেশন, প্রতি-টাস্ক মডেল এবং রিট্রাই লজিক +- [Translation](/docs/features/translation) -- উচ্চ-পরিমাণের অনুবাদ কাজের জন্য জেমিনি ফ্ল্যাশ সুপারিশ করা হয় diff --git a/website/i18n/bn/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/bn/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..d29fb9b9 --- /dev/null +++ b/website/i18n/bn/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "লোকাল মডেল" +description: "Ollama এবং লোকাল LLMs কনফিগার করুন" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# লোকাল মডেল + +<TLDR> +**লোকাল প্রোভাইডারগুলো হোস্টেড APIs থেকে নোট কন্টেন্ট রাখে না।** বর্তমান লোকাল পাথটি Ollama কে নেটিভ `ollama` ট্রান্সপোর্ট এবং LMStudio কে OpenAI-সামঞ্জস্যপূর্ণ ট্রান্সপোর্টের মাধ্যমে কভার করে। উভয় পাথের জন্যই API কী প্রয়োজন নয়, তবে লোকাল সার্ভার ও মডেলটি আগে থেকেই চলমান থাকতে হবে. + +এটি [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge)-এর অংশ। +</TLDR> + +## Setup + +Ollama এর জন্য Ollama ইনস্টল করুন, আপনি যে মডেলটি চান তা পুল করুন, সার্ভার চালু করুন, এবং Notemd এ `Ollama` প্রোভাইডার প্রোফাইল যোগ করুন। LMStudio এর জন্য LM Studio-এর লোকাল সার্ভারে একটি মডেল লোড করুন এবং `LMStudio` প্রোভাইডার প্রোফাইল যোগ করুন. + +লোকাল মডেলগুলো শুধুমাত্র সেটিংস নয়, বরং অপারেশনাল নির্ভরতা। Notemd শুধুমাত্র লোকাল প্রসেস যা এক্সপোজ করে তাই কল করতে পারে, তাই প্লাগইন ডিবাগ করার আগে Obsidian এর বাইরে লোকাল মডেলটি যাচাই করুন. + +## Endpoint And Authentication + +| প্রদানকারী | Base URL | ডিফল্ট মডেল | API কী | নোটস | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | প্রয়োজন নয় | NDJSON স্ট্রিমিং; `/api/tags` এর মাধ্যমে মডেল ডিসকভারি | +| LMStudio | `localhost:1234/v1` | `local-model` | প্রয়োজন নয় | `"EMPTY"` কে বেয়ারার টোকেন হিসেবে পাঠায়; OpenAI-সামঞ্জস্যপূর্ণ | + +Ollama তার Base URL এর নিচে নেটিভ `/chat` পাথ ব্যবহার করে। LMStudio OpenAI-সামঞ্জস্যপূর্ণ `chat/completions` রুট অনুসরণ করে এবং লোকাল সার্ভারে লোড করা মডেল আশা করে. + +## Model Discovery + +Ollama `ollama-tags` ডিসকভারি মোড ব্যবহার করে এবং লোকালি পুল করা ট্যাগগুলো তালিকাভুক্ত করে। LMStudio যখন তার সার্ভার `/v1/models` এক্সপোজ করে তখন OpenAI-সামঞ্জস্যপূর্ণ মডেল ডিসকভারি ব্যবহার করে. + +যদি ডিসকভারি কিছুই ফেরত না দেয়, তবে সাধারণত এটি লোকাল-সার্ভার স্টেটের সমস্যা: মডেলটি পুল হয়নি, লোড হয়নি, অথবা সার্ভারটি প্রোফাইলের চেয়ে ভিন্ন হোস্ট/পোর্টে বাউন্ড রয়েছে. + +## সমস্যা সমাধান + +- কানেকশন রিজেক্টেড: Ollama বা LM Studio চালু করুন এবং কনফিগার করা পোর্টটি নিশ্চিত করুন. +- মডেল পাওয়া যায়নি: টেস্ট করার আগে Ollama ট্যাগটি পুল করুন অথবা LM Studio মডেলটি লোড করুন. +- ধীর আউটপুট: কনটেক্সট সাইজ কমান, ছোট লোকাল মডেল ব্যবহার করুন, অথবা ভারী টাস্কগুলোকে হোস্টেড প্রোভাইডারে রাউট করুন. +- খালি বা ত্রুটিপূর্ণ রেসপন্স: নির্বাচিত প্রোভাইডার প্রোফাইলটি লোকাল সার্ভার প্রোটোকলের সাথে মিলে যাচ্ছে কিনা তা নিশ্চিত করুন; Ollama এবং LMStudio পরস্পর বিনিময়যোগ্য নয়। + +## কখন ব্যবহার করবেন + +ব্যক্তিগত ভল্ট, অফলাইন কাজ, অথবা সস্তা পুনরাবৃত্তিমূলক কাজের জন্য লোকাল প্রদানকারীদের ব্যবহার করুন। গবেষণা সংশ্লেষণ বা দীর্ঘ যুক্তি প্রক্রিয়ার জন্য লোকাল সিস্টেমই স্বয়ংক্রিয়ভাবে ভালো হবে এমনটা ধরে নেবেন না; মডেলের গুণমান ও হার্ডওয়্যারের সীমাবদ্ধতাই এর মধ্যে বিনিময়ের বিষয়। + +--- + +## পরবর্তী ধাপসমূহ + +- [LLM প্রদানকারীগণ](/docs/providers/overview) -- সম্পূর্ণ কনফিগারেশন এবং প্রতিটি কাজের জন্য মডেল সেটআপ +- [সমস্যা সমাধান](/docs/advanced/troubleshooting) -- যখন লোকাল সার্ভারটি চলছে না তখন connection-refused ত্রুটিগুলো ঠিক করুন diff --git a/website/i18n/bn/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/bn/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..b704c448 --- /dev/null +++ b/website/i18n/bn/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "OpenAI কনফিগার করুন (GPT-4, GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# OpenAI Provider + +<TLDR> +**OpenAI শেয়ার্ড OpenAI-সামঞ্জস্যপূর্ণ ট্রান্সপোর্ট ব্যবহার করে।** বর্তমান প্রিসেটটি `gpt-4o`, `https://api.openai.com/v1`, `temperature: 0.5` এবং `models-then-chat` কানেকশন টেস্টের জন্য ডিফল্ট হিসেবে থাকে। যখন আপনার নির্দিষ্ট ফিল্ড সেমান্টিক্স দরকার হয় তখন এই পৃষ্ঠাটি ব্যবহার করুন; ক্যাটাগরি-স্তরের নির্বাচনের জন্য [LLM Providers](/docs/providers/overview) ওভারভিউ ব্যবহার করুন. + +এটি [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge)-এর অংশ। +</TLDR> + +## Setup + +OpenAI API কী তৈরি করুন, Notemd সেটিংসে `OpenAI` প্রোভাইডার প্রোফাইল যোগ করুন, এবং আপনি ইচ্ছাকৃতভাবে OpenAI-সামঞ্জস্যপূর্ণ গেটওয়ে নির্দেশ না করলে ডিফল্ট Base URL বজায় রাখুন। সাধারণ কাজের জন্য মডেল ফিল্ডটি `gpt-4o`-এ থাকতে পারে অথবা আপনার অ্যাকাউন্ট যে অন্য কোনো OpenAI মডেল ID ব্যবহার করতে পারে তা দিয়ে প্রতিস্থাপিত হতে পারে. + +খরচ নিয়ন্ত্রণের জন্য টাস্ক-নির্দিষ্ট মডেলগুলো ব্যবহার করুন: গবেষণা, ধারণা বের করা এবং দীর্ঘ-আকারের পুনর্গঠনের জন্য শক্তিশালী মডেলগুলো ব্যবহার করুন; অনুবাদ, লিঙ্ক পরামর্শ এবং সংক্ষিপ্ত সারাংশের জন্য সস্তা বা দ্রুততর মডেলগুলো ব্যবহার করুন. + +## Endpoint And Authentication + +| ফিল্ড | Current preset | +|-------|----------------| +| Transport | `openai-compatible` | +| API কী | প্রয়োজনীয় | +| Base URL | `https://api.openai.com/v1` | +| Default model | `gpt-4o` | +| Temperature | `0.5` | +| Connection test | `/models`, তারপর `/chat/completions` | + +Notemd OpenAI-সামঞ্জস্যপূর্ণ বেস URLs কে `chat/completions` বা `models` যোগ করার আগে নরমালাইজ করে। Base URL-এ কোনো ট্রেইলিং `/chat/completions` অন্তর্ভুক্ত করবেন না; এতে ডুপ্লিকেটেড পাথ তৈরি হয়. + +## Model Discovery + +OpenAI জেনেরিক OpenAI-সামঞ্জস্যপূর্ণ মডেল ডিসকভারি পাথ ব্যবহার করে। সেটিংস UI প্রথমে `/v1/models` জিজ্ঞাসা করে, তারপর একটি হালকা চ্যাট রিকোয়েস্টের মাধ্যমে নির্বাচিত মডেলটি যাচাই করে। যদি ডিসকভারি ব্যর্থ হয় কিন্তু চ্যাট এখনও কাজ করে, তবে দেখুন আপনার কী-তে মডেল-লিস্ট অনুমতি আছে কিনা অথবা কোনো গেটওয়ে মডেল লিস্টিংকে ব্লক করছে কিনা. + +রিজনিং মডেলগুলোকে একটি প্রোটোকল এডজ কেস হিসেবে বিবেচনা করা হয়: Notemd সিস্টেম ও ইউজার প্রম্পট কন্টেন্টকে একত্রিত করে OpenAI রিজনিং ID তৈরি করে যা আলাদা `system` রোলকে প্রত্যাখ্যান করে, এবং এটি শুধুমাত্র সেখানেই `reasoningEffort` প্রদর্শন করে যেখানে প্রোভাইডার ডিফিনিশনটি তা সমর্থন করে. + +## সমস্যা সমাধান + +- `401` অথবা `403`: কী, প্রজেক্ট অ্যাক্সেস, বিলিং স্টেট এবং নির্বাচিত মডেলটি কী-এর জন্য সক্রিয় আছে কিনা তা যাচাই করুন. +- চ্যাটে `404`: বেস URL সাধারণত ভুল থাকে অথবা ইতিমধ্যেই `/chat/completions` অন্তর্ভুক্ত থাকে. +- ডকুমেন্টে মডেলটি দেখা যায় কিন্তু সিলেক্টরে নয়: মডেল-লিস্ট অ্যাক্সেস ও চ্যাট অ্যাক্সেস হলো আলাদা ফেইলিং পয়েন্ট; প্রোভাইডার প্রোফাইলে সরাসরি মডেল ID টি ম্যানুয়ালি পরীক্ষা করুন. +- রিজনিং মডেল মেসেজগুলো প্রত্যাখ্যান করে: OpenAI রিজনিং হ্যান্ডলিং পাথ দ্বারা আবৃত কোনো মডেল ID ব্যবহার করুন অথবা অ-রিজনিং চ্যাট মডেলে স্বিচ করুন. + +## কখন ব্যবহার করবেন + +যখন আপনি সবচেয়ে পূর্বানুমেয় ডিফল্ট হোস্টেড পাথ চান, যখন `/v1/models` ডিসকভারি গুরুত্বপূর্ণ হয়, অথবা যখন কোনো ওয়ার্কফ্লো OpenAI রিজনিং মডেল সেমান্টিক্সের উপর নির্ভরশীল হয়, তখন OpenAI ব্যবহার করুন। রাউটিং, গোপনীয়তা বা খরচ নিয়ন্ত্রণ সরাসরি OpenAI API আচরণের চেয়ে বেশি গুরুত্বপূর্ণ হলে গেটওয়ে বা লোকাল প্রোভাইডারকে পছন্দ করুন. + +--- + +## পরবর্তী ধাপসমূহ + +- [LLM Providers](/docs/providers/overview) -- পূর্ণ কনফিগারেশন, প্রতি-টাস্ক মডেল এবং রিট্রাই লজিক +- [Troubleshooting](/docs/advanced/troubleshooting) -- 401/403 এবং রেট-লিমিট ত্রুটিগুলো সংশোধন করুন diff --git a/website/i18n/bn/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/bn/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..f19f3157 --- /dev/null +++ b/website/i18n/bn/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "LLM প্রদানকারীরা" +description: "প্রতিটি টাস্কের জন্য মডেল নির্বাচনের মাধ্যমে 36টি LLM প্রোভাইডার — ক্লাউড, গেটওয়ে, এবং লোকাল — কনফিগার করুন।" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# LLM প্রদানকারীরা + +<TLDR> +**Notemd ৪টি ট্রান্সপোর্ট টাইপে ৩৬টি LLM প্রোভাইডারকে সমর্থন করে।** সমস্ত API কলগুলো অটোমেটিক রিট্রাই, ট্রান্সপোর্ট ফলব্যাক, এবং ৫-মিনিটের রেসপন্স ক্যাশিংসহ খাঁটি HTTP ব্যবহার করে (কোনো SDK ছাড়া)। পার-টাস্ক মডেল সিলেকশনের মাধ্যমে আপনি কনসেপ্ট এক্সট্রাকশনের জন্য সস্তা মডেল এবং গবেষণার জন্য শক্তিশালী মডেল ব্যবহার করতে পারেন। লোকাল প্রোভাইডারগুলো (Ollama, LMStudio) এর জন্য কোনো API কীর প্রয়োজন নেই। +</TLDR> + +এটি [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge)-এর অংশ। + +## প্রদানকারী বিভাগসমূহ + +### ক্লাউড প্রোভাইডারস + +| প্রদানকারী | Default Base URL | ডিফল্ট মডেল | Temperature | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### গেটওয়ে / প্রক্সি প্রদানকারী + +| প্রদানকারী | Default Base URL | ডিফল্ট মডেল | নোটস | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | `HTTP-Referer` + `X-Title` হেডারগুলো যোগ করে | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | `X-GitHub-Api-Version` হেডার যোগ করে | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | `APP-Code` হেডার যোগ করে | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | ঐচ্ছিক API কী | +| **নতুন API** | `localhost:3000/v1` | `gpt-4.1` | ঐচ্ছিক API কী | +| **OpenAI Compatible** | (user-configured) | `your-model-id` | কাস্টম এন্ডপয়েন্ট | + +### চীনের প্রদানকারী + +| প্রদানকারী | Default Base URL | ডিফল্ট মডেল | নোটস | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | কোডিং-কেন্দ্রিক | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (এন্ডপয়েন্ট ID প্রয়োজন) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | Zhipu, China endpoint | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | Zhipu, international endpoint | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | Model hosting platform | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao-এর জন্য একটি Ark endpoint ID প্রয়োজন** (ফরম্যাট: `ep-xxxxxxxx-xxxx-xxxx`). ডিফল্ট প্লেসহোল্ডারটি অবশ্যই প্রতিস্থাপন করতে হবে. + +### Local Providers + +| প্রদানকারী | Default Base URL | ডিফল্ট মডেল | নোটস | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | No API key. NDJSON streaming. Model discovery via `/api/tags` | +| **LMStudio** | `localhost:1234/v1` | `local-model` | Sends `"EMPTY"` as bearer token. OpenAI-compatible discovery | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (user-configured) | `gpt-4o` | URL-এ ডিপ্লয়মেন্টের নাম। `api-key` হেডার | + +## টাস্ক-ভিত্তিক মডেল নির্বাচন + +Notemd প্রতিটি টাস্কের জন্য স্বাধীন প্রোভাইডার ও মডেল সমর্থন করে। `useMultiModelSettings: true` ব্যবহার করে এটি সক্রিয় করুন. + +### উপলব্ধ টাস্কস + +| কাজ | সেটিংস কী | ডিফল্ট প্রোভাইডার | +|------|-------------|-----------------| +| লিঙ্ক যোগ করুন (উইকি-লিঙ্ক সন্নিবেশ) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| গবেষণা (ওয়েব সার্চ + সারসংক্ষেপ) | `researchProvider` / `researchModel` | DeepSeek | +| শিরোনাম থেকে তৈরি করুন | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| অনুবাদ | `translateProvider` / `translateModel` | DeepSeek | +| ডায়াগ্রাম তৈরি | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| ধারণা বের করা | `extractConceptsProvider` / `Model` | DeepSeek | +| মূল টেক্সট বের করা | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### রেজোলিউশন অর্ডার + +1. যদি `useMultiModelSettings` চালু থাকে → টাস্ক-নির্দিষ্ট প্রোভাইডার + মডেল ব্যবহার করুন +2. যদি টাস্ক মডেল ওভাররাইড খালি থাকে → প্রোভাইডারের ডিফল্ট মডেলে ফিরে যান +3. যদি টাস্ক প্রোভাইডার অকার্যকর হয় → গ্লোবাল `activeProvider`-এ ফিরে যান +4. যদি `useMultiModelSettings` বন্ধ থাকে → সমস্ত টাস্ক গ্লোবাল `activeProvider` ব্যবহার করবে + +### Recommended Configurations + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## API কল আর্কিটেকচার + +### ট্রান্সপোর্ট লেয়ারস + +1. **Obsidian `requestUrl`** — প্রাইমারি (বিল্ট-ইন, সব প্ল্যাটফর্মে কাজ করে) +2. **ডেস্কটপ HTTP** — Node.js `http`/`https` মডিউল (স্ট্রিমিং + দীর্ঘ রিকোয়েস্ট) +3. **ওয়েব `fetch`** — Node.js মডিউল অনুপলব্ধ থাকলে ফলব্যাক + +ট্রানজিয়েন্ট নেটওয়ার্ক ত্রুটির সময় প্লাগইনটি স্বয়ংক্রিয়ভাবে ট্রান্সপোর্টগুলোর মধ্যে ক্যাসকেড করে. + +### রিট্রাই লজিক + +- **নরমাল মোড** (`enableStableApiCall: false`): একবার চেষ্টা। ট্রানজিয়েন্ট ফেইলিউরের ক্ষেত্রে স্বয়ংক্রিয়ভাবে স্থিতিশীল রিট্রাই-এ এস্কেলেট হয়. +- **স্থিতিশীল রিট্রাই মোড** (`enableStableApiCall: true`): ৪ বার পর্যন্ত চেষ্টা (১ + ৩ রিট্রাই) ৫ সেকেন্ডের ইন্টারভ্যাল দিয়ে. +- **রিট্রাই ট্রিগার করে এমন ট্রানজিয়েন্ট ত্রুটি**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **রিট্রাই-যোগ্য নয়**: HTTP 400, 401, 403, 404 + +### রেসপন্স ক্যাশিং + +প্রোভাইডার + মডেল + টেম্পারেচার + প্রম্পট + কন্টেন্ট দিয়ে কীকৃত ৫-মিনিটের ইন-মেমরি LRU ক্যাশ। ৫ মিনিটের মধ্যে একই ধরনের পরবর্তী রিকোয়েস্টগুলো তৎক্ষণাৎ ক্যাশড ফলাফল দেয়. + +### রিজনিং মডেল হ্যান্ডলিং + +যেসব মডেল `system` রোলকে সমর্থন করে না (DeepSeek R1, OpenAI o1/o3/o4/gpt-5) সেগুলোতে সিস্টেম + ইউজার প্রম্পটগুলো স্বয়ংক্রিয়ভাবে একটি একক ইউজার মেসেজে একীভূত হয়. + +DeepSeek-specific: `thinkingEnabled` রিকোয়েস্টে `{ thinking: { type: 'enabled' } }` যোগ করে। `reasoningEffort` (low/medium/high) কে `reasoning_effort` হিসেবে পাঠানো হয়। thinking চালু থাকলে max output tokens ≥ 8000 হওয়া উচিত কিনা তা যাচাই করা হয়। + +### Token Estimation + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — 4-অক্ষর-প্রতি-টোকেন হিউরিস্টিক। LLM-এ পাঠানোর আগে `maxResearchContentTokens` বাস্তবায়ন করতে এটি ব্যবহৃত হয়। + +No cost tracking is implemented. + +## Model Discovery + +| মোড | Providers | Endpoint | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | Models list API | +| `anthropic-models` | Anthropic | Models list API | +| `openai-compatible-models` | DeepSeek, Qwen, Mistral, ইত্যাদি. | `/v1/models` | +| `openrouter-models` | OpenRouter | Model list API | +| `github-models` | GitHub Models | Inference API | +| `none` | Azure OpenAI | Disabled (requires deployment name) | + +## Quick Start + +1. **Pick a provider** — DeepSeek (China), OpenAI (International), or Ollama (Local/Free) +2. **Enter API key** — Settings → Notemd → Provider → API Key +3. **Test connection** — Click the test button +4. **ঐচ্ছিক: টাস্ক-ভিত্তিক মডেলসমূহ** — `useMultiModelSettings` সক্রিয় করুন এবং পৃথকভাবে কনফিগার করুন + +Ollama-এর জন্য: API কী প্রয়োজন নেই। শুধুমাত্র `ollama serve` চালু আছে কিনা তা নিশ্চিত করুন. + +--- + +## পরবর্তী ধাপসমূহ + +- 📝 [Concept Notes](/docs/features/concept-notes) — টাস্ক-ভিত্তিক এক্সট্রাকশন মডেল ব্যবহার করে +- 🎨 [Diagrams](/docs/features/diagrams) — টাস্ক-ভিত্তিক ডায়াগ্রাম মডেল ব্যবহার করে +- 🔍 [Research](/docs/features/research) — গবেষণা-নির্দিষ্ট মডেল ব্যবহার করে +- ⚙️ [Configuration](/docs/getting-started/configuration) — সম্পূর্ণ সেটিংসের রেফারেন্স diff --git a/website/i18n/bn/docusaurus-theme-classic/footer.json b/website/i18n/bn/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/bn/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/bn/docusaurus-theme-classic/navbar.json b/website/i18n/bn/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/bn/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/cs/code.json b/website/i18n/cs/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/cs/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/cs/docusaurus-plugin-content-docs/current.json b/website/i18n/cs/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/cs/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/cs/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/cs/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..1ac9d07e --- /dev/null +++ b/website/i18n/cs/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "Hromadná zpracování" +description: "Efektivní zpracování více souborů najednou" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# Hromadná zpracování + +<TLDR> +**Notemd zpracovává celé složky v jediném kroku s nastavitelnou konvergencí a kontrolou přepsání.** Klikněte pravým tlačítkem na složku a hromadně přidejte odkazy na wiki, extrahujte koncepty, provádějte výzkum nebo překládejte všechny poznámky uvnitř. Limity konvergence zabraňují chybám kvůli API omezení rychlosti. Je zpravován pokrok pro každý soubor. Chování přepsání lze nastavit: přeskočit existující, přidat nebo nahradit. Selhaly soubory jsou zaznamenány bez přerušení hromadného zpracování. + +Toto je součástí [Obsidian Průvodce AI pro správu znalostí](/docs/pillar-ai-knowledge). +</TLDR> + +## Přehled + +Hromadná zpracování převádí složku s poznámkami na jednu operaci. Místo otevírání každé poznámky a spouštění příkazů samostatně kliknete pravým tlačítkem na složku a vyberete úlohu. Notemd prochází všechny soubory `.md`, aplikuje zvolenou akci a v reálném čase hlásí pokrok. + +Tato funkce je nezbytná pro extrakci znalostí v celém úložišti. Po importu desítek PDF, například hromadné přidání odkazů následované hromadným extrahováním konceptů, vytvoříte svou znalostní síť během několika minut místo hodin. + +## Jak to funguje + +### Model hromadného provádění + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **Sběr souborů** -- Notemd rekurentně prohledává cílovou složku (nebo pouze na nejvyšší úrovni v závislosti na nastaveních) a shromažďuje všechny soubory `.md`. +2. **Rozdělení konvergencí** -- Soubory jsou rozděleny do částí na základě nastavení `batchConcurrency`. Každá část běží paralelně; části běží sekvenčně. +3. **Provedení** -- Každý soubor je zpracován pomocí stejné logiky jako příkaz pro jednotlivé soubory. Jsou respektována nastavení poskytovatele a modelu pro každou úlohu. +4. **Hlášení pokroku** -- Oznámení se aktualizuje po dokončení každého souboru a zobrazuje `N / Total` pokrok. +5. **Zpracování chyb** -- Pokud soubor selže (chyba API, časový limit síťového spojení atd.), chyba je zaznamenána a hromadné zpracování pokračuje. Závěrečný souhrn uvádí všechny selhaly soubory. +6. **Dokončení** -- Souhrnné oznámení hlásí celkový počet zpracovaných souborů, úspěchy a selhání. + +### Chování přepsání + +Při zpracování souboru, který již obsahuje wiki-odkazy, konceptuální poznámky nebo překlady, chování Notemd závisí na nastavení přepsání: + +| Režim | Chování | +|------|----------| +| **Přeskočit** | Stávající obsah zůstává nedotčen. Zpracovávají se pouze nezměněné soubory. | +| **Přidat** (výchozí) | Nový obsah je přidán. Stávající wiki-odkazy, koncepty nebo překlady zůstávají zachovány. | +| **Nahradit** | Soubor je zcela znovu zpracován. Všechny předchozí úpravy Notemd jsou přepsány. | + +Konkrétně u wiki-odkazů: pokud poznámka již obsahuje `[[wiki-links]]`, režim **Přeskočit** ji nechá být, zatímco režim **Nahradit** odešle celou poznámku na LLM za účelem vložení nových odkazů. Použijte **Přeskočit** pro inkrementální zpracování a **Nahradit** pro znovuzpracování po aktualizaci modelu. + +### Řízení souběžnosti + +Nastavení `batchConcurrency` omezuje počet souběžných volání API. To zabrání chybám kvůli omezení rychlosti (HTTP 429) při zpracování velkých složek u poskytovatelů s přísnými kvótami. + +| Souběžnost | Doporučeno pro | Typický dopad na omezení rychlosti | +|-------------|----------------|---------------------------| +| `1` | Bezplatné úrovně, přísní poskytovatelé | Žádný (sériový) | +| `3` (výchozí) | Většina cloudových poskytovatelů | Nízký | +| `5` | Ollama (lokální), štědré úrovně | Žádný / Nízký | +| `10` | Lokální modely s rychlou inferencí | Žádný | + +Pokud při hromadné obrábění narazíte na chyby 429, snižte konvergenčnost na 1 nebo 2. + +## Konfigurace + +| Nastavení | Výchozí | Účinek | +|---------|---------|--------| +| `batchConcurrency` | `3` | Maximální počet paralelních API volání během operací se složkami | +| `batchOverwriteExisting` | `false` | Přepsat stávající obsah Notemd. `false` = režim přidání. | +| `batchSkipProcessed` | `false` | Přeskočit soubory, které již obsahují značky Notemd (např. odkazy na wiki) | +| `batchRecursive` | `true` | Zahrnout podadresáře při skenování složky | +| `enableStableApiCall` | `false` | Povolit logiku opakování (až 4 pokusy) pro každý soubor během hromadného zpracování | + +### Modely na úrovni úkolu v hromadném režimu + +Každá operace v hromadě využívá odpovídající model na úrovni úkolu. batch-add-links používá `addLinksProvider`, batch-research používá `researchProvider` a tak dále. To znamená, že můžete pro velkovýkoné operace použít levné modely a pro úkoly vyžadující vysokou kvalitu rezervovat drahé modely. + +## Příklad + +Máte složku `papers/` obsahující 40 importovaných výzkumných poznámek. Chcete přidat odkazy na wiki a extrahovat koncepty ze všech z nich: + +1. Klikněte pravým tlačítkem na složku `papers/` +2. Vyberte **"Notemd: Zpracovat složku (přidat odkazy)"** +3. Notemd prohledá složku, najde 40 souborů `.md` a zpracovává je po 3 v kuse (výchozí konvergenční počet) +4. Vyskakuje toast se stavem: `12/40 files processed...` +5. Po přibližně 3 minutách se zobrazí souhrnný toast s informací: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. Opakujte pomocí **"Notemd: Zpracovat složku (vytáhnout koncepty)"** pro vytvoření poznámek ke konceptům ke všem 40 souborům + +Soubor, který selhal, je zaznamenán. Později ho můžete spustit samostatně. + +## Tipy + +- **Začněte s nízkým konvergenčním počtem** -- Pokud si nejste jisti limity rychlosti vašeho poskytovatele, začněte s `1` a postupně je zvyšujte. +- **Použijte režim přeskočení pro inkrementální aktualizace** -- Po první kompletní várce přejděte na `batchSkipProcessed: true`, aby byly v následujících spuštěních zpracovány pouze nové poznámky. +- **Aktivujte stabilní volání API** -- `enableStableApiCall: true` přidává logiku opakování, která se zotavuje z dočasných síťových chyb během dlouhých várkách. +- **Spusťte to znovu po aktualizaci modelu** -- Pokud přejdete na lepší model, nastavte `batchOverwriteExisting: true` a spusťte to znovu pro lepší odkazy a koncepty. + +--- + +## Další kroky + +- [Workflows](/docs/features/workflows) -- Spojte výkony várky do jednoho tlačítka v postranním panelu +- [Custom Prompts](/docs/advanced/custom-prompts) -- Přizpůsobte výzvy pro hromadné extrakce +- [Troubleshooting](/docs/advanced/troubleshooting) -- Opravte chyby limitů rychlosti a selhání připojení během spuštění várky +- [LLM Poskytovatelé](/docs/providers/overview) -- Odkaz na konfiguraci modelu podle úlohy diff --git a/website/i18n/cs/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/cs/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..75b208b5 --- /dev/null +++ b/website/i18n/cs/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "Vlastní pokyny" +description: "Přizpůsobte si pokyny LLM podle svých potřeb" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# Vlastní pokyny + +<TLDR> +**Notemd vám umožňuje přepsat výchozí pokyn LLM pro každý typ úlohy.** Vlastní pokyny vám dávají kontrolu nad tím, co model upřednostňuje: můžete omezit extrakci konceptů na konkrétní obor, změnit styl propojování nebo upravit tón překladu. Proměnné pokynů jako `{{content}}` a `{{concept}}` jsou nahrazovány během provozu. Funkce zaměřeného učení přidává na začátek váš obor studia, aby automaticky omezila výsledky extrakce. + +Toto je součástí [Obsidian Průvodce AI pro správu znalostí](/docs/pillar-ai-knowledge). +</TLDR> + +## Přehled + +Vestavěné pokyny Notemd jsou napsány pro práci s obecnými znalostmi. Fungují dobře napříč různými obory, ale zároveň ponechávají prostor pro vylepšení specifické pro daný obor. Vlastní pokyny vám umožňují přesně říct LLM, jak se má chovat v vašem konkrétním případě – ať už jde o extrakci pouze lékařské terminologie, propojování pouze pojmenovaných entit nebo překlad formálním stylem. + +Vlastní pokyny nenahrazují celý systémový pokyn. Přepisují nebo doplňují **část instrukcí specifických pro úlohu**, přičemž zachovávají strukturální formát výstupu (např. řádky `CONCEPT:`, syntaxi wiki odkazů), na kterém Notemd závisí při analýze. + +## Jak to funguje + +### Architektura pokynů + +Každá úloha Notemd se řídí stejnou strukturou pokynů: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **Základní systémový pokyn** – Určuje osobnost asistenta. Nelze ho přepsat. +2. **Zaměřený obor učení** – Přidává na začátek `Relevant Fields: [medicine / law / computer science / ...]` pro omezení rozsahu. Jedná se o přepínač nastavení, nikoli o samotný pokyn. +3. **Vlastní pokyn pro úlohu** – Nahrazuje výchozí instrukce k úloze (např. jaké koncepty extrahovat, jak intenzivně propojovat). +4. **Formát výstupu** – Strukturální pravidla (řádky `CONCEPT:`, formát wiki odkazů). Vždy je přidává Notemd pro zajištění srozumitelnosti. +5. **Obsah** – Samotný text poznámky, který je během provozu nahrazen pomocí `{{content}}`. + +### Proměnné pokynů + +Proměnné jsou nahrazovány v okamžiku spuštění. Dostupné proměnné se liší podle úlohy: + +| Proměnná | Úkoly | Nahrazeno za | +|----------|-------|---------------| +| `{{content}}` | Všechno | Text poznámky nebo výběru | +| `{{concept}}` | Šablona poznámky k konceptu | Název extrahovaného konceptu | +| `{{description}}` | Šablona poznámky k konceptu | Popis konceptu generovaný LLM | +| `{{backlinks}}` | Šablona poznámky k konceptu | Seznam zdrojových poznámek s odkazy | +| `{{date}}` | Šablona poznámky k konceptu | Současný datum (YYYY-MM-DD) | +| `{{language}}` | Překlad | Cílový jazyk výstupu | +| `{{source}}` | Šablona poznámky k konceptu | Základní název zdrojové poznámky | + +### Orientovaná oblast učení + +Funkce orientovaného učení představuje zkratku pro vymezení oblasti. Místo psaní vlastního pokynu, který uvádí váš obor, nastavíte `focusedLearningDomain` v nastaveních: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +Tím se do výstupního pokynu přidá `Relevant Fields: [medicine]`, což způsobí, že LLM upřednostní koncepty relevantní pro danou oblast a potlačí obecné. Jedná se o lehčí variantu oproti plně vlastnímu pokynu a funguje u všech úloh na extrakci. + +## Konfigurace + +| Nastavení | Výchozí | Účinek | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | Přepsat výchozí pokyn úlohy přidání odkazů | +| `customExtractConceptsPrompt` | `''` | Přepsat výchozí pokyn na extrakci konceptů | +| `customResearchPrompt` | `''` | Přepsat výchozí pokyn pro výzkum a shrnutí | +| `customTranslatePrompt` | `''` | Přepsat výchozí pokyn pro překlad | +| `customDiagramPrompt` | `''` | Přepsat výchozí pokyn pro generování diagramů | +| `focusedLearningDomain` | `''` | Přidat kontext oboru na začátek pokynů na extrakci a vytváření odkazů | +| `extractConceptsMinimalTemplate` | `true` | Použít šablonu poznámky konceptů pouze s názvem (ovlivňuje rozsah šablony `{{concept}}`) | +| `customConceptNoteTemplate` | `''` | Přepsat šablonu souboru poznámky konceptů s plnou podporou proměnných | + +**Pokud je pole vlastního pokynu prázdné, použije se vestavěný výchozí pokyn.** + +## Příklad + +Jste lékařský výzkumník, který extrahuje koncepty z poznámek k klinickým studiím. Výchozí pokyn extrahuje obecná podstatná jména spolu s lékařskými termíny, což způsobuje znečištění vaší složky s koncepty. + +**Řešení:** Nastavte orientovanou oblast učení a vlastní pokyn na extrakci. + +1. Nastavte `focusedLearningDomain` na `medicine` +2. Nastavte `customExtractConceptsPrompt` na: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +Nyní, když spustíte „Extract concepts“ na klinické poznámce, LLM vytvoří: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +Místo výchozího chování, které může také extrahovat nežádoucí obecné termíny jako „hospital“ nebo „month". + +## Tipy + +- **Začněte s cílenou oblastí učení** před napsáním kompletního vlastního promptu. Jedna nastavení pokrývají 80 % případů použití. +- **Uchovejte formát výstupu** – Nikdy neodstraňujte pokyny k formátování, jako je „jeden na řádek“ nebo „CONCEPT: prefix“, z vlastních promptů. Parser Notemd na nich závisí. +- **Nejprve otestujte s jednou poznámkou** – Vlastní prompty mohou mít nečekané účinky na šířku extrakce. Ověřte to na jedné poznámce před hromadným zpracováním. +- **Udržujte prompty stručné** – Příliš dlouhé vlastní prompty spotřebovávají tokeny a mohou oslabit zaměření modelu. + +--- + +## Další kroky + +- [Wiki-Links](/docs/features/wiki-links) – Co se odkáže, když upravíte prompt add-links +- [Concept Notes](/docs/features/concept-notes) – Šablony konceptových poznámek a proměnná `{{concept}}` +- [Batch Processing](/docs/advanced/batch-processing) – Aplikujte vlastní prompty na celé složky +- [Troubleshooting](/docs/advanced/troubleshooting) – Opravte problémy, kdy vlastní prompty vytvářejí nečekaný výstup diff --git a/website/i18n/cs/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/cs/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..5a4a3e15 --- /dev/null +++ b/website/i18n/cs/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "Řešení problémů" +description: "Běžné problémy a jejich řešení" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Řešení problémů + +<TLDR> +**Většina Notemd problémů spadá do čtyř kategorií: základní problémy API, síťová připojení, chyby autentizace (401/403) a limity rychlosti (429).** Vestavěný test připojení a diagnostická panela rychle identifikují kořenovou příčinu. Tato stránka pokrývá všechny běžné zprávy o chybách, jejich příčiny a nápravy. U problémů, které zde nejsou uvedeny, je nutné je nahlásit na GitHub Issues spolu s výstupem z diagnostiky. + +Toto je součástí [Obsidian Průvodce AI pro správu znalostí](/docs/pillar-ai-knowledge). +</TLDR> + +## Přehled + +Notemd závisí na externích službách – poskytovatelích LLM a vyhledávacích API službách – takže většina problémů vzniká mimo samotný plugin. Diagnostická panela v nastaveních poskytuje strukturovaný pohled na poslední API volání, včetně požadavku URL, stavu odpovědi a těla chyby. Vždy ji nejprve zkontrolujte, než budete pokračovat ve vyšetřování. + +## Jak to funguje: Diagnostika + +### Test připojení + +V každé sekci konfigurace poskytovatele je tlačítko **„Testovat připojení“**. Kliknutím na něj se odešle minimální API požadavek (obvykle seznam modelů nebo krátké doplnění) a bude uvedeno, zda bylo úspěšné, nebo jaká konkrétní chyba HTTP nastala. To je nejrychlejší způsob, jak ověřit, zda jsou vaše API klíče a základní URL údaje správné. + +### Diagnostická panela + +**Nastavení --> Notemd --> Diagnostika** zobrazuje: + +| Pole | Obsah | +|-------|---------| +| Poslední poskytovatel | Který poskytovatel byl naposledy volán | +| Poslední model | Který model byl naposledy volán | +| Poslední stav | Kód stavu HTTP nebo chyba přenosu | +| Poslední chyba | Surová zpráva o chybě od API | +| Poslední požadavek URL | Úplný URL posledního požadavku (s vynechaným klíčem API) | +| Tělo poslední odpovědi | Uříznuté tělo odpovědi (prvních 500 znaků) | + +Při hlášení problémů na GitHubu zkopírujte úplný výstup diagnostiky. + +## Běžné chyby + +### Klíč API je neplatný nebo chybí + +**Příznak:** Chyba HTTP 401 nebo „Byl poskytnut nesprávný klíč API“ + +**Příčina:** Klíč API chybí, obsahuje mezery nebo patří jinému poskytovateli. + +**Náprava:** +1. Ověřte, že klíč nemá počáteční/nekončící mezery +2. Ujistěte se, že klíč odpovídá vybranému poskytovateli (klíč OpenAI nebude fungovat s Anthropic) +3. Zkontrolujte, zda váš účet má kredity nebo aktivní předplatné +4. Klikněte na **"Testovat spojení"**, abyste to ověřili + +### Chyby sítě / spojení + +**Příznaky:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**Příčina:** Koncový bod API není z vašeho počítače přístupný. + +**Náprava:** +1. Zkontrolujte své internetové připojení +2. Pokud jste za proxy nebo firewallem, ověřte, že doména API není zakázána +3. V případě Ollama: potvrďte, že `ollama serve` běží (`ollama list` by měl vrátit modely) +4. V případě LMStudio: potvrďte, že server běží na `localhost:1234` +5. Zkuste jiný transport – uživatelé mobilních zařízení by měli zajistit, aby byl transport `requestUrl` aktivní +6. Povolte `enableStableApiCall` pro automatické opakování při dočasných chybách + +### 403 Zakázáno + +**Příznaky:** HTTP 403 + +**Příčina:** Vaše klíče API jsou platné, ale nemají oprávnění k požadovanému zdroji. + +**Náprava:** +1. Některé modely vyžadují zvláštní přístup (např. GPT-4 prostřednictvím Azure vyžaduje název nasazení) +2. Někteří poskytovatelé omezují modely podle úrovně plánu – zkontrolujte svůj účet +3. Mohou platit regionální omezení (někteří čínští poskytovatelé blokují mezinárodní IP adresy a naopak) +4. Ověřte, zda je název modelu správně napsán (např. `gpt-4o`, nikoli `gpt-4o-mini`, pokud mini model odpovídá všemu, co váš plán umožňuje) + +### Rate Limit (429) + +**Příznaky:** HTTP 429 nebo „Rate limit exceeded“ + +**Příčina:** Příliš mnoho požadavků v krátkém časovém období. + +**Řešení:** +1. Snížte `batchConcurrency` na `1` nebo `2` +2. Počkejte několik minut a poté zkuste znovu +3. Prohlédněte si dokumentaci k limitům počtu požadavků vašeho poskytovatele podle úrovně plánu +4. Povolte `enableStableApiCall` pro automatické opakování s odložením +5. Zvažte přechod na poskytovatele s vyššími limity (DeepSeek, Ollama) + +### Model Not Found + +**Příznaky:** „Model not found“ nebo HTTP 404 + +**Příčina:** Název modelu neexistuje u vybraného poskytovatele. + +**Náprava:** +1. Klikněte na **"Získat seznam modelů"**, abyste viděli všechny dostupné modely pro vašeho poskytovatele +2. Názvy některých modelů se časem mění – ověřte aktuální název v dokumentaci poskytovatele +3. Pro Ollama: spusťte `ollama list`, abyste viděli stažené modely; dostupné jsou pouze stažené modely + +### Žádné odkazy / nebyly generovány žádné koncepty + +**Příznak:** Příkaz se spustí, ale nevyprodukuje žádný výstup + +**Příčina:** LLM vrátil prázdnou nebo nerozluštitelnou odpověď. + +**Náprava:** +1. Zkontrolujte panel diagnostiky pro skutečnou odpověď LLM +2. Zkuste schopnější model (některé malé modely mají potíže se strukturovaným výstupem) +3. Ujistěte se, že poznámka obsahuje dostatek obsahu (>50 slov) +4. Prozkoumejte svůj vlastní prompt kvůli protichůdným pokynům +5. Dočasně deaktivujte potlačování synonym, abyste zjistili, zda to nefiltruje příliš přísně + +### Chybí ID koncového bodu Doubao + +**Příznak:** Chyba při použití poskytovatele ByteDance Doubao + +**Příčina:** Doubao vyžaduje ID koncového bodu Ark (formát: `ep-xxxxxxxx-xxxx-xxxx`) místo názvu modelu. + +**Náprava:** Nahraďte výchozí model s náhradním textem skutečným ID koncového bodu z konzole Volcengine. + +## Konfigurace + +| Nastavení diagnostiky | Umístění | Účel | +|--------------------|----------|---------| +| **Ověření spojení** | Sekce Nastavení --> Poskytovatel | Ověřte klíč API a připojení | +| **Získání seznamu modelů** | Sekce Nastavení --> Poskytovatel | Potvrďte, které modely jsou dostupné | +| `enableStableApiCall` | Sekce Nastavení --> Pokročilé | Povolte opakování s odložením | +| `batchConcurrency` | Sekce Nastavení --> Hromadná práce | Řiďte paralelismus, abyste se vyhnuli omezením rychlosti | + +## Jak nahlásit problémy + +Pokud váš problém není výše uvedený: + +1. Otevřete **Nastavení --> Notemd --> Diagnostika** +2. Zkopírujte celý výstup diagnostiky +3. Otevřete zprávu na GitHubu na adrese [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +4. Zahrňte: verzi Obsidian, verzi Notemd, poskytovatele, model, výstup diagnostiky a kroky k reprodukci +5. Vymažte svůj klíč API ze všech sdílených protokolů + +--- + +## Další kroky + +- [LLM Poskytovatelé](/docs/providers/overview) -- Kompletní referenční materiál k konfiguraci poskytovatelů +- [Hromadná zpracování](/docs/advanced/batch-processing) -- Nastavení souběhu a opakování pro velké operace +- [Vlastní dotazy](/docs/advanced/custom-prompts) -- Oprava nečekaného chování LLM úpravou dotazů diff --git a/website/i18n/cs/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/cs/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..30453f53 --- /dev/null +++ b/website/i18n/cs/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "Často kladené otázky" +description: "Běžné otázky týkající se instalace, funkcí a použití Notemd" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# Často kladené otázky + +<TLDR> +**Rychlé odpovědi na nejčastější otázky ohledně Notemd.** Zahrnuje instalaci (nastavení za 5 minut), podporu více než 30 poskytovatelů LLM, možnosti lokálního/cloudového modelu, jednoklikové pracovní postupy, vícejazyčný UI (21 jazyků), automatizaci odkazování na wiki, integraci s výzkumem, pracovní postupy pro čtení PDF, generování diagramů a licencování podle open source. Všechny funkce fungují offline s Ollama. +</TLDR> + +--- + +## Instalace a nastavení + +### Jak nainstalovat Notemd do Obsidian? + +Otevřete Obsidian **Nastavení → Komunitní pluginy → Procházet** → vyhledejte **"Notemd"** → **Nainstalovat** → **Povolit**. + +**Požadavky:** +- Obsidian 0.15.0+ +- Podporováno na desktopu (Windows, macOS, Linux) a mobilních zařízeních (iOS, Android) + +**Ruční instalace:** +1. Stáhněte `main.js`, `styles.css`, `manifest.json` z [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) +2. Umístěte je do `<your-vault>/.obsidian/plugins/notemd/` +3. Přezačtěte Obsidian a povolte plugin + +**Statistiky:** více než 4 tisíce stažení, 44 vydání, licencováno podle MIT. + +--- + +## Konfigurace LLM + +### Jaké LLM poskytovatele Notemd podporuje? + +Notemd podporuje **30+ poskytovatelů**: + +**Poskytovatelé cloudových služeb:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonnet, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**Poskytovatelé zaměřené na Čínu:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**Lokální/vlastní hostované:** +- Ollama +- LM Studio +- Jakýkoli koncový bod kompatibilní s OpenAI + +**Brány:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models, Fireworks, LiteLLM, Nebius, Cerebras +- Hugging Face, Vercel AI Gateway, Requesty + +### Může Notemd fungovat s lokálními LLMs? + +**Ano, plně podporováno.** Notemd funguje s: +- **Ollama** (nativní integrace) +- **LM Studio** (prostřednictvím OpenAI-kompatibilního koncového bodu) +- **vLLM, LocalAI, text-generation-webui** (v OpenAI-kompatibilním režimu) + +Všechny úlohy fungují s lokálními modely: propojování, generování konceptů, překlad, výzkum a generování diagramů. + +**Příklad kombinace:** +- Ollama (lokální) pro propojování → rychlé, soukromé, bez nákladů +- OpenAI pro výzkum → vysoká kvalita, integrace s webovým vyhledáváním +- Gemini pro překlad → multimodální podpora + +### Jak nakonfigurovat různé modely pro různé úlohy? + +V **Nastaveních Notemd** má každá úloha samostatné vybírače poskytovatelů/modelů: + +| Úloha | Příklad konfigurace | +|------|----------------------| +| **Propojování** | DeepSeek (rychlé, levné) | +| **Generování konceptů** | Claude Opus (vysoká kvalita) | +| **Výzkum** | Perplexity nebo GPT-4o (web-grounded) | +| **Překlad** | Gemini Flash (multimodální) | +| **Generování diagramů** | Ollama (lokalní, soukromé) | + +Tato optimalizace pro jednotlivé úkoly vyvažuje rychlost, náklady a kvalitu. + +--- + +## Hlavní vlastnosti + +### Jak se Notemd liší od ChatGPT při čtení papírových materiálů? + +| Rozměr | ChatGPT | Notemd | +|-----------|---------|--------| +| **Umístění výstupu** | Historie chatu (dočasná) | Obsidian trezor (trvalé soubory) | +| **Formát výsledku** | Textová odpověď | Wiki-odkazy, poznámky k konceptům, diagramy, překlady | +| **Dlouhodobá hodnota** | Zmizí po skončení relace | Skládá se do znalostní báze | +| **Opětovné využití** | Je nutné provést nový dotaz | Soubory zůstávají, odkazy se vyvíjejí | + +**Použijte ChatGPT pro:** Rychlé otázky a odpovědi, jednorázové vysvětlení +**Použijte Notemd pro:** Vytvoření trvalé, strukturované znalostní báze během týdnů/měsíců + +### Jak Notemd přidává wiki-odkazy do poznámek? + +**Proces:** +1. Spustíte „Zpracovat soubor (přidat odkazy)“ u poznámky +2. Notemd odešle text na vámi nakonfigurovaný LLM +3. LLM identifikuje klíčové koncepty v kontextu +4. Notemd vkládá `[[wiki-links]]` při každém výskytu konceptu +5. Volitelně automaticky vytváří poznámky ke konceptům ve složce, kterou určíte + +**Vlastnosti:** +- Potlačení synonym (vyhýbá se duplicitám „transformer“ a „transformers“) +- Zpětné odkazy z konceptuálních poznámek na zdroj +- Integrita odkazu při přejmenování/smazání +- Režim čisté extrakce (extrahovat koncepty bez úprav původního textu) + +### Co je to jednoklikový pracovní postup Notemd? + +**Pracovní postupy na jedno kliknutí** spojují více akcí do **jediného tlačítka v postranním panelu**. + +**Výchozí pracovní postup:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**Výsledek:** Jeden kliknutí spustí: +1. Přidejte wiki odkazy do aktuální poznámky +2. Vytvořte konceptuální poznámky k novým termínům +3. Výzkum a doplnění kontextu +4. Stažit do diagramu Mermaid + +**Vlastní pracovní postupy:** Definujte si vlastní v Nastaveních pomocí formátu DSL. Každý pracovní postup se stane znovupoužitelným tlačítkem v bočním panelu. + +### Jak se Notemd porovnává s Copilot nebo Smart Connections? + +Tyto doplňky řeší různé problémy: + +- **Copilot** — Zaměřeno na konverzaci. Mluvíte s AI o svých poznámkách. Odpovědi AI zůstávají v panelu konverzace; nemění vaše úložiště. +- **Smart Connections** — Zaměřeno na vyhledávání. Najde sémanticky podobné poznámky pomocí embeddingů. Nevytváří ani neupravuje obsah. +- **Notemd** — Zaměřeno na psaní. AI zpracuje vaše poznámky a vytvoří strukturované výsledky (odkazy na wiki, konceptové poznámky, výzkum, diagramy, překlady) přímo do vašeho úložiště jako trvalé soubory. + +| Co potřebujete | Doporučený doplněk | +|----------------|-------------------| +| Konverzace s AI o poznámkách | Copilot | +| Nalezení podobných/nebo souvisejících poznámek | Smart Connections | +| Automatické vložení odkazů na wiki a vytvoření znalostní sítě | **Notemd** | +| Vytvoření konceptových poznámek s zpětnými odkazy | **Notemd** | +| Vytvoření diagramů z obsahu poznámek | **Notemd** | +| Prozkoumat téma a přidat shrnutí | **Notemd** | + +Všechny tři možnosti lze použít společně – doplňují se navzájem místo toho, aby konkurovaly. + +--- + +## Výzkum a překlad + +### Které vyhledávací služby fungují s výzkumem Notemd? + +| Služba | Vyžaduje se klíč API | Kvalita | Poznámky | +|---------|-----------------|---------|-------| +| **Tavily** | Ano | Vysoká | Doporučené vyhledávání optimalizované pro AI | +| **DuckDuckGo** | Ne | Experimentální | Žádné nastavení, nižší kvalita | + +**Jak funguje „Výzkum a shrnutí“:** +1. Vyberete si téma nebo jej spustíte v aktuální poznámce +2. Notemd pošle dotaz do vyhledávací služby +3. Výsledky → LLM shrnutí +4. Shrnutí je přidáno k vaší poznámce s odkazy na zdroje + +**Výsledek:** Trvalá stopa výzkumu ve vašem úložišti, nikoli v kartách prohlížeče. + +### Podporuje Notemd čínštinu nebo jiné jazyky? + +**Jazyky UI:** Podporováno více než 21 jazyků +- Angličtina, 中文 (简体), 中文 (繁體), 日本語, 한국어 +- Arabská, němčina, francouzština, španělština, ruština, portugalština, italština +- Hindština, bengálština, thajština, vietnamština, turečtina, polština, čeština a další + +**Jazyk výstupu úlohy:** Nezávislé nastavení +- UI v čínštině + výstup v angličtině: ✅ +- UI v angličtině + výstup v čínštině: ✅ + +**Použití:** Dvojjazyční výzkumníci mohou ponechat UI v rodném jazyce a zároveň vytvářet poznámky v angličtině pro publikaci. + +--- + +## PDF a akademické pracovní postupy + +### Mohu použít Notemd pro čtení článků/PDF? + +**Ano.** Postup: +1. **Převést PDF na Markdown** pomocí [MinerU](https://github.com/opendatalab/MinerU) (doporučeno pro akademické články) +2. Otevřít soubor v formátu Markdown v Obsidian +3. Spustit úkoly v Notemd: + - **Přidat wiki-odkazy** k klíčovým termínům + - **Vytvořit poznámky k konceptům** pro neznámou terminologii + - **Vyextrahovat původní text** pomocí vlastních otázek (např. "Jaké jsou omezení?") + - **Prozkoumat kontext** citovaných metod/datových sad + - **Přeložit** obtížné části + - **Stažit do diagramu Mermaid** pro lepší pochopení struktury + +**Verze 1.9.1+:** Extrakce struktury kapitol s podporou obsahu + +**Výsledek:** Čtení vašeho článku se stane strukturovaným, odkazovatelným znalostním artefaktem ve vašem úložišti. + +--- + +## Diagramy a vizualizace + +### Jaké typy grafů/diagramů může Notemd vytvořit? + +| Typ | Podpora | Funkce | +|------|---------|----------| +| **Mermaid** | Plná | Schéma toků, sekvence, třídy, stavy, ER, Gantt, automatická oprava syntaxe, hromadná validace | +| **JSON Canvas** | Plná | Nativní rozložení obrazovky Obsidian | +| **Vega-Lite** | Plná | Grafy dat, časové řady, sloupcové, bodové, přizpůsobitelné | +| **HTML** | Náhradní řešení | Pro nepodporované typy diagramů | +| **Editovatelný HTML/SVG** | Výslovný cíl | Samostatný inline SVG s semantickými poznámkami ve stylu Draw.io | +| **Draw.io / Drawnix artefakty** | Hranice exportu | Deterministický XML/JSON z `SemanticFigureModel`; bez závislosti na běhovém prostředí editoru | + +**Mermaid automatická oprava:** Režim hlubokého ladění opravuje: +- Zlomené šipky (`-->`, `-.->`, `==>`) +- Neplatné značky, komentáře +- Chyby v syntaxi podgrafů +- Notace tvarů (`[`, `(`, `{`, `((`) +- Znak trubice v značkách +- Přílohy poznámek + +**Pracovní postup:** +1. Spusťte „Shrňte do diagramu Mermaid“ u poznámky +2. Náhled v modálním okně +3. Exportujte jako SVG nebo PNG +4. Nebo uložte jako soubor `.mmd` do trezoru + +--- + +## Open Source & Community + +### Je Notemd zdarma a open source? + +**Ano.** +- **Licence:** MIT (volná, komerční využití povoleno) +- **Zdrojový kód:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **Žádné placené úrovně, žádné uzamčení na cloudu, žádná telemetrie** +- **Komunita:** 234+ hvězdiček na GitHubu, aktivní Discord + +**Vlastníte:** +- Vaše data (zůstávají ve vašem trezoru) +- Vaše pracovní postupy (upravte pokyny, modely, řetězce) +- Vaše soukromí (lokální podpora LLM) + +**Přispějte:** Vítány pull requests. Podívejte se na [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +## Řešení problémů + +### Moje volání LLM selhávají. Co bych měl zkontrolovat? + +1. **Je klíč API platný?** Zkontrolujte Nastavení → Konfigurace poskytovatele +2. **Je název modelu správný?** Použijte tlačítko "Získat seznam modelů" (Get Model List) v nastaveních +3. **Je síť přístupná?** Někteří poskytovatelé vyžadují VPN +4. **Omezení rychlosti?** Zkontrolujte panel poskytovatele +5. **Diagnostika:** Spusťte v nastaveních „Test spojení“ pro podrobné protokoly chyb + +### Notemd je pomalý. Jak ho mohu urychlit? + +1. **Použijte rychlejší modely:** DeepSeek, Gemini Flash, GPT-4o-mini +2. **Zmenšete velikost částí:** Nastavení → Chytré dělení na části → snižte počet slov +3. **Paralelní zpracování:** Nastavení → Hromadné zpracování → zvyšte souběžnost +4. **Lokální modely:** Ollama pro úkoly, které nepotřebují vyhledávání na webu + +### Může Notemd fungovat 100% offline? + +**Ano, s Ollama.** Bez klíče API, bez internetu, žádná data neopouštějí váš počítač: + +1. Nainstalujte [Ollama](https://ollama.com) a spusťte `ollama serve` +2. V nastaveních Notemd vyberte jako poskytovatele **Ollama** +3. Stáhněte model: `ollama pull llama3` (nebo qwen2.5, gemma2 atd.) +4. Všechny funkce fungují: odkazy na wiki, poznámky k konceptům, překlad, diagramy + +**Výzkum DuckDuckGo** také funguje bez klíče API (experimentální kvalita). + +U cloudových poskytovatelů (OpenAI, Anthropic, Google, DeepSeek atd.) je obsah vašich poznámek odesílán jako vstup API. Zkontrolujte zásady ochrany osobních údajů každého poskytovatele ohledně zpracování dat. + +### Jsou moje data odesílána do cloudu? + +**Záleží to na vašem poskytovateli:** + +| Typ poskytovatele | Jsou data odesílána do cloudu? | Poznámky | +|--------------|---------------------|-------| +| **Ollama (lokalní)** | Ne | Vše zůstává na vašem počítači | +| **LMStudio (lokalní)** | Ne | Stejné jako Ollama | +| **DeepSeek, OpenAI, atd.** | Ano | Obsah poznámky je odesílán jako vstup API pro zpracování | +| **OpenRouter, AIHubMix** | Ano | Brána, která směruje provoz k cloudovým poskytovatelům | + +Notemd sama neshromažďuje **žádné telemetrické údaje, žádnou analýzu, žádná uživatelská data**. Tento plugin je zcela open source (MIT). Jediné údaje, které opouštějí váš počítač, jsou ty, které výslovně odešlete vašemu nakonfigurovanému LLM poskytovateli. + +### Který Obsidian AI plugin je nejlepší pro výzkum? + +Záleží na vašem výzkumném pracovním postupu: + +| Potřeba | Plugin | Důvod | +|------|--------|-----| +| Najít související články/poznámky | Smart Connections | Objevování sémantické podobnosti | +| Konverzace o vašich zdrojích | Copilot | Konverzace s kontextem trezoru | +| Automatické propojování konceptů + generování poznámek | **Notemd** | AI identifikuje koncepty, vkládá odkazy a vytváří poznámky | +| Webový výzkum + shrnutí do poznámek | **Notemd** | Tavily/DuckDuckGo vyhledávání → LLM shrnutí → přidáno do poznámky | +| Vytvořit diagramy z výzkumu | **Notemd** | Mermaid/Canvas/Vega-Lite z obsahu poznámky | + +**Doporučená kombinace:** Smart Connections (objevování) + Notemd (strukturování) + Copilot (diskuse). + +--- + +## Získat pomoc + +- **Dokumentace:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **GitHub Issues:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **Sponzor:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/cs/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/cs/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..fe7cd58e --- /dev/null +++ b/website/i18n/cs/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "Konceptuální poznámky" +description: "Vytváření a správa konceptuálních poznámek – samostatné poznámky pro klíčové koncepty extrahované z vašeho úložiště" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# Konceptuální poznámky + +<TLDR> +**Notemd extrahuje klíčové koncepty z vašich poznámek a vytváří samostatné soubory konceptuálních poznámek.** LLM identifikuje základní termíny, vytváří jeden soubor `.md` na každý koncept v konfigurovatelné složce a volitelně přidává zpětné odkazy na původní poznámku. Podporuje potlačování synonym, výběr modelu podle úkolu, čištění názvů souborů a 4krokový engine pro odstranění duplicit. Toto je součástí [Obsidian Průvodce AI řízením znalostí](/docs/pillar-ai-knowledge). +</TLDR> + +## Přehled + +Konceptuální poznámky jsou základními stavebními kameny propojené znalostní báze. Při zpracování poznámky Notemd: + +1. **Odesílá váš text do LLM** s strukturovaným pokynem k extrakci +2. **Analizuje řádky `CONCEPT:`** z odpovědi LLM +3. **Vytváří jeden soubor `.md` na každý koncept** v určené složce +4. **Přidává zpětné odkazy** na původní poznámku (pokud je to povoleno) + +## Jak to funguje + +### Pipeline extrakce + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### Pokyn k extrakci + +LLM dostává pokyn, který mu říká, aby: + +- Extrahoval **podstatná jména nebo fráze podstatných jmen** klíčové pro téma dokumentu +- **Upřednostňoval specifičnost** – „Dielectric Relaxation“ před „Relaxation“ +- **Normalizoval na jednotné číslo** – „models“ se mění na „model“ +- **Potlačoval podkoncepty** – pokud se objeví „dielectric relaxation“, neextrahovat také „relaxation“ +- Přeskočit** odkazy/sekce bibliografie, běžná podstatná jména, názvy společností/výrobků +- Vytvořit jeden koncept na řádek jako `CONCEPT: Term Name` + +**Potlačení synonym** (volitelné): přidat na začátek prompty „Vyhněte se extrakci synonym, sémanticky podobných základních konceptů nebo klíčových slov, pokud je to možné". + +**Zaměřená oblast učení** (volitelné): přidat na začátek `Relevant Fields: [domain]` pro omezení extrakce na konkrétní disciplínu. + +**Přepsání jazyka** (volitelné): přidat na konec „Výstupní koncepty MUSÍ být v [jazyk]." + +### Řezání na části + +Dlouhé poznámky jsou rozděleny pomocí `settings.chunkWordCount`. Každá část je odeslána samostatně. Koncepty ze všech částí jsou shromážděny v `Set` – duplikáty mezi částmi jsou potichu odstraněny. Chyby LLM u jednotlivých částí nezastaví celou operaci. + +## Vytváření poznámky k konceptu + +### Pravidla názvů souborů + +| Pravidlo | Chování | +|------|----------| +| Dlouhé tečky/podtržítkové značky | Nahradit prostředníky | +| Speciální znaky | Odstranit: zpětná lomítka, přední lomítka, středník, hvězdičku, otazník, uvozovky, úhlové závorky, trubici, hash, šipku, hranaté závorky | +| Mezery | Sjednotit a odfiltrovat | +| Maximální délka | 100 znaků (zkráceno + znovu oříznuto) | +| Prázdný/výsledek se všemi tečkami | Potichu přeskočeno | + +Příklad: `A-B: Key*Term` se změní na `A B KeyTerm.md` + +### Šablony + +**Plná šablona** (zpětné odkazy povoleny, minimální šablona vypnutá): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**Minimální šablona** (při `extractConceptsMinimalTemplate: true`): + +```markdown +# Concept Name +``` + +### Aktualizace stávajících poznámek + +Pokud soubor konceptu již existuje: + +1. Pokud jsou zpětné odkazy povoleny a zdrojová poznámka ještě není uvedena, přidejte zpětný odkaz +2. Pokud existuje sekce `## Linked From`, vložte ji před další záhlaví `##` +3. Pokud `## Linked From` neexistuje, přidejte sekci na konec +4. Dvojité zpětné odkazy se kontrolují a přeskočí + +### Konfigurace + +| Nastavení | Výchozí | Účinek | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | Hlavní přepínač. Vypnuté = žádné poznámky nevytvořeny | +| `conceptNoteFolder` | `''` (vypnuto) | Cesta ke složce pro konceptové poznámky | +| `extractConceptsMinimalTemplate` | `true` | Poznámky pouze s názvem (bez odkazu Linked From) | +| `extractConceptsAddBacklink` | `false` | Přidat zpětné odkazy během samostatné extrakce | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | LLM na úrovni úkolu pro extrakci konceptů | +| `extractConceptsLanguage` | `'en'` | Jazyk výstupu pro názvy konceptů | +| `replaceSynonymsDuringConceptExtraction` | `false` | Povolit potlačení synonym v pokynu | +| `generateConceptLogFile` | `false` | Napsat seznam vytvořených konceptů ve formátu `.log` | + +**Důležité:** Nastavení `extractConceptsAddBacklink` a `extractConceptsMinimalTemplate` ovlivňují pouze **speciální příkaz na extrakci**. Příkaz "Přidat odkazy" vždy vytváří poznámky s plným šablonováním a zpětnými odkazy. + +## Odstranění duplicit + +Příkaz na odstranění duplicit (`Notemd: Check & remove duplicate concept notes`) provádí 5krokovou analýzu: + +### Krok 1: Přesná shoda názvu souboru + +Porovnání názvu bez ohledu na velikost písmen v rámci nakonfigurované oblasti. + +### Krok 2: Detekce množného čísla + +Odstranění koncovek: `-ies` až `-y`, `-es` je odstraněno, `-s` je odstraněno. Porovnává se jednotné číslo s soubory v oblasti. Nezpracovává nepravidelná množná čísla (children/child). + +### Krok 3: Normalizace symbolů + +Použije se: `toLowerCase()`, nahraďte dlouhé tečky/podtržítkové znaky mezerami, odstraňte vše kromě alfanumerických znaků a zredukujte mezery. Záznamy, které se po normalizaci shodují, jsou označeny. + +### Krok 4: Obsah jednoho slova + +Poznámky o konceptech sestávající z jednoho slova jsou porovnávány s názvy souborů v rámci víceslovného rozsahu. Tento krok se neprovádí, pokud je rozsah `concept_folder_only`. + +### Krok 5: Potvrzení a smazání + +Všechny kandidáty jsou zobrazeny v modálním okně pro potvrzení. Schválené položky jsou přesunuty do systémového koše. Operaci lze zrušit mezi každým smazáním. + +### Režimy rozsahu + +| Režim | Srovnává se s | +|------|-------------------| +| `vault` (výchozí) | Všemi soubory v trezoru `.md` kromě složky s koncepty | +| `concept_folder_only` | Ostatními poznámkami o konceptech uvnitř této složky | +| `include` | Soubory v konkrétně uvedených složkách | +| `exclude` | Všemi soubory v trezoru kromě složky s koncepty a uvedených složek | + +## Použití + +### Extrahování konceptů (samostatně) + +1. Otevřete poznámku +2. Spusťte **"Notemd: Extrahování konceptů"** z panelu příkazů +3. Poznámky o konceptech jsou vytvářeny v nakonfigurované složce + +### Vytáhnout a vytvořit obsah + +**"Notemd: Vytáhnout koncepty a vytvořit nadpisy"** — vytáhne koncepty a poté spustí „Vytvořit z nadpisu“ u každé poznámky v složce s koncepty. Tím se vytvoří obsah pro **všechny** poznámky s koncepty v této složce, nejen pro ty nově vytvořené. + +### Vytvořit odkaz na wiki z výběru + +1. Vybrat text v editoru +2. Spustit **"Notemd: Vytvořit odkaz na wiki z výběru"** +3. Text je uzavřen v `[[...]]` a je vytvořena poznámka s konceptem + +## Tipy + +- **Nejprve nastavte složku s koncepty** — bez ní nebudou vytvořeny žádné poznámky. Pokud není nastavena, objeví se varovné okno. +- **Používejte modely na úrovni úkolu** — pro extrakci konceptů jsou vhodné levnější modely (GPT-4o-mini, DeepSeek). Drahé modely ušetřete pro výzkum/překlad. +- **Povolte potlačení synonym** v technických oblastech, kde více termínů odkazuje na stejný koncept. +- **Pravidelně odstraňujte duplikáty** — po hromadné úpravě spusťte příkaz na odstranění duplikátů, abyste zachytili téměř shodné položky. +- **Soubor s protokolem se pokaždé přepíše** – nejsou do něj přidávány nové záznamy. Zkopírujte ho, pokud potřebujete předchozí výsledky. + +--- + +## Další kroky + +- [Wiki-Links](./wiki-links) — Jak jsou koncepty propojovány v textu +- [Diagrams](./diagrams) — Vizualizace vztahů mezi koncepty +- [Workflows](./workflows) — Spojení extrakce s dalšími úkoly diff --git a/website/i18n/cs/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/cs/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..c0ccba34 --- /dev/null +++ b/website/i18n/cs/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "Diagramy" +description: "Vytváří Mermaid, JSON Canvas, Vega-Lite, HTML, upravitelné grafické artefakty a budoucí omezené circuitikz diagramy z vašich poznámek pomocí architektury založené na specifikaci" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Diagramy + +<TLDR> +**Notemd vytváří diagramy z vašich poznámek prostřednictvím pipeline založeného na specifikaci.** LLM vytváří renderer-nezávislý `DiagramSpec` JSON, poté specializované adaptéry jej převádějí na Mermaid, JSON Canvas, Vega-Lite, HTML nebo upravitelný výstup HTML/SVG. Podporuje 8 typů záměrů, automatické řetězce náhrad, živou náhledovou funkci s exportem do SVG/PNG, sémantickou ověřovací funkci a generování rozšířené o místní znalosti. +</TLDR> + +Toto je součástí [Obsidian Průvodce AI pro správu znalostí](/docs/pillar-ai-knowledge). + +## Architektura: Pipeline založený na specifikaci + +Notemd nikdy nežádá LLM, aby vytvořil syntaxi Mermaid/Vega/Canvas přímo. Místo toho: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**Proč architektura založená na specifikaci?** LLM často vytvářejí neplatnou syntaxi určenou k renderování (zejména Mermaid). Strukturovaný `DiagramSpec` lze ověřit před renderováním a stejná specifikace může sloužit jako záloha pro více rendererů. + +## Podporované typy diagramů + +| Záměr | Hlavní renderer | Náhrady | Použití | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | Hierarchické rozdělení témat | +| `flowchart` | Mermaid | HTML | Procesní toky, rozhodovací stromy | +| `sequence` | Mermaid | HTML | Interakce klienta a serveru, protokoly | +| `classDiagram` | Mermaid | HTML | Vztahy mezi třídami OOP | +| `erDiagram` | Mermaid | HTML | Schémata databází, vztahy entit | +| `stateDiagram` | Mermaid | HTML | Stroje stavů, modely životního cyklu | +| `canvasMap` | JSON Canvas | Mermaid → HTML | Konceptuální mapy, znalostní grafy | +| `dataChart` | Vega-Lite | Mermaid → HTML | Sloupcové, čarové, plošné, rozptylové, kruhové, tabulkové grafy | + +## Detekce záměru + +Notemd odhadne nejlepší typ diagramu na základě obsahu vaší poznámky pomocí hodnocení klíčových slov: + +| Záměr | Spouštěče | Důvěryhodnost | +|--------|----------|------------| +| `dataChart` | Tabulky, číselné buňky, klíčová slova pro metriky/trendy, procenta | 0.88 | +| `sequence` | Slovník požadavků/odpovědí (4+ shody) nebo značky `->`/`=>` | 0.82 | +| `erDiagram` | Primární klíč, cizí klíč, entita, schéma (2+ shody) | 0.80 | +| `stateDiagram` | Stav, přechod, čekající, běžící, selhalo (3+ shody) | 0.76 | +| `flowchart` | Číslované kroky (2+) nebo slovník if/then/else/workflow | 0.74 | +| `canvasMap` | Konceptuální mapa, graf znalostí, prostorový, shluk | 0.72 | +| `mindmap` | Výchozí náhradní režim | 0.55 | + +Přepsat pomocí nastavení **Preferovaný typ diagramu**, výběru v postranním panelu nebo explicitní volby z palety příkazů. + +## Výběr cíle renderování + +Experimentální pipeline založený na specifikacích nyní má dva nezávislé ovladače: + +| Ovladač | Nastavení | Účinek | +|---------|---------|--------| +| Preferovaný typ diagramu | `preferredDiagramIntent` | Určuje sémantickou formu generovaného `DiagramSpec` | +| Preferovaný cíl renderování | `preferredDiagramRenderTarget` | Vybírá renderer artefaktu pro **Vytvořit diagram** a **Náhled diagramu** | + +Nastavte **Preferovaný cíl renderování** na **Auto** jako výchozí hodnotu pro plánovač, nebo zvolte explicitně Mermaid, JSON Canvas, Vega-Lite, HTML nebo Editable HTML/SVG. Toto přepsání se vztahuje pouze na příkazy týkající se artefaktů a náhledů. Standardní příkaz **Shrnutí do diagramu Mermaid** zůstává vázán na výstup kompatibilní s Mermaid, aby stávající pracovní postupy s Markdownem nezměnily formát bez upozornění. + +Toto oddělení je důležité, protože záměr `flowchart` může být nyní renderován jako Mermaid pro poznámky v Markdownu, jako HTML pro spolehlivou náhradu nebo jako Editable HTML/SVG pro další úpravy. Draw.io a Drawnix zůstávají exportéry artefaktů typu CLI místo renderovacích cílů uvnitř pluginu. + +## Použití + +### Vytvořit diagram + +1. Otevřete poznámku +2. Spusťte **"Notemd: Vytvořit diagram"** z palety příkazů +3. Notemd rozpozná záměr, vytvoří specifikaci, renderuje a uloží artefakt + +**Soubory výstupu podle cíle:** + +| Cíl | Rozšíření | Vzor názvu souboru | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| Upravitelné HTML/SVG | `.html` | `{note}_diagram.html` | + +### Náhled diagramu + +1. Spustit **"Notemd: Náhled diagramu"** +2. Otevře se modální okno s vykresleným diagramem +3. Exportovat jako SVG nebo PNG pomocí tlačítek na panelu nástrojů + +**Automatické otevření náhledu** je k dispozici v nastaveních — po generování se modální okno s náhledem spustí automaticky. + +Modální okno s náhledem má také panel diagnostiky artefaktů. Renderery a kontrolní testy mohou přidat `RenderArtifact.diagnostics`; okno zobrazuje souhrnnou zprávu s počty chyb/warning/info, poté závažnost, typ diagnostiky, zprávu a doporučení k opravě vedle náhledu. Stejný souhrn se zobrazuje v záznamech historie náhledů, takže lze porovnat opakované pokusy circuitikz bez otevírání každého záznamu. U artefaktů, které mají zdrojový obsah, ale nemohou být vykresleny inline nebo prostřednictvím cesty HTML iframe, se nyní modální okno přepne na náhled pouze ze zdroje místo nutnosti prázdného iframe. To umožňuje circuitikz kontrolu kompilace/vykreslování, SVG kontroly textových tokenů, kontroly prázdných snímků PNG a budoucí zprávy o překrytech s viditelným UI povrchem, aniž by se TikZJax nebo LaTeX staly povinnou závislostí během provozu pluginu nebo se předstíralo, že zdrojový text je ověřené vizuální vykreslení. + +### Režim staré verze Mermaid + +Když je `enableExperimentalDiagramPipeline` vypnuté, Notemd odešle přímou žádost Mermaid na LLM. Tím se zcela obejde specifický procesní řetězec. Pokud experimentální proces selže, přejde se do tohoto režimu. + +## Výkonné prostředí pro vykreslování + +### Mermaid + +6 adaptérů (mindmap, flowchart, sequence, ER, class, state) převádí `DiagramSpec` na syntaxi Mermaid. Po generování `mermaid.parse()` ověřuje výstup. Pokud ověření selže: + +1. **Opakovat LLM** — jeden pokus s chybovou zprávou Mermaid jako kontextem +2. **Minimální náhrada** — jednoduchý diagram Mermaid z ID uzlů specifikace + +**Legacy Mermaid Fixer** automaticky opravuje běžné chyby syntaxe LLM: normalizaci direktiv note, escape označení pipe-label, přesunování středníků, chytré uvozovky, šipky se dvojitými drahami, nesrovnalosti tvarů a mnoho dalšího. + +### JSON Canvas + +Vytváří formát Obsidian JSON Canvas s prostorovou rozvržeností: +- Uzly jsou umístěny podle hloubky (x = hloubka × 420) a indexu (y = index × 170) +- Šířka se odhaduje na základě délky nápisu +- Hrany s `fromSide: 'right'`, `toSide: 'left'`, `toEnd: 'arrow'` + +### Vega-Lite + +Vytváří kompletní specifikace Vega-Lite v5 JSON s automatickým kódováním: +- **Kartézské grafy** (sloupcové/liniové/plošné/bodové/rozptylové): kanály x + y spolu s barvou pro více řad +- **Kruhový graf**: theta = y (kvantitativní), barva = x (nominální) +- **Tabulka**: řádek = x, text = y + sloupec = řada + +Před kompilací se tematické patche tmavé a světlé verze hluboce sloučí. + +### HTML + +Univerzální náhradní řešení. Samostatný dokument HTML s: +- Meta záhlavími CSP +- Režim světlo/tma prostřednictvím `prefers-color-scheme` +- Lokalizované nápisy UI pro 20 jazykových lokalit +- Sekce: hlavní obraz, struktura (strom uzlů), vztahy, poznámky, tabulky datových řad + +### Upravitelný HTML/SVG + +Výslovný cíl pro grafické zobrazení v pracovních postupech určených k úpravám. Převádí `DiagramSpec` do deterministického `SemanticFigureModel` a poté vytváří samostatný dokument HTML s vloženými skupinami SVG, které obsahují poznámky ve stylu Draw.io: + +- `data-drawio-type`, `data-drawio-id` a `data-drawio-role` na sémantických uzlech +- `data-drawio-source` a `data-drawio-target` na sémantických hranicích +- stabilní identifikátory uzlů/hranic po normalizaci mezer a zpracování kolizí +- žádné skripty, žádné externí písma a žádné vzdálené soubory + +Tento cíl záměrně zatím není výchozí trasou plánovače. Je k dispozici jako výslovný cíl pro zobrazení, dokud se neprokáže chování úprav v reálných nástrojích. + +### Draw.io a Drawnix Hranice exportu + +Současná implementace udržuje podporu třetích stran v rámci hranic artefaktu: + +| Cíl | Smlouva | Závislost na běhu | +|--------|----------|--------------------| +| Draw.io | deterministický nekomprimovaný `mxfile` XML z `SemanticFigureModel` | žádné v běhu pluginu ani v CI | +| Drawnix | minimální podmnožina `.drawnix` JSON pomocí prvků `geometry` a `arrow-line` | žádné v běhu pluginu ani v CI | + +Tato kompromisní volba je záměrná: Notemd může ověřit viditelné nápisy, stabilní ID a podporovanou pokrytí primitivů, aniž by do pluginu začlenil diagram.net Desktop, Drawnix, Plait nebo stav editoru určený pouze pro prohlížeč. + +### circuitikz / TikZJax Směr + +Schémy obvodů nejsou stejný problém jako obecné diagramy toku. Správný syntaxový cíl pro elektrické obvody je obvykle **circuitikz**, který je v Obsidian renderován pomocí pluginů, jako je TikZJax. TikZJax může načíst balíčky jako `circuitikz`, `pgfplots`, `tikz-cd` a `chemfig`, což ho činí atraktivním pro poznámky z fyziky, obvodů, chemie a matematiky. + +Riziko spočívá v tom, že surový TikZ vygenerovaný pomocí LLM je křehký: + +- komplexní topologie obvodu může být elektricky správná, ale vizuálně nečitelná; +- překrývající se dráty a popisky mohou učinit správný netlist nepoužitelným pro studijní poznámky; +- chybějící úvodní části balíčků, nesprávné kotvy nebo neplatná jména součástek mohou zabránit renderování; +- zpětná vazba od rendereru je obvykle na úrovni obrázku, zatímco LLM generuje geometrii na úrovni textu. + +Lepší architektura spočívá v tom považovat circuitikz za omezený cíl diagramu, nikoli za volně tvarovaný prompt: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +Prvotřídní model by měl popisovat topologii obvodu a rozložení odděleně: + +| Vrstva | Odpovědnost | Příklad | +|-------|----------------|---------| +| Topologie | elektrické uzly a spojení součástek | `VDD -> RD -> drain(M1)`, `source(M1) -> GND` | +| Rozložení | umístění v mřížce, orientace, trasy | `M1 at (3,2.2)`, vstup vlevo, výstup vpravo | +| Styl | balíček, konvence napětí, štítky, kotvy | `\begin{circuitikz}[american voltages]` | +| Validace | protokol kompilace, chybějící kotvy, kontroly překrytí/obrázků | TikZJax/Diagnostika LaTeXu spolu s vizuální revizí | + +### Aktuální prototyp circuitikz + +Notemd nyní zahrnuje první omezený prototyp repozitáře pro tuto směr. Je záměrně offline a vázán na šablonu: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +Prototyp přidává samostatnou hranici `CircuitSpec` a deterministického exportéra pro šest rodin zlatých referencí: + +| Druh obvodu | Zlatá referenční hodnota | Záruka proudu | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | validuje `VDD -> R_D -> M1.D`, `vin -> M1.G`, `M1.S -> GND` a `M1.D -> vout` před zápisem do LaTeXu | +| `cmos-inverter` | `cmos-inverter-v1` | validuje topologii PMOS-over-NMOS, sdílený vstup brány, sdílený výstup drainu, `VDD -> MP.S` a `MN.S -> GND` před zápisem do LaTeXu | +| `cmos-buffer` | `cmos-buffer-v1` | validuje dvě kaskádové stupně inverzních obvodů, mezilehlý uzel `vmid`, obnovený `vout` a sdílené vodiče VDD/GND před zápisem do LaTeXu | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | validuje paralelní zařízení PMOS/NMOS mezi `vin` a `vout` s komplementárními ovladači `phib` / `phi` před zápisem do LaTeXu | +| `cmos-nand2` | `cmos-nand2-v1` | ověřuje paralelní PMOS pull-up, sériový NMOS pull-down, dvojí vstupy `va` / `vb` a `vout` před zápisem do LaTeXu | +| `cmos-nor2` | `cmos-nor2-v1` | ověřuje sériový PMOS pull-up, paralelní NMOS pull-down, dvojí vstupy `va` / `vb` a `vout` před zápisem do LaTeXu | + +Toto zatím není obecný generátor TikZ. Nepřekládá LaTeX, nevolá TikZJax, nekontroluje snímky obrazovky ani neprovádí automatickou opravu na základě obrázků. Tyto funkce zůstávají pro pozdější verze. + +Příkaz Preview diagram umožňuje přímo znovu otevřít uložené artefakty zdroje circuitikz, pokud je přípona souboru `.tex` nebo `.tikz` a zdroj obsahuje `\usepackage{circuitikz}` nebo `\begin{circuitikz}`. Tato cesta je preview pouze ze zdroje circuitikz: modální okno zobrazuje zdroj, diagnostiku, ovládací prvky pro kopírování/ukládání a metadaty historie, ale nepřekládá LaTeX ani nevolá TikZJax během provozu pluginu. + +Stejná hranice preview pouze ze zdroje nyní pokrývá uložené artefakty Draw.io a Drawnix. Soubory `.drawio` jsou přijímány, pokud vypadají jako Draw.io XML (`mxfile` nebo `mxGraphModel`), a soubory `.drawnix` jsou přijímány, pokud jsou Drawnix JSON s `type: "drawnix"` a maticí `elements`. Plugin stále nezačleňuje diagrams.net ani hostitelské prostředí Drawnix; tyto previewy zobrazují zdroj, diagnostiku a historii artefaktů bez použití vizuálního editoru uvnitř pluginu. + +Pro opravu s zachováním topologie předejte specifikaci před opravou jako referenci předtím, než přijmete opravený kandidát: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +Ochranný mechanismus opravy používá `createCircuitTopologySignature` a `assertCircuitTopologyUnchanged` k porovnání `circuitKind`, `goldenReferenceId`, sítí, identifikátorů komponent/typů/konektorů a neorientovaných konců spojení před výstupem. Označení, název textu, nápovědy k rozložení, pořadí spojení a označení spojení jsou záměrně ignorovány. Kandidát, který přidá krátký prvek nebo přepojí konektor, selže s chybou `Circuit topology drift detected` ještě před zápisem souboru `.tex`. + +CLI nyní dokáže analyzovat existující soubor s výstupem LaTeX/TikZJax bez spuštění kompilátoru: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +Tato diagnostická cesta hlásí chybějící balíčky, jako je `circuitikz.sty`, neznámé klíče TikZ/circuitikz, chyby v syntaxi cesty TikZ, například chybějící středníky, neukončené argumenty z nevyvážených závorek nebo neukončených označení, nedefinované řídicí sekvence, obecné chyby LaTeXu, nouzové zastavení a varovné upozornění na přeplnění `\hbox`. Zůstává založeno na protokolu: místní spouštění LaTeXu/TikZJax a mechanismy pro kvalitu snímků obrazovky jsou stále samostatnými budoucími úkoly. + +Pro kontrolu udržovatelů může stejný CLI volitelně spustit výslovně konfigurovaného renderera bez analýzy příkazů shellu: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Spouštěč kompilace používá `shell: false`, rozšiřuje placeholdery `{tex}`, `{outputDir}` a `{jobName}` na hodnoty pole argumentů, čte vytvořený soubor `{jobName}.log` a vrací `compileExecution` spolu s `compileDiagnostics` v výstupu CLI JSON. `--compile-executable` je pouze cesta bináře renderera nebo obalu; parametry renderera patří do opakovaných hodnot `--compile-arg`. Prázdné spustitelné soubory selžou jako `compile-executable-invalid`, chybějící bináře selžou jako `compile-executable-not-found` a řetězce spustitelných souborů ve tvaru příkazů shellu dostanou doporučení rozdělit argumenty, aby Windows, Linux a macOS dodržovaly stejnou smlouvu o přímém spuštění. S `--expected-artifact` také hlásí `compileExecution.renderSmoke` a selže při CLI, pokud renderer nevytvoří nenulový artefakt. Stále nezačleňuje LaTeX, nečiní z TikZJax závislost provozu pluginu ani neprovádí vizuální opravu na úrovni snímků obrazovky. + +Pokud je očekávaným artefaktem `.svg`, kontrola udržovatelů jde o jeden stupeň hlouběji: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +SVG kontrola ověřuje kořen `<svg>`, kladné rozměry nebo `viewBox`, alespoň jeden viditelný výkresový prvek po vyloučení skrytých/průhledných prvků, jakékoli požadované textové tokeny, zjevné prvky mimo `viewBox`, zjevně překrývající se umístěné označení `<text>` / `<tspan>` a zjevně textová označení překrývající výkresové prvky prostřednictvím `render-svg-label-overlap`. Očekávaný text je hledán ve viditelném textu a dekódovány jsou metadaty dostupnosti, jako je `aria-label`, `<title>` a `<desc>`, takže renderery, které zachovávají sémantická označení mimo viditelný `<text>`, mohou stále splnit kontrolu textových tokenů bez potřeby OCR. Geometrická fáze je nyní geometrií citlivou na transformace pro běžné atributy skupin a prvků `transform`, takže přeložené, zmenšené, otočené, zkreslené nebo maticově transformované boxy SVG jsou kontrolovány po kompozici transformací. Pokrývá přesné hranice kruhů pro extrémy kruhů A/a, přesné hranice křivek Bezier pro extrémy křivek C/S/Q/T, hranice SVG citlivé na šířku tahu a kontroly překrytí označení, geometrii kreslení `polyline` / `polygon` a také řeší umístění glyfů pouze z cesty `<use href="#...">`, takže označení převedená na znovupoužitelné glyfické cesty mohou stále selhat při kontrole ohraničeného plátna, pokud geometrie umístěného glyfu překročí `viewBox`. Více umístěných označení `tspan` pod jedním rodičem `<text>` je porovnáváno jako samostatné boxy označení, což zachycuje výstup ve stylu LaTeX SVG, který by jinak sloučil odlišná označení do jednoho textového uzlu. Umístěné boxy SVG `text` a `tspan` respektují hodnoty `text-anchor` `start`, `middle` a `end`, takže centrovaná a vpravo zarovnaná označení mohou spustit diagnostiku překrytí textu/textu a označení versus výkresu, aniž by bylo nutné používat rozvržení textu na úrovni prohlížeče. Glyfické cesty definované pouze pro účely definice uvnitř `<defs>` nejsou počítány jako viditelné výkresové prvky, ale jejich vlastní atributy lokální definice `transform` jsou aplikovány před umístěním `<use>`, takže zmenšené nebo zrcadlené definice glyfů nejsou podpočítávány. Kontrola označení versus výkres používá malou toleranci pro výkresové boxy a deklarované `stroke-width`, takže tenké dráty, tlusté dráty a polygonální obrysy komponent mohou být považovány za potenciální selhání čitelnosti označení, pokud jejich viditelný tah dosáhne označení. Glyfická označení pouze z cesty `<use href="#...">` jsou také porovnávána s výkresovými boxy a selžou s chybou `render-svg-path-glyph-overlap`, pokud znovupoužitelná geometrie glyfu překryje dráty nebo komponenty. Pokud renderer převádí označení na znovupoužitelné glyfické cesty místo vyhledatelných `<text>` a nezachovává metadaty dostupnosti, zpráva o kontrole udržovatelů zaznamenává `pathOnlyGlyphUseCount` a selže u požadovaného textového tokenu prostřednictvím `render-svg-text-path-only`, místo aby předstírala, že označení je jednoduše chybějící. Ostatní selhání jsou hlášena prostřednictvím `render-svg-invalid`, `render-svg-dimension-missing`, `render-svg-no-visible-elements`, `render-svg-text-missing`, `render-svg-out-of-bounds`, `render-svg-text-overlap`, `render-svg-label-overlap` nebo `render-svg-path-glyph-overlap`. Kontroly textových tokenů a překrytí by měly být považovány pouze za strukturální kontrolu u rendererů, které zachovávají označení jako vyhledatelný text SVG nebo metadaty dostupnosti; výstup pouze z cesty SVG stále potřebuje pozdější kontrolu snímku obrazovky/OCR k prokázání čitelnosti vizuálních označení a tato kontrola udržovatelů stále neklade nárok na plné pokrytí cesty SVG. + +Skryté skupiny a prvky SVG jsou konzistentně přeskakovány během počítání viditelných prvků a sběru geometrie. Atributy nebo inline styly `display:none`, `visibility:hidden`, `visibility:collapse` a celkový styl `opacity:0` nemohou zajistit, aby jinak prázdný výstup renderingu prošel kontrolou viditelného výstupu. + +Glyfické definice pouze z cesty mohou být přímé cesty nebo skupinované/symbolové kontejnery uvnitř `<defs>`. Kontrola udržovatelů řeší geometrii dceřiných cest z `<g id="...">` a `<symbol id="...">` před umístěním `<use>`, takže výstup obalených glyfů stále naplňuje požadavky `pathOnlyGlyphUseCount`, kontrol ohraničeného plátna a `render-svg-path-glyph-overlap`. + +Parser cesty také sleduje začátky podcest a resetuje aktuální bod na `Z/z`, takže relativní příkazy po uzavřené podcestě pokračují z správného bodu SVG místo vytváření falešných diagnostik `render-svg-out-of-bounds`. + +Stejný průchod geometrií se řídí gramatikou SVG pro desetinná čísla s předchozím tečkou a výslovné plus znaménko, takže kompaktní souřadnice dvisvgm jako `.5`, `-.5` nebo `+.5` zůstávají zlomkové během kontrol hranic místo toho, aby se staly falešně mimo hranice geometrie nebo byly přeskočeny. + +Pokud renderer vydá `.png`, stejná cesta očekávaného artefaktu se stane prvním snímkem k ověření: Notemd dekóduje neinterlaced 1/2/4/8-bitové PNG s indexovanou barvou, 1/2/4/8/16-bitové PNG v šedé stupnici a 8/16-bitové PNG v šedé stupnici s alfa/RGB/RGBA kanály. Obrázky s indexovanou barvou a sub-byte šedou stupnicí podporují komprimované vzorky; obrázky s indexovanou barvou také podporují PLTE a volitelná data tRNS; obrázky v šedé stupnici/RGB podporují průhledné vzorky tRNS. 16-bitové přímé vzorky jsou normalizovány do stejného 8-bitového prostoru srovnání RGBA používaného k ověření. Ověření kontroluje kladné rozměry, zaznamenává hranice popředí jako `foregroundBounds`, zaznamenává hustotu popředí uvnitř této oblasti jako `foregroundDensity`, selže s `render-png-blank`, když každý viditelný pixel odpovídá barvě pozadí v levém horním rohu, selže s `render-png-content-clipped`, když obsah popředí dosahuje hranic obrázku, selže s `render-png-foreground-too-small`, když velký snímek má méně než čtyři pixely popředí, a selže s `render-png-foreground-dense`, když jsou pixely popředí neobvykle husté uvnitř nesnadné oblasti. Nepodporované formáty PNG selžou s `render-png-unsupported` a jsou uvedeny specifické pokyny pro Adam7 interlaced PNG nebo nepodporované hloubky barev indexované barvy. To zachycuje prázdné snímky, zjevné ořezání obrazovky, nedostatečně renderované stopy popředí, první selhání kvůli přeplnění na úrovni pixelů a nesprávné nastavení exportu PNG rendereru, aniž by byla potřeba platformově specifická závislost shellu. Nejedná se zatím o rozpoznávání štítků na úrovni OCR, přesné detekci překrytí textu nebo opravu obrázků s zachováním topologie. + +Když diagnostika ukáže selhání kompilace nebo render-smoke běhu, CLI může také vytvořit stručný popis opravy s zachováním topologie: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +Stručný popis opravy používá schéma `notemd.circuitikz.repair-brief.v1` a obsahuje zdroj `CircuitSpec`, podpis topologie, diagnostiku kompilace/renderingu, povolené úpravy, zakázané úpravy topologie, další kroky ověření a strukturovaný `repairPrompt`. Role promptu je `topology-preserving-circuitikz-repair`; jeho seznam `diagnosticFocus` je odvozen z diagnostiky kompilace/renderingu a jeho požadavky `acceptanceCriteria` vyžadují validaci kandidáta spolu s novou kompilací a render-smoke kontrolami. Jedná se o formát pro pozdější cyklus oprav, nikoli tvrzení, že Notemd již provádí autonomní vizuální opravu. + +Po vytvoření kandidáta na opravu může stejný CLI ověřit jeho shodu se stručným popisem před vytvořením výstupu: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief` kontroluje podpis topologie kandidáta z popisu a je vzájemně vylučující s `--topology-reference`. Překonání této kontroly dokazuje pouze zachování topologie; kandidát stále potřebuje diagnostiku kompilace a kontroly render-smoke. + +Výsledek `--repair-brief` také zahrnuje důkazy `repairAcceptance` se schématem `notemd.circuitikz.repair-acceptance.v1`. Hlásí brány `topology-signature`, `compile-diagnostics` a `render-smoke` jako `passed`, `failed` nebo `missing`; odhaluje `remainingChecks`; a udržuje `readyForVisualAcceptance` na hodnotě false, dokud běh kandidáta nezahrne všechny požadované důkazy. + +Použijte `--repair-acceptance-output` s `--repair-brief`, když potřebujete trvalý soubor JSON pro důkazy CI nebo vydání: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +Pro důkazy vydání nebo správce spusťte každou podporovanou zlatou rodinu prostřednictvím agregátního spouštěče fixtureů: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Spouštěč používá `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json` a `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json`, volá stejnou cestu exportéru bez shellu pro každý fixture a vrací agregátní zprávu JSON s údaji `compileExecution` a `compileDiagnostics` pro každý fixture. Stále se jedná o příkaz správce, nikoli o závislost na běhu pluginu. + +Když počítač správce ještě nemá nakonfigurovaný renderer, spusťte stejný příkaz fixtureu bez `--compile-executable` a výslovně uložte bránu prostředí: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +Tato cesta stále vytváří deterministické artefakty fixtureu `.tex`, ale vrací `ok: false` s `rendererAvailability.status` nastaveným na `missing-configuration` a diagnostikou `compile-executable-invalid`. Považujte to pouze za důkaz dostupnosti rendereru; nejedná se o kompilaci, render-smoke ani vizuální schválení. + +### Tvar zlatého referenčního promptu + +Pro krátkodobé použití poskytněte renderovatelnou zlatou referenci před požadavkem na variantu obvodu. Omezený prompt by měl zachovat úvod, měřítko souřadnic, styl kotvení a konvence směrování: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +U CMOS inverze by prompt měl požadovat explicitní topologii spolu s omezeními rozvržení, nejen „nakreslete CMOS inverzi“: + +- uchovejte `VDD` nahoře, `GND` dole, vstup vlevo, výstup vpravo; +- Použijte `pmos` nad `nmos` s sdílenými branami a sdílenými vývody; +- Udržte výstupní uzel na spoji vývodů a označte ho `*-o`; +- Použijte pojmenované kotvy (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) místo vizuálně odvozených souřadnic; +- Vyhýbejte se diagonálním nebo křížícím se vodičům, pokud to není elektricky nutné. + +### Současný postup a následující fáze + +| Plocha | Aktuální stav | Další krok | +|------|----------------|-----------| +| Obecné diagramy | Implementován pipeline založený na specifikacích pro Mermaid, JSON Canvas, Vega-Lite, HTML | Pokračujte ve rozšiřování pokrytí sémantické kontroly | +| Upravitelné obrázky | Byly implementovány hranice artefaktů `editable-html-svg`, Draw.io XML a Drawnix JSON | Přidávejte bohatší primitivy až poté, co testy prokážou jejich upravitelnost | +| Podpora CLI | `npm run diagram:export-artifact` exportuje upravitelné HTML/SVG, Draw.io a Drawnix z jednoho `DiagramSpec` | Přidat specifické zařízení pro kouřové testy pro nové cíle při jejich doručení | +| circuitikz | `CircuitSpec -> circuitikz` prototyp exportuje společné zdroje, invertor CMOS, `cmos-buffer` / `cmos-buffer-v1`, `cmos-transmission-gate` / `cmos-transmission-gate-v1`, `cmos-nand2` / `cmos-nand2-v1` a `cmos-nor2` / `cmos-nor2-v1` zlaté šablony, projekty `layoutHints.inputSide` a `layoutHints.outputSide` do deterministického umístění vstupních/výstupních portů bez změny topologie, odmítá drift topologie opravami prostřednictvím `--topology-reference`, vydává zprávy o opravách zachovávajících topologii prostřednictvím `--repair-brief-output` a schématu `notemd.circuitikz.repair-brief.v1`, zahrnuje strukturovaný obsah předání `repairPrompt` s `diagnosticFocus`, `acceptanceCriteria` a rolí `topology-preserving-circuitikz-repair`, ověřuje kandidáty na opravu prostřednictvím `--repair-brief`, vrací důkazy o bránách prostřednictvím schématu `notemd.circuitikz.repair-acceptance.v1` s `readyForVisualAcceptance` a `remainingChecks`, uchovává tyto důkazy prostřednictvím `--repair-acceptance-output`, analyzuje protokoly kompilace, může spouštět výslovné lokální renderery plus `--expected-artifact`, SVG `--expected-svg-text`, kontroly metadat dostupnosti prostřednictvím `aria-label`, `<title>` a `<desc>`, vyloučení skrytých/průhledných prvků SVG, klasifikace `render-svg-text-path-only` / `pathOnlyGlyphUseCount` pro nápisy pouze na cestách, kontroly umístění glyfů pouze na cestách pro `<use href="#...">`, diagnostika překrytí glyfů pouze na cestách prostřednictvím `render-svg-path-glyph-overlap`, zpracování aktuálního bodu uzavřených cest pro `Z/z`, přesné hranice oblouků pro extrémy oblouků A/a, přesné hranice křivek Bezier pro extrémy křivek C/S/Q/T, kontroly překrytí s ohledem na šířku tahu SVG a nápisů, kontroly geometrie kreslení `polyline` / `polygon`, geometrie umístěných nápisů `tspan`, geometrie textu umístěného s ohledem na `text-anchor`, geometrie s ohledem na transformaci pro SVG ohraničené plátno/překrytí textu a kouřové testy nápisů vs. kresby prostřednictvím `render-svg-label-overlap`, a kontroly snímků obrazovky PNG neprázdných/ostříhaných/hustě vyplněných s pozadím, včetně alfy indexované palety barev, průhledných vzorků v šedé/grafické RGB tRNS a specifických pokynů `render-png-unsupported` pro interleaved PNG Adam7 a selhání indexované hloubky bitů, prostřednictvím `foregroundBounds`, `foregroundDensity`, `render-png-content-clipped` a `render-png-foreground-dense` bez analýzy shellu, zahrnuje agregovaná zařízení pro testy udržovatelů prostřednictvím `npm run diagram:smoke-circuitikz`, zaznamenává chybějící konfiguraci rendereru prostřednictvím `rendererAvailability.status: "missing-configuration"` a `compile-executable-invalid`, a má obecné diagnostické nástroje, souhrnný počet diagnostik, záznamy historie s ohledem na diagnostiku a náhradu pouze ze zdroje prostřednictvím `RenderArtifact.diagnostics` a modálního přehledu | Přidat rozpoznávání nápisů na úrovni OCR pro vizuální text pouze na cestách, přesné kontroly překrytí na úrovni pixelů, širší pokrytí cest SVG tam, kde je to potřeba, automatickou instalaci/nalezení rendereru pouze tehdy, pokud může zůstat volitelné, a automatizované provedení oprav zachovávajících topologii | +| Integrace TikZJax | Kandidátský host pro renderování na straně Obsidian | Udržet to volitelné; neudělejte z TikZJax povinnou závislost během provozu pluginu | + +## Konfigurace + +| Nastavení | Výchozí | Účinek | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | Přepínat mezi přístupem zaměřeným na specifikace a starším Mermaid | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = Mermaid pouze; `'best-fit'` = nativní cíle + náhrady | +| `preferredDiagramIntent` | `undefined` (automaticky) | Přepsat automatické detekování záměru | +| `summarizeToMermaidLanguage` | `'en'` | Jazyk cíle pro nápisy diagramů | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | LLM na úrovni úlohy pro generování diagramů | +| `autoMermaidFixAfterGenerate` | (z konstant) | Automaticky spustit starší opravovač na výstupu Mermaid | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | Doplnit zdroj místními znalostmi ze trezoru | + +### Lokální doplnění znalostí + +Když je aktivováno, Notemd načítá relevantní úryvky kontextu z místní báze znalostí vašeho trezoru (založené na MiniSearch) a přidává je na začátek zdrojového markdownu. Doporučení k doplnění uvádí: "Pouze podpůrná reference; zachovejte primární strukturu věrně ke zdrojové poznámce." + +### Režimy kompatibility + +- **`legacy-mermaid`**: Všechny záměry jsou směrovány k Mermaid. Záměry, které nejsou typu Mermaid (canvasMap, dataChart), jsou nuceny použít `flowchart` nebo `mindmap`. Žádný záložní řetězec. +- **`best-fit`**: Každý záměr je směrován ke svému nativnímu cíli. Pokud primární cíl selže, proběhne procházka záložním řetězcem (např. Vega-Lite → Mermaid → HTML). + +## Náhled a export + +| Akce | Metoda | +|--------|--------| +| SVG export | `mermaid.render()` / `vega.View.toSVG()` / SVG builder pro Canvas | +| Export do PNG | SVG → Obraz → Canvas (poměr pixelů zařízení 1x-3x) → PNG ArrayBuffer | +| Uložení zdroje | Obsah surového artefaktu je uložen s koncovou extenzí specifickou pro cíl | +| Náhled pouze zdroje | Nelineární artefakty se zdrojovým obsahem jsou zobrazeny jako kód spolu s diagnostikou, bez renderování iframe | +| Sémantická kontrola | Mermaid, JSON Canvas, Vega-Lite a upravitelný HTML/SVG ověřený `scripts/diagram-semantic-verification.js` | + +**Caching**: RenderCache využívá deterministický klíč JSON od `{spec, target, theme}`. Odstranění duplicit během zpracování zabraňuje opakovanému generování. + +## Tipy + +- **Začněte v režimu `best-fit`** — poskytuje nejlepší vizuální výstup pro každý typ záměru +- **Použijte výkonné modely pro složité diagramy** — diagramy toků a ER diagramy těží z GPT-4o nebo Claude +- **Aktivujte místní znalosti** pro diagramy specifické pro obor — relevantní kontext vault zvyšuje přesnost +- **Nastavte `autoMermaidFixAfterGenerate`** — bez něj jsou běžné syntaxové chyby Mermaid +- **Legací nástroj na opravy je komplexní** — pokud selže náhled Mermaid, ruční spuštění příkazu na opravu to často vyřeší + +--- + +## Další kroky + +- 🔗 [Wiki-Links](./wiki-links) — Jak jsou koncepty propojovány v rámci textu +- 📝 [Concept Notes](./concept-notes) — Extrahujte koncepty pro zdrojový materiál diagramů +- 🔍 [Research](./research) — Obohaťte diagramy daty z webu diff --git a/website/i18n/cs/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/cs/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..a9c2863d --- /dev/null +++ b/website/i18n/cs/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "Výzkum a vyhledávání na webu" +description: "Integrujte vyhledávání na webu do svých poznámek" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Výzkum a vyhledávání na webu + +<TLDR> +**Notemd vyhledává na webu a vkládá LLM shrnuté výsledky přímo do vašich poznámek.** Tavily API je hlavní vyhledávací backend; DuckDuckGo slouží jako nulově konfigurovaná náhrada. Výsledky jsou shrnuty s odkazy na zdroje a přidány pod nadpisem `## Research`. Podporuje výzkum v jedné poznámce, hromadný výzkum v složkách a výběr modelu pro krok shrnutí podle úkolu. + +Toto je součástí [Obsidian Průvodce AI pro správu znalostí](/docs/pillar-ai-knowledge). +</TLDR> + +## Přehled + +Výzkum je jednou z nejmocnějších integrací Notemd: uzavírá smyčku mezi čtením, vyhledáváním a psaním. Místo přechodu do prohlížeče, abyste našli neznámý termín, ho jen označíte a necháte Notemd provést vyhledávání, shrnutí a přidání výsledků – vše uvnitř vašeho úložiště. + +Celý proces je plně konfigurovatelný. Vy si můžete vybrat poskytovatele vyhledávání, LLM, které bude psát shrnutí, a také to, zda mají být výsledky přidány do aktuální poznámky nebo uloženy do samostatných souborů. Režim hromadného zpracování umožňuje vyhledat všechny poznámky ve složce jedním kliknutím. + +## Jak to funguje + +### Pipeline vyhledávání a následného shrnutí + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **Extrakce dotazu** – Notemd extrahuje vyhledávací termíny z vaší volby nebo z názvu poznámky. +2. **Vyhledávání na webu** – nejprve se pokusí Tavily. Pokud není konfigurován klíč API, použije se automaticky DuckDuckGo (klíč není potřeba). +3. **LLM shrnutí** – surové výsledky vyhledávání jsou odeslány do konfigurovaného LLM, které vytvoří stručné shrnutí s odkazy na zdroje. +4. **Přidání** – formátované shrnutí je přidáno pod nadpisem `## Research` v aktuální poznámce. + +### Tavily versus DuckDuckGo + +| Aspekt | Tavily | DuckDuckGo | +|--------|--------|------------| +| Klíč API | Požadováno (dostupná bezplatná úroveň) | Nepožadováno | +| Kvalita výsledků | Vyšší (vyvinuto speciálně pro AI) | Dostatečné pro běžné dotazy | +| Limity rychlosti | Štědrá bezplatná úroveň | Podléhá omezování rychlosti | +| Konfigurace | `tavilyApiKey` v nastaveních | Nulová konfigurace – automatický přechod | + +### Výzkum ve skupinách souborů + +Klikněte pravým tlačítkem na složku a vyberte **"Notemd: Složka pro výzkum"**. Každý soubor `.md` v této složce je zpracován postupně (nebo paralelně až do nastavené konvergenční kapacity). Každá poznámka dostane svůj vlastní souhrn výzkumu. + +## Konfigurace + +| Nastavení | Výchozí | Účinek | +|---------|---------|--------| +| `tavilyApiKey` | `''` | Klíč Tavily API. Pokud je prázdný, používá se výhradně DuckDuckGo. | +| `researchProvider` / `researchModel` | DeepSeek | LLM na úrovni jednotlivých úloh pro shrnování výsledků vyhledávání | +| `maxResearchContentTokens` | `4000` | Tokenový rozpočet pro obsah odeslaný do LLM. Přebytek je zkrácen. | +| `researchAppendToNote` | `true` | Přidejte souhrn k původní poznámce. Pokud je hodnota false, vytvoří se samostatný soubor. | +| `researchLanguage` | `'en'` | Jazyk výstupu pro shrnutý výzkum | + +### Doporučení modelu na úrovni jednotlivých úloh + +Výzkum těží z modelu, který zvládá vícejazyčný obsah a vytváří dobře strukturovaný text. Zvažte následující možnosti: + +- **DeepSeek** -- standardní verze, dostupná cenově, dobrá kvalita +- **GPT-4o** -- lepší kvalita shrnutí, vyšší cena +- **Gemini Flash** -- rychlý a levný, vhodný pro jednoduché dotazy + +## Příklad + +Čtete článek o *transformer attention mechanisms* a narazíte na neznámý termín: *relative positional encoding*. Místo toho, abyste nechali Obsidian: + +1. Zvýrazněte **"relative positional encoding"** +2. Klikněte pravým tlačítkem --> **"Notemd: Výzkum a shrnutí"** +3. Notemd prohledá web, shrne nejlepší výsledky a přidá: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +Shrnutí je nyní součástí vašeho úložiště, lze ho vyhledávat, odkazovat na něj a přistupovat k němu i offline. + +## Tipy + +- **Nastavte klíč Tavily pro lepší výsledky** -- dokonce i bezplatná verze poskytuje lepší relevanci než čisté DuckDuckGo. +- **Použijte schopný model na shrnování** -- levné modely mohou zjednodušit jemné technické obsahy. +- **Proveďte hromadný výzkum** po prvním přečtení, abyste najednou doplnili mezery v mnoha poznámkách. +- **Prozkoumejte přidaná shrnutí** -- LLM mohou vytvářet falešné informace o zdrojích. Ověřte klíčová tvrzení. + +--- + +## Další kroky + +- [Concept Notes](./concept-notes) -- Vyextrahujte a uložte klíčové termíny z výsledků výzkumu +- [Wiki-Links](./wiki-links) -- Propojte koncepty získané z výzkumu v rámci vašeho úložiště +- [Translation](./translation) -- Přeložte shrnutí výzkumu do jiného jazyka +- [LLM Poskytovatelé](/docs/providers/overview) -- Nakonfigurovat model používaný pro shrnutí diff --git a/website/i18n/cs/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/cs/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..33fb2cbc --- /dev/null +++ b/website/i18n/cs/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "Překlad" +description: "Přeložte poznámky a výběry" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# Překlad + +<TLDR> +**Notemd překládá texty mezi 21+ jazyky pomocí překladu poháněného LLM.** Podporuje překlad jednotlivých výběrů, překlad celých poznámek a hromadný překlad složek. Každý překladový úkol může využít vlastního poskytovatele a model prostřednictvím nastavení pro konkrétní úkol. Výstupní jazyk lze nezávisle nakonfigurovat od jazyka UI. Výsledky se přidávají pod původní text nebo se zapisují do nového souboru podle vašich preferencí. + +Toto je součástí [Obsidian Průvodce AI pro správu znalostí](/docs/pillar-ai-knowledge). +</TLDR> + +## Přehled + +Překlad v Notemd není hledáním ve slovníku – jedná se o překlad poháněný LLM, který bere v úvahu kontext. Model vidí celý odstavec nebo poznámku a zachovává tón, odbornou terminologii a strukturu vět. To vytváří kvalitnější výsledky než služby překládající věty po větách, zejména u technického, akademického a kreativního psaní. + +Tato funkce podporuje tři rozsahy: výběr, aktivní poznámku a celou složku. Spolu s výběrem modelu pro každý úkol můžete použít rychlý model (Gemini Flash) pro běžný překlad a výkonný model (Claude Sonnet) pro obsah citlivý na nuance – aniž byste měnili svého globálního poskytovatele. + +## Jak to funguje + +### Příkaz Translate + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **Detekce zdrojového jazyka** – LLM odhadne zdrojový jazyk z obsahu. Nemusíte ho ručně specifikovat. +2. **Vytvoření promptu** – Notemd sestaví prompt, který zahrnuje cílový jazyk, volitelnou nápovědu k oboru a text k překladu. +3. **Překlad LLM** – nakonfigurovaný `translateProvider` / `translateModel` zpracuje požadavek. Model zachovává formátování v markdownu, wiki-odkazy a bloky kódu. +4. **Výstup** – přeložený text se buď přidá pod původní text, nebo se zapisuje do nového souboru ve vaultu. + +### Páry jazyků + +Notemd podporuje jakoukoli páru jazyků, kterou podporuje základní LLM. Mezi běžné páry patří: + +| Zdrojový jazyk | Cíl | Typická kvalita | +|--------|--------|----------------| +| Angličtina | Čínština (zjednodušená) | Vynikající | +| Čínština | Angličtina | Vynikající | +| Angličtina | Japonský | Velmi dobré | +| Angličtina | Němčina / Francouzština / Španělština | Velmi dobré | +| Jakákoli podporovaná | Jakákoli podporovaná | Závisí na modelu | + +Nastavení `translateLanguage` řídí **jazyk výstupu**. Zdrojový jazyk je automaticky detekován. + +### Výběr modelu pro jednotlivé úlohy + +Kvalita překladu se u různých modelů výrazně liší. Notemd vám umožňuje přiřadit speciální model pouze pro překlad: + +| Model | Rychlost | Kvalita | Náklady | Nejlepší pro | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | Rychlé | Dobré | Nízký | Nevybíravé, vysoký objem | +| `gpt-4o-mini` | Rychlé | Dobré | Nízký | Rychlé vyhledávání | +| `deepseek-chat` | Střední | Dobré | Velmi nízké | Budžetové vícejazyčné | +| `claude-3-5-sonnet` | Střední | Vynikající | Střední | Technický / akademický | +| `gpt-4o` | Střední | Vynikající | Střední | Prosa citlivá na nuance | + +### Překlad složky hromadně + +Klikněte pravým tlačítkem na složku a vyberte **"Notemd: Přeložit složku"**, abyste přeložili všechny poznámky v této složce. Každý soubor je zpracován nezávisle. Nastavení souběžnosti určuje, kolik souborů se překládá současně. + +## Konfigurace + +| Nastavení | Výchozí | Účinek | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | Specializovaný poskytovatel pro úkoly překladu | +| `translateLanguage` | `'en'` | Cílový jazyk výstupu | +| `translationAppendToNote` | `true` | Přidejte přeložený text pod původní. Pokud je hodnota false, vytvoří se nový soubor. | +| `batchConcurrency` | `3` | Počet souborů zpracovávaných současně během hromadného překladu | + +## Příklad + +Čtete čínskou výzkumnou poznámku a chcete její anglickou verzi: + +1. Otevřete poznámku +2. Klikněte pravým tlačítkem --> **"Notemd: Přeložit aktuální soubor"** +3. Notemd rozpozná čínštinu, přeloží ji do vašeho nakonfigurovaného cílového jazyka (angličtina) a přidá: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +Původní čínský text zůstane nedotčen nad překladem. Nadpis `## Translation` udržuje obě verze ve stejném souboru pro snadnou referenci. + +## Tipy + +- **Použijte Gemini Flash pro velké množství** -- je to nejrychlejší a nejlevnější možnost pro hromadný překlad velkých složek. +- **Uchovat odkazy na wiki** -- pokyn Notemd nařizuje LLM ponechat `[[wiki-links]]` beze změny při překladu. Po překladu to ověřte, protože některé modely je občas rozbalí. +- **Jasně nastavit výstupní jazyk** -- automatické detekování funguje u zdrojového textu, ale vždy nakonfigurujte `translateLanguage`, abyste se vyhnuli nejednoznačnosti ohledně cílového jazyka. +- **Hromadný překlad konceptních poznámek** -- pokud je vaše složka s koncepty v jednom jazyce a potřebujete ji v jiném, překlad na úrovni složky to zvládne v jediném kroku. + +--- + +## Další kroky + +- [Výzkum](./research) -- Vyhledejte a shrňte v jakémkoli jazyce a poté přeložte výsledky +- [Pracovní postupy](./workflows) -- Spojte překlad s odkazy na wiki nebo extrakcí konceptů +- [Hromadná zpracování](/docs/advanced/batch-processing) -- Konvergenční chování a možnost přepsání při operacích se složkami +- [LLM Poskytovatelé](/docs/providers/overview) -- Vyberte nejlepší model pro váš jazykový pár diff --git a/website/i18n/cs/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/cs/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..181933cc --- /dev/null +++ b/website/i18n/cs/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "Wiki-Links" +description: "Automatická generace wiki odkazů pro klíčové koncepty" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# Wiki-Links + +<TLDR> +**Notemd automaticky přidává `[[wiki-links]]` ke klíčovým konceptům ve vašich poznámkách.** LLM čte váš obsah, identifikuje důležité termíny v kontextu a vkládá wiki odkazy ve stylu Obsidian u každého výskytu. Volitelně vytváří soubory konceptových poznámek s zpětnými odkazy. Podporuje potlačování synonym, zachování integrity odkazů při přejmenování nebo smazání a režim čisté extrakce (bez úprav souborů). Na rozdíl od Auto Link, který odpovídá pouze stávajícím názvům poznámek, Notemd využívá AI k identifikaci nových konceptů a vytváří odpovídající poznámky. Toto je součástí [Obsidian Průvodce AI řízením znalostí](/docs/pillar-ai-knowledge). +</TLDR> + +## Přehled + +Vytváření wiki odkazů je základní funkcí Notemd. Převádí běžný text na propojenou grafu znalostí následovně: + +1. **Analýza vaší poznámky** pomocí LLM +2. **Identifikace klíčových konceptů** (termínů, osob, metod, teorií) +3. **Vkládání `[[wiki-links]]`** u každého výskytu +4. **Vytváření konceptových poznámek** (volitelně) s zpětnými odkazy + +## Jak to funguje + +### Proces + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### Příklad + +**Předtím:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**Poté:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## Použití + +### Základní: Přidání odkazů do aktuální poznámky + +1. Otevřete poznámku +2. Klikněte pravým tlačítkem v editoru → **"Procesovat soubor (přidat odkazy)"** +3. Počkejte několik sekund +4. Koncepty jsou nyní propojeny! + +### Sada: Zpracování více poznámek + +1. Klikněte pravým tlačítkem na složku v Průzkumníku souborů +2. Vyberte **"Notemd: Zpracovat složku (přidat odkazy)"** +3. Konfigurace: + - Souběžnost (kolik souborů najednou) + - Přepsat stávající odkazy (ano/ne) +4. Klikněte na **Zpracovat** + +### Selektivní: Odkazování na konkrétní text + +1. Vyberte text k zpracování +2. Klikněte pravým tlačítkem → **"Zpracovat výběr (přidat odkazy)"** +3. Je analyzována pouze vybraná část + +## Notemd oproti automatickému odkazování + +Obsidian má dva způsoby automatického vytváření wiki odkazů: + +| | **Automatické odkazování** | **Notemd** | +|--|---------------|-------------| +| Zdroj odkazu | Názvy stávajících poznámek ve vaultu | Koncepty identifikované LLM v obsahu | +| Lze vytvořit odkazy na nové koncepty | Ne — název musí již existovat | Ano — AI identifikuje koncepty a vytváří poznámky | +| Zpracování synonym | Ne | Ano — potlačení synonym | +| Vytvoření poznámky o konceptu | Ne | Ano — s zpětnými odkazy a odstraněním duplicit | +| Hromadné zpracování | Ne (jeden soubor) | Ano (na úrovni složky) | +| Směrování modelu podle úkolu | Ne | Ano | + +**Auto Link** funguje na základě shody názvu: pokud existuje poznámka s názvem "Machine Learning", obalí výskyty do `[[Machine Learning]]`. Pokud poznámka neexistuje, nic se nestane. + +**Notemd** je řízeno AI: LLM čte váš obsah, rozumí kontextu, identifikuje koncepty, které *měly* být propojeny — i když ještě žádná poznámka neexistuje — a vytváří jak odkaz, tak poznámku o konceptu. + +## Funkce + +### Potlačení synonym + +**Problém:** "transformer", "transformers", "Transformer architecture" → 3 samostatné koncepty + +**Řešení:** Notemd detekuje téměř duplikáty a používá kanonickou formu. + +**Konfigurace:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### Integrita odkazů + +**Při přejmenování poznámky k konceptu:** +- Všechny wiki-odkazy se automaticky aktualizují (Obsidian základní funkce) +- Zpětné odkazy zůstávají neporušené + +**Při smazání poznámky k konceptu:** +- Odkazy zůstávají, ale zobrazují se jako „nespojené zmínky“ +- Můžete ji vytvořit znovu z jakékoli instance + +### Režim čistého extrakce + +**Extrahujte koncepty bez úprav původního obsahu:** + +1. Klikněte pravým tlačítkem → **„Extrahovat koncepty (bez odkazování)“** +2. Vytvoří se poznámky k konceptům +3. Původní soubor zůstane nedotčen + +Použití: Zpracování pouze pro čtení obsahu nebo finálních verzí. + +## Generování poznámek k konceptům + +### Automatické vytvoření + +**Při aktivaci (výchozí nastavení) vytvoří Notemd:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### Konfigurace + +**Složka s výstupem:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Hierarchická struktura:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**Šablona:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## Pokročilé možnosti + +### Okno kontextu + +**Kolik okolního textu odeslat:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +Větší hodnota = lepší přesnost, vyšší náklady. + +### Minimální počet výskytů + +**Připojit pouze koncepty, které se vyskytují vícekrát:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +Nastavte na 2 nebo 3 pro zaměření se na opakující se témata. + +### Vyloučit vzory + +**Přeskočit určitá slova:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +Zabraňuje nadměrnému propojování obecných termínů. + +### Vlastní pokyny + +**Přepsat výchozí pokyny LLM:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +Upravte pro potřeby konkrétní oblasti (např. "Zaměřte se na lékařskou terminologii"). + +## Tipy a osvědčené postupy + +### ✅ DĚLEJTE + +- **Zpracovávejte poznámky delší než 100 slov** — Krátké poznámky obsahují málo konceptů +- **Používejte výkonné modely** pro lepší identifikaci konceptů (GPT-4o, Claude) +- **Proveďte revizi před přijetím** — Zkontrolujte, zda navržené odkazy dávají smysl +- **Budujte iterativně** — Zpracovávejte 5–10 poznámek, zkontrolujte graf, upravte nastavení + +### ❌ NEDĚLEJTE + +- **Příliš mnoho odkazů** — Ne každé podstatné jméno potřebuje odkaz +- **Opakovaně zpracovávejte návrhy** — Koncepty se mohou měnit, počkejte, dokud nebudou stabilní +- **Ignorujte synonyma** — Povolte potlačení, abyste se vyhnuli rozdílům mezi „ML“ a „Machine Learning“ + +## Výkon + +### Rychlost + +| Velikost poznámky | GPT-4o-mini | Claude Sonnet | Ollama (lokalně) | +|-----------|-------------|---------------|----------------| +| 500 slov | 2–3 sekundy | 3–5 sekund | 5–10 sekund | +| 2000 slov | 5–8 sekund | 10–15 sekund | 20–40 sekund | +| 5000+ slov | V částech (více volání) | Skládané | Skládané | + +### Odhad nákladů + +**Příklad: 1000slovná poznámka s GPT-4o-mini** +- Vstup: ~1500 tokenů +- Výstup: ~200 tokenů +- Cena: ~ + +**Hromadná zpracování 100 poznámek:** ~ + +## Řešení problémů + +### Žádné odkazy přidány nebyly + +**Kontrola:** +1. LLM volání úspěšné (Nastavení → Diagnostika) +2. Poznámka obsahuje dostatek obsahu (>50 slov) +3. Koncepty jsou technické/specifické (nejen zájmena). + +**Vyzkoušejte:** +- Použijte výkonnější model +- Zvýšit okno kontextu +- Zkontrolujte platnost klíče API + +### Příliš mnoho odkazů + +**Řešení:** +1. Zvýšit minimální počet výskytů (2 nebo 3) +2. Přidejte běžná slova do seznamu k vyloučení +3. Použijte méně agresivní model + +### Chybně přiřazené koncepty + +**Opravy:** +1. Použijte vlastní pokyn pro specifickost domény +2. Povolte potlačení synonym +3. Manuálně zkontrolujte a odpojte + +### Odkazy se přeruší po přejmenování + +**Toto je normální chování Obsidian.** + +Chcete-li aktualizovat všechny odkazy: +1. Přejmenujte poznámku k konceptu +2. Obsidian automaticky aktualizuje `[[old]]` na `[[new]]` + +--- + +## Další kroky + +- 📖 [Poznámky k konceptům](./concept-notes) — Podrobný náhled na generování poznámek k konceptům +- 🔍 [Integrace výzkumu](./research) — Kombinujte odkazování s webovým výzkumem +- 🎨 [Diagramy](./diagrams) — Vizualizujte svou grafu znalostí diff --git a/website/i18n/cs/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/cs/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..68e50871 --- /dev/null +++ b/website/i18n/cs/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "Pracovní postupy" +description: "Řetězíte více úloh pomocí tlačítek na jedno kliknutí" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Pracovní postupy + +<TLDR> +**Notemd pracovní postupy řetězí více úloh do jediné akce na jedno kliknutí.** Definujte sekvence jako `add-links > extract-concepts > research > diagram` pomocí jednoduchého DSL. Pracovní postupy se zobrazují jako tlačítka v postranním panelu, která spustí celý řetězec v aktuální poznámce nebo složce. Je dodáván s předdefinovanými pracovními postupy; v nastaveních můžete vytvořit vlastní. Každý krok využívá vlastní konfiguraci modelu pro danou úlohu. + +Toto je součástí [Obsidian Průvodce AI pro správu znalostí](/docs/pillar-ai-knowledge). +</TLDR> + +## Přehled + +Pracovní postup odstraňuje potíže spojené s prováděním úloh jednu po druhé. Místo toho, abyste čtyřikrát klikli pravým tlačítkem pro přidání odkazů, extrakci konceptů, vyhledávání neznámých termínů a vytvoření diagramu, stisknete jedno tlačítko v postranním panelu a celý řetězec se spustí. Notemd se stará o sekvenování, šíření chyb a hlášení pokroku. + +Pracovní postupy jsou definovány pomocí lehkého DSL (jazyka specifického pro danou oblast). Nacházejí se v nastaveních, zobrazují se jako kliknutelná tlačítka v postranním panelu Obsidian a lze je aplikovat buď na aktuální poznámku, nebo na celou složku. + +## Jak to funguje + +### Řetězec provádění pracovních postupů + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **Analýza** -- Řetězec DSL je rozdělen na `>` (nebo `>`) na uspořádaný seznam identifikátorů úloh. +2. **Vyřešení** -- Každý identifikátor se mapuje na vnitřní příkaz (add-links, extract-concepts, research, translate, diagram atd.). +3. **Provedení** -- Kroky se spouštějí postupně. Každý krok využívá konfigurovaného poskytovatele a modelu pro danou úlohu. +4. **Zpracování chyb** -- Pokud selže nějaký krok, pracovní postup buď ukončí, nebo pokračuje k dalšímu kroku v závislosti na vaší politice zpracování chyb. +5. **Ukončení** -- Oznámení typu toast hlásí úspěch nebo uvádí seznam selhavých kroků. + +### Formát DSL + +Pracovní postupy jsou definovány jako sekvence identifikátorů úloh oddělených `>`: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**Dostupné identifikátory úloh:** + +| Identifikátor | Akce | +|------------|--------| +| `process-current-add-links` | Přidat odkazy na wiki do aktuální poznámky | +| `extract-concepts-current` | Vytáhnout koncepty z aktuální poznámky | +| `research-and-summarize` | Prozkoumat vybraný text nebo název poznámky | +| `process-current-translate` | Přeložit aktuální poznámku | +| `summarize-to-mermaid` | Vytvořit diagram z aktuální poznámky | +| `generate-from-title` | Vytvořit obsah na základě názvu poznámky | +| `extract-original-text` | Vytáhnout původní text (pro OCR / skenovaný obsah) | + +**Varianty na úrovni složky** nahradí `current` v názvu identifikátoru za `folder`. + +### Předdefinované vs. vlastní pracovní postupy + +Notemd dodává hotové pracovní postupy pro běžné vzory: + +| Pracovní postup | Řetězec | Použití | +|----------|-------|----------| +| **Jedno-klikové vytahování** | add-links > extract-concepts > research | Zpracovat výzkumnou práci v jednom kroku | +| **Kompletní pipeline** | add-links > extract-concepty > research > diagram | Úplné extrahování znalostí s vizualizací | +| **Přeložit + Odkázat** | translate > add-links | Přeložit a poté odkázat koncepty v cílovém jazyce | + +**Vlastní pracovní postupy** se vytvářejí v nastaveních: + +1. Otevřete **Nastavení** --> **Notemd** --> **Pracovní postupy** +2. Klikněte na **"Přidat pracovní postup"** +3. Zadejte řetězec DSL (např. `process-current-add-links>extract-concepts-current`) +4. Dejte mu název pro zobrazení (např. "Rychlý odkaz + extrakce") +5. Nové tlačítko se okamžitě objeví v bočním panelu + +## Konfigurace + +| Nastavení | Výchozí | Účinek | +|---------|---------|--------| +| `workflows` | Předdefinovaná sada | Sada definic pracovních postupů (název + DSL) | +| `workflowContinueOnError` | `true` | Pokračujte k dalšímu kroku, pokud aktuální krok selže | +| `workflowShowProgress` | `true` | Zobrazte toast s informací o pokroku po dokončení každého kroku | + +### Modely na úrovni úkolu v pracovních postupech + +Každý krok v pracovním postupu využívá svou **vlastní** konfiguraci modelu pro jednotlivé úkoly. Není nutné specifikovat modely přímo v DSL. Pořadí řešení je následující: + +1. Poskytovatel/model pro konkrétní úkol, pokud je `useMultiModelSettings` aktivní +2. Globální `activeProvider` v opačném případě + +To znamená, že `add-links` může běžet na DeepSeek zatímco `research` běží na GPT-4o – vše uvnitř stejného pracovního postupu. + +## Příklad + +Právě jste do svého úložiště importovali PDF z článku o strojovém učení a chcete plné extrakce znalostí: + +1. Otevřete importovanou poznámku +2. Klikněte na tlačítko v bočním panelu **"Plný pipeline"** +3. Notemd spustí následující kroky: + - **Krok 1**: Přidání odkazů na wiki – `[[attention mechanism]]`, `[[transformer]]` atd. + - **Krok 2**: Extrakce konceptů – vytvoří poznámky s koncepty ve vaší složce s koncepty + - **Krok 3**: Výzkum – shrne webové zdroje pro klíčové termíny + - **Krok 4**: Diagram – vytvoří Mermaid myšlenkovou mapu struktury článku +4. Po přibližně 30 sekundách má vaše poznámka odkazy, existují poznámky s koncepty, je přidán výzkum a je uložen soubor s diagramem + +Vše za jediné kliknutí. + +## Tipy + +- **Začněte s předdefinovanými pracovními postupy** – pokrývají nejběžnější vzory. Upravujte je pouze tehdy, když potřebujete jiné pořadí. +- **Povolte `workflowContinueOnError`** – selhání kroku s diagramem by nemělo zastavit celý pipeline. +- **Použijte pracovní postupy pro složky** k hromadnému zpracování – klikněte pravým tlačítkem na složku, vyberte pracovní postup a všechny poznámky budou zpracovány. +- **Jmenujte pracovní postupy jasně** – prostor na boční liště je omezený. Používejte krátké, orientované názvy jako „Rychlé extrahování“ nebo „Přeložit + Odkázat". + +--- + +## Další kroky + +- [Výzkum](./research) – Pochopte, co krok výzkumu dělá, než ho přidáte do pracovních postupů +- [Wiki-odkazy](./wiki-links) – Základní funkce odkazování používaná ve většině pracovních postupů +- [Konceptuální poznámky](./concept-notes) – Extrakce konceptů jako krok v pracovním postupu +- [Hromadné zpracování](/docs/advanced/batch-processing) – Souběžnost a hlášení pokroku pro pracovní postupy složek diff --git a/website/i18n/cs/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/cs/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..14bd7ee7 --- /dev/null +++ b/website/i18n/cs/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "Konfigurace" +description: "Nastavte parametry a předvolby Notemd" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Konfigurace + +<TLDR> +**Konfigurace Notemd zahrnuje 6 hlavních oblastí:** (1) poskytovatele LLM a klíče API, (2) výběr modelu pro jednotlivé úlohy, (3) cesty a šablony výstupu, (4) jazyk UI a jazyk výstupu, (5) vyhledávací služby (Tavily/DuckDuckGo), (6) vlastní pracovní postupy. Všechny nastavení se nacházejí v Obsidian Nastavení → Notemd. Změny nabývají účinnosti okamžitě. +</TLDR> + +## Přehled nastavení + +Přístup: **Obsidian Nastavení (⚙️) → Notemd** + +### Hlavní sekce + +1. **Konfigurace poskytovatele** — klíče API, základní URLs, modely +2. **Nastavení úlohy** — výběr modelu pro jednotlivé úlohy +3. **Konfigurace výstupu** — kam ukládat generované soubory +4. **Nastavení jazyka** — UI a jazyk výstupu +5. **Integrace vyhledávání** — nastavení Tavily/DuckDuckGo +6. **Pracovní postupy** — vlastní řetězce tlačítek +7. **Pokročilé** — diagnostika, hromadná zpracování, dělení na části + +--- + +## 1. Konfigurace poskytovatele + +### Přidání poskytovatele + +1. **Vyberte poskytovatele** z rozbalovacího seznamu (30+ dostupných) +2. **Zadejte klíč API +3. **Volitelné**: Nastavte vlastní základ URL (pro proxye/brány) +4. **Klikněte na "Získat seznam modelů"**, abyste ověřili spojení +5. **Vyberte výchozí model** + +### Běžní poskytovatelé + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Lokální) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### Více poskytovatelů + +Můžete nakonfigurovat více poskytovatelů a přepínat mezi nimi podle úlohy: +- **Hlavní poskytovatel**: Používá se jako náhrada +- **Poskytovatelé specifické pro úlohu**: Přepsání pro konkrétní úlohy + +--- + +## 2. Modely specifické pro úlohu + +Nakonfigurujte různé modely pro různé úlohy za účelem optimalizace nákladů/kvality: + +### Typy úloh + +| Úloha | Výchozí model | Účel | +|------|--------------|---------| +| **Propojování** | Hlavní poskytovatel | Identifikace konceptů pro wiki-odkazy | +| **Generování konceptů** | Hlavní poskytovatel | Vytáhnout a popsat koncepty | +| **Výzkum** | Hlavní poskytovatel | Shrnutí výsledků vyhledávání na webu | +| **Překlad** | Hlavní poskytovatel | Přeložit text | +| **Generování diagramů** | Hlavní poskytovatel | Vytvořit diagramy Mermaid/Canvas | + +### Příklad: Nastavení optimalizované z hlediska nákladů + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### Jak to nakonfigurovat + +1. **Nastavení → Notemd → Nastavení úlohy** +2. Pro každou úlohu vyberte: + - ✅ **Použít hlavní poskytovatel** (výchozí) + - 🔄 **Použít vlastní poskytovatel** → vybrat poskytovatele + model + +--- + +## 3. Konfigurace výstupu + +### Výstup poznámek ke konceptům + +**Kde se ukládají nové poznámky k konceptům:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Šablona:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### Možnosti struktury složek + +**Možnost 1: Plochá (všechny koncepty v jedné složce)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**Možnost 2: Hierarchická (podle zdrojové složky)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +Nastavit: **Nastavení → Výstup → Použít hierarchické složky** + +### Výstup diagramů + +**Kde se ukládají diagramy:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**Formát:** +- `.mmd` (Mermaid zdroj) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. Nastavení jazyka + +### UI Jazyk + +**Jazyk rozhraní** (tlačítka, menu, dialogy): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +Podporovány: angličtina, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Русский, العربية a další. + +### Jazyk výstupu + +**Jazyk generovaného obsahu** (konceptuální poznámky, shrnutí výzkumu): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**Případ použití:** čínština UI + anglický výstup pro dvoujazyčný výzkum. + +### Cílový jazyk překladu + +**Výchozí cílový jazyk** pro úlohy překladu: + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. Integrace do vyhledávání + +### Tavily (doporučeno) + +**Vyhledávací služba optimalizovaná pro AI:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +Získat klíč: [tavily.com](https://tavily.com/) + +**Vlastnosti:** +- Vysoce kvalitní výsledky +- Shrnutí optimalizovaná pro AI +- Citace zdrojů + +### DuckDuckGo (experimentální) + +**Není potřeba klíč API:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**Poznámka:** nižší kvalita, bez možnosti přizpůsobení. + +--- + +## 6. Konfigurace pracovního postupu + +### Vytváření vlastních pracovních postupů + +**Pracovní postupy spojují více úloh do jednoho tlačítka.** + +1. **Nastavení → Pracovní postupy → Přidat pracovní postup** +2. **Název**: "Analýza dokumentů" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **Uložit** + +V levé nabídce se objeví nové tlačítko. + +### Syntaxe DSL + +**Formát:** `action1>action2>action3` + +**Dostupné akce:** +- `process-current-add-links` — Přidat odkazy na wiki do aktuální poznámky +- `extract-concepts-current` — Vytvořit poznámky k konceptům +- `research-and-summarize` — Výzkum na webu + shrnutí +- `translate-current` — Přeložit aktuální poznámku +- `summarize-as-mermaid` — Vytvořit diagram Mermaid +- `process-folder-add-links` — Hromadná úprava složky + +**Příklady pracovních postupů:** + +**Rychlé extrakce konceptů:** +``` +process-current-add-links>extract-concepts-current +``` + +**Hluboký výzkum:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**Vícejazyčná analýza:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. Pokročilé nastavení + +### Hromadná zpracování + +**Zpracování více souborů paralelně:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +Vyšší hodnota = rychlejší, ale více API volání. + +### Chytré dělení na části + +**U dlouhých poznámek – rozdělte na části:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +Zabraňuje chybám kvůli limitu tokenů. + +### Diagnostická panela + +**Zobrazit podrobné protokoly:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +Zobrazuje: +- API požadavků/odpovědí +- Použití tokenů +- Doby zpracování +- Chyby + +### Detekce duplicitních konceptů + +**Vyhýbejte se téměř shodným konceptům:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +Vyšší hodnota = agresivnější sloučení. + +--- + +## Konfigurační profily + +### Export/Návrh nastavení + +**Sdílejte konfigurace mezi zařízeními:** + +1. **Nastavení → Pokročilé → Exportovat konfiguraci** +2. Uloží `notemd-config.json` +3. Na novém zařízení: **Importovat konfiguraci** + +**Co je zahrnuto:** +- Klíče poskytovatele API (volitelné) +- Výběr modelů +- Cesty výstupu +- Vlastní pracovní postupy + +--- + +## Doporučené konfigurace + +### Pro studenty + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### Pro výzkumníky + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### Pro uživatele, kteří dbají na soukromí + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### Pro dvojjazyčnou práci + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## Řešení problémů s konfigurací + +### Nastavení nebyla uložena +- Zkontrolujte oprávnění souboru v `.obsidian/plugins/notemd/` +- Zkuste: Deaktivovat plugin → Znovu aktivovat + +### Klíč API je neplatný +- Žádné další mezery +- Zkontrolujte dobu platnosti +- Ověřte kredity na panelu poskytovatele + +### Modely se nenačítají +- Klikněte na "Získat seznam modelů" pro obnovu +- Zkontrolujte síťové připojení +- Zkuste jiného poskytovatele + +--- + +## Další kroky + +- 📖 [Prozkoumat funkce](../features/wiki-links) +- 🔌 [Návody k nastavení poskytovatele](../providers/overview) +- ❓ [FAQ](../faq) diff --git a/website/i18n/cs/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/cs/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..963868d0 --- /dev/null +++ b/website/i18n/cs/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "Instalace" +description: "Jak nainstalovat Notemd v Obsidian" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Instalace + +<TLDR> +**Nainstalujte Notemd za méně než 2 minuty.** Dva způsoby: (1) pluginy komunity Obsidian (doporučeno, jednokliková instalace), nebo (2) ruční instalace prostřednictvím GitHub Releases. Vyžaduje Obsidian 0.15.0+. Funguje na Windows, macOS, Linux, iOS a Android. Žádné externí závislosti. Více než 4k stažení, licencováno podle MIT. +</TLDR> + +## Metoda 1: Komunitní pluginy (doporučeno) + +1. Otevřete **Obsidian Nastavení** (ikona ⚙️ nebo `Ctrl/Cmd + ,`) +2. Přejděte na **Community plugins** +3. Klikněte na **Procházet** +4. Vyhledejte **"Notemd"** +5. Klikněte na **Install** +6. Klikněte na **Enable** + +**Hotovo!** V levé nabídce uvidíte ikonu Notemd. + +## Metoda 2: Ruční instalace + +### Předpoklady +- Obsidian 0.15.0 nebo novější +- Git (volitelné, pro kopírování) + +### Kroky + +1. **Stáhněte soubory** z [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest): + - `main.js` + - `styles.css` + - `manifest.json` + +2. **Najděte složku pluginů vašeho trezoru:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +Pokud složka `plugins` neexistuje, vytvořte ji. + +3. **Vytvořte složku Notemd:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **Zkopírujte tři soubory** do složky `notemd`. + +5. **Přenačtěte Obsidian:** + - Stiskněte `Ctrl/Cmd + R`, nebo + - Přezačněte Obsidian + +6. **Aktivujte plugin:** + - Nastavení → Komunitní pluginy + - V seznamu najděte "Notemd" + - Přepněte ho na zapnuté + +## Alternativa: Nainstalujte prostřednictvím BRAT + +Pokud používáte [BRAT plugin](https://github.com/TfTHacker/obsidian42-brat): + +1. Otevřete nastavení BRAT +2. Klikněte na "Přidat beta plugin" +3. Zadejte: `Jacobinwwey/obsidian-NotEMD` +4. Klikněte na "Přidat plugin" +5. Povolte Notemd v komunitních pluginách + +## Ověření + +Po instalaci ověřte, zda Notemd funguje: + +1. Otevřete jakoukoli poznámku +2. Klikněte pravým tlačítkem v editoru +3. Měli byste vidět příkazy Notemd jako například: + - "Zpracovat soubor (přidat odkazy)" + - "Vytáhnout koncepty" + - "Výzkum a shrnutí" + +## Další kroky + +- **Nastavte poskytovatele LLM:** [Rychlý start →](./quick-start) +- **Řešení problémů:** [Běžné problémy →](../advanced/troubleshooting) + +## Požadavky na systém + +| Platforma | Verze | Stav | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | Požadované | +| **Windows** | 7+ | ✅ Podporováno | +| **macOS** | 10.15+ | ✅ Podporováno | +| **Linux** | Jakékoli | ✅ Podporováno | +| **iOS** | 15+ | ✅ Podporováno | +| **Android** | 5+ | ✅ Podporováno | + +## Odinstalace + +Chcete-li odstranit Notemd: + +1. Nastavení → Komunitní pluginy +2. Najděte "Notemd" +3. Klikněte na ikonu ❌ +4. Volitelně odstraňte složku s pluginem: `<vault>/.obsidian/plugins/notemd/` + +Vaše data (poznámky, konceptové poznámky atd.) zůstávají nedotčena. + +## Aktualizace + +### Automatická aktualizace (doporučeno) +Obsidian automaticky kontroluje aktualizace pluginů. Jakmile je k dispozici nová verze: +1. Nastavení → Komunitní pluginy +2. Klikněte na "Zkontrolovat aktualizace" +3. Klikněte na "Aktualizovat" vedle Notemd + +### Manuální aktualizace +Stáhněte nejnovější verzi a nahraďte tři soubory ve vaší složce s pluginem. + +## Získat pomoc + +- 📖 [Průvodce rychlým začátkem](./quick-start) +- ❓ [FAQ](../faq) +- 💬 [Komunita Discord](https://discord.gg/qnGgsQ9W) +- 🐛 [Nahlásit problémy](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/cs/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/cs/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..bbe05ea2 --- /dev/null +++ b/website/i18n/cs/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "Rychlý průvodce začátkem" +description: "Začněte s Notemd během 5 minut" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Rychlý průvodce začátkem + +<TLDR> +**Začněte používat Notemd během 5 minut.** Tři kroky: (1) Přidejte klíč LLM API (nebo použijte místní Ollama), (2) Otevřete poznámku a spusťte „Process file (add links)", (3) Prozkoumejte jednoklikové pracovní postupy v postranní liště. Podporuje více než 30 poskytovatelů. Není potřeba programovat. Funguje offline s Ollama. +</TLDR> + +## Krok 1: Konfigurujte svého prvního poskytovatele LLM (2 min) + +### Možnost A: Cloudový poskytovatel (OpenAI, Anthropic atd.) + +1. Otevřete **Nastavení** → **Notemd** +2. V části **Konfigurace poskytovatele LLM** vyberte poskytovatele z rozbalovacího seznamu +3. Zadejte svůj **Klíč API** +4. (Volitelně) Klikněte na **„Zobrazit seznam modelů"**, abyste viděli dostupné modely +5. Vyberte model pro každý typ úlohy + +**Nejoblíbenější volby:** +- **OpenAI**: `gpt-4o-mini` (rychlé, cenově výhodné) +- **Anthropic**: `claude-sonnet-4-6` (vysoká kvalita) +- **DeepSeek**: `deepseek-chat` (velmi cenově výhodné) + +### Možnost B: Místní Ollama (není potřeba klíč API) + +1. Nainstalujte [Ollama](https://ollama.com/) +2. Stáhněte si model: `ollama pull llama3.1` +3. V nastaveních Notemd vyberte **"Ollama"** jako poskytovatele +4. Název modelu: `llama3.1` (nebo jakýkoli model, který jste stáhli) + +## Krok 2: Vyzkoušejte si první úkol (1 min) + +### Přidejte odkazy na Wiki do poznámky + +1. Otevřete jakoukoli poznámku s smysluplným obsahem +2. Klikněte pravým tlačítkem v editoru +3. Vyberte **"Zpracovat soubor (přidat odkazy)"** +4. Počkejte několik sekund +5. Klíčové koncepty jsou nyní `[[wiki-linked]]`! + +**Příklad:** + +**Předtím:** +``` +Machine learning models use neural networks to process data. +``` + +**Poté:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## Krok 3: Prozkoumejte funkce (2 min) + +### Vytáhněte poznámky k konceptům + +1. Klikněte pravým tlačítkem → **"Vytáhnout koncepty z aktuálního souboru"** +2. Notemd vytvoří samostatné soubory pro každý koncept +3. Zkontrolujte svou nakonfigurovanou složku s koncepty (výchozí: `concepts/`) +4. Každá poznámka k konceptu obsahuje odkaz zpět na původní poznámku + +### Výzkum a shrnutí + +1. Zvýrazněte téma ve své poznámce +2. Klikněte pravým tlačítkem → **"Výzkum a shrnutí"** +3. Notemd dotazy na web (Tavily nebo DuckDuckGo) +4. Shrnutí se přidá ke vaší poznámce spolu se zdroji + +### Pracovní postupy na jeden klik + +1. Zkontrolujte **levou lištu** pro tlačítka pracovních postupů +2. Klikněte na **"Výběr na jeden klik"** v jakékoli poznámce +3. Proběhne toto: přidání odkazů → extrakce konceptů → výzkum → vytvoření diagramu +4. Vše na jeden klik! + +## Běžné první úkoly + +### Úkol 1: Zpracovat článek + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### Úkol 2: Přeložit poznámky + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### Úkol 3: Vytvořit mapu znalostí + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## Tipy pro přizpůsobení + +### Výběr modelu pro jednotlivé úlohy + +Pro různé úkoly můžete použít různé modely: + +| Úloha | Doporučený model | Důvod | +|------|------------------|-----| +| Přidat odkazy | `gpt-4o-mini`, `deepseek-chat` | Rychlé, mnoho volání | +| Extrahovat koncepty | `claude-sonnet-4-6`, `gpt-4o` | Kvalitní extrakce | +| Výzkum | `perplexity`, `gpt-4o` | Založeno na webu | +| Překlad | `gemini-flash`, `gpt-4o` | Vícejazyčné | +| Diagramy | `claude-opus`, lokální model | Složité uvažování | + +Nastavit v: **Nastavení → Notemd → Modely určené k úkolům** + +### Vlastní pracovní postupy + +Vytvořte si vlastní tlačítko: + +1. Nastavení → Notemd → Pracovní postupy +2. Klikněte na "Přidat pracovní postup" +3. Zadejte DSL: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. Jmenujte to: "Můj výzkumný tok" +5. V postranní liště se objeví nové tlačítko + +## Řešení problémů + +### "API Klíč neplatný" +- Zkontrolujte, zda je klíč správný (žádné další mezery) +- Ověřte, zda účet má kredity +- Vyzkoušejte tlačítko "Testování připojení" v nastaveních + +### "Model nenalezen" +- Klikněte na "Zobrazit seznam modelů", abyste viděli dostupné modely +- Někteří poskytovatelé vyžadují konkrétní názvy modelů (např. `gpt-4o` místo `gpt-4`) + +### Odkazy se nezobrazují +- Ujistěte se, že poznámka obsahuje dostatek obsahu (>50 slov) +- Zkuste výkonnější model +- Zkontrolujte, zda volání LLM proběhlo úspěšně (viz panel diagnostiky) + +### Pomalá výkonost +- Použijte rychlejší modely (`gpt-4o-mini` místo `gpt-4o`) +- Snížete velikost částí v nastaveních +- Povolit paralelní zpracování pro hromadné úlohy + +## Další kroky + +- 📖 [Prozkoumat všechny funkce](../features/wiki-links) +- ⚙️ [Pokročilá konfigurace](./configuration) +- 🔧 [Nastavení poskytovatele LLM](../providers/overview) +- ❓ [FAQ](../faq) + +## Videa s návody + +Podívejte se na 3minutové video s rychlým začátkem (čínština): +[【Zcela otevřený a zdarma! NotEMD – 3 minuty k rychlému začátku】](https://b23.tv/lqR0RlA) + +## Získat pomoc + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **Problémy**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **Dokumentace**: [Kompletní dokumentace](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/cs/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/cs/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..a2d3cb13 --- /dev/null +++ b/website/i18n/cs/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "Úvod do Notemd" +description: "Nástroj na vytváření znalostní báze s využitím AI pro Obsidian s trvalými transformacemi poznámek, pracovními postupy a diagramy založenými na specifikacích" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Úvod do Notemd + +<TLDR> +**Notemd** (Note + EMD — Enhanced Markdown Documents) je open-source plugin pro Obsidian, který převádí čtení pomocí LLM na trvalé znalosti. Na rozdíl od chatových AI, kde po skončení sesionu informace zmizí, Notemd ukládá výsledky **přímo do vašeho úložiště** ve formě wiki-odkazů, poznámek k konceptům, shrnutí výzkumu, překladů, pracovních postupů a diagramů. Je určen výzkumníkům, studentům a pracovníkům v oblasti znalostí, kteří chtějí, aby jejich čtení, výzkum a vizuální vysvětlení akumulovaly do strukturovaného, vyvíjejícího se grafu znalostí. +</TLDR> + +## Co je Notemd? + +Notemd integruje **30+ velkých jazykových modelů** (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama a další) do vašeho pracovního postupu Obsidian za účelem automatizace extrakce znalostí, jejich organizace, překladu, výzkumu a generování diagramů. + +### Klíčový rozdíl: dočasné vs. trvalé znalosti + +| Aspekt | Chatové AI (ChatGPT atd.) | Notemd | +|--------|-------------------------------|--------| +| **Kam jdou výsledky** | Historie chatu (zmizí) | Vaše úložiště Obsidian (zůstává) | +| **Formát** | Odpovědi v prostém textu | Strukturované soubory: `[[wiki-links]]`, poznámky k konceptům, diagramy | +| **Dlouhodobá hodnota** | Je nutné se ptát znovu pokaždé | Akumuluje se do grafu znalostí | +| **Přístup offline** | Vyžaduje internet | Funguje plně offline s Ollama | + +## Základní funkce + +### 1. **Automatické vytváření odkazů na wiki** +- LLM identifikuje klíčové koncepty ve vašich poznámkách +- Vkládá `[[wiki-links]]` při každém výskytu +- Volitelně vytváří odkazované poznámky k konceptům +- Potlačení synonym, aby se zabránilo duplicitám + +### 2. **Generování poznámek k konceptům** +- Vytahuje základní koncepty z článků, prací a poznámek +- Generuje speciální soubory s koncepty a zpětnými odkazy +- Nastavitelné cesty výstupu a šablony + +### 3. **Integrace webového vyhledávání** +- Vyhledává Tavily nebo DuckDuckGo přímo v Obsidian +- LLM shrnuje výsledky s citacemi zdrojů +- Přidává výsledky výzkumu do aktuální poznámky + +### 4. **Vícejazyčný překlad** +- Překládat vybrané části nebo celé poznámky +- Podpora více než 21 UI jazyků +- Nezávislá konfigurace výstupního jazyka +- Podpora hromadného překladu + +### 5. **Generování diagramů** +- **Mermaid**: Schématy toků, sekvence, tříd, stavů, ER, Gantt +- **JSON Canvas**: Obsidian nativní rozložení +- **Vega-Lite**: Grafy dat, časové řady,散点图 +- **HTML / Editable HTML/SVG**: Samostatné grafické artefakty s sémantickými poznámkami +- **Draw.io / Drawnix hranice artefaktů**: Cesty pro export určené pro správce ze stejného sémantického modelu grafu +- **Plán cestovní mapy obvodových schémat**: Podpora circuitikz/TikZJax je navrhována kolem zlatých referencí, omezených pokynů, zpětné vazby na renderování a ověřování topologie/rozložení namísto surového neomezeného LLM TikZ +- **Diagnostika náhledu**: Renderované artefakty mohou odhalit diagnostiku kompilace/renderování a neinline zdroje lze inspekčně prohlížet bez potřeby LaTeX runtime na straně pluginu +- Automatická oprava syntaxe pro chyby Mermaid + +### 6. **Pracovní postupy jedním kliknutím** +- Spojte více akcí do tlačítek v postranním panelu +- Definice pracovních postupů na základě DSL +- Příklad: `add-links > extract-concepts > research > diagram` + +## Kdo by měl používat Notemd? + +✅ **Výzkumníci**, kteří čtou články a vytvářejí přehledy literatury +✅ **Studenti**, kteří organizují studijní poznámky a vytvářejí mapy konceptů +✅ **Pracovníci v oblasti znalostí**, kteří chtějí, aby jejich čtenářské poznatky zůstaly trvale uloženy +✅ **Dvoujazyční odborníci**, kteří potřebují překlad + propojení s wiki +✅ **Uživatelé dbalí na soukromí**, kteří chtějí místní podporu LLM (Ollama) +✅ **Pokročilí uživatelé**, kteří přizpůsobují výzvy a pracovní postupy + +## Proč Notemd + Obsidian? + +**Obsidian** je znalostní báze zaměřená na lokální použití a založená na Markdownu. **Notemd** přidává umělou inteligenci s výjimečnými funkcemi: +- Vaše data zůstávají ve vašem úložišti (nikoli v cloudové službě) +- Funguje offline s místními modely +- Je zdarma a open source (licence MIT) +- Integruje se se stávajícími pluginy Obsidian +- Škáluje až na desítky tisíc not + +## Úvod + +1. **Instalace**: Nastavení → Komunitní pluginy → Procházet → "Notemd" +2. **Konfigurace**: Přidejte klíč svého poskytovatele LLM API (nebo použijte místní Ollama). +3. **Vyzkoušejte to**: Otevřete poznámku → Klikněte pravým tlačítkem → „Zpracovat soubor (přidat odkazy)“ +4. **Prozkoumat**: Zkontrolujte boční panel pro pracovní postupy na jedno kliknutí + +👉 [Návod k instalaci](./getting-started/installation) | [Návod pro rychlý start](./getting-started/quick-start) + +## Diagram směru schopností + +Práce s diagramy u Notemd se posouvá od „požádat model, aby napsal jednu syntaktickou řetězec“ k vrstvenému procesu: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +Současná implementace již podporuje záložní režimy Mermaid, JSON Canvas, Vega-Lite, HTML, upravitelné prvky HTML/SVG, artefakty Draw.io XML, minimální soubor funkcí Drawnix JSON, diagnostiku náhledu nebo záložní režim pouze se zdrojovým kódem a offline prototyp `CircuitSpec -> circuitikz` pro šablony typu common-source a CMOS inverter. Schémata obvodů představují složitější kategorii: circuitikz dokáže znázornit přesnou elektrickou topologii, ale neomezený výstup typu LLM často vede k nečitelnému uspořádání vedení nebo k LaTeXu, který se nezobrazí. Dalším směrem je udržovat omezení pro circuitikz pomocí šablon zlatého referenčního vzoru, pravidel rozvržení uzlů v mřížce, diagnostiky renderování a zpětnovazebních smyček s snímky obrazovky. + +Přečtěte si podrobnosti v [Diagrams](./features/diagrams). + +## Architektura + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd oproti ostatním pluginům AI Obsidian + +Většina pluginů pro AI typu Obsidian je zaměřena na konverzace (vy se ptáte, AI odpovídá, poznatky zůstávají v chatu). Notemd je naopak zaměřen na psaní: AI zpracuje vaše poznámky a napsá výsledky ve strukturované formě přímo do vašeho úložiště. + +| Schopnost | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| Vložení odkazu na wiki automaticky | Ano | Ne | Ne | Ne | +| Generování konceptuálního popisu | Ano (s zpětnými odkazy + odstraněním duplicit) | Ne | Ne | Ne | +| Generování diagramů | Ano (Mermaid, Canvas, Vega-Lite, HTML, upravitelné artefakty) | Ne | Ne | Ne | +| Integrace webového výzkumu | Ano (Tavily + DuckDuckGo) | Ne | Ne | Ne | +| Zpracování složek ve skupinách | Ano | Omezené | Ne | Omezené | +| Směrování modelu podle úkolu | Ano (7 úloh, nezávislé modely) | Ne | Ne | Ne | +| Řetězce pracovních postupů na jedno kliknutí | Ano (DSL) | Ne | Ne | Ne | +| Překlad (ve skupinách) | Ano | Ne | Ne | Ne | +| Konverzace s trezorem | Ne | Ano | Ne | Ne | +| Vyhledávání podle sémantické podobnosti | Ne | Ne | Ano | Ne | +| Generování na základě šablon | Ne | Ne | Ne | Ano | +| LLM poskytovatelé | 36 (cloud + gateway + lokální) | 3-5 | 2-3 | 3-5 | +| Úplně offline | Ano (Ollama) | Částečný | Částečný | Částečný | + +**Kdy zvolit Notemd**: Chcete, aby umělá inteligence vytvořila trvalou grafovou strukturu znalostí – nejen diskutovala o vašich poznámkách. + +**Kdy zvolit Copilot**: Chcete konverzačního AI asistenta uvnitř Obsidian. + +**Kdy zvolit Smart Connections**: Chcete objevit stávající vztahy mezi poznámkami prostřednictvím sémantického vyhledávání. + +## Filozofie + +**Notemd věří, že umělá inteligence by měla doplňovat lidskou práci spojenou se znalostmi, nikoli ji nahrazovat.** Plugin: +- Udržuje vás v kontrole (prohlédněte si před aplikací změn). +- Uchovává kontext (všechny výsledky odkazují zpět na zdroj) +- Respektuje soukromí (lokální podpora LLM, žádná telemetrie) +- Zůstává rozšiřitelný (otevřené APIs, vlastní pracovní postupy) + +## Open Source + +- **Licence**: MIT +- **Zdroj kódu**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **Komunita**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **Přispějte**: Jsou vítány PR, viz [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +**Další kroky**: [Installation →](./getting-started/installation) diff --git a/website/i18n/cs/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/cs/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..73b2b2b8 --- /dev/null +++ b/website/i18n/cs/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Obsidian Průvodce správou znalostí s AI" +description: "Kompletní průvodce vytvářením propojené databáze znalostí pomocí AI — od wiki-odkazů a extrakce konceptů až po vyhledávání, překlad a generování diagramů" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Obsidian Průvodce správou znalostí s AI + +<TLDR> +**Notemd převádí čtení poháněné LLM na trvalé znalosti: wiki-odkazy spojují koncepty, poznámky k konceptům vytvářejí vyhledatelnou grafiku, vyhledávání přináší obsah z webu do vaší databáze, překlad odstraňuje jazykové bariéry, diagramy zpřehledňují strukturu a pracovní postupy to vše spojují jedním kliknutím.** Tento průvodce pokrývá celý proces — od surových poznámek až po propojenou, vizuální, vícejazyčnou databázi znalostí. +</TLDR> + +## Proč správa znalostí s AI? + +Tradiční zápis poznámek vytváří jednoduché soubory. I při ručních wiki-odkazech zůstávají většina poznámek oddělená. Notemd využívá LLM k automatizaci vrstvy spojování: + +- **LLMy čtou váš obsah** a identifikují to, co je důležité — termíny, metody, osoby, teorie +- **Odkazy se vkládají automaticky** při každém výskytu konceptu, nejsou ukryty v „viz také“ +- **Poznámky k konceptům se generují** jako samostatné vyhledatelné soubory +- **Vyhledávání obohacuje poznámky** kontextem z webu +- **Diagramy zpřehledňují strukturu** — mapy myšlenek, diagramy toků, grafy dat ze stejného obsahu + +Výsledkem je graf znalostí, který roste s každou poznámkou, kterou zpracujete, nejen tehdy, když si vzpomenete přidat odkazy. + +## Celý proces + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +Každý krok je nezávislý. Můžete použít jeden nebo všechny. Nejúčinnější sekvence: **Přidání odkazů → Poznámky k konceptům → Diagramy**. + +--- + +## 1. Wiki-odkazy: Vytváření explicitních spojení + +Wiki-odkazy tvoří základ grafu znalostí. Notemd využívá LLM k: + +1. Přečtěte si obsah poznámky (rozdělte ho na části u delších dokumentů) +2. Identifikujte základní koncepty – upřednostňujte konkrétní technické termíny před obecnými podstatnými jmény +3. Vložte `[[wiki-links]]` při každém výskytu +4. Potlačte synonyma, aby „ML“ a „Machine Learning“ nevytvářely samostatné uzly + +### Kdy použít + +- **Každá poznámka delší než 100 slov** – kratší poznámky obsahují málo konceptů +- **Výzkumné články, technické dokumenty, zápisy ze schůzek** – bohaté na termíny specifické pro danou oblast +- **Po ustálení obsahu** – neopakovaně zpracovávejte návrhy + +### Klíčové nastavení + +| Nastavení | Doporučené | Důvod | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek nebo GPT-4o-mini | Dobrá přesnost za nízkou cenu | +| Potlačení synonym | Ano | Zabraňuje vzniku duplicitních uzlů | +| Okno kontextu | Odstavec | Rovnováha mezi přesností a náklady | + +→ [Wiki-Links deep dive](/docs/features/wiki-links) + +--- + +## 2. Konceptuální poznámky: Vyhledatelné znalostní uzly + +Wiki-odkazy spojují myšlenky v rámci textu, ale konceptuální poznámky umožňují nezávislé vyhledání každé myšlenky. Každý koncept má svůj vlastní `.md` soubor: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### Proces extrakce + +Příkaz LLM je velmi strukturovaný: +- Normalizovat na jednotnou formu +- Upřednostňovat víceslovné koncepty před jednoslovnými („Dielectric Relaxation“ nikoli „Relaxation“) +- Přeskočit části s odkazy/bibliografií +- Výstup v podobě `CONCEPT:` řádků pro jednoznačnou analýzu + +Koncepty jsou odstraňovány z duplicit pomocí `Set<string>`. Chyby LLM v jednotlivých částech nezastaví celý proces. + +### Zpětné odkazy + +Pokud je to povoleno, každá konceptuální poznámka zaznamenává, které zdrojové poznámky ji zmiňují. Vestavěná tabulka zpětných odkazů Obsidian také zobrazuje obrácené spojení. + +### Odstranění duplicit + +4krokový motor na odstraňování duplicit Notemd zachycuje: +1. **Přesné shody** — srovnání názvů souborů bez ohledu na velikost písmen +2. **Množné čísla** — "Models.md" oproti "Model.md" +3. **Normalizace symbolů** — "A-B.md" oproti "A B.md" +4. **Obsah jednoho slova** — "ML.md" je označeno, pokud existuje "Machine Learning.md" + +### Nastavení klíčů + +| Nastavení | Doporučené | Důvod | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` nebo `🧠 concepts/` | Udržuje trezor uspořádaný | +| `extractConceptsAddBacklink` | Ano | Umožňuje zpětné vyhledávání | +| `extractConceptsMinimalTemplate` | Ne | Kompletní šablona s odkazy | +| Model na úrovni úkolu | DeepSeek | Extrakce konceptů nevyžaduje nákladné modely | +| Potlačování synonym | Ano | Stejná nastavení ovlivňují jak propojování, tak extrakci | + +→ [Concept Notes deep dive](/docs/features/concept-notes) + +--- + +## 3. Výzkum: Začlenění webu + +Notemd integruje vyhledávání na webu do vašeho pracovního postupu při psaní poznámek: + +1. **Vytváření dotazu** — název nebo výběr poznámky se stane vyhledávacím dotazem +2. **Vyhledávání na webu** — Tavily (doporučeno, vyžaduje klíč API) nebo DuckDuckGo (zdarma, bez klíče) +3. **LLM shrnutí** — výsledky vyhledávání jsou zhuštěny do relevantního shrnutí +4. **Přidání do poznámky** — shrnutí se přidá na pozici kurzoru nebo jako nová sekce + +### Kdy použít + +- Před zpracováním nového tématu — nejprve získejte webový kontext +- Když potřebujete poznámku o konceptu obohatit — nejprve prověřte informace a poté přidejte odkazy +- Pro přehledy literatury — hromadně vyhledejte složku s poznámkami + +### Klíčové nastavení + +| Nastavení | Doporučeno | Důvod | +|---------|-----------|-----| +| `researchProvider` | GPT-4o nebo Claude | Výzkum vyžaduje kvalitnější shrnutí | +| Služba pro vyhledávání | Tavily | Lepší relevance, nastavitelná hloubka | +| `maxResearchContentTokens` | 4000 | Rovnováha mezi hloubkou a náklady | + +→ [Podrobný průzkum](/docs/features/research) + +--- + +## 4. Překlad: Překonávání jazykových bariér + +Notemd překládá poznámky pomocí vašeho nastaveného LLM — ne speciálního překladače API. To znamená: + +- **Překlady s pochopením kontextu** — LLM rozumí celému dokumentu, ne jen větám po větách +- **Zpracování odborných termínů** — „gradient descent“ zůstává jako „梯度下降“, nikoli „坡度向下 +- **Podpora hromadného překladu** — přeložte celou složku s poznámkami najednou +- **Model pro jednotlivé úkoly** — použijte Gemini Flash k překladu (rychlý, levný, vícejazyčný) + +### Jazyková podpora + +Notemd sám podporuje 21 UI jazyků. Cílový jazyk překladu lze nastavit pro každý úkol. Běžné páry: EN↔ZH, EN↔JA, EN↔KO, EN↔DE, EN↔FR, EN↔ES. + +→ [Podrobný průzkum překladu](/docs/features/translation) + +--- + +## 5. Diagramy: Zviditelnění struktury + +Pipeline diagramů Notemd je založen na specifikacích: LLM vytvoří strukturovaný `DiagramSpec` JSON, poté adaptéry jej převedou do cílového formátu. To poskytuje spolehlivější výstup než žádost o surovou Mermaid syntaxi od LLM. + +### Detekce záměru + +Notemd odhadne nejlepší typ diagramu na základě obsahu: + +- **Tabulky s čísly** → graf dat (Vega-Lite) +- **Slovník klienta/serveru** → sekvenční diagram (Mermaid) +- **Entita/hlavní klíč** → ER diagram (Mermaid) +- **Krok/průběh procesu** → diagram toků (Mermaid) +- **Klíčová slova konceptuální mapy** → JSON Canvas (Obsidian nativní) +- **Výchozí** → mind map (Mermaid) + +### Řetězec renderování + +Hlavní cíl → náhrada → náhrada → HTML. Pokud syntaxe Mermaid selže, pokusí se ještě jednou s kontextem chyby odeslat ji na LLM, poté přejde na minimální diagram. + +### Klíčové nastavení + +| Nastavení | Doporučené | Důvod | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | Ano | Lepší kvalita prostřednictvím specifikací nejprve | +| `experimentalDiagramCompatibilityMode` | `best-fit` | Nativní cíl podle záměru | +| `summarizeToMermaidProvider` | GPT-4o nebo Claude | Specifikace diagramů vyžadují prostorové uvažování | +| `autoMermaidFixAfterGenerate` | Ano | Automaticky zachycuje chyby syntaxe LLM | +| Rozšíření místních znalostí | Povoleno pro doménově specifické účely | Zlepšuje přesnost s kontextem trezoru | + +→ [Podrobný průzkum diagramů](/docs/features/diagrams) + +--- + +## 6. Pracovní postupy: Automatizace jedním kliknutím + +Pracovní postupy spojují více úloh do jednoho tlačítka v postranním panelu. Formát DSL je následující: + +``` +task1 | task2 | task3 +``` + +Příklad: `addLinks | extractConcepts | generateDiagram` — zpracuje poznámku z hrubého textu na plně propojený, vizuální znalostní uzel jedním kliknutím. + +### Doporučené pracovní postupy + +| Pracovní postup | Řetězec | Použití | +|----------|-------|----------| +| Celý proces | `addLinks \| extractConcepts \| generateDiagram` | Nové poznámky | +| Výzkum nejprve | `research \| addLinks` | Neznámá témata | +| Polyglot | `translate \| addLinks` | Vícejazyčné poznámky | +| Pouze diagram | `generateDiagram` | Rychlá vizualizace | + +→ [Podrobný průzkum pracovních toků](/docs/features/workflows) + +--- + +## 7. LLM poskytovatelé: 36 možností od cloudu po lokální zařízení + +Notemd podporuje 36 poskytovatelů v 4 typech přenosu. Klíčové skupiny: + +- **Mezinárodní cloud**: OpenAI, Anthropic, Google, Mistral, xAI +- **Čínský cloud**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **Brány**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **Lokální**: Ollama, LMStudio, OVMS — bez klíče API, žádná data neopouštějí váš počítač + +### Strategie modelu podle úlohy + +Nejekonomičtější nastavení využívá levné modely pro jednoduché úlohy a výkonné modely pro složité úlohy: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [Přehled LLM poskytovatelů](/docs/providers/overview) + +--- + +## Seznam kontrol při začínání + +1. **Nainstalujte Notemd** — [Komunitní pluginy](/docs/getting-started/installation) (doporučeno) nebo ručně +2. **Konfigurujte poskytovatele** — DeepSeek (nejjednodušší), OpenAI, nebo Ollama (zdarma) +3. **Zpracujte svou první poznámku** — klikněte pravým tlačítkem → "Zpracovat soubor (přidat odkazy)" +4. **Nastavit složku konceptů** — Nastavení → Notemd → Výstup → Složka konceptů +5. **Vytáhnout koncepty** — spustit „Vytáhnout koncepty“ na téže poznámce +6. **Vytvořit diagram** — spustit „Vytvořit diagram“, abyste vizualizovali vazby +7. **Vytvořit pracovní postup** — spojit výše uvedené do jednoho tlačítka pro jedno kliknutí + +## Doporučené konfigurace + +### Student (Budget) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### Výzkumník (Kvalita) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### Privacita na prvním místě (pouze lokálně) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### Dvoujazyčný (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## Běžné vzory + +### Vzor: Zpracování výzkumné práce + +1. Importovat obsah PDF (nebo vložit) +2. **Výzkum** — získat webový kontext k tématu +3. **Přidat odkazy** — identifikovat a propojit klíčové koncepty +4. **Vytáhnout koncepty** — vytvořit samostatné poznámky +5. **Vytvořit diagram** — vizualizovat strukturu práce + +### Vzor: Obohacení denní poznámky + +1. Napište denní poznámku +2. **Přidat odkazy** — spojuje dnešní myšlenky se stávajícími koncepty +3. Poznámky k konceptům se automaticky aktualizují s odkazy zpět + +### Vzor: Přehled literatury + +1. Vytvořte složku s články/poznámkami +2. **Hromadné přidání odkazů** — zpracujte celou složku +3. **Odstranit duplikované koncepty** — vyčistěte téměř shodné poznámky +4. **Vytvořit diagram** — mapa myšlenek celé literatury + +--- + +*Notemd je open source (MIT) a funguje s Obsidian 0.15.0+ na všech platformách. [Nainstalujte nyní](/docs/getting-started/installation) nebo [zobrazit na GitHubu](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/cs/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/cs/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..e4dd4d26 --- /dev/null +++ b/website/i18n/cs/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "Nastavit Anthropic Claude" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Anthropic Provider + +<TLDR> +**Anthropic využívá nativní transport zpráv API, nikoli transport kompatibilní s OpenAI.** Aktuální přednastavení výchozím způsobem používá `claude-3-5-sonnet-20240620`, `https://api.anthropic.com` a `temperature: 0.5`. Při ladění jej považujte za samostatnou protokolovou vrstvu. + +Toto je součástí [Obsidian Průvodce AI pro správu znalostí](/docs/pillar-ai-knowledge). +</TLDR> + +## Nastavení + +Vytvořte klíč Anthropic API, přidejte profil poskytovatele `Anthropic` a nechte základní URL na nativním konci, pokud neprocházíte přes speciální profil brány. V poli modelu vyberte ID modelu Claude, který chcete použít; výchozí hodnota udržuje stávající základnu produktu stabilní. + +Anthropic je vhodný kandidát pro vysoce kvalitní shrnování, syntézu výzkumu a extrakci konceptů. Pokud ho kombinujete s levnějšími poskytovateli, používejte ho pouze u úloh, které těží z kvality jeho výstupů. + +## Koncový bod a autentizace + +| Pole | Aktuální přednastavení | +|-------|----------------| +| Transport | `anthropic` | +| Klíč API | Požadované | +| Základní URL | `https://api.anthropic.com` | +| Výchozí model | `claude-3-5-sonnet-20240620` | +| Teplota | `0.5` | +| Test spojení | Pouze chat | + +Běhový prostředí odesílá požadavky na `/v1/messages` pomocí `x-api-key` a `anthropic-version: 2023-06-01`. Pod tímto přednastavením nekonfigurujte koncový bod `/v1/chat/completions` ve stylu OpenAI; místo toho použijte přednastavení brány kompatibilní s OpenAI. + +## Objevování modelů + +Anthropic v registru poskytovatelů používá režim objevování `anthropic-models`. Pokud váš klíč nebo účet nemůže vytvořit seznam modelů, uchovejte ve profilu známý ID modelu a ověřte to pomocí testu připojení. + +Tento transport není zaměnitelný s poskytovateli kompatibilními s OpenAI. Model Claude směrovaný přes OpenRouter, LiteLLM nebo jiný gateway patří do profilu tohoto gateway, nikoli do nativního profilu Anthropic. + +## Řešení problémů + +- `401` nebo `403`: zkontrolujte rozsah klíče, přístup k pracovnímu prostoru, fakturaci a zda klíč patří k očekávanému pracovnímu prostoru Anthropic. +- `404`: základní URL je chybný nebo vybraný ID modelu není pro účet dostupný. +- ID modelů ve stylu gateway selhávají: přesuňte profil k odpovídajícímu poskytovateli gateway, protože nativní Anthropic očekává nativní názvy modelů. +- Dlouhé požadavky selhávají pozdě: snižte velikost výstupu modelu na jednu úlohu nebo použijte model s vyšší známou mezí výstupních tokenů. + +## Kdy použít + +Použijte Anthropic, když je kvalita syntézy, výzkumných poznámek nebo strukturovaného psaní důležitější než čistá cena. Nepoužívejte ho jako obecnou náhradu kompatibilní s OpenAI; samostatný transport je klíčový a míchání protokolů ztěžuje diagnostiku. + +--- + +## Další kroky + +- [LLM Providers](/docs/providers/overview) -- Kompletní konfigurace, modely na jednu úlohu a logika opakování +- [Troubleshooting](/docs/advanced/troubleshooting) -- Náprava chyb 401/403 a chyb připojení diff --git a/website/i18n/cs/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/cs/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..4d23558e --- /dev/null +++ b/website/i18n/cs/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "Čínští poskytovatelé" +description: "Nastavte Qwen, DeepSeek, GLM atd." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Čínští poskytovatelé + +<TLDR> +**Notemd podporuje poskytovatele v čínském regionu a s původem v Číně převážně prostřednictvím koncovek kompatibilních s OpenAI.** Současná sada zahrnuje DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, MiniMax, Baidu Qianfan, SiliconFlow, Huawei Cloud MaaS a Z AI. Hodnotou jsou regionální dosah a kontrola nákladů; rizikem jsou názvy modelů specifické pro poskytovatele a omezení účtu. + +Toto je součástí [Obsidian Průvodce AI pro správu znalostí](/docs/pillar-ai-knowledge). +</TLDR> + +## Nastavení + +Vytvořte účet poskytovatele, vytvořte klíč API a poté vyberte odpovídající přednastavení poskytovatele Notemd místo použití obecného profilu OpenAI. Toto přednastavení obsahuje výchozí základnu URL, model, režim testování API, chování pro vyhledávání modelů a jakákoli pole specifická pro poskytovatele UI. + +Zde agresivně využívejte výběr modelu podle úkolu. Například u pracovních postupů vyžadujících hodnocení ponechte DeepSeek nebo GLM, pro širokou práci v čínštině použijte Qwen nebo Moonshot a úlohy na kódování směřujte na Qwen Code, pokud tento účet nabízí modely pro kódovače. + +## Koncový bod a autentizace + +| Poskytovatel | Výchozí model | Základní URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (je vyžadován ID koncového bodu) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**Poznámka:** Doubao vyžaduje ID koncového bodu Ark (formát: `ep-xxxxxxxx-xxxx-xxxx`) místo standardního názvu modelu. + +Většina těchto poskytovatelů používá sdílený běhový prostředí kompatibilní s OpenAI, ale jejich semantika účtů a modelů se liší. Používejte základnu URL specifickou pro přednastavení, pokud jste neověřili alternativní koncový bod účtu. + +## Objevování modelů + +DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan a SiliconFlow používají vyhledávání modelů kompatibilní s OpenAI, pokud poskytovatel podporuje výpis. Huawei Cloud MaaS používá režim `huaweicloud-modelarts-models`, protože metadata nasazení ModelArts nejsou totožná s obecným výpisem `/v1/models`. + +Nepovažujte selhání vyhledávání za důkaz, že chat není možný. Několik poskytovatelů umožňuje chat při omezení oprávnění k výpisu modelů. V takovém případě udržujte v profilu explicitní ID modelu a ověřte to testem spojení. + +## Řešení problémů + +- Autentizace úspěšná, ale chat selhal: název modelu může být mimo oprávnění nebo region účtu. +- Doubao selže s běžným názvem modelu: použijte ID koncového bodu Ark v poli modelu, pokud to vaše nasazení vyžaduje. +- Odpovědi na hodnocení jsou zkrácené: zkontrolujte maximální počet tokenů specifický pro poskytovatele a nastavení maximálního počtu tokenů modelu Notemd. +- Regionální síťové prostředí se liší: použijte koncový bod čínského regionu poskytovatele, pokud je stroj ve vaultu v Číně; používejte mezinárodní koncový bod pouze tehdy, když jsou účet i síťová cesta platné. + +## Kdy použít + +Využívejte čínské poskytovatele, pokud je hlavním omezením regionální latence, přístup k platbám/účtům, kvalita v čínštině nebo náklady. Upřednostněte přímé OpenAI, Anthropic, Google nebo místní poskytovatele, pokud potřebujete jednodušší hranice protokolu nebo vyšší konzistenci při ladění mezi různými poskytovateli. + +--- + +## Další kroky + +- [LLM Providers](/docs/providers/overview) -- Kompletní konfigurace, modely na jednu úlohu a logika opakování +- [Řešení problémů](/docs/advanced/troubleshooting) -- Oprava chyb regionální konektivity a autentizace diff --git a/website/i18n/cs/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/cs/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..600e737d --- /dev/null +++ b/website/i18n/cs/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "Nastavit Google Gemini" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Google Provider + +<TLDR> +**Google využívá nativní transport generativního jazyka Gemini API.** Aktuální přednastavení vychází ze `gemini-2.0-flash-exp`, `https://generativelanguage.googleapis.com/v1` a `temperature: 0.5`. Nejedná se o profil kompatibilní s OpenAI. + +Toto je součástí [Obsidian Průvodce AI pro správu znalostí](/docs/pillar-ai-knowledge). +</TLDR> + +## Nastavení + +Vytvořte klíč Cloud API typu Google AI Studio nebo Google s přístupem k Gemini, přidejte profil poskytovatele `Google` a ponechte nativní základnu generativního jazyka URL. Pro rychlý překlad a široké pracovní postupy s poznámkami použijte výchozí profil Gemini Flash a poté přepněte modely podle úlohy, pokud potřebujete větší nebo schopnější model Gemini. + +Vyhýbejte se umisťování ID modelů Gemini do profilu kompatibilního s OpenAI, pokud výslovně nepoužíváte bránu, která zpřístupňuje Gemini prostřednictvím profilu kompatibilního s OpenAI a API. + +## Koncový bod a autentizace + +| Pole | Aktuální přednastavení | +|-------|----------------| +| Transport | `google` | +| Klíč API | Požadované | +| Základní URL | `https://generativelanguage.googleapis.com/v1` | +| Výchozí model | `gemini-2.0-flash-exp` | +| Teplota | `0.5` | +| Test spojení | Pouze chat | + +Běhový prostředí volá `/models/{model}:generateContent?key={apiKey}`. Klíč je předán jako parametr dotazu, protože tak je nativní koncový bod Gemini v pluginu propojen. + +## Objevování modelů + +Google využívá režim objevování `google-models`. Objevování by mělo vrátit modely Gemini dostupné pro klíč API; pokud je selektor prázdný, otestujte klíč na stejné základně URL a potvrďte, že je pro daný účet povolena rodina modelů. + +Známé limity tokenů výstupu jsou v registru poskytovatelů závislé na modelu. Pokud je dlouhý překlad nebo vysvětlení diagramu zkráceno, vyberte model Gemini s větším podporovaným limitem výstupu nebo snižte požadovanou velikost výstupu. + +## Řešení problémů + +- `400`: ID modelu obvykle neodpovídá nativní trase Gemini nebo požadavek přesahuje podporovaný formát modelu. +- `401` nebo `403`: ověřte omezení klíče, aktivaci projektu/API a zda může klíč přistupovat k Gemini. +- `404`: ID modelu není k dispozici v konfigurované verzi API. +- Příklady bran selhávají v tomto profilu: použijte místo nativního poskytovatele Google přednastavenou bránu. + +## Kdy použít + +Použijte Google pro rychlý překlad, úklid velkého množství poznámek a pracovní postupy, kde je poměr nákladů a výkonu Gemini lepší než u přímého použití OpenAI nebo Anthropic. Pro pracovní postupy vyžadující zpracování modelů s rozumovým myšlením kompatibilních s OpenAI preferujte jiného poskytovatele. + +--- + +## Další kroky + +- [LLM Providers](/docs/providers/overview) -- Kompletní konfigurace, modely na jednu úlohu a logika opakování +- [Překlad](/docs/features/translation) -- Pro velké množství překladových úloh se doporučuje Gemini Flash diff --git a/website/i18n/cs/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/cs/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..64109304 --- /dev/null +++ b/website/i18n/cs/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "Lokální modely" +description: "Nastavte Ollama a lokální LLMs" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# Lokální modely + +<TLDR> +**Lokální poskytovatelé uchovávají obsah poznámek mimo hostované APIs.** Aktuální lokální cesta pokrývá Ollama pomocí nativního transportu `ollama` a LMStudio prostřednictvím transportu kompatibilního s OpenAI. Pro žádnou z těchto cest není potřeba klíč API, ale lokální server a model musí již běžet. + +Toto je součástí [Obsidian Průvodce AI pro správu znalostí](/docs/pillar-ai-knowledge). +</TLDR> + +## Nastavení + +Pro Ollama nainstalujte Ollama, stáhněte si požadovaný model, spusťte server a přidejte profil poskytovatele `Ollama` v Notemd. Pro LMStudio načtěte model do lokálního serveru LM Studio a přidejte profil poskytovatele `LMStudio`. + +Lokální modely jsou provozní závislosti, ne jen nastavení. Notemd může volat pouze to, co lokalní proces nabízí, proto před laděním doplňku ověřte lokální model mimo Obsidian. + +## Koncový bod a autentizace + +| Poskytovatel | Základní URL | Výchozí model | Klíč API | Poznámky | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | Nepožadováno | Přenos NDJSON; objevování modelů prostřednictvím `/api/tags` | +| LMStudio | `localhost:1234/v1` | `local-model` | Nepožadováno | Odesílá `"EMPTY"` jako token nositele; kompatibilní s OpenAI | + +Ollama používá nativní cestu `/chat` pod svým základním URL. LMStudio následuje trasu `chat/completions` kompatibilní s OpenAI a očekává model načtený v lokálním serveru. + +## Objevování modelů + +Ollama používá režim objevování `ollama-tags` a uvádí lokálně stažené tagy. LMStudio používá objevování modelů kompatibilní s OpenAI, když jeho server nabízí `/v1/models`. + +Pokud objevování nic nevrátí, obvykle jde o problém stavu lokálního serveru: model nebyl stažen, nenainstalován nebo je server připojen k jinému hostiteli/portu než profil určuje. + +## Řešení problémů + +- Odmítnutí spojení: spusťte Ollama nebo LM Studio a ověřte nakonfigurovaný port. +- Model nenalezen: stáhněte si tag Ollama nebo načtěte model LM Studio před testováním. +- Pomalý výstup: snižte velikost kontextu, použijte menší lokální model nebo směřujte náročné úlohy k hostovanému poskytovateli. +- Prázdné nebo chybné odpovědi: ujistěte se, že vybraný profil poskytovatele odpovídá protokolu lokálního serveru; Ollama a LMStudio nelze zaměňovat. + +## Kdy použít + +Pro soukromé trezory, práci offline nebo levné opakované úlohy použijte místní poskytovatele. Nepředpokládejte, že místní řešení je automaticky lepší pro výzkumnou syntézu nebo dlouhodobé uvažování; kvalita modelu a omezení hardwaru představují kompromis. + +--- + +## Další kroky + +- [LLM Poskytovatelé](/docs/providers/overview) -- Kompletní konfigurace a nastavení modelu pro jednotlivé úlohy +- [Řešení problémů](/docs/advanced/troubleshooting) -- Náprava chyb connection-refused, když místní server není spuštěn diff --git a/website/i18n/cs/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/cs/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..698b4062 --- /dev/null +++ b/website/i18n/cs/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "Nastavit OpenAI (GPT-4, GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# OpenAI Provider + +<TLDR> +**OpenAI využívá sdílený transport kompatibilní s OpenAI.** Aktuální přednastavení vychází ze `gpt-4o`, `https://api.openai.com/v1`, `temperature: 0.5` a testování spojení `models-then-chat`. Použijte tuto stránku, pokud potřebujete přesné sémantiky polí; pro výběr na úrovni kategorií použijte přehled [LLM Poskytovatelé](/docs/providers/overview). + +Toto je součástí [Obsidian Průvodce AI pro správu znalostí](/docs/pillar-ai-knowledge). +</TLDR> + +## Nastavení + +Vytvořte klíč OpenAI API, přidejte profil poskytovatele `OpenAI` do nastavení Notemd a ponechte výchozí Base URL, pokud záměrně neukazujete na bránu kompatibilní s OpenAI. Pole modelu může zůstat na `gpt-4o` pro obecnou práci nebo být nahrazeno jiným ID modelu OpenAI, které váš účet může volat. + +Pro kontrolu nákladů používejte modely specifické pro úkol: uchovávejte silnější modely pro výzkum, extrakci konceptů a strukturování dlouhých textů; používejte levnější nebo rychlejší modely pro překlady, návrhy odkazů a krátké shrnutí. + +## Koncový bod a autentizace + +| Pole | Aktuální přednastavení | +|-------|----------------| +| Transport | `openai-compatible` | +| Klíč API | Požadované | +| Základní URL | `https://api.openai.com/v1` | +| Výchozí model | `gpt-4o` | +| Teplota | `0.5` | +| Test spojení | `/models`, poté `/chat/completions` | + +Notemd normalizuje základní URLs kompatibilní s OpenAI před přidáním `chat/completions` nebo `models`. V Base URL nezahrnujte koncový `/chat/completions`; to vytváří duplikovanou cestu. + +## Objevování modelů + +OpenAI využívá obecnou cestu pro nalezení modelů kompatibilní s OpenAI. Nastavení UI nejprve požádají `/v1/models` a poté ověří vybraný model pomocí lehké chatovací žádosti. Pokud nalezení selže, ale chat stále funguje, zkontrolujte, zda váš klíč má oprávnění k seznamu modelů nebo zda brána blokuje výpis modelů. + +Modely pro uvažování jsou považovány za speciální případ protokolu: Notemd slučuje obsah systémového a uživatelského výzvy pro ID uvažování OpenAI, která odmítají samostatnou roli `system`, a zpřístupňuje `reasoningEffort` pouze tam, kde to definice poskytovatele podporuje. + +## Řešení problémů + +- `401` nebo `403`: ověřte klíč, přístup k projektu, stav fakturování a zda je vybraný model pro klíč povolen. +- `404` v chatu: Base URL je obvykle chybný nebo již obsahuje `/chat/completions`. +- Model se objevuje v dokumentaci, ale není ve výběru: přístup k seznamu modelů a přístup k chatu jsou oddělené body selhání; ručně otestujte přesné ID modelu v profilu poskytovatele. +- Model pro uvažování odmítá zprávy: použijte ID modelu pokryté cestou zpracování uvažování OpenAI nebo přejděte na model chatu bez uvažování. + +## Kdy použít + +Používejte OpenAI, když chcete co nejpředvídatelnější výchozí hostovanou cestu, když je důležité nalezení `/v1/models`, nebo když pracovní postup závisí na sémantice modelu uvažování OpenAI. Přednostně používejte bránu nebo místního poskytovatele, pokud jsou pro směrování, soukromí nebo kontrolu nákladů důležitější než přímé chování OpenAI API. + +--- + +## Další kroky + +- [LLM Providers](/docs/providers/overview) -- Kompletní konfigurace, modely na jednu úlohu a logika opakování +- [Řešení problémů](/docs/advanced/troubleshooting) -- Oprava chyb 401/403 a omezení rychlosti diff --git a/website/i18n/cs/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/cs/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..d37b6483 --- /dev/null +++ b/website/i18n/cs/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "LLM poskytovatelé" +description: "Konfigurujte 36 LLM poskytovatelů — cloud, brána a lokální — s výběrem modelu podle úlohy" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# LLM poskytovatelé + +<TLDR> +**Notemd podporuje 36 LLM poskytovatelů napříč 4 typy přenosu.** Všechny API volání využívají syrový HTTP (bez SDK) s automatickým opakováním, náhradním přenosem a ukládáním odpovědí na 5 minut. Výběr modelu podle úlohy vám umožňuje použít levné modely pro extrakci konceptů a výkonné modely pro výzkum. Pro lokální poskytovatele (Ollama, LMStudio) není potřeba žádný API klíč. +</TLDR> + +Toto je součástí [Obsidian Průvodce AI pro správu znalostí](/docs/pillar-ai-knowledge). + +## Kategorie poskytovatelů + +### Cloudoví poskytovatelé + +| Poskytovatel | Výchozí základ URL | Výchozí model | Teplota | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### Bránoví / proxy poskytovatelé + +| Poskytovatel | Výchozí základ URL | Výchozí model | Poznámky | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | Přidává hlavičky `HTTP-Referer` + `X-Title` | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | Přidává hlavičku `X-GitHub-Api-Version` | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | Přidává hlavičku `APP-Code` | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | Volitelný API klíč | +| **Nový API** | `localhost:3000/v1` | `gpt-4.1` | Volitelný API klíč | +| **OpenAI Compatible** | (user-configured) | `your-model-id` | Vlastní koncový bod | + +### Čínští poskytovatelé + +| Poskytovatel | Výchozí základna URL | Výchozí model | Poznámky | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | Zaměřené na programování | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (je vyžadován ID koncového bodu) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | Koncový bod Zhipu v Číně | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | Mezinárodní koncový bod Zhipu | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | Platforma pro hostování modelů | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao vyžaduje ID koncového bodu Ark** (formát: `ep-xxxxxxxx-xxxx-xxxx`). Výchozí zástupný symbol je třeba nahradit. + +### Lokální poskytovatelé + +| Poskytovatel | Výchozí základna URL | Výchozí model | Poznámky | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | Žádný klíč API. Přenos NDJSON. Objevování modelů prostřednictvím `/api/tags` | +| **LMStudio** | `localhost:1234/v1` | `local-model` | Odesílá `"EMPTY"` jako token nositele. Objevování kompatibilní s OpenAI | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (uživatelem nakonfigurováno) | `gpt-4o` | Název nasazení v URL. Záhlaví `api-key` | + +## Výběr modelu pro jednotlivé úlohy + +Notemd podporuje nezávislého poskytovatele a model pro každý úkol. Aktivujte pomocí `useMultiModelSettings: true`. + +### Dostupné úkoly + +| Úloha | Klíč nastavení | Výchozí poskytovatel | +|------|-------------|-----------------| +| Přidání odkazů (vložení wiki odkazu) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| Výzkum (vyhledávání na webu + shrnutí) | `researchProvider` / `researchModel` | DeepSeek | +| Generování z názvu | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| Překlad | `translateProvider` / `translateModel` | DeepSeek | +| Generování diagramů | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| Extrakce konceptů | `extractConceptsProvider` / `Model` | DeepSeek | +| Extrakce původního textu | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### Pořadí řešení + +1. Pokud je `useMultiModelSettings` zapnuto → použijte poskytovatele a model specifické pro úkol +2. Pokud je přepsání modelu úkolu prázdné → vraťte se k výchozímu modelu poskytovatele +3. Pokud je poskytovatel úkolu neplatný → vraťte se ke globálnímu `activeProvider` +4. Pokud je `useMultiModelSettings` vypnuté → všechny úlohy používají globální `activeProvider` + +### Doporučené konfigurace + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## Architektura volání API + +### Transportní vrstvy + +1. **Obsidian `requestUrl`** — primární (vestavěné, funguje na všech platformách) +2. **Desktop HTTP** — moduly Node.js `http`/`https` (streaming + dlouhé požadavky) +3. **Web `fetch`** — náhrada, pokud nejsou k dispozici moduly Node.js + +Plugin automaticky přepíná mezi transporty při dočasných síťových chybách. + +### Logika opakování + +- **Normální režim** (`enableStableApiCall: false`): Jeden pokus. Při dočasné chybě se automaticky přejde na stabilní opakování. +- **Režim stabilního opakování** (`enableStableApiCall: true`): Až 4 pokusy (1 + 3 opakování) s intervaly 5 sekund. +- **Dočasné chyby, které spouštějí opakování**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **Nepřipustitelné k opakování**: HTTP 400, 401, 403, 404 + +### Caching odpovědí + +5minutová paměťová cache LRU se klíči založenými na poskytovateli + modelu + teplotě + promptu + obsahu. Následující identické požadavky během 5 minut vracejí výsledky z cache okamžitě. + +### Zpracování modelů pro uvažování + +Modely, které nepodporují roli `system` (DeepSeek R1, OpenAI o1/o3/o4/gpt-5), automaticky spojují systémové a uživatelské prompty do jediné uživatelské zprávy. + +DeepSeek-specifické: `thinkingEnabled` přidává `{ thinking: { type: 'enabled' } }` do požadavku. `reasoningEffort` (nízký/střední/vysoký) je předán jako `reasoning_effort`. Ověřuje, zda maximální počet výstupních tokenů ≥ 8000, když je aktivní režim uvažování. + +### Odhad tokenů + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — heuristika 4 znaků na token. Používá se k zajištění `maxResearchContentTokens` před odesláním do LLM. + +Není implementováno sledování nákladů. + +## Objevování modelů + +| Režim | Poskytovatelé | Koncový bod | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | Seznam modelů API | +| `anthropic-models` | Anthropic | Seznam modelů API | +| `openai-compatible-models` | DeepSeek, Qwen, Mistral atd. | `/v1/models` | +| `openrouter-models` | OpenRouter | Seznam modelů API | +| `github-models` | GitHub Models | Inference API | +| `none` | Azure OpenAI | Vypnuto (vyžaduje název nasazení) | + +## Rychlý start + +1. **Vyberte poskytovatele** — DeepSeek (Čína), OpenAI (Mezinárodní) nebo Ollama (Místní/Bezplatné) +2. **Zadejte klíč API** — Nastavení → Notemd → Poskytovatel → Klíč API +3. **Otestujte spojení** — Klikněte na tlačítko testování +4. **Volitelné: Modely na úroveň úkolu** — Povolte `useMultiModelSettings` a nakonfigurujte je individuálně + +Pro Ollama: klíč API není potřeba. Stačí se ujistit, že `ollama serve` běží. + +--- + +## Další kroky + +- 📝 [Poznámky ke konceptu](/docs/features/concept-notes) — Využívá model extrakce na úroveň úkolu +- 🎨 [Diagramy](/docs/features/diagrams) — Využívá model diagramů na úroveň úkolu +- 🔍 [Výzkum](/docs/features/research) — Využívá model specifický pro výzkum +- ⚙️ [Konfigurace](/docs/getting-started/configuration) — Kompletní referenční sady nastavení diff --git a/website/i18n/cs/docusaurus-theme-classic/footer.json b/website/i18n/cs/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/cs/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/cs/docusaurus-theme-classic/navbar.json b/website/i18n/cs/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/cs/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/da/code.json b/website/i18n/da/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/da/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/da/docusaurus-plugin-content-docs/current.json b/website/i18n/da/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/da/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/da/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/da/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..9ce4631f --- /dev/null +++ b/website/i18n/da/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "Batchbehandling" +description: "Behandle flere filer effektivt" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# Batchbehandling + +<TLDR> +**Notemd bearbejder hele mapper i én handling med konfigurerbar samtidighed og kontrol over overskrivning.** Klik kraftigt på en mappe for at tilføje wiki-linker i batch, extrahere koncepter, gøre research eller oversætte alle notater derinde. Samtidighedsgrænser forhindrer API-fejl ved hastighedsbegrenninger. Fortgangen rapporteres for hver fil. Overskrivningsbehavioren er konfigurerbar: overskride ikke, tilføj til eller ersat. Felsatte filer registreres uden at batch-proceset afbruds. + +Dette er en del af [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Översikt + +Batchbehandling omvandler en mapp med notater til en enkelt operation. I stedet for at åbne hver notat og køre kommandoen individuelt, klicker du højre på mappen og vælger opgaven. Notemd gennemgår alle `.md` filer, applikerer den valgte handlingen og rapporterer fremgang i realtid. + +Dette funktion er essentielt for at extrahere kunnskab fra hele vaultet. Efter at have importert desater af PDFs, f.eks. med batch-add-links følgt af batch-extract-concepts, bygges din knowledge graph på minutter i stedet for timer. + +## Hvordan det virker + +### Batchudførelsesmodell + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **Filsamling** -- Notemd gennemgår målmappegen rekursivt (eller kun på toppniveau, afhængigt af indstillingerne) og samler alle `.md` filer. +2. **Konkurrencipartitionering** -- Filerne delges i blokker baseret på `batchConcurrency`-indstillingen. Hver blok kører parallelt; blokkene kører sekventielt. +3. **Udførelse** -- Hver fil behandles med samme logik som kommandoen for enkelt fil. Tillægsindstillinger for opgave og modell respekteres. +4. **Fortskabsrapportering** -- En toast-notifikation opdateres efter hver fil er afsluttet og viser `N / Total` forudsætning. +5. **Fejlhantering** -- Hvis en fil fejler (API fejl, netværkstimeout osv.), registreres fejlen og batchen fortsætter. Den sidste sammenfattelse listar alle fejlfulde filer. +6. **Ferdigstilling** -- En sammanfattende rapport giver information om det totale antal bearbetede elementer, succesfälle og misslyckanden. + +### Overskrive betegnelse + +Når en fil, der allerede har wiki-linker, konceptnoter eller oversættelser, behandles, afhænger Notemd's betegnelse af overskrivingsindstillingen: + +| Modus | Betegnelse | +|------|----------| +| **Skriv forbi** | Den eksisterende indhold bliver lade være. Alleen uændrede filer behandles. | +| **Føj til** (standard) | Nyt indhold bliver tilføjet. De eksisterende wiki-linker, koncepter eller oversættelser bevares. | +| **Erstat** | Filen behandles fuldstændigt på ny. Alle tidligere Notemd-ændringer overskrives. | + +Specifikt for wiki-linking: Hvis en note allerede indeholder `[[wiki-links]]`, lader **Skriv forbi**-modusen den være alene, mens **Erstat** sender hele noten til LLM for ny link-indsætning. Brug **Skriv forbi** for inkrementel behandling og **Erstat** for opdatering efter en modellopgradering. + +### Konkurrenci-styring + +`batchConcurrency`-indstillingen begrænser parallele API-kaller. Det forhindrer rate-limit-fejl (HTTP 429) ved behandling af store mappeler mod tjenester med strikte kvoter. + +| Konkurrenci | Anbefales til | Typisk impact på rate-limiter | +|-------------|----------------|---------------------------| +| `1` | Gratis planer, strikte leverandører | Ingen (serial) | +| `3` (standard) | De fleste cloudleverandører | Lav | +| `5` | Ollama (lokalt), generøse planer | Ingen / Lav | +| `10` | Locale modeller med snabb inferens | Ingen | + +Hvis du støder på 429-fejl under batchbehandling, reducér konkurrencien til 1 eller 2. + +## Konfiguration + +| Indstilling | Standard | Effekt | +|---------|---------|--------| +| `batchConcurrency` | `3` | Maximum parallel API anrop under mappoperasjoner | +| `batchOverwriteExisting` | `false` | Skriv over den eksisterende Notemd-indholdet. `false` = append-modus. | +| `batchSkipProcessed` | `false` | Undgå filer, der allerede indeholder Notemd-markører (f.eks. wiki-linker) | +| `batchRecursive` | `true` | Indkludere undermapper ved scanning af mappen | +| `enableStableApiCall` | `false` | Aktiver rettighedslogik (op til 4 forsøg) per fil under batch-proceset | + +### Per-Task Models i Batch + +Hver batch-operasjon bruger den tilsvarende per-task-model. Batch-add-links bruger `addLinksProvider`, batch-research bruger `researchProvider` osv. Det betyder, at du kan tildele billige modele for operationer med høj volumen og reservere dyre modele for opgaver, der kræver høj kvalitet. + +## Eksempel + +Du har en mapp `papers/` med 40 importerede forskningsnotater. Du vil tilføje wiki-linker og extrahere koncepter fra dem alle: + +1. Klik højre på mappen `papers/` +2. Vælg **"Notemd: Process mappen (tilføj links)"** +3. Notemd skanner mappen, finder 40 `.md` filer og bearbejder 3 på gang (standardkonkurrenci) +4. En progress-tost viser: `12/40 files processed...` +5. Efter ca. 3 minutter rapporterer en sammanfattings-tost: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. Udgiv det igen med **"Notemd: Process mappen (udvinde koncept)"** for at skabe konceptnoter for alle 40 + +Den eneste fejlfulde fil registreres. Du kan derefter udføre processen kun på den fil. + +## Tips + +- **Start med lav konkurrenci** -- Hvis du er usikker på din leverandørs rate-limiter, start med `1` og øg gradvist. +- **Brug overskiftemodus for inkrementelle opdateringer** -- Efter den første fulde batch skift til `batchSkipProcessed: true` så kun nye noter behandles i efterfølgende udførelser. +- **Aktiver stabile API anrop** -- `enableStableApiCall: true` tilfører retry-logik som genoprævner sig fra tidsviske netværksfejl under lange batcher. +- **Udfør igen efter modellupgraderinger** -- Hvis du skifter til en bedre modell, sæt `batchOverwriteExisting: true` og udfør igen for at få bedre links og koncept. + +--- + +## Næste trin + +- [Workflows](/docs/features/workflows) -- Koble batch-opgaver til én-klik-sidemenu-knapper +- [Custom Prompts](/docs/advanced/custom-prompts) -- Anpass prompter for batchudvinning +- [Troubleshooting](/docs/advanced/troubleshooting) -- Løs problemer med rate-limiter og forbindelsesfejl under batchudvikling +- [LLM Tjänsteleverantörer](/docs/providers/overview) -- Referens för modellkonfiguration per uppgift diff --git a/website/i18n/da/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/da/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..23933c60 --- /dev/null +++ b/website/i18n/da/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "Egen prompter" +description: "Anpass til dine behov ved at anpasse LLM prompterne" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# Egen prompter + +<TLDR> +**Notemd giver dig mulighed for at overskrive den standard LLM prompt for hver typ af opgave.** Egen prompter giver dig kontrol over, hvad modellen prioriterer: du kan begrænse konceptudhulling til en specifik disciplin, ændre linkningsstilen eller rette oversættelsestonen. Promptvariabler som `{{content}}` og `{{concept}}` er erstattet ved kørsel. Funktionen for fokuseret læring domæne tilføjer automatisk din studierom til at begrænse udhullingsresultaterne. + +Dette er en del af [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Översikt + +De ibyggede prompterne for Notemd er skrevet til almen brug i videnskabelig arbejdsstyring. De virker godt over forskellige domæner, men de giver også plads til domænespecifik forbedringer. Egen prompter lar dig sige til LLM præcist, hvordan det skal opføre sig i din brugssituation – hvilket kan betyde at kun udhulle medicinsk terminologi, kun linke navngivne entiteter eller oversætte i en formel stil. + +Egen prompter er ikke en ersatz for hele systemprompten. De overskriver eller tilbyder yderligere information til den **opgavespecifikke instruktionssektion**, mens de bevarer den strukturelle udgangsformat (f.eks. `CONCEPT:`-linjer, wiki-link-syntax), som Notemd bruger for at parse. + +## Hvordan det virker + +### Promptarkitektur + +Hver Notemd-opgave følger samme promptstruktur: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **Base system prompt** -- Stiller assistentens persona. Uoverskriveligt. +2. **Fokuseret læring domæne** -- Tilføjer `Relevant Fields: [medicine / law / computer science / ...]` for at begrænse omfang. Dette er en indstillingstoggles, ikke en ren prompt. +3. **Egen opgavesprompt** -- Erstatser de standardopgavesinstruktioner (f.eks. hvilke koncepter der skal udhulles, hvor aggressivt der skal linkses). +4. **Udgangsformat** -- Strukturelle regler (`CONCEPT:`-linjer, wiki-link-format). Alltid tilføjet af Notemd for at sikre parsebarhed. +5. **Indhold** -- Den faktiske teksten, erstattet ved kørsel via `{{content}}`. + +### Promptvariabler + +Variabler er erstattet ved udførelse. Tilgængelige variabler varierer afhængigt af opgaven: + +| Variable | Opgaver | Erstatset med | +|----------|-------|---------------| +| `{{content}}` | Alle | Noten eller valgt tekst | +| `{{concept}}` | Mall for konceptnoter | Utdrænet konceptnavn | +| `{{description}}` | Mall for konceptnoter | Beskrivelse af koncept genereret af LLM | +| `{{backlinks}}` | Mall for konceptnoter | Liste over kilde-noter med links | +| `{{date}}` | Mall for konceptnoter | Aktuel dato (YYYY-MM-DD) | +| `{{language}}` | Oversætning | Mål-sprog for udgangstekst | +| `{{source}}` | Mall for konceptnoter | Basnavn til kilde-noten | + +### Fokuseret læringdomæne + +Fokuserede læringsegenskaberne er en gennemgang til domænespecifikation. I stedet for at skrive en eksklusiv prompt, der nævner din bransche, sætter du `focusedLearningDomain` i indstillingerne: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +Dette fører `Relevant Fields: [medicine]` foran extraktionsprompten, hvilket får LLM til at prioritere domænespecifikke koncepte og undertrykke generiske. Det er lettere end en fuld eksklusiv prompt og virker i alle extraktionsopgaver. + +## Konfiguration + +| Indstilling | Standard | Effekt | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | Overrulle den standardmæssige add-links-opgaveprompt | +| `customExtractConceptsPrompt` | `''` | Overrulle den standardmæssige konceptextraktionsprompt | +| `customResearchPrompt` | `''` | Overrulle den standardmæssige forsknings- og sammanfattingsprompt | +| `customTranslatePrompt` | `''` | Overrulle den standardmæssige oversætelsesprompt | +| `customDiagramPrompt` | `''` | Overrulle den standardmæssige diagramgenerationsprompt | +| `focusedLearningDomain` | `''` | Førstil disciplinkontekst til extraktions- og linkingsprompter | +| `extractConceptsMinimalTemplate` | `true` | Brug kun titel-baseret konceptnotemall (hvorfor `{{concept}}`-mallens omfang påvirkes) | +| `customConceptNoteTemplate` | `''` | Overrulle konceptnotemallen med fuld variabelstøtte | + +**Hvis et eksklusiv prompt-felt er tom, bruges den ibyggede standardprompten.** + +## Eksempel + +Du er en medicinsk forsker, der extraherer koncepte fra kliniske prøvenotater. Den standardmæssige prompten extraherer generiske substantiver sammen med medicinske termer, hvilket forvirrer din konceptmappe. + +**Løsning:** Sæt en fokuseret læringdomæne og en eksklusiv extraktionsprompt. + +1. Sæt `focusedLearningDomain` til `medicine` +2. Sæt `customExtractConceptsPrompt` til: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +Når du kører "Extract concepts" på en klinisk noter, genererer LLM: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +I stedet for den standardopførsel, der også kan extrahere uønskede generiske terme som "hospital" eller "month". + +## Tips + +- **Start med den fokuserede læringdomænen** før du skriver en fuld custom prompt. Det dekker 80% af brugscasene med en enkelt indstilling. +- **Bevar udgangsformatet** -- Fjern aldrig formatinstruktioner som "one per line" eller "CONCEPT: prefix" fra custom prompts. Notemd's parser er afhængig af dem. +- **Prøv med en enkelt not først** -- Custom prompts kan have uforutsette effekter på extraktionens bredde. Verificer på en not før batch processing. +- **Håndhold promptsene kort** -- Overmodigt lange custom prompts bruger tokens og kan forsvage modellenes fokus. + +--- + +## Næste trin + +- [Wiki-Links](/docs/features/wiki-links) -- Hvad, der lignes til, når du anpasser add-links prompten +- [Concept Notes](/docs/features/concept-notes) -- Konceptnoter-mallere og `{{concept}}`-variabelen +- [Batch Processing](/docs/advanced/batch-processing) -- Anvend custom prompts på hele mappeler +- [Troubleshooting](/docs/advanced/troubleshooting) -- Løs problemer, hvor custom prompts genererer uforutsett udgang diff --git a/website/i18n/da/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/da/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..0fdc3d0a --- /dev/null +++ b/website/i18n/da/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "Felsøgning" +description: "Almindelige problemer og løsninger" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Felsøgning + +<TLDR> +**De fleste Notemd-problemer faller ind i fire kategorier: API-problemer, nettverksforbindelse, autentifiseringsfejl (401/403) og hastighedsbegrænsninger (429).** Den innebygde forbindelsesprøve og diagnostikpanelen identificerer den grundlæggende årsag hurtigt. Dette side dekker alle almindelige fejlmeddelelser, deres årsag og løsning. For problemer, der ikke er oplyst her, rapportér dem på GitHub Issues med diagnostikoutput. + +Dette er en del af [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Översikt + +Notemd er afhængig af eksterne tjenester -- LLM-udbydere og søg API-tjenester -- så de fleste problemer har deres oprindelse udenfor pluginen selv. Diagnostikpanelen i indstillingerne giver en strukturret oversigt over den seneste API-kall, herunder anmodningen URL, svarstatusen og fejlkroppen. Kontroller det alltid først før du undersøger videre. + +## Hvordan det virker: Diagnostik + +### Forbindelsesprøve + +Hver konfigurationssektion for udbyder har en **"Prøv forbindelse"**-knap. Ved at klikke på den sendes en minimal API-anmodning (typisk en modellliste eller en kort komplettering) og det rapporteres, om prøven var succesfuld eller om der opstod en specifik HTTP-fejl. Dette er den hurtigste måde at overholde, at din API-nyckel og base URL er korrekte. + +### Diagnostikpanelen + +**Indstillinger --> Notemd --> Diagnostik** viser: + +| Felt | Indhold | +|-------|---------| +| Siste udbyder | Hvilken udbyder blev kaldet sidst | +| Siste modell | Hvilken modell blev kaldet sidst | +| Siste statusen | HTTP statuskode eller transportfejl | +| Siste fejl | Rå feilmelding fra API | +| Siste anmodning URL | Komplet URL for den sidste anmodningen (redigeret API-klæde) | +| Siste svarstykken | Trunkeret svarstykke (første 500 tegn) | + +Kopier hele diagnostikudgangen når du rapporterer problemer på GitHub. + +## Almindelige fejl + +### API-klæden er ugyldig eller fejlt + +**Symptom:** HTTP 401 eller "Udløselig API-klæde fornødtes" + +**Orsag:** API-klæden fejler, indeholder mellemrum eller tilhører en anden leverandør. + +**Løsning:** +1. Kontroller at klæden ikke har ledende/afslutende mellemrum +2. Sikre dig på, at klæden stemmer overens med den valgte leverandør (en OpenAI-klæde vil ikke virke med Anthropic) +3. Kontroller, om din konto har krediter eller en aktiv abonnement +4. Klik på **"Test Connection"** for at verificere + +### Netværks-/forbindelsesfejl + +**Symptom:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**Ursache:** API-endpointen er uerreichbar fra din maskine. + +**Løsning:** +1. Kontroller din internetforbindelse +2. Hvis du er bakom en proxy eller firewall, kontroller, at API-domænen ikke er blokeret +3. For Ollama: Bekræft, at `ollama serve` er i gang (`ollama list` bør returnere modeller) +4. For LMStudio: Bekræft, at serveren kører på `localhost:1234` +5. Prøv en ander transport – mobilbrugere bør sikre sig på, at `requestUrl`-transporten er aktiveret +6. Aktiver `enableStableApiCall` for automatiske forsøg ved tidsvis fejl + +### 403 Forbudt + +**Symptom:** HTTP 403 + +**Ursache:** Din API-nyckel er gyldig, men har ikke tilladelse til den forespurgte ressource. + +**Løsning:** +1. Nogle modeller kræver særlig adgang (f.eks. GPT-4 via Azure kræver en udviklingsnavn) +2. Nogle leverandører begrænser modeller efter planlaget -- kontroller din konto +3. Regionale begrænsninger kan gælde (nogle kinesiske leverandører blokerer internationale IP-adresser og omvendt) +4. Kontroller, at modellens navn staves korrekt (f.eks. `gpt-4o` ikke `gpt-4o-mini` når mini-modellen er alt, der din plan tillader) + +### Rate Limit (429) + +**Symptom:** HTTP 429 eller "Rate limit exceeded" + +**Ursache:** For mange anmodninger i en kort tidsperiode. + +**Løsning:** +1. Redskær `batchConcurrency` til `1` eller `2` +2. Vænt et par minutter før du prøver igen +3. Kontroller din leverandørers dokumentation om rate limit for dit planlaget +4. Aktiver `enableStableApiCall` for automatisk gennemprøvning med backoff +5. Overvej at skifte til en leverandør med højere limiter (DeepSeek, Ollama) + +### Model Not Found + +**Symptom:** "Model not found" eller HTTP 404 + +**Ursache:** Modellens navn eksisterer ikke hos den valgte leverandør. + +**Løsning:** +1. Klik på **"Få modellliste"** for at se alle tilgængelige modeller for din udbyder +2. Nogle modellnamner ændres med tiden -- kontroller den aktuelle navn i udbyders dokumentation +3. For Ollama: køre `ollama list` for at se de hentede modeller; kun de nedladdede modeller er tilgængelige + +### Ingen links / Ingen koncepter genereres + +**Symptom:** Kommandoen kører men giver ingen udgang + +**Ursache:** LLM returnerede en tom eller uoplysningelig svar. + +**Løsning:** +1. Kontroller diagnostikpanelen for den faktiske LLM-svar +2. Prøv en mere kapabel modell (nogle små modeller har svært med struktureret udgang) +3. Sikre dig, at bemærkelsen har tilstrekkelig indhold (>50 ord) +4. Gennemgå din egne prompt for konflikterende instruktioner +5. Deaktiver synonymsuppressionen midlertidigt for at se, om den filtrerer for aggressivt + +### Doubao Endpoint ID mangler + +**Symptom:** Fejl ved brug af ByteDance Doubao-udbyder + +**Ursache:** Doubao kræver en Ark endpoint ID (format: `ep-xxxxxxxx-xxxx-xxxx`) i stedet for en modellnavn. + +**Løsning:** Erstat den standardiske placeholder-modellen med din egentlige endpoint-ID fra Volcengine-konsollen. + +## Konfiguration + +| Diagnostisk indstilling | Standort | Formål | +|--------------------|----------|---------| +| **Prøv forbindelse** | Indstillinger --> Provider-afsnit | Kontroller tilgangskoden API og forbindelsen | +| **Få modellliste** | Indstillinger --> Provider-afsnit | Kontroller hvilke modeller der er tilgængelige | +| `enableStableApiCall` | Indstillinger --> Avanceret | Aktiver gennemprøvning med backoff | +| `batchConcurrency` | Indstillinger --> Batch | Styr parallellitet for at undgå ratebegrænsninger | + +## Hvordan rapportere problemer + +Hvis dit problem ikke er beskrevet ovenfor: + +1. Åbne **Indstillinger --> Notemd --> Diagnostik** +2. Kopiere den fulde diagnostikudgangen +3. Åbne en GitHub Issue på [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +4. Include: Obsidian version, Notemd version, provider, model, diagnostics output, og trin til at reproducere +5. Redigér din API key fra alle delte logfiler + +--- + +## Næste trin + +- [LLM Providers](/docs/providers/overview) -- Full reference til providerindstillinger +- [Batch Processing](/docs/advanced/batch-processing) -- Konkurrens og gennemprøvingsindstillinger for store operationer +- [Custom Prompts](/docs/advanced/custom-prompts) -- Rettigøre uforventet LLM behavior ved at justere prompts diff --git a/website/i18n/da/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/da/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..07616a51 --- /dev/null +++ b/website/i18n/da/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "Ofte stillede spørgsmål" +description: "Vanlige spørgsmål om installation, funktioner og brug af Notemd" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# Ofte stillede spørgsmål + +<TLDR> +**Snelle svar på de mest almindelige Notemd spørgsmål.** Dette omfatter installation (5 minutters indstilling), støtte for 30+ LLM udbydere, lokale/cloud-modelvalg, en-klik-virksomheder, multilingvælt UI (21 sprog), automatisering af wiki-linking, integration med forskning, PDF læservirksomheder, diagramgenerering og licensiering under open source. Alle funktioner virker offline med Ollama. +</TLDR> + +--- + +## Installation og indstilling + +### Hvordan installerer jeg Notemd i Obsidian? + +Åbne Obsidian **Indstillinger → Community Plugins → Gennemse** → søg efter **"Notemd"** → **Installér** → **Aktiver**. + +**Krav:** +- Obsidian 0.15.0+ +- Støttet på desktop (Windows, macOS, Linux) og mobil (iOS, Android) + +**Manuel installation:** +1. Download `main.js`, `styles.css`, `manifest.json` fra [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) +2. Placér dem i `<your-vault>/.obsidian/plugins/notemd/` +3. Lad om Obsidian og aktiver pluginen + +**Statistikker:** 4k+ downloads, 44 udgivelser, licenseret under MIT. + +--- + +## LLM Konfiguration + +### Hvilke LLM udbydere understøttes af Notemd? + +Notemd understøtter **30+ udbydere**: + +**Cloud-udbydere:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonnet, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**Fokuseret på Kina:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**Lokal/selv-hostet:** +- Ollama +- LM Studio +- Alle OpenAI-kompatible endpointe + +**Gatewaye:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models, Fireworks, LiteLLM, Nebius, Cerebras +- Hugging Face, Vercel AI Gateway, Requesty + +### Kan Notemd virke med lokale LLMs? + +**Ja, fuldt støttet.** Notemd virker med: +- **Ollama** (indigene integration) +- **LM Studio** (gennem OpenAI-kompatibelt endpoint) +- **vLLM, LocalAI, text-generation-webui** (gennem OpenAI-kompatibelt modus) + +Alle opgaver virker med lokale modeller: forbindelse, konceptgenerering, oversætning, forskning og diagramgenerering. + +**Eksempel på blanding:** +- Ollama (lokalt) til forbindelse → hurtigt, privat, uden kost +- OpenAI til forskning → høj kvalitet, integration med websearch +- Gemini til oversætning → multimodal støtte + +### Hvordan konfigurerer jeg forskellige modeller for forskellige opgaver? + +I **Notemd Indstillinger** har hver opgave uafhængige valgmuligheder for leverandør/modell: + +| Opgave | Eksempel på konfiguration | +|------|----------------------| +| **Forbindelse** | DeepSeek (snabb, billig) | +| **Konceptgenerering** | Claude Opus (høj kvalitet) | +| **Forskning** | Perplexity eller GPT-4o (web-baseret) | +| **Oversættelse** | Gemini Flash (multimodal) | +| **Diagramgenerering** | Ollama (lokalt, privat) | + +Dette optimering per opgave balancerer hastighed, kost og kvalitet. + +--- + +## Kernfunktioner + +### Hvad skiller Notemd sig fra ChatGPT ved boglese? + +| Dimensjon | ChatGPT | Notemd | +|-----------|---------|--------| +| **Utdragssted** | Chathistorik (efemærsk) | Obsidian vault (pERSISTENTE filer) | +| **Resultatsformat** | Tekstsvare | Wiki-linker, konceptnoter, diagrammer, oversætninger | +| **Langsigtig værdi** | Forsvinder efter session | Opbygges til en knowledge base | +| **Genbrugbarhed** | Måske skal man udføre opspørgsel igen | Filene bliver, linken forbliver, de udvikler sig | + +**Brug ChatGPT til:** Snelle Q&A, enkelt forklaringer +**Brug Notemd til:** At bygge en persistent, struktureret knowledge base over uger/måneder + +### Hvad gør Notemd for at tilføje wiki-linker til noter? + +**Process:** +1. Du kører "Process file (add links)" på en note +2. Notemd sender teksten til din konfigurerede LLM +3. Den LLM identifierer vigtige koncepter i konteksten +4. Notemd indsætter `[[wiki-links]]` ved hver optrædelse af et koncept +5. Valgfrit kan det automatisk skabe konceptnoter i en mapp, du angiver + +**Egenskaber:** +- Synonymsuppression (undgår duplikater som "transformer" vs "transformers") +- Backlinks fra konceptnoter til kilden +- Linkintegritet ved omnavn/affyring +- Ren udtrækningstilstand (udtræk koncepte uden at ændre det oprindelige) + +### Hva er Notemd en-klik-virksomhedsfluen? + +**En-klik-virksomhedsfluer** kobler flere handlinger til en **enkelt sidebarnsknapp**. + +**Standardvirksomhedsflue:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**Resultat:** En klik kører: +1. Først tilføj wiki-linker til den aktuelle note +2. Generer konceptnoter for nye termer +3. Undersøg og tilføj baggrundsmateriale +4. Komprimer til en Mermaid diagram + +**Egen arbejdsmetoder:** Definer dine egne i Indstillinger med DSL-formatet. Hver arbejdsmethode bliver en brugbar sidebarn-knapp. + +### Hvad er forskellen mellem Notemd og Copilot eller Smart Connections? + +Disse plugin-løsninger løser forskellige problemer: + +- **Copilot** — Konversation først. Du chatterer med en AI om dine notater. AI-svarene bliver i chatten; de ændrer ikke din vault. +- **Smart Connections** — Discovery først. Den finder semantisk similar notater med hjælp af embeddings. Den skaber ikke og ændrer ikke indhold. +- **Notemd** — Skrivning først. AI bearbejder dine notater og skriver strukturerede resultater (wiki-linker, konceptnotater, forskning, diagrammer, oversættelser) direkte i din vault som permanente filer. + +| Vad du behøver | Anbefales plugin | +|----------------|-------------------| +| Chatter med AI om notater | Copilot | +| Find similar/related notater | Smart Connections | +| Auto-insert wiki-linker og bygge en knowledge graph | **Notemd** | +| Generere konceptnotater med backlinks | **Notemd** | +| Skabe diagrammer fra notatindhold | **Notemd** | +| Undersøg en emne og tilføj resumer | **Notemd** | + +Alle tre kan bruges sammen — de kompletterer hverandre fremfor at konkurrere. + +--- + +## Undersøgelse & Oversætning + +### Hvilke søgeudstyr virker med Notemd-undersøgelse? + +| Tjeneste | Krav på API-nyckel | Kvalitet | Noter | +|---------|-----------------|---------|-------| +| **Tavily** | Ja | Høj | Anbefales, AI-optimeret søgning | +| **DuckDuckGo** | Nej | Ekspementelt | Ingen indstilling, lavere kvalitet | + +**Hvordan "Research & summarize" virker:** +1. Du vælger en emne eller kører det på den aktuelle note +2. Notemd forespørger søge-tjenesten +3. Resultater → LLM sammanfattelse +4. Sammanfattelsen tilføjes til din note med kilder + +**Resultat:** En permanent forskningsspor i din vault, ikke i browser-tabler. + +### Støder Notemd kinesisk eller andre sprog? + +**UI sprog:** 21+ støttede +- Engelsk, 中文 (简体), 中文 (繁體), 日本語, 한국어 +- Arabisk, tysk, fransk, spansk, russisk, portugisisk, italiensk +- Hindi, bengalsk, thajsk, vietnamesisk, turkisk, polsk, tjekisk og flere + +**Sprog for opgavudgang:** Uafhængig konfiguration +- UI på kinesisk + udgang på engelsk: ✅ +- UI på engelsk + udgang på kinesisk: ✅ + +**Brugsscenario:** Bilingual forskere kan holde UI i deres modersmål mens de genererer engelske noter til publikation. + +--- + +## PDF og akademiske arbejdsmetoder + +### Kan jeg bruge Notemd til at læse papirer/PDF? + +**Ja.** Arbejdsmetode: +1. **Konverter til Markdown** med [MinerU](https://github.com/opendatalab/MinerU) (anbefales for akademiske papirer) +2. Åbne Markdown-filen i Obsidian +3. Kør Notemd-opgaver: + - **Føj wiki-link** til vigtige termer + - **Generer konceptnoter** for ukendt terminologi + - **Udtræk originale tekst** med egne spørgsmål (f.eks. "Hvad er begrænsningerne?") + - **Undersøg baggrunden** til citerede metoder/dataset + - **Oversæt** svære dele + - **Komprimer til Mermaid**-diagram for strukturelt forståelse + +**Version 1.9.1+:** Udtrækning af kapitelstruktur med TOC-støtte + +**Resultat:** Din papirlæsning bliver en struktureret, linkbar kunstefakt i din vault. + +--- + +## Diagrammer og visualisering + +### Hvilke graf/diagramtyper kan Notemd generere? + +| Typ | Støtte | Funktioner | +|------|---------|----------| +| **Mermaid** | Komplet | Flødeplan, sekvens, klasse, tilstand, ER, Gantt, automatisk syntaxreparering, batchvalidering | +| **JSON Canvas** | Komplet | Obsidian-eigene canvas-layouts | +| **Vega-Lite** | Komplet | Datagrafikker, tidsserier, stave, scatter, anpasselig | +| **HTML** | Fallback | For udstøttede diagramtyper | +| **Redigerbar HTML/SVG** | Eksplicit mål | Selvstændig inline SVG med semantiske Draw.io-stil annoteringer | +| **Draw.io / Drawnix artefakter** | Eksportgrænse | Deterministisk XML/JSON fra `SemanticFigureModel`; ingen afhængighed fra editorens kørbartid | + +**Mermaid auto-fix:** Dybdegående fejlretning i debug-modusen: +- Brudne pilarer (`-->`, `-.->`, `==>`) +- Ugültige labeler og kommentarer +- Syntaxfejl i undergrupper +- Formnotation (`[`, `(`, `{`, `((`) +- Pipetekster i labeler +- Notattilæg + +**Arbejdsmetode:** +1. Kør "Summarize as Mermaid diagram" på en notat +2. Vedføring i modalvindu +3. Eksport til SVG eller PNG +4. Eller gem som `.mmd`-fil i vault + +--- + +## Open Source & Community + +### Er Notemd gratis og open source? + +**Ja.** +- **Licens:** MIT (permissiv, kommersielt brug tilladt) +- **Kildekod:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **Ingen betalte planer, ingen cloud-lock-in, ingen telemetry** +- **Community:** 234+ GitHub-stjerner, aktiv Discord + +**Du ejer:** +- Dine data (bliver i din vault) +- Dine arbejdsmetoder (anpass præmper, modeller, kedjer) +- Din privatlivspolitik (lokalt LLM-støtte) + +**Bidrag:** Pull requests er velkomne. Se [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +## Felsøgning + +### Mine LLM-kaller fejler. Hvad skal jeg kontrollere? + +1. **Er API-nykkelen gyldig?** Kontroller Settings → Provider Configuration +2. **Er modellnavnet korrekt?** Brug "获取模型列表" (Get Model List)-knappen i indstillinger +3. **Er det muligt at komme til netværket?** Nogle udbydere kræver VPN +4. **Hastighedsbegrensninger?** Kig på udbyders dashboard +5. **Diagnostik:** Kør "Connection Test" i indstillingerne for detaljerede fejllogger + +### Notemd er langsom. Hvad kan jeg gøre for at accelerere det? + +1. **Brug hurtigere modeller:** DeepSeek, Gemini Flash, GPT-4o-mini +2. **Redskærmlægg størrelsen:** Indstillinger → Smart Chunking → sænks ordantal +3. **Parallel processing:** Indstillinger → Batch Processing → øger samtidighed +4. **Lokale modeller:** Ollama for opgaver, der ikke kræver websearch + +### Kan Notemd arbejde 100% offline? + +**Ja, med Ollama.** Ingen API-klæde, ingen internet, ingen data leaves your machine: + +1. Installér [Ollama](https://ollama.com) og kør `ollama serve` +2. I Notemd indstillinger, vælg **Ollama** som din udbyder +3. Hent en modell: `ollama pull llama3` (eller qwen2.5, gemma2, osv.) +4. Alle funktioner virker: wiki-links, concept notes, oversætning, diagrammer + +**DuckDuckGo-forskning** virker også uden API-klæde (eksperimentel kvalitet). + +Med cloududbydere (OpenAI, Anthropic, Google, DeepSeek, osv.) sendes din notes indhold som API-indgang. Kig på hver udbyders privatlivspolitik for detaljer om datahantering. + +### Er mine data sendt til clouden? + +**Det afhænger af din udbyder:** + +| Udbydertyp | Sendes data til clouden? | Opmerkninger | +|--------------|---------------------|-------| +| **Ollama (lokalt)** | Nej | Alt bliver på din maskine | +| **LMStudio (lokalt)** | Nej | Sama som Ollama | +| **DeepSeek, OpenAI, osv.** | Ja | Opmerkningsteksten sendes som API indgang for bearbejdelse | +| **OpenRouter, AIHubMix** | Ja | Gateway, der routerer til cloududbydere | + +Notemd samler selv **ingen telemetry, ingen analytics, ingen brugerdata**. Pluginet er fuldstændigt open source (MIT). Den eneste data, der leaves din maskine, er det, du eksplisit sender til din konfigurerede LLM udbyder. + +### Hvilket Obsidian AI-plugin er bedst for forskning? + +Det afhænger af din forskningsworkflow: + +| Behov | Plugin | Hvorfor | +|------|--------|-----| +| Find relaterede papirer/noter | Smart Connections | Discovery af semantisk similaritet | +| Chat om dine kilder | Copilot | Konversation med vault-context | +| Auto-link koncepte + generere noter | **Notemd** | AI identificerer koncepte, indsætter links, skaber noter | +| Web-research + sammanfattning til noter | **Notemd** | Tavily/DuckDuckGo søg → LLM oversigt → tilføjet til noten | +| Generer diagrammer fra forskning | **Notemd** | Mermaid/Canvas/Vega-Lite fra notens indhold | + +**Anbefales kombination:** Smart Connections (udvikling) + Notemd (strukturering) + Copilot (diskussion). + +--- + +## Få hjælp + +- **Dokumentation:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **GitHub Issues:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **Sponsor:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/da/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/da/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..ebff475b --- /dev/null +++ b/website/i18n/da/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "Konceptnoter" +description: "Generer og håndtere konceptnoter – uafhængige noter for nøglekoncepter, der er extraheret fra din vault" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# Konceptnoter + +<TLDR> +**Notemd extraherer nøglekoncepter fra dine noter og skaber uafhængige konceptnote-filer.** LLM identificerer kernetermer, genererer en `.md` fil per koncept i en konfigurerbar mapp, og tilvalgfrit tilføjer backlinks til den kilde-note. Støder synonymsuppression, valg af modell for hver opgave, sanitering af filnavne og en 4-trinns deduplikationsmotor. Dette er en del af [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Översikt + +Konceptnoter er byggestenene i en sammenhængende kunstskab. Når du bearbejder en note, Notemd: + +1. **Sendes din tekst til en LLM** med en strukturret extraktionsopfordring +2. **Parseres `CONCEPT:` linjer** fra den LLM svar +3. **Skabes en `.md` fil per koncept** i en angivet mapp +4. **Tilføjes backlinks** til den kilde-note (hvis aktiveret) + +## Hvordan det virker + +### Extraktionspipeline + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### Extraktionsopfordringen + +LLM modtager en opfordring, der instruerer det til at: + +- Extrahere **nønder eller nønphraser** som er centrale for dokumentets emne +- **Prioritere specifikke termine** – "Dielectric Relaxation" fremfor "Relaxation" +- **Normalisere til singular** – "models" bliver "model" +- **Supprimer underkoncepter** – hvis "dielectric relaxation" optræder, extraheres ikke også "relaxation" +- **Skriv forbi** referencer/bibliografisekvenser, almindelige substantiver, selskabs-/produktnavne +- Udfør en koncept per linje som `CONCEPT: Term Name` + +**Undertrykning af synonyme** (valgfrit): Førstilles "Undgå at extrahere synonyme, semantisk similare kernkoncepte eller nøgleord så ofte som muligt" i opmærksomheden. + +**Fokuseret læringdomæne** (valgfrit): Førstilles `Relevant Fields: [domain]` for at begrænse extraktionen til en disciplin. + +**Sprogøverklægelse** (valgfrit): Tilføjes "Udføringskonceptene MÅSTE være på [sprog]." + +### Deling i chunker + +Lange bemærkninger deles ved `settings.chunkWordCount`. Hver chunk sendes separat. Koncept fra alle chunker samles i en `Set` — duplikater mellem chunker fjernes stille. LLM-fejl i enkelte chunker afbruder ikke operationen. + +## Skabning af konceptbemærkninger + +### Regler for filnavne + +| Regel | Betegnelse | +|------|----------| +| Strikker/underskriver | Erstattes med mellemrum | +| Sondertegn | Fjernet: tilbaksstræk, fremstræk, kolon, stjjerne, spørgsmålstecken, klammer, pipe, hash, caret, parenteser | +| Mellemrum | Kollapset og trimmet | +| Maksimal lengde | 100 tegn (afkortet + tilpaset) | +| Tom/all-punktresultat | Skjules stille | + +Eksempel: `A-B: Key*Term` bliver `A B KeyTerm.md` + +### Mallere + +**Komplet mall** (bakligner aktiveret, minimal mall uaktiveret): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**Minimal mall** (når `extractConceptsMinimalTemplate: true`): + +```markdown +# Concept Name +``` + +### Opdatering af eksisterende noter + +Når en konceptfil allerede eksisterer: + +1. Hvis bakligner er aktiveret og kildenoten ikke allerede er oplyst, tilføjes en baklink +2. Hvis en `## Linked From`-seksjon eksisterer, indsættes den før næste `##`-overskrift +3. Hvis der ikke findes `## Linked From`, tilføjes seksjonen i slutningen +4. Duplikerte bakligner kontrolleres og skjules + +### Konfiguration + +| Indstilling | Standard | Effekt | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | Master-knapp. Uaktiveret = ingen noter erstattet | +| `conceptNoteFolder` | `''` (uaktiveret) | Mappvej for konceptnoter | +| `extractConceptsMinimalTemplate` | `true` | Noter kun med titel (ingen Linked From) | +| `extractConceptsAddBacklink` | `false` | Føj tilbake backlinks under uafhængig extraktion | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | Per-opgave LLM for konceptextraktion | +| `extractConceptsLanguage` | `'en'` | Utdragsspråk for konceptnavne | +| `replaceSynonymsDuringConceptExtraction` | `false` | Aktiver synonymsuppression i prompten | +| `generateConceptLogFile` | `false` | Skriv en `.log`-liste over skabte koncepter | + +**Vigtigt:** Indstillingerne `extractConceptsAddBacklink` og `extractConceptsMinimalTemplate` påvirker kun **den dedikerede extraktionskommandoen**. Kommandot "Føj links" skaber alltid noter med fuld template og backlinks. + +## Deduplikering + +Dedup-kommandot (`Notemd: Check & remove duplicate concept notes`) udfører en 5-trinns analyse: + +### Trin 1: Præcist filnavnsmatch + +Jegnskabsløs sammenligning af basnamn i den konfigurerede omfang. + +### Trin 2: Detektering af pluralform + +Fjerner suffixer: `-ies` til `-y`, `-es` fjernet, `-s` fjernet. Sammenligner singularformen med filerne i omfanget. Behandler ikke uregelmæssige pluraler (children/child). + +### Trin 3: Normalisering af symboler + +Gælder for: `toLowerCase()`, ersat streger/underskærmer med mellemrum, fjernet ikke-alfanumeriske tegn, samlede sammen tomme rum. De, der normaliseres på samme måde, mærkes. + +### Trin 4: Enkelordig indholdning + +Enkelordige konceptnoter kontrolleres mod basnamner til flere ord. Køres ikke, når omfanget er `concept_folder_only`. + +### Trin 5: Bekræftelse og slettning + +Alle kandidater vises i en bekræftelsesmodal. Godkendte elementer flyttes til systemets sopkasse. Operationen kan annulleres mellem hver slettning. + +### Omfangsmøder + +| Modus | Jævnes mod | +|------|-------------------| +| `vault` (standard) | Alle vault `.md`-filer med udskillelse af konceptmappen | +| `concept_folder_only` | Ande konceptnoter i mappen | +| `include` | Filer i specifikke oplystede mapper | +| `exclude` | Alle vault-filer med udskillelse af konceptmappen + oplystede mapper | + +## Brug + +### Udtak af koncepter (Standalone) + +1. Åbne en note +2. Kør **"Notemd: Udtak af koncepter"** fra kommandopalletten +3. Konceptnoter skrives i den konfigurerede mappe + +### Udtage og generere indhold + +**"Notemd: Udtage koncepter og generere titler"** — udtager koncepter, og derefter kører "Generere fra titel" på alle noter i konceptmappen. Dette genererer indhold for **alle** konceptnoter i mappen, ikke kun de nyligt skabte. + +### Skabe wiki-link fra valg + +1. Highlightere tekst i editoren +2. Kør **"Notemd: Skabe wiki-link fra valg"** +3. Teksten bliver indkapslet i `[[...]]` og en konceptnote skabes + +## Tips + +- **Stil first konceptmappen** — uden den skabes der ingen noter. En varningsmodal vises, hvis den ikke er stillet. +- **Brug modeller til hver opgave** — konceptudtagelse fungerer godt med billigere modeller (GPT-4o-mini, DeepSeek). Spare dyre modeller for forskning/oversættelse. +- **Aktiver synonymsuppression** for tekniske domæner, hvor flere termer refererer til samme koncept. +- **Fjerne duplikater regelmæssigt** — kør dedup-kommandoen efter batchbehandling for at få tag på næstintil duplikater. +- **Logfilen overskrives** hver gang den køres, ikke tilføjes. Kopier den, hvis du behøver tidligere resultater. + +--- + +## Næste trin + +- [Wiki-Links](./wiki-links) — Hvordan koncepter bliver koblet inline +- [Diagrams](./diagrams) — Visualisér konceptrelationer +- [Workflows](./workflows) — Koble udtagelse til andre opgaver diff --git a/website/i18n/da/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/da/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..8d7cce13 --- /dev/null +++ b/website/i18n/da/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "Diagrammer" +description: "Generer Mermaid, JSON Canvas, Vega-Lite, HTML, redigerbare figurartefakter og fremtidige begrænsete circuitikz-diagrammer fra dine notater med hjælp af en specifikationsførst architecture" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Diagrammer + +<TLDR> +**Notemd genererer diagrammer fra dine notater gennem en spec-first pipeline.** LLM producerer en renderer-agnostic `DiagramSpec` JSON, hvilket derefter oversettes til Mermaid, JSON Canvas, Vega-Lite, HTML, eller editabler HTML/SVG-udgange af hjælp af speciale adaptere. Støder 8 type intentioner, automatiske fallback-kedjer, live-preview med eksport til SVG/PNG, semantisk verifikation og generering forstærket med lokal kunnskab. +</TLDR> + +Dette er en del af [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). + +## Arkitektur: Spec-First Pipeline + +Notemd beder aldrig LLM om at generere Mermaid/Vega/Canvas-syntaks direkte. I stedet: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**Hvorfor specifikation først?** LLM-filer genererer ofte ugyldig renderer-syntaks (særligt Mermaid). En struktureret `DiagramSpec` kan valideres før rendering, og samme specifikation kan bruges af flere renderere som fallback. + +## Støttede diagramtyper + +| Intent | Hovedrenderer | Fallback-mekanismer | Brugsscenario | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | Hierarkisk emneudeling | +| `flowchart` | Mermaid | HTML | Processfloder, beslutningstræer | +| `sequence` | Mermaid | HTML | Klient-server-interaktioner, protokoller | +| `classDiagram` | Mermaid | HTML | OOP-klasserelationer | +| `erDiagram` | Mermaid | HTML | Database-schemer, entitetsrelasjoner | +| `stateDiagram` | Mermaid | HTML | Stammaskiner, livscykelmodeller | +| `canvasMap` | JSON Canvas | Mermaid → HTML | Konseptkort, kunnskapsgrupper | +| `dataChart` | Vega-Lite | Mermaid → HTML | Stikker, linjer, arealer, sprølle, pizza, tabeller | + +## Intent Detection + +Notemd inferer den beste diagramtypen fra din beskeds innhold ved bruk av nøkkelordscoring: + +| Intent | Triggers | Confidence | +|--------|----------|------------| +| `dataChart` | Tabeller, numeriske celler, metrik/trend-nøkkelord, prosenttilstander | 0.88 | +| `sequence` | Anmodning/svar-vokabular (4+ matcher) eller `->`/`=>`-marker | 0.82 | +| `erDiagram` | Primærknyt, fremmed knyt, entitet, schema (2+ matcher) | 0.80 | +| `stateDiagram` | Sted, overgang, i venting, i gang, feil (3+ matcher) | 0.76 | +| `flowchart` | Nummererte trinn (2+) eller if/then/else/workflow-vokabular | 0.74 | +| `canvasMap` | Konceptkort, kunnskapsgraph, rumlig, kluster | 0.72 | +| `mindmap` | Standardtilbakefall | 0.55 | + +Øverstille med **Favoritdiagramtyp**-innstillingen, sidemenuvalgretet eller en eksplisitt kommandovalgmulighet. + +## Vælg renderingsmål + +Den eksperimentelle spec-first-pipeline-en har nå to uavhengige kontroller: + +| Kontroll | Indstilling | Effekt | +|---------|---------|--------| +| Favoritdiagramtyp | `preferredDiagramIntent` | Styrer den semantiske formen for den genererte `DiagramSpec` | +| Favoritrenderingsmål | `preferredDiagramRenderTarget` | Vælger artefaktrendereren for **Generer diagram** og **Vis diagram** | + +Still **Favoritrenderingsmål** på **Auto** som standard for planeraren, eller velg eksplisitt Mermaid, JSON Canvas, Vega-Lite, HTML eller Editable HTML/SVG. Øverstillingen gäller kun for artefakt- og visningskommandoen. Standardkommandot **Sammanfatt som Mermaid diagram** forblir bundet til Mermaid-kompatible utdata så at eksisterende Markdown-arbeidsfluer ikke stillestillt endrer format. + +Dette skilnaden er viktig fordi en `flowchart`-intent kan nå renderes som Mermaid for Markdown-notater, HTML som robust tilbakefall, eller Editable HTML/SVG for videre redigering. Draw.io og Drawnix forblir CLI-artefaktexportere fremfor i-plugin-renderingsmål. + +## Brug + +### Generer et diagram + +1. Åbne en note +2. Kør **"Notemd: Generer diagram"** fra kommandovalgmuligheten +3. Notemd oppdager intenten, genererer specifikasjonen, renderer og gemmer artefaktet + +**Utdatafiler etter mål:** + +| Mål | Ekstensie | Mønster for filnavn | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| Redigerbar HTML/SVG | `.html` | `{note}_diagram.html` | + +### Vis prøveversion af diagrammet + +1. Kør **"Notemd: Vis prøveversion af diagrammet"** +2. En modal opnes med det renderede diagram +3. Eksportér som SVG eller PNG med hjælp af knapperne på værktøjslinjen + +**Automatisk åbning af prøveversion** er tilgængeligt i indstillingerne — efter generering starter prøveversionsmodalen automatisk. + +Prøveversionsmodalen har også en panel for diagnostic af artefakter. Renderere og smoke-checks kan tilføje `RenderArtifact.diagnostics`; modalen viser en sammanfattelse af diagnosticer med antal fejl/varninger/informationer, derefter alvorlighed, typ for diagnostic, melding og reparationstilbud ved siden af prøveversionen. Samme sammanfattelse vises i prøveversionshistorikken, så man kan sammenlægge gennemførte circuitikz smoke-prøver uden at åbne hver enkelt post. For artefakter med kildetekst men som ikke kan renderes inline eller gennem HTML iframe-paden, falder modalen nu tilbage til en prøveversion kun med kildetekst istedet for at tvinge en tom iframe. Dette giver circuitikz kompilérings-/renderings-smoke-prøver, SVG tekst-token-checker, PNG-blank-skrænshot-checker og fremtidige overlappesrapporter en synlig UI ydegrind uden at gøre TikZJax eller LaTeX til en hardt plugin-runtime-afhængighed eller simuleere, at kildeteksten er en verificeret visuel rendering. + +### LegACY Mermaid-modus + +Når `enableExperimentalDiagramPipeline` er slået af, sender Notemd en direkte Mermaid-udfordring til LLM. Dette omgår hele specifikationspipelineen. Hvis den eksperimentelle pipeline fejler, falder systemet tilbake til denne modus. + +## Rendering-backender + +### Mermaid + +6 adaptere (mindmap, flowchart, sequence, ER, class, state) oversætter `DiagramSpec` til Mermaid-syntax. Efter generering validerer `mermaid.parse()` udgangsteksten. Hvis valideringen fejler: + +1. **LLM gennemfør igen** — en forsøg med Mermaid-fejlmeddelelsen som kontekst +2. **Minimal tilbakefall** — et enkelt Mermaid-diagram baseret på specifikationsnods IDs + +**Legacy Mermaid Fixer** reparerer automatisk vanlige LLM syntaxfejl: normalisering af note-directiver, undslip af pipe-label, omposition af semikoloner, smart quotes, dubbelstrich-pilarer, formmismatch og meget mere. + +### JSON Canvas + +Genererer Obsidian JSON Canvas-format med rumslig layout: +- Nodeer placeres efter dybde (x = dybde × 420) og indeks (y = indeks × 170) +- Bredden bedmes fra labellengden +- Kanter med `fromSide: 'right'`, `toSide: 'left'`, `toEnd: 'arrow'` + +### Vega-Lite + +Skaber komplette Vega-Lite v5 JSON-specifikationer med automatisk kodning: +- **Cartesian charts** (stange/række/område/punkt/spred): x + y-kanaler + farve for flere serier +- **Pie**: theta = y (kvantitativt), farve = x (nominalt) +- **Table**: række = x, tekst = y + kolonne = serie + +Dunkle og lige temaer blandses sammen før kompilering. + +### HTML + +Universel fallback. Selvstændig HTML-dokument med: +- CSP-meta-headerer +- Ligt/dunkelt modus gennem `prefers-color-scheme` +- Localiserede UI-labeler for 20 lokale språk +- Sektioner: hero, struktur (node-træ), relationer, callouts, data-serie-tabeller + +### Redigerbar HTML/SVG + +Eksplicit figur mål for redigerbare eksportarbejdsmønster. Det projicerer `DiagramSpec` ind i et deterministisk `SemanticFigureModel`, og renderer derefter en selvstændig HTML dokument med inline SVG grupper, der indeholder Draw.io-stil annoteringer: + +- `data-drawio-type`, `data-drawio-id` og `data-drawio-role` på semantiske node'er +- `data-drawio-source` og `data-drawio-target` på semantiske kante'er +- stabile node/kante-identer efter normalisering af mellemrum og hantering af kollisioner +- ingen script'er, ingen eksterne fonter og ingen fjernressourcer + +Dette mål er med vilje ikke den standardmæssige planlægningsroute endnu. Det er tilgængeligt som et eksplicit rendermål, mens produktvejen prøver redigeringsbehavior i virkelige værktøjer. + +### Draw.io og Drawnix Eksportgrænser + +Den nuværende implementering holder støtte fra tredjepartsredaktorer ved artefaktgrænsen: + +| Mål | Kontrakt | Kørtidsafhængighed | +|--------|----------|--------------------| +| Draw.io | deterministisk ukomprimeret `mxfile` XML fra `SemanticFigureModel` | ingen i plugin-kørning eller CI | +| Drawnix | minimal `.drawnix` JSON undermengde med brug af `geometry` og `arrow-line` elementer | ingen i plugin-kørning eller CI | + +Kompromissen er medveten: Notemd kan verificere synlige labeler, stabile ID'er og støttet primitivoverskydning uden at embede diagrams.net Desktop, Drawnix, Plait eller browser-eksklusive redaktorstat i pluginen. + +### circuitikz / TikZJax Retning + +Kretsdiagrammer er ikke det samme problem som generelle flødeplaner. Den korrekte syntaxmålet for elektriske kretsler er vanligvis **circuitikz**, renderet i Obsidian gennem pluginer som TikZJax. TikZJax kan lade op pakker som `circuitikz`, `pgfplots`, `tikz-cd` og `chemfig`, hvilket gjør det attraktivt for notater om fysik, kretsler, kemie og matematik. + +Risikoen er, at rå LLM-genereret TikZ er brækkelt: + +- Komplekse kretstopologier kan være elektrisk korrekte, men visuelt uleselige; +- Overlappende værter og etiketter kan gøre en korrekt netlist ubrugbar for studienotater; +- Faldne pakkepreambler, fejlige anker eller ugyldige komponentnavne kan forhindre rendering; +- Feedback fra rendereren er vanligvis på billedniveau, mens LLM genererer tekstniveau geometri. + +Den bedre arkitekturen er at behandle circuitikz som et begrænset diagrammål, ikke som en friform-udfordring: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +Modellen i første klasse bør beskrive kretstopologi og layout separat: + +| Lager | Ansvar | Eksempel | +|-------|----------------|---------| +| Topologi | elektriske noder og komponentforbindelser | `VDD -> RD -> drain(M1)`, `source(M1) -> GND` | +| Layout | gridplacering, orientering, routingbaner | `M1 at (3,2.2)`, indgang venstre, udgang højre | +| Stil | pakke, spenningkonvention, etiketter, anker | `\begin{circuitikz}[american voltages]` | +| Validering | kompilationslog, manglende anker, overlæg/skærmbildsugnskontroller | TikZJax/LaTeX-diagnostik plus visuel gennemgang | + +### Aktuel circuitikz-prototyp + +Notemd inkluderer nu den første begrænsete repository-prototyp for denne retning. Den er medvetent offline og bundet til en template: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +Prototypen tilføjer en separat `CircuitSpec`-grænse og en deterministisk eksporter for sex guldreferensfamilier: + +| Kretsart | Guldreferens | Strømgaranti | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | validerer `VDD -> R_D -> M1.D`, `vin -> M1.G`, `M1.S -> GND` og `M1.D -> vout` før skrivning af LaTeX | +| `cmos-inverter` | `cmos-inverter-v1` | validerer PMOS-over-NMOS-topologi, delte gate-indgang, delte drain-udgang, `VDD -> MP.S` og `MN.S -> GND` før skrivning af LaTeX | +| `cmos-buffer` | `cmos-buffer-v1` | validerer to kaskerede inverterstager, midlertidig node `vmid`, restaureret `vout` og delte VDD/GND-railer før skrivning af LaTeX | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | validerer parallele PMOS/NMOS-pass-enheder mellem `vin` og `vout` med komplementære `phib` / `phi`-styringer før skrivning af LaTeX | +| `cmos-nand2` | `cmos-nand2-v1` | Validerer parallell PMOS pull-up, seriell NMOS pull-down, dobbel indgange `va` / `vb`, og `vout` før skrivning af LaTeX | +| `cmos-nor2` | `cmos-nor2-v1` | Validerer seriell PMOS pull-up, parallell NMOS pull-down, dobbel indgange `va` / `vb`, og `vout` før skrivning af LaTeX | + +Dette er endnu ikke en generel TikZ-generator. Den kompilerer ikke LaTeX, kaller ikke TikZJax, undersøger ikke skærmbilder, eller udfører automatisk image-feedback-reparation. Disse funktionaliteter kommer senere. + +Kommandoen Preview diagram kan åbne gemte circuitikz-kildeartefakter direkte, når filendelsen er `.tex` eller `.tikz` og kilden indeholder `\usepackage{circuitikz}` eller `\begin{circuitikz}`. Dette er en circuitikz-kilde-eksklusiv preview: modalen viser kilden, diagnostik, kopier/søj-kontroller og historie-metadater, men den kompilerer ikke LaTeX eller kaller ikke TikZJax under plugins kørsel. + +Den samme kilde-eksklusive preview-grense omfatter nu gemte Draw.io og Drawnix-artefakter. `.drawio`-filer accepteres, når de ser ud som Draw.io XML (`mxfile` eller `mxGraphModel`), og `.drawnix`-filer accepteres, når de er Drawnix JSON med `type: "drawnix"` og en `elements`-array. Pluginen embedder stadig ikke diagrams.net eller Drawnix-whiteboard-værdigheder; disse previews viser kilden, diagnostik og artefaktshistorie uden at kræve en in-plugin-visuel editor. + +For topologibeholderende reparation skal den forreparations-specifikation sendes som referens før en reparerede kandidat accepteres: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +Reparationsværnet bruger `createCircuitTopologySignature` og `assertCircuitTopologyUnchanged` til at sammenligne `circuitKind`, `goldenReferenceId`, netter, komponentids/typer/terminaler og uorienterede forbindelsesendpunkter før udskrift. Etiketter, titeltekst, layout-hinters, forbindelsesordning og forbindelsesetiketter ignoreres med vilje. En kandidat, der tilføjer noget kort eller omformer en terminal, mistager med `Circuit topology drift detected` før `.tex`-filen skrives. + +Den CLI kan nu parse en eksisterende LaTeX/TikZJax-kompilationslog uden at køre en kompilator: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +Dette diagnostiske felt rapporterer manglende pakker som `circuitikz.sty`, ukendte TikZ/circuitikz-klæder, TikZ-syntaxfejl som manglende semikoler, ukontrollerede argumenter fra ubalancerede parenteser eller uafsluttede etiketter, udefinerede kontrolsekvenser, generelle LaTeX-fejl, nødslutninger og råd om overfuld `\hbox`. Det forbliver log-baseret: lokal LaTeX/TikZJax-udvikling og skærmbildkvalitetsgader er stadig separate fremtidige arbejde. + +For vedligeholders smoke-checks kan den samme CLI valgfrit køre en eksplisitt konfigureret renderer uden shell-kommando-parsing: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Kompilationskøreren bruger `shell: false`, ekspanderer `{tex}`, `{outputDir}` og `{jobName}`-placeholder til argument-array-værdier, læser den genererede `{jobName}.log` og returnerer `compileExecution` plus `compileDiagnostics` i CLI JSON-udskrift. `--compile-executable` er kun renderer-binaryen eller wrapper-paden; renderer-flag er indlagt i gennemgående `--compile-arg`-værdier. Tomme exekutabler mistager som `compile-executable-invalid`, manglende binaries mistager som `compile-executable-not-found`, og exekutabelstrenger i shell-kommando-format modtager råd til at splitte argumenter så Windows, Linux og macOS følger samme direkte-udviklingskontrakt. Med `--expected-artifact` rapporteres også `compileExecution.renderSmoke` og mistages CLI, hvis rendereren ikke skaber et ikke-tomt artefakt. Den embedder stadig ikke LaTeX, gør ikke af TikZJax en plugin-kørselsafhængighed, eller udfører skærmbildnivås visuel reparation. + +Hvis det forventede artefakt er `.svg` går smoke-checken en lag dybere: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +SVG smoke verificerer `<svg>`-rotten, positive dimensoner eller `viewBox`, minst én synlig tegningselement efter at have udelagt skjulte/transparente elementer, alle forespurgte teksttokener, tydelige elementer udenfor `viewBox`, tydelige overlappende positionerede `<text>` / `<tspan>`-etiketter, og tydelige tekstetiketter, der overlapper tegningselementer gennem `render-svg-label-overlap`. Forventet tekst søges i synlig tekst og dekoderes tilgænglighedsmetadater som `aria-label`, `<title>` og `<desc>`, så rendererer, der bevarer semantiske etiketter udenfor synlige `<text>`, kan stadig opfylde tekst-token smoke uden at kræve OCR. Geometri-passen er nu transform-beredt geometri for algemene gruppe- og element `transform`-attributter, så oversatte, skalerte, roterte, skevte eller matrix-transformerede SVG-bokser kontrolleres efter transform-komposition. Den omfatter præcise bøgergrænser for A/a-bøgers ekstrema, præcise Bezier-kurvegrænser for C/S/Q/T-kurveekstrema, SVG-grænser med bevaring af strejkbredde og kontroller for etiketteroverlappelse, `polyline` / `polygon`-tegningsgeometri, samt løsning af path-eneste glyph-placering fra `<use href="#...">`-referencer, så etiketter, der konverteres til brugbare glyph-pader, kan stadig mistage bounded-canvas-kontroller, når placerede glyph-geometrien udgår for `viewBox`. Mere positionerede `tspan`-etiketter under en `<text>`-forælder sammenlignes som separate etiketterbokser, hvilket fånger LaTeX-stil SVG-udskrift, der andetvis ville samle forskellige etiketter til én tekstnode. Positionerede SVG `text` og `tspan`-bokser respekterer `text-anchor`-værdier `start`, `middle` og `end`, så centrerede og højre-alignerte etiketter kan triggere tekst/text- og etiketter-vs-tegningsoverlappelse-diagnostik, uden at kræve browsergraden tekstlayout. Definition-eneste glyph-pader indenfor `<defs>` regnes ikke som synlige tegningselementer, men deres egne definition-lokalte `transform`-attributter applies før `<use>`-placering, så skalerte eller spejlret glyph-definitioner underskales ikke. Etiketter-vs-tegningskontrollen bruger en liten toleranse for tegningsboks og den deklarerede `stroke-width`, så tynne værter, tynde værter og polygonale komponentoutliner kan alle betraktes som potentielle etiketterlæsbarhedsfejl, når deres synlige strejk nåer en etikette. Path-eneste glyph-etiketter, løst fra `<use href="#...">`, sammenlignes også med tegningsboksser og mistager med `render-svg-path-glyph-overlap`, hvis brugbare glyph-geometri overlapper værter eller komponenter. Hvis en renderer konverterer etiketter til brugbare path-glyph i stedet for søgbare `<text>` og ikke bevarer tilgænglighedsmetadater, registreres `pathOnlyGlyphUseCount` i smoke-rapporten og mistages den forespurgte teksttoken gennem `render-svg-text-path-only`, istedet for at simule, at etiketten er enkelt afværende. Andere fejl rapporteres gennem `render-svg-invalid`, `render-svg-dimension-missing`, `render-svg-no-visible-elements`, `render-svg-text-missing`, `render-svg-out-of-bounds`, `render-svg-text-overlap`, `render-svg-label-overlap` eller `render-svg-path-glyph-overlap`. Text-token- og overlappelsekontroller skal kun betraktes som strukturel smoke for rendererer, der bevarer etiketter som søgbare SVG-tekst eller tilgænglighedsmetadater; path-eneste SVG-udskrift kræver stadig den senere skærmbild/OCR-gade for at bevisse visuel etiketterlæsbarhed, og denne smoke-pass gør stadig ikke krav på fuld SVG-path-kovering. + +Skjulte SVG-grupper og elementer overskues konsekvent under talling af synlige elementer og geometri-samling. Attribut eller inline-stil `display:none`, `visibility:hidden`, `visibility:collapse` og det overgripende `opacity:0` kan ikke gøre en andetvis tom renderartefakt til at klare synlig-output smoke. + +Path-eneste glyph-definitioner kan være direkte pather eller grupperet/symbolcontainer indenfor `<defs>`. Smoke-passen løser child-path-geometri fra `<g id="...">` og `<symbol id="...">` før `<use>`-placering, så indpakket glyph-udskrift fedes stadig til `pathOnlyGlyphUseCount`, bounded-canvas-kontroller og `render-svg-path-glyph-overlap`. + +Path-parseren følger også subpath-start og resetter den aktuelle punkt på `Z/z`, så relative kommandoer efter en lukket subpath fortsætter fra den korrekte SVG-punkt i stedet for at skabe falske `render-svg-out-of-bounds`-diagnostik. + +Den samme geometriprocessen følger SVG nummerregler for decimaltal med først komma og eksplisite plustegn, så kompakte dvisvgm-koordinater som `.5`, `-.5` eller `+.5` forbliver fractionale under grænsekontroller istedet for at blive ugyldige geometrier eller overskudt. + +Hvis rendereren udskriver `.png`, bliver den samme forventede-artefakt-påvej en første skærmbildsmoke: Notemd dekoderer ikke-interlaced 1/2/4/8-bit indeksert-farge PNG-filer, 1/2/4/8/16-bit gråskala PNG-filer, og 8/16-bit gråskala-alpha/RGB/RGBA PNG-filer. Indekserte-farve- og sub-byte gråskala-bilder understøtter pakketprover; indekserte-farve-bilder understøtter også PLTE og valgfrit tRNS-data; gråskala/RGB-bilder understøtter tRNS transparente prover. 16-bit direkte prover normaliseres til samme 8-bit RGBA sammenligningsrum brugt af smoke-kontrollene. Smoke-kontrollen overvåger positive dimensoner, registrerer fremgrundsgrænser som `foregroundBounds`, registrerer fremgrundsstyrke indenfor den box som `foregroundDensity`, fejler med `render-png-blank` når hver synlige pixel matcher den øverste venstre baggrundsfarve, fejler med `render-png-content-clipped` når fremgrundsindhold berører billedgrænsen, fejler med `render-png-foreground-too-small` når en stor skærmbild har mindre end fire fremgrundspixel, og fejler med `render-png-foreground-dense` når fremgrundspixel er uvanligt tette indenfor en ikke-triviel bounding box. Ustøttede PNG-format fejler med `render-png-unsupported` og format-specifik råd for Adam7 interlaced PNGs eller ustøttede indekserte-farve-bitdypper. Dette fånger tomme skærmbilder, udelukkende canvas-klipning, underrenderede fremgrundsfootprint, første pixel-nivås overfladefejl, og fejlige renderer PNG-eksportindstillinger uden at tilføje platform-specifik shell-afhængigheder. Det er ikke endnu OCR-niveau label-indfølsning, præcist tekst-overlappingsdetektion, eller topology-bevarende billedreparation. + +Når diagnostikken viser en fejlt kompilering eller render-smoke-køring, kan CLI også skrive en topology-bevarende reparationsbeskrivelse: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +Reparationsbeskrivelsen bruger schema `notemd.circuitikz.repair-brief.v1` og indeholder kilden `CircuitSpec`, topology-signatur, kompilér/render-diagnostik, tillatte ændringer, forbudte topology-ændringer, næste verifiseringsskridt, og en strukturret `repairPrompt`. Prompt-rollen er `topology-preserving-circuitikz-repair`; dess `diagnosticFocus`-liste kommer fra kompilér/render-diagnostikken, og dess `acceptanceCriteria` kræver kandidatvalidering samt nye kompilér- og render-smoke-kontroller. Det er overførselsformatet for en senere reparationsloop, ikke en påståelse om at Notemd allerede kører autonom visuel reparasjon. + +Efter at en reparationskandidat er produceret, kan samme CLI valideres mod beskrivelsen før udskrift: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief` kontrollerer kandidats topology-signatur fra beskrivelsen og er uoverensstigende med `--topology-reference`. At klare denne gate beviser kun topology-bevaring; kandidaten behøver stadig kompilér-diagnostik og render-smoke-kontroller. + +`--repair-brief` resultatet inkluderer også `repairAcceptance` bevis med schema `notemd.circuitikz.repair-acceptance.v1`. Det rapporterer `topology-signature`, `compile-diagnostics` og `render-smoke` gate som `passed`, `failed` eller `missing`; offentliggør `remainingChecks`; og holder `readyForVisualAcceptance` falskt indtil kandidatkøretagen indeholder alle nødvendige bevis. + +Brug `--repair-acceptance-output` med `--repair-brief` når CI eller release-bevis behøver et varigt JSON fil: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +For release- eller maintainer-bevis, kør alle understøttede golden familier gennem den samlede fixture-runner: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Runneren bruger `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json` og `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json`, kaller den samme shell-fri exporter-påvej for hver fixture, og returnerer en samlet JSON rapport med per-fixture `compileExecution` og `compileDiagnostics`. Det er stadig en maintainer-kommando, ikke en plugin runtime-afhængighed. + +Når en maintainer-maskine har ingen renderer konfigureret endnu, kør den samme fixture-kommando uden `--compile-executable` og gemm den miljøgate eksplisit: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +Denne påvej skriver stadig den deterministiske fixture `.tex` artefakterne, men returnerer `ok: false` med `rendererAvailability.status` sat til `missing-configuration` og en `compile-executable-invalid` diagnostic. Behandle det som kun evidence for renderer-tilgængelighed; det er ikke kompilér, render-smoke, eller visuel acceptation. + +### Golden Reference Prompt Shape + +For nær fremtidsbrug, fornøj en renderbar golden reference før du beder om en circuit-variant. En begrænset prompt bør bevare preamblen, koordinatskala, ankerstil og routingskonventioner: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +For en CMOS inverter skal prompten forespørgse en eksplisit topology plus layout-begrænsninger, ikke kun "draw a CMOS inverter": + +- hold `VDD` på toppen, `GND` på bunden, indgang på venstre, udgang på højre; +- Brug `pmos` over `nmos`, med delte gader og delte dræner; +- Hold output-nodeet ved dræn-junctionen og marker det med `*-o`; +- Brug navngiveede ankerpunkter (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) i stedet for visuelt aflede koordinater; +- Undgå diagonale eller krydende værktøjer, så langt som det ikke er nødvendigt elektrisk. + +### Aktuel fremgang og næste fase + +| Areal | Aktuel status | Næste trin | +|------|----------------|-----------| +| Almene diagrammer | Spec-first pipeline implementeret for Mermaid, JSON Canvas, Vega-Lite, HTML | Hold kontinuerlig udvidelse af semantisk verifikationsomfattelse | +| Redigerbare figurer | `editable-html-svg`, Draw.io XML, og Drawnix JSON artefaktgrænser implementeret | Tilføj mere komplekse primitive kun efter at tester har beviset redigerbarhed | +| CLI støtte | `npm run diagram:export-artifact` eksporterer redigerbare HTML/SVG, Draw.io, og Drawnix fra én `DiagramSpec` | Læg til mål-specifikke røkmonturer når nye mål leveres | +| circuitikz | `CircuitSpec -> circuitikz` prototypen eksporterer common-source, CMOS inverter, `cmos-buffer` / `cmos-buffer-v1`, `cmos-transmission-gate` / `cmos-transmission-gate-v1`, `cmos-nand2` / `cmos-nand2-v1`, og `cmos-nor2` / `cmos-nor2-v1` guldtempler, projekter `layoutHints.inputSide` og `layoutHints.outputSide` til deterministisk ind-/udgangsportplacering uden at ændre topologien, afviser reparationstopologidrift gennem `--topology-reference`, udgiver topologiforbevarende reparationsoplysninger gennem `--repair-brief-output` og schema `notemd.circuitikz.repair-brief.v1`, inkluderer struktureret `repairPrompt` overføringsindhold med `diagnosticFocus`, `acceptanceCriteria`, og rolle `topology-preserving-circuitikz-repair`, validerer reparationskandidater gennem `--repair-brief`, returnerer `repairAcceptance` gatebevis gennem schema `notemd.circuitikz.repair-acceptance.v1` med `readyForVisualAcceptance` og `remainingChecks`, gemmer disse bevis gennem `--repair-acceptance-output`, parserer kompilationslogger, kan køre eksplisite lokale renderere plus `--expected-artifact`, SVG `--expected-svg-text`, kontroller af tilgængelighedsmetadater gennem `aria-label`, `<title>`, og `<desc>`, udskud/transparente SVG elementudslukking, `render-svg-text-path-only` / `pathOnlyGlyphUseCount` klassificering for path-only labeler, kontroller af path-only glyph placering for `<use href="#...">`, diagnostik af path-only glyph overlapp gennem `render-svg-path-glyph-overlap`, hantering af close-path current-point for `Z/z`, præcise bøgergrænser for A/a bøgers ekstrema, præcise Bezier kurvegrænser for C/S/Q/T kurves ekstrema, SVG grænser med bevidsthed om strejkbredde og kontroller af label overlapp, `polyline` / `polygon` kontroller af tegningsgeometri, positioneret `tspan` labelgeometri, `text-anchor`-bevidst positioneret tekstgeometri, geometri med bevidsthed om transform for SVG bounded-canvas/text-overlap og label-vs-tegningsrøk gennem `render-svg-label-overlap`, samt PNG nonblank / clipped / dense-foreground skærmbildrøkmæssige kontroller, inkluderende indexed-color palette alpha, grayscale/RGB tRNS transparente eksempler, og format-specifikke `render-png-unsupported` vejledning for Adam7 interlaced PNGs og indexed bit-depth fejl, gennem `foregroundBounds`, `foregroundDensity`, `render-png-content-clipped`, og `render-png-foreground-dense` uden shell parsing, inkluderer samlede vedligeholders røkmonturer gennem `npm run diagram:smoke-circuitikz`, registrerer manglende rendererkonfiguration gennem `rendererAvailability.status: "missing-configuration"` og `compile-executable-invalid`, samt har generiske preview-diagnostik, diagnostisk sammanfattelse af antal, diagnostik-bevidste historieposte, og source-only fallback gennem `RenderArtifact.diagnostics` og preview-modalen | Læg til OCR-niveau labelgenkendelse for path-only visuel tekst, præcise pixel-niveau overlappskontroller, bredere SVG path-overskydelse hvor det er nødvendigt, automatisk installering/udvikling af renderer kun hvis det kan blive valgfrit, og automatiseret topologiforbevarende reparationsudførelse | +| TikZJax integration | Kandidatrenderingsværksted for Obsidian-side visning | Lad det være valgfrit; gør ikke TikZJax til en hard plugin runtime afhængighed | + +## Konfiguration + +| Indstilling | Standard | Effekt | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | Vendel mellem spec-first og legacy Mermaid | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = Mermaid kun; `'best-fit'` = nativ mål + fallbacks | +| `preferredDiagramIntent` | `undefined` (auto) | Overrask automatisk intent detection | +| `summarizeToMermaidLanguage` | `'en'` | Målsspråk for diagramlabeler | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | Per-opgave LLM for diagramgenerering | +| `autoMermaidFixAfterGenerate` | (fra konstanter) | Kør automatisk legacy fixer på Mermaid output | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | Øge kilden med lokal vault-kunnskab | + +### Local Knowledge Augmentation + +Når det er aktiveret, henter Notemd relevante kontekstudsnit fra vaultens lokale kunnskapsbas (baseret på MiniSearch) og fører dem foran kilden i markdown-formatet. Augmenteringsopmærkelsen lyder: "Kun stødjende referencer; hold den primære strukturen trofast til kilden." + +### Samsætningstilstande + +- **`legacy-mermaid`**: Alle intenter dirigeres til Mermaid. Intenter, der ikke er Mermaid (canvasMap, dataChart), tvinges til `flowchart` eller `mindmap`. Ingen fallback-kedje. +- **`best-fit`**: Hver intent dirigeres til sin egne naturlige mål. Hvis det primære fejler, gennemgår den fallback-kedjen (f.eks. Vega-Lite → Mermaid → HTML). + +## Forskyvning og eksport + +| Aktion | Metode | +|--------|--------| +| SVG export | `mermaid.render()` / `vega.View.toSVG()` / SVG builder for Canvas | +| PNG-eksport | SVG → Image → Canvas (device pixel ratio 1x-3x) → PNG ArrayBuffer | +| Sparing af kilde | Rå artefaktindhold gemmes med extension, specifik for målet | +| Forskyvning kun af kilden | Ikke-inline artefakter med kildematerial vises som kod samt diagnosticer, uden iframe-rendering | +| Semantisk audit | Mermaid, JSON Canvas, Vega-Lite, og editabel HTML/SVG kontrolleret af `scripts/diagram-semantic-verification.js` | + +**Caching**: RenderCache bruger en deterministisk JSON-klæde fra `{spec, target, theme}`. Afvikling under bearbejdelse forhindrer dupliske renderinger. + +## Tips + +- **Start med `best-fit`-modus** — det giver den bedste visuelle output for hver intent-type +- **Brug kraftfulde modeller for komplekse diagrammer** — flødeplaner og ER-planer nyter fordel af GPT-4o eller Claude +- **Aktiver lokal kunnskab** for domænsspecifikke diagrammer — relevant vault-context forbedrer nogenigheden +- **Stil `autoMermaidFixAfterGenerate`** — Mermaid-syntaxfejl er vanlige uden det +- **Den gamle fixer er omfattende** — hvis Mermaid-preview fejler, løser man ofte det ved at køre fixeringskommandoen manuelt + +--- + +## Næste trin + +- 🔗 [Wiki-Links](./wiki-links) — Hvordan koncepter kobles indlignende +- 📝 [Concept Notes](./concept-notes) — Extraher koncepter til diagramkildematerial +- 🔍 [Research](./research) — Tilføj data fra web for at forbedre diagrammer diff --git a/website/i18n/da/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/da/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..cd1f32bc --- /dev/null +++ b/website/i18n/da/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "Forskning og websearch" +description: "Integre websearch i dine notater" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Forskning og websearch + +<TLDR> +**Notemd undersøger webben og injicerer LLM-sammanfattede resultater direkte i dine notater.** Tavily API er den primære søgebakendem; DuckDuckGo fungerer som en zero-config fallback. Resultaterne sammanfattas med kilder og tilføjes under en `## Research` overskrift. Støder forskning i enkelt noter, batch-forskning i mapper og valg af modell for sammanfattningsstegen per opgave. + +Dette er en del af [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Översikt + +Forskning er en af Notemd's mest kraftfulde integreringer: den lukker sikken mellem læsning, søgning og skrivning. I stedet for at skifte til en browser for at finde en ukendt term, markerer du den og lader Notemd søge, sammanfattige og tilføje resultaterne -- alt indenfor din vault. + +Processen er fuldstændig konfigurerbar. Du velger søgeudbyderen, den LLM som skriver sammanfattelsen, og hvilket resultat der tilføjes til den aktive note eller skrivs i separate filer. Batch-modus muliggør at forske i alle noter i en mappe med én klik. + +## Hvordan det virker + +### Søg-og-sammanfattingspipeline + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **Utdrag af spørgsmål** -- Notemd udtrækker søgeord fra din valg eller notetitlen. +2. **Websearch** -- Tavily forsøges først. Hvis ingen API-klæde er konfigureret, bruges DuckDuckGo automatisk (ingen klæde nødvendig). +3. **LLM-sammanfattning** -- Rå søgeresultater sendes til den konfigurerede LLM, som genererer en kort sammanfattelse med inline-kilder. +4. **Tilføj** -- Den formaterede sammanfattelse tilføjes under en `## Research` overskrift i den aktive note. + +### Tavily vs. DuckDuckGo + +| Aspekt | Tavily | DuckDuckGo | +|--------|--------|------------| +| API-klæde | Nødigt (fri plan tilgængelig) | Ikke nødvendigt | +| Resultkvalitet | Højere (specielt designet for AI) | Dygtig til almindelige spørgsmål | +| Rate limits | Rigelig gratis plan | Underlagt throttling | +| Konfiguration | `tavilyApiKey` i indstillinger | Nul konfiguration -- automatisk fallback | + +### Batch Folder Research + +Klik højre på en mapp og vælg **"Notemd: Research folder"**. Hver `.md`-fil i mappen behandles sekventielt (eller parallelt op til den konfigurerede konkurrenci). Hver note modtager sin egen forskningsopsummering. + +## Konfiguration + +| Indstilling | Standard | Effekt | +|---------|---------|--------| +| `tavilyApiKey` | `''` | Tavily API-klæde. Hvis den er tom, bruges kun DuckDuckGo. | +| `researchProvider` / `researchModel` | DeepSeek | Per-opgave LLM til at opsummere søgeresultater | +| `maxResearchContentTokens` | `4000` | Tokenbudget for indhold sendt til LLM. Overflødigt materiale tronkes af. | +| `researchAppendToNote` | `true` | Føj opsummering til den kilde-note. Hvis det er falskt, skapas en separat fil. | +| `researchLanguage` | `'en'` | Utdragsspråk for den opsummerte forskning | + +### Modellanbefaling per opgave + +Forskning gør bedre brug af en modell, der kan hantere multilingvalt indhold og generere godt struktureret prosa. Overvej følgende: + +- **DeepSeek** -- standard, billig, god kvalitet +- **GPT-4o** -- højere kvalitet på sammanfattelser, højere kost +- **Gemini Flash** -- snabb og billig, godt til enkle spørgsmål + +## Eksempel + +Du læser en artikel om *transformer attention mechanisms* og støder på en ukendt term: *relative positional encoding*. I stedet for at lade Obsidian: + +1. Highlight **"relative positional encoding"** +2. Højreklik --> **"Notemd: Forskning og sammanfattelse"** +3. Notemd søger på webben, sammanfatter de bedste resultaterne og tilføjer: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +Sammenfattelsen er nu en del af din vault, søgbar, linkbar og tilgængelig uden internet. + +## Tips + +- **Stil en Tavily-klæde for bedste resultater** -- selv den kostenlose version gir bedre relevans end ren DuckDuckGo. +- **Brug en effektiv sammanfattelsesmodell** -- billige modeller kan forsvække nuancer i teknisk indhold. +- **Gennemgå forskningen i batch** efter en første gennemgang for at fylde tommer i mange notater på en gang. +- **Gennemse de tilføjte sammenfattelser** -- LLM kan lave falske oplysninger om kilder. Kontroller vigtige påståelser. + +--- + +## Næste trin + +- [Concept Notes](./concept-notes) -- Extraher og gem vigtige termer fra forskningsresultater +- [Wiki-Links](./wiki-links) -- Link koncepter fra forskningen i din vault +- [Translation](./translation) -- Oversæt forskningssammenfattelser til et andet sprog +- [LLM Tjänsteleverantörer](/docs/providers/overview) -- Konfigurera modellen som används för sammanfattning diff --git a/website/i18n/da/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/da/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..366ff575 --- /dev/null +++ b/website/i18n/da/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "Oversætning" +description: "Oversæt notes og udvalg" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# Oversætning + +<TLDR> +**Notemd oversætter tekst mellem 21+ sprog med hjælp af LLM-drivet oversættelsestjeneste.** Det støder oversættelse af enkelt udvalgt tekst, hele notes og batchoversættelse af mapper. Hver oversættelsesopgave kan bruge en egen leverandør og modell gennem indstillinger per opgave. Udgangssproget kan konfigureres separat fra UI sproget. Resultaterne tilføjes under den oprindelige tekst eller skrives i en ny fil afhængigt af dine præferencer. + +Dette er en del af [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Översikt + +Oversættelsen i Notemd er ikke en ordforudsendelsesopgave -- det er LLM-drivet, kontekstbevidst oversættelse. Modellen ser hele paragraphen eller notesen, hvilket bevarer tone, terminologi og sætningstruktur. Dette giver højere kvalitet end tjenester, der oversætter ord for ord, især for teknisk, akademisk og kreativ skrift. + +Funktionen støder tre områder: udvalg, aktiv notes og hele mappe. I kombination med modellvalg per opgave kan du bruge en hurtig modell (Gemini Flash) til afslappet oversættelse og en kraftig modell (Claude Sonnet) for indhold, der kræver nysans -- uden at ændre din globale leverandør. + +## Hvordan det virker + +### Oversættelseskommandoen + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **Kildeindfølsning** -- LLM konstruerer kilden sprog fra indholdet. Du behøver ikke at specifice det manuelt. +2. **Promptkonstruktion** -- Notemd skaber en prompt, der inkluderer målssproget, valgfri domænshint og den tekst, der skal oversættes. +3. **LLM oversættelse** -- Den konfigurerede `translateProvider` / `translateModel` behandler anmodningen. Modellen bevarer markdown-formatering, wiki-linker og kodblok. +4. **Udgang** -- Den oversatte tekst tilføjes under den oprindelige eller skrives i en ny fil i vaulten. + +### Sprogspar + +Notemd støder alle sprogspar, som den underliggende LLM understøtter. Algemene par inkluderer: + +| Kilde | Mål | Typisk kvalitet | +|--------|--------|----------------| +| Engelsk | Kinesisk (simplificeret) | Udførligt god | +| Kinesisk | Engelsk | Udførligt god | +| Engelsk | Japansk | Mye god | +| Engelsk | Tysk / Fransk / Spansk | Mye god | +| Alle understøttede | Alle understøttede | Modelafhængigt | + +Indstillingen `translateLanguage` styrer **udgangsspråket**. Kildespråket detekteres automatisk. + +### Modellval per opgave + +Oversætningskvaliteten varierer meget afhængigt af modellen. Notemd giver dig mulighed for at tildele en specifik modell kun til oversættelse: + +| Modell | Hastighed | Kvalitet | Kost | Bedst til | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | Snart | God | Lav | Casual, høj volum | +| `gpt-4o-mini` | Snart | God | Lav | Raske søgninger | +| `deepseek-chat` | Middel | God | Mye lav | Budget med flere sprog | +| `claude-3-5-sonnet` | Middel | Udførligt | Middel | Teknisk / akademisk | +| `gpt-4o` | Middel | Udførligt | Middel | Prosa med nysensitivitet | + +### Oversætning af mængdemappe + +Højreklik på en mappe og vælg **"Notemd: Oversæt mappe"** for at oversætte alle noter i den mappe. Hver fil behandles separat. Konkurrencinstillingen styrer, hvor mange filer der oversættes parallelt. + +## Konfiguration + +| Indstilling | Standard | Effekt | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | Eksklusiv tjeneste til oversættelsesopgaver | +| `translateLanguage` | `'en'` | Mål-sprog for udgangstekst | +| `translationAppendToNote` | `true` | Føj den oversatte tekst under den oprindelige. Hvis dette er falskt, skapas en ny fil. | +| `batchConcurrency` | `3` | Antal filer, der behandles parallelt under mængdeoversætning | + +## Eksempel + +Du læser en kinesisk forskningsnote og ønsker en engelsk version: + +1. Åbne noten +2. Højreklik --> **"Notemd: Oversæt aktuel fil"** +3. Notemd opdager kinesisk, oversætter til den konfigurerede målmande spraak (engelsk) og fører til følgende: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +Den oprindelige kinesiske tekst forbliver óændret overfor oversættelsen. `## Translation`-overskriften holder begge versioner i samme fil for enkel referanse. + +## Tips + +- **Brug Gemini Flash for store mængder** -- det er den hurtigste og billigste muligheden for mængdeoversætning af store mapper. +- **Bevar wiki-linker** -- Notemd's anmodning instruerer LLM til at holde `[[wiki-links]]` uforændret i oversættelsen. Kontroller efter oversættelse, da nogle modeller af og til afpakker dem. +- **Stil specifikt udgangssprog** -- automatisk detection fungerer for kilden, men konfigurér altid `translateLanguage` for at unikke tvivl om målet. +- **Batch-oversæt conceptnoter** -- hvis din konceptmapp er på et sprog og du behøver den på et andet, hanterer oversættelse på mappeniveau det i én trin. + +--- + +## Næste trin + +- [Research](./research) -- Søg og sammanfattig på vilkert sprog, så oversæt resultaterne +- [Workflows](./workflows) -- Koble sammen oversættelse med wiki-linking eller konceptudhulling +- [Batch Processing](/docs/advanced/batch-processing) -- Konkurrens og overskrivingsbehavior for mappearbejde +- [LLM Providers](/docs/providers/overview) -- Vælg den bedste modell for dit sprogpar diff --git a/website/i18n/da/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/da/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..dfbfc618 --- /dev/null +++ b/website/i18n/da/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "Wiki-Links" +description: "Automatisk generering af wiki-link til vigtige koncepter" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# Wiki-Links + +<TLDR> +**Notemd tilføjer automatisk `[[wiki-links]]` til de vigtige koncepter i dine notater.** LLM læser din indhold, identificerer vigtige termer i konteksten og indsætter wiki-link i Obsidian-stil ved hver optrædelse. Valgfrit kan det skabe konceptnoter med baklinker. Støder undertrykking af synonymer, link-integritet ved omnavn/affyring og ren udvinningstemper (ingen ændringer i filer). Tillægsvis til Auto Link, som kun matcher eksisterende notetitel, bruger Notemd AI til at identificere nye koncepter og skabe tilsvarende noter. Dette er en del af [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Översikt + +Wiki-linking er den kernfunktion for Notemd. Det transformerer ren tekst til en sammenhængende kunstighedsgraph gennem: + +1. **At analysere din note** med en LLM +2. **At identificere vigtige koncepter** (termer, personer, metoder, teorier) +3. **At indsætte `[[wiki-links]]`** ved hver optrædelse +4. **At skabe konceptnoter** (valgfrit) med baklinker + +## Hvordan det virker + +### Process + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### Eksempel + +**Forud:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**Efter:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## Brug + +### Basis: Tilføj link til aktuelle note + +1. Åbne en note +2. Højreklik i editor → **"Process file (add links)"** +3. Vente nogle sekunder +4. Koncepterne er nu koblet sammen! + +### Batch: Behandle flere noter + +1. Højreklik på en mapp i filexploreren +2. Vælg **"Notemd: Process mappen (tilføj links)"** +3. Konfigurér: + - Konkurrenci (hvor mange filer parallelt) + - Skriv over eksisterende links (ja/nej) +4. Klik på **Process** + +### Selektivt: Link specifik tekst + +1. Highlighter tekst til behandling +2. Højreklik → **"Process selection (add links)"** +3. Apenbarligens den highlightede del analyseres + +## Notemd vs Auto Link + +Obsidian har to metoder for automatisk wiki-linking: + +| | **Auto Link** | **Notemd** | +|--|---------------|-------------| +| Linkkilde | Existerende notetitel i vault | LLM-identificerede koncepter i indhold | +| Kan lige til nye koncepte | Nej – titlen må allerede eksistere | Ja – AI identifierer koncepte og skaber notater | +| Hantering af synonymer | Nej | Ja – undertrykking af synonymer | +| Skabning af konceptnotater | Nej | Ja – med baklænker og duplikatkortning | +| Batchbehandling | Nej (enkelt fil) | Ja (mappenivå) | +| Modellrute til hver opgave | Nej | Ja | + +**Auto Link** matcher titler: Hvis en note med navnet "Machine Learning" eksisterer, omgiver det forekomsterne i `[[Machine Learning]]`. Hvis noten ikke eksisterer, sker ingenting. + +**Notemd** er AI-styrret: LLM læser din indhold, forstår konteksten, identifierer koncepte som *bør* blive lige til – selvom der endnu ikke er en note – og skaber både linken og konceptnotaten. + +## Funktioner + +### Undertrykking af synonymer + +**Problem:** "transformer", "transformers", "Transformer architecture" → 3 separate koncepter + +**Løsning:** Notemd opdager nærlige duplikater og bruger den kanoniske formen. + +**Konfiguration:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### Link Integritet + +**Når du endrer navn på en konceptnotat:** +- Alle wiki-linker opdateres automatisk (Obsidian kernfunktion) +- Backlinkerne forbliver intakte + +**Når du sletter en konceptnotat:** +- Linkerne forbliver, men vises som "unlinked mentions" +- Du kan skabe den på ny fra enhver forekomst + +### Ren Extraktionstil + +**Ekstraher koncepte uden at ændre det oprindelige:** + +1. Højreklik → **"Ekstraher koncepte (ingen linkning)"** +2. Konceptnotater skrives +3. Oprindelige fil forbliver óændret + +Brugsscenario: Behandling af read-only-inhold eller endelige udkast. + +## Konceptnotat Generering + +### Automatisk Skabing + +**Når det er aktiveret (standard), skaber Notemd:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### Konfiguration + +**Utdragsmapp:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Hierarkisk struktur:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**Mall:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## Avancerede valg + +### Contextvindu + +**Hvor meget omgivende tekst skal sendes:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +Større værdi = bedre nøjaktighed, højere kost. + +### Minimum antal optrædninger + +**Kopiere kun koncepter, der optræder flere gange:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +Still på 2 eller 3 for at fokusere på repræsenterende temaer. + +### Utslutte mønster + +**Skel visse ord:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +Forhindrer overkopiering af generiske termer. + +### Egen prompter + +**Øverstille standard LLM-instruktioner:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +Anpass for domænespecifikke behov (f.eks. "Fokuser på medicinsk terminologi"). + +## Tips og bedste praksis + +### ✅ Gør + +- **Behandle bemærkninger med >100 ord** — Korte bemærkninger gir få koncepter +- **Brug kraftfulde modeller** for bedre identifikation af koncepter (GPT-4o, Claude) +- **Gå gjennem før du accepterer** — Kontroller, om de foreslåede links er logiske +- **Byg gradvist** — Behandle 5-10 bemærkninger, gå gjennem grafen, juster indstillinger + +### ❌ Gør ikke + +- **Over-link** — Ikke alle substantiver behøver en link +- **Behandle utkast flere gange** — Koncepter kan skifte sig, vent til de er stabile +- **Ignorer synonyme** — Aktiver suppression for at undgå "ML" vs "Machine Learning" + +## Prestande + +### Hastighed + +| Størrelse på bemærkning | GPT-4o-mini | Claude Sonnet | Ollama (lokalt) | +|-----------|-------------|---------------|----------------| +| 500 ord | 2-3 sekunder | 3-5 sekunder | 5-10 sekunder | +| 2000 ord | 5-8 sekunder | 10-15 sekunder | 20-40 sekunder | +| 5000+ ord | Delvist (mere anrop) | Deltaget | Deltaget | + +### Kostudsigt + +**Eksempel: 1000-ords not med GPT-4o-mini** +- Indgang: ~1500 tokener +- Output: ~200 tokens +- Kostnad: ~ + +**Batchbehandling af 100 notater:** ~ + +## Felsøgning + +### Ingen links tilføjet + +**Kontrol:** +1. LLM kaldet lykkes (Indstillinger → Diagnostik) +2. Noten har tilstrekkelig indhold (>50 ord) +3. Koncepter er tekniske/spesifikke (ikke bare pronumer) + +**Prøv:** +- Brug en mere kraftig modell +- Højst muligt kontekstvindu +- Kontroller dig for gyldighed af API-klæden + +### For mange links + +**Løsninger:** +1. Højstil minimale forekomster (2 eller 3) +2. Tilføj algemene ord til uundtagelseslisten +3. Brug en mindre aggressiv modell + +### Felaktige koncepter koblet + +**Løsninger:** +1. Brug en tilpasset prompt for domænespecifikke behov +2. Aktiver synonymsuppression +3. Gennemgå manuelt og afslut forbindelser + +### Linker bruges ikke efter omnavn + +**Dette er normalt Obsidian beteende.** + +For at opdatere alle linker: +1. Omnavn konceptnoten +2. Obsidian opdaterer automatisk `[[old]]` → `[[new]]` + +--- + +## Næste trin + +- 📖 [Konceptnoter](./concept-notes) — Dybdegående information om generering af konceptnoter +- 🔍 [Forskning integration](./research) — Kombinér linkning med webforskning +- 🎨 [Diagrammer](./diagrams) — Visualisér din knowledge graph diff --git a/website/i18n/da/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/da/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..4486a877 --- /dev/null +++ b/website/i18n/da/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "Arbejdsmønster" +description: "Kopler flere opgaver sammen med en-klik-knapper" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Arbejdsmønster + +<TLDR> +**Notemd Arbejdsmønster kopler flere opgaver til en enkelt en-klik-handling.** Definer sekvenser som `add-links > extract-concepts > research > diagram` med en enkel DSL. Arbejdsmønster vises som knapper i sidebaren, der kører hele kedjen på den aktuelle note eller mapp. Det leverer fordefinerte arbejdsmønster; skab egne i indstillingerne. Hver trin bruger sin egen konfiguration for modellen per opgave. + +Dette er en del af [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Översikt + +Et arbejdsmønster fjerner trængseln ved at køre opgaver en efter en. I stedet for at klikke højre fire gange for at tilføje links, extrahere koncepter, undersøge ukendte termer og generere en diagram, trykker du på en knap i sidebaren og hele kedjen køres. Notemd hanterer sekvenseringen, fejloverførsel og fremgangsrapportering. + +Arbejdsmønster defineres med en letvægig DSL (domænespecifik språk). De findes i indstillingerne, vises som klikbare knapper i Obsidian sidebaren og kan tilpasses enten den aktuelle note eller en hel mapp. + +## Hvordan det virker + +### Kørespipeline for arbejdsmønster + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **Parse** -- DSL-strengen delses ved `>` (eller `>`) i en ordnet liste over opgavidentifikatorer. +2. **Resolve** -- Hver identifikator mappes til en interner kommando (add-links, extract-concepts, research, translate, diagram osv.). +3. **Execute** -- Trinne køres sekventielt. Hvert trin bruger den konfigurerede leverandør og modellen per opgave. +4. **Error handling** -- Hvis et trin fejler, afbryder arbejdsmønsteret eller fortsætter til det næste trin, afhængigt af din fejlpolitik. +5. **Done** -- En toast-meddelelse rapporterer succes eller listar alle fejlige trin. + +### DSL-format + +Arbejdsmønster defineres som en `>`-skilt sekvens af opgavidentifikatorer: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**Tilgængelige opgavidentifikatorer:** + +| Identifikator | Aktion | +|------------|--------| +| `process-current-add-links` | Læg til wiki-linker i den aktive note | +| `extract-concepts-current` | Udtræk koncept fra den aktive note | +| `research-and-summarize` | Undersøg den valgte tekst eller notes titel | +| `process-current-translate` | Oversæt den aktive note | +| `summarize-to-mermaid` | Generer en diagram af den aktive note | +| `generate-from-title` | Generer indhold fra notes titel | +| `extract-original-text` | Udtræk den oprindelige tekst (for OCR / skannet indhold) | + +**Varianter på mappenivå**: Erstat `current` med `folder` i identifikationsnavnet. + +### Fordefinerte vs. egne arbejdsmetoder + +Notemd leverer færdige arbejdsmetoder for algemme mønster: + +| Arbejdsmetode | Kedje | Brugsscenario | +|----------|-------|----------| +| **En-klik-udtrækning** | add-links > extract-concepts > research | Behandle en forskningsartikel i én gang | +| **Komplet pipeline** | add-links > extract-concepter > research > diagram | Fuldført kunnskapsutvinning med visualisering | +| **Oversæt + Link** | translate > add-links | Oversæt og link koncepter i målmandskabet | + +**Egen arbejdsmetoder** skrives i indstillingerne: + +1. Åbne **Indstillinger** --> **Notemd** --> **Arbejdsmetoder** +2. Klik på **"Add Workflow"** +3. Indtast DSL-keden (f.eks. `process-current-add-links>extract-concepts-current`) +4. Giv det en visningsnavn (f.eks. "Snabb Link + Extract") +5. Den nye knap vises umiddelbart i sidemenuet + +## Konfiguration + +| Indstilling | Standard | Effekt | +|---------|---------|--------| +| `workflows` | Fordefineret set | Array af arbejdsmetodedefinitioner (navn + DSL) | +| `workflowContinueOnError` | `true` | Fortsæt til næste trin hvis det aktuelle trin fejler | +| `workflowShowProgress` | `true` | Vis en progress-tost efter hver trin er fuldført | + +### Modeller per opgave i arbejdsmetoder + +Hver trin i en arbejdsmetode bruger sin egen modellkonfiguration per opgave. Du behøver ikke at specifice modeller i DSL’en selv. Resolutionstilstanden er: + +1. Provider/modell per opgave, hvis `useMultiModelSettings` findes på +2. Global `activeProvider` i anden tilfælde + +Det betyder, at `add-links` kan køres på DeepSeek mens `research` køres på GPT-4o – alt indenfor samme arbejdsmetodeklik. + +## Eksempel + +Du har netop importert en PDF fra en maskininlæringsartikel til din vault og vil have fuld kunstighedsudvinning: + +1. Åbne den importerede note +2. Klik på sidemenuknappen **"Full Pipeline"** +3. Notemd udfører: + - **Trin 1**: Tilføj wiki-linker – `[[attention mechanism]]`, `[[transformer]]` osv. + - **Trin 2**: Udvinde koncepter – skaber konceptnoter i din konceptmapp + - **Trin 3**: Forskning – sammanfatter webkilder for nøgleord + - **Trin 4**: Diagram – genererer en Mermaid mindmap af artiklets struktur +4. Efter ca. 30 sekunder har din note linker, konceptnoter findes, forskningen er tilføjet og en diagramfil er gemt + +Alt fra en enkelt klik. + +## Tips + +- **Start med fordefinerte arbejdsmetoder** – de dekker de mest almindelige mønstre. Anpass kun, når du behøver en ander sekvens. +- **Aktiver `workflowContinueOnError`** – et fejlt diagramtrin bør ikke afbryde hele pipeline’en. +- **Brug mapparbejdsfloder** for massbehandling -- klick med højre på en mappe, vælg en arbejdsflow, og alle noter bliver behandlet. +- **Giv arbejdsfloder klare navne** -- pladsen i sidebaren er begrænset. Brug korte, handlingstilpassede navne som "Snabb udextraktion" eller "Oversæt + Link". + +--- + +## Næste trin + +- [Research](./research) -- Forstå, hvad forskningsstegen gør, før du tilføjer den til arbejdsfloder +- [Wiki-Links](./wiki-links) -- Hovedligningsfunktionen, som bruges i de fleste arbejdsfloder +- [Concept Notes](./concept-notes) -- Konceptudextraktion som en arbejdsflodesteg +- [Batch Processing](/docs/advanced/batch-processing) -- Konkurrence og fremgangsrapportering for mapparbejdsfloder diff --git a/website/i18n/da/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/da/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..3981dd39 --- /dev/null +++ b/website/i18n/da/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "Konfiguration" +description: "Konfigurér Notemd-indstillinger og preferencer" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Konfiguration + +<TLDR> +**Notemd-konfigurationen omfatter 6 hovedområder:** (1) LLM-udbydere og API-nyckler, (2) Valg af modell per opgave, (3) Udskriftspfade og maller, (4) UI-sprog og udskriftssprog, (5) Søgtilbud (Tavily/DuckDuckGo), (6) Egen arbejdsmæssige processer. Alle indstillinger findes i Obsidian Settings → Notemd. Endringer trer i kraft umiddelbart. +</TLDR> + +## Oversigt over indstillinger + +Adgang: **Obsidian Settings (⚙️) → Notemd** + +### Hovedsektioner + +1. **Udbyderkonfiguration** — API-nyckler, base URLs, modeller +2. **Opgavesindstillinger** — Valg af modell per opgave +3. **Udskriftskonfiguration** — Hvor genererede filer skal gemmes +4. **Sprogindstillinger** — UI- og udskriftssprog +5. **Søgintegration** — Tavily/DuckDuckGo-indstilling +6. **Arbejdsmæssige processer** — Egen knapskeder +7. **Avanceret** — Diagnostik, batchbehandling, chunking + +--- + +## 1. Udbyderkonfiguration + +### At tilføje en udbyder + +1. **Vælg udbyder** fra dropdown (30+ tilgængelige) +2. **Indtast API-nyckel** +3. **Valgfrit**: Stil din egen base URL (for proxyer/gateways) +4. **Klik på "Få modellliste"** for at overholde forbindelsen +5. **Vælg standardmodell** + +### Almindelige leverandører + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Local) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### Mere end én leverandør + +Du kan konfigurere flere leverandører og skifte mellem dem for hver opgave: +- **Hovedleverandør**: Bruges som fallback +- **Opgavespecifikke leverandører**: Overskrives for specifikke opgaver + +--- + +## 2. Opgavespecifikke modeller + +Konfigurér forskellige modeller for forskellige opgaver for at optimere kost/niveau: + +### Opgavetyper + +| Opgave | Standardmodell | Formål | +|------|--------------|---------| +| **Forbindelse** | Hovedleverandør | Identificer koncepter for wiki-linker | +| **Konceptgenerering** | Hovedudbyder | Udtræk og beskriv koncepter | +| **Forskning** | Hovedudbyder | Sammanfatt resultater fra websearch | +| **Oversættelse** | Hovedudbyder | Oversæt tekst | +| **Diagramgenerering** | Hovedudbyder | Generer Mermaid/Canvas-diagrammer | + +### Eksempel: Kostoptimeret indstilling + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### Hvad man gør for at konfigurere + +1. **Indstillinger → Notemd → Opgaveindstillinger** +2. For hver opgave vælg: + - ✅ **Brug hovedudbyder** (standard) + - 🔄 **Brug egen udbyder** → vælg udbyder + modell + +--- + +## 3. Udgangskonfiguration + +### Udgivelse af konceptnoter + +**Hvor nye konceptnoter gemmes:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Mall:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### Muligheder for mappstruktur + +**Valg 1: Flad (alle koncepter i en mapp)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**Valg 2: Hierarkisk (afhængigt af kildemapp)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +Konfigurér: **Indstillinger → Udskrift → Brug hierarkiske mapper** + +### Udskrift af diagrammer + +**Hvor diagrammer gemmes:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**Format:** +- `.mmd` (Mermaid kilde) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. Sprogindstillinger + +### UI Sprog + +**Indstillinger for grænsefladen** (knapper, menuer, dialoger): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +Støttet: Engelsk, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Русский, العربية, og flere. + +### Udskriftssprog + +**Genereret indholdssprog** (konceptnoter, forskningsopsummeringer): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**Brugsmål:** Kinesisk UI + engelsk output for bilingual forskning. + +### Sprogmål for oversætning + +**Standardmæssigt sprogmål** for oversætningstasker: + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. Søgintegration + +### Tavily (Anbefales) + +**AI-optimiseret søgestjerneste:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +Hent nøgle: [tavily.com](https://tavily.com/) + +**Egenskaber:** +- Højkvalitetsresultater +- AI-optimiserede opsummeringer +- Kilderreferencer + +### DuckDuckGo (Experimental) + +**Der er ikke behov for API-nøgle:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**Opmerkning:** Lavere kvalitet, ingen personalisering. + +--- + +## 6. Arbejdsmarkedskonfiguration + +### Skabe egne arbejdsmarkeder + +**Arbejdsmuligheder forbinder flere opgaver til en enkelt knap.** + +1. **Indstillinger → Arbejdsmuligheder → Tilføj arbejdsmulighed** +2. **Navn**: "Paper Analysis Flow" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **Spara** + +En ny knap vises i den venstre sidebark. + +### DSL-syntax + +**Format:** `action1>action2>action3` + +**Tilgængelige handlinger:** +- `process-current-add-links` — Tilføj wiki-linker til den aktuelle note +- `extract-concepts-current` — Generer konceptnoter +- `research-and-summarize` — Veb-research + sammanfattelse +- `translate-current` — Oversæt den aktuelle note +- `summarize-as-mermaid` — Generer Mermaid-diagram +- `process-folder-add-links` — Batch-process mappen + +**Eksempler på arbejdsmuligheder:** + +**Snabb konceptudhulling:** +``` +process-current-add-links>extract-concepts-current +``` + +**Dybtgående forskning:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**Flerspråkig analyse:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. Avancerede indstillinger + +### Batchbehandling + +**Behandle flere filer parallelt:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +Højere = hurtigere men flere API anrop. + +### Smart deling i deler + +**For lange notater, del dem i deler:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +Forhindrer fejl på grund af tokenlimiter. + +### Diagnostikpanelen + +**Vis detaljerede logger:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +Viser: +- API anmodninger/svar +- Tokenbrug +- Behandlingstid +- Fejl + +### Detektering af duplikate koncepter + +**Undgå nærliggende duplikate koncepter:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +Højere = mere aggressiv fusions. + +--- + +## Konfigurationsprofiler + +### Eksport/Import af indstillinger + +**Del konfigurationer mellem enheder:** + +1. **Indstillinger → Avanceret → Eksportér konfiguration** +2. Sparer `notemd-config.json` +3. På ny enhed: **Importér konfiguration** + +**Hva som er inkluderet:** +- Provider API-nyckler (valgfrit) +- Modellvalg +- Utdragsveje +- Kostomiserede arbejdsmetoder + +--- + +## Anbefalede konfigurationer + +### For studenter + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### For forskere + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### For brugere, der gør digt om privatlivet + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### For bilingvale arbejde + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## Løsning af konfigurationsproblemer + +### Indstillinger gemmes ikke +- Kontroller filadgangsrigheder i `.obsidian/plugins/notemd/` +- Prøv: Afaktiver plugin → Aktiver igen + +### API-koden er ugyldig +- Ingen ekstra mellemrum +- Kontroller udløbstid +- Kontroller kreditter i leverandørens dashboard + +### Modeller lades ikke +- Klik på "Få modellliste" for at opdatere +- Kontroller nettverksforbindelse +- Prøv en ander leverandør + +--- + +## Næste trin + +- 📖 [Udforsk funktioner](../features/wiki-links) +- 🔌 [Leverandørssætningssikter](../providers/overview) +- ❓ [FAQ](../faq) diff --git a/website/i18n/da/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/da/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..b294bd48 --- /dev/null +++ b/website/i18n/da/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "Indstilling" +description: "Hvad gør man for at installere Notemd i Obsidian" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Indstilling + +<TLDR> +**Installér Notemd på under 2 minutter.** To metoder: (1) Obsidian Community Plugins (anbefales, en-klik-installation), eller (2) Manuell installation via GitHub Releases. Kræver Obsidian 0.15.0+. Virker på Windows, macOS, Linux, iOS og Android. Ingen eksterne afhængigheder. 4k+ downloads, licenseret under MIT. +</TLDR> + +## Metode 1: Community-plugins (anbefales) + +1. Åbne **Obsidian Indstillinger** (⚙️-ikon eller `Ctrl/Cmd + ,`) +2. Gå til **Community plugins** +3. Klik på **Browse** +4. Søg efter **"Notemd"** +5. Klik på **Install** +6. Klik på **Enable** + +**Gjort!** Du vil se Notemd-ikonen i din venstre sidebark. + +## Metode 2: Manuell installation + +### Forudsætninger +- Obsidian 0.15.0 eller højere +- Git (valgfrit, til klonering) + +### Trin + +1. **Hent filer** fra [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest): + - `main.js` + - `styles.css` + - `manifest.json` + +2. **Fin din plugins mapp i vaulten:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +Hvis `plugins`-mappen ikke eksisterer, skap den. + +3. **Skap Notemd-mappen:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **Kopier de tre filene** ind i `notemd`-mappen. + +5. **Lad om Obsidian:** + - Tryk på `Ctrl/Cmd + R`, eller + - Start op igen Obsidian + +6. **Aktiver pluginen:** + - Indstillinger → Community plugins + - Find "Notemd" i listen + - Slå den til + +## Alternativ: Installer gennem BRAT + +Hvis du bruger [BRAT pluginen](https://github.com/TfTHacker/obsidian42-brat): + +1. Opn BRAT indstillinger +2. Klik på "Add Beta plugin" +3. Indtast: `Jacobinwwey/obsidian-NotEMD` +4. Klik på "Add Plugin" +5. Aktiver Notemd i Community plugins + +## Verifikation + +Efter installation, overprøv, om Notemd virker: + +1. Åbne en hvilken som helst note +2. Højreklik i editoren +3. Du bør se Notemd-kommandoen som: + - "Process file (add links)" + - "Extract concepts" + - "Research and summarize" + +## Næste trin + +- **Konfigurér LLM-udbyderen:** [Quick Start →](./quick-start) +- **Løsning af problemer:** [Common Issues →](../advanced/troubleshooting) + +## Systemkrav + +| Platform | Version | Status | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | Required | +| **Windows** | 7+ | ✅ Støttet | +| **macOS** | 10.15+ | ✅ Støttet | +| **Linux** | Alle | ✅ Støttet | +| **iOS** | 15+ | ✅ Støttet | +| **Android** | 5+ | ✅ Støttet | + +## Uninstallation + +For at fjerne Notemd: + +1. Indstillinger → Community-plugins +2. Find "Notemd" +3. Klik på ❌-ikonet +4. Valgfrit: Fjern pluginmappen: `<vault>/.obsidian/plugins/notemd/` + +Dina data (noter, konceptnoter osv.) forbliver óændret. + +## Opdatering + +### Automatisk opdatering (Anbefales) +Obsidian kontrollerer automatisk efter pluginopdateringer. Når en ny version er tilgængelig: +1. Indstillinger → Community-plugins +2. Klik på "Kontroller opdateringer" +3. Klik på "Opdater" ved side af Notemd + +### Manuell opdatering +Download den seneste udgave og ersätt de tre filer i din pluginmappen. + +## Få hjælp + +- 📖 [Snabbstartguide](./quick-start) +- ❓ [FAQ](../faq) +- 💬 [Discord Community](https://discord.gg/qnGgsQ9W) +- 🐛 [Rapportér problemer](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/da/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/da/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..51d3eabe --- /dev/null +++ b/website/i18n/da/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "Snabbstartguide" +description: "Start med Notemd på 5 minutter" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Snabbstartguide + +<TLDR> +**Begynd at bruge Notemd på 5 minutter.** Tre trin: (1) Tilføj en LLM API-klæde (eller brug lokal Ollama), (2) Åbne en note og køre "Process file (add links)", (3) Udforske en-klik-virksomheder i sidebaren. Støder over 30 leverandører. Ingen kodning nødvendig. Virker offline med Ollama. +</TLDR> + +## Trin 1: Konfigurér din første LLM-leverandør (2 minutter) + +### Option A: Cloudleverandør (OpenAI, Anthropic osv.) + +1. Åbne **Settings** → **Notemd** +2. Under **LLM-leverandørskonfiguration** vælg en leverandør fra dropdown-listen +3. Indtast din **API-klæde** +4. (Valgfrit) Klik på **"Get Model List"** for at se de tilgængelige modeller +5. Vælg en modell for hver opgavetyp + +**Populære valg:** +- **OpenAI**: `gpt-4o-mini` (snart, billig) +- **Anthropic**: `claude-sonnet-4-6` (høj kvalitet) +- **DeepSeek**: `deepseek-chat` (mye billig) + +### Option B: Lokal Ollama (Ingen API-klæde nødvendig) + +1. Installér [Ollama](https://ollama.com/) +2. Download en modell: `ollama pull llama3.1` +3. I Notemd indstillingerne, vælg **"Ollama"** som leverandør +4. Modellnavn: `llama3.1` (eller enhver modell du har downloadet) + +## Trin 2: Prøv din første opgave (1 min) + +### Føj Wiki-linker til en note + +1. Åbne enhver note med meningsfuld indhold +2. Højreklik i editoren +3. Vælg **"Processer fil (føj linker)"** +4. Vente nogle sekunder +5. Kernbegreberne er nu `[[wiki-linked]]`! + +**Eksempel:** + +**Forud:** +``` +Machine learning models use neural networks to process data. +``` + +**Efter:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## Trin 3: Udforsk funktioner (2 min) + +### Udtak af konceptnoter + +1. Højreklik → **"Udtak koncept fra aktuelle fil"** +2. Notemd skaber separate filer for hver koncept +3. Kontroller din konfigurerede konceptmappe (standard: `concepts/`) +4. Hver konceptnote har en baklink til din oprindelige note + +### Forsk og sammanfatt + +1. Highlighter en emne i din note +2. Højreklik → **"Forsk og sammanfatt"** +3. Notemd forespørger websearch (Tavily eller DuckDuckGo) +4. Sammenfattelsen tilføjes til din note med kilder + +### En-klik-virksomheder + +1. Kig på **venstre sidebaren** for virksomhedsknapper +2. Klik på **"En-klik-uddrag"** i enhver note +3. Det køres: tilføj links → uddrag koncepter → forsøg → generer diagram +4. Allt i én klik! + +## Vanlige første opgaver + +### Opgave 1: Behandle en artikel/papir + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### Opgave 2: Oversætte noter + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### Opgave 3: Skabe en kunstnemskort + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## Tips til anpassning + +### Modellval per opgave + +Du kan bruge forskellige modeller for forskellige opgaver: + +| Opgave | Anbefales modell | Hvorfor | +|------|------------------|-----| +| Tilføj links | `gpt-4o-mini`, `deepseek-chat` | Snabb, mange kaller | +| Udtræk koncepter | `claude-sonnet-4-6`, `gpt-4o` | Høj kvalitet ved udtrækning | +| Forskning | `perplexity`, `gpt-4o` | Web-baseret | +| Oversætning | `gemini-flash`, `gpt-4o` | Flerspråkigt | +| Diagrammer | `claude-opus`, lokal modell | Kompleks resonemang | + +Konfigurér i: **Indstillinger → Notemd → Modeller til specifikke opgaver** + +### Egen arbejdsmæssig processer + +Skab din egen knap: + +1. Indstillinger → Notemd → Arbejdsmæssig processer +2. Klik på "Tilføj arbejdsmæssig process" +3. Indtast DSL: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. Navngiv det: "Min Forskningsflød" +5. En ny knap vises i sidemenuet + +## Felsøgning + +### "API Key Invalid" +- Kontroller, om nøkken er korrekt (ingen ekstra rum) +- Verificer, om kontoen har kreditter +- Prøv med "Connection Test"-knappen i indstillingerne + +### "Model Not Found" +- Klik på "Get Model List" for at se de tilgængelige modeller +- Nogle leverandører kræver specifikke modellnamner (f.eks. `gpt-4o` ikke `gpt-4`) + +### Linkerne vises ikke +- Sikrer dig, at noten har nok indhold (>50 ord) +- Prøv en mere kraftig modell +- Kontroller, om LLM-kallen lykkedes (se diagnostics panel) + +### Langsomm performance +- Brug hurtigere modeller (`gpt-4o-mini` i stedet for `gpt-4o`) +- Redskærmlæg størrelsen i indstillingerne +- Aktiver parallel bearbejdning for batch-opgaver + +## Næste trin + +- 📖 [Udforsk alle funktioner](../features/wiki-links) +- ⚙️ [Avanceret konfiguration](./configuration) +- 🔧 [LLM Provider-indstilling](../providers/overview) +- ❓ [FAQ](../faq) + +## Videotutorial + +Se den 3-minutters hurtigstartvideon (kinesisk): +[【Fullt åbent og gratis! NotEMD 3 minutter i sekunder】](https://b23.tv/lqR0RlA) + +## Få hjælp + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **Problemer**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **Dokumentation**: [Komplet dokumentation](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/da/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/da/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..a40afb02 --- /dev/null +++ b/website/i18n/da/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "Indførelse til Notemd" +description: "AI-styrret knowledgebasbygger for Obsidian med permanente notertransformationer, arbejdsmuligheder og diagrammer baseret på specifikationer" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Indførelse til Notemd + +<TLDR> +**Notemd** (Note + EMD — Enhanced Markdown Documents) er en open-source Obsidian-plugin, der transformerer LLM-styrret læsning til permanent knowledge. Tillænkses ikke til chat-baseret AI, hvor insikter forsvinder efter sessionen; Notemd skriver resultaterne **direkte i din vault** som wiki-link, konceptnoter, forskningsopsummeringer, oversættelser, arbejdsmuligheder og diagrammer. Den er designet til forskere, studenter og knowledge-worker, der ønsker, at læsning, forskning og visuelle forklaringer opbygges til en strukturered, udviklende knowledgegraph. +</TLDR> + +## Hva er Notemd? + +Notemd integrerer **30+ store språkmodeller** (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama og flere) i din Obsidian-arbejdsmulighed for at automatisere knowledgeudvinning, organisering, oversættelse, forskning og diagramgenerering. + +### Afskillelse: Tidsvindende vs. permanent knowledge + +| Aspekt | Chat-baseret AI (ChatGPT osv.) | Notemd | +|--------|-------------------------------|--------| +| **Hvor resultaterne bliver gemt** | Chathistorikken (forsvinder) | Din Obsidian vault (bliver bevaret) | +| **Format** | Plaintekstsvare | Strukturerede filer: `[[wiki-links]]`, konceptnoter, diagrammer | +| **Langsigtig værdi** | Må spørge igen hver gang | Opbygges til en knowledgegraph | +| **Udfordret adgang** | Kræver internet | Virker fuldstændigt uden forbindelse med Ollama | + +## Kernfunktioner + +### 1. **Automatisk Wiki-linking** +- LLM identifierer vigtige koncepte i dine notater +- Indsætter `[[wiki-links]]` ved hver optrædelse +- Skaber valgfrit linkede konceptnotater +- Synonymsuppression for at undgå duplikater + +### 2. **Generering af konceptnotater** +- Udtager kernkoncepte fra papirer, artikler og notater +- Genererer speciale konceptfiler med bakligner +- Anpasselige udgangspfade og maller + +### 3. **Integration af web-research** +- Søg efter Tavily eller DuckDuckGo indenfor Obsidian +- LLM sammanfatter resultaterne med kilder +- Føriger forskningsresultater til den nuværende note + +### 4. **Multilingvæs translation** +- Oversæt udvalgte deler eller hele noter +- Støder over 21+ UI sprog +- Uafhængig konfiguration af udgangssprog +- Støtte for batchoversættelse + +### 5. **Diagramgenerering** +- **Mermaid**: Flødediagrammer, sekvens-, klass-, tilstand-, ER- og Gantt-diagrammer +- **JSON Canvas**: Obsidian indbyggede layouter +- **Vega-Lite**: Datacharter, tidsserier og scatterplotter +- **HTML / Redigerbare HTML/SVG**: Selvstændige figurartefakter med semantiske annotationer +- **Draw.io / Drawnix-artefaktgrænser**: Eksporveje til vedligeholdere fra samme semantiske figurmodell +- **Vejmappe for kretsdiagrammer**: Støtte for circuitikz/TikZJax designes omkring guldstandarder, begrænsede prompts, renderingsfeedback og validering af topologi/layout fremfor ukontrolleret LLM TikZ +- **Forsikringsdiagnostik**: Renderartefakter kan vise kompilations- og renderingsfejl, og ikke-inline-kilder kan undersøges uden at kræve en LaTeX-runtime på plugin-side +- Automatisk retning af Mermaid-fejl + +### 6. **En-klik-virksomheder** +- Koble flere handlinger sammen til siderbarnsknapper +- Definisjon af arbejdsskema baseret på DSL +- Eksempel: `add-links > extract-concepts > research > diagram` + +## Hver bør bruge Notemd? + +✅ **Forskere** der læser artikler og opbygger litteraturoversigter +✅ **Studenter** der organiserer studienotater og skaber konceptkort +✅ **Videnstjänstemænd** som ønsker at læsingsinsights gemmes +✅ **Dobbelttalsprofessionelle** der behøver oversættelse + wiki-linking +✅ **Brugere med fokus på privatliv** som ønsker lokal LLM-støtte (Ollama) +✅ **Kraftige brugere** der anpasser prompts og arbejdsskema + +## Hvorfor Notemd + Obsidian? + +**Obsidian** er en lokal-forstød, markdown-baseret videnbas. **Notemd** tilføjer AI-superkrafter: +- Dina data bliver i din skab (ikke i en cloud-tjeneste) +- Virker offline med lokale modeller +- Gratis og open source (MIT-licens) +- Integreres med eksisterende Obsidian-pluginer +- Skalerer til ti tusinders af noter + +## Start med + +1. **Installér**: Indstillinger → Community Plugins → Gennemse → "Notemd" +2. **Konfigurér**: Tilføj din LLM-udbyderes API-nyckel (eller brug lokal Ollama) +3. **Prøv det**: Åbne en note → Højreklik → "Process file (add links)" +4. **Udforsk**: Kig på sidebaren for en-klik-virksomheder + +👉 [Installation Guide](./getting-started/installation) | [Quick Start Tutorial](./getting-started/quick-start) + +## Richtning for diagramfunktioner + +Notemd's diagramar beveger sig bort fra at "be modelen om at skrive en syntaksstrang" og mod en lagret pipeline: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +Den nuværende implementation understøtter allerede Mermaid, JSON Canvas, Vega-Lite, HTML-fallback, redigerbare HTML/SVG, Draw.io XML-artefakter, en minimal Drawnix JSON-undermengde, forhåndsvisningssdiagnostik/kilde-alene fallback, og en offline `CircuitSpec -> circuitikz`-prototyp for common-source og CMOS inverter golden templates. Kretsdiagrammer er en sværere klas: circuitikz kan fremstille præcise elektriske topologier, men ukontrolleret LLM-udgang producerer ofte ulesbar routning eller ikke-renderende LaTeX. Næste retning er at holde circuitikz begrænset med golden-reference templates, node-grid layout-regler, renderingsdiagnostik og skærmbild-feedbackloop. + +Læs detaljerne i [Diagrams](./features/diagrams). + +## Arkitektur + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd mod andre Obsidian AI-pluginer + +De fleste Obsidian AI-pluginer er konversationsfokuserede (du spørger, AI svarer, insikter bliver i chaten). Notemd er **skriv-fokuseret**: AI processerer dine noter og skriver strukturerede resultater direkte ind i din vault. + +| Funktioner | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| Automatisk wiki-link-indsætning | Ja | Nej | Nej | Nej | +| Konceptnoter generering | Ja (med backlinks + deduplikation) | Nej | Nej | Nej | +| Diagrammer generering | Ja (Mermaid, Canvas, Vega-Lite, HTML, redigerbare artefakter) | Nej | Nej | Nej | +| Integration af web-research | Ja (Tavily + DuckDuckGo) | Nej | Nej | Nej | +| Batch-folderbehandling | Ja | Begrænset | Nej | Begrænset | +| Modellrute til hver opgave | Ja (7 opgaver, uafhængige modeller) | Nej | Nej | Nej | +| En-klik-virksomhedskedjer | Ja (DSL) | Nej | Nej | Nej | +| Oversætning (batch) | Ja | Nej | Nej | Nej | +| Chat med vault | Nej | Ja | Nej | Nej | +| Semantisk similaritetssearch | Nej | Nej | Ja | Nej | +| Generering baseret på template | Nej | Nej | Nej | Ja | +| LLM tilbydere | 36 (cloud + gateway + lokal) | 3-5 | 2-3 | 3-5 | +| Fullt offline | Ja (Ollama) | Delvis | Delvis | Delvis | + +**Når du skal vælge Notemd**: Du vil, at AI bygger en permanent kunstig intelligens-graf – ikke bare at diskutere dine notater. + +**Når du skal vælge Copilot**: Du ønsker en konversationsbaseret AI-assistent i Obsidian. + +**Når du skal vælge Smart Connections**: Du vil opdage eksisterende forhold mellem noter gennem semantisk søgning. + +## Filosofi + +**Notemd anser, at AI bør styrke menneskers kognitive arbejde, ikke ersatte det.** Pluginet: +- Håller dig under kontrolle (gennemgå før du applikerer ændringer) +- Bevarer konteksten (alle resultater refererer tilknytning til kilden) +- Respekterer privatlivet (lokalt LLM-støtte, ingen telemetry) +- Forbliver ekstensibel (åbne APIs, egne arbejdsmetoder) + +## Open Source + +- **Licens**: MIT +- **Kildekod**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **Samfund**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **Bidrag**: PRs er velkomne, se [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +**Næste trin**: [Installation →](./getting-started/installation) diff --git a/website/i18n/da/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/da/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..c0b23476 --- /dev/null +++ b/website/i18n/da/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Obsidian AI-videnstyringsguide" +description: "Komplet guide til at bygge en sammenkobret videnbas med AI – fra wiki-link og konceptudhulling til forskning, oversætning og diagramgenerering" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Obsidian AI-videnstyringsguide + +<TLDR> +**Notemd omvandler LLM-drivet læsning til permanent viden: wiki-link kobler sammen koncepte, konceptnoter skaber en tilgængelig graf, forskning bringer webben ind i din vault, oversætning bruder språkbarrierer, diagrammer gør strukturen synlig, og arbejdsmuligheder koble alt sammen med én klik.** Dette guide dekker hele processen – fra rå noter til en sammenkobret, visuel, multilingvæl videnbas. +</TLDR> + +## Hvorfor AI-videnstyring? + +Traditionel notering skaber flat filer. Selv med manuelle wiki-link bliver de fleste noter uforbindt. Notemd bruger LLM for at automatisere forbindelseslaget: + +- **LLMs læser din indhold** og identificerer hvad der er vigtigt – termer, metoder, personer, teorier +- **Linker indsættes automatisk** ved hver konceptoptrædelse, ikke begravet i "se også" +- **Konceptnoter genereres** som uafhængige, tilgængelige filer +- **Forskning berikker noterne** med kontekst fra webben +- **Diagrammer gør strukturen synlig** – mindmapper, flødeplaner, datacharte fra samme indhold + +Resultatet: en videngraf som vokser med hver note du bearbejder, ikke kun når du husker at tilføje link. + +## Helen processen + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +Hver trin er uafhængigt. Brug én eller alle. Den mest effektive sekvens: **Tilføj link → Konceptnoter → Diagrammer**. + +--- + +## 1. Wiki-link: At gøre forbindelser eksplisite + +Wiki-link er ryggraden i en videngraf. Notemd bruger en LLM til: + +1. Læs indholdet i din note (del op i deler for lange dokumenter) +2. Identificer kernkoncepte – prioriterer specifikke, tekniske termer over generelle substantiver +3. Indsæt `[[wiki-links]]` ved hver optrædelse +4. Undertryk synonyme så at "ML" og "Machine Learning" ikke skaber separate node'er + +### Når man bruger det + +- **Alle noter >100 ord** – kortere noter gir få koncepter +- **Forskningsartikler, tekniske dokumenter, mødesnoter** – rige i domænespecifikke termer +- **Efter indholdet er stabilt** – behandle ikke udarbejdelser gennemgående + +### Vigtige indstillinger + +| Indstilling | Anbefales | Hvorfor | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek eller GPT-4o-mini | God nøjagtighed til lave kostnader | +| Synonymundertrykking | Aktivt | Forhindrer duplikate node'er | +| Contextvindue | Paragraph | Balancen mellem præcision og kost | + +→ [Wiki-Links deep dive](/docs/features/wiki-links) + +--- + +## 2. Konceptnoter: Retterbarhed af kunnskapsnodeer + +Wiki-linker forbinde idéer inline, men konceptnoter gør hver idé uafhængigt retterbar. Hver koncept får sin egen `.md` fil: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### Udtagningsprocessen + +Prompten for LLM er meget struktureret: +- Normalisér til singularform +- Favoriser multiord-koncepter over enkelte ord ("Dielectric Relaxation" ikke "Relaxation") +- Skriv af referencer/bibliografiske afsnit +- Udgiv som `CONCEPT:` linjer for deterministisk parsing + +Koncepter fjernes duplikater mellem blokker gennem `Set<string>`. LLM fejl i enkelte blokker stopper ikke operationen. + +### Backlinks + +Hvis aktiveret, følger hver konceptnote hvilke kildekoncepter nævner det. Obsidian's indbyggede backlink-panelet viser også omvendte forbindelser. + +### Deduplikering + +Notemd's 4-trinns dedup-motor finder: +1. **Præcise matcher** — sammenligning af filnavne uafhængigt af store/billede bogstaver +2. **Mangeform** — "Models.md" mod "Model.md" +3. **Symbolnormalisering** — "A-B.md" mod "A B.md" +4. **Enordighedsindhold** — "ML.md" markeres når "Machine Learning.md" eksisterer + +### Klædesetningar + +| Indstilling | Anbefalet | Hvorfor | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` eller `🧠 concepts/` | Holdt vault-organiseret | +| `extractConceptsAddBacklink` | Aktivt | Muliggør omvendt søgning | +| `extractConceptsMinimalTemplate` | Inaktivt | Komplet modell med Linked From | +| Modell per opgave | DeepSeek | Konceptuddragelse kræver ikke dyre modeller | +| Synonymsuppression | Aktivt | Samme indstilling påvirker både linkning og uddrag | + +→ [Concept Notes deep dive](/docs/features/concept-notes) + +--- + +## 3. Forskning: At bringe webben ind + +Notemd integrerer websearch i din noteringsworkflow: + +1. **Udfordringsoprettelse** — din notetitel eller udvalg bliver en søgeudfordring +2. **Websearch** — Tavily (anbefales, kræver API-klæde) eller DuckDuckGo (gratis, ingen klæde) +3. **LLM sammanfattelse** — søgeresultaterne condenseres til en relevant sammanfattelse +4. **Føj til noten** — sammanfattelsen tilføjes ved markørens position eller som en ny sektion + +### Når man bruger det + +- Fore før man bearbejder et nyt emne — få webkonteksten først +- Når en konceptnot behøver beregning — forske og tilføj derefter links +- For litteraturoversigter — forske i batch over en mapp med noter + +### Vigtige indstillinger + +| Indstilling | Anbefales | Hvorfor | +|---------|-----------|-----| +| `researchProvider` | GPT-4o eller Claude | Forskningen kræver en højere kvalitet på sammanfattelser | +| Søgestyrelse | Tavily | Bedre relevans, konfigurerbar dybde | +| `maxResearchContentTokens` | 4000 | Balanc mellem dybde og kost | + +→ [Research deep dive](/docs/features/research) + +--- + +## 4. Oversættelse: At bruge bryggerier mellem sprog + +Notemd oversætter noter med den konfigurerede LLM du har – ikke en speciel oversættelses API-løsning. Det betyder at. + +- **Oversættelser med kontekstforståelse** – LLM forstår hele dokumentet, ikke kun sæt for sæt +- **Hantering af tekniske termer** – "gradient descent" bliver "梯度下降" og ikke "坡度向下" +- **Støtte for batch-oversættelser** – oversæt hele mapp med noter i én gang +- **Modell til hver opgave** – brug Gemini Flash til oversættelse (snabb, billig, multilingual) + +### Sprogstøtte + +Notemd selv støder 21 UI sprog. Oversættelsesmålet kan konfigureres for hver opgave. Almindelige par: EN↔ZH, EN↔JA, EN↔KO, EN↔DE, EN↔FR, EN↔ES. + +→ [Translation deep dive](/docs/features/translation) + +--- + +## 5. Diagrammer: At gøre strukturen synlig + +Notemd's diagrampipeline er baseret på specifikationer: LLM genererer en strukturret `DiagramSpec` JSON, som derefter adaptere oversætter til målformatet. Dette gir mer tillidswærdige resultater end at bede LLM om rå Mermaid-syntax. + +### Intent Detection + +Notemd afleder den bedste diagramtyp fra indholdet: + +- **Tabeller med tal** → datachart (Vega-Lite) +- **Klient/server-vokabular** → sekvensdiagramm (Mermaid) +- **Entitet/hovednyckel** → ER-diagramm (Mermaid) +- **Trin/processflød** → flødechart (Mermaid) +- **Konceptkortens nøgleord** → JSON Canvas (Obsidian native) +- **Standard** → mindmap (Mermaid) + +### Rendering Chain + +Primært mål → fallback → fallback → HTML. Hvis Mermaid-syntaxen fejler, prøver det en gang med fejlkontekst til LLM, og falder deretter tilbake til et minimalt diagram. + +### Nyckelindstillinger + +| Indstilling | Anbefalt | Hvorfor | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | På | Bedre kvalitet gennem specifikation først | +| `experimentalDiagramCompatibilityMode` | `best-fit` | Native mål for hver intent | +| `summarizeToMermaidProvider` | GPT-4o eller Claude | Diagramspecifikationer kræver rumlig resonans | +| `autoMermaidFixAfterGenerate` | På | Fanger LLM-syntaxfejl automatisk | +| Stærkning af lokalt viden | Aktiveret for domænspecifikke tilfælde | Forbedrer præcision med vault-context | + +→ [Diagrams deep dive](/docs/features/diagrams) + +--- + +## 6. Arbejdsmønster: En-klik automatisk handling + +Arbejdsmønster kører flere opgaver gennem en enkelt sidebarn-knapp. DSL-formatet er: + +``` +task1 | task2 | task3 +``` + +Eksempel: `addLinks | extractConcepts | generateDiagram` — bearbejde en note fra rå tekst til en fuldt koblet, visuel videnstegn med en enkelt klik. + +### Anbefalede arbejdsmønster + +| Arbejdsmetode | Kedje | Brugsscenario | +|----------|-------|----------| +| Helt proces | `addLinks \| extractConcepts \| generateDiagram` | Nye noter | +| Forskning først | `research \| addLinks` | Ukendte emner | +| Polyglot | `translate \| addLinks` | Multilingvale noter | +| Kun diagram | `generateDiagram` | Snabb visualisering | + +→ [Workflows deep dive](/docs/features/workflows) + +--- + +## 7. LLM Tjänsteudbydere: 36 valmuligheder fra cloud til lokal + +Notemd understøtter 36 tjenesteudbydere over 4 transporttyper. Vigtige grupper: + +- **Internationel cloud**: OpenAI, Anthropic, Google, Mistral, xAI +- **Kinesisk cloud**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **Gatewayer**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **Lokal**: Ollama, LMStudio, OVMS — ingen API-klave, ingen data leaves your machine + +### Strategi for modellbrug per opgave + +Den mest kosteffektive indstilling bruger billige modeller for enkle opgaver og kraftfulde modeller for komplekse opgaver: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [LLM Tjänsteudbydere-overblik](/docs/providers/overview) + +--- + +## Checkliste for at starte + +1. **Installér Notemd** — [Community Plugins](/docs/getting-started/installation) (anbefales) eller manuelt +2. **Konfigurér en tjenesteudbyder** — DeepSeek (enkeltest), OpenAI, eller Ollama (gratis) +3. **Behandle din første note** — højreklik → "Process file (add links)" +4. **Stil konceptmappen** — Indstillinger → Notemd → Udskrift → Konceptmapp +5. **Udtræk koncepter** — køre "Udtræk koncepter" på samme note +6. **Generer en diagram** — køre "Generer diagram" for at visualisere forbindelserne +7. **Skabe en workflow** — koble de ovenstående til en en-klik-knapp + +## Anbefalede konfigurationer + +### Student (Budget) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### Forsker (Kvalitet) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### Privatliv i førstehand (Local Only) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### To-sproget (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## Almindelige mønster + +### Mønster: Behandle en forskningsartikel + +1. Importér PDF-indhold (eller klippe inn) +2. **Forskning** — hente webkontekst om emnet +3. **Tilføj links** — identificer og lige til nøglekoncepter +4. **Udtræk koncepter** — skabe uafhængige notes +5. **Generer diagram** — visualisere artiklets struktur + +### Mønster: Daglig noteforbedring + +1. Skriv daglig note +2. **Føj links** — forbinde dagens idéer med eksisterende koncepter +3. Konceptnoter opdateres automatisk med backlinks + +### Mønster: Litteraturoversigt + +1. Skap et mapp med artikler/noter +2. **Føj links i batch** — bearbejde hele mappen +3. **Fjern duplikate koncepter** — rengør næstændig identiske noter +4. **Generer diagram** — mindmap over hele litteraturen + +--- + +*Notemd er open source (MIT) og virker med Obsidian 0.15.0+ på alle platforme. [Installér nu](/docs/getting-started/installation) eller [se på GitHub](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/da/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/da/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..aab1c24f --- /dev/null +++ b/website/i18n/da/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "Konfigurér Anthropic Claude" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Anthropic Provider + +<TLDR> +**Anthropic bruger den indbyggede Messages API-transport, ikke den OpenAI-kompatible transport.** Den nuværende forvalg standardiseres til `claude-3-5-sonnet-20240620`, `https://api.anthropic.com` og `temperature: 0.5`. Behandle det som en separat protokollyde ved fejlfinding. + +Dette er en del af [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Indstilling + +Skap en Anthropic API-klæde, tilføj en `Anthropic`-providerprofil, og lade Base URL på den indbyggede endpoint, så lenge du ikke routerer gennem en dedikeret gatewayprofil. Vælg den Claude-modell-ID du vil bruge i feltet modell; standardværdien holder den nuværende produktbasen stabil. + +Anthropic er en god valgmulighed for højkvalitativ sammanfattelse, forskningssynthese og konceptuddrag. Hvis du blander det med billigere leverandører, sæt det kun på de opgaver, der benefiterer af dens udgangskvalitet. + +## Endpoint og autentisering + +| Felt | Nuværende forvalg | +|-------|----------------| +| Transport | `anthropic` | +| API-klæde | Required | +| Base URL | `https://api.anthropic.com` | +| Standardmodell | `claude-3-5-sonnet-20240620` | +| Temperature | `0.5` | +| Kontakttest | Kun chat | + +Køringsmiljøet sender anmodninger til `/v1/messages` med `x-api-key` og `anthropic-version: 2023-06-01`. Konfigurér ikke en OpenAI-stil `/v1/chat/completions`-endpoint under dette forvalg; brug istedet et OpenAI-kompatibelt gatewayforvalg. + +## Modelludvikling + +Anthropic bruger `anthropic-models`-discovery-modusen i provider-registret. Hvis din nøgle eller konto ikke kan liste modeller, gem en kendt model-ID i profilen og valider gennem forbindelsesprøven. + +Transporten er ikke udskiftelig med OpenAI-kompatible providere. En Claude-modell, der ruteres gennem OpenRouter, LiteLLM eller en anden gateway, tilhører den respektive gateway-profil, ikke den nativte Anthropic-profilen. + +## Felsøgning + +- `401` eller `403`: Kontroller nøkkelområde, adgang til arbejdsområde, fakturering og om nøkkelnen tilhører det forventede Anthropic-arbejdsområde. +- `404`: Den base URL er fejl eller den valgte model-ID er ikke tilgængelig for kontoen. +- Gateway-stil Claude-modell-IDs falder: Flyt profilen til den tilsvarende gateway-provider, fordi nativ Anthropic forventer nativte modellnavne. +- Lange anmodninger falder senere: Redskær deg af større modeludgangstørrelser per opgave eller brug en modell med højere kendt udgangstoken-ceiling. + +## Når man skal bruge det + +Brug Anthropic, når kvaliteten på syntese, forskningsnoter eller struktureret skrivning er vigtigere end ren kost. Brug ikke det som en generel OpenAI-kompatibel fallback; den separate transport er poenget, og at blande protokoller gør diagnosen sværere. + +--- + +## Næste trin + +- [LLM Providere](/docs/providers/overview) -- Full konfiguration, modeller per opgave og retry-logik +- [Løsning af problemer](/docs/advanced/troubleshooting) -- Fix 401/403 og forbindelsesfejl diff --git a/website/i18n/da/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/da/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..e8bb2144 --- /dev/null +++ b/website/i18n/da/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "Kinesiske leverandører" +description: "Konfigurér Qwen, DeepSeek, GLM osv." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Kinesiske leverandører + +<TLDR> +**Notemd understøtter leverandører i Kina og med kinesisk oprindelse gennem hovedsageligt OpenAI-kompatible endpointer.** Den nuværende listen inkluderer DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, MiniMax, Baidu Qianfan, SiliconFlow, Huawei Cloud MaaS og Z AI. Værdien er regional tilgængelighed og kostkontrol; risikoen er leverandørspecifikt modellnavn og kontoåbning. + +Dette er en del af [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Indstilling + +Skap et konto for leverandøren, generer en API-nyckel, og vælg derefter den tilsvarende Notemd-forudstillede leverandør i stedet for at bruge en generisk OpenAI-profil. Forudstillingen har den standardmæssige Base URL, modellen, API-testmodusen, modellopdagelsesbehavioren og alle leverandørspecifiske UI-felt. + +Brug modellvalg per opgave aktivt her. F.eks. hold DeepSeek eller GLM i arbejder med tung resonemang, brug Qwen eller Moonshot for bred kinesisk språkbrug, og diriger kodingsopgaver til Qwen Code når kontoen exponerer kodermodeller. + +## Endpoint og autentisering + +| Leverandør | Standardmodell | Base URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (kræves endpoint ID) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**Opmerkning:** Doubao kræver en Ark endpoint ID (format: `ep-xxxxxxxx-xxxx-xxxx`) i stedet for et standardmodellnavn. + +De fleste af disse leverandører bruger den delte OpenAI-kompatible kørselsumgebung, men deres konto- og modellsemantik skiller sig. Hold den forudstillelsespecifikke Base URL, medmindre du har verificeret kontoens alternative endpoint. + +## Modelludvikling + +DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan og SiliconFlow bruger OpenAI-kompatible modellopdagelse, når leverandøren understøtter listing. Huawei Cloud MaaS bruger `huaweicloud-modelarts-models`-modusen, fordi ModelArts deployment metadata ikke er identisk med en generisk `/v1/models`-liste. + +Behandle fejl i opdagelse ikke som bevis på, at chat er umuligt. Nogle leverandører tillader chat, mens de begrænser modell-liste-rettighederne. I så fald hold en eksplisit modell ID i profilen og valider med connection test. + +## Felsøgning + +- Autentiseringen lykkes, men chat fejler: modellnavnet kan være udenfor kontoens tilladelser eller region. +- Doubao fejler med et normalt modellnavn: brug Ark endpoint ID i modelfeltet, hvis din deployment kræver det. +- Resonemangssvarer er trunkerede: kontroller leverandørspecifiske maksimal udgangstokens og Notemd's modellorienterede maks-tokensindstillinger. +- Regional netværk varierer: brug leverandørens Kina-region endpoint, når vault maskinen er i Kina; brug den internationale endpoint kun, når både kontoen og netværksvejen er gyldige. + +## Når man skal bruge det + +Brug kinesiske leverandører, når regional latens, adgang til betalinger/konti, kvalitet på kinesisk språk eller kost er den primære begrænsning. Vælg direkte OpenAI, Anthropic, Google eller lokale leverandører, hvis du behøver en enklere protokollgrænse eller stærkere konsekvens i fejlfinding mellem leverandører. + +--- + +## Næste trin + +- [LLM Providere](/docs/providers/overview) -- Full konfiguration, modeller per opgave og retry-logik +- [Løsning af problemer](/docs/advanced/troubleshooting) -- Fikser problemer med regional konektivitet og autentificeringsfejl diff --git a/website/i18n/da/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/da/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..b2592cb8 --- /dev/null +++ b/website/i18n/da/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "Konfigurér Google Gemini" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Google Provider + +<TLDR> +**Google bruger den indbyggede Gemini Generative Language API-transport.** Den nuværende preset defineres som `gemini-2.0-flash-exp`, `https://generativelanguage.googleapis.com/v1` og `temperature: 0.5`. Det er ikke en OpenAI-kompatibelt profil. + +Dette er en del af [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Indstilling + +Skab en Google AI Studio eller Google Cloud API-nyckel med Gemini-adgang, tilføj en `Google`-providerprofil og beholde den indbyggede Generative Language Base URL. Brug den standardmæssige Gemini Flash-profil for hurtig oversættelse og brede noterarbejdsfloder, og overskriv modeller per opgave når du behøver en større eller mere kapabel Gemini-modell. + +Undgå at placere Gemini-modell-ID'er i en OpenAI-kompatibelt profil, medmindre du eksplisit bruger en gateway, der exponerer Gemini gennem en OpenAI-kompatibel API. + +## Endpoint og autentisering + +| Felt | Nuværende forvalg | +|-------|----------------| +| Transport | `google` | +| API-klæde | Required | +| Base URL | `https://generativelanguage.googleapis.com/v1` | +| Standardmodell | `gemini-2.0-flash-exp` | +| Temperature | `0.5` | +| Kontakttest | Kun chat | + +Køringen kaller på `/models/{model}:generateContent?key={apiKey}`. Nyckelen sendes som en søgeparameter, fordi så er den indbyggede Gemini-endpunkt koblet i pluginet. + +## Modelludvikling + +Google bruger `google-models`-discovery-modusen. Discovery bør returnere Gemini-modeller, der er tilgængelige for API-nyckelen; hvis selektoren er tom, teste nyckelen mod samme Base URL og bekræft, at modellfamilien er aktiveret for kontoen. + +Kendte output-token-grænser er modelopmærksomme i provider-registret. Hvis en lang oversættelse eller diagramforklaring tronkes, vælg en Gemini-modell med en højere støttet outputgrænse eller redskab den forespurgte outputstørrelsen. + +## Felsøgning + +- `400`: Modell-ID'en matcher ofte ikke den indbyggede Gemini-rute, eller anmodningen overstiger modellenes støttede format. +- `401` eller `403`: Kontroller nyckelrestriktioner, projekt/API-aktivering og om nyckelen kan få adgang til Gemini. +- `404`: Modell-ID'en er ikke tilgængelig i den konfigurerede API-version. +- Gateway-exempel fejler under denne profil: Brug gateway-presetten istedet for den indbyggede Google-provider. + +## Når man skal bruge det + +Brug Google for hurtig oversættelse, stort omfang af noterrensning og arbejdsfloder, hvor Geminis kostnads/performans-forhold er bedre end direkte OpenAI eller Anthropic. Vælg en anden provider for arbejdsfloder, der kræver OpenAI-kompatibel resonemangsmodellhantering. + +--- + +## Næste trin + +- [LLM Providere](/docs/providers/overview) -- Full konfiguration, modeller per opgave og retry-logik +- [Translation](/docs/features/translation) -- Gemini Flash anbefales for omfattende oversættelsesopgaver diff --git a/website/i18n/da/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/da/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..c7a547bf --- /dev/null +++ b/website/i18n/da/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "Lokale modeller" +description: "Konfigurér Ollama og lokale LLMs" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# Lokale modeller + +<TLDR> +**Lokale leverandører holder indholdet bort fra hostede APIs.** Den aktuelle lokale path dekker Ollama med den nativte `ollama`-transporten og LMStudio gennem den OpenAI-kompatible transporten. Ingen API-klæde er nødvendig for hvilken path som helst, men den lokale server og modellen må allerede være i gang. + +Dette er en del af [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Indstilling + +For Ollama: Installer Ollama, hente den modell du ønsker, starte serveren og tilføj en `Ollama`-leverandørprofil i Notemd. For LMStudio: Læd en modell i LM Studios lokale server og tilføj en `LMStudio`-leverandørprofil. + +Lokale modeller er operationelle afhængigheder, ikke bare indstillinger. Notemd kan kun kalle det, som den lokale proces exponerer, så overvåg den lokale modellen udenfor Obsidian før du felsøger pluginen. + +## Endpoint og autentisering + +| Leverandør | Base URL | Standardmodell | API-Klæde | Opmerkninger | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | Ikke nødvendigt | NDJSON-strømning; modelludvikling gennem `/api/tags` | +| LMStudio | `localhost:1234/v1` | `local-model` | Ikke nødvendigt | Sendes `"EMPTY"` som bearer-token; OpenAI-kompatibelt | + +Ollama bruger den nativte `/chat`-path under sin Base URL. LMStudio følger den OpenAI-kompatible `chat/completions`-rute og forventer en modell, der er læst i den lokale server. + +## Modelludvikling + +Ollama bruger `ollama-tags`-udviklingsmodusen og listar lokalt hentede tags. LMStudio bruger OpenAI-kompatibel modelludvikling, når dens server exponerer `/v1/models`. + +Hvis udviklingen returnerer ingenting, er det ofte en problem med tilstanden på den lokale server: modellen er ikke hentet, ikke læst, eller serveren er bundet til en anden host/port end profilen. + +## Felsøgning + +- Kontakt afvist: Start Ollama eller LM Studio og confirmer den konfigurerede port. +- Modell ikke fundet: Hent Ollama-taggen eller læd den LM Studio-model før du prøver. +- Langsommelig udgang: Redukér kontekststørrelsen, brug en mindre lokal modell, eller diriger tunge opgaver til en hostet leverandør. +- Tomme eller fejlformede svar: Confirrer, at den valgte leverandørprofil overensstemmer med den lokale servers protokol; Ollama og LMStudio er ikke udskiftelige. + +## Når man skal bruge det + +Brug lokale leverandører for private skatterommer, offline-arbejde eller billige, repetitive opgaver. Antag ikke automatisk, at lokal løsninger er bedre for forskningssynthese eller langvarigt resonemang; modellkvalitet og hardwarebegrænsninger er kompromissen. + +--- + +## Næste trin + +- [LLM Leverandører](/docs/providers/overview) -- Full konfiguration og modellindstilling per opgave +- [Løsning af problemer](/docs/advanced/troubleshooting) -- Fikser fejl for connection-refused, når den lokale server ikke køres diff --git a/website/i18n/da/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/da/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..310e97b9 --- /dev/null +++ b/website/i18n/da/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "Konfigurér OpenAI (GPT-4, GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# OpenAI Provider + +<TLDR> +**OpenAI bruger den delte OpenAI-kompatible overførsel.** Den aktuelle forinstillingen er `gpt-4o`, `https://api.openai.com/v1`, `temperature: 0.5` og `models-then-chat`-kontakttesten. Brug denne side, når du behøver præcise feltsemantik; brug overblikket [LLM Providers](/docs/providers/overview) for valg på kategorienivå. + +Dette er en del af [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Indstilling + +Skap en OpenAI API-klæde, tilføj en `OpenAI`-udbyderprofil i Notemd-indstillingerne, og behold den standardmæssige Base URL, medmindre du intentionelt peker på en OpenAI-kompatibel gateway. Modelfeltet kan blive `gpt-4o` for generelt arbejde eller erstattes af en anden OpenAI-modell-ID, som din konto kan kalle. + +Brug modeller specifikt til opgaver for kostkontrol: behold stærkere modeller til forskning, konceptuddragelse og langformig omstrukturering; brug billigere eller hurtigere modeller til oversætning, linksforslag og korte sammanfattelser. + +## Endpoint og autentisering + +| Felt | Nuværende forvalg | +|-------|----------------| +| Transport | `openai-compatible` | +| API-klæde | Required | +| Base URL | `https://api.openai.com/v1` | +| Standardmodell | `gpt-4o` | +| Temperature | `0.5` | +| Kontakttest | `/models`, derefter `/chat/completions` | + +Notemd normaliserer OpenAI-kompatible base URLs før det tilføjes `chat/completions` eller `models`. inkluder ikke en afsluttende `/chat/completions` i Base URL; det skaber en dupliceret path. + +## Modelludvikling + +OpenAI bruger den generiske OpenAI-kompatible modelludviklingspathen. Indstillingerne UI spørger først `/v1/models`, og validerer derefter den valgte modell med en letvægt chat-anmodning. Hvis udviklingen fejler men chaten fortsat virker, kontroller, om din klæde har tilladelse til model-liste eller om en gateway blokerer modelllisten. + +Reasoning-modeller behandles som en protokoll-eksempel: Notemd samler system- og brugerindstillinger for OpenAI-reasoning-IDer, som afviser en separat `system`-rolle, og det viser kun `reasoningEffort`, hvor udbyderdefinitionen støtter det. + +## Felsøgning + +- `401` eller `403`: kontroller klæden, projektadgang, faktureringstilstand og om den valgte modell er aktiveret for klæden. +- `404` i chat: Base URL er ofte fejlig eller indeholder allerede `/chat/completions`. +- Modellen vises i dokumentationen men ikke i vælgeren: adgang til model-liste og chatadgang er separate fejlpunkter; prøv den præcise modell-ID manuelt i udbyderprofilen. +- Reasoning-modellen afviser meddelelser: brug en modell-ID, som er omfattet af OpenAI-reasoning-handlingspathen, eller skift til en ikke-reasoning chat-model. + +## Når man skal bruge det + +Brug OpenAI, når du vil have den mest forutsigelige standard-hostede path, når `/v1/models`-udviklingen er vigtig, eller når en arbejdsmetode afhænger af OpenAI-reasoning-modellsemantik. Vælg en gateway eller lokal udbyder, når routning, privatliv eller kostkontrol er vigtigere end direkte OpenAI API-behavior. + +--- + +## Næste trin + +- [LLM Providere](/docs/providers/overview) -- Full konfiguration, modeller per opgave og retry-logik +- [Troubleshooting](/docs/advanced/troubleshooting) -- Ret 401/403 og rate-limit-fejl diff --git a/website/i18n/da/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/da/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..a617d49b --- /dev/null +++ b/website/i18n/da/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "LLM Tjänsteudbydere" +description: "Konfigurér 36 LLM tjänsteudbydere — molnet, gateway og lokal — med val av modell per opgave" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# LLM Tjänsteudbydere + +<TLDR> +**Notemd støder 36 LLM tjänsteudbydere over 4 transporttyper.** Alle API anrop bruger rå HTTP (ingen SDK:er) med automatisk forsøg igen, transportfallback og 5-minutters cache for svar. Val af modell per opgave giver dig mulighed for at bruge billige modeller til konceptuddragelse og kraftfulde modeller til forskning. Ingen API-nyckel er nødvendig for lokale tjänsteudbydere (Ollama, LMStudio). +</TLDR> + +Dette er en del af [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). + +## Kategorier for tjänsteudbydere + +### Molnet-tjänsteudbydere + +| Leverandør | Standardbasen URL | Standardmodell | Temperature | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### Gateway-/Proxy-tjänsteudbydere + +| Leverandør | Standardbasen URL | Standardmodell | Opmerkninger | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | Lægger til `HTTP-Referer` + `X-Title`-heder | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | Lægger til `X-GitHub-Api-Version`-heder | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | Lægger til `APP-Code`-heder | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | Valgfri API-nyckel | +| **Ny API** | `localhost:3000/v1` | `gpt-4.1` | Valgfri API-nyckel | +| **OpenAI Compatible** | (anvenderekonfigureret) | `your-model-id` | Egen endpoint | + +### Kinesiske leverandører + +| Leverandør | Standard base URL | Standardmodell | Opmerkninger | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | Fokuseret på kodning | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (kræves endpoint ID) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | Zhipu, Kinas endpoint | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | Zhipu, international endpoint | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | Plattform for modellhosting | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao kræver en Ark endpoint ID** (format: `ep-xxxxxxxx-xxxx-xxxx`). Den standardmæssige placeringen må erstattes. + +### Lokale leverandører + +| Leverandør | Standard base URL | Standardmodell | Opmerkninger | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | Ingen API-klave. NDJSON-strømning. Modelludvikling gennem `/api/tags` | +| **LMStudio** | `localhost:1234/v1` | `local-model` | Sendes `"EMPTY"` som bearer-token. OpenAI-kompatibel udvikling | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (anvenderekonfigureret) | `gpt-4o` | Deployment-navn i URL. `api-key` header | + +## Modellval per opgave + +Notemd understøtter en uafhængig leverandør og modell for hver opgave. Aktiver med `useMultiModelSettings: true`. + +### Tilgængelige opgaver + +| Opgave | Indstillingssleutel | Standardleverandør | +|------|-------------|-----------------| +| Føj links (wiki-link-indsætning) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| Forskning (websearch + sammanfattelse) | `researchProvider` / `researchModel` | DeepSeek | +| Generer fra titel | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| Oversætning | `translateProvider` / `translateModel` | DeepSeek | +| Diagramgenerering | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| Konceptuddragelse | `extractConceptsProvider` / `Model` | DeepSeek | +| Ursprungstekstuddragelse | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### Løsningsordning + +1. Hvis `useMultiModelSettings` er aktiveret → brug den opgavespecifikke leverandør + modell +2. Hvis overraskelse af opgavemodellen er tom → falde tilbake til leverandørens standardmodell +3. Hvis opgaveleverandøren er ugyldig → falde tilbake til den globale `activeProvider` +4. Hvis `useMultiModelSettings` er slukket → bruger alle opgaver det globale `activeProvider` + +### Anbefalede konfigurationer + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## API Kaldarkitektur + +### Transportlag + +1. **Obsidian `requestUrl`** — primært (indbygget, virker på alle platforme) +2. **Desktop HTTP** — Node.js `http`/`https` moduler (strømning + lange anmodninger) +3. **Web `fetch`** — fallback når Node.js moduler er utilgængelige + +Pluginen eskalerer automatisk mellem transportlag på tidsvarende netværksfejl. + +### Gennemføringslogik + +- **Normalt mode** (`enableStableApiCall: false`): En enkelt forsøg. Ved tidsvarende fejl eskaleres det automatisk til et stabilt gennemførsel. +- **Stabilt gennemføringsmode** (`enableStableApiCall: true`): Op til 4 forsøg (1 + 3 gennemførelser) med 5 sekunders intervalle. +- **Tidsvarende fejl, der utløser gennemførsel**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **Udgivelsesfri**: HTTP 400, 401, 403, 404 + +### Svarcaching + +5-minutters LRU-cache i minnet, keydet af leverandør + modell + temperatur + prompt + indhold. Folgende identiske anmodninger indenfor 5 minutter returnerer cacheede resultater omedelbart. + +### Hantering af resonemangsmodeller + +Modeller, der ikke understøtter `system`-rollen (DeepSeek R1, OpenAI o1/o3/o4/gpt-5), har automatisk system- og brugerprompter kombineret til en enkelt brugermeddelelse. + +DeepSeek-specifik: `thinkingEnabled` tilføjer `{ thinking: { type: 'enabled' } }` til anmodningen. `reasoningEffort` (lave/midlere/høje) sendes som `reasoning_effort`. Kontrollerer, at maksimal udgangstal af token er ≥ 8000, når tænkning er aktiveret. + +### Token-estimering + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — heuristik med 4 tegn per token. Bruges til at sikre `maxResearchContentTokens` før sendelse til LLM. + +Der er ingen kostholdning implementeret. + +## Modelludvikling + +| Modus | Tilbydere | Endpoint | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | Modellliste API | +| `anthropic-models` | Anthropic | Modellliste API | +| `openai-compatible-models` | DeepSeek, Qwen, Mistral, osv. | `/v1/models` | +| `openrouter-models` | OpenRouter | Modellliste API | +| `github-models` | GitHub Models | Inferenc API | +| `none` | Azure OpenAI | Udfyldt (kræver udviklingsnavn) | + +## Snabb start + +1. **Vælg en tilbyder** — DeepSeek (Kina), OpenAI (Internationelt) eller Ollama (Lokal/Frit) +2. **Indtast API-koden** — Indstillinger → Notemd → Tilbyder → API-kode +3. **Prøv forbindelsen** — Klik på prøv-knappen +4. **Valgfrit: Modeller per opgave** — Aktiver `useMultiModelSettings` og konfigurér dem individuelt + +For Ollama: der er ingen API-klæde nødvendig. Sikre dig bare for at `ollama serve` er i gang. + +--- + +## Næste trin + +- 📝 [Konceptnoter](/docs/features/concept-notes) — Bruger modellen til extraction per opgave +- 🎨 [Diagrammer](/docs/features/diagrams) — Bruger diagrammodellen per opgave +- 🔍 [Forskning](/docs/features/research) — Bruger modellen specifikt for forskning +- ⚙️ [Konfiguration](/docs/getting-started/configuration) — Fuld referens over indstillinger diff --git a/website/i18n/da/docusaurus-theme-classic/footer.json b/website/i18n/da/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/da/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/da/docusaurus-theme-classic/navbar.json b/website/i18n/da/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/da/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/el/code.json b/website/i18n/el/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/el/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/el/docusaurus-plugin-content-docs/current.json b/website/i18n/el/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/el/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/el/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/el/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..b107fd69 --- /dev/null +++ b/website/i18n/el/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "Μαζική επεξεργασία" +description: "Επεξεργάζονται πολλά αρχεία με αποδοτικότητα" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# Μαζική επεξεργασία + +<TLDR> +**Notemd επεξεργάζεται ολόκληρους τους φάκελους σε μία ενέργεια, με δυνατότητα ρύθμισης της συγχρονιστικότητας και ελέγχου αντικατάστασης.** Κάντε δεξί κλικ σε έναν φάκελο για να προσθέσετε μαζικά συνδέσμους wiki, να εξαγάγετε έννοιες, να κάνετε έρευνα ή να μεταφράσετε όλες τις σημειώσεις που υπάρχουν μέσα του. Οι όρια συγχρονισμού αποτρέπουν σφάλματα περιορισμού ταχύτητας API. Η πρόοδος αναφέρεται για κάθε αρχείο. Η συμπεριφορά αντικατάστασης είναι ρυθμίσιμη: παραλείψιμο των υπάρχοντων, προσθήκη ή αντικατάσταση. Τα αποτυχημένα αρχεία καταγράφονται χωρίς να διακόπτεται η μαζική επεξεργασία. + +Αυτό αποτελεί μέρος του [Obsidian Οδηγού Διαχείρισης Γνώσης AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Επισκόπηση + +Η μαζική επεξεργασία μετατρέπει έναν φάκελο με σημειώσεις σε μία μόνη ενέργεια. Αντί να ανοίγετε κάθε σημείωση και να εκτελείτε εντολές ξεχωριστά, κάνετε δεξί κλικ στον φάκελο και επιλέξτε την εργασία. Notemd περνάει μέσα από κάθε `.md` αρχείο, εφαρμόζει την επιλεγμένη ενέργεια και αναφέρει την πρόοδο σε πραγματικό χρόνο. + +Αυτή η δυνατότητα είναι απαραίτητη για την εξαγωγή γνώσης σε ολόκληρο το vault. Μετά την εισαγωγή δεκάδων PDF, για παράδειγμα, η μαζική προσθήκη συνδέσμων ακολουθούμενη από μαζική εξαγωγή έννοιων δημιουργεί το γράφο γνώσης σας σε λεπτά και όχι σε ώρες. + +## Πώς λειτουργεί + +### Μοντέλο μαζικής εκτέλεσης + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **Συλλογή αρχείων** -- Notemd σάρωνει τον στόχο φάκελο ρητικά (ή μόνο στο επίπεδο του κορυφαίου, ανάλογα με τις ρυθμίσεις) και συλλέγει όλα τα `.md` αρχεία. +2. **Χωρισμός συγχρονισμού** -- Τα αρχεία διαιρούνται σε μπλοκ κατά βάση της `batchConcurrency` ρύθμισης. Κάθε μπλοκ εκτελείται παράλληλα· τα μπλοκ εκτελούνται σε αλληλουχία. +3. **Εκτέλεση** -- Κάθε αρχείο επεξεργάζεται χρησιμοποιώντας την ίδια λογική με την εντολή για μόνο αρχείο. Σέβονται οι ρυθμίσεις του πάροχου και του μοντέλου ανά εργασία. +4. **Αναφορά προόδου** -- Μία ειδοποίηση toast ενημερώνεται μετά από κάθε ολοκληρωμένο αρχείο, δείχνοντας την `N / Total` πρόοδο. +5. **Διαχείριση σφαλμάτων** -- Αν ένα αρχείο αποτύχει (σφάλμα API, χρονική παραμόνη συνδέσμου κ.λπ.), το σφάλμα καταγράφεται και η μαζική επεξεργασία συνεχίζεται. Η τελική σύνοψη περιλαμβάνει όλα τα αποτυχημένα αρχεία. +6. **Ολοκλήρωση** -- Μία σύνοψη toast αναφέρει το συνολικό αριθμό των επεξεργασμένων, τα επιτυχή και τα αποτυχημένα. + +### Συμπεριφορά Αντικατάστασης + +Κατά την επεξεργασία αρχείου που έχει ήδη wiki-λίνκ, σημειώσεις έννοιας ή μεταφράσεις, η συμπεριφορά του Notemd εξαρτάται από τη ρύθμιση αντικατάστασης: + +| Μοδός | Συμπεριφορά | +|------|----------| +| **Διαχέωση** | Το υπάρχον περιεχόμενο παραμένει αμετάβλητο. Επεξεργάζονται μόνο τα μη τροποποιημένα αρχεία. | +| **Προσθήκη** (προεπιλογή) | Προστίθεται νέο περιεχόμενο. Οι υπάρχουσες wiki-λίνκ, έννοιες ή μεταφράσεις διατηρούνται. | +| **Αντικατάσταση** | Το αρχείο επεξεργάζεται πλήρως ξανά. Όλες οι προηγούμενες τροποποιήσεις του Notemd αντικαθίστανται. | + +Συγκεκριμένα για wiki-λίνκ: αν μια σημείωση έχει ήδη `[[wiki-links]]`, ο μοδός **Διαχέωσης** την αφήνει άμεσα, ενώ ο μοδός **Αντικατάστασης** στέλνει ξανά ολόκληρη τη σημείωση στο LLM για νέα ενσωμάτωση λίνκ. Χρησιμοποιήστε **Διαχέωση** για διαδοχική επεξεργασία και **Αντικατάσταση** για επανεπεξεργασία μετά από αναβάθμιση μοντέλου. + +### Ελέγχος Συγχρονισμού + +Η ρύθμιση `batchConcurrency` περιορίζει τις παράλληλες κλήσεις API. Αυτό αποτρέπει σφάλματα περιορισμού ταχύτητας (HTTP 429) κατά την επεξεργασία μεγάλων φακέλων με πάροχους που έχουν αυστηρούς περιορισμούς. + +| Συγχρονισμός | Συνιστώμενο για | Τυπική επίδραση περιορισμού ταχύτητας | +|-------------|----------------|---------------------------| +| `1` | Δωρεάν επίπεδα, αυστηροί πάροχοι | Κανένα (σειριακό) | +| `3` (προεπιλογή) | Οι περισσότεροι πάροχοι σύνδρομων | Χαμηλό | +| `5` | Ollama (τοπικό), φιλόξενα επίπεδα | Κανένα / Χαμηλό | +| `10` | Τοπικά μοντέλα με γρήγορη εκτίμηση | Κανένα | + +Αν συναντήσετε σφάλματα 429 κατά την παραγωγική επεξεργασία, μειώστε την ταυτόχρονη εκτέλεση σε 1 ή 2. + +## Ρυθμίσεις + +| Παράμετρος | Προεπιλογή | Επίδραση | +|---------|---------|--------| +| `batchConcurrency` | `3` | Μέγιστες παράλληλες API κλήσεις κατά τις επιχειρήσεις φακέλων | +| `batchOverwriteExisting` | `false` | Αντικατάσταση του υπάρχοντος περιεχομένου Notemd. `false` = λειτουργία προσθήκης. | +| `batchSkipProcessed` | `false` | Διαψήφιση των αρχείων που έχουν ήδη σημεία Notemd (π.χ., συνδέσμους wiki) | +| `batchRecursive` | `true` | Συμπερίληψη υποκαταλόγων κατά την ανιχνεύση του φολδέρα | +| `enableStableApiCall` | `false` | Ενεργοποίηση λογικής επαναπροσπάθειας (έως 4 προσπάθειες) ανά αρχείο κατά τη διαδικασία μπάτσ | + +### Μοντέλα ανά εργασία σε μπάτσ + +Κάθε επιχείρηση μπάτσ χρησιμοποιεί το αντίστοιχο μοντέλο ανά εργασία. Η διαδικασία batch-add-links χρησιμοποιεί `addLinksProvider`, η batch-research χρησιμοποιεί `researchProvider` κ.λπ. Αυτό σημαίνει ότι μπορείτε να αναθέσετε φθηνά μοντέλα για επιχειρήσεις μεγάλου όγκου και να διατηρήσετε ακριβά μοντέλα για εργασίες που ζητούν υψηλή ποιότητα. + +## Παράδειγμα + +Έχετε έναν φολδέρα `papers/` που περιέχει 40 εισαγόμενες σημειώσεις έρευνας. Θέλετε να προσθέσετε συνδέσμους wiki και να εξαγάγετε έννοιες από όλες αυτές: + +1. Κάντε δεξί κλικ στον φάκελο `papers/` +2. Επιλέξτε **"Notemd: Process folder (add links)"** +3. Το Notemd εξετάζει τον φάκελο, βρίσκει 40 αρχεία `.md` και επεξεργάζεται 3 ταυτόχρονα (προεπιλεγμένη συγχρονισμότητα) +4. Μια παράθυρο πρόοδος δείχνει: `12/40 files processed...` +5. Μετά από περίπου 3 λεπτά, ένα παράθυρο σύνοψης αναφέρει: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. Επαναλάβετε με **"Notemd: Process folder (extract concepts)"** για να δημιουργήσετε σημειώσεις έννοιας για όλα τα 40 + +Το αποτυχημένο αρχείο καταγράφεται.Μπορείτε να το εκτελέσετε ξανά μόνο σε αυτό το αρχείο αργότερα. + +## Συμβουλές + +- **Ξεκινήστε με χαμηλή συγχρονισμότητα** -- Αν δεν είστε σίγουροι για τα όρια ταχύτητας του πάροχή σας, ξεκινήστε με `1` και αυξήστε την σταδιακά. +- **Χρησιμοποιήστε λειτουργία διαχείρισης παραλείψεων για επιπλέον ενημέρωσεις** -- Μετά την πρώτη πλήρη μερίδα, μεταβείτε σε `batchSkipProcessed: true` ώστε μόνο νέες σημειώσεις να επεξεργάζονται στις επόμενες εκτελέσεις. +- **Ενεργοποιήστε σταθερές κλήσεις API** -- `enableStableApiCall: true` προσθέτει λογική επαναπροσπάθειας που ανακαταστρέφει τα προσωρινά σφάλματα δικτύου κατά τη διάρκεια μεγάλων μεριδών. +- **Εκτελέστε ξανά μετά από ενημέρωσες μοντέλων** -- Αν μεταβείτε σε ένα καλύτερο μοντέλο, ρυθμίστε `batchOverwriteExisting: true` και εκτελέστε ξανά για να πάρετε βελτιωμένους συνδέσμους και έννοιες. + +--- + +## Επόμενα βήματα + +- [Workflows](/docs/features/workflows) -- Συνδέστε τις εργασίες μερίδας σε κουμπιά πλευρικού παράθυρου με μία κλικ +- [Custom Prompts](/docs/advanced/custom-prompts) -- Προσαρμόστε τις εντολές για εξαγωγή μερίδας +- [Troubleshooting](/docs/advanced/troubleshooting) -- Λύστε σφάλματα όριων ταχύτητας και αποτυχίες σύνδεσης κατά τη διάρκεια εκτέλεσης μεριδών +- [LLM Πάροχοι](/docs/providers/overview) -- Αναφορά διαμόρφωσης μοντέλου ανά εργασία diff --git a/website/i18n/el/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/el/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..dbe67150 --- /dev/null +++ b/website/i18n/el/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "Προσαρμοσμένες Απαγγελίες" +description: "Προσαρμόζετε τις απαγγελίες LLM για τις ανάγκες σας" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# Προσαρμοσμένες Απαγγελίες + +<TLDR> +**Notemd σας επιτρέπει να αντικαταστήσετε την προεπιλεγμένη LLM απαγγελία για κάθε τύπο μиссии.** Οι προσαρμοσμένες απαγγελίες σας δίνουν ελέγχο σε αυτό που δίνει προτεραιότητα το μοντέλο: μπορείτε να περιορίσετε την εξάγωγη έννοιων σε μια συγκεκριμένη δισциπλίνα, να αλλάξετε τον τρόπο σύνδεσης ή να προσανατολίσετε τον τόνο της μετάφρασης. Οι μεταβλητές απαγγελίας όπως `{{content}}` και `{{concept}}` αντικαθίστανται κατά την εκτέλεση. Η δυνατότητα εστιασμένου μαθησιακού πεδίου προθέτει το πεδίο μελέτης σας για να προσδιορίσει αυτόματα τα αποτελέσματα εξάγωγης. + +Αυτό αποτελεί μέρος του [Obsidian Οδηγού Διαχείρισης Γνώσης AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Επισκόπηση + +Οι ενσωματωμένες απαγγελίες του Notemd έχουν γραφτεί για γενικές εργασίες γνώσης. Είναι αποτελεσματικές σε διάφορα πεδία, αλλά αφήνουν και περιθώριο για βελτιώσεις που αφορούν συγκεκριμένα πεδία. Οι προσαρμοσμένες απαγγελίες σας επιτρέπουν να πείτε στο LLM ακριβώς πώς να συμπεριφέρεται για την χρήση σας – είτε αυτό σημαίνει να εξάγει μόνο ιατρική ορολογία, να συνδέσει μόνο ονομασμένες οντότητες ή να μεταφράσει σε επίσημο τόνο. + +Οι προσαρμοσμένες απαγγελίες δεν αντικαθιστούν ολόκληρη τη συστηματική απαγγελία. Αντικαθιστούν ή ενισχύουν το **μέρος οδηγιών που αφορά συγκεκριμένες μиссии** διατηρώντας το δομικό μορφότυπο εξόδου (π.χ. γραμμές `CONCEPT:`, σύνταξη wiki-link) που βασίζεται το Notemd για ανάλυση. + +## Πώς λειτουργεί + +### Αρχιτεκτονική Απαγγελίας + +Κάθε Notemd μиссия ακολουθεί την ίδια δομή απαγγελίας: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **Βασική συστηματική απαγγελία** -- Καθορίζει το πρόσωπο του βοηθού. Δεν μπορεί να αντικατασταθεί. +2. **Εστιασμένο μαθησιακό πεδίο** -- Προθέτει το `Relevant Fields: [medicine / law / computer science / ...]` για να περιορίσει το πεδίο εξάγωγης. Αυτό είναι μια εναλλακτική ρύθμιση, όχι μια ακατέργαστη απαγγελία. +3. **Προσαρμοσμένη απαγγελία μиссии** -- Αντικαθιστά τις προεπιλεγμένες οδηγίες μиссии (π.χ. ποιες έννοιες να εξαγάγονται, πόσο ενεργά να γίνει η σύνδεση). +4. **Μορφότυπο εξόδου** -- Δομικές κανόνες (γραμμές `CONCEPT:`, μορφή wiki-link). Πάντα προστίθεται από το Notemd για να διασφαλιστεί η ανάλυση. +5. **Περιεχόμενο** -- Το πραγματικό κείμενο της σημείωσης, το οποίο αντικαθίσταται κατά την εκτέλεση μέσω του `{{content}}`. + +### Μεταβλητές Απαγγελίας + +Οι μεταβλητές αντικαθίστανται κατά την εκτέλεση. Οι διαθέσιμες μεταβλητές διαφέρουν ανά μиссия: + +| Μεταβλητή | Εργασίες | Αντικαταστάθηκε με | +|----------|-------|---------------| +| `{{content}}` | Όλα | Το κείμενο σημείωσης ή επιλογής | +| `{{concept}}` | Πρότυπο σημείωσης έννοιας | Ο όνομας της εξαγόμενης έννοιας | +| `{{description}}` | Πρότυπο σημείωσης έννοιας | Περιγραφή έννοιας που δημιουργήθηκε από LLM | +| `{{backlinks}}` | Πρότυπο σημείωσης έννοιας | Κατάλογος πηγαίων σημειώσεων με συνδέσμους | +| `{{date}}` | Πρότυπο σημείωσης έννοιας | Την τρέχουσα ημερομηνία (YYYY-MM-DD) | +| `{{language}}` | Μετάφραση | Στόχευτη γλώσσα εξόδου | +| `{{source}}` | Πρότυπο σημείωσης έννοιας | Βασικό όνομα πηγαίας σημείωσης | + +### Πεδίο Εκμάθησης με Στόχο + +Το χαρακτηριστικό εκμάθησης με στόχο είναι ένας σύντομος τρόπος για τον περιορισμό του πεδίου. Αντί να γράψετε έναν προσαρμοσμένο προηγούμενο κείμενο που αναφέρεται στον τομέα σας, ρυθμίζετε `focusedLearningDomain` στις ρυθμίσεις: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +Αυτό προθέτει το `Relevant Fields: [medicine]` μπροστά από τον προηγούμενο κείμενο εξαγωγής, με αποτέλεσμα το LLM να δίνει προτεραιότητα στις έννοιες που σχετίζονται με το πεδίο και να καταστέλλει τις γενικές. Είναι ελαφρύτερο από έναν πλήρως προσαρμοσμένο προηγούμενο κείμενο και λειτουργεί σε όλες τις εργασίες εξαγωγής. + +## Ρυθμίσεις + +| Παράμετρος | Προεπιλογή | Επίδραση | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | Επικατάσταση του προεπιλεγμένου προηγούμενου κειμένου εργασίας προσθήκης συνδέσμων | +| `customExtractConceptsPrompt` | `''` | Επικατάσταση του προεπιλεγμένου προηγούμενου κειμένου εξαγωγής έννοιων | +| `customResearchPrompt` | `''` | Επικατάσταση του προεπιλεγμένου προηγούμενου κειμένου έρευνας + σύνοψης | +| `customTranslatePrompt` | `''` | Επικατάσταση του προεπιλεγμένου προηγούμενου κειμένου μετάφρασης | +| `customDiagramPrompt` | `''` | Επικατάσταση του προεπιλεγμένου προηγούμενου κειμένου δημιουργίας διαγράμματος | +| `focusedLearningDomain` | `''` | Πρόθεση του πλαισίου της επιστήμης μπροστά από τα προηγούμενα κείμενα εξαγωγής και συνδέσμων | +| `extractConceptsMinimalTemplate` | `true` | Χρήση πρότυπου σημειώσης έννοιας με μόνο τίτλο (πηγάζει από το πλαίσιο του `{{concept}}`) | +| `customConceptNoteTemplate` | `''` | Επικατάσταση του πρότυπου αρχείου σημειώσης έννοιας με πλήρη υποστήριξη μεταβλητών | + +**Όταν το πεδίο προσαρμοσμένου προηγούμενου κειμένου είναι κενό, χρησιμοποιείται το ενσωματωμένο προεπιλεγμένο προηγούμενο κείμενο.** + +## Παράδειγμα + +Είστε ένας ιατρικός ερευνητής που εξάγει έννοιες από σημειώσεις κλινικών δοκιμών. Το προεπιλεγμένο προηγούμενο κείμενο εξάγει γενικά ουσιαστικά μαζί με ιατρικές έννοιες, γεγονός που πλημμυρίζει τον φάκελο έννοιών σας. + +**Λύση:** Ρυθμίστε ένα πεδίο εκμάθησης με στόχο και ένα προσαρμοσμένο προηγούμενο κείμενο εξαγωγής. + +1. Ρυθμίστε το `focusedLearningDomain` σε `medicine` +2. Ρυθμίστε το `customExtractConceptsPrompt` σε: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +Τώρα, όταν εκτελείτε την εντολή "Extract concepts" σε μια κλινική σημειώση, το LLM παράγει: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +Αντί για την προεπιλεγμένη συμπεριφορά που μπορεί επίσης να εξαγάγει ανεπιθύμητα γενικά όρους όπως "hospital" ή "month". + +## Συμβουλές + +- **Ξεκινήστε με το συγκεντρωμένο πεδίο μάθησης** πριν γράψετε ένα πλήρες προσαρμοσμένο πρότασμα. Αυτό καλύπτει το 80% των περιπτώσεων χρήσης με μία μόνο ρύθμιση. +- **Διατηρήστε το μορφότυπο της έξοδου** -- Ποτέ μην αφαιρέσετε οδηγίες μορφοποίησης όπως "one per line" ή "CONCEPT: prefix" από τα προσαρμοσμένα πρότασματα. Ο αναλυτής του Notemd εξαρτάται από αυτές. +- **Δοκιμάστε πρώτα με μία μόνο σημειώση** -- Τα προσαρμοσμένα πρότασματα μπορεί να έχουν απρόσμενες επιπτώσεις στην ευρεία της εξάγωσης. Επαληθεύστε το σε μία σημειώση πριν από την παραγωγή σε συνόλα. +- **Κρατήστε τα πρότασματα συνοπτικά** -- Πάρα μεγάλα προσαρμοσμένα πρότασματα καταναλώνουν τόκεν και μπορεί να εξασθενήσουν τη συγκέντρωση του μοντέλου. + +--- + +## Επόμενα βήματα + +- [Wiki-Links](/docs/features/wiki-links) -- Τι συνδέεται όταν προσαρμόζετε το πρότασμα add-links +- [Concept Notes](/docs/features/concept-notes) -- Πρότυπα σημειώσεων έννοιας και η μεταβλητή `{{concept}}` +- [Batch Processing](/docs/advanced/batch-processing) -- Εφαρμόστε προσαρμοσμένα πρότασματα σε ολόκληρους φάκελους +- [Troubleshooting](/docs/advanced/troubleshooting) -- Λύστε προβλήματα όπου τα προσαρμοσμένα πρότασματα παράγουν απρόσμενη έξοδο diff --git a/website/i18n/el/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/el/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..9a84f966 --- /dev/null +++ b/website/i18n/el/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "Αντιμετώπιση προβλημάτων" +description: "Συνηθισμένα προβλήματα και λύσεις" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Αντιμετώπιση προβλημάτων + +<TLDR> +**Τα περισσότερα Notemd προβλήματα ανήκουν σε τέσσερις κατηγορίες: βασικά προβλήματα API, σύνδεση δικτύου, σφάλματα αυθεντικοποίησης (401/403) και περιορισμοί ταχύτητας (429).** Το ενσωματωμένο τεστ σύνδεσης και το πάνελ διαγνώσεων εντοπίζουν γρήγορα την ριζική αιτία. Αυτή η σελίδα καλύπτει κάθε συνηθισμένο μήνυμα σφάλματος, την αιτία του και τη λύση. Για προβλήματα που δεν αναφέρονται εδώ, αναφέρετέ τα στα GitHub Issues με τα αποτελέσματα διαγνώσεων. + +Αυτό αποτελεί μέρος του [Obsidian Οδηγού Διαχείρισης Γνώσης AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Επισκόπηση + +Notemd εξαρτάται από εξωτερικές υπηρεσίες – πάροχους LLM και μηχανίσμους αναζήτησης API – οπότε τα περισσότερα προβλήματα προέρχονται από εκτός του ίδιου του προσθήκηματος. Το πάνελ διαγνώσεων στις ρυθμίσεις παρέχει μια δομημένη επισκόπηση της τελευταίας API κλήσης, συμπεριλαμβανομένης της αίτησης URL, του κωδικού κατάστασης απάντησης και του περιεχομένου σφάλματος. Πάντα ελέγξτε το πρώτο πριν εξετάσετε περαιτέρω. + +## Πώς λειτουργεί: Διαγνώσεις + +### Τεστ σύνδεσης + +Κάθε ενότητα ρυθμίσεων πάροχου διαθέτει ένα κουμπί **"Δοκιμάστε σύνδεση"**. Με το κλικ σε αυτό στέλνεται μια ελάχιστη API αίτηση (συνήθως μια λίστα μοντέλων ή μια σύντομη πλήρωση) και αναφέρεται επιτυχία ή το συγκεκριμένο HTTP σφάλμα. Αυτός είναι ο ταχύτερος τρόπος για να επαληθεύσετε ότι το API κλειδί και η βάση URL σας είναι σωστά. + +### Πάνελ διαγνώσεων + +**Ρυθμίσεις --> Notemd --> Διαγνώσεις** δείχνει: + +| Πεδίο | Περιεχόμενο | +|-------|---------| +| Τελευταίος πάροχος | Ποιος πάροχος κλήθηκε τελευταία | +| Τελευταίο μοντέλο | Ποιο μοντέλο κλήθηκε τελευταία | +| Τελευταίος κατάσταση | Κωδικός κατάστασης HTTP ή σφάλμα μεταφοράς | +| Τελευταίο σφάλμα | Ακατέργαστο μήνυμα σφάλματος από το API | +| Τελευταία αιτήσεις URL | Πλήρης URL της τελευταίας αιτήσεως (συμπεριληφθέν συναισθητικά API) | +| Μέρος περιεχομένου απάντησης | Περικοπημένο μέρος περιεχομένου απάντησης (πρώτα 500 χαρακτήρες) | + +Αντιγράψτε την πλήρη έξοδο διαγνωστικών όταν αναφέρετε προβλήματα στο GitHub. + +## Συνηθισμένα σφάλματα + +### Κλειδί API μη έγκυρο ή απουσιάζει + +**Συμπτώματα:** HTTP 401 ή "Παρεχόται λάθος API κλειδί" + +**Αιτία:** Το κλειδί API απουσιάζει, περιέχει κενά ή ανήκει σε διαφορετικό πάροχο. + +**Λύση:** +1. Επαληθεύστε ότι το κλειδί δεν έχει προηγούμενα/ακολουθούμενα κενά +2. Επαληθεύστε ότι το κλειδί ταιριάζει με τον επιλεγμένο πάροχο (ένα OpenAI κλειδί δεν θα λειτουργήσει με Anthropic) +3. Ελέγξτε αν το λογαριασμός σας διαθέτει πόρους ή ενεργή συνδρομή +4. Κάντε κλικ στο **"Test Connection"** για επαλήθευση + +### Σφάλματα δικτύου / σύνδεσης + +**Συμπτώματα:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**Αιτία:** Το τέλος API δεν είναι προσβάσιμο από το συστήμα σας. + +**Λύση:** +1. Ελέγξτε τη σύνδεση Διαδικτύου σας +2. Αν βρίσκεστε πίσω από proxy ή firewall, επαληθεύστε ότι το δομένο API δεν είναι μπλοκαρισμένο +3. Για Ollama: επιβεβαιωθείτε ότι το `ollama serve` λειτουργεί (το `ollama list` θα πρέπει να επιστρέψει μοντέλα) +4. Για LMStudio: επιβεβαιωθείτε ότι ο διακομιστής λειτουργεί στο `localhost:1234` +5. Δοκιμάστε διαφορετικό τρανспорт – οι χρήστες μοβάιλ πρέπει να βεβαιωθούν ότι ο τρανспорт `requestUrl` είναι ενεργός +6. Ενεργοποιήστε το `enableStableApiCall` για αυτόματη επαναπροσπάθεια σε προσωρινά σφάλματα + +### 403 Forbidden + +**Συμπτώματα:** HTTP 403 + +**Αιτία:** Η κλειδί σας API είναι έγκυρη αλλά δεν διαθέτει άδειες για τον ζητούμενο πόρο. + +**Λύση:** +1. Μερικά μοντέλα απαιτούν ειδική πρόσβαση (π.χ., το GPT-4 μέσω Azure απαιτεί όνομα ανάπτυξης) +2. Μερικοί πάροχοι περιορίζουν τα μοντέλα ανά επίπεδο πλάνου – ελέγξτε τον λογαριασμό σας +3. Μπορεί να ισχύουν περιοχαίες περιορισήσεις (κάποιοι πάροχοι στην Κίνα μπλοκάρουν διεθνείς IPs και το αντίστροφο) +4. Επαληθεύστε ότι το όνομα του μοντέλου γράφεται σωστά (π.χ., `gpt-4o` και όχι `gpt-4o-mini` όταν το μικρό μοντέλο είναι όλο αυτό που επιτρέπει ο πλάνος σας) + +### Rate Limit (429) + +**Συμπτώματα:** HTTP 429 ή "Περιορισμός ταχύτητας υπερβλήθηκε" + +**Αιτία:** Πάρα πολλές αιτήσεις σε μια κοντή περίοδο χρόνου. + +**Λύση:** +1. Μειώστε το `batchConcurrency` σε `1` ή `2` +2. Περιμένετε μερικά λεπτά πριν προσπαθήσετε ξανά +3. Ελέγξτε την τεκμηρίωση περιορισμών ταχύτητας του πάροχου σας για το επίπεδο πλάνου σας +4. Ενεργοποιήστε το `enableStableApiCall` για αυτόματη επαναπροσπάθεια με backoff +5. Σκεφτείτε να μεταβείτε σε πάροχο με υψηλότερους περιορισμούς (DeepSeek, Ollama) + +### Μοντέλο δεν βρέθηκε + +**Συμπτώματα:** "Μοντέλο δεν βρέθηκε" ή HTTP 404 + +**Αιτία:** Το όνομα του μοντέλου δεν υπάρχει στον επιλεγμένο πάροχο. + +**Λύση:** +1. Κάντε κλικ στο **"Get Model List"** για να δείτε όλα τα διαθέσιμα μοντέλα για τον πάροχό σας +2. Ορισμένα ονόματα μοντέλων αλλάζουν με την πάροδο του χρόνου -- επαληθεύστε το τρέχον ονόμα στην τεκμηρίωση του πάροχου +3. Για Ollama: εκτελέστε `ollama list` για να δείτε τα μοντέλα που έχουν αντληθεί· μόνο τα μοντέλα που έχουν κατεβαστεί είναι διαθέσιμα + +### Χωρίς συνδέσμους / Χωρίς γενημένες έννοιες + +**Σύμπτωμα:** Η εντολή εκτελείται αλλά δεν παράγει καμία έξοδο + +**Αιτία:** Το LLM επέστρεψε άδεια ή μη αναλυσιμή απάντηση. + +**Λύση:** +1. Ελέγξτε το πάνελ διαγνώσεων για την πραγματική απάντηση LLM +2. Δοκιμάστε ένα πιο ισχυρό μοντέλο (κάποια μικρά μοντέλα δυσκολεύονται με δομημένη έξοδο) +3. Βεβαιωθείτε ότι το σημείωμα έχει αρκετό περιεχόμενο (>50 λέξεις) +4. Επανεξετάστε το προσαρμοσμένο πρόμπτ σας για συγκρουούμενες οδηγίες +5. Απενεργοποιήστε προσωρινά την καταστολή συνώνυμων για να δείτε αν φιλτράρει υπερβολικά έντονα + +### Στερεότυπο Doubao λείπει + +**Σύμπτωμα:** Σφάλμα κατά τη χρήση του πάροχου ByteDance Doubao + +**Αιτία:** Το Doubao απαιτεί ένα ID στερεότυπου Ark (μορφή: `ep-xxxxxxxx-xxxx-xxxx`) αντί για ονόμα μοντέλου. + +**Λύση:** Αντικαταστήστε το προεπιλεγμένο μοντέλο-τόπος με τον πραγματικό αναγνωριστικό του τελικού σημείου από το παράθυρο ελέγχου Volcengine. + +## Ρυθμίσεις + +| Ρυθμίσεις Διάγνωσης | Τοποθεσία | Σκοπός | +|--------------------|----------|---------| +| **Δοκιμή Σύνδεσης** | Μένου Ρυθμίσεις --> Ενότητα Πάροχος | Επαληθεύστε τον κλειδί API και τη σύνδεση | +| **Λήψη Λίστας Μοντέλων** | Μένου Ρυθμίσεις --> Ενότητα Πάροχος | Επιβεβαιώστε ποια μοντέλα είναι προσβάσιμα | +| `enableStableApiCall` | Μένου Ρυθμίσεις --> Προχωρημένες ρυθμίσεις | Ενεργοποιήστε επαναπροσπάθειες με αναβάθμιση χρόνου | +| `batchConcurrency` | Μένου Ρυθμίσεις --> Μαζικές εργασίες | Ελέγξτε τον παράλληλισμο για να αποφύγετε όρια ταχύτητας | + +## Πώς να αναφέρετε προβλήματα + +Αν το πρόβλημά σας δεν καλύπτεται παραπάνω: + +1. Ανοίξτε **Settings --> Notemd --> Diagnostics** +2. Αντιγράψτε την πλήρη έξοδο διαγνωστικών +3. Ανοίξτε ένα GitHub Issue στη διεύθυνση [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +4. Περιλάβετε: την έκδοση Obsidian, την έκδοση Notemd, τον πάροχο, το μοντέλο, την έξοδο διαγνωστικών και τα βήματα για αναπαραγωγή +5. Αφαιρέστε τον κλειδί API σας από οποιουδήποτε κοινοποιημένο λογ + +--- + +## Επόμενα βήματα + +- [LLM Providers](/docs/providers/overview) -- Πλήρης αναφορά διαμόρφωσης παρόχων +- [Batch Processing](/docs/advanced/batch-processing) -- Ρυθμίσεις συγχρονισμού και επανεπιχείρήσεων για μεγάλες επιχειρήσεις +- [Custom Prompts](/docs/advanced/custom-prompts) -- Διόρθωση απροσδόκητης συμπεριφοράς LLM με την προσαρμογή προτάσεων diff --git a/website/i18n/el/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/el/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..d64c9e5c --- /dev/null +++ b/website/i18n/el/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "Συχνά Ερωτώμενα Ερωτήματα" +description: "Συνηθισμένα ερωτήματα σχετικά με την εγκατάσταση, τις δυνατότητες και τη χρήση του Notemd" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# Συχνά Ερωτώμενα Ερωτήματα + +<TLDR> +**Γρήγορες απαντήσεις στα πιο συνηθισμένα ερωτήματα του Notemd.** Περιλαμβάνει εγκατάσταση (5 λεπτά ρύθμιση), υποστήριξη 30+ παρόχων LLM, επιλογές μοντέλου τοπικό/σύνδεσμο, διαδικασίες μίας κλικ, πολυγλωσσική UI (21 γλώσσες), αυτοματοποίηση σύνδεσης wiki, ενσωμάτωση έρευνας, διαδικασίες ανάγνωσης PDF, δημιουργία διαγράμματος και лицензирование ανοιχτού κώδικα. Όλες οι δυνατότητες λειτουργούν εκτός σύνδεσης με Ollama. +</TLDR> + +--- + +## Εγκατάσταση & Ρύθμιση + +### Πώς να εγκαταστήσω το Notemd στο Obsidian؟ + +Ανοίξτε το Obsidian → **Settings → Community Plugins → Browse** → αναζητήστε **"Notemd"** → **Install** → **Enable**. + +**Απαιτήσεις:** +- Obsidian 0.15.0+ +- Υποστηρίζεται σε Desktop (Windows, macOS, Linux) και Mobile (iOS, Android) + +**Μανουαλή εγκατάσταση:** +1. Ανεβάστε το `main.js`, το `styles.css` και το `manifest.json` από τις [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) +2. Τοποθετήστε τα στο `<your-vault>/.obsidian/plugins/notemd/` +3. Επαναφέρετε το Obsidian και ενεργοποιήστε το πλαγιάκο + +**Στατιστικά:** 4k+ λήψεις, 44 κυκλοφορίες, MIT лицензирование. + +--- + +## LLM Ρύθμιση + +### Τι παρόχους LLM υποστηρίζει το Notemd؟ + +Το Notemd υποστηρίζει **30+ παρόχους**: + +**Παρόχοι σύνδεσης στο cloud:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonnet, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**Με επικέντρωση στην Κίνα:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**Τοπικοί/αυτόχειρες:** +- Ollama +- LM Studio +- Οποιοδήποτε τέλος συμβατό με το OpenAI + +**Πύλες:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models, Fireworks, LiteLLM, Nebius, Cerebras +- Hugging Face, Vercel AI Gateway, Requesty + +### Μπορεί το Notemd να λειτουργήσει με τα τοπικά LLM; + +**Ναι, υποστηρίζεται πλήρως.** Το Notemd λειτουργεί με: +- **Ollama** (γεννητική ολοκλήρωση) +- **LM Studio** (μέσω του ενδπόιντα συμβατού με OpenAI) +- **vLLM, LocalAI, text-generation-webui** (μέσω του λειτουργικού ρεύματος συμβατού με OpenAI) + +Όλες οι εργασίες λειτουργούν με τοπικά μοντέλα: σύνδεση, δημιουργία έννοιων, μετάφραση, έρευνα και δημιουργία διαγράμματος. + +**Παράδειγμα ανάμιξης και συνδυασμού:** +- Ollama (lokalικό) για σύνδεση → γρήγορο, ιδιωτικό, χωρίς κόστος +- OpenAI για έρευνα → υψηλή ποιότητα, ενσωμάτωση αναζήτησης στο Διαδίκτυο +- Gemini για μετάφραση → πολυμοδάλη υποστήριξη + +### Πώς μπορώ να ρυθμίσω διαφορετικά μοντέλα για διαφορετικές εργασίες; + +Στις **Notemd Ρυθμίσεις**, κάθε εργασία διαθέτει ανεξάρτητους επιλεκτές παροχέα/μοδέλου: + +| Εργασία | Παράδειγμα Ρύθμισης | +|------|----------------------| +| **Σύνδεση** | DeepSeek (γρήγορο, φθηνό) | +| **Δημιουργία Εννοιών** | Claude Opus (υψηλή ποιότητα) | +| **Έρευνα** | Perplexity ή GPT-4o (web-grounded) | +| **Μετάφραση** | Gemini Flash (πολυμορφικό) | +| **Δημιουργία Διαγράμματων** | Ollama (τοπικό, ιδιωτικό) | + +Αυτή η βελτιστοποίηση ανά εργασία ισορροπεί την ταχύτητα, το κόστος και την ποιότητα. + +--- + +## Βασικές Ιδιότητες + +### Πώς διαφέρει το Notemd από το ChatGPT για την ανάγνωση χαρτίων؟ + +| Μέτρο | ChatGPT | Notemd | +|-----------|---------|--------| +| **Τοποθεσία έξοδου** | Ιστορικό συνομιλιών (προσωρινό) | Obsidian σφραγίδα (παραμενόντες αρχεία) | +| **Μορφή αποτελέσματος** | Κειμενική απάντηση | Συνδέσμοι Wiki, σημειώσεις έννοιας, διαγράμματα, μεταφράσεις | +| **Μακροπρόθεσμη αξία** | Αποχωρεί μετά τη συνεδρία | Συγκεντρώνεται σε βάση γνώσεων | +| **Μεταχρησιμότητα** | Πρέπει να γίνει επανερωτηση | Τα αρχεία παραμένουν, ο σύνδεσμος εξελίσσεται | + +**Χρήση ChatGPT για:** Γρήγορες ερωτήσεις/απαντήσεις, μοναδικές εξηγήσεις +**Χρήση Notemd για:** Δημιουργία μιας παραμενούσας, δομημένης βάσης γνώσεων κατά τη διάρκεια εβδομάδων/μηνών + +### Πώς προσθέτει Notemd συνδέσμους Wiki στις σημειώσεις; + +**Διαδικασία:** +1. Εκτελείτε την εντολή "Process file (add links)" σε μία σημειώση +2. Notemd στέλνει το κείμενο στον διαμορφωμένο LLM +3. Το LLM εντοπίζει τις βασικές έννοιες στο πλαίσιο +4. Notemd ενσωματώνει το `[[wiki-links]]` σε κάθε εμφάνιση της έννοιας +5. Προαιρετικά, δημιουργεί αυτόματα σημειώσεις έννοιας σε μια φάκελο που καθορίζετε + +**Χαρακτηριστικά:** +- Απομάκρυνση συνώνυμων (εξαποφέγει διπλότυπα όπως "transformer" και "transformers") +- Επιστροφικοί σύνδεσμοι από τις σημειώσεις έννοιας προς την πηγή +- Ακεραιότητα συνδέσμων κατά μετονομασία/αφαίρεση +- Μοδός καθαρής εξαγωγής (εξαγάγει έννοιες χωρίς να τροποποιεί το αρχικό) + +### Τι είναι η μονό-κλικ διαδικασία Notemd; + +**Μονό-κλικ διαδικασίες** συνδέουν πολλές ενέργειες σε ένα **μόνο κουμπί στην πλευρινή γραμμή**. + +**Προεπιλεγμένη διαδικασία:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**Αποτέλεσμα:** Μια κλικ εκτελεί τα εξής: +1. Προσθήκη συνδέσμων wiki στην τρέχουσα σημείωση +2. Δημιουργία σημειώσεων έννοιας για νέους όρους +3. Έρευνα και προσθήκη φόντου +4. Συμπίεση σε διάγραμμα Mermaid + +**Προσαρμοσμένες διαδικασίες εργασίας:** Ορίστε τις δικές σας στις Ρυθμίσεις με τη μορφή DSL. Κάθε διαδικασία εργασίας γίνεται ένας επαναχρησιμοποιήσιμος κουμπίς στο πλάι-μπάρ. + +### Πώς συγκρίνεται το Notemd με το Copilot ή το Smart Connections? + +Αυτά τα πρόσθετα λύνουν διαφορετικά προβλήματα: + +- **Copilot** — Πρωτοπορία συνομιλίας. Συνομιλείτε με έναν AI για τις σημειώσεις σας. Οι απαντήσεις του AI παραμένουν στο πάνελ συνομιλίας· δεν τροποποιούν το vault σας. +- **Smart Connections** — Πρωτοπορία ανακάλυψης. Βρίσκει σημασιολογικά παρόμοιες σημειώσεις χρησιμοποιώντας embeddings. Δεν δημιουργεί ούτε τροποποιεί περιεχόμενο. +- **Notemd** — Πρωτοπορία γραφής. Ο AI επεξεργάζεται τις σημειώσεις σας και γράφει δομημένα αποτελέσματα (wiki-links, concept notes, έρευνα, διαγράμματα, μεταφράσεις) απευθείας στο vault σας ως μόνιμα αρχεία. + +| Αυτά που χρειάζεστε | Προτεινόμενο πρόσθετο | +|----------------|-------------------| +| Συνομιλία με AI για σημειώσεις | Copilot | +| Αναζήτηση παρόμοιων/σχετικών σημειώσεων | Smart Connections | +| Αυτόματη ενσωμάτωση wiki-links και δημιουργία γραφής γνώσης | **Notemd** | +| Δημιουργία concept notes με backlinks | **Notemd** | +| Δημιουργία διαγράμματων από περιεχόμενο σημειώσεων | **Notemd** | +| Έρευνα ένα θέμα και προσθήκη σύνοψεων | **Notemd** | + +Όλα τα τρία μπορούν να χρησιμοποιηθούν μαζί — συμπληρώνουν ο ένας τον άλλο αντί να ανταγωνίζονται. + +--- + +## Έρευνα & Μετάφραση + +### Ποιες υπηρεσίες αναζήτησης λειτουργούν με την έρευνα Notemd؟ + +| Υπηρεσία | Απαιτείται API κλειδί | Ποιότητα | Σημειώσεις | +|---------|-----------------|---------|-------| +| **Tavily** | Ναι | Υψηλή | Συνιστώμενη, έρευνα βελτιστοποιημένη με AI | +| **DuckDuckGo** | Όχι | Πειραματική | Χωρίς ρύθμιση, χαμηλότερη ποιότητα | + +**Πώς λειτουργεί η λειτουργία "Έρευνα και σύνοψη":** +1. Επιλέγετε ένα θέμα ή το εκτελείτε στην τρέχουσα σημειώση +2. Notemd κάνει αναζήτηση στην υπηρεσία αναζήτησης +3. Αποτελέσματα → σύνοψη από LLM +4. Η σύνοψη προστίθεται στη σημειώση σας με πηγές αναφοράς + +**Αποτέλεσμα:** Σταθερή ιστορία έρευνας στο αποθετήριό σας, όχι σε καρτέλες περιηγητή. + +### Υποστηρίζει το Notemd τα κινεζικά ή άλλες γλώσσες; + +**Γλώσσες UI:** 21+ υποστηριζόμενες +- Αγγλικά, 中文 (简体), 中文 (繁體), 日本語, 한국어 +- Αραβικά, Γερμανικά, Γαλλικά, Ισπανικά, Ρωσικά, Πορτογαλικά, Ιταλικά +- Χίνδι, Βεγκάλι, Ταϊλανδέζικα, Βιετναμικά, Τουρκικά, Πολωνικά, Τσεχικά και άλλες + +**Γλώσσα εξόδου της εργασίας:** Ανεξάρτητη ρύθμιση +- UI σε κινεζικά + εξόδος στα αγγλικά: ✅ +- UI στα αγγλικά + εξόδος στα κινεζικά: ✅ + +**Χρήση:** Οι διγλωσσικοί ερευνητές μπορούν να διατηρήσουν το UI στην μητρική γλώσσα τους, ενώ δημιουργούν σημειώσεις στα αγγλικά για δημοσίευση. + +--- + +## PDF και Ακαδημαϊκές Διεργασίες + +### Μπορώ να χρησιμοποιήσω το Notemd για την ανάγνωση άρθρων/PDF؟ + +**Ναι.** Διεργασία: +1. **Μετατροπή PDF → Markdown** με το [MinerU](https://github.com/opendatalab/MinerU) (συνιστώμενο για ακαδημαϊκά άρθρα) +2. Ανοίξτε το αρχείο Markdown στο Obsidian +3. Εκτελέστε τις εργασίες του Notemd: + - **Προσθήκη συνδέσμων wiki** σε βασικές έννοιες + - **Δημιουργία σημειώσεων έννοιας** για άγνωστη λεξιλογία + - **Απόκτηση αυθεντικού κειμένου** μέσω προσαρμοσμένων ερωτήσεων (π.χ., "Ποιες είναι οι περιορισμοί;") + - **Έρευνα φόντου** για τις αναφερθέντες μεθόδους/συνόλα δεδομένων + - **Μετάφραση** δύσκολων ενότητων + - **Συμπίεση σε διάγραμμα Mermaid** για δομική κατανόηση + +**Έκδοση 1.9.1+:** Απόκτηση δομής κεφαλαίων με υποστήριξη TOC + +**Αποτέλεσμα:** Η ανάγνωση του άρθρου σας γίνεται ένα δομημένο, συνδέσιμο αρτικό γνώσης στο αποθετήριό σας. + +--- + +## Διαγράμματα & Βιζουαλίζαση + +### Ποιους τύπους γραφών/διαγράμματων μπορεί να δημιουργήσει το Notemd؟ + +| Τύπος | Υποστήριξη | Ιδιότητες | +|------|---------|----------| +| **Mermaid** | Πλήρης | Διάγραμμα ροής, αλληλουχία, κλάση, κατάσταση, ER, Gantt, αυτόματη διόρθωση σύνταξης, έλεγχος σε παρτίδες | +| **JSON Canvas** | Πλήρης | Προφίλ κανβάσου του Obsidian | +| **Vega-Lite** | Πλήρης | Διαγράμματα δεδομένων, σειρές χρόνου, μπαρ, σκέτσαρ, προσαρμόσιμα | +| **HTML** | Αντικατάσταση | Για τύπους διαγράμματων που δεν υποστηρίζονται | +| **Editable HTML/SVG** | Ειδικός στόχος | Αυτόνομο ενσωματωμένο SVG με αναφορές σε στυλ Draw.io-style | +| **Draw.io / Drawnix artifacts** | Γρανίτες εξαγωγής | Διαπιστώσιμο XML/JSON από `SemanticFigureModel`· χωρίς εξάρτηση από runtime του επεξεργαστή | + +**Mermaid auto-fix:** Μέθοδοι διαρρύθμισης σε βαθύτητα debug. +- Λάθωμα στα βέλη (`-->`, `-.->`, `==>`) +- Μη έγκυρα ετικέτα και σχόλια +- Σφάλματα σύνταξης υπογράφων +- Σήμανση σχημάτων (`[`, `(`, `{`, `((`) +- Καρακτήρες pipe στις ετικέτες +- Προσθήκη παρατηρήσεων + +**Διαδικασία εργασίας:** +1. Εκτελέστε "Summarize as Mermaid diagram" σε μία παρατήρηση +2. Προβολή σε modal +3. Εξάγετε ως SVG ή PNG +4. Ή αποθηκεύστε ως αρχείο `.mmd` στο vault + +--- + +## Open Source & Community + +### Είναι το Notemd δωρεάν και open source; + +**Ναι.** +- **Ψήφιση:** MIT (ελαφριά, επιτρέπεται εμπορική χρήση) +- **Κώδικας πηγής:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **Δεν υπάρχουν πληρωμένες επιπέδα, δεν υπάρχει κλάουντ lock-in, δεν υπάρχει telemetry** +- **Κοινότητα:** 234+ GitHub stars, ενεργό Discord + +**Είστε ιδιοκτήτης:** +- Τα δεδομένα σας (παραμένουν στο vault σας) +- Οι ροή εργασίας σας (προσαρμόζετε prompts, μοντέλα, chains) +- Η ιδιωτικότητά σας (τοπική υποστήριξη LLM) + +**Συνεισφορά:** Καλωσορίζουν τα pull requests. Δείτε [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +## Αντιμετώπιση προβλημάτων + +### Οι κλήσεις LLM μου αποτυγχάνουν. Τι πρέπει να ελέγξω; + +1. **Είναι έγκυρη η κλειδί API;** Ελέγξτε Settings → Provider Configuration +2. **Είναι σωστό το όνομα του μοντέλου;** Χρησιμοποιήστε το κουμπί "获取模型列表" (Get Model List) στις ρυθμίσεις +3. **Είναι προσβάσιμο από το δίκτυο;** Ορισμένοι παρόχοι απαιτούν VPN +4. **Περιορισμοί ταχύτητας;** Ελέγξτε το πάνελ ελέγχου του παρόχου +5. **Διαγνωστικά:** Εκτελέστε "Connection Test" στις ρυθμίσεις για λεπτομερείς έγγραφα σφαλμάτων + +### Notemd είναι αργό. Πώς μπορώ να το επιταχύνω; + +1. **Χρησιμοποίηση ταχύτερων μοντέλων:** DeepSeek, Gemini Flash, GPT-4o-mini +2. **Μείωση μεγέθους των κομμάτων:** Ρυθμίσεις → Smart Chunking → μειώστε τον αριθμό λέξεων +3. **Παράλληλη επεξεργασία:** Ρυθμίσεις → Batch Processing → αυξήστε τη συγχρονιστικότητα +4. **Τοπικά μοντέλα:** Ollama για εργασίες που δεν χρειάζονται αναζήτηση στο Διαδίκτυο + +### Μπορεί το Notemd να λειτουργήσει 100% εκτός δικτύου; + +**Ναι, με το Ollama.** Χωρίς κλειδί API, χωρίς Διαδίκτυο, κανένα δεδομένο δεν φεύγει από τον υπολογιστή σας: + +1. Εγκαταστήστε [Ollama](https://ollama.com) και εκτελέστε το `ollama serve` +2. Στις ρυθμίσεις του Notemd, επιλέξτε **Ollama** ως παρόχο σας +3. Προσδώστε ένα μοντέλο: `ollama pull llama3` (ή qwen2.5, gemma2 κ.λπ.) +4. Όλες οι λειτουργίες λειτουργούν: συνδέσμοι wiki, σημειώσεις έννοιας, μετάφραση, διαγράμματα + +**Η έρευνα DuckDuckGo** λειτουργεί επίσης χωρίς κλειδί API (πειραματική ποιότητα). + +Με τους παρόχους σύνδρομων (OpenAI, Anthropic, Google, DeepSeek κ.λπ.), ο περιεχόμενος των σημειώσεών σας στέλνεται ως είσοδος API. Ελέγξτε την πολιτική απορρήτου κάθε παρόχου για λεπτομέρειες χειρισμού δεδομένων. + +### Τα δεδομένα μου στέλνονται στο cloud; + +**Αυτό εξαρτάται από τον πάροχό σας:** + +| Τύπος πάροχος | Τα δεδομένα στέλνονται στο cloud; | Σημειώσεις | +|--------------|---------------------|-------| +| **Ollama (lokalό)** | Όχι | Όλα παραμένουν στον υπολογιστή σας | +| **LMStudio (lokalό)** | Όχι | Το ίδιο με το Ollama | +| **DeepSeek, OpenAI, κ.λπ.** | Ναι | Η περιγραφή σημειών στέλνεται ως είσοδος API για επεξεργασία | +| **OpenRouter, AIHubMix** | Ναι | Πύλη που διοδηγεί προς παρόχους σύνδεσης στο cloud | + +Notemd η ίδια συλλέγει **καμία τηλεμετρία, καμία ανάλυση, καμία δεδομένα χρήστη**. Το πρόσθετο είναι πλήρως ανοιχτού κώδικα (MIT). Τα μόνα δεδομένα που φεύγουν από τον υπολογιστή σας είναι αυτά που στέλνετε ρητά στον προσαρμοσμένο LLM παρόχο. + +### Ποιο πρόσθετο AI του Obsidian είναι καλύτερο για έρευνα؟ + +Εξαρτάται από τη διαδικασία έρευνας σας: + +| Απαιτείται | Πρόσθετο | Γιατί | +|------|--------|-----| +| Αναζήτηση σχετικών εργασιών/σημειώσεων | Smart Connections | Ανακάλυψη σημασιολογικής ομοιότητας | +| Συζήτηση για τις πηγές σας | Copilot | Συνομιλία με το πλαίσιο vault | +| Αυτόματη σύνδεση έννοιων + δημιουργία σημειώσεων | **Notemd** | Το AI εντοπίζει έννοιες, εισάγει συνδέσμους, δημιουργεί σημειώσεις | +| Ιστοσελιδική έρευνα + σύνοψη σε σημειώσεις | **Notemd** | Tavily/DuckDuckGo αναζήτηση → LLM σύνοψη → προσθέτεται στην σημείωση | +| Δημιουργία διαγράμματων από έρευνα | **Notemd** | Mermaid/Canvas/Vega-Lite από το περιεχόμενο της σημείωσης | + +**Συνιστώμενη συνδυασμός:** Smart Connections (ανακάλυψη) + Notemd (δομή) + Copilot (διάλογος). + +--- + +## Ανάκτηση βοήθειας + +- **Δελτίο:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **GitHub Issues:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **Sponsor:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/el/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/el/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..4ea9be0f --- /dev/null +++ b/website/i18n/el/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "Σημειώσεις Συνέπειας" +description: "Δημιουργία και διαχείριση σημειώσεων συνέπειας — ανεξάρτητες σημειώσεις για βασικές συνέπειες που εξαγάγονται από το αποθετήριό σας" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# Σημειώσεις Συνέπειας + +<TLDR> +**Notemd εξαγάγει βασικές συνέπειες από τις σημειώσεις σας και δημιουργεί ανεξάρτητα αρχεία σημειώσεων συνέπειας.** Το LLM εντοπίζει βασικές λέξεις, δημιουργεί ένα αρχείο `.md` για κάθε συνέπεια σε έναν ρυθμίσιμο φάκελο και, προαιρετικά, προσθέτει αναδρόμους στην αρχική σημείωση. Υποστηρίζει την καταστολή συνώνυμων, επιλογή μοντέλου ανά εργασία, καθαρισμό ονομάτων αρχείων και έναν μηχανισμό απομνημόνευσης 4 βημάτων. Αυτό αποτελεί μέρος του [Obsidian Οδηγού Διαχείρισης Γνώσεων AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Επισκόπηση + +Οι σημειώσεις συνέπειας είναι τα βασικά στοιχεία μιας συνδεδεμένης βάσης γνώσεων. Όταν επεξεργάζετε μια σημείωση, Notemd: + +1. **Αποστέλλει το κείμενό σας σε ένα LLM** με μια δομημένη πρόταση εξαγωγής +2. **Αναλύει τις γραμμές `CONCEPT:`** από την απάντηση του LLM +3. **Δημιουργεί ένα αρχείο `.md` για κάθε συνέπεια** σε έναν προκαθορισμένο φάκελο +4. **Προσθέτει αναδρόμους** στην αρχική σημείωση (όταν είναι ενεργοποιημένο) + +## Πώς λειτουργεί + +### Παύλινα Εξαγωγής + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### Η Πρόταση Εξαγωγής + +Το LLM λαμβάνει μια πρόταση που το οδηγεί να: + +- Εξαγάγει **ουσιαστικά ή φράσεις ουσιαστικών** που είναι κεντρικές για το θέμα του έγγραφου +- **Δίνει προτεραιότητα στην ειδικότητα** — "Dielectric Relaxation" αντί για "Relaxation" +- **Προσαρμόζει σε μονός** — "models" γίνεται "model" +- **Καταστέλλει υποσυνέπειες** — αν εμφανίζεται "dielectric relaxation", μην εξαγάγετε επίσης "relaxation" +- **Αποφύγει** τις ενότητες αναφορών/βιβλιογραφίας, τα συνηθισμένα ουσιαστικά, τα ονόματα εταιρειών/προϊόντων +- Εκδίδει ένα έννοια ανά γραμμή ως `CONCEPT: Term Name` + +**Αποφυγή συνώνυμων** (προαιρετικό): προθέτει "Αποφύγετε την εξαγωγή συνώνυμων, σημασιολογικά παρόμοιων βασικών εννοιών ή λέξεων-κλειδιών όποτε είναι δυνατό" στην πρόταση. + +**Εστιασμένος τομέας μάθησης** (προαιρετικό): προθέτει `Relevant Fields: [domain]` για να περιορίσει την εξαγωγή σε έναν τομέα. + +**Παραμέτρος γλώσσας** (προαιρετικό): προσθέτει "Οι εκδόθεισες εννοίες ΠΡΕΠΕΙ να είναι στη [γλώσσα]." + +### Μονάδευση + +Τα μεγάλα σημειώματα διαχωρίζονται με `settings.chunkWordCount`. Κάθε μονάδα στέλνεται ξεχωριστά. Οι εννοίες από όλες τις μονάδες συγκεντρώνονται σε ένα `Set` — οι διπλότυπες ανάμεσα στις μονάδες αφαιρούνται αθόρυβα. Οι LLM σφάλματα σε μεμονωμένες μονάδες δεν διακόπτουν την επιχείρηση. + +## Δημιουργία σημειώσεων εννοιών + +### Κανόνες ονομάτων αρχείων + +| Κανόνας | Συμπεριφορά | +|------|----------| +| Εφέδες/υποδείκτες | Αντικαθίστανται με χώρους | +| Ιδιαίτερα χαρακτήρες | Αφαιρούνται: πίσω σλάσος, μπροστινός σλάσος, κόλονα, αστέρις, ερώτημα, παρενθέσεις, γωνίακες παρενθέσεις, σωλήνας, ψηφίο, κάρετ, παρενθέσεις | +| Εδάφη | Συμπιέζονται και κόβονται | +| Μέγιστο μήκος | 100 χαρακτήρες (περικοπημένοι + ξανακόπτομενοι) | +| Αποτέλεσμα κενό/όλα τα σημεία | Διαγνώσκεται αθόρυβα | + +Παράδειγμα: `A-B: Key*Term` γίνεται `A B KeyTerm.md` + +### Πρότυπα + +**Πλήρες πρότυπο** (ενεργοποιημένοι παλινδρόμοι, απενεργοποιημένο ελάχιστο πρότυπο): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**Ελάχιστο πρότυπο** (όταν `extractConceptsMinimalTemplate: true`): + +```markdown +# Concept Name +``` + +### Ενημέρωση υπάρχουσων σημειών + +Όταν ένα αρχείο έννοιας υπάρχει ήδη: + +1. Αν είναι ενεργοποιημένοι οι παλινδρόμοι και το αρχικό σημείο δεν έχει ήδη περιληφθεί, προσθέστε έναν παλινδρόμο +2. Αν υπάρχει τμήμα `## Linked From`, εισάγετέ το πριν από το επόμενο κεφάλαιο `##` +3. Αν δεν υπάρχει `## Linked From`, προσθέστε το τμήμα στο τέλος +4. Οι διπλότυποι παλινδρόμοι ελέγχονται και διαγνώσκονται + +### Ρυθμίσεις + +| Παράμετρος | Προεπιλογή | Επίδραση | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | Ανακτήρας κυρίαρχου. Απενεργοποίηση = αποφυγή δημιουργίας σημειών | +| `conceptNoteFolder` | `''` (απενεργοποιημένο) | Μοντέλο φακέλου για σημειώσεις έννοιας | +| `extractConceptsMinimalTemplate` | `true` | Σημειώσεις μόνο με τίτλο (χωρίς Linked From) | +| `extractConceptsAddBacklink` | `false` | Προσθήκη backlinks κατά την ανάλυση ανεξάρτητα | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | LLM ανά εργασία για ανάλυση έννοιας | +| `extractConceptsLanguage` | `'en'` | Γλώσσα εξόδου για ονόματα έννοιας | +| `replaceSynonymsDuringConceptExtraction` | `false` | Ενεργοποίηση καταστολής συνώνυμων στο prompt | +| `generateConceptLogFile` | `false` | Γράψτε μία λίστα `.log` με τις δημιουργημένες έννοιες | + +**Μεγάλη σημασία:** Οι ρυθμίσεις `extractConceptsAddBacklink` και `extractConceptsMinimalTemplate` επηρεάζουν μόνο τη **ειδική εντολή ανάλυσης**. Η εντολή "Προσθήκη Συνδέσμων" δημιουργεί πάντα σημειώσεις πλήρους μοντέλου με backlinks. + +## Διαγύριση διπλότυπων + +Η εντολή διαγύρισης διπλότυπων (`Notemd: Check & remove duplicate concept notes`) εκτελεί μία ανάλυση 5 βημάτων: + +### Μέρος 1: Ακριβής σύγκριση ονόματος αρχείου + +Σύγκριση ονόματος αρχείου χωρίς να λαμβάνεται υπόψη το κεφάλαιο, σε όλο το διαμερισμένο πεδίο. + +### Μέρος 2: Ανίχνευση πληθυντικού μορφής + +Αφαίρεση επιλογών: `-ies` έως `-y`, `-es` αφαιρείται, `-s` αφαιρείται. Σύγκριση με τη μονότυπη μορφή με τα αρχεία του πεδίου. Δεν χειρίζεται ανώμαλα πληθυντικά (children/child). + +### Μέρος 3: Κανονικοποίηση συμβόλων + +Ισχύει στα `toLowerCase()`, αντικαθίσταται τα διαφύγια/υποδιαφύγια με χωρίκο, αφαιρούνται τα μη αλφαριθμικά χαρακτήρες και συμπυκνώνονται τα κενά. Τα που κατανομάζονται με τον ίδιο τρόπο σημειώνονται. + +### Βήμα 4: Περιορισμός σε Μία λέξη + +Οι σημειώσεις με μία λέξη ελέγχονται σε σχέση με τα ονόματα αρχείων του πεδίου εφαρμογής πολλών λέξεων. Δεν εκτελείται όταν το πεδίο είναι `concept_folder_only`. + +### Βήμα 5: Επιβεβαίωση και Αφαίρεση + +Όλα τα υποψήφια παρουσιάζονται σε μία παράθυρο επιβεβαίωσης. Τα εγκεκριμένα αρχεία μεταφέρονται στο σύστημα καλλιέργειας. Η διαδικασία μπορεί να ακυρωθεί μεταξύ κάθε αφαίρεσης. + +### Μοδοί Πεδίου Εφαρμογής + +| Μοδός | Σύγκριση με | +|------|-------------------| +| `vault` (προεπιλογή) | Όλα τα αρχεία του αποθετή `.md` εκτός του φάκελου συνειδητοποιήσεων | +| `concept_folder_only` | Άλλες σημειώσεις συνειδητοποιήσεων μέσα στον φάκελο | +| `include` | Αρχεία σε συγκεκριμένους καταγεγραμμένους φάκελους | +| `exclude` | Όλα τα αρχεία του αποθετή εκτός του φάκελου συνειδητοποιήσεων + καταγεγραμμένων φακέλων | + +## Χρήση + +### Ανάκτηση Συνειδητοποιήσεων (Μεμονωμένο) + +1. Ανοίξτε μία σημείωση +2. Εκτελέστε **"Notemd: Ανάκτηση συνειδητοποιήσεων"** από το παλέτο εντολών +3. Οι σημειώσεις συνειδητοποιήσεων δημιουργούνται στον ρυθμισμένο φάκελο + +### Απόσυρση + Δημιουργία Περιεχομένου + +**"Notemd: Απόσυρση έννοιων και δημιουργία τίτλων"** — αποσύρει τις έννοιες και στη συνέχεια εκτελεί την εντολή "Δημιουργία από Τίτλο" σε κάθε σημείωμα του φακέλου των έννοιων. Αυτό δημιουργεί περιεχόμενο για **τα πάντα** σημείωμα έννοιας του φακέλου, όχι μόνο για τα νέα. + +### Δημιουργία Σύνδεσμου Wiki από Επιλογή + +1. Επισημάνωση κειμένου στον επεξεργαστή +2. Εκτέλεση της εντολής **"Notemd: Δημιουργία σύνδεσμου Wiki από επιλογή"** +3. Το κείμενο περιβάλλεται με `[[...]]` και δημιουργείται ένα σημείωμα έννοιας + +## Συμβουλές + +- **Πρέπει πρώτα να οριστεί ο φάκελος έννοιων** — χωρίς αυτόν, δεν δημιουργούνται σημειώματα. Αν δεν οριστεί, εμφανίζεται μία παράθυρο προειδοποίησης. +- **Χρησιμοποίηση μοντέλων ανά εργασία** — η απόσυρση έννοιων βελτιστά λειτουργεί με φθηνότερα μοντέλα (GPT-4o-mini, DeepSeek). Φυλάξτε τα ακριβά μοντέλα για έρευνα/μετάφραση. +- **Ενεργοποίηση καταστολής συνώνυμων** για τεχνικές περιοχές όπου πολλά όρη αναφέρονται στην ίδια έννοια. +- **Απομόνωση τακτικά** — εκτελέστε την εντολή απομόνωσης μετά την παραγωγική επεξεργασία για να ανιχνεύσετε σχεδόν παρόμοια σημείωματα. +- **Το αρχείο λογαριασμού αντικαθιστάται** με κάθε εκτέλεση, όχι προστίθεται. Αντιγράψτε το αν χρειάζεστε προηγούμενα αποτελέσματα. + +--- + +## Επόμενα βήματα + +- [Wiki-Links](./wiki-links) — Πώς οι έννοιες συνδέονται ενδοχρονικά +- [Diagrams](./diagrams) — Εικονικοποίηση των σχέσεων έννοιας +- [Workflows](./workflows) — Συνδέσμιμη απόσυρση με άλλες εργασίες diff --git a/website/i18n/el/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/el/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..3d86ef2f --- /dev/null +++ b/website/i18n/el/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "Διαγράμματα" +description: "Παράγει Mermaid, JSON Canvas, Vega-Lite, HTML, επεξεργασίμα αποτελέσματα διαγράμματος, καθώς και μελλοντικά περιορισμένα circuitikz διαγράμματα από τις σημειώσεις σας, χρησιμοποιώντας μία αρχιτεκτονική βασισμένη σε προδιαγραφές" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Διαγράμματα + +<TLDR> +**Notemd παράγει διαγράμματα από τις σημειώσεις σας μέσω μίας αρχιτεκτονικής βασισμένης σε προδιαγραφές.** Το LLM δημιουργεί ένα `DiagramSpec` JSON αδιάφορο στον εκπομπέα, και στη συνέχεια ειδικοί προσαρμογείς το μετατρέπουν σε Mermaid, JSON Canvas, Vega-Lite, HTML ή επεξεργασίμα αποτελέσματα HTML/SVG. Υποστηρίζει 8 τύπους προθέσεων, αυτόματες αλλακτικές αλυσίδες, ζωντανή προβολή με εξάγωση SVG/PNG, σημασιολογική επαλήθευση και παραγωγή ενισχυμένη με τοτεινό γνώση. +</TLDR> + +Αυτό αποτελεί μέρος του [Obsidian Οδηγού Διαχείρισης Γνώσης AI](/docs/pillar-ai-knowledge). + +## Αρχιτεκτονική: Αρχιτεκτονική Βασισμένη σε Προδιαγραφές + +Notemd δεν ζητά ποτέ από το LLM να παράγει απευθείας σύνταξη Mermaid/Vega/Canvas. Αντ’ αυτού: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**Γιατί προδιαγραφές πρώτα;** Τα LLM παράγουν συχνά μη έγκυρη σύνταξη εκπομπέα (ιδιαίτερα Mermaid). Μία δομημένη `DiagramSpec` μπορεί να επαληθευτεί πριν την εκπομπή, και η ίδια προδιαγραφή μπορεί να χρησιμοποιηθεί ως αλλακτική για πολλούς εκπομπείς. + +## Υποστηριζόμενοι Τύποι Διαγράμματος + +| Πρόθεση | Βασικός Εκπομπέας | Αλλακτικές | Χρήση | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | Ιεραρχική διάκλιση θεμάτων | +| `flowchart` | Mermaid | HTML | Πορείες επεξεργασίας, δένδρα αποφάσεων | +| `sequence` | Mermaid | HTML | Αλληλεπιδράσεις πελάτη-σερβιτού, πρωτόκολλα | +| `classDiagram` | Mermaid | HTML | Σχέσεις κλάσεων OOP | +| `erDiagram` | Mermaid | HTML | Σχήματα βάσεων δεδομένων, σχέσεις οντοτήτων | +| `stateDiagram` | Mermaid | HTML | Μηχανές κατάστασης, μοντέλα διαδικασίας ζωής | +| `canvasMap` | JSON Canvas | Mermaid → HTML | Χάρτες έννοιας, γραφές γνώσης | +| `dataChart` | Vega-Lite | Mermaid → HTML | Μπαρ, γραμμή, περιοχή, σκέτσαρ, πίτα, πίνακες | + +## Ανίχνευση προθέσεων + +Notemd εξαγάγει τον καλύτερο τύπο διαγράμματος από το περιεχόμενο της σημείωσής σας χρησιμοποιώντας βαθμολόγηση λέξεων-κλειδιών: + +| Πρόθεση | Ενεργοποιητές | Αυτοπεποίθηση | +|--------|----------|------------| +| `dataChart` | Πίνακες, αριθμητικά κελιά, λέξεις-κλειδιά μετρικών/τάσεων, ποσοστά | 0.88 | +| `sequence` | Λεξιλόγιο αιτήματος/απάντησης (4+ έμφασεις) ή σημείωσεις `->`/`=>` | 0.82 | +| `erDiagram` | Πρωταρχικό κλειδί, εξωτερικό κλειδί, οντότητα, σχήμα (2+ έμφασεις) | 0.80 | +| `stateDiagram` | Κατάσταση, μετάβαση, περιμένον, εκτέλεση, αποτυχία (3+ έμφασεις) | 0.76 | +| `flowchart` | Αριθμημένα βήματα (2+) ή λεξιλόγιο if/then/else/workflow | 0.74 | +| `canvasMap` | Χάρτης έννοιας, γραφή γνώσεων, χωρικό, σμήνος | 0.72 | +| `mindmap` | Προεπιλεγμένη εναλλακτική λύση | 0.55 | + +Επικαλύψτε την με τη ρύθμιση **Προτιμώμενος τύπος διάγραμματος**, τον επιλέκτη πλευρικής γραμμής ή μία ρητή επιλογή παλέτας εντολών. + +## Επιλογή στόχου απεικόνισης + +Ο πειραματικός διαδικασιακός μοντέλος spec-first έχει τώρα δύο ξεχωριστές ελέγχους: + +| Ελέγχος | Παράμετρος | Επίδραση | +|---------|---------|--------| +| Προτιμώμενος τύπος διάγραμματος | `preferredDiagramIntent` | Οδηγεί το σημασιολογικό σχήμα του δημιουργούμενου `DiagramSpec` | +| Προτιμώμενος στόχος απεικόνισης | `preferredDiagramRenderTarget` | Επιλέγει τον εκπομπέα αρτικλίων για **Δημιουργία διάγραμματος** και **Προβολή διάγραμματος** | + +Ρυθμίστε τον **Προτιμώμενος στόχος απεικόνισης** σε **Auto** για την προεπιλεγμένη λειτουργία του σχεδιαστή, ή επιλέξτε ρητά Mermaid, JSON Canvas, Vega-Lite, HTML ή Editable HTML/SVG. Η επικάλυψη ισχύει μόνο για τις εντολές αρτικλίων και προβολής. Η στανδαρδισμένη εντολή **Συνοπτικοποίηση ως διάγραμμα Mermaid** παραμένει συνδεδεμένη με έξοδο συμβατό με Mermaid, ώστε τα υπάρχοντα προσεγγίσματα Markdown να μην αλλάξουν αθόρυβα το μορφότυπο. + +Αυτή η διαχωριση είναι σημαντική, διότι μία πρόθεση `flowchart` μπορεί τώρα να απεικονιστεί ως Mermaid για σημειώσεις Markdown, ως HTML για αξιόπιστη εναλλακτική λύση, ή ως Editable HTML/SVG για μεταγενέστερη επεξεργασία. Τα Draw.io και Drawnix παραμένουν εξαγωγείς αρτικλίων CLI αντί να είναι στόχοι απεικόνισης μέσα στο πρόσθετο. + +## Χρήση + +### Δημιουργία διάγραμματος + +1. Ανοίξτε μία σημείωση +2. Εκτελέστε **"Notemd: Δημιουργία διάγραμματος"** από την παλέτα εντολών +3. Το Notemd ανιχνεύει την πρόθεση, δημιουργεί το spec, απεικονίζει και αποθηκεύει το αρτικλίο + +**Αρχεία έξοδου ανά στόχο:** + +| Στόχος | Επέκταση | Μοτίβο Όνομα Αρχείου | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| Εδιτέλευτο HTML/SVG | `.html` | `{note}_diagram.html` | + +### Προεπισκόπηση Διάγραμματος + +1. Εκτέλεση **"Notemd: Προεπισκόπηση διάγραμματος"** +2. Ανοίγει μία παράθυρο προεπισκόπησης με το αποτελέσματο του διάγραμματος +3. Εξαγωγή ως SVG ή PNG με τα κουμπιά του πίνακα εργαλείων + +Η λειτουργία **Αυτόματη ανοίξη προεπισκόπησης** είναι διαθέσιμη στις ρυθμίσεις — μετά την παραγωγή, το παράθυρο προεπισκόπησης ξεκινά αυτόματα. + +Το παράθυρο προεπισκόπησης διαθέτει επίσης ένα πάνελ διαγνώσης αρτιφάκτων. Οι μηχανισμοί απεικόνισης και οι ελέγχοι smoke μπορούν να προσθέσουν `RenderArtifact.diagnostics`· το παράθυρο δείχνει έναν σύνοψη διαγνώσης με αριθμούς σφαλμάτων/προειδοποιήσεων/πληροφοριών, στη συνέχεια τη σοβαρότητα, τον τύπο διαγνώσης, το μήνυμα και συμβουλές επιδιόρθωσης δίπλα στην προεπισκόπηση. Ο ίδιος σύνοψης εμφανίζεται στις εγγραφές ιστορικής προεπισκόπησης, ώστε να μπορούν να συγκριθούν επαναλαμβανόμενες circuitikz προσπάθειες smoke χωρίς να ανοίγονται κάθε εγγραφή. Για αρτιφάκτα που έχουν πηγαίο περιεχόμενο αλλά δεν μπορούν να απεικονιστούν ενσωματωμένα ή μέσω του μοντέλου HTML, το παράθυρο τώρα υποχωρεί σε προεπισκόπηση μόνο πηγαίου περιεχομένου αντί να αναγκάζει ένα κενό iframe. Αυτό παρέχει circuitikz ελέγχους συνταξισμού/απεικόνισης smoke, SVG ελέγχους τεκστού-τοκέν, ελέγχους κενής στιγμιότυπης PNG και μελλοντικές αναφορές παράλληλωσης μία ορατή UI επιφάνεια, χωρίς να κάνει το TikZJax ή το LaTeX σε απαραίτητη εξάρτηση εκτέλεσης πλαγινών εργαλείων ή να προσποιείται ότι το πηγαίο κείμενο είναι επαληθευμένη οπτική απεικόνιση. + +### Παλαιότερος Κύκλος Mermaid + +Όταν το `enableExperimentalDiagramPipeline` είναι απενεργοποιημένο, το Notemd στέλνει άμεσα μία Mermaid πρόταση στο LLM. Αυτό παρακάμπει εντελώς τη διαδικασία των προτύπων. Αν η πειραματική διαδικασία αποτύχει, υποχωρεί σε αυτόν τον κύκλο. + +## Βάσεις Απεικόνισης + +### Mermaid + +6 προσαρμογές (mindmap, flowchart, sequence, ER, class, state) μεταφράζουν το `DiagramSpec` σε σύνταξη Mermaid. Μετά την παραγωγή, το `mermaid.parse()` επαληθεύει το αποτέλεσμα. Αν η επαλήθευση αποτύχει: + +1. **Επανάπροσπάθεια LLM** — μία προσπάθεια με το μήνυμα σφάλματος Mermaid ως πλαισίο +2. **Μινιμαλή υποχώρηση** — ένα απλό διάγραμμα Mermaid από τα αναγνωριστικά κόμβων του προτύπου + +**Παράδοσιος Mermaid Fixer** επισκευάζει αυτόματα τα συνηθισμένα σφάλματα σύνταξης LLM: κανονικοποίηση οδηγιών note, αποφυγή pipe-label, επανατοποθέτηση κόμματος, έξυπνα εισαγωγικά, στρέλες διπλού διαστήματος, ανωμαλίες σχήματος και πολλά άλλα. + +### JSON Canvas + +Παράγει μορφή Obsidian JSON Canvas με χωρική διάταξη: +- Τα κόμβια τοποθετούνται ανάλογα με το βάθος (x = βάθος × 420) και τον δείκτη (y = δείκτης × 170) +- Η πλάτος εκτιμάται από το μήκος του ετικέτας +- Εδέσεις με `fromSide: 'right'`, `toSide: 'left'`, `toEnd: 'arrow'` + +### Vega-Lite + +Δημιουργεί πλήρεις προσδιορισμούς Vega-Lite v5 JSON με αυτόματη κωδικοποίηση: +- **Καρτεσιανές διαγράμματα** (μπαρ/γραμμή/περιοχή/τίπος/σκέτσ): κανάλια x + y + χρώμα για πολλαπλές σειρές +- **Πίρουγα**: theta = y (ποσοτικό), χρώμα = x (νομιναλό) +- **Πίνακας**: γραμμή = x, κείμενο = y + στήλη = σειρά + +Τα πρόσθετα στυλ σκούρο και φωτεινό ενωνούνται βαθιά πριν τη συνταξή. + +### HTML + +Συνολικός εναλλακτικός ρέψος. Αυτόνομο έγγραφο HTML με: +- Μετα-κεφάλαια CSP +- Λευκό/σκούρο λειτουργία μέσω `prefers-color-scheme` +- Τοποθετημένες ετικέτες UI για 20 τοπικοτήτες +- Ενότητες: hero, δομή (δέντρο κόμβων), σχέσεις, επισημασίες, πίνακες σειρών δεδομένων + +### Επιδιορθώσιμο HTML/SVG + +Ειδικός στόχος αριθμού για διαδικασίες εξάγωγης που μπορούν να τροποποιηθούν. Αυτός προβλέπει το `DiagramSpec` σε έναν αποφασιστικό `SemanticFigureModel`, στη συνέχεια παράγει ένα αυτόνομο δокумент HTML με ενσωματωμένες ομάδες SVG που περιέχουν σημειώσεις στυλ Draw.io: + +- `data-drawio-type`, `data-drawio-id` και `data-drawio-role` στα σημαντικά κόμβους +- `data-drawio-source` και `data-drawio-target` στα σημαντικά άκρα +- σταθεροί αναγνωριστικοί κόμβων/ακρών μετά την κανονικοποίηση κενών χαρακτήρων και τη διαχείριση συγκρούσεων +- χωρίς σκρίπτ, χωρίς εξωτερικά φόντα και χωρίς απομακρυσμένα περιουσιακά + +Αυτός ο στόχος δεν είναι σκόπιμα η προεπιλεγμένη διαδρομή του πλάνερ. Είναι διαθέσιμος ως ειδικός στόχος απεικόνισης καθώς η διαδρομή του προϊόντος αποδεικνύει τη συμπεριφορά επεξεργασίας σε πραγματικά εργαλεία. + +### Draw.io και Drawnix Όρια Εξάγωσης + +Η τρέχουσα υλοποίηση διατηρεί την υποστήριξη τρίτων επεξεργαστών στα ορία του αρτικλίου: + +| Στόχος | Συμβόλαιο | Εξάρτηση Εκτέλεσης | +|--------|----------|--------------------| +| Draw.io | αποφασιστικό μη αποπυκνωμένο `mxfile` XML από το `SemanticFigureModel` | κανένα στην εκτέλεση του πρόσθετου ή στο CI | +| Drawnix | λιγότερος υποσύνολος `.drawnix` JSON με χρήση στοιχείων `geometry` και `arrow-line` | κανένα στην εκτέλεση του πρόσθετου ή στο CI | + +Η συμβιβασμός είναι σκόπιμη: το Notemd μπορεί να επαληθεύσει τα ορατά ετικέτες, τους σταθερούς αναγνωριστικούς και την κάλυψη των υποστηριζόμενων πρωτοτύπων, χωρίς να ενσωματώνει το diagrams.net Desktop, το Drawnix, το Plait ή την κατάσταση επεξεργαστή μόνο για περιηγητές στο πρόσθετο. + +### circuitikz / TikZJax Κατεύθυνση + +Τα διαγράμματα κυκλωμάτων δεν αποτελούν το ίδιο πρόβλημα με τα γενικά διαγράμματα ροής. Ο σωστός σύνταξης στόχος για ηλεκτρικά κυκλώματα είναι συνήθως **circuitikz**, που απεικονίζεται σε Obsidian μέσω πρόσθετων όπως TikZJax. TikZJax μπορεί να φορτώσει πακέτα όπως `circuitikz`, `pgfplots`, `tikz-cd` και `chemfig`, γεγονός που το καθιστά ελκυστικό για σημειώσεις φυσικής, κυκλωμάτων, χημείας και μαθηματικών. + +Το κίνδυνο είναι ότι το ακατέργαστο TikZ που παράγεται από LLM είναι εύθραυστο: + +- μια πολύπλοκη τοπολογία κυκλωμάτου μπορεί να είναι ηλεκτρικά σωστή αλλά οπτικά αδιαβάσιμη; +- τα παρασυρόμενα σύρματα και ετικέτες μπορούν να κάνουν μια σωστή λίστα δίκτυου μη χρησιμοποιήσιμη για σημειώσεις μελέτης; +- λείποντα πρόλογα πακέτων, λάθος αγκύρες ή μη έγκυρα ονόματα εξαρτημάτων μπορούν να εμποδίσουν την απεικόνιση; +- η ανατροφοδότηση από τον απεικονιστή είναι συνήθως σε επίπεδο εικόνας, ενώ το LLM παράγει γεωμετρία σε επίπεδο κειμένου. + +Η καλύτερη αρχιτεκτονική είναι να θεωρήσουμε το circuitikz ως έναν περιορισμένο στόχο διαγράμματος, όχι ως μία ελεύθερη φόρμα παραγγελίας: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +Το μοντέλο πρώτης κλάσης θα πρέπει να περιγράφει την τοπολογία και τη διάταξη του κυκλωμάτου ξεχωριστά: + +| Στρώμα | Ευθύνη | Παράδειγμα | +|-------|----------------|---------| +| Τοπολογία | ηλεκτρικά κόμβια και συνδέσεις εξαρτημάτων | `VDD -> RD -> drain(M1)`, `source(M1) -> GND` | +| Διάταξη | τοποθέτηση σε δίαγραμμα, προσανατολισμός, μονοπάτια διαδρομής | `M1 at (3,2.2)`, εισόδιο αριστερά, έξοδος δεξιά | +| Στυλ | πακέτο, σύμβαση τάσης, ετικέτες, κόλα | `\begin{circuitikz}[american voltages]` | +| Επαλήθευση | γραφή λογαριασμού μεταγλώττισης, έλλειψη κόλων, ελέγχοι συντάσεως/στιγμιότυπου | TikZJax/Διαγνώσεις LaTeX πλús οπτική ανασκόπηση | + +### Τρέχον πρωτότυπο circuitikz + +Notemd περιλαμβάνει τώρα το πρώτο πρωτότυπο περιοχής περιορισμού για αυτήν την κατεύθυνση. Είναι σκόπιμα εκτός λειτουργίας και περιοριζόμενο από πρότυπα: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +Το πρωτότυπο προσθέτει ένα ξεχωριστό όριο `CircuitSpec` και έναν δετερμινιστικό εξαγωγέα για έξι οικογένειες χρυσών αναφορών: + +| Τύπος κυκλώματος | Χρυσή αναφορά | Εγγύηση τάσης | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | επαληθεύει `VDD -> R_D -> M1.D`, `vin -> M1.G`, `M1.S -> GND` και `M1.D -> vout` πριν γράψει LaTeX | +| `cmos-inverter` | `cmos-inverter-v1` | επαληθεύει τοπολογία PMOS-over-NMOS, κοινή είσοδος πόρτας, κοινό έξοδος δρέιν, `VDD -> MP.S` και `MN.S -> GND` πριν γράψει LaTeX | +| `cmos-buffer` | `cmos-buffer-v1` | επαληθεύει δύο στάδια αντιστροφέων σε σειρά, ενδιάμεσο κόμβο `vmid`, αποκατασταλέν ο `vout`, και κοινές γραμμές VDD/GND πριν γράψει LaTeX | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | επαληθεύει παράλληλα συσκευές PMOS/NMOS μεταξύ `vin` και `vout` με συμπληρωματικούς ελέγχους `phib` / `phi` πριν γράψει LaTeX | +| `cmos-nand2` | `cmos-nand2-v1` | επαληθεύει τον παράλληλο PMOS pull-up, τον σειριακό NMOS pull-down, τα διπλά εισόδια `va` / `vb` και `vout` πριν γράψει LaTeX | +| `cmos-nor2` | `cmos-nor2-v1` | επαληθεύει τον σειριακό PMOS pull-up, τον παράλληλο NMOS pull-down, τα διπλά εισόδια `va` / `vb` και `vout` πριν γράψει LaTeX | + +Αυτό δεν είναι ακόμη ένας γενικός TikZ generator. Δεν μεταγλωττίζει LaTeX, δεν καλεί TikZJax, δεν εξετάζει στιγμιότυπα οθόνης ούτε εκτελεί αυτοματοποιημένη επιδιόρθωση εικόνας. Αυτά παραμένουν μελλοντικά στάδια. + +Η εντολή Preview diagram μπορεί να ανοίξει ξανά τα αποθηκευμένα αρτικά circuitikz πηγής απευθείας όταν η επέκταση αρχείου είναι `.tex` ή `.tikz` και η πηγή περιλαμβάνει `\usepackage{circuitikz}` ή `\begin{circuitikz}`. Αυτή η διαδρομή είναι μια προβολή μόνο πηγής circuitikz: το modal δείχνει την πηγή, τις διαγνώσεις, τα ελέγχους αντιγραφής/αποθήκευσης και τα μεταδεδομένα ιστορίας, αλλά δεν μεταγλωττίζει LaTeX ούτε καλεί TikZJax εντός του χρόνου εκτέλεσης του προσθήκου. + +Τα ίδια όρια προβολής μόνο πηγής καλύπτουν τώρα τα αποθηκευμένα αρτικά Draw.io και Drawnix. Τα αρχεία `.drawio` δέχονται όταν μοιάζουν με Draw.io XML (`mxfile` ή `mxGraphModel`), ενώ τα αρχεία `.drawnix` δέχονται όταν είναι Drawnix JSON με `type: "drawnix"` και ένα `elements` πίνακα. Ο προσθήκης δεν ενσωματώνει ακόμη το diagrams.net ούτε τον φορέα whiteboard Drawnix· αυτές οι προβολές εκθέτουν την πηγή, τις διαγνώσεις και την ιστορία των αρτικών χωρίς να ισχυρίζονται ότι υπάρχει ενδοπροσθήκους οπτικός επεξεργαστής. + +Για επιδιόρθωση που διατηρεί την τοπολογία, περάστε το προ-επιδιόρθωσης σύνοψη ως αναφορά πριν αποδεχτείτε ένα επιδιορθωμένο υποψήφιο: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +Ο φρουρός επιδιόρθωσης χρησιμοποιεί `createCircuitTopologySignature` και `assertCircuitTopologyUnchanged` για να συγκρίνει `circuitKind`, `goldenReferenceId`, δίκτυα, αναγνώριση/τύπους/τερμινάλια εξαρτημάτων και τα ακατευθυνόμενα άκρα συνδέσεων πριν την έξοδο. Οι ετικέτες, ο κείμενος τίτλου, οι υποδείξεις διάταξης, η σειρά συνδέσεων και οι ετικέτες συνδέσεων αγνοούνται σκόπιμα. Ένας υποψήφιος που προσθέτει κάτι σύντομο ή επανασυνδέει έναν τερμινάλιο αποτυγχάνει με `Circuit topology drift detected` πριν γραφτεί το αρχείο `.tex`. + +Ο CLI μπορεί τώρα να αναλύσει ένα υπάρχοντα LaTeX/TikZJax λογ ανάλυσης χωρίς να εκτελέσει μεταγλωττιστή: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +Αυτή η διαγνωστική διαδρομή αναφέρει λείποντα πακέτα όπως `circuitikz.sty`, άγνωστες TikZ/circuitikz κλειδιά, συνταξικές αποτυχίες TikZ όπως λείποντα κόμματα, ανεξέλεγκτα ορίσματα από μη ισορροπημένα παρενθέσματα ή μη ολοκληρωμένες ετικέτες, άνευ ορισμούς ελέγχου, γενικές σφάλματα LaTeX, επείγουσες σταμάτησεις και προειδοποιήσεις για υπερπληρωμένο `\hbox`. Παραμένει βασισμένο σε λογ: το τοπικό εκτέλεση LaTeX/TikZJax και τα στάδια ποιότητας στιγμιοτύπων είναι ακόμη ξεχωριστή μελλοντική δουλειά. + +Για τις ελέγχους smoke των συντηρητών, το ίδιο CLI μπορεί προαιρετικά να εκτελέσει έναν ρητά διαμορφωμένο renderer χωρίς ανάλυση εντολών shell: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Ο εκτελεστής ανάλυσης χρησιμοποιεί `shell: false`, επεκτείνει τα `{tex}`, `{outputDir}` και `{jobName}` μέρη αντικατάστασης σε τιμές πίνακα ορίσματος, διαβάζει το παραγόμενο `{jobName}.log` και επιστρέφει `compileExecution` μαζί με `compileDiagnostics` στην έξοδο CLI JSON. Το `--compile-executable` είναι μόνο η δυαδική ή ο δρόμος του wrapper· τα σημάδια renderer περιλαμβάνονται σε επαναλαμβανόμενες τιμές `--compile-arg`. Τα κενά εκτελέσιμα αρχεία αποτυγχάνουν ως `compile-executable-invalid`, τα λείποντα δυαδικά αρχεία αποτυγχάνουν ως `compile-executable-not-found`, και οι συμβολοσειρές εκτελέσιμων σε μορφή shell λαμβάνουν συμβουλές για τον διαχωρισμό ορίσματος ώστε Windows, Linux και macOS να ακολουθήσουν την ίδια συμβάση άμεσης εκτέλεσης. Με `--expected-artifact`, αναφέρει επίσης `compileExecution.renderSmoke` και αποτυγχάνει το CLI αν ο renderer δεν δημιουργήσει μη κενό αρτικό. Ο προσθήκης δεν ενσωματώνει ακόμη LaTeX, δεν κάνει το TikZJax εξαρτησία χρόνου εκτέλεσης προσθήκους ούτε εκτελεί επιδιόρθωση εικόνας σε στάδιο στιγμιοτύπου. + +Αν το αναμενόμενο αρτικό είναι `.svg`, ο ελέγχος smoke πηγαίνει μία στρώση βαθύτερα: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +Ο ελέγχος smoke SVG επαληθεύει τον ρίζα `<svg>`, θετικές διαστάσεις ή `viewBox`, τουλάχιστον ένα ορατό στοιχείο σχεδίασης μετά από αποκλεισμό κρυφών/διαφανών στοιχείων, οποιεσδήποτε ζητηθείσες τεκστικές μερίδες, προφανή στοιχεία εκτός του `viewBox`, προφανή υπερπληκτικά τοποθετημένα `<text>` / `<tspan>` ετικέτες και προφανής τεκστικές ετικέτες που υπερπληκτίζονται με στοιχεία σχεδίασης μέσω `render-svg-label-overlap`. Ο αναμενόμενος τεκστ έχει αναζητηθεί στον ορατό τεκστ και αποκωδικοποιηθεί η προσβασιμότητας μεταδεδομένα όπως `aria-label`, `<title>` και `<desc>`, οπότε οι renderer που διατηρούν σημασιολογικές ετικέτες εκτός του ορατού `<text>` μπορούν ακόμη να ικανοποιήσουν τον ελέγχο τεκστικών μερίδων χωρίς να απαιτούν OCR. Η διαδικασία γεωμετρίας είναι τώρα γεωμετρία που λαμβάνει υπόψη μετατροπές για συνηθισμένα ομάδες και στοιχεία `transform` χαρακτηριστικά, οπότε τα μεταφρασμένα, κλιμακωμένα, περιστραμμένα, παραμορφωμένα ή matrix-μετατραπέντα SVG πλαίσια ελέγχονται μετά τη σύνθεση μετατροπών. Καλύπτει τα ακριβή όρια κύματος για A/a κύματα εξτρέματα, τα ακριβή όρια καμπύλων Bezier για C/S/Q/T κύματα εξτρέματα, τα SVG όρια που λαμβάνουν υπόψη το πάχος γραμμής και ελέγχους υπερπληκτικών ετικέτων, τη `polyline` / `polygon` γεωμετρία σχεδίασης και επίσης επιλύει την τοποθέτηση γλυφών μόνο διαδρομής από `<use href="#...">` αναφορές, οπότε οι ετικέτες που μετατρέπονται σε επαναχρησιμοποιήσιμες γλυφικές διαδρομές μπορούν ακόμη να αποτύχουν στους ελέγχους περιορισμένου πίνακα όταν η γεωμετρία της τοποθετημένης γλυφής φύγει από το `viewBox`. Πολλές τοποθετημένες `tspan` ετικέτες κάτω από ένα `<text>` γονέα συγκρίνονται ως ξεχωριστά πλαίσια ετικέτων, που πιάνουν τη LaTeX-στυλ SVG έξοδο που αλλιώς θα συμπίεσε διαφορετικές ετικέτες σε έναν τεκστικό κόμβο. Οι τοποθετημένες SVG `text` και `tspan` πλαίσια σέβονται τις τιμές `start`, `middle` και `end`, οπότε οι κεντρωμένες και δεξιά ευθυγραμμισμένες ετικέτες μπορούν να προκαλέσουν διαγνώσεις τεκστ/ετικέτας-σε-σχεδία χωρίς να ισχυρίζονται βραウザ-στεπέν της διάταξης τεκστού. Οι γλυφικές διαδρομές μόνο ορισμούς εντός `<defs>` δεν λέγονται ως ορατά στοιχεία σχεδίασης, αλλά τα δικά τους ορισμούς-τοπικά `transform` χαρακτηριστικά εφαρμόζονται πριν την `<use>` τοποθέτηση, οπότε οι κλιμακωμένες ή αντανακλασμένες γλυφικές ορισμούς δεν υπολογίζονται λιγότερο. Η ελέγχος ετικέτας-σε-σχεδία χρησιμοποιεί μια μικρή ανοχή για πλαίσια σχεδίασης και τα δηλωμένα `stroke-width`, οπότε λεπτές συνδέσεις, παχιές συνδέσεις και πολυγώνια εξαρτημάτα μπορούν όλα να θεωρηθούν πιθανές αποτυχίες αναγνωσιμότητας ετικέτων όταν η ορατή γραμμή τους φτάνει σε μια ετικέτα. Οι γλυφικές ετικέτες μόνο διαδρομής που επιλύονται από `<use href="#...">` συγκρίνονται επίσης με πλαίσια σχεδίασης και αποτυγχάνουν με `render-svg-path-glyph-overlap` όταν η επαναχρησιμοποιήσιμη γεωμετρία γλυφής υπερπληκτίζεται συνδέσεις ή εξαρτημάτα. Αν ένας renderer μετατρέπει ετικέτες σε επαναχρησιμοποιήσιμες γλυφικές διαδρομές αντί για αναζητήσιμο `<text>` και δεν διατηρεί τα μεταδεδομένα προσβασιμότητας, ο ελέγχος smoke καταγράφει `pathOnlyGlyphUseCount` και αποτυγχάνει το ζητηθείς τεκστικό μέρος μέσω `render-svg-text-path-only` αντί να προσποιείται ότι η ετικέτα απλώς απουσιάζει. Άλλες αποτυχίες αναφέρονται μέσω `render-svg-invalid`, `render-svg-dimension-missing`, `render-svg-no-visible-elements`, `render-svg-text-missing`, `render-svg-out-of-bounds`, `render-svg-text-overlap`, `render-svg-label-overlap` ή `render-svg-path-glyph-overlap`. Οι ελέγχοι τεκστικών μερίδων και υπερπληκτικών θα πρέπει να θεωρηθούν μόνο δομικές smoke για renderer που διατηρούν ετικέτες ως αναζητήσιμο SVG τεκστ ή μεταδεδομένα προσβασιμότητας· η διαδρομή μόνο διαδρομής SVG χρειάζεται ακόμη το μελλοντικό στάδιο στιγμιοτύπου/OCR για να αποδείξει την οπτική αναγνωσιμότητα ετικέτων, και αυτής η διαδρομή smoke δεν ισχυρίζεται πλήρη SVG κάλυψη διαδρομής. + +Οι κρυφές SVG ομάδες και στοιχεία παραλείπονται συστηματικά κατά την μετρήση ορατών στοιχείων και συλλογή γεωμετρίας. Τα χαρακτηριστικά ή inline-style `display:none`, `visibility:hidden`, `visibility:collapse` και το συνολικό `opacity:0` δεν μπορούν να κάνουν ένα αλλιώς κενό αρτικό επιδιόρθωσης να περάσει τον ελέγχο ορατής έξοδου smoke. + +Οι γλυφικές ορισμοί μόνο διαδρομής μπορούν να είναι άμεσες διαδρομές ή ομάδες/σύμβολα περιβάλλοντας εντός `<defs>`. Η διαδρομή smoke επιλύνει τη γεωμετρία παιδιών διαδρομής από `<g id="...">` και `<symbol id="...">` πριν την `<use>` τοποθέτηση, οπότε η γλυφική έξοδος που περιβάλλεται συνεχίζει να τροφοδοτεί `pathOnlyGlyphUseCount`, ελέγχους περιορισμένου πίνακα και `render-svg-path-glyph-overlap`. + +Ο αναλυτής διαδρομής παρακολουθεί επίσης τις αρχές υποδιαδρομών και επαναφέρει το τρέχον σημείο στο `Z/z`, οπότε οι σχετικές εντολές μετά από ένα κλειστό υποδιάδρομο συνεχίζουν από το σωστό SVG σημείο αντί να δημιουργήσουν ψεύτικες `render-svg-out-of-bounds` διαγνώσεις. + +Η ίδια διαδικασία γεωμετρίας ακολουθεί τη γραμματική SVG για δεκαδικούς αριθμούς με πρόδρομο κόμμα και ρητά σύμβολα πλuses, οπότε οι συμπαγές συντεταγμένες dvisvgm όπως `.5`, `-.5` ή `+.5` παραμένουν κλασματικές κατά τις ελέγχους όριων αντί να γίνουν ψευδής εκτός-όριος γεωμετρία ή να παραλειφθούν. + +Αν ο εκπομπέας εκπέμπει `.png`, το ίδιο πορτάλι του αναμενόμενου προϊόντος γίνεται η πρώτη στιγμιότυπη εικόνα smoke: Notemd αναλύει αρχεία PNG με δείκτη χρωμάτων 1/2/4/8-bit χωρίς διασταύρωση, αρχεία PNG σε γραζουλί 1/2/4/8/16-bit, και αρχεία PNG σε γραζουλί-alpha/RGB/RGBA 8/16-bit. Τα αρχεία με δείκτη χρωμάτων και υπο-βάιτ γραζουλί υποστηρίζουν συμπιεσμένα δείγματα· τα αρχεία με δείκτη χρωμάτων υποστηρίζουν επίσης PLTE και προαιρετικά δεδομένα tRNS· τα αρχεία γραζουλί/RGB υποστηρίζουν διαφανή δείγματα tRNS. Τα δείγματα 16-bit επικανονίζονται στο ίδιο χώρο σύγκρισης 8-bit RGBA που χρησιμοποιείται από τους ελέγχους smoke. Ο ελέγχος smoke επαληθεύει θετικές διαστάσεις, καταγράφει τα όρια του προσκήνιου ως `foregroundBounds`, καταγράφει την πυκνότητα του προσκήνιου μέσα σε αυτό το πλαίσιο ως `foregroundDensity`, αποτυγχάνει με `render-png-blank` όταν κάθε ορατό πικσέλ έχει το χρώμα του προσκήνιου στην αριστερά-πάνω, αποτυγχάνει με `render-png-content-clipped` όταν το περιεχόμενο του προσκήνιου αγγίζει τα όρια της εικόνας, αποτυγχάνει με `render-png-foreground-too-small` όταν μια μεγάλη στιγμιότυπη εικόνα έχει λιγότερα από τέσσερα πικσέλ του προσκήνιου, και αποτυγχάνει με `render-png-foreground-dense` όταν τα πικσέλ του προσκήνιου είναι ασυνήθως πυκνά μέσα σε ένα μη απλό πλαίσιο όριων. Τα μη υποστηριζόμενα μορφάτα PNG αποτυγχάνουν με `render-png-unsupported` και υπάρχουν συγκεκριμένες οδηγίες για Adam7 διασταυρωμένα PNG ή μη υποστηριζόμενες βάθους δεικτών χρωμάτων. Αυτό ανιχνεύει κενές στιγμιότυπες εικόνες, προφανή κόπηση του πίνακα, υποεκπομπές του προσκήνιου, αποτυχίες στο επίπεδο του πρώτου πικσέλ και λάθος ρυθμίσεις εξαγωγής PNG του εκπομπέα, χωρίς να προσθέτει εξαρτήσεις shell συγκεκριμένης πλατφόρμας. Δεν είναι ακόμη αναγνώριση ετικετών σε επίπεδο OCR, ακριβής ανίχνευση παράστασης κειμένου ή επιδιώκηση εικόνας με διατήρηση τοπολογίας. + +Όταν οι διαγνώσεις δείχνουν αποτυχημένη κατασκευή ή εκτέλεση render-smoke, το CLI μπορεί επίσης να γράψει ένα σύντομο αναφορικό έγγραφο με διατήρηση τοπολογίας: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +Το αναφορικό έγγραφο χρησιμοποιεί σχήμα `notemd.circuitikz.repair-brief.v1` και περιλαμβάνει την πηγή `CircuitSpec`, το υπογράμμα τοπολογίας, τις διαγνώσεις κατασκευής/εκτέλεσης, τις επιτρεπόμενες τροποποιήσεις, τις απαγορευμένες τροποποιήσεις τοπολογίας, τα επόμενα βήματα επαλήθευσης και ένα δομημένο `repairPrompt`. Ο ρόλος του προμπτ είναι `topology-preserving-circuitikz-repair`· η λίστα `diagnosticFocus` του προέρχεται από τις διαγνώσεις κατασκευής/εκτέλεσης, και οι απαιτήσεις `acceptanceCriteria` απαιτούν επικύρωση υποψηφίου συν νέες διαγνώσεις κατασκευής και render-smoke. Είναι το μορφάτο παράδοσης για μια μεταγενέστερη βρόχη επιδιώκησης, όχι ισχυρισμός ότι Notemd έχει ήδη εκτελέσει αυτόνομη οπτική επιδιώκηση. + +Μετά την παραγωγή ενός υποψηφίου επιδιώκησης, το ίδιο CLI μπορεί να τον επαληθεύσει σε σχέση με το αναφορικό έγγραφο πριν γράψει την έξοδο: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief` ελέγχει το υπογράμμα τοπολογίας του υποψηφίου από το αναφορικό έγγραφο και είναι αμφίσυγκροτητικό με `--topology-reference`. Η περάση αυτής της φράγματος αποδεικνύει μόνο διατήρηση τοπολογίας· ο υποψηφίος χρειάζεται ακόμη διαγνώσεις κατασκευής και ελέγχους render-smoke. + +Το αποτέλεσμα `--repair-brief` περιλαμβάνει επίσης αποδεικτικά στοιχεία `repairAcceptance` με σχήμα `notemd.circuitikz.repair-acceptance.v1`. Αναφέρει τις φράγματα `topology-signature`, `compile-diagnostics` και `render-smoke` ως `passed`, `failed` ή `missing`· αποκαλύπτει το `remainingChecks`· και διατηρεί το `readyForVisualAcceptance` ψευδό μέχρι να περιλαμβάνει ο υποψηφίος όλα τα απαιτούμενα αποδεικτικά στοιχεία. + +Χρησιμοποιήστε `--repair-acceptance-output` με `--repair-brief` όταν οι αποδεικτικές πληροφορίες CI ή κυκλοφορίας χρειάζονται ένα μόνιμο αρχείο JSON: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +Για αποδεικτικές πληροφορίες κυκλοφορίας ή συντήρησης, εκτελέστε κάθε υποστηριζόμενη «golden family» μέσω του συνολικού εκτελεστή fixture: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Ο εκτελεστής χρησιμοποιεί `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json` και `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json`, καλεί τον ίδιο μονό-shell εξαγωγέα για κάθε fixture και επιστρέφει ένα συνολικό αναφορικό JSON με `compileExecution` και `compileDiagnostics` για κάθε fixture. Είναι ακόμη ένας διατάγματος συντήρησης, όχι εξαρτήσεις runtime πλαγινών. + +Όταν το μηχάνημα συντήρησης δεν έχει ακόμη διαμορφωθεί renderer, εκτελέστε τον ίδιο διατάγματο fixture χωρίς `--compile-executable` και διατηρήστε ρητά το φράγμα περιβάλλοντος: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +Αυτός ο μοντέλος γράφει ακόμη τα διαπιστωτικά artifact του fixture `.tex`, αλλά επιστρέφει `ok: false` με `rendererAvailability.status` ορίζονται σε `missing-configuration` και έναν διαγνωστικό `compile-executable-invalid`. Θεωρήστε το ως αποδεικτικό μόνο για τη διαθεσιμότητα renderer· δεν είναι κατασκευή, render-smoke ή οπτική αποδοχή. + +### Σχήμα πρόμπτ για χρυσή αναφορά + +Για βραχυπρόθεσμη χρήση, παράσχετε μία εκτελέσιμη χρυσή αναφορά πριν ζητήσετε μία μεταβλητή κύκλωσης. Ένα περιορισμένο πρόμπτ πρέπει να διατηρεί το πρόλογο, την κλίμακα συντεταγμένων, το στυλ ανκρώσεων και τις συμβάσεις διανομής: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +Για έναν CMOS inverter, το πρόμπτ πρέπει να ζητά ρητά τοπολογία και περιορισμούς διατάξεων, όχι απλώς «σχεδιάστε έναν CMOS inverter»: + +- το `VDD` στην κορυφή, το `GND` στο πάτο, είσοδος στα αριστερά, έξοδος στα δεξιά; +- χρησιμοποιήστε `pmos` πάνω από `nmos`, με κοινές πύλες και κοινές απορροές; +- διατηρήστε τον κόμβο εξόδου στο σημείο απορροής και σημειώστε τον με `*-o`; +- χρησιμοποιήστε ονομασμένα αγκύρωματα (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) αντί για συντελεστές που εξακριβώνονται οπτικά; +- αποφύγετε διαγωνικά ή διασχίζοντα σύρματα εκτός αν είναι απαραίτητα από την ηλεκτρική λειτουργία. + +### Τρέχον πρόοδος και επόμενες φάσεις + +| Εμβαδόν | Τρέχων στάτος | Επόμενη κίνηση | +|------|----------------|-----------| +| Γενικά διαγράμματα | Υλοποιήθηκε παイプλάιν με προτείνες πρώτα για Mermaid, JSON Canvas, Vega-Lite, HTML | Συνεχίστε να επεκτείνετε την κάλυψη σημασιολογικής επαλήθευσης | +| Επεξεργασιμά διαγράμματα | Υλοποιήθηκαν ορία αρτικλών `editable-html-svg`, Draw.io XML και Drawnix JSON | Προσθέστε πιο πλούσιες πρωτότυπες μόνο αφού οι δοκιμές αποδείξουν επεξεργασιμότητα | +| Υποστήριξη CLI | `npm run diagram:export-artifact` εξάγει επεξεργασιμά HTML/SVG, Draw.io και Drawnix από ένα `DiagramSpec` | Προσθήκη συσκευών καπνού που απευθύνονται σε συγκεκριμένους στόχους όταν αποστέλλονται νέοι στόχοι | +| circuitikz | `CircuitSpec -> circuitikz` πρωτότυπο εξάγει common-source, CMOS inverter, `cmos-buffer` / `cmos-buffer-v1`, `cmos-transmission-gate` / `cmos-transmission-gate-v1`, `cmos-nand2` / `cmos-nand2-v1`, και `cmos-nor2` / `cmos-nor2-v1` χρυσά πρότυπα, έργα `layoutHints.inputSide` και `layoutHints.outputSide` σε προσδιορισμένη τοποθέτηση εισόδου/εξόδου χωρίς να αλλάζει η τοπολογία, απορρίπτει την απόκλιση της τοπολογίας των επιδιορθώσεων μέσω `--topology-reference`, εκπέμπει σύντομα επιδιορθώσεων που διατηρούν την τοπολογία μέσω `--repair-brief-output` και του σχήματος `notemd.circuitikz.repair-brief.v1`, περιλαμβάνει δομημένο περιεχόμενο μεταβίβασης `repairPrompt` με `diagnosticFocus`, `acceptanceCriteria`, και τον ρόλο `topology-preserving-circuitikz-repair`, επαληθεύει τους υποψήφιους επιδιορθωτές μέσω `--repair-brief`, επιστρέφει αποδείξεις πύλης `repairAcceptance` μέσω του σχήματος `notemd.circuitikz.repair-acceptance.v1` με `readyForVisualAcceptance` και `remainingChecks`, διατηρεί αυτές τις αποδείξεις μέσω `--repair-acceptance-output`, αναλύει λογαριασμούς συνταξής, μπορεί να εκτελέσει ρητούς τοπικούς απεικονιστές καθώς και `--expected-artifact`, SVG `--expected-svg-text`, ελέγχους μεταδεδομένων προσβασιμότητας μέσω `aria-label`, `<title>`, και `<desc>`, αποκλεισμός κρυφών/διαφανών στοιχείων SVG, ταξινόμηση `render-svg-text-path-only` / `pathOnlyGlyphUseCount` για ετικέτες μόνο δρόμου, ελέγχοι τοποθέτησης γλυφών μόνο δρόμου για `<use href="#...">`, διαγνώσεις συντονισμού γλυφών μόνο δρόμου μέσω `render-svg-path-glyph-overlap`, χειρισμός σημείου ρεύματος για κλειστούς δρόμους για `Z/z`, ακριβείς όρια κύματος για τα ακρά κύματος A/a, ακριβείς όρια καμπύλων Bezier για τα ακρά καμπύλων C/S/Q/T, όρια SVG που λαμβάνουν υπόψη το πάχος γραμμής και ελέγχοι συντονισμού ετικετών, ελέγχοι γεωμετρίας σχεδίασης `polyline` / `polygon`, γεωμετρία ετικετών σε θέση `tspan`, γεωμετρία κειμένου σε θέση που λαμβάνει υπόψη `text-anchor`, γεωμετρία που λαμβάνει υπόψη μετατροπές για SVG bounded-canvas/text-overlap και label-vs-drawing smoke μέσω `render-svg-label-overlap`, καθώς και ελέγχοι στιγμιότυπων PNG nonblank / clipped / dense-foreground smoke, περιλαμβανομένης αльφά του παλέτας χρωμάτων με ευρεσιτεχνία ευρεσικτών, διαφανείς δείγματα grayscale/RGB tRNS, και συγκεκριμένων οδηγιών `render-png-unsupported` για Adam7 interlaced PNGs και αποτυχίες ευρεσικτών βίτ, μέσω `foregroundBounds`, `foregroundDensity`, `render-png-content-clipped`, και `render-png-foreground-dense` χωρίς ανάλυση σελίδας, περιλαμβάνει συλλογικές συσκευές επιδιορθώσεων διατήρησης μέσω `npm run diagram:smoke-circuitikz`, καταγράφει απουσιά διαμόρφωσης απεικονιστή μέσω `rendererAvailability.status: "missing-configuration"` και `compile-executable-invalid`, και διαθέτει γενικές διαγνωστικές διαγνώσεις προεπισκόπησης, μετρήσεις σύνοψης διαγνώσεων, εγγραφές ιστορίας που λαμβάνουν υπόψη διαγνώσεις, και επικατάσταση μόνο από πηγή μέσω `RenderArtifact.diagnostics` και του προεπισκοπητικού μοντάλου | Προσθήκη αναγνώρισης ετικετών σε επίπεδο OCR για οπτικό κείμενο μόνο δρόμου, ακριβείς ελέγχοι συντονισμού σε επίπεδο πικσέλ, ευρύτερη κάλυψη δρόμου SVG όπου απαιτείται, αυτόματη εγκατάσταση/ανακάλυψη απεικονιστή μόνο αν μπορεί να παραμείνει προαιρετική, και αυτόματη εκτέλεση επιδιορθώσεων που διατηρούν την τοπολογία | +| Ενσωμάτωση TikZJax | Υπολογιστής επιδόσεων υποψήφιου για απεικόνιση στην πλευρά Obsidian | Να παραμείνει προαιρετικό· μην κάνετε το TikZJax απαραίτητη εξάρτηση εκτέλεσης πλαγινών | + +## Ρυθμίσεις + +| Παράμετρος | Προεπιλογή | Επίδραση | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | Μεταβολή μεταξύ σχεδίου-πρώτο και παλιού Mermaid | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = Mermaid μόνο· `'best-fit'` = φυσικοί στόχοι + επικατάστασεις | +| `preferredDiagramIntent` | `undefined` (αυτόματο) | Επαναλήψη αυτόματης ανίχνευσης σκοπού | +| `summarizeToMermaidLanguage` | `'en'` | Γλώσσα στόχου για ετικέτες διαγράμματος | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | LLM ανά μиссия για παραγωγή διαγράμματος | +| `autoMermaidFixAfterGenerate` | (από σταθερές) | Αυτόματη εκτέλεση παλιού επιδιορθωτή στην έξοδο Mermaid | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | Ενίσχυση πηγής με τοπικές γνώσεις αποθήκης | + +### Τοπική ενίσχυση γνώσεων + +Όταν ενεργοποιείται, Notemd ανακτά σχετικά αποσπάσματα πληροφοριών από την τοπική βάση γνώσεων του vault σας (βασισμένη στο MiniSearch) και τα προθέτει μπροστά από το αρχικό markdown. Η εντολή ενίσχυσης αναφέρει: "Μόνο ως υποστηρικτική αναφορά· διατηρήστε την πρωταρχική δομή πιστή στην αρχική σημείωση." + +### Λειτουργίες συμβατότητας + +- **`legacy-mermaid`**: Όλες οι προτάσεις διοχετεύονται προς Mermaid. Οι προτάσεις που δεν είναι Mermaid (canvasMap, dataChart) αναγκάζονται να πάνε στο `flowchart` ή `mindmap`. Δεν υπάρχει αλληλούπηξη. +- **`best-fit`**: Κάθε πρόταση διοχετεύεται προς τον φυσικό στόχο της. Αν ο πρωταρχικός στόχος αποτύχει, γίνεται περάσματος μέσω της αλληλούπηξης (π.χ., Vega-Lite → Mermaid → HTML). + +## Προεπισκόπηση & Εξάγωση + +| Δραστηριότητα | Μέθοδος | +|--------|--------| +| SVG export | `mermaid.render()` / `vega.View.toSVG()` / SVG builder για Canvas | +| Εξάγωση σε PNG | SVG → Image → Canvas (σχέση πικσέλων συσκευής 1x-3x) → PNG ArrayBuffer | +| Αποθήκευση πηγής | Το ακατέργαστο περιεχόμενο του artifact αποθηκεύεται με εκτέλεση που είναι συγκεκριμένη για τον στόχο | +| Προεπισκόπηση μόνο πηγής | Τα μη inline artifacts με περιεχόμενο πηγής δείχνονται ως κώδικας μαζί με διαγνώσεις, χωρίς απεικόνιση iframe | +| Σημασιολογική επιθεώρηση | Mermaid, JSON Canvas, Vega-Lite, και το επεξεργασιμό HTML/SVG ελέγχεται από `scripts/diagram-semantic-verification.js` | + +**Caching**: Το RenderCache χρησιμοποιεί αποφασιστικό JSON κλειδί του `{spec, target, theme}`. Η απομνημονεύσεις κατά την εκτέλεση προλαμβάνει διπλότυπες εκτελέσεις. + +## Συμβουλές + +- **Ξεκίνηστε με τη λειτουργία `best-fit`** — παράγει το καλύτερο οπτικό αποτέλεσμα για κάθε τύπο σκοπού +- **Χρησιμοποιήστε ισχυρά μοντέλα για πολύπλοκα διαγράμματα** — τα διαγράμματα ροής και ER ωφελούνται από το GPT-4o ή το Claude +- **Ενεργοποιήστε τις τοπικές γνώσεις** για διαγράμματα ειδικής περιοχής — ο σχετικός πληροφοριακός περιβάλλονς βελτιώνει την ακρίβεια +- **Ρυθμίστε το `autoMermaidFixAfterGenerate`** — τα Mermaid συντακτικά σφάλματα είναι συχνά χωρίς αυτό +- **Ο παλαιότερος διορθωτής είναι ολοκληρωμένος** — αν η προβολή Mermaid αποτύχει, η χειροκίνητη εκτέλεση της εντολής διορθωτή συχνά το λύνει + +--- + +## Επόμενα βήματα + +- 🔗 [Wiki-Links](./wiki-links) — Πώς οι έννοιες συνδέονται ενσωματωμένα +- 📝 [Concept Notes](./concept-notes) — Ανάκτηση έννοιων για υλικό πηγής διαγράμματος +- 🔍 [Research](./research) — Ενίσχυση διαγράμματος με δεδομένα από το Διαδίκτυο diff --git a/website/i18n/el/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/el/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..455c8d93 --- /dev/null +++ b/website/i18n/el/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "Έρευνα & Αναζήτηση στο Διαδίκτυο" +description: "Ενσωμάτωση αναζήτησης στο διαδίκτυο στις σημειώσεις σας" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Έρευνα & Αναζήτηση στο Διαδίκτυο + +<TLDR> +**Notemd ερωτά το διαδίκτυο και εισάγει αποτελέσματα που έχουν συνοψιστεί με LLM απευθείας στις σημειώσεις σας.** Tavily API είναι το κύριο πίσωχωρο αναζήτησης· DuckDuckGo λειτουργεί ως εναλλακτικό χωρίς ρυθμίσεις. Τα αποτελέσματα συνοψίζονται με πηγές και προστίθενται κάτω από τίτλο `## Research`. Υποστηρίζει έρευνα σε μία σημείωση, έρευνα σε συνόλα φακέλων και επιλογή μοντέλου για το βήμα σύνοψης ανά εργασία. + +Αυτό αποτελεί μέρος του [Obsidian Οδηγού Διαχείρισης Γνώσης AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Επισκόπηση + +Η έρευνα είναι μία από τις πιο ισχυρές ενσωμάτωσεις του Notemd: κλείνει τον κύκλο μεταξύ ανάγνωσης, αναζήτησης και γραφής. Αντί να μεταβείτε σε έναν περιηγητή για να αναζητήσετε έναν άγνωστο όρο, επισημάνετε τον και αφήστε το Notemd να αναζητήσει, να συνοψίσει και να προσθέσει τα αποτελέσματα – όλα μέσα στο vault σας. + +Η διαδικασία είναι πλήρως ρυθμίσιμη. Επιλέγετε τον πάροχο αναζήτησης, το LLM που γράφει τη σύνοψη και αν τα αποτελέσματα προστίθενται στην ενεργή σημείωση ή γράφονται σε ξεχωριστά αρχεία. Ο λειτουργικός τρόπος συνόλων σας επιτρέπει να έρευνετε κάθε σημείωση σε έναν φάκελο με μία κλικ. + +## Πώς λειτουργεί + +### Παύλη Αναζήτησης-Συνόψησης + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **Απόμαχη ερωτήσεων** -- Notemd ανακαλύπτει όρους αναζήτησης από την επιλογή σας ή τον τίτλο της σημείωσης. +2. **Αναζήτηση στο διαδίκτυο** -- Πρώτα προσπαθείται το Tavily. Αν δεν έχει ρυθμιστεί κλειδί API, χρησιμοποιείται αυτόματα το DuckDuckGo (δεν απαιτείται κλειδί). +3. **Σύνοψη με LLM** -- Τα ακατέργαστα αποτελέσματα αναζήτησης στέλνονται στο ρυθμισμένο LLM, το οποίο παράγει μία σύντομη σύνοψη με ενσωματωμένες πηγές. +4. **Προσθήκη** -- Η μορφοποιημένη σύνοψη προστίθεται κάτω από τίτλο `## Research` στην ενεργή σημείωση. + +### Tavily έναντι DuckDuckGo + +| Ασπέκτος | Tavily | DuckDuckGo | +|--------|--------|------------| +| Κλειδί API | Απαιτείται (διαθέσιμη δωρεάν επιπέδηση) | Δεν απαιτείται | +| Ποιότητα αποτελέσματος | Υψηλή (σχεδιασμένη ειδικά για AI) | Αρκετή για συνήθεις ερωτήσεις | +| Περιορισμοί ταχύτητας | Πλούσιο δωρεάν επίπεδο | Υπόκειται σε περιορισμούς ροής | +| Ρυθμίσεις | `tavilyApiKey` στις ρυθμίσεις | Μηδέν ρυθμίσεις -- αυτόματη επικατάσταση | + +### Έρευνα φακέλων σε ομάδες + +Κάντε δεξί κλικ σε έναν φάκελο και επιλέξτε **"Notemd: Φάκελος έρευνας"**. Κάθε αρχείο `.md` στον φάκελο επεξεργάζεται σε σειρά (ή παράλληλα μέχρι την καθορισμένη ταυτόχρονη εκτέλεση). Κάθε σημείωμα λαμβάνει το δικό του σύνοψη έρευνας. + +## Ρυθμίσεις + +| Παράμετρος | Προεπιλογή | Επίδραση | +|---------|---------|--------| +| `tavilyApiKey` | `''` | Κλειδί Tavily API. Όταν είναι κενό, χρησιμοποιείται αποκλειστικά DuckDuckGo. | +| `researchProvider` / `researchModel` | DeepSeek | LLM ανά μиссия για τη σύνοψη των αποτελεσμάτων αναζήτησης | +| `maxResearchContentTokens` | `4000` | Μερίδιο τόκεν για το περιεχόμενο που στέλνεται στο LLM. Το υπερβολικό κόπτεται. | +| `researchAppendToNote` | `true` | Προσθήκη σύνοψης στο αρχικό σημείωμα. Αν είναι false, δημιουργείται ξεχωριστό αρχείο. | +| `researchLanguage` | `'en'` | Γλώσσα εξόδου για τη συνοπτική έρευνα | + +### Συστάσεις μοντέλου ανά μиссия + +Η έρευνα ωφελείται από ένα μοντέλο που διαχειρίζεται πολυγλωσσικό περιεχόμενο και παράγει καλά δομημένο κείμενο. Σκεφτείτε: + +- **DeepSeek** -- προεπιλεγμένο, φθηνό, καλή ποιότητα +- **GPT-4o** -- υψηλότερη ποιότητα συνοπτικοποίησης, υψηλότερο κόστος +- **Gemini Flash** -- γρήγορο και φθηνό, κατάλληλο για απλές ερωτήσεις + +## Παράδειγμα + +Διαβάζετε ένα άρθρο σχετικά με τις *μηχανισμούς προσοχής transformer* και συναντάτε έναν άγνωστο όρο: *relative positional encoding*. Αντί να αφήσετε Obsidian: + +1. Επισημάνετε **"relative positional encoding"** +2. Κλικ δεξί --> **"Notemd: Έρευνα και σύνοψη"** +3. Notemd αναζητά στο Διαδίκτυο, συνοπτίζει τα κορυφαία αποτελέσματα και προσθέτει: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +Η σύνοψη είναι τώρα μέρος του αρχείου σας, έρευνασιμή, δυνατή σε σύνδεση και προσβάσιμη χωρίς σύνδεση. + +## Συμβουλές + +- **Ορίστε μία Tavily κλειδί για καλύτερα αποτελέσματα** -- ακόμη και η δωρεάν επιλογή παρέχει καλύτερη σχετικότητα σε σύγκριση με το ακατέργαστο DuckDuckGo. +- **Χρησιμοποιήστε ένα ικανό μοντέλο συνοπτικοποίησης** -- φθηνά μοντέλα μπορεί να εξομαλύνουν το λεπτομερές τεχνικό περιεχόμενο. +- **Εκτελέστε μαζική έρευνα** μετά από πρώτη ανάγνωση για να καλύψετε κενά σε πολλές σημειώσεις ταυτόχρονα. +- **Επανεξετάστε τις προσθετημένες συνοπτικές** -- τα LLM μπορεί να δημιουργήσουν ψεύδεις λεπτομέρειες πηγής. Επαληθεύστε τις βασικές ισχυρίσεις. + +--- + +## Επόμενα βήματα + +- [Concept Notes](./concept-notes) -- Ανακάλυψτε και διατηρήστε βασικούς όρους από τα αποτελέσματα της έρευνας +- [Wiki-Links](./wiki-links) -- Συνδέστε τις έννοιες που προέρχονται από την έρευνα σε όλο το αρχείο σας +- [Translation](./translation) --Μεταφράστε τις συνοπτικές της έρευνας σε άλλη γλώσσα +- [LLM Πάροχοι](/docs/providers/overview) -- Ρυθμίστε το μοντέλο που χρησιμοποιείται για σύνοψη diff --git a/website/i18n/el/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/el/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..226e66e7 --- /dev/null +++ b/website/i18n/el/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "Μετάφραση" +description: "Μετάφραση σημειώσεων και επιλογών" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# Μετάφραση + +<TLDR> +**Notemd μεταφράζει κείμενα μεταξύ 21+ γλωσσών χρησιμοποιώντας μεταφραση βασισμένη στο LLM.** Υποστηρίζει μετάφραση με μία επιλογή, μετάφραση ολόκληρων σημειώσεων και μετάφραση πακέτων φακέλων. Κάθε εργασία μετάφρασης μπορεί να χρησιμοποιήσει έναν ειδικό πάροχο και μοντέλο μέσω ρυθμίσεων ανά εργασία. Η γλώσσα εξόδου μπορεί να ρυθμιστεί ξεχωριστά από τη γλώσσα UI. Τα αποτελέσματα προστίθενται ή γράφονται σε ένα νέο αρχείο ανάλογα με τις προτιμήσεις σας. + +Αυτό αποτελεί μέρος του [Obsidian Οδηγού Διαχείρισης Γνώσης AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Επισκόπηση + +Η μετάφραση στη Notemd δεν είναι αναζήτηση σε λεξικό – είναι μεταφραση βασισμένη στο LLM, που λαμβάνει υπόψη το πλαίσιο. Το μοντέλο βλέπει ολόκληρο το παράγραφο ή τη σημείωση, διατηρώντας τον τόνο, την ορολογία του τομέα και τη δομή των προτάσεων. Αυτό παράγει πιο υψηλής ποιότητας αποτελέσματα σε σύγκριση με υπηρεσίες μετάφρασης φράσης προς φράση, ιδιαίτερα για τεχνικό, ακαδημαϊκό και δημιουργικό κείμενο. + +Η λειτουργία υποστηρίζει τρεις επιπέδα: επιλογή, ενεργή σημείωση και ολόκληρο τον φάκελο. Σε συνδυασμό με την επιλογή μοντέλου ανά εργασία, μπορείτε να χρησιμοποιήσετε ένα γρήγορο μοντέλο (Gemini Flash) για απλές μεταφράσεις και ένα ισχυρό μοντέλο (Claude Sonnet) για περιεχόμενο που απαιτεί λεπτομέρειες – χωρίς να αλλάξετε τον παγκόσμιο πάροχό σας. + +## Πώς λειτουργεί + +### Η Εντολή Μετάφρασης + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **Ανίχνευση πηγής** – Η LLM εξαγωγεί τη γλώσσα πηγής από το περιεχόμενο. Δεν χρειάζεται να την καθορίσετε χειροκίνητα. +2. **Δημιουργία προϋποδοχής** – Η Notemd δημιουργεί μία προϋποδοχή που περιλαμβάνει την επιθυμητή γλώσσα, προαιρετική υποδείξη τομέα και το περιεχόμενο που θα μεταφραστεί. +3. **Μετάφραση LLM** – Η ρυθμισμένη `translateProvider` / `translateModel` επεξεργάζεται την αίτηση. Το μοντέλο διατηρεί τη μορφή markdown, τους σύνδεσμους wiki και τα μπλόκ κώδικα. +4. **Εξόδος** – Το μεταφρασμένο κείμενο προστίθεται κάτω από το αυθεντικό ή γράφεται σε ένα νέο αρχείο στο αποθετήριο. + +### Ζεύγη Γλωσσών + +Η Notemd υποστηρίζει οποιοδήποτε ζεύγος γλωσσών που υποστηρίζει το βασικό LLM. Συνηθισμένα ζεύγη περιλαμβάνουν: + +| Πηγή | Στόχος | Τυπική Ποιότητα | +|--------|--------|----------------| +| Αγγλικά | Κινεζικά (Απλοποιημένο) | Εξαιρετική | +| Κινεζικά | Αγγλικά | Εξαιρετικό | +| Αγγλικά | Ιαπωνικά | Πολύ καλό | +| Αγγλικά | Γερμανικά / Γαλλικά / Ισπανικά | Πολύ καλό | +| Οποιαδήποτε υποστηρίζεται | Οποιαδήποτε υποστηρίζεται | Ανάλογα με το μοντέλο | + +Η ρύθμιση `translateLanguage` ελέγχει τη **γλώσσα έξοδου**. Η πηγαία γλώσσα ανιχνεύεται αυτόματα. + +### Επιλογή μοντέλου ανά εργασία + +Η ποιότητα της μετάφρασης ποικίλλει σημαντικά ανάλογα με το μοντέλο. Notemd σας επιτρέπει να αναθέσετε ένα ειδικό μοντέλο μόνο για μετάφραση: + +| Μοντέλο | Γραμμή Ταχύτητας | Ποιότητα | Κόστος | Αποδεικτικό Χρήσης | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | Γρήγορο | Καλό | Χαμηλό | Ανεπίσημο, υψηλή ποσότητα | +| `gpt-4o-mini` | Γρήγορο | Καλό | Χαμηλό | Μεταχειρισμοί γρήγορα | +| `deepseek-chat` | Μέτριο | Καλό | Πολύ χαμηλό | Μικρόβουδζετ πολυγλωσσικό | +| `claude-3-5-sonnet` | Μέτριο | Εξαιρετικό | Μέτριο | Τεχνικό / ακαδημαϊκό | +| `gpt-4o` | Μέτριο | Εξαιρετικό | Μέτριο | Προσωποποιημένη προζή | + +### Μετάφραση φακέλων σε σειρά + +Κάντε δεξί κλικ σε έναν φάκελο και επιλέξτε **"Notemd: Translate folder"** για να μεταφράσετε κάθε σημείωμα σε αυτόν τον φάκελο. Κάθε αρχείο επεξεργάζεται ανεξάρτητα. Η ρύθμιση συγχρονισμού ελέγχει πόσα αρχεία μεταφράζονται ταυτόχρονα. + +## Ρυθμίσεις + +| Παράμετρος | Προεπιλογή | Επίδραση | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | Ειδικός πάροχος για εργασίες μετάφρασης | +| `translateLanguage` | `'en'` | Στόχευτη γλώσσα εξόδου | +| `translationAppendToNote` | `true` | Προσθέστε το μεταφρασμένο κείμενο κάτω από το αυθεντικό. Αν είναι false, δημιουργείται ένα νέο αρχείο. | +| `batchConcurrency` | `3` | Αριθμός των αρχείων που επεξεργάζονται ταυτόχρονα κατά τη μετάφραση σε σειρά | + +## Παράδειγμα + +Διαβάζετε ένα κινεζικό ερευνητικό σημείωμα και θέλετε μία Αγγλική έκδοση: + +1. Ανοίξτε το σημείωμα +2. Κάντε δεξί κλικ --> **"Notemd: Translate current file"** +3. Το Notemd ανιχνεύει τα κινεζικά, μεταφράζει τα στην ρυθμισμένη σας στόχουσα γλώσσα (Αγγλικά) και προσθέτει: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +Το αυθεντικό κινεζικό κείμενο παραμένει άλλαξτο πάνω από τη μετάφραση. Το πλαισίο `## Translation` διατηρεί και τις δύο εκδόσεις στο ίδιο αρχείο για ευκολή αναφορά. + +## Συμβουλές + +- **Χρησιμοποιήστε Gemini Flash για μεγάλες ποσότητες** -- είναι η ταχύτερη και φθηνότερη επιλογή για μετάφραση σε σειρά μεγάλων φακέλων. +- **Κατασκευή wiki-λινκών** -- η εντολή του Notemd οδηγεί το LLM να διατηρήσει το `[[wiki-links]]` ακέραιο στη μετάφραση. Επαληθεύστε μετά τη μετάφραση, καθώς ορισμένα μοντέλα μερικές φορές τα αποσυρρίπτουν. +- **Ορισμός της γλώσσας εξόδου ρητά** -- η αυτόματη ανίχνευση λειτουργεί για το πηγαίο κείμενο, αλλά πρέπει πάντα να ρυθμίσετε το `translateLanguage` για να αποφύγετε ασαφείες σχετικά με τον στόχο. +- **Μαζική μετάφραση σημειώσεων έννοιας** -- αν η φάκελος των έννοιών σας είναι σε μία γλώσσα και χρειάζεται να είναι σε μία άλλη, η μετάφραση σε επίπεδο φάκελου το λύνει σε μία βήμα. + +--- + +## Επόμενα βήματα + +- [Research](./research) -- Αναζήτηση και σύνοψη σε οποιαδήποτε γλώσσα, στη συνέχεια μετάφραση των αποτελεσμάτων +- [Workflows](./workflows) -- Αλυσίδα μεταφράσεων με wiki-λινκς ή εξαγωγή έννοιας +- [Batch Processing](/docs/advanced/batch-processing) -- Συγχρονισμός και συμπεριφορά αντικατάστασης για λειτουργίες φακέλων +- [LLM Providers](/docs/providers/overview) -- Επιλογή του καλύτερου μοντέλου για το ζευγάρι γλωσσών σας diff --git a/website/i18n/el/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/el/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..53fa53de --- /dev/null +++ b/website/i18n/el/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "Συνδέσμοι Wiki" +description: "Δημιουργία αυτόματων συνδέσμων Wiki για βασικές έννοιες" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# Συνδέσμοι Wiki + +<TLDR> +**Notemd προσθέτει αυτόματα `[[wiki-links]]` στις βασικές έννοιες των σημειώσεών σας.** Το LLM διαβάζει το περιεχόμενό σας, εντοπίζει σημαντικές λέξεις στο πλαίσιο και ενσωματώνει συνδέσμους Wiki στυλ Obsidian σε κάθε εμφάνιση. Προαιρετικά δημιουργεί αρχεία σημειώσεων έννοιας με αντίστροφους συνδέσμους. Υποστηρίζει την καταστολή συνώνυμων, την ακεραιότητα συνδέσμων κατά τη μετονομασία/αφαίρεση και τρόπο καθαρής εξαγωγής (χωρίς τροποποίηση αρχείων). Σε αντίθεση με το Auto Link που ταιριάζει μόνο με υπάρχοντα τίτλους σημειώσεων, το Notemd χρησιμοποιεί AI για να εντοπίσει νέες έννοιες και να δημιουργήσει αντίστοιχες σημειώσεις. Αυτό αποτελεί μέρος του [Obsidian Οδηγού Διαχείρισης Γνώσης AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Επισκόπηση + +Η δημιουργία συνδέσμων Wiki είναι η βασική λειτουργία του Notemd. Μετατρέπει απλό κείμενο σε ένα συνδεδεμένο γράφο γνώσης μέσω των εξής βήματων: + +1. **Ανάλυση της σημείωσής σας** με ένα LLM +2. **Εντοπισμός βασικών εννοιών** (λέξεις, άτομα, μέθοδοι, θεωρίες) +3. **Ενσωμάτωση `[[wiki-links]]`** σε κάθε εμφάνιση +4. **Δημιουργία σημειώσεων έννοιας** (προαιρετικά) με αντίστροφους συνδέσμους + +## Πώς λειτουργεί + +### Διαδικασία + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### Παράδειγμα + +**Πριν:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**Μετά:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## Χρήση + +### Βασικό: Προσθήκη συνδέσμων στην τρέχουσα σημείωση + +1. Ανοίξτε μία σημείωση +2. Κλικ δεξί στον επεξεργαστή → **"Διαδικάσεις αρχείου (προσθήκη συνδέσμων)"** +3. Περιμένετε μερικές δευτερόλεπτα +4. Οι έννοιες έχουν τώρα συνδεθεί! + +### Μερίδα: Επεξεργασία πολλών σημειώσεων + +1. Κάντε δεξί κλικ σε έναν φάκελο στο File Explorer +2. Επιλέξτε **"Notemd: Process folder (add links)"** +3. Ρυθμίσεις: + - Συγχρονισμός (πόσα αρχεία παράλληλα) + - Επαναγράφηση υπάρχοντων συνδέσμων (ναι/όχι) +4. Κάντε κλικ στο **Process** + +### Επιλεκτική: Σύνδεση συγκεκριμένου κειμένου + +1. Επισημάνωση κειμένου για επεξεργασία +2. Κάντε δεξί κλικ → **"Process selection (add links)"** +3. Αναλύεται μόνο το επισημασμένο τμήμα + +## Notemd έναντι Auto Link + +Obsidian διαθέτει δύο προσεγγίσεις για αυτόματη σύνδεση σε wiki: + +| | **Auto Link** | **Notemd** | +|--|---------------|-------------| +| Πηγή σύνδεσης | Τίτλοι υπάρχουσων σημειώσεων στο vault | Καταλόγους LLM που έχουν εντοπιστεί στο περιεχόμενο | +| Μπορεί να συνδέσει νέους όρους | Όχι — ο τίτλος πρέπει ήδη να υπάρχει | Ναι — η Τεχνητή Νοημοσύνη εντοπίζει όρους και δημιουργεί σημειώσεις | +| Διαχείριση συνώνυμων | Όχι | Ναι — καταστολή συνώνυμων | +| Δημιουργία σημειώσεων όρων | Όχι | Ναι — με παλινδρόμους και απομνημόνευση διπλασιασμών | +| Μαζική επεξεργασία | Όχι (μόνο ένα αρχείο) | Ναι (σε επίπεδο φάκελου) | +| Διαχείριση μοντέλων ανά εργασία | Όχι | Ναι | + +**Auto Link** είναι βασισμένο στην ένταξη τίτλου: αν υπάρχει σημείωση με το όνομα "Machine Learning", περιβάλλει τις εμφανίσεις της σε `[[Machine Learning]]`. Αν η σημείωση δεν υπάρχει, δεν συμβαίνει τίποτα. + +**Notemd** είναι καθοδηγούμενο από Τεχνητή Νοημοσύνη: το LLM διαβάζει το περιεχόμενό σας, κατανοεί το πλαίσιο, εντοπίζει όρους που *πρέπει* να συνδεθούν — ακόμη και αν δεν υπάρχει ακόμη σημείωση — και δημιουργεί τόσο τον σύνδεσμο όσο και τη σημείωση όρου. + +## Ιδιότητες + +### Καταστολή συνώνυμων + +**Μέλη πρόβλημα:** "transformer", "transformers", "Transformer architecture" → 3 ξεχωριστοί όροι + +**Λύση:** Notemd εντοπίζει σχεδόν διπλασιασμούς και χρησιμοποιεί την κανονική μορφή. + +**Σύνθεση:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### Ακεραιότητα Συνδέσμων + +**Όταν αλλάζετε το όνομα μιας σημειώσης έννοιας:** +- Όλοι οι συνδέσμοι wiki ενημερώνονται αυτόματα (Obsidian βασική λειτουργία) +- Οι αντίστροφοι συνδέσμοι παραμένουν άλλαντοι + +**Όταν διαγράφετε μια σημειώση έννοιας:** +- Οι συνδέσμοι παραμένουν αλλά εμφανίζονται ως "ανεσυνδεδεμένες αναφορές" +- Μπορείτε να την δημιουργήσετε ξανά από οποιαδήποτε εμφάνιση + +### Καθαρός Τρόπος Απομάκρυνσης + +**Απομάκρυνση έννοιων χωρίς τροποποίηση του αρχικού:** + +1. Κλικ δεξί → **"Απομάκρυνση έννοιων (βία απομάκρυνσης)"** +2. Δημιουργούνται σημειώσεις έννοιας +3. Το αρχικό αρχείο παραμένει αλλαγής χωρίς + +Χρήση: Διαχείριση μόνο διαβάσιμου περιεχομένου ή τελικών σχεδίων. + +## Δημιουργία Σημειώσεων Έννοιας + +### Αυτόματη Δημιουργία + +**Όταν είναι ενεργοποιημένο (προεπιλογή), Notemd δημιουργεί:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### Ρυθμίσεις + +**Πапκάς έξοδου:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Ιεραρχική δομή:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**Πρότυπο:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## Προχωρημένες επιλογές + +### Χώρος πλαισίου + +**Πόσο περιβάλλον κείμενο να στείλεται:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +Μεγαλύτερο = καλύτερη ακρίβεια, υψηλότερο κόστος. + +### Ελάχιστες εμφανίσεις + +**Μόνο να συνδέονται έννοιες που εμφανίζονται πολλές φορές:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +Ρυθμίστε σε 2 ή 3 για να επικεντρωθείτε σε επαναλαμβανόμενα θέματα. + +### Αποκλεισμός προτύπων + +**Να παραλείψετε ορισμένα λέξεις:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +Μεταφράζει την αποφυγή υπερσύνδεσης γενικών όρων. + +### Προσαρμοσμένες Απαγγελίες + +**Να αντικαταστήσετε τις προεπιλεγμένες οδηγίες LLM:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +Μεταβάλετε για ειδικές ανάγκες του τομέα (π.χ., "Επικέντρωση στην ιατρική ορολογία"). + +## Συμβουλές & Καλύτερες Πρακτικές + +### ✅ ΝΑ ΚΑΝΟΥΜΕ + +- **Επεξεργαστείτε σημειώσεις με >100 λέξεις** — Μικρές σημειώσεις παράγουν λίγες έννοιες +- **Χρησιμοποιήστε ισχυρά μοντέλα** για καλύτερη αναγνώριση έννοιων (GPT-4o, Claude) +- **Επανεξετάστε πριν δεχτείτε** — Ελέγξτε αν τα προτεινόμενα συνδέσμους έχουν νόημα +- **Δημιουργήστε διαδοχικά** — Επεξεργαστείτε 5-10 σημειώσεις, επανεξετάστε το γράφο, προσαρμόστε τις ρυθμίσεις + +### ❌ ΜΗΝ ΚΑΝΟΥΜΕ + +- **Περισσότεροι συνδέσμοι** — Δεν χρειάζεται σύνδεσμος για κάθε ουσιαστικό +- **Επεξεργαστείτε προσχέδια επανειλημμένα** — Οι έννοιες μπορεί να αλλάξουν, περιμένετε μέχρι να γίνουν σταθερές +- **Αγνοήστε τους συνώνυμους** — Ενεργοποιήστε την καταστολή για να αποφύγετε τη διαφορά μεταξύ "ML" και "Machine Learning" + +## Απόδοση + +### Γραμμή Ταχύτητας + +| Μέγεθος Σημειώσεων | GPT-4o-mini | Claude Sonnet | Ollama (lokalό) | +|-----------|-------------|---------------|----------------| +| 500 λέξεις | 2-3 δευτερόλεπτα | 3-5 δευτερόλεπτα | 5-10 δευτερόλεπτα | +| 2000 λέξεις | 5-8 δευτερόλεπτα | 10-15 δευτερόλεπτα | 20-40 δευτερόλεπτα | +| 5000+ λέξεις | Με κομμάτια (πολλές κλήσεις) | Μονάδες δεδομένων | Μονάδες δεδομένων | + +### Εκτίμηση Κόστους + +**Παράδειγμα: Σημείωμα 1000 λέξεων με το GPT-4o-mini** +- Εισόδιο: ~1500 τόκεν +- Αποτέλεσμα: ~200 τόκεν +- Κόστος: ~ + +**Ανάλυση σε παρτίδες για 100 σημειώσεις:** ~ + +## Αντιμετώπιση προβλημάτων + +### Κανένας σύνδεσμος δεν προστέθηκε + +**Ελέγχος:** +1. LLM η κλήση επιτύχησε (Ρυθμίσεις → Διαγνώση) +2. Η σημειώση περιέχει αρκετό περιεχόμενο (>50 λέξεις). +3. Οι έννοιες είναι τεχνικές/συγκεκριμένες (όχι απλώς αντωνύμια). + +**Δοκιμάστε:** +- Χρησιμοποίηστε ένα πιο ισχυρό μοντέλο +- Αύξηση παράθυρου συντεκста +- Ελέγξτε την έγκυρητα του κλειδιού API + +### Πάρα πολλοί σύνδεσμοι + +**Λύσεις:** +1. Αύξηση των ελάχιστων εμφανίσεων (2 ή 3) +2. Προσθέστε συνηθισμένα λέξεις στη λίστα αποκλεισμού +3. Χρησιμοποιήστε ένα λιγότερο επιθετικό μοντέλο + +### Λάθος έννοιες συνδεδεμένες + +**Λύσεις:** +1. Χρησιμοποίηση προσαρμοσμένου πρόμπτ για ειδικότητα του δομέα +2. Ενεργοποίηση καταστολής συνώνυμων +3. Επανεξέταση χειροκίνητα και αποσύνδεση + +### Οι σύνδεσμοι σπάνουν μετά τη μετονομασία + +**Αυτή είναι φυσιολογική Obsidian συμπεριφορά.** + +Για ενημέρωση όλων των συνδέσμων: +1. Μετονομάστε την σημειώση έννοιας +2. Obsidian ενημερώνεται αυτόματα `[[old]]` → `[[new]]` + +--- + +## Επόμενα βήματα + +- 📖 [Σημειώσεις Έννοιας](./concept-notes) — Διεξοδική εξέταση της δημιουργίας σημειώσεων έννοιας +- 🔍 [Ενσωμάτωση Έρευνας](./research) — Συνδυάσεις σύνδεσμων με ιστοσελίδες έρευνας +- 🎨 [Διαγράμματα](./diagrams) — Βιζουαλισμός του γραφήματος γνώσης σας diff --git a/website/i18n/el/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/el/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..3010b8af --- /dev/null +++ b/website/i18n/el/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "Διεργασίες" +description: "Συνδέστε πολλές εργασίες με κουμπιά μίας κλικ" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Διεργασίες + +<TLDR> +**Notemd Οι διεργασίες συνδέουν πολλές εργασίες σε μία μόνη ενέργεια μίας κλικ.** Ορίστε αλληλουχίες όπως `add-links > extract-concepts > research > diagram` χρησιμοποιώντας ένα απλό DSL. Οι διεργασίες εμφανίζονται ως κουμπιά στο πλάι-μπάρ που εκτελούν ολόκληρη την αλληλουχία στην τρέχουσα σημείωση ή φάκελο. Περιλαμβάνει προδιαγραφόμενες διεργασίες· δημιουργήστε προσαρμοσμένες στις ρυθμίσεις. Κάθε βήμα χρησιμοποιεί τη δική του διαμόρφωση μοντέλου ανά εργασία. + +Αυτό αποτελεί μέρος του [Obsidian Οδηγού Διαχείρισης Γνώσης AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Επισκόπηση + +Μία διεργασία εξαλείφει τη δυσκολία της εκτέλεσης εργασιών μία-μετά-μία. Αντί να κάνετε δεξί κλικ τέσσερις φορές για να προσθέσετε συνδέσμους, να εξαγάγετε έννοιες, να έρευνετε άγνωστους όρους και να δημιουργήσετε ένα διάγραμμα, πατάτε ένα κουμπί στο πλάι-μπάρ και η ολόκληρη αλληλουχία εκτελείται. Notemd διαχειρίζεται την αλληλουχία, τη μετάδοση σφαλμάτων και την αναφορά προόδου. + +Οι διεργασίες ορίζονται σε ένα ελαφρύ DSL (γλώσσα ειδικής χρήσης). Βρίσκονται στις ρυθμίσεις, εμφανίζονται ως κάνιμα κουμπιά στο πλάι-μπάρ του Obsidian και μπορούν να εφαρμοστούν είτε στην τρέχουσα σημείωση είτε σε ολόκληρο φάκελο. + +## Πώς λειτουργεί + +### Παίπιδο εκτέλεσης διεργασιών + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **Ανάλυση** -- Η συμβολοσειρά DSL διαιρείται με `>` (ή `>`) σε μία μεταταχθείσα λίστα αναγνωριστικών εργασιών. +2. **Ανάλυση** -- Κάθε αναγνωριστικό συνδέεται με ένα εσωτερικό πρότασμα (add-links, extract-concepts, research, translate, diagram κ.λπ.). +3. **Εκτέλεση** -- Τα βήματα εκτελούνται αλληλουχώς. Κάθε βήμα χρησιμοποιεί τον διαμορφωμένο πάροχο και μοντέλο ανά εργασία. +4. **Διαχείριση σφαλμάτων** -- Αν ένα βήμα αποτύχει, η διεργασία είτε διακόπτεται είτε συνεχίζει στο επόμενο βήμα, ανάλογα με την πολιτική σφαλμάτων σας. +5. **Τελείωση** -- Μία ειδοποίηση toast αναφέρει την επιτυχία ή λίσταζει τα αποτυχημένα βήματα. + +### Μορφή DSL + +Οι διεργασίες ορίζονται ως μία αλληλουχία αναγνωριστικών εργασιών χωρισμένη με `>`: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**Διαθέσιμοι αναγνωριστικοί εργασιών:** + +| Αναγνωριστικό | Δραστηριότητα | +|------------|--------| +| `process-current-add-links` | Προσθήκη συνδέσμων wiki στην ενεργή σημειώση | +| `extract-concepts-current` | Απόσυρση έννοιων από την ενεργή σημειώση | +| `research-and-summarize` | Έρευνα του επιλεγμένου κειμένου ή του τίτλου της σημειώσης | +| `process-current-translate` | Μετάφραση της ενεργής σημειώσης | +| `summarize-to-mermaid` | Δημιουργία διαγράμματος από την ενεργή σημειώση | +| `generate-from-title` | Δημιουργία περιεχομένου από τον τίτλο της σημειώσης | +| `extract-original-text` | Απόσυρση αρχικού κειμένου (για OCR / σκανημένο περιεχόμενο) | + +**Μεταβλητές σε επίπεδο φάκελου** αντικαθιστούν το `current` με `folder` στο όνομα του αναγνωριστικού. + +### Προκαθορισμένες έναντι προσαρμοσμένων ροδικών διαδικασιών + +Το Notemd περιλαμβάνει έτοιμες ροδικές διαδικασίες για συνηθισμένα μοτίβα: + +| Ροδική διαδικασία | Χειν | Χρήση | +|----------|-------|----------| +| **Μεταφορά με μία κλικ** | add-links > extract-concepts > research | Επεξεργασία ενός ερευνητικού άρθρου σε μία περιόδο | +| **Πλήρης σωλήνας** | ανάθεση-λινκών > εξαγωγή-μερωμάτων > έρευνα > διάγραμμα | Ολοκληρωμένη εξαγωγή γνώσεων με οπτικοποίηση | +| **Μετάφραση + Σύνδεση** | μετάφραση > ανάθεση-λινκών | Μετάφραση και σύνδεση μερωμάτων στην επιλεγμένη γλώσσα | + +**Προσαρμοσμένα ροήματα εργασίας** δημιουργούνται στις ρυθμίσεις: + +1. Ανοίξτε **Ρυθμίσεις** --> **Notemd** --> **Ροήματα εργασίας** +2. Κάντε κλικ στο **"Προσθήκη ροήματος εργασίας"** +3. Εισάγετε την αλυσίδα DSL (π.χ., `process-current-add-links>extract-concepts-current`) +4. Δώστε της έναν ονόματο εμφάνισης (π.χ., "Γρήγορη Σύνδεση + Εξαγωγή") +5. Το νέο κουμπί εμφανίζεται αμέσως στο πλάι-μενο + +## Ρυθμίσεις + +| Παράμετρος | Προεπιλογή | Επίδραση | +|---------|---------|--------| +| `workflows` | Προκαθορισμένο σύνολο | Μассив ορισμών ροήματος εργασίας (ονόματο + DSL) | +| `workflowContinueOnError` | `true` | Συνεχίστε στο επόμενο βήμα αν το τρέχον βήμα αποτύχει | +| `workflowShowProgress` | `true` | Εμφάνιση μήνυμα πρόοδου μετά από κάθε ολοκληρωμένο βήμα | + +### Μοντέλα-προς-μиссию στα ροήματα εργασίας + +Κάθε βήμα σε ένα ροδόληψη χρησιμοποιεί τη δική του διαμόρφωση μοντέλου ανά εργασία. Δεν χρειάζεται να καθορίσετε μοντέλα στο ίδιο DSL. Η τάξη επίλυσης είναι: + +1. Μοντέλο παρόχου/μοντέλο ανά εργασία αν `useMultiModelSettings` υπάρχει +2. Γλωβάλιο `activeProvider` διαφορετικά + +Αυτό σημαίνει ότι `add-links` μπορεί να εκτελεστεί στο DeepSeek ενώ το `research` εκτελείται στο GPT-4o -- όλα μέσα στο ίδιο κλικ του ροδόληψης. + +## Παράδειγμα + +Μόλις εισήγαγατε ένα PDF από ένα άρθρο μηχανικής μάθησης στο vault σας και θέλετε πλήρη εξαγωγή γνώσεων: + +1. Ανοίξτε την εισαχθείσα σημείωση +2. Κάντε κλικ στο κουμπί πλευρικής γραμμής **"Full Pipeline"** +3. Notemd εκτελείται: + - **Βήμα 1**: Προσθήκη συνδέσμων wiki -- `[[attention mechanism]]`, `[[transformer]]` κ.λπ. + - **Βήμα 2**: Εξαγωγή έννοιων -- δημιουργεί σημειώσεις έννοιων στον φάκελο έννοιων σας + - **Βήμα 3**: Έρευνα -- συνοπτίζει πηγές Διαδικτύου για βασικά όρους + - **Βήμα 4**: Διάγραμμα -- δημιουργεί ένα Mermaid mindmap της δομής του άρθρου +4. Μετά από περίπου 30 δευτερόλεπτα, η σημείωσή σας έχει συνδέσμους, υπάρχουν σημειώσεις έννοιων, η έρευνα έχει προστεθεί και αποθηκεύεται ένα αρχείο διάγραμματος + +Όλα αυτά με ένα μόνο κλικ. + +## Συμβουλές + +- **Ξεκινήστε με προκαθορισμένα ροδόληψη** -- καλύπτουν τα πιο συνηθισμένα πρότυπα. Προσαρμόστε μόνο όταν χρειάζεστε διαφορετική αλληλουχία. +- **Ενεργοποιήστε το `workflowContinueOnError`** -- μια αποτυχημένη φάση διάγραμματος δεν πρέπει να διακόψει ολόκληρο το pipeline. +- **Χρησιμοποίηστε ροδόλογια φακέλων** για μαζική επεξεργασία -- κάντε δεξί κλικ σε έναν φάκελο, επιλέξτε έναν ροδόλογο και κάθε σημείωμα θα επεξεργαστεί. +- **Ονομάστε τους ροδόλογους με σαφήνεια** -- ο χώρος στην πλευρική γραμμή είναι περιορισμένος. Χρησιμοποιήστε σύντομα, κατευθυνόμενα στην δράση ονόματα όπως "Γρήγορη Απόδοση" ή "Μετάφραση + Σύνδεσμος". + +--- + +## Επόμενα βήματα + +- [Research](./research) -- Κατανοήστε τι κάνει η φάση έρευνας πριν την προσθέσετε στους ροδόλογους +- [Wiki-Links](./wiki-links) -- Το βασικό χαρακτηριστικό σύνδεσης που χρησιμοποιείται στους περισσότερους ροδόλογους +- [Concept Notes](./concept-notes) -- Απόδοση έννοιων ως φάση ροδόλογου +- [Batch Processing](/docs/advanced/batch-processing) -- Συγχρονισμός και αναφορές προόδου για ροδόλογια φακέλων diff --git a/website/i18n/el/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/el/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..9edaeee3 --- /dev/null +++ b/website/i18n/el/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "Ρυθμίσεις" +description: "Ρυθμίστε τις ρυθμίσεις και τις προτιμήσεις του Notemd" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Ρυθμίσεις + +<TLDR> +**Η ρύθμιση Notemd καλύπτει 6 κύριες περιοχές:** (1) πάροχοι LLM και κλειδιά API, (2) επιλογή μοντέλου ανά εργασία, (3) διαδρομές έξοδου και πρότυπα, (4) γλώσσα UI και γλώσσα έξοδου, (5) υπηρεσίες αναζήτησης (Tavily/DuckDuckGo), (6) προσαρμοσμένα ρολόι εργασίας. Όλες οι ρυθμίσεις βρίσκονται στο Obsidian Settings → Notemd. Οι αλλαγές ισχύουν αμέσως. +</TLDR> + +## Επισκόπηση Ρυθμίσεων + +Πρόσβαση: **Obsidian Settings (⚙️) → Notemd** + +### Κύριες Ανασκοπήσεις + +1. **Ρύθμιση Πάροχου** — κλειδιά API, βασικά URLs, μοντέλα +2. **Ρυθμίσεις Εργασίας** — επιλογή μοντέλου ανά εργασία +3. **Ρύθμιση Έξοδου** — Πού να αποθηκεύσετε τα δημιουργημένα αρχεία +4. **Ρυθμίσεις Γλώσσας** — UI και γλώσσες έξοδου +5. **Ενσωμάτωση Αναζήτησης** — ρύθμιση Tavily/DuckDuckGo +6. **Ρολόι Εργασίας** — προσαρμοσμένες αλυσίδες κουμπιών +7. **Προχωρημένες ρυθμίσεις** — Διαγνώσεις, μαζική επεξεργασία, κομμάτιακος προσδιορισμός + +--- + +## 1. Ρύθμιση Πάροχου + +### Προσθήκη Πάροχου + +1. **Επιλέξτε πάροχο** από το dropdown (πάνω από 30 διαθέσιμα) +2. **Εισάγετε το κλειδί API** +3. **Επιλεκτικά**: Ορίστε προσαρμοσμένη βάση URL (για πρόξι/γέιτγουεις) +4. **Κάντε κλικ στο "Get Model List"** για να επαληθεύσετε τη σύνδεση +5. **Επιλέξτε προεπιλεγμένο μοντέλο** + +### Συνηθισμένοι πάροχοι + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Local) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### Πολλαπλοί πάροχοι + +Μπορείτε να ρυθμίσετε πολλούς πάροχους και να μεταβαίνετε μεταξύ τους ανά εργασία: +- **Βασικός πάροχος**: Χρησιμοποιείται ως εναλλακτική λύση +- **Πάροχοι συγκεκριμένων εργασιών**: Αντικαθιστούνται για συγκεκριμένες εργασίες + +--- + +## 2. Μοντέλα συγκεκριμένων εργασιών + +Ρυθμίστε διαφορετικά μοντέλα για διαφορετικές εργασίες για βελτιστοποίηση κόστους/ποιότητας: + +### Τύποι εργασιών + +| Εργασία | Προεπιλεγμένο μοντέλο | Σκοπός | +|------|--------------|---------| +| **Σύνδεση** | Βασικός πάροχος | Αναγνώριση έννοιων για συνδέσμους wiki | +| **Δημιουργία Εννοιών** | Κύριος πάροχος υπηρεσιών | Ανάγνωση και περιγραφή έννοιων | +| **Έρευνα** | Κύριος πάροχος υπηρεσιών | Συνοπτική ανάλυση αποτελεσμάτων αναζήτησης στο Διαδίκτυο | +| **Μετάφραση** | Κύριος πάροχος υπηρεσιών | Μετάφραση κειμένου | +| **Δημιουργία Διαγράμματων** | Κύριος πάροχος υπηρεσιών | Δημιουργία διαγραμμάτων Mermaid/Canvas | + +### Παράδειγμα: Οπτιμοποιημένη ρύθμιση κόστους + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### Πώς να ρυθμίσετε + +1. **Ρυθμίσεις → Notemd → Ρυθμίσεις εργασίας** +2. Για κάθε εργασία, επιλέξτε: + - ✅ **Χρησιμοποίηση κύριου πάροχου υπηρεσιών** (προεπιλογή) + - 🔄 **Χρησιμοποίηση προσαρμοσμένου πάροχου υπηρεσιών** → επιλέξτε πάροχο + μοντέλο + +--- + +## 3. Ρυθμίσεις εξόδου + +### Εξόδος σημειώσεων έννοιας + +**Πού αποθηκεύονται οι νέες σημειώσεις έννοιας:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Πρότυπο:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### Επιλογές δομής φακέλων + +**Επιλογή 1: Επίπεδη (όλες οι έννοιες σε έναν φάκελο)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**Επιλογή 2: Ιεραρχική (ανά φάκελο πηγής)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +Ρυθμίσεις: **Settings → Output → Use Hierarchical Folders** + +### Απόδοση διαγράμματος + +**Πού αποθηκεύονται τα διαγράμματα:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**Μορφή:** +- `.mmd` (Mermaid πηγή) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. Ρυθμίσεις γλώσσας + +### UI Γλώσσα + +**Γλώσσα διεπαφής** (κουμπιά, μενού, διαλόγια): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +Υποστηρίζονται: Αγγλικά, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Русский, العربية και άλλες. + +### Γλώσσα αποδόσης + +**Γλώσσα παραγόμενου περιεχομένου** (σημειώσεις έννοιας, συνοπτικά αναλύσεις έρευνας): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**Χρήση περιπτώσεων:** Κινέζι UI + αγγλική έξοδος για διπλόγλωσση έρευνα. + +### Στόχος μετάφρασης + +**Προεπιλεγμένη γλώσσα στόχου** για εργασίες μετάφρασης: + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. Ενσωμάτωση αναζήτησης + +### Tavily (Συνιστώμενο) + +**Υπηρεσία αναζήτησης βελτιστοποιημένη με AI:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +Πάρτηση κλειδί: [tavily.com](https://tavily.com/) + +**Χαρακτηριστικά:** +- Αξιόπιστα αποτελέσματα +- Συνοπτικά αναλύσεις βελτιστοποιημένα με AI +- Αναφορές πηγής + +### DuckDuckGo (Πειραματικό) + +**Δεν απαιτείται κλειδί API:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**Σημείωση:** Χαμηλότερη ποιότητα, χωρίς προσαρμογές. + +--- + +## 6. Ρυθμίσεις ροής εργασίας + +### Δημιουργία προσαρμοσμένων ροών εργασίας + +**Οι ροή εργασιών συνδέουν πολλές εργασίες σε ένα κουμπί.** + +1. **Ρυθμίσεις → Ροή εργασιών → Προσθήκη ροής εργασιών** +2. **Όνομα**: "Ροή ανάλυσης χαρτίου" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **Αποθήκευση** + +Ένα νέο κουμπί εμφανίζεται στο αριστερό πλάιμπαρ. + +### Σύνταξη DSL + +**Μορφή:** `action1>action2>action3` + +**Διαθέσιμες ενέργειες:** +- `process-current-add-links` — Προσθήκη συνδέσμων wiki στην τρέχουσα σημείωση +- `extract-concepts-current` — Δημιουργία σημειώσεων έννοιας +- `research-and-summarize` — Ιστοσυνοδευτική έρευνα + σύνοψη +- `translate-current` —Μετάφραση της τρέχουσας σημείωσης +- `summarize-as-mermaid` — Δημιουργία διάγραμματος Mermaid +- `process-folder-add-links` — Μαζική επεξεργασία φακέλου + +**Παραδείγματα ροήων εργασιών:** + +**Γρήγορη Ανάγραφη Στοιχείων Συνέπειας:** +``` +process-current-add-links>extract-concepts-current +``` + +**Βαθιά Έρευνα:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**Πολυγλωσσική Ανάλυση:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. Προχωρημένες Ρυθμίσεις + +### Μαζική επεξεργασία + +**Επεξεργασία πολλών αρχείων ταυτόχρονα:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +Υψηλότερο = γρηγορότερο αλλά περισσότερες κλήσεις API. + +### Σμαρτή Μεροποίηση + +**Για μεγάλα σημειώματα, χωρίστε τα σε μέρη:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +Μεταφράζει τα προβλήματα από περιορισμό των τόκεν. + +### Πάνελ διαγνώσεων + +**Εμφάνιση λεπτομερών ιστορικών:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +Δείχνει: +- API αιτήματα/απαντήσεις +- Χρήση τόκεν +- Χρόνοι επεξεργασίας +- Σφάλματα + +### Ανίχνευση διπλότυπων στοιχείων Συνέπειας + +**Αποφύγετε τα σχεδόν παρόμοια έννοια:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +Υψηλότερο = πιο επιθετική συνένωση. + +--- + +## Προφίλ διαμόρφωσης + +### Εξάγωση/Εισαγωγή ρυθμίσεων + +**Μοιράζονται οι διαμόρφωσεις μεταξύ συσκευών:** + +1. **Ρυθμίσεις → Προχωρημένες → Εξάγωση διαμόρφωσης** +2. Αποθηκεύει `notemd-config.json` +3. Σε νέα συσκευή: **Εισαγωγή διαμόρφωσης** + +**Τι περιλαμβάνεται:** +- Κλειδιά παρόχου API (προαιρετικά) +- Επιλογές μοντέλων +- Μονοπάτια εξόδου +- Προσαρμοσμένα ροή εργασίας + +--- + +## Συνιστώμενες διαμόρφωσεις + +### Για φοιτητές + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### Για ερευνητές + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### Για χρήστες που δίνουν σημασία στην ιδιωτικότητα + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### Για διπλόγλωσση στην εργασία + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## Αντιμετώπιση προβλημάτων στην ρύθμιση + +### Οι ρυθμίσεις δεν αποθηκεύονται +- Ελέγξτε τα δικαιώματα απόδοσης του αρχείου στο `.obsidian/plugins/notemd/` +- Δοκιμάστε: Απενεργοποιήστε το πλαγινό → Ενεργοποιήστε ξανά + +### Το κλειδί API είναι μη έγκυρο +- Δεν υπάρχουν επιπλέον διαστήματα +- Ελέγξτε την περιόδο λήξης +- Επαληθεύστε τα κρεδίτα στο πάνελ ελέγχου του παρόχου + +### Τα μοντέλα δεν φορτώνονται +- Κάντε κλικ στο "Προβολή λίστας μοντέλων" για ενημέρωση +- Ελέγξτε τη σύνδεση δικτύου +- Δοκιμάστε διαφορετικό παρόχο + +--- + +## Επόμενα βήματα + +- 📖 [Εξερευνήστε τις λειτουργίες](../features/wiki-links) +- 🔌 [Οδηγίες ρύθμισης παρόχου](../providers/overview) +- ❓ [FAQ](../faq) diff --git a/website/i18n/el/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/el/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..4a4e881e --- /dev/null +++ b/website/i18n/el/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "Εγκατάσταση" +description: "Πώς να εγκαταστήσετε Notemd στο Obsidian" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Εγκατάσταση + +<TLDR> +**Εγκαταστήστε Notemd μέσα σε λιγότερο από 2 λεπτά.** Δύο μέθοδοι: (1) Obsidian Community Plugins (συνιστώμενο, εγκατάσταση με μία κλικ), ή (2) Εγκατάσταση χειροκίνητα μέσω GitHub Releases. Απαιτείται Obsidian 0.15.0+. Λειτουργεί σε Windows, macOS, Linux, iOS και Android. Χωρίς εξωτερικές εξαρτήσεις. 4k+ λήψεις, με άδεια MIT. +</TLDR> + +## Μέθοδος 1: Community Plugins (Συνιστώμενη) + +1. Ανοίξτε τα **Ρυθμίσεις Obsidian** (σύμβολο ⚙️ ή `Ctrl/Cmd + ,`) +2. Μεταβείτε στα **Community plugins** +3. Κάντε κλικ στο **Browse** +4. Αναζητήστε **"Notemd"** +5. Κάντε κλικ στο **Install** +6. Κάντε κλικ στο **Enable** + +**Τελείωσε!** Θα δείτε το σύμβολο Notemd στην αριστερή πλευρική γραμμή. + +## Μέθοδος 2: Χειροκίνητη Εγκατάσταση + +### Προαπαιτήσεις +- Obsidian 0.15.0 ή νέατερη έκδοση +- Git (προαιρετικό, για κλωνάρισμα) + +### Βήματα + +1. **Κατεβάστε αρχεία** από τις [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest): + - `main.js` + - `styles.css` + - `manifest.json` + +2. **Βρείτε τον φάκελο plugin του vault σας:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +Αν ο φάκελος `plugins` δεν υπάρχει, δημιουργήστε τον. + +3. **Δημιουργήστε τον φάκελο Notemd:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **Αντιγράψτε τα τρία αρχεία** στον φάκελο `notemd`. + +5. **Επαναφόρτωση Obsidian:** + - Πατήστε `Ctrl/Cmd + R`, ή + - Αναεκκίνηση Obsidian + +6. **Ενεργοποιήστε το plugin:** + - Ρυθμίσεις → Community plugins + - Βρείτε το "Notemd" στη λίστα + - Ανακνύψτε το + +## Εναλλακτική λύση: Εγκατάσταση μέσω BRAT + +Αν χρησιμοποιείτε το [BRAT plugin](https://github.com/TfTHacker/obsidian42-brat): + +1. Ανοίξτε τις ρυθμίσεις BRAT +2. Κάντε κλικ στο "Προσθήκη βήτα πλαγινού" +3. Εισάγετε: `Jacobinwwey/obsidian-NotEMD` +4. Κάντε κλικ στο "Προσθήκη πλαγινού" +5. Ενεργοποιήστε το Notemd στους πλαγινούς της κοινότητας + +## Επαλήθευση + +Μετά την εγκατάσταση, επαληθέψτε ότι το Notemd λειτουργεί: + +1. Ανοίξτε οποιαδήποτε σημείωση +2. Κάντε δεξί κλικ στον επεξεργαστή +3. Θα πρέπει να δείτε εντολές Notemd όπως: + - "Επεξεργασία αρχείου (προσθήκη συνδέσμων)" + - "Απόσυρση έννοιων" + - "Έρευνα και σύνοψη" + +## Επόμενα βήματα + +- **Ρυθμίστε τον πάροχο LLM:** [Quick Start →](./quick-start) +- **Λύση προβλημάτων:** [Common Issues →](../advanced/troubleshooting) + +## Απαιτήσεις συστήματος + +| Πλατφόρμα | Έκδοση | Στάση | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | Απαιτούμενο | +| **Windows** | 7+ | ✅ Υποστηρίζεται | +| **macOS** | 10.15+ | ✅ Υποστηρίζεται | +| **Linux** | Οποιοδήποτε | ✅ Υποστηρίζεται | +| **iOS** | 15+ | ✅ Υποστηρίζεται | +| **Android** | 5+ | ✅ Υποστηρίζεται | + +## Αποεγκατάσταση + +Για να αφαιρέσετε Notemd: + +1. Ρυθμίσεις → Επιλογές κοινότητας +2. Αναζήτηση του "Notemd" +3. Κάντε κλικ στο εικονίδιο ❌ +4. Προαιρετικά, διαγράψτε τον φάκελο του πρόσθετου: `<vault>/.obsidian/plugins/notemd/` + +Τα δεδομένα σας (σημειώσεις, σημειώσεις έννοιας κ.λπ.) παραμένουν αμετάβλητα. + +## Ενημέρωση + +### Αυτόματη ενημέρωση (Συνιστώμενο) +Obsidian ελέγχει αυτόματα για ενημέρωσεις προσθετών. Όταν υπάρχει νέα έκδοση: +1. Ρυθμίσεις → Επιλογές κοινότητας +2. Κάντε κλικ στο "Ελέγξτε ενημέρωσεις" +3. Κάντε κλικ στο "Ενημέρωση" δίπλα στο Notemd + +### Ενημέρωση χειροκίνητα +Ανεβάστε την πιο πρόσφατη έκδοση και αντικαταστήστε τα τρία αρχεία στον φάκελο του πρόσθετου σας. + +## Ανάκτηση βοήθειας + +- 📖 [Οδηγός για την άμεση αρχή](./quick-start) +- ❓ [FAQ](../faq) +- 💬 [Κοινότητα Discord](https://discord.gg/qnGgsQ9W) +- 🐛 [Αναφέρετε προβλήματα](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/el/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/el/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..b9200159 --- /dev/null +++ b/website/i18n/el/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "Οδηγός γρήγορης αρχής" +description: "Ξεκινήστε με Notemd σε 5 λεπτά" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Οδηγός γρήγορης αρχής + +<TLDR> +**Ξεκινήστε να χρησιμοποιείτε το Notemd σε 5 λεπτά.** Τρία βήματα: (1) Προσθέστε μία κλειδί LLM API (ή χρησιμοποιήστε το τοπικό Ollama), (2) Ανοίξτε μία σημείωση και εκτελέστε "Process file (add links)", (3) Διασκεφθείτε τις ροή εργασιών με μία κλικ στο πλάιμπαρ. Υποστηρίζει περισσότερους από 30 πάροχους. Δεν απαιτείται προγραμματισμός. Λειτουργεί εκτός σύνδεσης με Ollama. +</TLDR> + +## Βήμα 1: Ρυθμίστε τον πρώτο σας πάροχο LLM (2 λεπτά) + +### Επιλογή A: Πάροχος στο cloud (OpenAI, Anthropic κ.λπ.) + +1. Ανοίξτε **Settings** → **Notemd** +2. Μέσα στην ενότητα **LLM Provider Configuration**, επιλέξτε έναν πάροχο από το dropdown +3. Εισάγετε το **API Key** σας +4. (Επιλεκτικά) Κάντε κλικ στο **"Get Model List"** για να δείτε τα διαθέσιμα μοντέλα +5. Επιλέξτε ένα μοντέλο για κάθε τύπο εργασίας + +**Δημοφιλείς επιλογές:** +- **OpenAI**: `gpt-4o-mini` (γρήγορο, φθηνό) +- **Anthropic**: `claude-sonnet-4-6` (υψηλή ποιότητα) +- **DeepSeek**: `deepseek-chat` (πολύ φθηνό) + +### Επιλογή B: Τοπικό Ollama (Δεν απαιτείται κλειδί API) + +1. Εγκατάσταση [Ollama](https://ollama.com/) +2. Ανάληψη ενός μοντέλου: `ollama pull llama3.1` +3. Στις ρυθμίσεις Notemd, επιλέξτε **"Ollama"** ως παρόχος +4. Όνομα μοντέλου: `llama3.1` (ή οποιοδήποτε μοντέλο έχετε αναλάβει) + +## Βήμα 2: Δοκιμάστε την πρώτη σας εργασία (1 λεπτό) + +### Προσθήκη συνδέσμων Wiki σε μία σημείωση + +1. Ανοίξτε οποιαδήποτε σημείωση με νόηματικο περιεχόμενο +2. Κάντε δεξί κλικ στον επεξεργαστή +3. Επιλέξτε **"Επεξεργασία αρχείου (προσθήκη συνδέσμων)"** +4. Περιμένετε μερικές δευτερόλεπτα +5. Οι βασικές έννοιες είναι τώρα `[[wiki-linked]]`! + +**Παράδειγμα:** + +**Πριν:** +``` +Machine learning models use neural networks to process data. +``` + +**Μετά:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## Βήμα 3: Εξερευνήστε τις δυνατότητες (2 λεπτά) + +### Απομάκρυνση σημειώσεων εννοιών + +1. Κλικ δεξί → **"Απομάκρυνση εννοιών από το τρέχον αρχείο"** +2. Notemd δημιουργεί ξεχωριστά αρχεία για κάθε εννοία +3. Ελέγξτε τον φάκελο εννοιών που έχετε ρυθμίσει (προεπιλογή: `concepts/`) +4. Κάθε σημείωση εννοίας διαθέτει αντίστροφο σύνδεσμο προς την αρχική σας σημείωση + +### Έρευνα και Σύνοψη + +1. Επισήμανση ενός θέματος στην σημείωσή σας +2. Κλικ δεξί → **"Έρευνα και σύνοψη"** +3. Notemd ερωτήσεις για αναζήτηση στο Διαδίκτυο (Tavily ή DuckDuckGo) +4. Η σύνοψη προσθέτεται στη σημείωσή σας με τις πηγές + +### Διεργασίες με Μία Κλικ + +1. Ελέγξτε το **αριστερό πλάιμπαρ** για κουμπιά διεργασιών +2. Κάντε κλικ στο **"Ανάκτηση με Μία Κλικ"** σε οποιαδήποτε σημείωση +3. Εκτελείται: προσθήκη συνδέσμων → ανάκτηση έννοιων → έρευνα → δημιουργία διαγράμματος +4. Όλα με μία κλικ! + +## Συνηθισμένες πρώτες εργασίες + +### Εργασία 1: Επεξεργασία άρθρου/δοκιμίου + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### Εργασία 2:Μετάφραση σημειώσεων + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### Εργασία 3: Δημιουργία χάρτη γνώσεων + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## Συμβουλές προσαρμογής + +### Επιλογή μοντέλου ανά εργασία + +Μπορείτε να χρησιμοποιήσετε διαφορετικά μοντέλα για διαφορετικές εργασίες: + +| Εργασία | Συνιστώμενο Μοντέλο | Γιατί | +|------|------------------|-----| +| Προσθήκη Συνδέσμων | `gpt-4o-mini`, `deepseek-chat` | Γρήγορο, πολλές κλήσεις | +| Απόσυρση Συνεπειών | `claude-sonnet-4-6`, `gpt-4o` | Απόσυρση Αξίας | +| Έρευνα | `perplexity`, `gpt-4o` | Βασισμένο στο Διαδίκτυο | +| Μετάφραση | `gemini-flash`, `gpt-4o` | Πολυγλωσσικό | +| Διαγράμματα | `claude-opus`, τοπικό μοντέλο | Πολύπλοκη λογική | + +Ρυθμίσεις στο: **Settings → Notemd → Task-Specific Models** + +### Προσαρμοσμένα Ροήματα Εργασίας + +Δημιουργήστε το δικό σας κουμπί: + +1. Settings → Notemd → Workflows +2. Κάντε κλικ στο "Add Workflow" +3. Εισάγετε DSL: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. Ονομάστε το: "My Research Flow" +5. Ένα νέο κουμπί εμφανίζεται στην πλευρική γραμμή + +## Αντιμετώπιση προβλημάτων + +### "API Key Invalid" +- Ελέγξτε αν το κλειδί είναι σωστό (χωρίς επιπλέον χώρους) +- Επαληθεύστε ότι το λογαριασμός έχει πιστώσεις +- Δοκιμάστε με το κουμπί "Connection Test" στις ρυθμίσεις + +### "Model Not Found" +- Κάντε κλικ στο "Get Model List" για να δείτε τα διαθέσιμα μοντέλα +- Μερικοί πάροχοι απαιτούν συγκεκριμένα ονόματα μοντέλων (π.χ., `gpt-4o` και όχι `gpt-4`) + +### Τα σύνδεσμοι δεν εμφανίζονται +- Βεβαιωθείτε ότι η σημείωση έχει αρκετό περιεχόμενο (>50 λέξεις) +- Δοκιμάστε ένα πιο ισχυρό μοντέλο +- Ελέγξτε αν η κλήση LLM επιτύχησε (δείτε το πάνελ διαγνώσεων) + +### Αργή απόδοση +- Χρησιμοποιήστε ταχύτερα μοντέλα (`gpt-4o-mini` αντί για `gpt-4o`) +- Μειώστε το μέγεθος των κομμάτων στις ρυθμίσεις +- Ενεργοποίηση παράλληλης επεξεργασίας για συνόλα εργασιών + +## Επόμενα βήματα + +- 📖 [Εξερευνήστε όλες τις λειτουργίες](../features/wiki-links) +- ⚙️ [Προχωρημένη διαμόρφωση](./configuration) +- 🔧 [LLM Ρύθμιση πάροχου](../providers/overview) +- ❓ [FAQ](../faq) + +## Βίντεο εκπαίδευσης + +Παρακολουθήστε το βίντεο για γρήγορη έναρξη 3 λεπτών (Κινέζικα): +[【Αποκλειστικά ανοιχτό κώδικα, δωρεάν! NotEMD – Γρήγορη έναρξη σε 3 λεπτά】](https://b23.tv/lqR0RlA) + +## Ανάκτηση βοήθειας + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **Προβλήματα**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **Δεδομένα έγγραφων**: [Πλήρης τεκμηρίωση](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/el/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/el/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..13045223 --- /dev/null +++ b/website/i18n/el/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "Εισαγωγή στο Notemd" +description: "Μηχανή δημιουργίας βάσης γνώσεων με την τεχνολογία AI για το Obsidian, με μετατροπές στα σημειώματα, ροδόσχηματα και διαγράμματα βασισμένα σε προδιαγραφές" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Εισαγωγή στο Notemd + +<TLDR> +**Notemd** (Note + EMD — Enhanced Markdown Documents) είναι ένα πλαγινό ανοιχτού κώδικα για το Obsidian που μετατρέπει την ανάγνωση με τη βοήθεια του LLM σε μόνιμες γνώσεις. Σε αντίθεση με την AI βασισμένη σε συνομιλίες όπου οι πληροφορίες εξαφανίζονται μετά τη συνεδρία, το Notemd γράφει τα αποτελέσματα **απευθείας στο vault σας** ως σύνδεσμους wiki, σημειώματα έννοιας, σύνοψεις έρευνας, μεταφράσεις, ροδόσχηματα και διαγράμματα. Είναι σχεδιασμένο για ερευνητές, φοιτητές και εργαζόμενους στον τομέα των γνώσεων που θέλουν την ανάγνωση, την έρευνα και τις οπτικές εξηγήσεις να συσσωρεύονται σε μία δομημένη, εξελισσόμενη γραφή γνώσεων. +</TLDR> + +## Τι είναι το Notemd? + +Το Notemd ενσωματώνει **περισσότερα από 30 μεγάλα μοντέλα γλώσσας** (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama και άλλα) στο ροδόσχημα Obsidian του, για να αυτοματοποιήσει την εξάγωγη γνώσεων, την οργάνωση, τη μετάφραση, την έρευνα και τη δημιουργία διαγράμματος. + +### Βασική διαφορά: Προσωρινές έναντι μόνιμων γνώσεων + +| Ασπέκτος | AI βασισμένη σε συνομιλίες (ChatGPT κ.λπ.) | Notemd | +|--------|-------------------------------|--------| +| **Πού πηγαίνουν τα αποτελέσματα** | Ιστορικό συνομιλιών (εξαφανίζεται) | Το vault Obsidian σας (παραμένει) | +| **Μορφή** | Απαντήσεις σε απλό κείμενο | Δομημένα αρχεία: `[[wiki-links]]`, σημειώματα έννοιας, διαγράμματα | +| **Μακροπρόθεσμη αξία** | Πρέπει να ρωτήσετε ξανά κάθε φορά | Συσσωρεύεται σε μία γραφή γνώσεων | +| **Αποκλειστική πρόσβαση** | Απαιτεί ίντερνετ | Δουλεύει πλήρως αποκλειστικά χωρίς ίντερνετ με Ollama | + +## Βασικές δυνατότητες + +### 1. **Αυτόματη σύνδεση Wiki** +- LLM εντοπίζει τις βασικές έννοιες στις σημειώσεις σας +- Προσθέτει `[[wiki-links]]` σε κάθε εμφάνιση +- Προαιρετικά δημιουργεί σημειώσεις συνδεδεμένων έννοιων +- Απενεργοποίηση συνώνυμων για την αποφυγή διπλασιασμών + +### 2. **Δημιουργία σημειώσεων έννοιας** +- Αντλεί βασικές έννοιες από εργασίες, άρθρα, σημειώσεις +- Δημιουργεί ειδικά αρχεία έννοιας με παλινδρόμους +- Προσαρμόσιμοι μοντέλα και δρόμοι εξόδου + +### 3. **Ενσωμάτωση ιστοσελιδικής έρευνας** +- Ζητήστε Tavily ή DuckDuckGo από μέσα στο Obsidian +- LLM συνοψίζει τα αποτελέσματα με παραπομπές στην πηγή +- Προσθέτει τα αποτελέσματα έρευνας στην τρέχουσα σημείωση + +### 4. **Μετάφραση πολλών γλωσσών** +- Μεταφράζει επιλογές ή ολόκληρες σημείωσεις +- Υποστηρίζει περισσότερες από 21 UI γλώσσες +- Ανεξάρτητη ρύθμιση γλώσσας εξόδου +- Υποστήριξη μαζικής μετάφρασης + +### 5. **Δημιουργία διαγράμματων** +- **Mermaid**: Διαχαρτηματισμοί ροής, αλληλουχίας, κλάσεων, καταστάσεων, ER, Gantt +- **JSON Canvas**: Obsidian φυσικές διατάξεις +- **Vega-Lite**: Διαγράμματα δεδομένων, σειρές χρόνου, διαγράμματα διασποράς +- **HTML / Επεξεργασιμό HTML/SVG**: Αυτόνομα σχήματα με σημασιολογικές αναφορές +- **Draw.io / Drawnix όρια σχημάτων**: Μοντέλα εξαγωγής για τους συντηρητές από το ίδιο σημασιολογικό μοντέλο σχήματος +- **Δρόμος προώθησης διαγράμματων κυκλωμάτων**: Η υποστήριξη circuitikz/TikZJax σχεδιάζεται γύρω από χρυσές αναφορές, περιορισμένες εντολές, ανατροφοδότηση απόχυσης και επαλήθευση τοπολογίας/διατάξεων αντί για ακατέργαστο, ανεπιφύλακτο LLM TikZ +- **Διαγνώσεις προεπισκόπησης**: Τα σχήματα απόχυσης μπορούν να εμφανίσουν διαγνώσεις συνταξικής/απόχυσης κατασκευής, και οι μη ενσωματωμένες πηγές μπορούν να εξεταστούν χωρίς την ανάγκη για λειτουργία LaTeX στην πλευρά των πρόσθετων +- Αυτόματη διόρθωση σύνταξης για σφάλματα Mermaid + +### 6. **Διαδικασίες εργασίας με μία κλικ** +- Συνδέστε πολλές ενέργειες σε κουμπία πλευρικής πανελίδας +- Ορισμός ροής δουλειών με βάση DSL +- Παράδειγμα: `add-links > extract-concepts > research > diagram` + +## Ποιοι θα πρέπει να το χρησιμοποιήσουν Notemd; + +✅ **Ερευνητές** που διαβάζουν άρθρα και δημιουργούν ανασκοπήσεις βιβλιογραφίας +✅ **Φοιτητές** που οργανώνουν σημειώσεις μελέτης και δημιουργούν χάρτες έννοιων +✅ **Εργαζόμενοι στον τομέα της γνώσης** που θέλουν τις αντιλήψεις από την ανάγνωση να διατηρηθούν +✅ **Διπλόγλωσσοι επαγγελματίες** που χρειάζονται μετάφραση + συνδέσμους wiki +✅ **Χρήστες που διαβάζουν την ιδιωτικότητα** που θέλουν την τοπική υποστήριξη LLM (Ollama) +✅ **Πανεμπορικοί χρήστες** που προσαρμόζουν προτάσεις και ροές δουλειών + +## Γιατί Notemd + Obsidian; + +**Obsidian** είναι μια βάση γνώσης που δίνει προτεραιότητα στο τοπικό, βασισμένη σε markdown. **Notemd** προσθέτει θερμαίες δυνάμεις της AI: +- Τα δεδομένα σας παραμένουν στο αποθετήριό σας (όχι σε υπηρεσία σύνδεσης) +- Δουλεύει εκτός σύνδεσης με τοπικά μοντέλα +- Δωρεάν και ανοιχτό κώδικα (лиценζία MIT) +- Ενσωματώνεται με υπάρχοντες πρόσθετους Obsidian +- Επεκτάνεται σε δεκάδες χιλιάδες σημεία + +## Ξεκίνηση + +1. **Εγκατάσταση**: Ρυθμίσεις → Community Plugins → Αναζήτηση → "Notemd" +2. **Ρύθμιση**: Προσθέστε τον προμηθευτή LLM και τον κλειδί API (ή χρησιμοποιήστε το τοπικό Ollama) +3. **Δοκιμάστε**: Ανοίξτε ένα σημείο → Κλικ δεξί → "Process file (add links)" +4. **Εξερεύνηση**: Ελέγξτε το πλάιβουρν για ροδόσχημα με μία κλικ + +👉 [Οδηγός Εγκατάστασης](./getting-started/installation) | [Χρήσιμος Οδηγός Ξεκίνησης](./getting-started/quick-start) + +## Κατεύθυνση Ικανοτήτων Διαγράμματος + +Τα διαγράμματα του Notemd απομακρύνονται από τη μέθοδο "αίτηση στο μοντέλο να γράψει μία συνταγματική συμβολοσειρά" και προχωρούν προς ένα στρώματικο σύστημα: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +Η τρέχουσα υλοποίηση υποστηρίζει ήδη Mermaid, JSON Canvas, Vega-Lite, HTML fallback, επεξεργασιμά HTML/SVG, Draw.io XML artifacts, ένα ελάχιστο σύνολο Drawnix JSON, προβολές διαγνώσεων/fallback μόνο πηγής, καθώς και ένα offline `CircuitSpec -> circuitikz` prototype για common-source και CMOS inverter golden templates. Τα κυκλικά διαγράμματα αποτελούν πιο δύσκολη κατηγορία: το circuitikz μπορεί να εκφράσει ακριβή ηλεκτρική τοπολογία, αλλά οι ανεξέλεγκτες LLM output συχνά παράγουν δυσαναγνώσιμες διαδρομές ή LaTeX που δεν εμφανίζεται. Η επόμενη κατεύθυνση είναι να παραμείνει το circuitikz περιορισμένο με golden-reference templates, κανόνες διάταξης node-grid, διαγνώσεις εμφάνισης και βρόχους ανατροφοδότησης με στιγμιότυπα οθόνης. + +Διαβάστε τις λεπτομέρειες στο [Diagrams](./features/diagrams). + +## Αρχιτεκτονική + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd έναντι άλλων Obsidian AI Plugins + +Οι περισσότερες Obsidian AI plugins είναι στρατηγικά βασισμένες σε συνομιλίες (αναρωτάτε, το AI απαντά, οι πληροφορίες παραμένουν στη συνομιλία). Το Notemd είναι **βασισμένο στη γραφή**: το AI επεξεργάζεται τα σημεία σας και γράφει δομημένα αποτελέσματα απευθείας στο vault σας. + +| Ικανότητες | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| Ενσωμάτωση αυτόματων συνδέσμων wiki | Ναι | Όχι | Όχι | Όχι | +| Δημιουργία σημειώσεων έννοιας | Ναι (με συνδέσμους πίσω + απομνημόνευση μοντέλων) | Όχι | Όχι | Όχι | +| Δημιουργία διαγράμματων | Ναι (Mermaid, Canvas, Vega-Lite, HTML, επεξεργασιμά αρтеφάκτα) | Όχι | Όχι | Όχι | +| Ενσωμάτωση έρευνας στο Διαδίκτυο | Ναι (Tavily + DuckDuckGo) | Όχι | Όχι | Όχι | +| Επεξεργασία φακέλων σε μαζική μορφή | Ναι | Μεγάλο περιορισμό | Όχι | Μεγάλο περιορισμό | +| Διαχείριση μοντέλων ανά εργασία | Ναι (7 εργασίες, ανεξάρτητα μοντέλα) | Όχι | Όχι | Όχι | +| Αλυσίδες ροής εργασιών με μία κλικ | Ναι (DSL) | Όχι | Όχι | Όχι | +| Μετάφραση (μαζικά) | Ναι | Όχι | Όχι | Όχι | +| Συνομιλία με το vault | Όχι | Ναι | Όχι | Όχι | +| Αναζήτηση σημασιολογικής ομοιότητας | Όχι | Όχι | Ναι | Όχι | +| Παραγωγή με βάση πρότυπα | Όχι | Όχι | Όχι | Ναι | +| πάροχοι LLM | 36 (cloud + gateway + local) | 3-5 | 2-3 | 3-5 | +| Πλήρως εκτός σύνδεσης | Ναι (Ollama) | Μερικός | Μερικός | Μερικός | + +**Πότε να επιλέξετε το Notemd**: Θέλετε την Τεχνητή Νοημοσύνη να δημιουργήσει ένα μόνιμο γράφο γνώσεων — όχι απλώς να συζητήσει για τις σημειώσεις σας. + +**Πότε να επιλέξετε το Copilot**: Θέλετε έναν βοηθό AI για συνομιλίες μέσα στο Obsidian. + +**Πότε να επιλέξετε το Smart Connections**: Θέλετε να ανακαλύψετε τις υπάρχουσες σχέσεις μεταξύ σημειών μέσω σημασιολογικής αναζήτησης. + +## Φιλοσοφία + +**Notemd πιστεύει ότι η τεχνητή νοημοσύνη θα πρέπει να ενισχύσει την ανθρώπινη δουλειά στον τομέα της γνώσης, όχι να την αντικαταστήσει.** Το πρόσθετο: +- Σας δίνει έλεγχο (ανασκόπηση πριν εφαρμόσετε αλλαγές) +- Διατηρεί το πλαίσιο (όλα τα αποτελέσματα συνδέονται πίσω στην πηγή) +- Σέβεται την ιδιωτικότητα (τοπική υποστήριξη LLM, χωρίς τηλεμετρία) +- Παραμένει επέκτασιμο (ανοιχτά APIs, προσαρμοσμένα ρολόγια δουλειάς) + +## Open Source + +- **License**: MIT +- **Source**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **Community**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **Contribute**: Οι PRs είναι δεδομένοι, δείτε [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +**Next**: [Installation →](./getting-started/installation) diff --git a/website/i18n/el/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/el/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..18cab841 --- /dev/null +++ b/website/i18n/el/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Οδηγός Διαχείρισης Γνώσης με AI Obsidian" +description: "Ολοκληρωμένος οδηγός για τη δημιουργία μιας συνδεδεμένης βάσης γνώσης με AI — από σύνδεσμους wiki και εξαγωγή έννοιων μέχρι έρευνα, μετάφραση και δημιουργία διαγράμματων" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Οδηγός Διαχείρισης Γνώσης με AI Obsidian + +<TLDR> +**Notemd μετατρέπει την ανάγνωση που χρησιμοποιεί LLM σε διαρκή γνώση: οι σύνδεσμοι wiki συνδέουν τις έννοιες, οι σημειώσεις έννοιας δημιουργούν ένα ανακτήσιμο γράφο, η έρευνα φέρνει το Διαδίκτυο στο αποθετήριό σας, η μετάφραση διαλύει τα φραγμούς των γλωσσών, τα διαγράμματα καθιστούν ορατή τη δομή, και τα ροδόσχηματα συνδέουν τα πάντα με μία κλικ.** Αυτός ο οδηγός καλύπτει ολόκληρο το σύστημα — από ακατέργαστες σημειώσεις μέχρι μία συνδεδεμένη, οπτική, πολυγλωσσική βάση γνώσης. +</TLDR> + +## Γιατί Διαχείριση Γνώσης με AI؟ + +Η παραδοσιακή σημειώσεωση δημιουργεί επίπεδα αρχεία. Ακόμη και με χειροκίνητους σύνδεσμους wiki, οι περισσότερες σημειώσεις παραμένουν ανακοπημένες. Notemd χρησιμοποιεί LLM για να αυτοματοποιήσει το στρώμα σύνδεσης: + +- **LLM διαβάζουν το περιεχόμενό σας** και εντοπίζουν τι είναι σημαντικό — όρους, μέθοδους, άτομα, θεωρίες +- **Οι σύνδεσμοι εισάγονται αυτόματα** σε κάθε εμφάνιση έννοιας, όχι κρυμμένοι σε «δείτε επίσης» +- **Οι σημειώσεις έννοιας δημιουργούνται** ως ανεξάρτητα ανακτήσιμα αρχεία +- **Η έρευνα εμπλουτίζει τις σημειώσεις** με πληροφορίες από το Διαδίκτυο +- **Τα διαγράμματα καθιστούν ορατή τη δομή** — ψυχογραμμές, ροδόσχηματα, διαγράμματα δεδομένων από το ίδιο περιεχόμενο + +Το αποτέλεσμα: ένας γράφος γνώσης που αυξάνεται με κάθε σημείωση που επεξεργάζεστε, όχι μόνο όταν θυμάστε να προσθέσετε σύνδεσμους. + +## Ολόκληρο το Σύστημα + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +Κάθε βήμα είναι ανεξάρτητο. Χρησιμοποιήστε ένα ή όλα. Η πιο αποτελεσματική σειρά: **Προσθήκη Συνδέσμων → Σημειώσεις Έννοιας → Διαγράμματα**. + +--- + +## 1. Σύνδεσμοι Wiki: Καθιστώντας τις Συνδέσεις Ευκρινείς + +Οι σύνδεσμοι wiki είναι η ράχη ενός γράφου γνώσης. Notemd χρησιμοποιεί ένα LLM για να: + +1. Διαβάστε το περιεχόμενο της σημείωσής σας (χωρισμός σε μέρη για μεγάλα έγγραφα) +2. Αναγνωρίστε τις βασικές έννοιες — δίνοντας προτεραιότητα συγκεκριμένων, τεχνικών όρων αντί για γενικά ουσιαστικά +3. Εισάγετε `[[wiki-links]]` σε κάθε εμφάνιση +4. Απενεργοποιήστε τους συνώνυμους ώστε τα "ML" και "Machine Learning" να μη δημιουργούν ξεχωριστά κόμβια + +### Πότε να χρησιμοποιηθεί + +- **Κάθε σημείωση >100 λέξεις** — οι πιο σύντομες σημείωσες παράγουν λίγες έννοιες +- **Έργα έρευνας, τεχνικά έγγραφα, σημειώσεις συναντήσεων** — πλούσια σε όρους ειδικού τομέα +- **Μετά το περιεχόμενο να γίνει σταθερό** — μην επεξεργάζεστε επανειλημμένα προσχέδια + +### Βασικές ρυθμίσεις + +| Παράμετρος | Συνιστώμενο | Γιατί | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek ή GPT-4o-mini | Καλή ακρίβεια σε χαμηλό κόστος | +| Απενεργοποίηση συνώνυμων | Έν | Προλαμβάνει διπλότυπα κόμβια | +| Παράθυρο πλαισίου | Παράγραφος | Ισορροπία μεταξύ ακρίβειας και κόστους | + +→ [Εμβαθύς ανάλυση Wiki-Links](/docs/features/wiki-links) + +--- + +## 2. Σημειώσεις Συνέπειας: Κόμβοι Γνώσης που μπορούν να ανακτηθούν + +Οι Wiki-links συνδέουν ιδέες ενδοχρονικά, αλλά οι σημειώσεις συνέπειας καθιστούν κάθε ιδέα ανεξάρτητα ανακτήσιμη. Κάθε έννοια διαθέτει το δικό της `.md` αρχείο: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### Η Διαδικασία Ανάκτησης + +Η εντολή LLM είναι πολύ δομημένη: +- Προσαρμόστε σε μορφή μονόσημου +- Προτιμήστε πολυλέξικες έννοιες αντί για μονόλεξικες ("Dielectric Relaxation" και όχι "Relaxation") +- Διαψάξτε τα σημεία αναφοράς/βιβλιογραφία +- Εξάγετε ως `CONCEPT:` γραμμές για διαπιστωσιμό παρασκευασμό + +Οι έννοιες απομονώνονται μεταξύ των τμημάτων μέσω `Set<string>`. Τα LLM σφάλματα σε μεμονωμένα τμήματα δεν διακόπτουν τη λειτουργία. + +### Αντίστροφες Σύνδεσεις + +Όταν ενεργοποιηθούν, κάθε σημείωση συνέπειας παρακολουθεί ποιες πηγαίες σημειώσεις την αναφέρουν. Το εγγενές πάνελ αντίστροφων συνδέσεων του Obsidian δείχνει επίσης τις αντίστροφες σύνδεσεις. + +### Διαγύριση διπλότυπων + +Ο μηχανισμός απομονώσεων 4 βημάτων του Notemd πιάνει: +1. **Ακριβείς ισοφορίες** — σύγκριση ονομάτων αρχείων χωρίς να ληφθεί υπόψη η περιπτώση +2. **Πολυπληρωματικές μορφές** — "Models.md" έναντι "Model.md" +3. **Κανονικοποίηση συμβόλων** — "A-B.md" έναντι "A B.md" +4. **Περιέχομενο μονόλεξου** — "ML.md" σημειώνεται όταν υπάρχει "Machine Learning.md" + +### Ρυθμίσεις κλειδιών + +| Παράμετρος | Συνιστώμενο | Γιατί | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` ή `🧠 concepts/` | Διατηρεί το vault οργανωμένο | +| `extractConceptsAddBacklink` | Ένα | Επιτρέπει αντίστροφη αναζήτηση | +| `extractConceptsMinimalTemplate` | Απενεργό | Πλήρες πρότυπο με Linked From | +| Μοντέλο ανά εργασία | DeepSeek | Η εξαγωγή έννοιων δεν χρειάζεται ακριβά μοντέλα | +| Υποδυσμός συνώνυμων | Ένα | Η ίδια ρύθμιση επηρεάζει τόσο την προσδέση όσο και την εξαγωγή | + +→ [Λεπτομερής εξέταση Concept Notes](/docs/features/concept-notes) + +--- + +## 3. Έρευνα: Εισαγωγή του Web + +Notemd ενσωματώνει αναζήτηση στο Web στο ρολόι καταγραφής σημειών σας: + +1. **Δημιουργία ερωτήσεων** — το ονόματο ή η επιλογή της σημείωσής σας γίνεται ερώτηση αναζήτησης +2. **Αναζήτηση στο Web** — Tavily (συνιστώμενο, απαιτείται κλειδί API) ή DuckDuckGo (δωρεάν, χωρίς κλειδί) +3. **Συνοπτικοποίηση LLM** — τα αποτελέσματα αναζήτησης συνοψίζονται σε μία σχετική σύνοψη +4. **Προσθήκη στη σημείωση** — η σύνοψη προστίθεται στη θέση του κερσορίου ή ως νέα ενότητα + +### Πότε να το χρησιμοποιήσετε + +- Πριν επεξεργαστείτε ένα νέο θέμα — πάρτε πρώτα το πλαίσιο Web +- Όταν μία σημείωση concept χρειάζεται εμπλουτισμό — κάντε έρευνα και στη συνέχεια προσθέστε σύνδεσμους +- Για ανασκοπήσεις βιβλιογραφίας — κάντε μαζική έρευνα σε έναν φάκελο σημειών + +### Βασικές ρυθμίσεις + +| Παράμετρος | Συνιστώμενο | Γιατί | +|---------|-----------|-----| +| `researchProvider` | GPT-4o ή Claude | Η έρευνα χρειάζεται πιο αξιόπιστη συνοπτικοποίηση | +| Υπηρεσία αναζήτησης | Tavily | Καλύτερη σχετικότητα, ρυθμίσιμη βάθος | +| `maxResearchContentTokens` | 4000 | Ισορροπία μεταξύ βάθους και κόστους | + +→ [Research deep dive](/docs/features/research) + +--- + +## 4. Μετάφραση: Ανατροπή των γλωσσικών φραγμάτων + +Notemd μεταφράζει σημειώσεις χρησιμοποιώντας το ρυθμισμένο LLM σας — όχι ένα ειδικό μηχάνημα μετάφρασης API. Αυτό σημαίνει: + +- **Μετάφρασεις που λαμβάνουν υπόψη το πλαίσιο** — το LLM κατανοεί ολόκληρο το έγγραφο, όχι παρά πρόταση προς πρόταση +- **Διαχείριση τεχνικών όρων** — "gradient descent" παραμένει "梯度下降" και όχι "坡度向下" +- **Υποστήριξη σε ομάδες** — μεταφράστε ολόκληρο ένα φάκελο σημειώσεων σε μία επιχείρηση +- **Μοντέλο ανά εργασία** — χρησιμοποιήστε Gemini Flash για μετάφραση (γρήγορο, φθηνό, πολυγλωσσικό) + +### Υποστήριξη γλωσσών + +Το Notemd ίδιο υποστηρίζει 21 UI γλώσσες. Η γλώσσα προορισμού της μετάφρασης είναι ρυθμίσιμη ανά εργασία. Συνηθισμένες ζεύγη: EN↔ZH, EN↔JA, EN↔KO, EN↔DE, EN↔FR, EN↔ES. + +→ [Translation deep dive](/docs/features/translation) + +--- + +## 5. Διαγράμματα: Εμφάνιση της δομής + +Ο πυλώνας διαγράμματος του Notemd βασίζεται πρώτα στις προδιαγραφές: το LLM παράγει ένα δομημένο `DiagramSpec` JSON, στη συνέχεια οι προσαρμογείς το μεταφράζουν στον στόχο του μορφάτο. Αυτό παράγει πιο αξιόπιστα αποτελέσματα σε σύγκριση με το να ζητήσετε από το LLM την ακατέργαστη Mermaid σύνταξη. + +### Ανίχνευση προθέσεων + +Το Notemd εξαγάγει τον καλύτερο τύπο διαγράμματος από το περιεχόμενο: + +- **Πίνακες με αριθμούς** → διαγράμμα δεδομένων (Vega-Lite) +- **Λεξιλόγιο πελάτη/σερβιτού** → διάγραμμα αλληλουχίας (Mermaid) +- **Οντότητα/primαρική κλειδί** → διάγραμμα ER (Mermaid) +- **Βήμα/πορεία επεξεργασίας** → διάγραμμα ροής (Mermaid) +- **Λέξεις-κλειδιά για διάγραμμα έννοιας** → JSON Canvas (Obsidian native) +- **Προεπιλεγμένο** → διάγραμμα μυαλού (Mermaid) + +### Rendering Chain + +Primαρικό στόχος → fallback → fallback → HTML. Αν η σύνταξη Mermaid αποτύχει, επαναλαμβάνεται μία φορά με πληροφορίες σφάλματος στο LLM, και στη συνέχεια χρησιμοποιείται ένα ελάχιστο διάγραμμα. + +### Key Settings + +| Παράμετρος | Recommended | Γιατί | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | On | Καλύτερη ποιότητα μέσω συγκεκριμένων προδιαγραφών | +| `experimentalDiagramCompatibilityMode` | `best-fit` | Primαρικό στόχος ανά σκοπό | +| `summarizeToMermaidProvider` | GPT-4o ή Claude | Οι προδιαγραφές διαγράμματος απαιτούν χωρική λογική | +| `autoMermaidFixAfterGenerate` | On | Ανιχνεύει αυτόματα σφάλματα σύνταξης LLM | +| Ενίσχυση των τοπικών γνώσεων | Ένατο σε ειδικές περιοχές | Βελτιώνει την ακρίβεια με το πλαίσιο vault | + +→ [Εμβαθύς ανάλυση διαγράμματων](/docs/features/diagrams) + +--- + +## 6. Βήματα εργασίας: Αυτοματοποίηση με μία κλικ + +Τα βήματα εργασίας συνδέουν πολλές εργασίες σε ένα μόνο κουμπί στην πλευρική γραμμή. Το μορφάτι DSL είναι: + +``` +task1 | task2 | task3 +``` + +Παράδειγμα: `addLinks | extractConcepts | generateDiagram` — επεξεργάζεται μία σημείωση από ακατέργαστο κείμενο σε έναν πλήρως συνδεδεμένο, οπτικό κόμβο γνώσης με μία κλικ. + +### Συνιστώμενα βήματα εργασίας + +| Ροδική διαδικασία | Χειν | Χρήση | +|----------|-------|----------| +| Πλήρης διαδικασία | `addLinks \| extractConcepts \| generateDiagram` | Νέες σημειώσεις | +| Έρευνα πρώτα | `research \| addLinks` | Ανώνυμα θέματα | +| Πολυγλωσσικά | `translate \| addLinks` | Πολυγλωσσικές σημειώσεις | +| Διάγραμμα μόνο | `generateDiagram` | Γρήγορη οπτικοποίηση | + +→ [Εμβαθύς ανάλυση Workflows](/docs/features/workflows) + +--- + +## 7. LLM Παρόχοι: 36 επιλογές από Cloud σε Local + +Notemd υποστηρίζει 36 παρόχους σε 4 τύπους μεταφοράς. Κύριες ομάδες: + +- **Διεθνής cloud**: OpenAI, Anthropic, Google, Mistral, xAI +- **Cloud στην Κίνα**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **Πύλες**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **Local**: Ollama, LMStudio, OVMS — χωρίς κλειδί API, τα δεδομένα δεν φεύγουν από τον υπολογιστή σας + +### Στρατηγική μοντέλου ανά εργασία + +Η πιο οικονομικά αποδοτική ρύθμιση χρησιμοποιεί φθηνά μοντέλα για απλές εργασίες και ισχυρά μοντέλα για πολύπλοκες: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [Επισκόπηση LLM Παρόχων](/docs/providers/overview) + +--- + +## Κατάλογος ελέγχου για αρχή + +1. **Εγκατάσταση Notemd** — [Community Plugins](/docs/getting-started/installation) (συνιστώμενο) ή χειροκίνητα +2. **Ρύθμιση παρόχου** — DeepSeek (πιο εύκολο), OpenAI, ή Ollama (δωρεάν) +3. **Επεξεργασία της πρώτης σας σημείωσης** — κλικ δεξί → "Επεξεργασία αρχείου (προσθήκη συνδέσμων)" +4. **Ρύθμιση φάκελου έννοιας** — Ρυθμίσεις → Notemd → Έξοδος → Φάκελος Έννοιας +5. **Απόσυρση έννοιών** — εκτελέστε "Απόσυρση έννοιών" στην ίδια σημείωση +6. **Δημιουργία διάγραμματος** — εκτελέστε "Δημιουργία διάγραμματος" για να οπτικοποιήσετε τις συνδέσεις +7. **Δημιουργία ροής εργασιών** — συνδέστε τα παραπάνω σε ένα κουμπί μίας κλικ + +## Συνιστώμενες διαμόρφωσεις + +### Student (Budget) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### Researcher (Quality) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### Privacy-First (Local Only) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### Bilingual (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## Common Patterns + +### Pattern: Process a Research Paper + +1. Import PDF content (or paste) +2. **Research** — προσδιορίστε τον ιστοτοπικό πλαίσιο για το θέμα +3. **Προσθήκη συνδέσμων** — εντοπίστε και συνδέστε βασικές έννοιες +4. **Απόσυρση έννοιών** — δημιουργήστε ανεξάρτητες σημείωσεις +5. **Δημιουργία διάγραμματος** — οπτικοποιήστε τη δομή του άρθρου + +### Pattern: Daily Note Enrichment + +1. Γράψτε καθημερινή σημείωση +2. **Προσθήκη Συνδέσμων** — συνδέει τις σημερινές ιδέες με υπάρχοντα έννοια +3. Οι σημειώσεις έννοιας ενημερώνονται αυτόματα με πίσω συνδέσμους + +### Μοτίβο: Ανασκόπηση Βιβλιογραφίας + +1. Δημιουργήστε φάκελο με άρθρα/σημειώσεις +2. **Προσθήκη Συνδέσμων σε Ομάδα** — επεξεργαστεί ολόκληρο τον φάκελο +3. **Απομονώσεις Έννοιες** — καθαρίζει τις σχεδόν παρόμοιες σημειώσεις +4. **Δημιουργία Διάγραμματος** — ψυχοχάρτης της ολόκληρης βιβλιογραφίας + +--- + +*Notemd είναι ανοιχτού κώδικα (MIT) και λειτουργεί με Obsidian 0.15.0+ σε όλες τις πλατφόρμες. [Εγκαταστήστε τώρα](/docs/getting-started/installation) ή [δείτε στο GitHub](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/el/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/el/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..f59e0bb9 --- /dev/null +++ b/website/i18n/el/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "Ρυθμίστε το Anthropic Claude" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Πάροχος Anthropic + +<TLDR> +**Anthropic χρησιμοποιεί τον εγγενή μέσο μεταφοράς Messages API, όχι το μέσο μεταφοράς συμβατό με OpenAI.** Η τρέχουσα προεπιλογή έχει ως προεπιλεγμένα τα `claude-3-5-sonnet-20240620`, `https://api.anthropic.com` και `temperature: 0.5`. Θεωρήστε την ως ξεχωριστή επιφάνεια πρωτόκολλου κατά τη διάγνωση σφαλμάτων. + +Αυτό αποτελεί μέρος του [Obsidian Οδηγού Διαχείρισης Γνώσης AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Ρύθμιση + +Δημιουργήστε μία κλειδί Anthropic API, προσθέστε ένα προφίλ πάροχος `Anthropic` και αφήστε το Base URL στον εγγενή τερματικό, εκτός αν διοδηγείτε μέσω ενός ειδικού προφίλ γέιτγουέι. Επιλέξτε τον αριθμό μοντέλου Claude που θέλετε να χρησιμοποιήσετε στο πεδίο μοντέλου· η προεπιλογή διατηρεί σταθερή την υπάρχουσα βάση προϊόντος. + +Το Anthropic είναι καλή επιλογή για συνοπτικοποίηση υψηλής ποιότητας, σύνθεση έρευνας και εξάγωγη έννοιων. Αν το συνδυάσετε με φθηνότερους πάροχους, ρυθμίστε το μόνο στις εργασίες που ωφελούνται από την ποιότητα των αποτελεσμάτων του. + +## Τερματικός και αυθεντικοποίηση + +| Πεδίο | Τρέχουσα προεπιλογή | +|-------|----------------| +| Μέσο μεταφοράς | `anthropic` | +| Κλειδί API | Απαιτούμενο | +| Base URL | `https://api.anthropic.com` | +| Προεπιλεγμένο μοντέλο | `claude-3-5-sonnet-20240620` | +| Θερμοκρασία | `0.5` | +| Δοκιμή σύνδεσης | Μόνο συνομιλία | + +Ο χρόνος εκτέλεσης στέλνει αιτήματα στο `/v1/messages` με `x-api-key` και `anthropic-version: 2023-06-01`. Μην ρυθμίσετε έναν τερματικό `/v1/chat/completions` στυλ OpenAI υπό αυτήν την προεπιλογή· χρησιμοποιήστε αντ’ αυτού μία προεπιλογή γέιτγουέι συμβατή με OpenAI. + +## Ανακάλυψη μοντέλων + +Anthropic χρησιμοποιεί τον λόγο ανακάλυψης `anthropic-models` στο ηλεκτρονικό φορέα καταχώρησης παρόχων. Αν η κλειδί σας ή το λογαριασμός σας δεν μπορεί να αναφέρει μοντέλα, διατηρήστε ένα γνωστό ID μοντέλου στο προφίλ και επαληθεύστε το μέσω του τεστ σύνδεσης. + +Ο μέσος μεταφοράς δεν μπορεί να αντικατασταθεί με παρόχους συμβατούς με OpenAI. Ένα μοντέλο Claude που διοδηγείται μέσω OpenRouter, LiteLLM ή άλλου γέιτγουέι ανήκει στο προφίλ εκείνου του γέιτγουέι, όχι στο φυσικό προφίλ Anthropic. + +## Αντιμετώπιση προβλημάτων + +- `401` ή `403`: ελέγξτε το πεδίο εφαρμογής του κλειδιού, την πρόσβαση στο χώρο εργασίας, τη λογιστική και αν το κλειδί ανήκει στον αναμενόμενο χώρο εργασίας Anthropic. +- `404`: η βάση URL είναι λάθος ή το επιλεγμένο ID μοντέλου δεν είναι διαθέσιμο για τον λογαριασμό. +- Τα ID μοντέλων Claude στυλ γέιτγουέι αποτυγχάνουν: μεταφέρετε το προφίλ στον αντίστοιχο παρόχο γέιτγουέι, διότι το φυσικό Anthropic περιμένει φυσικά ονόματα μοντέλων. +- Οι μακρές αιτήσεις αποτυγχάνουν στο τέλος: μειώστε το μέγεθος έξοδου του μοντέλου ανά εργασία ή χρησιμοποιήστε ένα μοντέλο με μεγαλύτερο γνωστό όριο των τοκένων έξοδου. + +## Πότε να το χρησιμοποιήσετε + +Χρησιμοποιήστε Anthropic όταν η ποιότητα στη σύνθεση, στις σημειώσεις έρευνας ή στη δομημένη γραφή έχει μεγαλύτερη σημασία από τον ακαθάριστο κόστος. Μην το χρησιμοποιείτε ως γενικό εναλλακτικό συμβατό με OpenAI· ο ξεχωριστός μέσος μεταφοράς είναι το νόημα, και η ανάμιξη των πρωτοκόλλων καθιστά πιο δύσκολη τη διάγνωση. + +--- + +## Επόμενα βήματα + +- [LLM Providers](/docs/providers/overview) -- Πλήρης διαμόρφωση, μοντέλα ανά εργασία και λογική επανεπιχείρησης +- [Troubleshooting](/docs/advanced/troubleshooting) -- Επιλύση σφαλμάτων 401/403 και σφαλμάτων σύνδεσης diff --git a/website/i18n/el/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/el/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..4337c62d --- /dev/null +++ b/website/i18n/el/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "Κινεζικοί παρόχοι" +description: "Ρυθμίστε Qwen, DeepSeek, GLM κ.λπ." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Κινεζικοί παρόχοι + +<TLDR> +**Notemd υποστηρίζει παρόχους από την περιοχή Κίνα και με προέλευση από την Κίνα μέσω κυρίως OpenAI-συμβατών σημείων πρόσβασης.** Το τρέχον σύνολο περιλαμβάνει DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, MiniMax, Baidu Qianfan, SiliconFlow, Huawei Cloud MaaS και Z AI. Η αξία είναι η περιφερειακή πρόσβαση και ο έλεγχος κόστους· το ρίσκο είναι οι ονομασίες μοντέλων που είναι συγκεκριμένες για τον παρόχο και η αποκλειστική πρόσβαση στους λογαριασμούς. + +Αυτό αποτελεί μέρος του [Obsidian Οδηγού Διαχείρισης Γνώσης AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Ρύθμιση + +Δημιουργήστε τον λογαριασμό του παρόχου, δημιουργήστε μία κλειδί API, και στη συνέχεια επιλέξτε το αντίστοιχο προεπιλεγμένο πρόσαρμοσμα Notemd του παρόχου αντί να χρησιμοποιήσετε ένα γενικό προφίλ OpenAI. Το προεπιλεγμένο πρόσαρμοσμα διαθέτει το προεπιλεγμένο Base URL, το μοντέλο, τη λειτουργία δοκιμής API, τη συμπεριφορά ανακάλυψης μοντέλων και οποιαδήποτε πεδία UI που είναι συγκεκριμένα για τον παρόχο. + +Χρησιμοποιήστε ενεργά την επιλογή μοντέλου ανά μиссию. Για παράδειγμα, κρατήστε DeepSeek ή GLM σε ρούτινες που απαιτούν έντονη λογική, χρησιμοποιήστε Qwen ή Moonshot για ευρέες δουλειές στα κινεζικά, και προσδιορίστε τις δουλειές προγραμματισμού στο Qwen Code όταν αυτός ο λογαριασμός παρέχει μοντέλα προγραμματιστών. + +## Τερματικός και αυθεντικοποίηση + +| Παρόχος | Προεπιλεγμένο μοντέλο | Base URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (απαιτείται ID σημείου πρόσβασης) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**Σημείωση:** Doubao απαιτεί ένα ID σημείου πρόσβασης Ark (μορφή: `ep-xxxxxxxx-xxxx-xxxx`) αντί για έναν τυπικό όνομα μοντέλου. + +Οι περισσότεροι από αυτούς τους παρόχους χρησιμοποιούν το κοινό runtime OpenAI-συμβατό, αλλά οι σημασίες λογαριασμού και μοντέλων τους διαφέρουν. Κρατήστε το προεπιλεγμένο Base URL εκτός αν έχετε επαληθεύσει το εναλλακτικό σημείο πρόσβασης του λογαριασμού. + +## Ανακάλυψη μοντέλων + +DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan και SiliconFlow χρησιμοποιούν ανακάλυψη μοντέλων OpenAI-συμβατή όταν ο παρόχος υποστηρίζει λίσταγμα. Huawei Cloud MaaS χρησιμοποιεί τον λειτουργικό τρόπο `huaweicloud-modelarts-models` επειδή τα μεταδεδομένα ανάπτυξης ModelArts δεν είναι ίδια με μία γενική λίστα `/v1/models`. + +Μην θεωρήσετε την αποτυχία της ανακάλυψης ως απόδειξη ότι η συνομιλία είναι αδύνατη. Αρκετοί παρόχοι επιτρέπουν συνομιλία ενώ περιορίζουν τα δικαιώματα λίστας μοντέλων. Σε αυτήν την περίπτωση, κρατήστε ένα ρητό ID μοντέλου στο προφίλ και επαληθεύστε το με τη δοκιμή σύνδεσης. + +## Αντιμετώπιση προβλημάτων + +- Η αυθεντικοποίηση επιτυγχάνει αλλά η συνομιλία αποτυγχάνει: το όνομα μοντέλου μπορεί να είναι εκτός των δικαιωμάτων ή της περιοχής του λογαριασμού. +- Doubao αποτυγχάνει με ένα συνηθισμένο όνομα μοντέλου: χρησιμοποιήστε το ID σημείου πρόσβασης Ark στο πεδίο μοντέλου όταν η ανάπτυξή σας το απαιτεί. +- Οι απαντήσεις λογικής είναι περικοπημένες: ελέγξτε τα μέγιστα τόκεν έξοδου που είναι συγκεκριμένα για τον παρόχο και τις ρυθμίσεις μέγιστων τόκεν που λαμβάνουν υπόψη το μοντέλο του Notemd. +- Η περιφερειακή δικτύωση ποικίλλει: χρησιμοποιήστε το σημείο πρόσβασης της περιοχής Κίνα του παρόχου όταν η μηχανή vault βρίσκεται μέσα στην Κίνα· χρησιμοποιήστε το διεθνές σημείο πρόσβασης μόνο όταν και ο λογαριασμός και η διαδρομή δικτύου είναι έγκυρες. + +## Πότε να το χρησιμοποιήσετε + +Χρησιμοποιήστε παρόχους από την Κίνα όταν η περιφερειακή καθυστέρηση, η πρόσβαση σε πληρωμές/ λογαριασμούς, η ποιότητα στην κινεζική γλώσσα ή το κόστος αποτελούν το κύριο περιορισμό. Προτιμήστε άμεσους OpenAI, Anthropic, Google ή τοπικούς παρόχους όταν χρειάζεστε απλότερα όρια πρωτοκόλλου ή μεγαλύτερη συνέπεια στον αποσφαλμάτισμα μεταξύ παρόχων. + +--- + +## Επόμενα βήματα + +- [LLM Providers](/docs/providers/overview) -- Πλήρης διαμόρφωση, μοντέλα ανά εργασία και λογική επανεπιχείρησης +- [Αποσφαλμάτιση](/docs/advanced/troubleshooting) -- Επιλύστε σφάλματα συνδέσεων και αυθεντικοποίησης diff --git a/website/i18n/el/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/el/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..beb10c02 --- /dev/null +++ b/website/i18n/el/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "Ρυθμίστε το Google Gemini" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Πάροχος Google + +<TLDR> +**Το Google χρησιμοποιεί τον εγγενή μέσο μεταφοράς γλώσσας παραγωγής Gemini API.** Η τρέχουσα προεπιλογή έχει ως προεπιλεγμένα τα `gemini-2.0-flash-exp`, `https://generativelanguage.googleapis.com/v1` και `temperature: 0.5`. Δεν είναι προφίλ συμβατός με OpenAI. + +Αυτό αποτελεί μέρος του [Obsidian Οδηγού Διαχείρισης Γνώσης AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Ρύθμιση + +Δημιουργήστε ένα κλάδι Google AI Studio ή Google Cloud API με πρόσβαση Gemini, προσθέστε ένα προφίλ παρόχου `Google` και διατηρήστε τον εγγενή βάση γλώσσας παραγωγής URL. Χρησιμοποιήστε την προεπιλεγμένη προφίλ Gemini Flash για γρήγορη μετάφραση και ευρύτερες δουλειές σημειώσεων, και στη συνέχεια αντικαταστήστε τα μοντέλα ανά εργασία όταν χρειάζεστε ένα μεγαλύτερο ή πιο ικανό μοντέλο Gemini. + +Αποφύγετε την τοποθέτηση αναγνωριστικών μοντέλων Gemini σε ένα προφίλ συμβατό με OpenAI εκτός αν χρησιμοποιείτε ρητά έναν γέιτγουέι που εκθέτει το Gemini μέσω ενός προφίλ συμβατού με OpenAI και API. + +## Τερματικός και αυθεντικοποίηση + +| Πεδίο | Τρέχουσα προεπιλογή | +|-------|----------------| +| Μέσο μεταφοράς | `google` | +| Κλειδί API | Απαιτούμενο | +| Base URL | `https://generativelanguage.googleapis.com/v1` | +| Προεπιλεγμένο μοντέλο | `gemini-2.0-flash-exp` | +| Θερμοκρασία | `0.5` | +| Δοκιμή σύνδεσης | Μόνο συνομιλία | + +Η εκτέλεση καλεί το `/models/{model}:generateContent?key={apiKey}`. Το κλάδι παραδίδεται ως παράμετρος αναζήτησης επειδή έτσι είναι συνδεδεμένος ο εγγενής τερματικός Gemini στο πλαγιάκο. + +## Ανακάλυψη μοντέλων + +Το Google χρησιμοποιεί τον λειτουργικό τρόπο ανακάλυψης `google-models`. Η ανακάλυψη πρέπει να επιστρέψει τα μοντέλα Gemini διαθέσιμα στο κλάδι API· αν ο επιλέκτης είναι κενός, δοκιμάστε το κλάδι με την ίδια βάση URL και επαληθεύστε ότι η οικογένεια μοντέλων είναι ενεργοποιημένη για αυτόν τον λογαριασμό. + +Οι γνωστές όρια των τοκένων έξοδου είναι ευαίσθητα στα μοντέλα στον ηλεκτρονικό κατάλογο παρόχων. Αν μια μεγάλη μετάφραση ή εξήγηση διαγράμματος περικοπεί, επιλέξτε ένα μοντέλο Gemini με μεγαλύτερο υποστηριζόμενο όριο έξοδου ή μειώστε το ζητούμενο μέγεθος έξοδου. + +## Αντιμετώπιση προβλημάτων + +- `400`: το αναγνωριστικό μοντέλου συνήθως δεν ταιριάζει με την εγγενή διαδρομή Gemini ή η αίτηση υπερβαίνει το υποστηριζόμενο σχήμα του μοντέλου. +- `401` ή `403`: επαληθεύστε τις περιορισμούς του κλάδι, την ενεργοποίηση του έργου/API και αν το κλάδι μπορεί να προσπελάσει το Gemini. +- `404`: το αναγνωριστικό μοντέλου δεν είναι διαθέσιμο στην ρυθμισμένη έκδοση API. +- Τα παραδείγματα γέιτγουέι αποτυγχάνουν με αυτό το προφίλ: χρησιμοποιήστε την προεπιλογή γέιτγουέι αντί του εγγενούς παρόχου Google. + +## Πότε να το χρησιμοποιήσετε + +Χρησιμοποιήστε το Google για γρήγορη μετάφραση, καθαρισμό μεγάλων ποσοτήτων σημειώσεων και δουλειές όπου η ανταλλαγή κόστους/απόδοσης του Gemini είναι καλύτερη από το άμεσο OpenAI ή Anthropic. Προτιμήστε άλλον παρόχο για δουλειές που απαιτούν χειρισμό μοντέλων σκέψης συμβατών με OpenAI. + +--- + +## Επόμενα βήματα + +- [LLM Providers](/docs/providers/overview) -- Πλήρης διαμόρφωση, μοντέλα ανά εργασία και λογική επανεπιχείρησης +- [Μετάφραση](/docs/features/translation) -- Συνιστάται το Gemini Flash για εργασίες μετάφρασης μεγάλων ποσοτήτων diff --git a/website/i18n/el/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/el/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..2f3d34a0 --- /dev/null +++ b/website/i18n/el/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "Τοπικά μοντέλα" +description: "Ρυθμίστε το Ollama και τα τοπικά LLMs" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# Τοπικά μονδέλα + +<TLDR> +**Οι τοπικοί παρόχοι διατηρούν το περιεχόμενο των σημειώσεων εκτός των φιλοξενούμενων APIs.** Η τρέχουσα τοπική διαδρομή καλύπτει το Ollama με την αυθόρθωτη μέθοδο μεταφοράς `ollama` και το LMStudio μέσω της μεθόδου μεταφοράς συμβατής με το OpenAI. Δεν απαιτείται κλειδί API για καμία από τις διαδρομές, αλλά ο τοπικός σερβιτόρ και το μοντέλο πρέπει ήδη να λειτουργούν. + +Αυτό αποτελεί μέρος του [Obsidian Οδηγού Διαχείρισης Γνώσης AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Ρύθμιση + +Για το Ollama, εγκαταστήστε το Ollama, προσλάβετε το μοντέλο που θέλετε, ξεκινήστε τον σερβιτόρ και προσθέστε ένα προφίλ παρόχου `Ollama` στο Notemd. Για το LMStudio, φορτώστε ένα μοντέλο στον τοπικό σερβιτόρ του LM Studio και προσθέστε ένα προφίλ παρόχου `LMStudio`. + +Τα τοπικά μοντέλα είναι λειτουργικές εξαρτήσεις, όχι απλώς ρυθμίσεις. Το Notemd μπορεί να καλέσει μόνο αυτά που παρουσιάζει το τοπικό διεργασμό, οπότε επαληθεύστε το τοπικό μοντέλο εκτός του Obsidian πριν αναπαραγωγή σφάλματος του πλαγινού. + +## Τερματικός και αυθεντικοποίηση + +| Παρόχος | Base URL | Προεπιλεγμένο μοντέλο | Κλειδί API | Σημειώσεις | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | Δεν απαιτείται | Ροή NDJSON· ανακάλυψη μοντέλων μέσω του `/api/tags` | +| LMStudio | `localhost:1234/v1` | `local-model` | Δεν απαιτείται | Αποστέλλει το `"EMPTY"` ως τοκέν προωθητή· συμβατό με το OpenAI | + +Το Ollama χρησιμοποιεί την αυθόρθωτη διαδρομή `/chat` κάτω από το Base URL του. Το LMStudio ακολουθεί τη διαδρομή `chat/completions` συμβατής με το OpenAI και περιμένει ένα μοντέλο που έχει φορτωθεί στον τοπικό σερβιτόρ. + +## Ανακάλυψη μοντέλων + +Το Ollama χρησιμοποιεί τον λειτουργικό τρόπο ανακάλυψης `ollama-tags` και παραθέτει τα ταγιά που έχουν προσληφθεί τοπικά. Το LMStudio χρησιμοποιεί ανακάλυψη μοντέλων συμβατής με το OpenAI όταν ο σερβιτόρ του παρουσιάζει το `/v1/models`. + +Αν η ανακάλυψη δεν επιστρέψει τίποτα, αυτό συνήθως οφείλεται σε πρόβλημα κατάστασης του τοπικού σερβιτόρ: το μοντέλο δεν έχει προσληφθεί, δεν έχει φορτωθεί, ή ο σερβιτόρ είναι συνδεδεμένος με διαφορετικό υπολογιστή/πόρτα από αυτό που έχει καθοριστεί στο προφίλ. + +## Αντιμετώπιση προβλημάτων + +- Αρνηθήκε η σύνδεση: ξεκινήστε το Ollama ή το LM Studio και επαληθεύστε την καθορισμένη πόρτα. +- Μοντέλο δεν βρέθηκε: προσλάβετε το ταγί Ollama ή φορτώστε το μοντέλο του LM Studio πριν κάνετε δοκιμές. +- Αργή εξόδος: μειώστε το μέγεθος του πλαισίου, χρησιμοποιήστε ένα μικρότερο τοπικό μοντέλο ή διοχετεύστε βαρετές εργασίες σε έναν φιλοξενούμενο παρόχο. +- Κενές ή μη σωστές απαντήσεις: επαληθεύστε ότι το επιλεγμένο προφίλ παρόχου ταιριάζει με το πρωτόκολλο του τοπικού σερβιτόρ· το Ollama και το LMStudio δεν είναι αμοιβαία αντικαταστάσιμα. + +## Πότε να το χρησιμοποιήσετε + +Χρησιμοποιήστε τους τοπικούς παρόχους για ιδιωτικά αποθετήρια, εργασία χωρίς σύνδεση ή φθηνές, επαναλαμβανόμενες εργασίες. Μην υποθέτετε ότι ο τοπικός τρόπος είναι αυτόματα καλύτερος για τη σύνθεση έρευνας ή μακρά συλλογιστικά προσδιορισμούς· η ποιότητα του μοντέλου και τα όρια του υλικού είναι οι ανταλλαγές. + +--- + +## Επόμενα βήματα + +- [LLM Παρόχοι](/docs/providers/overview) -- Πλήρης διαμόρφωση και ρύθμιση μοντέλου ανά εργασία +- [Λύση προβλημάτων](/docs/advanced/troubleshooting) -- Διόρθωση σφαλμάτων connection-refused όταν ο τοπικός διακομιστής δεν εκτελείται diff --git a/website/i18n/el/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/el/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..9582f0f6 --- /dev/null +++ b/website/i18n/el/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "Ρυθμίστε το OpenAI (GPT-4, GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# Πάροχος OpenAI + +<TLDR> +**Το OpenAI χρησιμοποιεί τον κοινό μεταφορικό μηχανισμό συμβατό με το OpenAI.** Η τρέχουσα προεπιλογή έχει ως προεπιλεγμένα τα `gpt-4o`, `https://api.openai.com/v1`, `temperature: 0.5` και τη δοκιμή σύνδεσης `models-then-chat`. Χρησιμοποιήστε αυτήν τη σελίδα όταν χρειάζεστε ακριβή σημασιολογία πεδίων· χρησιμοποιήστε την επισκόπηση [LLM Providers](/docs/providers/overview) για επιλογή σε επίπεδο κατηγορίας. + +Αυτό αποτελεί μέρος του [Obsidian Οδηγού Διαχείρισης Γνώσης AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Ρύθμιση + +Δημιουργήστε μια κλειδί OpenAI API, προσθέστε ένα προφίλ πάροχου `OpenAI` στις ρυθμίσεις Notemd και διατηρήστε το προεπιλεγμένο Base URL εκτός αν σκοπεύετε συνειδητά έναν πύλωνα συμβατό με το OpenAI. Το πεδίο μοντέλου μπορεί να παραμείνει στο `gpt-4o` για γενικές εργασίες ή να αντικατασταθεί από άλλο ID μοντέλου OpenAI που το λογαριασμό σας μπορεί να καλέσει. + +Χρησιμοποιήστε μοντέλα ειδικά για συγκεκριμένες εργασίες για έλεγχο κόστους: διατηρήστε πιο ισχυρά μοντέλα για έρευνα, εξαγωγή έννοιων και μακροπομπή δομών· χρησιμοποιήστε φθηνότερα ή ταχύτερα μοντέλα για μετάφραση, προτάσεις συνδέσμων και σύντομα σύνοψεις. + +## Τερματικός και αυθεντικοποίηση + +| Πεδίο | Τρέχουσα προεπιλογή | +|-------|----------------| +| Μέσο μεταφοράς | `openai-compatible` | +| Κλειδί API | Απαιτούμενο | +| Base URL | `https://api.openai.com/v1` | +| Προεπιλεγμένο μοντέλο | `gpt-4o` | +| Θερμοκρασία | `0.5` | +| Δοκιμή σύνδεσης | `/models`, στη συνέχεια `/chat/completions` | + +Το Notemd τυποποιεί τα βασικά URL συμβατά με το OpenAI πριν προσθέσει το `chat/completions` ή το `models`. Μην συμπεριλάβετε το `/chat/completions` στο Base URL· αυτό δημιουργεί διπλό μοντέλο. + +## Ανακάλυψη μοντέλων + +Το OpenAI χρησιμοποιεί το γενικό μοντέλο ανακάλυψης συμβατό με το OpenAI. Οι ρυθμίσεις UI ρωτούν πρώτα το `/v1/models`, στη συνέχεια επαληθεύουν το επιλεγμένο μοντέλο με μία ελαφριά αιτήσεις συνομιλίας. Αν η ανακάλυψη αποτύχει αλλά η συνομιλία λειτουργεί, ελέγξτε αν το κλειδί σας έχει άδεια model-list ή αν ένας πύλωνας εμποδίζει τη λίστα μοντέλων. + +Τα μοντέλα σκέψης θεωρούνται περιπτώση όριου πρωτόκολλου: το Notemd ενωνεί το περιεχόμενο συστήματος και του χρήστη για ID σκέψης OpenAI που απορρίπτουν ξεχωριστό ρόλο `system`, και εκθέτει το `reasoningEffort` μόνο όταν η ορισμοσύνη πάροχου το υποστηρίζει. + +## Αντιμετώπιση προβλημάτων + +- `401` ή `403`: επαληθεύστε το κλειδί, την πρόσβαση στο έργο, την κατάσταση λογισμικής χρέωσης και αν το επιλεγμένο μοντέλο είναι ενεργοποιημένο για το κλειδί. +- `404` στη συνομιλία: το Base URL συνήθως είναι λάθος ή έχει ήδη περιλάβει το `/chat/completions`. +- Το μοντέλο εμφανίζεται στα οδηγή αλλά όχι στον επιλεκτή: η πρόσβαση model-list και η πρόσβαση συνομιλίας είναι ξεχωριστά σημεία αποτυχίας· δοκιμάστε χειροκίνητα το ακριβές ID μοντέλου στο προφίλ πάροχου. +- Το μοντέλο σκέψης απορρίπτει μηνύματα: χρησιμοποιήστε ID μοντέλου που καλύπτεται από τον μηχανισμό επεξεργασίας σκέψης OpenAI ή μεταβείτε σε μοντέλο συνομιλίας χωρίς σκέψη. + +## Πότε να το χρησιμοποιήσετε + +Χρησιμοποιήστε το OpenAI όταν θέλετε το πιο πρόβλεψιμο προεπιλεγμένο διαχειριζόμενο μοντέλο, όταν η ανακάλυψη `/v1/models` είναι σημαντική, ή όταν ένας ροδόσχημα εξαρτάται από τη σημασιολογία μοντέλου σκέψης OpenAI. Προτιμήστε πύλωνα ή τοπικό πάροχο όταν η διανομή, η ιδιωτικότητα ή ο έλεγχος κόστους έχουν μεγαλύτερη σημασία από τη άμεση συμπεριφορά OpenAI API. + +--- + +## Επόμενα βήματα + +- [LLM Providers](/docs/providers/overview) -- Πλήρης διαμόρφωση, μοντέλα ανά εργασία και λογική επανεπιχείρησης +- [Αντιμετώπιση προβλημάτων](/docs/advanced/troubleshooting) -- Διορθώστε σφάλματα 401/403 και προβλήματα περιορισμού ταχύτητας diff --git a/website/i18n/el/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/el/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..1875c6fd --- /dev/null +++ b/website/i18n/el/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "Παρόχοι LLM" +description: "Ρυθμίστε 36 παρόχους LLM — σύνδεση στο cloud, γέιτγουέι και τοπικά — με επιλογή μοντέλου ανά εργασία" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Παρόχοι LLM + +<TLDR> +**Notemd υποστηρίζει 36 παρόχους LLM σε 4 τύπους μεταφοράς.** Όλες οι κλήσεις API χρησιμοποιούν ακατέργαστο HTTP (χωρίς SDKs) με αυτόματη επανεπιχείρηση, εναλλακτική μεταφορά και αποθήκευση απαντήσεων για 5 λεπτά. Η επιλογή μοντέλου ανά εργασία σας επιτρέπει να χρησιμοποιήσετε φθηνά μοντέλα για εξαγωγή έννοιων και ισχυρά μοντέλα για έρευνα. Δεν απαιτείται κλειδί API για τοπικούς παρόχους (Ollama, LMStudio). +</TLDR> + +Αυτό αποτελεί μέρος του [Obsidian Οδηγού Διαχείρισης Γνώσης AI](/docs/pillar-ai-knowledge). + +## Κατηγορίες Παρόχων + +### Παρόχοι Cloud + +| Παρόχος | Βασικό URL προεπιλογή | Προεπιλεγμένο μοντέλο | Θερμοκρασία | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### Παρόχοι Γέιτγουέι / Proxy + +| Παρόχος | Βασικό URL προεπιλογή | Προεπιλεγμένο μοντέλο | Σημειώσεις | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | Προσθέτει τα επικεφάλαια `HTTP-Referer` + `X-Title` | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | Προσθέτει το επικεφάλαιο `X-GitHub-Api-Version` | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | Προσθέτει το επικεφάλαιο `APP-Code` | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | Επιλεκτικό κλειδί API | +| **Νέο API** | `localhost:3000/v1` | `gpt-4.1` | Επιλεκτικό κλειδί API | +| **OpenAI Compatible** | (user-configured) | `your-model-id` | Προσαρμοσμένο σημείο άκρου | + +### Κινεζικοί παρόχοι + +| Παρόχος | Default Base URL | Προεπιλεγμένο μοντέλο | Σημειώσεις | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | Με επικέντρωση στον προγραμματισμό | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (απαιτείται ID σημείου πρόσβασης) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | Σημείο άκρου Zhipu, Κίνα | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | Σημείο άκρου Zhipu, διεθνές | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | Πλατφόρμα φιλοξενίας μοντέλων | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao απαιτεί ID σημείου άκρου Ark** (μορφή: `ep-xxxxxxxx-xxxx-xxxx`). Ο προεπιλεγμένος χώρος αντικατάστασης πρέπει να αντικατασταθεί. + +### Τοπικοί πάροχοι + +| Παρόχος | Default Base URL | Προεπιλεγμένο μοντέλο | Σημειώσεις | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | Δεν υπάρχει κλειδί API. Στριμινγκ NDJSON. Ανακάλυψη μοντέλων μέσω `/api/tags` | +| **LMStudio** | `localhost:1234/v1` | `local-model` | Αποστέλλει `"EMPTY"` ως τοκέν προσωπικοποίησης. Ανακάλυψη συμβατή με OpenAI | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (χρησιμοποιητής-διαμόρφωτο) | `gpt-4o` | Όνομα ανάπτυξης στο URL. `api-key` επίκεφαλο | + +## Επιλογή μοντέλου ανά εργασία + +Το Notemd υποστηρίζει ανεξάρτητους πάροχους και μοντέλα για κάθε εργασία. Ενεργοποιήστε με `useMultiModelSettings: true`. + +### Διαθέσιμες εργασίες + +| Εργασία | Κλειδί ρυθμίσεων | Προεπιλεγμένος πάροχος | +|------|-------------|-----------------| +| Προσθήκη συνδέσμων (εισαγωγή wiki-link) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| Έρευνα (αναζήτηση στο Διαδίκτυο + σύνοψη) | `researchProvider` / `researchModel` | DeepSeek | +| Δημιουργία από τίτλο | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| Μετάφραση | `translateProvider` / `translateModel` | DeepSeek | +| Δημιουργία διαγράμματος | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| Ανάκτηση έννοιας | `extractConceptsProvider` / `Model` | DeepSeek | +| Ανάκτηση αυθεντικού κειμένου | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### Τάξη επίλυσης + +1. Αν το `useMultiModelSettings` είναι ενεργό → χρησιμοποιήστε τον πάροχο και το μοντέλο που αφορούν τη συγκεκριμένη εργασία +2. Αν η υπερκατάσταση μοντέλου της εργασίας είναι κενή → επιστρέψτε στο προεπιλεγμένο μοντέλο του πάροχου +3. Αν ο πάροχος της εργασίας είναι μη έγκυρος → επιστρέψτε στο παγκόσμιο `activeProvider` +4. Αν το `useMultiModelSettings` είναι απενεργοποιημένο → όλες οι εργασίες χρησιμοποιούν το παγκόσμιο `activeProvider` + +### Συνιστώμενες διαμόρφωσεις + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## Αρχιτεκτονική κλήσης API + +### Στρώματα μεταφοράς + +1. **Obsidian `requestUrl`** — πρωταρχικό (ενσωματωμένο, λειτουργεί σε όλες τις πλατφόρμες) +2. **Desktop HTTP** — μόντουλα Node.js `http`/`https` (στριμινγκ + μακρά αιτήματα) +3. **Web `fetch`** — εναλλακτική λύση όταν τα μόντουλα Node.js δεν είναι διαθέσιμα + +Το πρόσθετο μεταβάλλεται αυτόματα μεταξύ των στρωμάτων μεταφοράς σε προσωρινές σφάλματα δικτύου. + +### Λογική επαναπροσπάθειας + +- **Φυσιολογικός λειτουργικός τρόπος** (`enableStableApiCall: false`): Μία προσπάθεια. Σε προσωρινή αποτυχία, γίνεται αυτόματη εξέλιξη σε σταθερή επαναπροσπάθεια. +- **Λειτουργικός τρόπος σταθερής επαναπροσπάθειας** (`enableStableApiCall: true`): Μέχρι 4 προσπάθειες (1 + 3 επαναπροσπάθειες) με διαστήματα 5 σεκόνδων. +- **Προσωρινά σφάλματα που πυροδοτούν επαναπροσπάθεια**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **Μη επαναπροσπαθήσιμα**: HTTP 400, 401, 403, 404 + +### Κεμπάδωση απαντήσεων + +5 λεπτά κεμπάδωση LRU σε μνήμη, βασισμένη σε πάροχο + μοντέλο + θερμοκρασία + πρόταση + περιεχόμενο. Συνεχής ίδιες αιτήσεις εντός 5 λεπτών επιστρέφουν αμέσως τα κεμπαδωμένα αποτελέσματα. + +### Μεταχείριση μοντέλων σκέψης + +Τα μοντέλα που δεν υποστηρίζουν τον ρόλο `system` (DeepSeek R1, OpenAI o1/o3/o4/gpt-5) έχουν αυτόματα τις προτάσεις σύστηματος + χρήστη συνδυασμένες σε μία μόνο πρόταση χρήστη. + +DeepSeek-specific: `thinkingEnabled` προσθέτει `{ thinking: { type: 'enabled' } }` στην αίτηση. `reasoningEffort` (low/medium/high) μεταδίδεται ως `reasoning_effort`. Επαληθεύει ότι τα μέγιστα τόκεν εξόδου ≥ 8000 όταν η λειτουργία thinking είναι ενεργή. + +### Token Estimation + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — αλγόριθμος heuristic 4 χαρακτήρες ανά τόκεν. Χρησιμοποιείται για να επιβληθεί `maxResearchContentTokens` πριν από την αποστολή στο LLM. + +Δεν υπάρχει υλοποίηση παρακολούθησης κόστους. + +## Ανακάλυψη μοντέλων + +| Μοδός | Providers | Endpoint | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | Κατάλογος μοντέλων API | +| `anthropic-models` | Anthropic | Κατάλογος μονδέλων API | +| `openai-compatible-models` | DeepSeek, Qwen, Mistral, κ.λπ. | `/v1/models` | +| `openrouter-models` | OpenRouter | Κατάλογος μοντέλων API | +| `github-models` | GitHub Models | Inference API | +| `none` | Azure OpenAI | Απενεργοποιημένο (απαιτεί όνομα ανάπτυξης) | + +## Quick Start + +1. **Επιλέξτε έναν πάροχο** — DeepSeek (Κίνα), OpenAI (Διεθνής), ή Ollama (Τοπικό/Μη χρεώσιμο) +2. **Εισάγετε τον κλειδί API** — Settings → Notemd → Provider → API Key +3. **Δοκιμάστε σύνδεση** — Κάντε κλικ στο κουμπί δοκιμής +4. **Προαιρετικά: Μοντέλα ανά εργασία** — Ενεργοποιήστε `useMultiModelSettings` και ρυθμίστε τα ξεχωριστά + +Για Ollama: δεν χρειάζεται το κλειδί API. Απλώς βεβαιωθείτε ότι το `ollama serve` λειτουργεί. + +--- + +## Επόμενα βήματα + +- 📝 [Σημειώσεις Συνέπειας](/docs/features/concept-notes) — Χρησιμοποιεί μοντέλο εξαγωγής ανά εργασία +- 🎨 [Διαγράμματα](/docs/features/diagrams) — Χρησιμοποιεί μοντέλο διαγράμματος ανά εργασία +- 🔍 [Έρευνα](/docs/features/research) — Χρησιμοποιεί μοντέλο ειδικό για έρευνα +- ⚙️ [Ρύθμιση](/docs/getting-started/configuration) — Πλήρης αναφορά ρυθμίσεων diff --git a/website/i18n/el/docusaurus-theme-classic/footer.json b/website/i18n/el/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/el/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/el/docusaurus-theme-classic/navbar.json b/website/i18n/el/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/el/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/fa/code.json b/website/i18n/fa/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/fa/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/fa/docusaurus-plugin-content-docs/current.json b/website/i18n/fa/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/fa/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/fa/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/fa/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..8d6d32d6 --- /dev/null +++ b/website/i18n/fa/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "پردازش دسته‌ای" +description: "پردازش چندین فایل به‌صورت کارآمد" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# پردازش دسته‌ای + +<TLDR> +**Notemd تمام پوشه‌ها را در یک عمل با قابلیت تنظیم همزمانی و کنترل جایگزینی پردازش می‌کند.** با کلیک راست روی یک پوشه می‌توانید لینک‌های ویکی، مفاهیم، تحقیقات یا ترجمه تمام یادداشت‌های داخل آن را به‌صورت دسته‌ای اضافه کنید. محدودیت‌های همزمانی از بروز خطاهای API جلوگیری می‌کنند. پیشرفت پردازش برای هر فایل گزارش می‌شود. رفتار جایگزینی قابل تنظیم است: نادیده گرفتن فایل‌های موجود، افزودن به آن‌ها یا جایگزینی با آن‌ها. فایل‌هایی که پردازششان شکست خورد بدون متوقف کردن عملیات دسته‌ای ثبت می‌شوند. + +این بخشی از [Obsidian راهنمای مدیریت دانش هوش مصنوعی](/docs/pillar-ai-knowledge) است. +</TLDR> + +## مرور کلی + +پردازش دسته‌ای یک پوشه حاوی یادداشت‌ها را به یک عمل واحد تبدیل می‌کند. به‌جای باز کردن هر یادداشت و اجرای دستورات به‌طور جداگانه، کافی است روی پوشه کلیک راست کرده و کار موردنظر را انتخاب کنید. Notemd بر روی هر فایل `.md` پیمایش کرده، عمل مورد انتخاب را اعمال کرده و پیشرفت را به‌صورت زمان واقعی گزارش می‌دهد. + +این ویژگی برای استخراج دانش در سطح کل خزانه ضروری است. به‌عنوان مثال، پس از وارد کردن ده‌ها PDF، ابتدا افزودن لینک‌ها به‌صورت دسته‌ای و سپس استخراج مفاهیم به‌صورت دسته‌ای، گراف دانش شما را در عرض چند دقیقه و نه ساعت‌ها ایجاد می‌کند. + +## نحوه کارکرد + +### مدل اجرای دسته‌ای + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **جمع‌آوری فایل‌ها** -- Notemd به‌طور بازگشتی پوشه هدف را بررسی می‌کند (یا فقط سطح بالا، بسته به تنظیمات) و تمام فایل‌های `.md` را جمع‌آوری می‌کند. +2. **تقسیم‌بندی همزمانی** -- فایل‌ها بر اساس تنظیمات `batchConcurrency` به گروه‌های کوچکتر تقسیم می‌شوند. هر گروه به‌طور موازی اجرا می‌شود؛ گروه‌های دیگر به‌صورت توالی اجرا می‌شوند. +3. **اجرا** -- هر فایل با همان منطقی که برای دستورات تک‌فایلی استفاده می‌شود، پردازش می‌گردد. تنظیمات ارائه‌دهنده و مدل مربوط به هر کار رعایت می‌شود. +4. **گزارش پیشرفت** -- یک اعلان نوتیفیکیشن پس از تکمیل هر فایل به‌روزرسانی می‌شود و پیشرفت `N / Total` را نشان می‌دهد. +5. **مدیریت خطا** -- اگر یک فایل شکست بخورد (خطای API، تایم‌آوت شبکه و غیره)، خطا ثبت شده و عملیات دسته‌ای ادامه می‌یابد. خلاصه نهایی فهرستی از فایل‌های شکست‌خورده را نشان می‌دهد. +6. **تکمیل** -- یک اعلان نوتیفیکیشن خلاصه، تعداد کل فایل‌های پردازش‌شده، موفقیت‌ها و شکست‌ها را گزارش می‌کند. + +### رفتار جایگزینی + +هنگام پردازش فایلی که قبلاً حاوی لینک‌های ویکی، یادداشت‌های مفهومی یا ترجمه‌هاست، رفتار Notemd بستگی به تنظیم جایگزینی دارد: + +| حالت | رفتار | +|------|----------| +| **نادیده گرفتن** | محتوای موجود دست‌نخورده باقی می‌ماند. فقط فایل‌های تغییرنیافته پردازش می‌شوند. | +| **افزودن** (پیش‌فرض) | محتوای جدید اضافه می‌شود. لینک‌های ویکی، مفاهیم یا ترجمه‌های موجود حفظ می‌شوند. | +| **جایگزینی** | فایل به طور کامل دوباره پردازش می‌شود. تمام تغییرات قبلی Notemd جایگزین می‌شوند. | + +برای لینک‌دهی ویکی به طور خاص: اگر یک یادداشت قبلاً حاوی `[[wiki-links]]` باشد، حالت **نادیده گرفتن** آن را دست‌نخورده می‌گذارد، در حالی که حالت **جایگزینی** کل یادداشت را برای ایجاد لینک‌های جدید به LLM ارسال می‌کند. برای پردازش تدریجی از **نادیده گرفتن** و برای دوباره پردازش پس از به‌روزرسانی مدل از **جایگزینی** استفاده کنید. + +### کنترل همزمانی + +تنظیم `batchConcurrency` تعداد فراخوانی‌های همزمان API را محدود می‌کند. این کار از بروز خطاهای محدودیت نرخ (HTTP 429) هنگام پردازش پوشه‌های بزرگ در برابر ارائه‌دهندگانی با سقف‌های مشخص جلوگیری می‌کند. + +| همزمانی | مناسب برای | تأثیر معمولی بر محدودیت نرخ | +|-------------|----------------|---------------------------| +| `1` | سطوح رایگان، ارائه‌دهندگان سخت‌گیرانه | هیچ (سریالی) | +| `3` (پیش‌فرض) | اکثر ارائه‌دهندگان ابری | پایین | +| `5` | Ollama (محلی)، سطوح سخاوتمندانه | هیچ / پایین | +| `10` | مدل‌های محلی با استدلال سریع | هیچ | + +اگر در حین پردازش دسته‌جمعی با خطاهای 429 مواجه شدید، همزمانی را به 1 یا 2 کاهش دهید. + +## پیکربندی + +| تنظیمات | پیش‌فرض | اثر | +|---------|---------|--------| +| `batchConcurrency` | `3` | حداکثر تعداد فراخوانی‌های موازی API در حین عملیات پوشه‌ها | +| `batchOverwriteExisting` | `false` | بازنویسی محتوای موجود Notemd. `false` به معنای حالت افزودن است. | +| `batchSkipProcessed` | `false` | نادیده گرفتن فایل‌هایی که قبلاً حاوی نشانگرهای Notemd هستند (مثلاً پیوندهای ویکی) | +| `batchRecursive` | `true` | در هنگام بررسی پوشه، زیرپوشه‌ها را نیز لحاظ کنید | +| `enableStableApiCall` | `false` | فعال‌سازی منطق تلاش مجدد (تا ۴ بار) برای هر فایل در حین پردازش دسته‌ای | + +### مدل‌های ویژه برای هر وظیفه در پردازش دسته‌ای + +هر عملیات دسته‌ای از مدل مربوط به آن وظیفه استفاده می‌کند. batch-add-links از `addLinksProvider`، batch-research از `researchProvider` و غیره استفاده می‌کند. این امر به شما امکان می‌دهد برای عملیات‌های با حجم زیاد از مدل‌های ارزان‌قیمت استفاده کرده و برای وظایفی که به کیفیت حساس هستند، از مدل‌های گران‌قیمت استفاده نمایید. + +## مثال + +شما یک پوشه `papers/` دارید که شامل ۴۰ یادداشت تحقیقاتی واردشده است. شما می‌خواهید پیوندهای ویکی را اضافه کرده و مفاهیم موجود در تمام آن‌ها را استخراج نمایید: + +1. روی پوشه `papers/` کلیک راست کنید +2. گزینه **"Notemd: Process folder (add links)"** را انتخاب کنید +3. Notemd پوشه را بررسی می‌کند، ۴۰ فایل `.md` پیدا می‌کند و به صورت همزمان ۳ فایل را پردازش می‌کند (همزمانی پیش‌فرض) +4. یک پیام پیشرفت نمایش داده می‌شود: `12/40 files processed...` +5. پس از حدود ۳ دقیقه، یک پیام خلاصه گزارش می‌دهد: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. برای ایجاد یادداشت‌های مفهومی برای تمام ۴۰ فایل، این کار را با استفاده از **"Notemd: Process folder (extract concepts)"** تکرار کنید + +فایلی که شکست خورده است ثبت می‌شود. می‌توانید بعداً فقط روی آن فایل دوباره اجرا کنید. + +## نکات + +- **ابتدا با همزمانی پایین شروع کنید** -- اگر از محدودیت‌های سرعت ارائه‌دهنده خود مطمئن نیستید، با `1` شروع کرده و به تدریج آن را افزایش دهید. +- **برای به‌روزرسانی‌های تدریجی از حالت صرف‌نظر استفاده کنید** -- پس از اولین دسته کامل، به `batchSkipProcessed: true` تغییر دهید تا فقط یادداشت‌های جدید در اجراهای بعدی پردازش شوند. +- **فراخوانی‌های پایدار API را فعال کنید** -- `enableStableApiCall: true` منطق تلاش مجددی اضافه می‌کند که در صورت بروز خطاهای گذرا شبکه در دسته‌های طولانی، باعث بهبود وضعیت می‌شود. +- **پس از به‌روزرسانی مدل دوباره اجرا کنید** -- اگر به مدل بهتری تغییر دادید، `batchOverwriteExisting: true` را تنظیم کرده و دوباره اجرا کنید تا لینک‌ها و مفاهیم بهتری به دست آید. + +--- + +## گام‌های بعدی + +- [Workflows](/docs/features/workflows) -- ایجاد دکمه‌های یک‌کلیک در نوار کناری برای پیوند دادن وظایف دسته‌ای +- [Custom Prompts](/docs/advanced/custom-prompts) -- سفارشی‌سازی پرامپت‌ها برای استخراج دسته‌ای +- [Troubleshooting](/docs/advanced/troubleshooting) -- رفع خطاهای محدودیت سرعت و مشکلات اتصال در حین اجرای دسته‌ای +- [ارائه‌دهندگان](/docs/providers/overview) -- مرجع پیکربندی مدل بر حسب وظیفه diff --git a/website/i18n/fa/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/fa/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..c3eb3dc7 --- /dev/null +++ b/website/i18n/fa/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "پیشنهادهای سفارشی" +description: "سفارشی‌سازی پیشنهادهای LLM برای نیازهای شما" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# پیشنهادهای سفارشی + +<TLDR> +**Notemd به شما امکان می‌دهد تا پیشنهاد پیش‌فرض LLM را برای هر نوع وظیفه جایگزین کنید.** پیشنهادهای سفارشی کنترل لازم را بر آنچه مدل باید در اولویت قرار دهد به شما می‌دهند: می‌توانید استخراج مفاهیم را به یک رشته خاص محدود کنید، سبک پیوندزدن را تغییر دهید یا لحن ترجمه را هدایت کنید. متغیرهای پیشنهاد مانند `{{content}}` و `{{concept}}` در زمان اجرا جایگزین می‌شوند. ویژگی حوزه یادگیری متمرکز، حوزه مطالعه شما را در ابتدا قرار می‌دهد تا نتایج استخراج به طور خودکار محدود شود. + +این بخشی از [Obsidian راهنمای مدیریت دانش هوش مصنوعی](/docs/pillar-ai-knowledge) است. +</TLDR> + +## مرور کلی + +پیشنهادهای داخلی Notemd برای کارهای دانشی کاربردی نوشته شده‌اند. آن‌ها در تمام حوزه‌ها خوب کار می‌کنند، اما فضایی برای بهبودهای ویژه حوزه نیز وجود دارد. پیشنهادهای سفارشی به شما امکان می‌دهد دقیقاً به LLM بگویید که چگونه برای مورد استفاده شما عمل کند – چه اینکه فقط اصطلاحات پزشکی را استخراج کند، فقط اشیاء نام‌دار را پیوند دهد یا به صورت رسمی ترجمه کند. + +پیشنهادهای سفارشی کل پیشنهاد سیستم را جایگزین نمی‌کنند. آن‌ها بخش دستورالعمل‌های مربوط به وظیفه را جایگزین یا تکمیل می‌کنند در حالی که فرمت خروجی ساختاری (مانند خطوط `CONCEPT:`، سینتکس پیوند ویکی) را که Notemd برای تجزیه به آن وابسته است، حفظ می‌کنند. + +## نحوه کارکرد + +### معماری پیشنهاد + +هر وظیفه Notemd از همان ساختار پیشنهاد پیروی می‌کند: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **پیشنهاد سیستم پایه** -- شخصیت دستیار را تعیین می‌کند. قابل جایگزینی نیست. +2. **حوزه یادگیری متمرکز** -- `Relevant Fields: [medicine / law / computer science / ...]` را در ابتدا قرار می‌دهد تا دامنه را محدود کند. این یک تغییرات تنظیماتی است، نه یک پیشنهاد خام. +3. **پیشنهاد وظیفه سفارشی** -- دستورالعمل‌های پیش‌فرض وظیفه را جایگزین می‌کند (مانند اینکه چه نوع مفاهیمی باید استخراج شوند، چقدر فعالانه پیوند زده شود). +4. **فرمت خروجی** -- قوانین ساختاری (خطوط `CONCEPT:`، فرمت پیوند ویکی). همیشه توسط Notemd اضافه می‌شود تا قابلیت تجزیه حفظ شود. +5. **محتوا** -- متن واقعی یادداشت، که در زمان اجرا از طریق `{{content}}` جایگزین می‌شود. + +### متغیرهای پیشنهاد + +متغیرها در زمان اجرا جایگزین می‌شوند. متغیرهای موجود بسته به وظیفه متفاوت است: + +| Variable | وظایف | جایگزین شده با | +|----------|-------|---------------| +| `{{content}}` | همه | متن یادداشت یا انتخاب شده | +| `{{concept}}` | الگوی یادداشت مفهومی | نام مفهوم استخراج‌شده | +| `{{description}}` | الگوی یادداشت مفهومی | توضیح مفهوم تولیدشده توسط LLM | +| `{{backlinks}}` | الگوی یادداشت مفهومی | فهرست یادداشت‌های منبع همراه با لینک‌ها | +| `{{date}}` | الگوی یادداشت مفهومی | تاریخ فعلی (YYYY-MM-DD) | +| `{{language}}` | ترجمه | زبان خروجی مورد نظر | +| `{{source}}` | الگوی یادداشت مفهومی | نام پایه یادداشت منبع | + +### حوزه یادگیری متمرکز + +ویژگی یادگیری متمرکز یک راه‌انداز سریع برای محدود کردن حوزه است. به جای نوشتن یک پرامپت سفارشی که به زمینه شما اشاره داشته باشد، شما `focusedLearningDomain` را در تنظیمات تنظیم می‌کنید: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +این کار `Relevant Fields: [medicine]` را در ابتدای پرامپت استخراج قرار می‌دهد و باعث می‌شود LLM به مفاهیم مرتبط با حوزه اولویت دهد و مفاهیم عمومی را کنار بگذارد. این روش سبک‌تر از یک پرامپت سفارشی کامل است و در تمام وظایف استخراج کار می‌کند. + +## پیکربندی + +| تنظیمات | پیش‌فرض | اثر | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | پرامپت پیش‌فرض وظیفه افزودن لینک‌ها را جایگزین کنید | +| `customExtractConceptsPrompt` | `''` | پرامپت پیش‌فرض استخراج مفاهیم را جایگزین کنید | +| `customResearchPrompt` | `''` | پرامپت پیش‌فرض تحقیق + خلاصه‌سازی را جایگزین کنید | +| `customTranslatePrompt` | `''` | پرامپت پیش‌فرض ترجمه را جایگزین کنید | +| `customDiagramPrompt` | `''` | پرامپت پیش‌فرض تولید نمودار را جایگزین کنید | +| `focusedLearningDomain` | `''` | زمینه رشته را در ابتدای پرامپت‌های استخراج و لینک‌دهی قرار دهید | +| `extractConceptsMinimalTemplate` | `true` | از الگوی یادداشت مفهوم فقط با عنوان استفاده کنید (به محدوده الگوی `{{concept}}` تأثیر می‌گذارد) | +| `customConceptNoteTemplate` | `''` | الگوی فایل یادداشت مفهوم را با پشتیبانی کامل از متغیرها جایگزین کنید | + +**هنگامی که فیلد پرامپت سفارشی خالی باشد، از پرامپت پیش‌فرض داخلی استفاده می‌شود.** + +## مثال + +شما یک پژوهشگر پزشکی هستید که مفاهیم را از یادداشت‌های کارآزمایی‌های بالینی استخراج می‌کنید. پرامپت پیش‌فرض، اسامی عمومی را همراه با اصطلاحات پزشکی استخراج می‌کند که فولدر مفاهیم شما را پر از محتوای غیرضروری می‌کند. + +**راه‌حل:** یک حوزه یادگیری متمرکز و یک پرامپت استخراج سفارشی تنظیم کنید. + +1. `focusedLearningDomain` را برابر `medicine` تنظیم کنید +2. `customExtractConceptsPrompt` را به صورت زیر تنظیم کنید: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +حالا هنگامی که دستور "Extract concepts" را روی یک یادداشت بالینی اجرا می‌کنید، LLM نتایج زیر را تولید می‌کند: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +به جای رفتار پیش‌فرض که ممکن است اصطلاحات عمومی ناخواسته مانند "hospital" یا "month" را نیز استخراج کند. + +## نکات + +- **ابتدا با حوزه یادگیری مشخص شروع کنید** قبل از نوشتن یک پرامپت سفارشی کامل. این روش با یک تنظیم، ۸۰٪ از موارد استفاده را پوشش می‌دهد. +- **فرمت خروجی را حفظ کنید** -- هرگز دستورالعمل‌های فرمت مانند "یکی در هر خط" یا "CONCEPT: prefix" را از پرامپت‌های سفارشی حذف نکنید. پارسر Notemd به آن‌ها وابسته است. +- **ابتدا با یک یادداشت تست کنید** -- پرامپت‌های سفارشی ممکن است تأثیرات غیرمنتظره‌ای بر گستره استخراج داشته باشند. قبل از پردازش دسته‌جمعی، روی یک یادداشت آن را بررسی کنید. +- **پرامپت‌ها را مختصر نگه دارید** -- پرامپت‌های سفارشی بیش از حد طولانی، توکن‌ها را مصرف کرده و می‌توانند تمرکز مدل را کاهش دهند. + +--- + +## گام‌های بعدی + +- [Wiki-Links](/docs/features/wiki-links) -- هنگام سفارشی‌سازی پرامپت add-links، چه چیزهایی لینک می‌شوند +- [Concept Notes](/docs/features/concept-notes) -- الگوهای یادداشت مفهوم و متغیر `{{concept}}` +- [Batch Processing](/docs/advanced/batch-processing) -- اعمال پرامپت‌های سفارشی بر روی تمام پوشه‌ها +- [Troubleshooting](/docs/advanced/troubleshooting) -- رفع مشکلاتی که در آن‌ها پرامپت‌های سفارشی خروجی‌های غیرمنتظره‌ای تولید می‌کنند diff --git a/website/i18n/fa/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/fa/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..f3335744 --- /dev/null +++ b/website/i18n/fa/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "رفع اشکالات" +description: "مشکلات رایج و راه‌حل‌ها" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# رفع اشکالات + +<TLDR> +**بیشتر Notemd مشکلات در چهار دسته قرار می‌گیرند: مشکلات کلیدی API، اتصال شبکه، خطاهای احراز هویت (401/403) و محدودیت‌های نرخ (429).** آزمون اتصال داخلی و پنل تشخیصی به سرعت علت اصلی را شناسایی می‌کنند. این صفحه تمام پیام‌های خطای رایج، علت آن‌ها و راه‌حل‌های مربوطه را پوشش می‌دهد. برای مشکلاتی که در اینجا فهرست نشده‌اند، آن‌ها را همراه با خروجی تشخیصی در GitHub Issues گزارش دهید. + +این بخشی از [Obsidian راهنمای مدیریت دانش هوش مصنوعی](/docs/pillar-ai-knowledge) است. +</TLDR> + +## مرور کلی + +Notemd به سرویس‌های خارجی – ارائه‌دهندگان LLM و موتورهای جستجو API – وابسته است؛ بنابراین اکثر مشکلات از خارج از خود پلاگین نشأت می‌گیرند. پنل تشخیصی در تنظیمات، نمای ساختاریافته‌ای از آخرین API فراخوانی را ارائه می‌دهد که شامل درخواست URL، وضعیت پاسخ و بدنه خطا است. همیشه قبل از بررسی بیشتر، ابتدا آن را بررسی کنید. + +## نحوه کارکرد: تشخیصات + +### آزمون اتصال + +هر بخش پیکربندی ارائه‌دهنده دارای دکمه‌ای به نام **"آزمون اتصال"** است. با کلیک بر روی آن، یک درخواست حداقلی API ارسال می‌شود (معمولاً فهرست مدل‌ها یا یک پاسخ کوتاه) و موفقیت یا خطای خاص HTTP گزارش می‌شود. این سریع‌ترین روش برای بررسی صحت کلید API و پایه URL شماست. + +### پنل تشخیصی + +**تنظیمات --> Notemd --> تشخیصات** نمایش می‌دهد: + +| فیلد | محتوا | +|-------|---------| +| آخرین ارائه‌دهنده | کدام ارائه‌دهنده آخرین بار فراخوانی شده است | +| آخرین مدل | کدام مدل آخرین بار فراخوانی شده است | +| آخرین وضعیت | کد وضعیت HTTP یا خطای انتقال | +| آخرین خطا | پیام خطا خام از API | +| آخرین درخواست URL | محتوای کامل URL درخواست قبلی (کلید API حذف شده است) | +| محتوای پاسخ آخر | بدنه پاسخ کوتاه شده (۵۰۰ کاراکتر اول) | + +هنگام گزارش مشکلات در GitHub، خروجی کامل تشخیص اختلالات را کپی کنید. + +## خطاهای رایج + +### API کلید نامعتبر یا وجود ندارد + +**علامت‌ها:** HTTP خطا ۴۰۱ یا «کلید API نادرست ارائه شده است» + +**دلیل:** کلید API وجود ندارد، حاوی فضای خالی است، یا متعلق به یک ارائه‌دهنده دیگر می‌باشد. + +**راه‌حل:** +1. بررسی کنید که کلید فاقد فضای ابتدایی/پایانی باشد. +2. تأیید کنید که کلید با ارائه‌دهنده انتخاب‌شده مطابقت دارد (یک کلید OpenAI نمی‌تواند با Anthropic کار کند). +3. بررسی کنید که حساب شما دارای اعتبار یا اشتراک فعال است +4. برای تأیید، روی **"Test Connection"** کلیک کنید + +### خطاهای شبکه / اتصال + +**علائم:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**دلیل:** پایانه API از روی دستگاه شما قابل دسترسی نیست. + +**راه‌حل:** +1. اتصال اینترنت خود را بررسی کنید +2. در صورت استفاده از پروکسی یا فایروال، تأیید کنید که دامنه API مسدود نشده است +3. برای Ollama: تأیید کنید که `ollama serve` در حال اجراست (`ollama list` باید مدل‌ها را برگرداند) +4. برای LMStudio: تأیید کنید که سرور روی `localhost:1234` در حال اجراست +5. از روش انتقال داده متفاوتی استفاده کنید – کاربران موبایل باید اطمینان حاصل کنند که روش انتقال `requestUrl` فعال است +6. `enableStableApiCall` را برای تلاش خودکار مجدد در صورت خطاهای موقت فعال کنید + +### 403 Forbidden + +**علائم:** HTTP 403 + +**دلیل:** کلید API شما معتبر است اما دسترسی لازم برای منبع درخواستی را ندارد. + +**راه‌حل:** +1. برخی مدل‌ها نیاز به دسترسی ویژه دارند (مثلاً GPT-4 از طریق Azure نیازمند یک نام پیاده‌سازی است) +2. برخی ارائه‌دهندگان مدل‌ها را بر اساس سطح منوال محدود می‌کنند – حساب خود را بررسی کنید +3. ممکن است محدودیت‌های منطقه‌ای وجود داشته باشد (برخی ارائه‌دهندگان چینی IP‌های بین‌المللی را مسدود می‌کنند و برعکس) +4. بررسی کنید که نام مدل به درستی نوشته شده است (مثلاً `gpt-4o` نه `gpt-4o-mini` زمانی که مدل کوچک تنها چیزی است که منوال شما اجازه می‌دهد) + +### محدودیت نرخ درخواست (429) + +**علائم:** HTTP 429 یا "محدودیت نرخ درخواست رخ داد" + +**دلیل:** تعداد زیادی درخواست در یک بازه زمانی کوتاه. + +**راه‌حل:** +1. `batchConcurrency` را به `1` یا `2` کاهش دهید +2. چند دقیقه صبر کنید و سپس دوباره امتحان کنید +3. مستندات مربوط به محدودیت نرخ درخواست ارائه‌دهنده خود را برای سطح منوال خود بررسی کنید +4. `enableStableApiCall` را برای تلاش خودکار با تأخیر فعال کنید +5. در نظر بگیرید به ارائه‌دهنده‌ای با محدودیت‌های بالاتر (DeepSeek، Ollama) منتقل شوید + +### مدل پیدا نشد + +**علائم:** "مدل پیدا نشد" یا HTTP 404 + +**دلیل:** نام مدل در ارائه‌دهنده انتخاب‌شده وجود ندارد. + +**راه‌حل:** +1. برای مشاهده تمام مدل‌های موجود برای ارائه‌دهنده خود، روی **"Get Model List"** کلیک کنید +2. برخی از نام‌های مدل‌ها با گذشت زمان تغییر می‌کنند – نام فعلی را در مستندات ارائه‌دهنده بررسی کنید +3. برای Ollama: `ollama list` را اجرا کنید تا مدل‌های بارگذاری‌شده را مشاهده کنید؛ تنها مدل‌های دانلودشده در دسترس هستند + +### هیچ لینکی/هیچ مفهومی تولید نشده است + +**علامت‌ها:** دستور اجرا می‌شود اما خروجی‌ای تولید نمی‌کند + +**دلیل:** LLM پاسخ خالی یا غیرقابل تحلیلی را برگردانده است. + +**راه‌حل:** +1. برای مشاهده پاسخ واقعی LLM، به پنل تشخیصی نگاه کنید +2. مدلی قوی‌تر را امتحان کنید (برخی مدل‌های کوچک در خروجی ساختاریافته مشکل دارند) +3. مطمئن شوید یادداشت حاوی محتوای کافی (بیش از ۵۰ کلمه) است +4. دستورالعمل‌های متضاد در پرامپت سفارشی خود را بررسی کنید +5. برای بررسی اینکه آیا فیلترینگ بیش از حد است یا خیر، سرکوب مترادفات را موقتاً غیرفعال کنید + +### شناسه پایانه Doubao ناپدید شده است + +**علامت‌ها:** هنگام استفاده از ارائه‌دهنده ByteDance Doubao خطا رخ می‌دهد + +**دلیل:** Doubao به جای نام مدل، به یک شناسه پایانه Ark (فرمت: `ep-xxxxxxxx-xxxx-xxxx`) نیاز دارد. + +**تعمیر:** جایگزین مدل جایگزین پیش‌فرض با شناسه انتهایی واقعی خود از کنسول Volcengine کنید. + +## پیکربندی + +| تنظیمات تشخیصی | موقعیت | هدف | +|--------------------|----------|---------| +| **آزمایش اتصال** | بخش Settings --> Provider | بررسی کلید API و قابلیت اتصال | +| **لیست گرفتن مدل‌ها** | بخش Settings --> Provider | تأیید اینکه کدام مدل‌ها در دسترس هستند | +| `enableStableApiCall` | بخش Settings --> Advanced | فعال‌سازی تلاش مجدد با تأخیر زمانی | +| `batchConcurrency` | بخش Settings --> Batch | کنترل موازی‌سازی برای جلوگیری از محدودیت‌های نرخ | + +## نحوه گزارش مشکلات + +اگر مشکل شما در بالا پوشش داده نشده است: + +1. باز کردن **Settings --> Notemd --> Diagnostics** +2. کپی کردن خروجی کامل تشخیصات +3. افتتاح یک مسئله در GitHub در آدرس [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +4. شامل: نسخه Obsidian، نسخه Notemd، ارائه‌دهنده، مدل، خروجی تشخیصات و مراحل تکرار مشکل +5. پنهان کردن کلید API خود از هر گونه لاگ مشترک + +--- + +## گام‌های بعدی + +- [LLM Providers](/docs/providers/overview) -- منبع کامل پیکربندی ارائه‌دهندگان +- [Batch Processing](/docs/advanced/batch-processing) -- تنظیمات همزمانی و تلاش مجدد برای عملیات‌های بزرگ +- [Custom Prompts](/docs/advanced/custom-prompts) -- رفع رفتار غیرمنتظره LLM با تنظیم پرامپت‌ها diff --git a/website/i18n/fa/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/fa/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..da96ef3c --- /dev/null +++ b/website/i18n/fa/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "سؤالات پرتکرار" +description: "سؤالات رایج درباره نصب، ویژگی‌ها و نحوه استفاده از Notemd" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# سؤالات پرتکرار + +<TLDR> +**پاسخ‌های سریع به رایج‌ترین سؤالات مربوط به Notemd.** این بخش شامل نصب (تنظیمات ۵ دقیقه‌ای)، پشتیبانی از ۳۰+ ارائه‌دهنده LLM، گزینه‌های مدل محلی/ابری، فرآیندهای یک‌کلیکی، زبان‌های چندگانه UI (۲۱ زبان)، خودکارسازی پیوند‌های ویکی، یکپارچه‌سازی با تحقیقات، فرآیندهای خواندن PDF، تولید نمودارها و مجوزهای متن‌باز است. تمام ویژگی‌ها حتی بدون اتصال به اینترنت با Ollama کار می‌کنند. +</TLDR> + +--- + +## نصب و تنظیمات + +### چگونه Notemd را در Obsidian نصب کنم؟ + +باز کنید Obsidian → **Settings → Community Plugins → Browse** → جستجوی **"Notemd"** → **Install** → **Enable**. + +**الزامات:** +- Obsidian 0.15.0+ +- پشتیبانی از رایانه‌های رومیزی (Windows، macOS، Linux) و گوشی‌های همراه (iOS، Android) + +**نصب دستی:** +1. `main.js`، `styles.css` و `manifest.json` را از [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) دانلود کنید +2. آن‌ها را در `<your-vault>/.obsidian/plugins/notemd/` قرار دهید +3. Obsidian را بارگذاری مجدد کنید و پلاگین را فعال کنید + +**آمار:** بیش از ۴ هزار دانلود، ۴۴ نسخه منتشر شده، مجوز MIT. + +--- + +## پیکربندی LLM + +### چه ارائه‌دهندگان LLMی را Notemd پشتیبانی می‌کند؟ + +Notemd از **۳۰+ ارائه‌دهنده** پشتیبانی می‌کند: + +**ارائه‌دهندگان ابری:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonnet, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**متمرکز بر چین:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**محلی/خودمستقر:** +- Ollama +- LM Studio +- هر انتهایه سازگار با OpenAI + +**گیت‌وی‌ها:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models، Fireworks، LiteLLM، Nebius، Cerebras +- Hugging Face، Vercel AI Gateway، Requesty + +### آیا Notemd می‌تواند با LLMهای محلی کار کند؟ + +**بله، کاملاً پشتیبانی می‌شود.** Notemd با موارد زیر کار می‌کند: +- **Ollama** (یکپارچه‌سازی بومی) +- **LM Studio** (از طریق انتهایه سازگار با OpenAI) +- **vLLM، LocalAI، text-generation-webui** (در حالت سازگار با OpenAI) + +تمام وظایف با مدل‌های محلی کار می‌کنند: پیوند دادن، تولید مفاهیم، ترجمه، تحقیق و تولید نمودار. + +**مثال ترکیبی:** +- Ollama (محلی) برای پیوند دادن → سریع، خصوصی، بدون هزینه +- OpenAI برای تحقیق → کیفیت بالا، یکپارچه‌سازی با جستجوی وب +- Gemini برای ترجمه → پشتیبانی چندحسی + +### چگونه می‌توانم مدل‌های مختلفی را برای وظایف مختلف پیکربندی کنم؟ + +در **تنظیمات Notemd**، هر وظیفه دارای انتخاب‌کننده‌های مستقل فراهم‌کننده/مدل است: + +| وظیفه | پیکربندی نمونه | +|------|----------------------| +| **پیوند‌زنی** | DeepSeek (سریع، ارزان) | +| **تولید مفاهیم** | Claude Opus (کیفیت بالا) | +| **تحقیق** | Perplexity یا GPT-4o (مبتنی بر وب) | +| **ترجمه** | Gemini Flash (چندحسی) | +| **تولید نمودار** | Ollama (محلی، خصوصی) | + +این بهینه‌سازی بر حسب هر وظیفه، سرعت، هزینه و کیفیت را متعادل می‌کند. + +--- + +## ویژگی‌های اصلی + +### Notemd در خواندن مقالات چه تفاوتی با ChatGPT دارد؟ + +| بُعد | ChatGPT | Notemd | +|-----------|---------|--------| +| **محل خروجی** | تاریخچه چت (گذرا) | Obsidian خزانه (فایل‌های پایدار) | +| **فرمت نتیجه** | پاسخ متنی | پیوندهای ویکی، یادداشت‌های مفهومی، نمودارها، ترجمه‌ها | +| **ارزش بلندمدت** | پس از پایان جلسه از بین می‌رود | در پایگاه دانش تجمع می‌یابد | +| **قابلیت استفاده مجدد** | باید دوباره درخواست داد | فایل‌ها باقی می‌مانند، پیوندها حفظ می‌شوند و تکامل می‌یابند | + +**از ChatGPT برای:** پرسش‌وپاسخ سریع، توضیحات یک‌باره استفاده کنید +**از Notemd برای:** ایجاد یک پایگاه دانش ساختاریافته و پایدار در طول هفته‌ها/ماه‌ها استفاده کنید + +### Notemd چگونه پیوندهای ویکی را به یادداشت‌ها اضافه می‌کند؟ + +**فرآیند:** +1. شما دستور "Process file (add links)" را روی یک یادداشت اجرا می‌کنید +2. Notemd متن را به LLM پیکربندی‌شده شما ارسال می‌کند +3. LLM مفاهیم کلیدی را در زمینه مشخص می‌کند +4. Notemd، `[[wiki-links]]` را در هر بار ظهور یک مفهوم اضافه می‌کند +5. در صورت تمایل، به طور خودکار یادداشت‌های مفهومی را در پوشه‌ای که شما مشخص می‌کنید ایجاد می‌کند. + +**ویژگی‌ها:** +- حذف مترادف‌ها (جلوگیری از تکرار‌های «transformer» در برابر «transformers») +- لینک‌های باز از یادداشت‌های مفهومی به منبع +- یکپارچگی لینک در هنگام تغییر نام/حذف +- حالت استخراج خالص (استخراج مفاهیم بدون تغییر در متن اصلی) + +### فرآیند کار یک‌کلیک Notemd چیست؟ + +**فرآیندهای کاری یک‌کلیکی**، چندین عملیات را در یک **دکمه سمت پنل واحد** به هم متصل می‌کنند. + +**فرآیند کاری پیش‌فرض:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**نتیجه:** یک کلیک اجرا می‌شود: +1. لینک‌های ویکی را به یادداشت فعلی اضافه کنید +2. متن‌های مفهومی برای اصطلاحات جدید تولید کنید +3. تحقیق و افزودن پیشینه +4. فشرده‌سازی به صورت نمودار Mermaid + +**فرآیندهای کاری سفارشی:** می‌توانید در بخش تنظیمات با استفاده از قالب DSL فرآیندهای کاری خود را تعریف کنید. هر فرآیند کاری به یک دکمه قابل استفاده مجدد در نوار کناری تبدیل می‌شود. + +### Notemd در مقایسه با Copilot یا Smart Connections چگونه عمل می‌کند؟ + +این افزونه‌ها مشکلات متفاوتی را حل می‌کنند: + +- **Copilot** — تمرکز بر گفت‌وگو. شما با یک هوش مصنوعی درباره یادداشت‌های خود گفت‌وگو می‌کنید. پاسخ‌های هوش مصنوعی در پنل چت باقی می‌مانند و یادداشت‌های شما را تغییر نمی‌دهند. +- **Smart Connections** — تمرکز بر کشف. این افزونه با استفاده از الگوهای معنایی، یادداشت‌های مشابه را پیدا می‌کند. این افزونه محتوا را ایجاد یا تغییر نمی‌دهد. +- **Notemd** — تمرکز بر نوشتن. هوش مصنوعی یادداشت‌های شما را پردازش کرده و نتایج ساختاریافته (لینک‌های ویکی، یادداشت‌های مفهومی، تحقیقات، نمودارها، ترجمه‌ها) را به صورت فایل‌های پایدار مستقیماً در یادداشت‌های شما ذخیره می‌کند. + +| چیزهایی که نیاز دارید | افزونه توصیه‌شده | +|----------------|-------------------| +| گفت‌وگو با هوش مصنوعی درباره یادداشت‌ها | Copilot | +| یافتن یادداشت‌های مشابه/مرتبط | Smart Connections | +| وارد کردن خودکار لینک‌های ویکی و ساختن نقشه دانش | **Notemd** | +| تولید یادداشت‌های مفهومی همراه با لینک‌های بازگشتی | **Notemd** | +| ایجاد نمودارها از محتوای یادداشت‌ها | **Notemd** | +| بررسی یک موضوع و افزودن خلاصه‌ها | **Notemd** | + +هر سه را می‌توان با هم استفاده کرد — آن‌ها یکدیگر را تکمیل می‌کنند نه رقابت می‌کنند. + +--- + +## بررسی و ترجمه + +### کدام سرویس‌های جستجو با بررسی Notemd کار می‌کنند؟ + +| سرویس | نیاز به کلید API | کیفیت | یادداشت‌ها | +|---------|-----------------|---------|-------| +| **Tavily** | بله | بالا | جستجوی توصیه‌شده و بهینه‌شده با هوش مصنوعی | +| **DuckDuckGo** | خیر | آزمایشی | هیچ راه‌اندازی لازم نیست، کیفیت پایین‌تر است | + +**نحوه کارکرد «تحقیق و خلاصه‌سازی»:** +1. شما یک موضوع را انتخاب می‌کنید یا آن را روی یادداشت فعلی اجرا می‌کنید +2. Notemd از سرویس جستجو استفاده می‌کند +3. نتایج → خلاصه‌سازی توسط LLM +4. خلاصه به همراه منابع مرجع به یادداشت شما اضافه می‌شود + +**نتیجه:** ردپای پایدار تحقیقات در صندوق اسناد شما، نه در تب‌های مرورگر. + +### آیا Notemd از زبان چینی یا سایر زبان‌ها پشتیبانی می‌کند؟ + +**زبان‌های UI:** بیش از ۲۱ زبان پشتیبانی می‌شود +- انگلیسی، 中文 (简体)، 中文 (繁體)، 日本語، 한국어 +- عربی، آلمانی، فرانسوی، اسپانیایی، روسی، پرتغالی، ایتالیایی +- هندی، بنگالی، تایلندی، ویتنامی، ترکی، لهستانی، چکی و بسیاری دیگر + +**زبان خروجی وظیفه:** پیکربندی مستقل +- UI به زبان چینی + خروجی به زبان انگلیسی: ✅ +- UI به زبان انگلیسی + خروجی به زبان چینی: ✅ + +**مورد استفاده:** پژوهشگران دوزبانه می‌توانند UI را به زبان مادری خود نگه دارند در حالی که یادداشت‌های انگلیسی برای انتشار تولید می‌کنند. + +--- + +## PDF و فرآیندهای کاری آکادمیک + +### آیا می‌توانم از Notemd برای خواندن مقاله/PDF استفاده کنم؟ + +**بله.** فرآیند عملیاتی به شرح زیر است: +1. **تبدیل PDF به Markdown** با استفاده از [MinerU](https://github.com/opendatalab/MinerU) (برای مقالات آکادمیک توصیه می‌شود) +2. فایل Markdown را در Obsidian باز کنید +3. عملیات‌های Notemd را اجرا کنید: + - **افزودن لینک‌های ویکی** به اصطلاحات کلیدی + - **تولید یادداشت‌های مفهومی** برای اصطلاحات ناآشنا + - **استخراج متن اصلی** از طریق سؤالات سفارشی (مثلاً "محدودیت‌ها چیست؟") + - **تحقیق درباره پیشینه** روش‌ها/مجموعه‌داده‌های مورد استناد + - **ترجمه** بخش‌های دشوار + - **فشرده‌سازی به نمودار Mermaid** برای درک ساختاری + +**نسخه 1.9.1+:** استخراج ساختار فصل‌ها با پشتیبانی از فهرست مطالب + +**نتیجه:** خواندن مقاله شما به یک اثر دانشی ساختاریافته و قابل لینک‌سازی در صندوق اطلاعاتی شما تبدیل می‌شود. + +--- + +## نمودارها و بصری‌سازی + +### Notemd چه انواع نمودار/گرافی را می‌تواند تولید کند؟ + +| نوع | پشتیبانی | ویژگی‌ها | +|------|---------|----------| +| **Mermaid** | کامل | نمودار جریان، توالی، کلاس، حالت، ER، Gantt، اصلاح خودکار سینتکس، تأیید دسته‌ای | +| **JSON Canvas** | کامل | طرح‌بندی‌های ناتیو کانواس Obsidian | +| **Vega-Lite** | کامل | نمودارهای داده، سری زمانی، میله‌ای، پراکنده، قابل سفارشی‌سازی | +| **HTML** | روش جایگزین | برای انواع نموداری که پشتیبانی نمی‌شوند | +| **قابل ویرایش HTML/SVG** | هدف صریح | خط توضیحی خودکافی SVG با توضیحات به سبک Draw.io-style | +| **Draw.io / Drawnix artifacts** | مرز صادرات | XML/JSON قطعی از `SemanticFigureModel`؛ هیچ وابستگی زمان اجرای ویرایشگری ندارد | + +**Mermaid auto-fix:** حالت عیب‌یابی عمیق برای ترمیمات: +- پیکان‌های معیوب (`-->`, `-.->`, `==>`) +- برچسب‌ها و کامنت‌های نامعتبر +- خطاهای نحوی زیرگراف +- نمادگذاری شکل‌ها (`[`, `(`, `{`, `((`) +- کاراکترهای لوله در برچسب‌ها +- پیوست‌های یادداشت + +**فرآیند کار:** +1. اجرای دستور "Summarize as Mermaid diagram" روی یک یادداشت +2. مشاهده اولیه در پنجره مودال +3. صادرات به صورت SVG یا PNG +4. یا آن را به عنوان فایل `.mmd` در خزانه ذخیره کنید + +--- + +## منبع باز و جامعه + +### آیا Notemd رایگان و مبتنی بر منبع باز است؟ + +**بله.** +- **مجوز:** MIT (مجاز، استفاده تجاری مجاز است) +- **کد منبع:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **هیچ سطح پرداختی وجود ندارد، قفل شدن در ابر نیست، هیچ اطلاعات پایشی نیست** +- **جامعه:** ۲۳۴+ ستاره در GitHub، دیسکورد فعال + +**شما مالک چه چیزهایی هستید:** +- داده‌های شما (در خزانه شما باقی می‌ماند) +- فرآیندهای کاری شما (سفارشی‌سازی پرامپت‌ها، مدل‌ها، زنجیره‌ها) +- حریم خصوصی شما (پشتیبانی محلی LLM) + +**کمک کنید:** درخواست‌های Pull welcome هستند. به [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) مراجعه کنید + +--- + +## رفع اشکالات + +### تماس‌های LLM من شکست می‌خورد. چه چیزی باید بررسی کنم؟ + +1. **آیا کلید API معتبر است؟** به بخش Settings → Provider Configuration مراجعه کنید +2. **آیا نام مدل درست است؟** از دکمه "获取模型列表" (Get Model List) در تنظیمات استفاده کنید +3. آیا به شبکه دسترسی دارد؟ برخی از ارائه‌دهندگان نیاز به VPN دارند +4. محدودیت‌های سرعت؟ به پنل کنترل ارائه‌دهنده مراجعه کنید +5. **تشخیص اختلالات:** در بخش تنظیمات «آزمون اتصال» را اجرا کنید تا گزارش‌های دقیق خطا به دست آید + +### Notemd کند است. چگونه می‌توانم سرعت آن را بالا ببرم؟ + +1. **از مدل‌های سریع‌تر استفاده کنید:** DeepSeek، Gemini Flash، GPT-4o-mini +2. **اندازه بلوک‌ها را کاهش دهید:** تنظیمات → Smart Chunking → تعداد کلمات را پایین ببرید +3. **پردازش موازی:** تنظیمات → Batch Processing → میزان همزمانی را افزایش دهید +4. **مدل‌های محلی:** برای کارهایی که نیازی به جستجوی وب ندارند، از Ollama استفاده کنید + +### آیا Notemd می‌تواند ۱۰۰٪ آفلاین کار کند؟ + +**بله، با استفاده از Ollama.** بدون کلید API، بدون اینترنت، هیچ داده‌ای از دستگاه شما خارج نمی‌شود: + +1. [Ollama](https://ollama.com) را نصب کرده و `ollama serve` را اجرا کنید +2. در تنظیمات Notemd، **Ollama** را به عنوان ارائه‌دهنده خود انتخاب کنید +3. یک مدل را بارگیری کنید: `ollama pull llama3` (یا qwen2.5، gemma2 و غیره.) +4. تمام ویژگی‌ها کار می‌کنند: لینک‌های ویکی، یادداشت‌های مفهومی، ترجمه، نمودارها + +**تحقیقات DuckDuckGo** نیز بدون کلید API کار می‌کند (کیفیت آزمایشی). + +با ارائه‌دهندگان ابری (OpenAI، Anthropic، Google، DeepSeek و غیره)، محتوای یادداشت‌های شما به عنوان ورودی API ارسال می‌شود. برای جزئیات مربوط به پردازش داده‌ها، سیاست‌های حریم خصوصی هر ارائه‌دهنده را بررسی کنید. + +### آیا داده‌های من به ابر فرستاده می‌شوند؟ + +**بستگی به ارائه‌دهنده شما دارد:** + +| نوع ارائه‌دهنده | داده‌ها به ابر فرستاده می‌شوند؟ | یادداشت‌ها | +|--------------|---------------------|-------| +| **Ollama (محلی)** | خیر | همه چیز روی دستگاه شما باقی می‌ماند | +| **LMStudio (محلی)** | خیر | مشابه Ollama است | +| **DeepSeek, OpenAI, و غیره** | بله | محتوای یادداشت به عنوان ورودی API برای پردازش ارسال می‌شود | +| **OpenRouter, AIHubMix** | بله | گیت‌وی‌ای که به ارائه‌دهندگان ابری مسیردهی می‌کند | + +Notemd خودش هیچ تله‌متری، هیچ تحلیلی و هیچ داده کاربری جمع‌آوری نمی‌کند. این پلاگین کاملاً متن‌باز (MIT) است. تنها داده‌ای که از دستگاه شما خارج می‌شود، آنچه است که شما به صورت صریح به ارائه‌دهنده LLM پیکربندی‌شده خود ارسال می‌کنید. + +### کدام پلاگین هوش مصنوعی Obsidian برای تحقیقات بهترین است؟ + +بستگی به فرآیند کار تحقیقاتی شما دارد: + +| نیاز دارید | پلاگین | دلیل | +|------|--------|-----| +| یافتن مقالات/یادداشت‌های مرتبط | Smart Connections | کشف شباهت‌های معنایی | +| گفتگو درباره منابع خود | Copilot | مکالمه با زمینه‌های مربوط به خزانه | +| پیوند خودکار مفاهیم + تولید یادداشت‌ها | **Notemd** | هوش مصنوعی مفاهیم را شناسایی کرده، لینک‌ها را اضافه کرده و یادداشت‌ها را ایجاد می‌کند | +| تحقیق در وب + خلاصه‌سازی به صورت یادداشت‌ها | **Notemd** | Tavily/DuckDuckGo جستجو → LLM خلاصه → اضافه شدن به یادداشت | +| تولید نمودارها از تحقیقات | **Notemd** | Mermaid/Canvas/Vega-Lite از محتوای یادداشت | + +**ترکیب توصیه‌شده:** Smart Connections (کشف) + Notemd (ساختاربندی) + Copilot (بحث). + +--- + +## دریافت کمک + +- **مستندات:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **مسائل GitHub:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **حامی مالی:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/fa/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/fa/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..6fedfe2f --- /dev/null +++ b/website/i18n/fa/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "یادداشت‌های مفهومی" +description: "تولید و مدیریت یادداشت‌های مفهومی — یادداشت‌های مستقل برای مفاهیم کلیدی استخراج‌شده از صندوق اطلاعاتی شما" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# یادداشت‌های مفهومی + +<TLDR> +**Notemd مفاهیم کلیدی را از یادداشت‌های شما استخراج کرده و فایل‌های یادداشت مفهومی مستقلی تولید می‌کند.** LLM اصطلاحات اساسی را شناسایی کرده، برای هر مفهوم یک فایل `.md` در یک پوشه قابل تنظیم ایجاد می‌کند و به صورت اختیاری لینک‌های بازگشتی به یادداشت منبع را اضافه می‌نماید. این ابزار از حذف مترادفات، انتخاب مدل بر اساس وظیفه، تصفیه نام فایل و یک موتور حذف تکرارها ۴ مرحله‌ای پشتیبانی می‌کند. این مورد بخشی از [Obsidian راهنمای مدیریت دانش هوش مصنوعی](/docs/pillar-ai-knowledge) است. +</TLDR> + +## مرور کلی + +یادداشت‌های مفهومی، بلوک‌های سازنده‌ی یک پایگاه دانش متصل هستند. هنگام پردازش یک یادداشت، Notemd: + +1. **متن شما را به یک LLM** با یک درخواست استخراج ساختاریافته ارسال می‌کند +2. **تجزیه خطوط `CONCEPT:`** از پاسخ LLM +3. **یک فایل `.md` برای هر مفهوم** در یک پوشه مشخص ایجاد می‌کند +4. **افزودن لینک‌های بازگشتی** به یادداشت منبع (در صورت فعال بودن) + +## نحوه کارکرد + +### خط لوله استخراج + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### دستور استخراج + +LLM پیامی دریافت می‌کند که به آن دستور می‌دهد: + +- استخراج **اسامی یا عبارات اسمی** که محوری‌ترین بخش موضوع سند هستند +- **اولویت را به دقت بدهید** — «شل شدن الکتریستریک» به جای «شل شدن» +- **تبدیل به صورت مفرد** — «models» به «model» تبدیل می‌شود +- **سرکوب زیرمفاهیم** — اگر عبارت «شل شدن دی‌الکتریک» ظاهر شود، عبارت «شل شدن» را نیز استخراج نکنید. +- **چشم‌پوشی** از بخش‌های منابع/فهرست منابع، اسامی عام، نام شرکت‌ها/محصولات +- خروجی یک مفهوم در هر خط به صورت `CONCEPT: Term Name` + +**سرکوب مترادفات** (اختیاری): افزودن جمله «تلاش کنید مترادفات، مفاهیم اصلی مشابه از نظر معنایی یا کلمات کلیدی را استخراج نکنید» در ابتدای دستورالعمل. + +**حوزه یادگیری متمرکز** (اختیاری): افزودن `Relevant Fields: [domain]` در ابتدا برای محدود کردن استخراج به یک رشته خاص. + +**تغییر زبان** (اختیاری): افزودن جمله «مفاهیم خروجی باید حتماً به زبان [language] باشند.» + +### تقسیم‌بندی به بلوک‌ها + +یادداشت‌های طولانی با `settings.chunkWordCount` تقسیم می‌شوند. هر بلوک به صورت جداگانه ارسال می‌شود. مفاهیم تمام بلوک‌ها در یک `Set` جمع‌آوری می‌شوند — تکرارهای موجود در بلوک‌ها به طور خاموش حذف می‌شوند. خطاهای LLM در بلوک‌های منفرد عملیات را متوقف نمی‌کنند. + +## ایجاد یادداشت مفهوم + +### قوانین نام فایل + +| قانون | رفتار | +|------|----------| +| خطوط منفی/زیرخط‌ها | جایگزینی با فاصله‌ها | +| کاراکترهای ویژه | حذف: خط پشتی، خط جلویی، دونگ، ستاره، علامت سؤال، نقل‌قول‌ها، پرانتزها، لوله، هش، نشانه تعلیق، پرانتزها | +| فضاهای خالی | فشرده‌سازی و حذف فضاهای اضافی | +| حداکثر طول | ۱۰۰ کاراکتر (بخش‌های اضافی حذف شده و دوباره تراشیده می‌شوند) | +| نتیجه خالی/تمام نقاط | بدون صدا نادیده گرفته می‌شود | + +مثال: `A-B: Key*Term` به `A B KeyTerm.md` تبدیل می‌شود + +### الگوها + +**الگوی کامل** (پیوندهای باز فعال، الگوی حداقل غیرفعال): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**الگوی حداقل** (هنگام `extractConceptsMinimalTemplate: true`): + +```markdown +# Concept Name +``` + +### به‌روزرسانی یادداشت‌های موجود + +هنگامی که فایل مفهومی از قبل وجود دارد: + +1. اگر پیوندهای باز فعال باشند و یادداشت منبع هنوز در فهرست نیست، یک پیوند باز اضافه می‌شود +2. اگر بخش `## Linked From` وجود داشته باشد، قبل از عنوان بعدی `##` درج می‌شود +3. اگر `## Linked From` وجود نداشته باشد، بخش در انتها اضافه می‌شود +4. پیوندهای تکراری بررسی شده و نادیده گرفته می‌شوند + +### پیکربندی + +| تنظیمات | پیش‌فرض | اثر | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | کلید تغییر وضعیت اصلی. غیرفعال = هیچ یادداشتی ایجاد نمی‌شود | +| `conceptNoteFolder` | `''` (غیرفعال) | مسیر پوشه برای یادداشت‌های مفهومی | +| `extractConceptsMinimalTemplate` | `true` | یادداشت‌های فقط با عنوان (بدون لینک شده از) | +| `extractConceptsAddBacklink` | `false` | افزودن لینک‌های معکوس هنگام استخراج مستقل | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | LLM برای هر وظیفه برای استخراج مفهومی | +| `extractConceptsLanguage` | `'en'` | زبان خروجی برای نام‌های مفهومی | +| `replaceSynonymsDuringConceptExtraction` | `false` | فعال‌سازی سرکوب مترادفات در دستورالعمل | +| `generateConceptLogFile` | `false` | نوشتن فهرست `.log` از مفاهیم ایجاد شده | + +**مهم:** تنظیمات `extractConceptsAddBacklink` و `extractConceptsMinimalTemplate` تنها بر **دستورالعمل استخراج اختصاصی** تأثیر می‌گذارند. دستور "افزودن لینک‌ها" همیشه یادداشت‌های الگوی کامل با لینک‌های معکوس ایجاد می‌کند. + +## حذف تکرارها + +دستور حذف تکرارها (`Notemd: Check & remove duplicate concept notes`) یک تحلیل ۵ مرحله‌ای انجام می‌دهد: + +### مرحله ۱: مطابقت دقیق نام فایل + +مقایسه نام پایه بدون توجه به حروف بزرگ و کوچک در محدوده پیکربندی شده. + +### مرحله ۲: تشخیص شکل جمع + +حذف پسوندها: `-ies` تا `-y`، `-es` حذف می‌شود، `-s` حذف می‌شود. شکل مفرد با فایل‌های محدوده مقایسه می‌شود. با جمع‌های نامنظم (children/child) کار نمی‌کند. + +### مرحله ۳: استانداردسازی نمادها + +محدوده اعمال: `toLowerCase()`، جایگزینی خطوط‌کش/آندرست با فاصله، حذف نام‌های غیرالفبایی و عددی، یکپارچه‌سازی فضاهای خالی. مواردی که به‌طور یکسان استانداردسازی می‌شوند، علامت‌گذاری می‌گردند. + +### مرحله ۴: محدودسازی تک‌کلمه‌ای + +یادداشت‌های مفهومی تک‌کلمه‌ای با نام‌فایل‌های پوشه‌های دامنه چندکلمه‌ای مقایسه می‌شوند. هنگامی که دامنه `concept_folder_only` باشد، این مرحله اجرا نمی‌شود. + +### مرحله ۵: تأیید و حذف + +تمام گزینه‌ها در یک پنجره تأیید نمایش داده می‌شوند. موارد تأییدشده به سطل زباله سیستم منتقل می‌گردند. عملیات را می‌توان بین هر حذفی لغو کرد. + +### حالت‌های دامنه + +| حالت | مقایسه با | +|------|-------------------| +| `vault` (پیش‌فرض) | تمام فایل‌های خزانه `.md` به‌جز پوشه مفاهیم | +| `concept_folder_only` | سایر یادداشت‌های مفهومی درون همان پوشه | +| `include` | فایل‌های موجود در پوشه‌های مشخص شده | +| `exclude` | تمام فایل‌های خزانه به‌جز پوشه مفاهیم و پوشه‌های فهرست‌شده | + +## کاربرد + +### استخراج مفاهیم (مستقل) + +1. باز کردن یک یادداشت +2. اجرای دستور **"Notemd: Extract concepts"** از پالت دستورات +3. یادداشت‌های مفهومی در پوشه تنظیم‌شده ایجاد می‌شوند + +### استخراج و تولید محتوا + +**"Notemd: استخراج مفاهیم و تولید عناوین"** — ابتدا مفاهیم را استخراج کرده و سپس دستور "تولید از عنوان" را بر روی هر یادداشت در پوشه مفاهیم اجرا می‌کند. این کار محتوا را برای **تمام** یادداشت‌های مفهومی در آن پوشه تولید می‌کند، نه فقط یادداشت‌های جدید. + +### ایجاد لینک ویکی از انتخابات + +1. برجسته کردن متن در ویرایشگر +2. اجرای دستور **"Notemd: ایجاد لینک ویکی از انتخابات"** +3. متن درون `[[...]]` قرار گرفته و یک یادداشت مفهومی ایجاد می‌شود + +## نکات + +- **ابتدا پوشه مفاهیم را تنظیم کنید** — بدون آن، هیچ یادداشتی ایجاد نخواهد شد. در صورت عدم تنظیم، یک پنجره هشدار نمایش داده می‌شود. +- **از مدل‌های ویژه برای هر وظیفه استفاده کنید** — استخراج مفاهیم با مدل‌های ارزان‌تر (GPT-4o-mini، DeepSeek) به خوبی انجام می‌شود. از مدل‌های گران‌قیمت برای تحقیقات/ترجمه استفاده کنید. +- **سرکوب مترادفات را فعال کنید** برای حوزه‌های فنی که چندین اصطلاح به یک مفهوم اشاره دارند. +- **به طور منظم تکرارها را حذف کنید** — پس از پردازش دسته‌جمعی، دستور حذف تکرارها را اجرا کنید تا تکرارهای نزدیک شناسایی شوند. +- **فایل لاگ در هر بار اجرا پوشش داده می‌شود**، نه اضافه می‌گردد. اگر به نتایج قبلی نیاز دارید، آن را کپی کنید. + +--- + +## گام‌های بعدی + +- [لینک‌های ویکی](./wiki-links) — نحوه اتصال مفاهیم به صورت درون‌متنی +- [نمودارها](./diagrams) — نمایش روابط مفاهیمی +- [فرآیندها](./workflows) — پیوند دادن استخراج با سایر وظایف diff --git a/website/i18n/fa/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/fa/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..c07acb9f --- /dev/null +++ b/website/i18n/fa/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "نمودارها" +description: "تولید Mermaid، JSON Canvas، Vega-Lite، HTML، آثار تصویری قابل ویرایش، و نمودارهای محدود شده در آینده circuitikz از یادداشت‌های شما با استفاده از معماری مبتنی بر مشخصات اولیه" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# نمودارها + +<TLDR> +**Notemd نمودارها را از یادداشت‌های شما از طریق یک خط تولید مبتنی بر مشخصات اولیه تولید می‌کند.** LLM یک `DiagramSpec` JSON مستقل از رندرر تولید می‌کند، سپس آداپتورهای ویژه آن را به Mermaid، JSON Canvas، Vega-Lite، HTML یا خروجی قابل ویرایش HTML/SVG تبدیل می‌کنند. این سیستم از ۸ نوع قصد، زنجیره‌های جایگزینی خودکار، نمایش زنده همراه با صادرات به SVG/PNG، بررسی معنایی، و تولید تقویت‌شده با دانش محلی پشتیبانی می‌کند. +</TLDR> + +این بخشی از [Obsidian راهنمای مدیریت دانش هوش مصنوعی](/docs/pillar-ai-knowledge) است. + +## معماری: خط تولید مبتنی بر مشخصات اولیه + +Notemd هرگز از LLM نمی‌خواهد که مستقیماً سینتکس Mermaid/Vega/Canvas را تولید کند. در عوض: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**چرا مبتنی بر مشخصات اولیه؟** LLMها اغلب سینتکس نامعتبر رندرر تولید می‌کنند (به‌ویژه Mermaid). یک `DiagramSpec` ساختاریافته می‌تواند قبل از رندرینگ بررسی شود، و همان مشخصات می‌تواند به عنوان جایگزین برای چندین رندرر استفاده شود. + +## انواع نمودارهای پشتیبانی‌شده + +| قصد | رندرر اصلی | جایگزین‌ها | کاربرد | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | تجزیه موضوعات سلسله‌مراتبی | +| `flowchart` | Mermaid | HTML | جریان‌های فرآیندی، درخت‌های تصمیم‌گیری | +| `sequence` | Mermaid | HTML | تعاملات کلاینت-سرور، پروتکل‌ها | +| `classDiagram` | Mermaid | HTML | روابط کلاس‌های OOP | +| `erDiagram` | Mermaid | HTML | طرح‌های پایگاه داده، روابط موجودیت‌ها | +| `stateDiagram` | Mermaid | HTML | ماشین‌های حالت، مدل‌های چرخه عمر | +| `canvasMap` | JSON Canvas | Mermaid → HTML | نقشه‌های مفهومی، گراف‌های دانش | +| `dataChart` | Vega-Lite | Mermaid → HTML | نمودارهای میله‌ای، خطی، ناحیه‌ای، پراکنده، کیکی، جداول | + +## تشخیص قصد + +Notemd با استفاده از امتیازدهی کلمات کلیدی، بهترین نوع نمودار را بر اساس محتوای یادداشت شما تخمین می‌زند: + +| قصد | محرک‌ها | میزان اطمینان | +|--------|----------|------------| +| `dataChart` | جداول، سلول‌های عددی، کلمات کلیدی مربوط به معیار/روند، درصدها | 0.88 | +| `sequence` | واژگان درخواست/پاسخ (۴ مورد یا بیشتر) یا علائم `->`/`=>` | 0.82 | +| `erDiagram` | کلید اصلی، کلید خارجی، موجودیت، طرح (۲ مورد یا بیشتر) | 0.80 | +| `stateDiagram` | حالت، انتقال، در حال انتظار، در حال اجرا، شکست‌خورده (۳ مورد یا بیشتر) | 0.76 | +| `flowchart` | مراحل شماره‌گذاری‌شده (۲ مورد یا بیشتر) یا واژگان if/then/else/workflow | 0.74 | +| `canvasMap` | نقشه مفهومی، گراف دانش، فضایی، خوشه‌بندی | 0.72 | +| `mindmap` | پیش‌فرض جایگزین | 0.55 | + +با تنظیم **نوع نمودار مورد علاقه**، انتخاب‌کننده سمت چپ یا گزینه صریح پالت دستورات، آن را بازنویسی کنید. + +## انتخاب هدف رندر + +پایپلاین تجربی مبتنی بر مشخصات اکنون دارای دو کنترل مستقل است: + +| کنترل | تنظیمات | اثر | +|---------|---------|--------| +| نوع نمودار مورد علاقه | `preferredDiagramIntent` | شکل معنایی `DiagramSpec` تولید شده را هدایت می‌کند | +| هدف رندر مورد علاقه | `preferredDiagramRenderTarget` | رندرکننده آرتیفکت برای **تولید نمودار** و **پیش‌نمایش نمودار** را انتخاب می‌کند | + +برای پیش‌فرض برنامه‌ریز، **هدف رندر مورد علاقه** را روی **خودکار** تنظیم کنید یا به طور صریح Mermaid، JSON Canvas، Vega-Lite، HTML یا HTML/SVG قابل ویرایش را انتخاب کنید. این بازنویسی فقط برای دستورات آرتیفکت و پیش‌نمایش اعمال می‌شود. دستور استاندارد **خلاصه کردن به نمودار Mermaid** همچنان به خروجی سازگار با Mermaid متصل می‌ماند تا فرآیندهای Markdown موجود به طور خاموش فرمت را تغییر ندهند. + +این جداسازی اهمیت دارد زیرا یک قصد `flowchart` اکنون می‌تواند برای یادداشت‌های Markdown به صورت Mermaid، برای پیش‌فرض محکم به صورت HTML، یا برای ویرایش‌های بعدی به صورت HTML/SVG قابل رندر شدن باشد. Draw.io و Drawnix همچنان صادرکننده‌های آرتیفکت CLI هستند و نه هدف‌های رندر درون پلاگین. + +## کاربرد + +### تولید یک نمودار + +1. باز کردن یک یادداشت +2. از پالت دستورات، **"Notemd: تولید نمودار"** را اجرا کنید +3. Notemd قصد را تشخیص می‌دهد، مشخصات را تولید می‌کند، رندر می‌کند و آرتیفکت را ذخیره می‌کند + +**فایل‌های خروجی بر حسب هدف:** + +| هدف | پسوند | الگوی نام فایل | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| قابل ویرایش HTML/SVG | `.html` | `{note}_diagram.html` | + +### مشاهده طرح + +1. اجرای **"Notemd: مشاهده طرح"** +2. یک پنجره کشویی با طرح نمایش داده‌شده باز می‌شود +3. صادرات به صورت SVG یا PNG با استفاده از دکمه‌های نوار ابزار + +گزینه **باز شدن خودکار مشاهده** در تنظیمات موجود است — پس از تولید، پنجره مشاهده به‌طور خودکار باز می‌شود. + +پنجره مشاهده همچنین دارای پنل تشخیص نقص‌ها است. ابزارهای رندر و بررسی‌های سیگار می‌توانند `RenderArtifact.diagnostics` را اضافه کنند؛ پنجره خلاصه‌ای از تشخیصات را با تعداد خطا/هشدار/اطلاعات، سپس میزان شدت، نوع تشخیص، پیام و توصیه‌های تعمیر در کنار مشاهده نشان می‌دهد. همین خلاصه در ورودی‌های تاریخچه مشاهده نیز نمایش داده می‌شود، بنابراین می‌توان تلاش‌های مکرر circuitikz را بدون باز کردن هر ورودی مقایسه کرد. برای نقص‌هایی که محتوای منبع دارند اما نمی‌توانند به‌صورت درون‌خطی یا از طریق مسیر iframe HTML رندر شوند، پنجره اکنون به جای اجبار به استفاده از یک iframe خالی، به مشاهده فقط منبع روی می‌آورد. این کار به بررسی‌های کامپایل/رندر circuitikz، بررسی‌های توکن متنی SVG، بررسی‌های سکرینشات خالی PNG و گزارش‌های تداخل آینده، یک سطح قابل مشاهده UI می‌دهد، بدون اینکه TikZJax یا LaTeX را به یک وابستگی زمان اجرای پلاگین سخت تبدیل کند یا محتوای منبع را به‌عنوان یک رندر بصری تأییدشده در نظر بگیرد. + +### حالت Mermaid قدیمی + +هنگامی که `enableExperimentalDiagramPipeline` غیرفعال است، Notemd یک درخواست مستقیم Mermaid را به LLM ارسال می‌کند. این کار کل خط لوله مشخصات را دور می‌زند. اگر خط لوله آزمایشی شکست بخورد، به این حالت بازمی‌گردد. + +## پشته‌های رندرینگ + +### Mermaid + +۶ آداپتور (نقشه ذهنی، نمودار جریان، توالی، ER، کلاس، حالت) `DiagramSpec` را به سینتکس Mermaid تبدیل می‌کنند. پس از تولید، `mermaid.parse()` خروجی را بررسی می‌کند. اگر بررسی شکست بخورد: + +1. **تلاش مجدد LLM** — یک تلاش با پیام خطای Mermaid به عنوان زمینه +2. **بازگشت حداقلی** — یک طرح Mermaid ساده از شناسه‌های گره مشخصات + +**ترمیم‌کننده میراث Mermaid** به‌طور خودکار اشکال نحوی رایج LLM را تعمیر می‌کند: استانداردسازی دستورات note، فرار از علامت pipe-label، تغییر موقعیت علامت semicolon، نقل‌قول‌های هوشمند، پیکان‌های دو‌خطی، عدم تطابق اشکال و موارد دیگر. + +### JSON Canvas + +فرمت Obsidian JSON Canvas با چیدمان فضایی تولید می‌کند: +- گره‌ها بر اساس عمق (x = عمق × 420) و شماره (y = شماره × 170) قرار می‌گیرند +- عرض بر اساس طول برچسب تخمین زده می‌شود +- لبه‌ها دارای `fromSide: 'right'`، `toSide: 'left'`، `toEnd: 'arrow'` هستند + +### Vega-Lite + +مشخصات کامل Vega-Lite v5 JSON را با کدگذاری خودکار ایجاد می‌کند: +- **نمودارهای دکارتی** (میله‌ای/خطی/مساحتی/نقطه‌ای/پراکنده): کانال‌های x + y به همراه رنگ برای چند سری +- **نمودار پای**: theta = y (کمی)، رنگ = x (نامی) +- **جدول**: ردیف = x، متن = y + ستون = سری + +پچ‌های تم تیره و روشن قبل از کامپایل به‌صورت عمیق ادغام می‌شوند. + +### HTML + +راه‌حل جهانی. سند خودکافی HTML شامل: +- هدرهای CSP meta +- حالت روشن/تیره از طریق `prefers-color-scheme` +- برچسب‌های UI تطبیق‌یافته برای ۲۰ منطقه زبانی +- بخش‌ها: هدر، ساختار (درخت گره‌ها)، روابط، توضیحات، جداول سری‌های داده + +### HTML/SVG قابل ویرایش + +هدف مشخص برای فرآیندهای صادرات قابل ویرایش. این روش `DiagramSpec` را به یک `SemanticFigureModel` تعیین‌شونده تبدیل می‌کند، سپس یک سند خودکافی HTML با گروه‌های درون‌متنی SVG ایجاد می‌کند که حاوی یادداشت‌های به سبک Draw.io هستند: + +- `data-drawio-type`، `data-drawio-id` و `data-drawio-role` روی گره‌های معنایی +- `data-drawio-source` و `data-drawio-target` روی لبه‌های معنایی +- شناسه‌های پایدار گره/لبه پس از استانداردسازی فضاهای خالی و مدیریت برخوردها +- بدون اسکریپت، بدون فونت‌های خارجی و بدون منابع راه دور + +این هدف عمداً هنوز مسیر پلانر پیش‌فرض نیست. این هدف به عنوان یک هدف نمایش مشخص در دسترس است تا رفتار ویرایشی در ابزارهای واقعی آزمایش شود. + +### Draw.io و Drawnix مرزهای صادرات + +پیاده‌سازی فعلی حمایت از ویرایشگرهای شخص ثالث را در مرز آرتیفکت نگه می‌دارد: + +| هدف | قرارداد | وابستگی زمان اجرا | +|--------|----------|--------------------| +| Draw.io | `mxfile` XML بدون فشرده‌سازی تعیین‌شونده از `SemanticFigureModel` | هیچ‌کدام در زمان اجرای پلاگین یا CI وجود ندارد | +| Drawnix | مجموعه کوچکی از `.drawnix` JSON با استفاده از عناصر `geometry` و `arrow-line` | هیچ‌کدام در زمان اجرای پلاگین یا CI وجود ندارد | + +این تعادل عمدی است: Notemd می‌تواند برچسب‌های قابل مشاهده، شناسه‌های پایدار و پوشش ابتدایی‌های پشتیبانی‌شده را بدون گنجاندن Diagram.net Desktop، Drawnix، Plait یا حالت ویرایشگر فقط در مرورگر در پلاگین بررسی کند. + +### circuitikz / TikZJax جهت‌گیری + +نمودارهای مداری مشکل یکسانی با نمودارهای جریان عمومی ندارند. سینتکس صحیح برای مدارهای الکتریکی معمولاً **circuitikz** است که از طریق پلاگین‌هایی مانند TikZJax در Obsidian رندر می‌شود. TikZJax می‌تواند بسته‌هایی مانند `circuitikz`، `pgfplots`، `tikz-cd` و `chemfig` را بارگذاری کند که این امر آن را برای یادداشت‌های فیزیک، مدارها، شیمی و ریاضیات جذاب می‌سازد. + +خطر این است که فایل‌های TikZ تولید شده توسط LLM خام بسیار حساس هستند: + +- توپولوژی پیچیده مدار ممکن است از نظر الکتریکی صحیح باشد اما از نظر بصری خوانا نباشد؛ +- تداخل سیم‌ها و برچسب‌ها می‌تواند یک لیست شبکه صحیح را برای یادداشت‌های مطالعاتی غیرقابل استفاده کند؛ +- عدم وجود مقدمات بسته، آنکرهای نادرست یا نام‌های نامعتبر مؤلفه‌ها می‌تواند مانع رندر شدن شود؛ +- بازخورد از رندرر معمولاً در سطح تصویر است، در حالی که LLM هندسه را در سطح متن تولید می‌کند. + +معماری بهتر این است که circuitikz را به عنوان یک هدف نمودار محدود شده در نظر بگیریم، نه به عنوان یک دستور آزاد: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +مدل درجه یک باید توپولوژی و چیدمان مدار را به طور جداگانه توصیف کند: + +| لایه | مسئولیت | مثال | +|-------|----------------|---------| +| توپولوژی | گره‌های الکتریکی و اتصالات مؤلفه‌ها | `VDD -> RD -> drain(M1)`، `source(M1) -> GND` | +| چیدمان | قرارگیری در شبکه، جهت‌گیری، مسیرهای راه‌اندازی | `M1 at (3,2.2)`، ورودی سمت چپ، خروجی سمت راست | +| سبک | بسته، قرارداد ولتاژ، برچسب‌ها، آنکرها | `\begin{circuitikz}[american voltages]` | +| تأیید صحت | لگ فرآیند کامپایل، آنکرها گم شده‌اند، بررسی‌های همپوشانی/تصویر صفحه نمایش | TikZJax/تشخیص‌های LaTeX به همراه بررسی بصری | + +### پروتوتایپ فعلی circuitikz + +Notemd اکنون شامل اولین پروتوتایپ مخزن محدودشده برای این جهت می‌شود. این پروتوتایپ عمداً آفلاین و محدود به الگو است: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +این پروتوتایپ یک مرز جداگانه `CircuitSpec` و یک صادرکننده تعیین‌شده برای شش خانواده مرجع طلایی اضافه می‌کند: + +| نوع مدار | مرجع طلایی | گارانتی فعلی | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | قبل از نوشتن LaTeX، `VDD -> R_D -> M1.D`، `vin -> M1.G`، `M1.S -> GND` و `M1.D -> vout` را تأیید می‌کند | +| `cmos-inverter` | `cmos-inverter-v1` | قبل از نوشتن LaTeX، توپولوژی PMOS-over-NMOS، ورودی گیت مشترک، خروجی درین مشترک، `VDD -> MP.S`، و `MN.S -> GND` را بررسی می‌کند. | +| `cmos-buffer` | `cmos-buffer-v1` | قبل از نوشتن LaTeX، دو مرحله اینورتر متوالی، گره میانی `vmid`، حالت بازسازی شده `vout`، و ریل‌های مشترک VDD/GND را بررسی می‌کند. | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | قبل از نوشتن LaTeX، دستگاه‌های مسیریابی موازی PMOS/NMOS بین `vin` و `vout` را با کنترل‌های مکمل `phib` / `phi` بررسی می‌کند. | +| `cmos-nand2` | `cmos-nand2-v1` | قبل از نوشتن LaTeX، پیکربندی‌های pull-up موازی PMOS، pull-down سری NMOS، ورودی‌های دوگانه `va` / `vb` و `vout` را بررسی می‌کند. | +| `cmos-nor2` | `cmos-nor2-v1` | قبل از نوشتن LaTeX، سری‌های PMOS برای کشیدن به بالا، NMOS برای کشیدن به پایین به صورت موازی، ورودی‌های دوگانه `va` / `vb` و `vout` را بررسی می‌کند. | + +این هنوز یک تولیدکننده کلی TikZ نیست. این ابزار لاتکس را کامپایل نمی‌کند، به TikZJax فراخوانی نمی‌کند، تصاویر صفحه نمایش را بررسی نمی‌کند و تعمیر خودکار تصاویر بر اساس بازخورد را انجام نمی‌دهد. این کارها در مراحل بعدی انجام خواهند شد. + +دستور نمودار پیش‌نمایش می‌تواند به‌طور مستقیم آرتیفکت‌های منبع ذخیره‌شده circuitikz را دوباره باز کند، هنگامی که پسوند فایل `.tex` یا `.tikz` باشد و منبع حاوی `\usepackage{circuitikz}` یا `\begin{circuitikz}` باشد. این روش نوعی پیش‌نمایش صرفاً مبتنی بر منبع circuitikz است: پنجره نمایشی، منبع، اطلاعات تشخیصی، کنترل‌های کپی/ذخیره و اطلاعات فراداده‌های تاریخچه را نشان می‌دهد، اما لاتکس را کامپایل نمی‌کند و در زمان اجرای پلاگین از TikZJax استفاده نمی‌کند. + +حالا مرز پیش‌نمایش تنها مبتنی بر منبع، آثار ذخیره‌شده Draw.io و Drawnix را نیز در بر می‌گیرد. فایل‌های `.drawio` زمانی پذیرفته می‌شوند که شبیه به Draw.io XML (`mxfile` یا `mxGraphModel`) باشند، و فایل‌های `.drawnix` زمانی پذیرفته می‌شوند که شامل Drawnix JSON همراه با `type: "drawnix"` و یک آرایه `elements` باشند. این افزونه همچنان diagrams.net یا میز سفید Drawnix را درون خود قرار نمی‌دهد؛ این پیش‌نمایش‌ها منبع، اطلاعات تشخیصی و تاریخچه آثار را بدون استفاده از یک ویرایشگر بصری درون افزونه، نمایش می‌دهند. + +برای تعمیر حفظ‌کننده توپولوژی، پیش از پذیرش گزینه تعمیر‌شده، مشخصات قبل از تعمیر را به عنوان مرجع ارسال کنید: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +این نرم‌افزار تعمیراتی از `createCircuitTopologySignature` و `assertCircuitTopologyUnchanged` برای مقایسه `circuitKind`، `goldenReferenceId`، شبکه‌ها، شناسه‌ها/انواع/ترمینال‌های اجزا، و انتهای‌نقاط اتصالات بدون جهت قبل از خروجی استفاده می‌کند. برچسب‌ها، متن عنوان، راهنمایی‌های چیدمان، ترتیب اتصالات، و برچسب‌های اتصال به طور عمدی نادیده گرفته می‌شوند. هر کاندیدایی که یک ترمینال را کوتاه کند یا مسیر آن را تغییر دهد، پیش از نوشته شدن فایل `.tex` با خطا `Circuit topology drift detected` مواجه می‌شود. + +CLI اکنون می‌تواند لاگ کامپایل LaTeX/TikZJax موجود را بدون اجرای کامپایلر تحلیل کند: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +این مسیر تشخیصی، برچسب‌های گمشده مانند `circuitikz.sty`، کلیدهای ناشناخته TikZ/circuitikz، خطاهای نحوی در مسیرهای TikZ مانند عدم وجود نقطه‌های ویرگولی، آرگومان‌های اضافی ناشی از پرانتزهای نامتعادل یا برچسب‌های بدون پایان، توالی‌های کنترلی نامشخص، خطاهای کلی LaTeX، توقف‌های اضطراری، و هشدارهای توصیه‌ای مربوط به پر بودن بیش از حد `\hbox` را گزارش می‌کند. این سیستم همچنان بر پایه لاگ‌ها کار می‌کند؛ اجرای محلی LaTeX/TikZJax و فیلترهای مربوط به کیفیت تصویر، هنوز کارهای آینده جداگانه‌ای محسوب می‌شوند. + +برای بررسی‌های ساده نگهدارنده، همان CLI می‌تواند به صورت اختیاری یک رندرر که به طور صریح پیکربندی شده است را بدون تجزیه دستورات شل اجرا کند: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +این ابزار کامپایل‌کننده از `shell: false` استفاده می‌کند، جایگزین‌های `{tex}`، `{outputDir}` و `{jobName}` را به مقادیر آرایه‌ی آرگومان تبدیل می‌کند، `{jobName}.log` تولیدشده را می‌خواند و `compileExecution` به همراه `compileDiagnostics` را در خروجی CLI JSON برمی‌گرداند. `--compile-executable` تنها مسیر فایل باینری یا پوشش رندرر است؛ فلگ‌های رندرر باید در مقادیر تکرارشونده‌ی `--compile-arg` قرار گیرند. فایل‌های اجرایی خالی به عنوان `compile-executable-invalid` شکست می‌خورند، فایل‌های باینری ناقص به عنوان `compile-executable-not-found` شکست می‌خورند، و رشته‌های فایل اجرایی در قالب دستورات شل، هشدار دریافت می‌کنند تا آرگومان‌ها را تقسیم کنند تا ویندوز، لینوکس و مک‌اواس از یک قرارداد اجرای مستقیم یکسان پیروی کنند. با استفاده از `--expected-artifact`، این ابزار همچنین `compileExecution.renderSmoke` را گزارش می‌دهد و در صورتی که رندرر یک آرتیفکت غیرخالی ایجاد نکند، CLI را نیز شکست می‌دهد. این ابزار همچنان لاتکس را بسته‌بندی نمی‌کند، TikZJax را به عنوان یک وابستگی زمان اجرای پلاگین در نظر نمی‌گیرد، و تعمیرات بصری در سطح تصویر صفحه نمایش را انجام نمی‌دهد. + +اگر آرتیفکت مورد انتظار `.svg` باشد، بررسی سموک یک لایه عمیق‌تر انجام می‌شود: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +SVG ابزار smoke ریشه `<svg>`، ابعاد مثبت یا `viewBox`، حداقل یک عنصر ترسیمی قابل مشاهده پس از حذف عناصر پنهان/شفاف، تمام توکن‌های متنی درخواستی، عناصر آشکار خارج از `viewBox`، برچسب‌های `<text>` / `<tspan>` با قرارگیری همپوشانی آشکار، و برچسب‌های متنی آشکار که از طریق `render-svg-label-overlap` روی عناصر ترسیمی همپوشانی دارند، را بررسی می‌کند. متن مورد انتظار در متن‌های قابل مشاهده و همچنین در فراداده‌های دسترس‌پذیری مانند `aria-label`، `<title>` و `<desc>` جستجو شده و رمزگشایی می‌شود؛ بنابراین رندررهایی که برچسب‌های معنایی را خارج از `<text>` قابل مشاهده حفظ می‌کنند، می‌توانند بدون نیاز به OCR، آزمون توکن‌های متنی را پاس کنند. مرحله هندسی اکنون برای ویژگی‌های رایج گروه‌ها و عناصر `transform`، هندسه‌ای تحت تأثیر تبدیلات است؛ بنابراین جعبه‌های SVG که ترجمه شده، مقیاس‌داده، چرخانده، کج شده یا از طریق ماتریس تبدیل شده‌اند، پس از ترکیب تبدیلات بررسی می‌شوند. این مرحله محدوده‌های دقیق قوس‌های A/a، محدوده‌های دقیق منحنی‌های Bezier برای نقاط انتهایی C/S/Q/T، محدوده‌های مبتنی بر ضخامت خط SVG و بررسی‌های همپوشانی برچسب‌ها، هندسه ترسیمات `polyline` / `polygon`، و همچنین تعیین موقعیت گلیف‌های فقط مبتنی بر مسیر از طریق ارجاعات `<use href="#...">` را پوشش می‌دهد؛ بنابراین برچسب‌هایی که به مسیرهای گلیف قابل استفاده تبدیل شده‌اند، حتی در صورتی که هندسه آن‌ها از `viewBox` فراتر رود، ممکن است در بررسی‌های مربوط به محدوده کانواس شکست بخورند. چندین برچسب `tspan` در زیر یک والد `<text>` به عنوان جعبه‌های برچسب جداگانه مقایسه می‌شوند؛ این کار باعث شناسایی خروجی‌های سبک LaTeX SVG می‌شود که در غیر این صورت برچسب‌های متفاوت را در یک گره متنی تلف می‌کرد. جعبه‌های `text` و `tspan` با قرارگیری، از مقادیر `start`، `middle` و `end` پیروی می‌کنند؛ بنابراین برچسب‌های مرکزی و راست‌قرار گرفته می‌توانند باعث ایجاد تشخیص‌های همپوشانی متن/متن و برچسب-ترسیم شوند، بدون اینکه نیاز به چیدمان متن در سطح مرورگر باشد. مسیرهای گلیف فقط تعریفی درون `<defs>` به عنوان عناصر ترسیمی قابل مشاهده شمارش نمی‌شوند، اما ویژگی‌های محلی تعریف آن‌ها یعنی `transform`، پیش از قرارگیری در `<use>` اعمال می‌شوند؛ بنابراین تعریف‌های گلیف که مقیاس‌داده یا آینه‌شده‌اند، کمتر شمارش نمی‌شوند. بررسی برچسب-ترسیم از یک تحمل کوچک برای جعبه‌های ترسیمی و مقادیر اعلام شده `stroke-width` استفاده می‌کند؛ بنابراین سیم‌های نازک، سیم‌های ضخیم و خطوط محیطی اجزای چندضلعی، هنگامی که خطوط قابل مشاهده آن‌ها به برچسب می‌رسد، می‌توانند به عنوان عواملی منجر به نامشخص بودن خوانایی برچسب در نظر گرفته شوند. برچسب‌های گلیف فقط مبتنی بر مسیر که از `<use href="#...">` تعیین می‌شوند نیز با جعبه‌های ترسیمی مقایسه شده و در صورت همپوشانی با سیم‌ها یا اجزا، با استفاده از `render-svg-path-glyph-overlap` شکست می‌خورند. اگر رندرر برچسب‌ها را به گلیف‌های مسیر قابل استفاده تبدیل کند به جای متن‌های قابل جستجو `<text>` و فراداده‌های دسترس‌پذیری را حفظ نکند، گزارش smoke مقادیر `pathOnlyGlyphUseCount` را ثبت کرده و توکن‌های متنی درخواستی را از طریق `render-svg-text-path-only` شکست می‌دهد، به جای اینکه وانمود کند برچسب وجود ندارد. سایر شکست‌ها از طریق `render-svg-invalid`، `render-svg-dimension-missing`، `render-svg-no-visible-elements`، `render-svg-text-missing`، `render-svg-out-of-bounds`، `render-svg-text-overlap`، `render-svg-label-overlap` یا `render-svg-path-glyph-overlap` گزارش می‌شوند. بررسی‌های توکن‌های متنی و همپوشانی باید تنها به عنوان آزمون ساختاری برای رندررهایی در نظر گرفته شوند که برچسب‌ها را به عنوان متن قابل جستجو SVG یا فراداده‌های دسترس‌پذیری حفظ می‌کنند؛ خروجی‌های فقط مبتنی بر مسیر SVG همچنان نیاز به آزمون تصویر/OCR برای اثبات خوانایی بصری برچسب‌ها دارند، و این مرحله آزمون نیز پوشش کامل SVG مسیرها را ادعا نمی‌کند. + +گروه‌ها و عناصر پنهان SVG به طور یکنواخت در حین شمارش عناصر قابل مشاهده و جمع‌آوری اطلاعات هندسی نادیده گرفته می‌شوند. ویژگی‌ها یا استایل‌های درون‌متنی `display:none`، `visibility:hidden`، `visibility:collapse` و کلیت `opacity:0` نمی‌توانند یک آرتیفکت رندر شده که در غیر این صورت خالی است، را برای آزمون خروجی قابل مشاهده پذیرفته شده کنند. + +تعریف‌های گلیف فقط مبتنی بر مسیر می‌توانند مسیرهای مستقیم یا ظرف‌های گروهی/نمادین درون `<defs>` باشند. مرحله بررسی دود، هندسه مسیرهای فرزند را از `<g id="...">` و `<symbol id="...">` پیش از قرارگیری در `<use>` تعیین می‌کند؛ بنابراین خروجی گلیف‌های بسته‌بندی‌شده همچنان به `pathOnlyGlyphUseCount`، بررسی‌های کانواس محدود، و `render-svg-path-glyph-overlap` تزریق می‌شود. + +پارسر مسیر همچنین شروع زیرمسیرها را ردیابی کرده و نقطه فعلی را در `Z/z` سرزنش می‌کند؛ بنابراین دستورات نسبی پس از یک زیرمسیر بسته، از نقطه صحیح SVG ادامه می‌یابند و باعث ایجاد تشخیص‌های نادرست `render-svg-out-of-bounds` نمی‌شوند. + +همان پروسس هندسی از قاعده SVG برای اعداد اعشاری دارای نقطه اول و علامت‌های مثبت صریح پیروی می‌کند، بنابراین مختصات کوچک dvisvgm مانند `.5`، `-.5` یا `+.5` در زمان بررسی مرزها همچنان به صورت کسری باقی می‌مانند و به جای اینکه به هندسه خارج از محدوده نادرست تبدیل شوند یا نادیده گرفته شوند، این وضعیت حفظ می‌شود. + +اگر رندرر `.png` را ارسال کند، مسیر همان محصول مورد انتظار به عنوان اولین تصویر سکرین‌شات دودی درمی‌آید: Notemd فایل‌های PNG با رنگ‌بندی شاخص ۱/۲/۴/۸ بیت غیر‌تداخلی، فایل‌های PNG خاکستری ۱/۲/۴/۸/۱۶ بیت، و فایل‌های PNG خاکستری‑آلفا/RGB/RGBA ۸/۱۶ بیت را دکوده می‌کند. تصاویر خاکستری با رنگ‌بندی شاخص و خاکستری زیر‑بایت از نمونه‌های بسته پشتیبانی می‌کنند؛ تصاویر رنگ‌بندی شاخص همچنین از PLTE و داده‌های tRNS اختیاری پشتیبانی می‌کنند؛ تصاویر خاکستری/RGB از نمونه‌های شفاف tRNS پشتیبانی می‌کنند. نمونه‌های مستقیم ۱۶ بیتی به همان فضای مقایسه ۸ بیتی RGBA که توسط بررسی‌های دودی استفاده می‌شود، نرمال‌سازی می‌شوند. بررسی دودی ابعاد مثبت را بررسی می‌کند، مرزهای پیش‌زمینه را به عنوان `foregroundBounds` ثبت می‌کند، تراکم پیش‌زمینه درون آن جعبه را به عنوان `foregroundDensity` ثبت می‌کند، وقتی هر پیکسل قابل مشاهده با رنگ پیش‌زمینه گوشه بالا‑چپ یکسان شود با `render-png-blank` شکست می‌خورد، وقتی محتوای پیش‌زمینه به مرز تصویر برسد با `render-png-content-clipped` شکست می‌خورد، وقتی یک سکرین‌شات بزرگ کمتر از چهار پیکسل پیش‌زمینه داشته باشد با `render-png-foreground-too-small` شکست می‌خورد، و وقتی پیکسل‌های پیش‌زمینه درون یک جعبه مرزی غیر‌ساده به طور غیرعادی متراکم باشند با `render-png-foreground-dense` شکست می‌خورد. فرمت‌های PNG غیرپشتیبانی‌شده با `render-png-unsupported` شکست می‌خورند و راهنمایی‌های خاص برای PNG‌های تداخلی Adam7 یا عمق بیت‌های رنگ‌بندی شاخص غیرپشتیبانی‌شده ارائه می‌شود. این روش سکرین‌شات‌های خالی، برش‌های واضح کانواس، ردپاهای پیش‌زمینه کم‌رنگ، شکست‌های اولیه مربوط به ازدحام در سطح پیکسل، و تنظیمات نادرست صادرات PNG توسط رندرر را بدون افزودن وابستگی شل به پلتفرم خاص، شناسایی می‌کند. این روش هنوز به سطح تشخیص برچسب با OCR، تشخیص دقیق همپوشانی متن، یا ترمیم تصویر با حفظ توپولوژی نرسیده است. + +وقتی تشخیص‌ها نشان می‌دهند که کامپایل یا اجرای رندر‑دودی شکست خورده است، CLI می‌تواند یک گزارش ترمیم حافظه‌ی توپولوژی نیز بنویسد: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +گزارش ترمیم از الگو `notemd.circuitikz.repair-brief.v1` استفاده می‌کند و منبع `CircuitSpec`، امضای توپولوژی، تشخیص‌های کامپایل/رندر، ویرایش‌های مجاز، ویرایش‌های ممنوعه توپولوژی، مراحل بررسی بعدی، و یک `repairPrompt` ساختاریافته را حمل می‌کند. نقش پرومپت `topology-preserving-circuitikz-repair` است؛ لیست `diagnosticFocus` آن از تشخیص‌های کامپایل/رندر گرفته می‌شود و نیازهای `acceptanceCriteria` شامل تأیید نامزد و بررسی‌های کامپایل و رندر‑دودی جدید است. این فرمت، فرمت انتقال برای یک حلقه ترمیم بعدی است، نه ادعای اینکه Notemd پیش‌تر ترمیم بصری خودکار انجام داده است. + +پس از تولید یک نامزد ترمیم، همان CLI می‌تواند آن را قبل از نوشتن خروجی، در برابر گزارش بررسی کند: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief` امضای توپولوژی نامزد را از گزارش بررسی می‌کند و این کار با `--topology-reference` متناقض است. عبور از این مرحله فقط حفظ توپولوژی را ثابت می‌کند؛ نامزد هنوز به تشخیص‌های کامپایل و بررسی‌های رندر‑دودی نیاز دارد. + +نتیجه `--repair-brief` همچنین شامل شواهد `repairAcceptance` با الگو `notemd.circuitikz.repair-acceptance.v1` است. این نتیجه، دروازه‌های `topology-signature`، `compile-diagnostics` و `render-smoke` را به عنوان `passed`، `failed` یا `missing` گزارش می‌کند؛ `remainingChecks` را آشکار می‌سازد؛ و `readyForVisualAcceptance` را تا زمانی که اجرای نامزد تمام شواهد لازم را در بر بگیرد، به حالت نادرست نگه می‌دارد. + +از `--repair-acceptance-output` همراه با `--repair-brief` زمانی استفاده کنید که شواهد CI یا انتشار به یک فایل JSON پایدار نیاز داشته باشند: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +برای شواهد انتشار یا نگهدارنده، هر خانواده طلایی پشتیبانی‌شده را از طریق اجراکننده تست جمعی اجرا کنید: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +این اجراکننده از `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`، `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`، `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`، `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`، `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json` و `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json` استفاده می‌کند، برای هر تست همان مسیر صادرکننده بدون شل را فراخوانی می‌کند، و یک گزارش جمعی JSON با `compileExecution` و `compileDiagnostics` برای هر تست برمی‌گرداند. این همچنان یک دستور نگهدارنده است، نه وابستگی زمان اجرای پلاگین. + +وقتی رایانه نگهدارنده هنوز رندرری پیکربندی نشده داشته باشد، همان دستور تست را بدون `--compile-executable` اجرا کنید و دروازه محیطی را به طور صریح ذخیره کنید: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +آن مسیر همچنان آرتیفکت‌های تست قطعی `.tex` را می‌نویسد، اما `ok: false` را با `rendererAvailability.status` در حالت `missing-configuration` و یک تشخیص `compile-executable-invalid` برمی‌گرداند. آن را فقط به عنوان شواهد در دسترس بودن رندرر در نظر بگیرید؛ این شامل کامپایل، رندر‑دودی یا پذیرش بصری نمی‌شود. + +### شکل پرومپت مرجع طلایی + +برای استفاده کوتاه‌مدت، قبل از درخواست یک نسخه متفاوت مدار، یک مرجع قابل رندر کردن ارائه دهید. یک پرومپت محدود باید مقدمه، مقیاس مختصات، سبک آنکر و قوانین مسیریابی را حفظ کند: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +برای یک اینورتر CMOS، پرومپت باید درخواستی صریح برای توپولوژی و محدودیت‌های طراحی داشته باشد، نه فقط «یک اینورتر CMOS رسم کنید»: + +- `VDD` را در بالا، `GND` را در پایین، ورودی را در سمت چپ و خروجی را در سمت راست نگه دارید؛ +- از `pmos` بالای `nmos` استفاده کنید، همراه با گیت‌های مشترک و درین‌های مشترک؛ +- گره خروجی را در محل اتصال درین نگه دارید و آن را با `*-o` علامت‌گذاری کنید؛ +- به جای مختصات استنباطی بصری، از آنکرهای نام‌دار (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) استفاده کنید؛ +- مگر در مواردی که از نظر الکتریکی لازم باشد، از سیم‌های مورب یا تقاطعی خودداری کنید. + +### پیشرفت فعلی و مراحل بعدی + +| مساحت | وضعیت فعلی | حرکت بعدی | +|------|----------------|-----------| +| نمودارهای کلی | خط لوله مبتنی بر مشخصات برای Mermaid, JSON Canvas, Vega-Lite, HTML پیاده‌سازی شده است | پوشش بررسی معنایی را همچنان گسترش دهید | +| شکل‌های قابل ویرایش | مرزهای آرتیفکت `editable-html-svg`, Draw.io XML و Drawnix JSON پیاده‌سازی شده‌اند | تنها پس از اثبات قابلیت ویرایش توسط آزمون‌ها، ابتدا از اصول غنی‌تر استفاده کنید | +| پشتیبانی CLI | `npm run diagram:export-artifact` فایل‌های قابل ویرایش HTML/SVG, Draw.io و Drawnix را از یک `DiagramSpec` صادر می‌کند | افزودن تجهیزات دودساز مخصوص هدف هنگام ارسال هدف‌های جدید | +| circuitikz | `CircuitSpec -> circuitikz` پروتوتایپ صادرات منابع مشترک، معکوس‌کننده CMOS، `cmos-buffer` / `cmos-buffer-v1`، `cmos-transmission-gate` / `cmos-transmission-gate-v1`، `cmos-nand2` / `cmos-nand2-v1` و `cmos-nor2` / `cmos-nor2-v1` الگوهای طلایی، پروژه‌های `layoutHints.inputSide` و `layoutHints.outputSide` را به‌صورت قطعی در محل‌های ورودی/خروجی قرار می‌دهد بدون تغییر ساختار شبکه، از تغییرات ناخواسته ساختار شبکه از طریق `--topology-reference` جلوگیری می‌کند، گزارش‌های تعمیر حفظ‌کننده ساختار شبکه را از طریق `--repair-brief-output` و الگو `notemd.circuitikz.repair-brief.v1` ارسال می‌کند، شامل محتوای ساختاریافته `repairPrompt` برای انتقال همراه با `diagnosticFocus`، `acceptanceCriteria` و نقش `topology-preserving-circuitikz-repair` است، گزینه‌های تعمیر را از طریق `--repair-brief` بررسی می‌کند، شواهد درباره دروازه‌ها را از طریق الگو `notemd.circuitikz.repair-acceptance.v1` همراه با `readyForVisualAcceptance` و `remainingChecks` برمی‌گرداند، آن شواهد را از طریق `--repair-acceptance-output` ذخیره می‌کند، لاگ‌های کامپایل را تجزیه می‌کند، می‌تواند رندررهای محلی صریح را به‌همراه `--expected-artifact`، SVG `--expected-svg-text` اجرا کند، بررسی فراداده‌های قابل دسترسی از طریق `aria-label`، `<title>` و `<desc>`، حذف عناصر پنهان/شفاف SVG، طبقه‌بندی `render-svg-text-path-only` / `pathOnlyGlyphUseCount` برای برچسب‌های فقط مسیر، بررسی قرارگیری گلیف‌های فقط مسیر برای `<use href="#...">`، تشخیص تداخل گلیف‌های فقط مسیر از طریق `render-svg-path-glyph-overlap`، مدیریت نقطه جریان برای مسیرهای بسته برای `Z/z`، مرزهای دقیق قوس A/a برای انتهای قوس، مرزهای دقیق منحنی‌های Bezier برای انتهای منحنی‌های C/S/Q/T، بررسی مرزهای SVG مبتنی بر ضخامت خط و تداخل برچسب‌ها، بررسی‌های هندسی رسم `polyline` / `polygon`، هندسه برچسب‌های موقعیت‌یافته `tspan`، هندسه متن موقعیت‌یافته آگاه از `text-anchor`، هندسه آگاه از تبدیل برای SVG در محدوده کانواس/تداخل متن و دودساز برچسب در برابر رسم از طریق `render-svg-label-overlap`، و بررسی‌های سکرینشات PNG غیرخالی/بریده/پیش‌زمینه متراکم، شامل پالت رنگی با آلفا، نمونه‌های شفاف تراز سیاه و سفید/RGB tRNS، و راهنمایی‌های خاص فرمت برای PNGهای Adam7 متقاطع و خطاهای عمق بیتی شماره‌گذاری‌شده، از طریق `foregroundBounds`، `foregroundDensity`، `render-png-content-clipped` و `render-png-foreground-dense` بدون تجزیه شل، شامل تجهیزات دودساز نگهدارنده کلی از طریق `npm run diagram:smoke-circuitikz`، ثبت پیکربندی رندررهای ناپدید شده از طریق `rendererAvailability.status: "missing-configuration"` و `compile-executable-invalid`، و دارای تشخیصات پیش‌نمایش عمومی، شمارش خلاصه تشخیصات، ورودی‌های تاریخچه آگاه از تشخیصات، و راهکار جایگزین فقط مبتنی بر منبع از طریق `RenderArtifact.diagnostics` و پنل پیش‌نمایش | افزودن تشخیص برچسب در سطح OCR برای متن بصری فقط مسیر، بررسی دقیق تداخل در سطح پیکسل، پوشش گسترده‌تر SVG مسیر در صورت نیاز، نصب/یافتن خودکار رندرر تنها زمانی که بتواند اختیاری باقی بماند، و اجرای خودکار تعمیر حفظ‌کننده ساختار شبکه | +| اینتگراسیون TikZJax | میزبان رندر کاندید برای نمایش در سمت Obsidian | آن را اختیاری نگه دارید؛ TikZJax را به یک وابستگی زمان اجرای پلاگین اجباری تبدیل نکنید | + +## پیکربندی + +| تنظیمات | پیش‌فرض | اثر | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | تغییر بین الگوی اولویت‌دار و الگوی قدیمی Mermaid | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` فقط برابر با Mermaid است؛ `'best-fit'` برابر با هدف‌های بومی + راهکارهای جایگزین است | +| `preferredDiagramIntent` | `undefined` (خودکار) | بازنویسی خودکار تشخیص قصد | +| `summarizeToMermaidLanguage` | `'en'` | زبان هدف برای برچسب‌های نمودار | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | LLM برای هر وظیفه برای تولید نمودار | +| `autoMermaidFixAfterGenerate` | (از ثابت‌ها) | اجرای خودکار ابزار تعمیر قدیمی بر روی خروجی Mermaid | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | تقویت منبع با دانش خزانه محلی | + +### تقویت دانش محلی + +هنگام فعال‌سازی، Notemd قطعات مرتبط بازمی‌گیرد از پایگاه دانش محلی خزانه شما (مبتنی بر MiniSearch) و آن‌ها را در ابتدای مارکد منبع قرار می‌دهد. یادداشت تقویت‌کننده می‌گوید: "فقط به عنوان منبع کمکی؛ ساختار اصلی را وفادار به یادداشت منبع نگه دارید." + +### حالت‌های سازگاری + +- **`legacy-mermaid`**: تمام قصدها به Mermaid هدایت می‌شوند. قصدهای غیر-Mermaid (canvasMap، dataChart) مجبور به استفاده از `flowchart` یا `mindmap` می‌شوند. هیچ زنجیره جایگزینی وجود ندارد. +- **`best-fit`**: هر قصد به هدف بومی خود هدایت می‌شود. اگر هدف اصلی شکست بخورد، زنجیره جایگزینی را طی می‌کند (مثلاً Vega-Lite → Mermaid → HTML). + +## پیش‌نمایش و صادرات + +| عملیات | روش | +|--------|--------| +| صادرات با SVG | سازنده `mermaid.render()` / `vega.View.toSVG()` / SVG برای Canvas | +| صادرات به PNG | SVG → تصویر → Canvas (نسبت پیکسل دستگاه ۱x-۳x) → ArrayBuffer PNG | +| ذخیره منبع | محتوای آثار خام با پسوند مخصوص هدف ذخیره می‌شود | +| پیش‌نمایش فقط منبع | آثار غیر‑inline همراه با محتوای منبع به صورت کد و همراه با تشخیصات نمایش داده می‌شوند، بدون رندرینگ iframe | +| بازرسی معنایی | Mermaid، JSON Canvas، Vega-Lite و HTML/SVG قابل ویرایش که توسط `scripts/diagram-semantic-verification.js` بررسی می‌شود | + +**کش‌سازی**: RenderCache از کلید مشخص JSON مربوط به `{spec, target, theme}` استفاده می‌کند. حذف تکرار در حین پردازش، پردازش‌های مکرر را جلوگیری می‌کند. + +## نکات + +- **با حالت `best-fit` شروع کنید** — این حالت بهترین خروجی بصری را برای هر نوع قصد فراهم می‌کند +- **برای نمودارهای پیچیده از مدل‌های قدرتمند استفاده کنید** — نمودارهای جریان و نمودارهای ER از GPT-4o یا Claude سود می‌برند +- **دانش محلی را برای نمودارهای تخصصی فعال کنید** — زمینه مرتبط در vault دقت را بهبود می‌بخشد +- **`autoMermaidFixAfterGenerate` را تنظیم کنید** — بدون آن، خطاهای نحوی Mermaid رایج هستند +- **ابزار اصلاح سنتی جامع است** — اگر پیش‌نمایش Mermaid شکست بخورد، اجرای دستی دستور اصلاح اغلب مشکل را برطرف می‌کند + +--- + +## گام‌های بعدی + +- 🔗 [روابط ویکی](./wiki-links) — نحوه پیوند دادن مفاهیم به صورت درون‌متنی +- 📝 [یادداشت‌های مفهوم](./concept-notes) — استخراج مفاهیم برای مواد منبع نمودارها +- 🔍 [تحقیقات](./research) — تقویت نمودارها با داده‌های گرفته شده از وب diff --git a/website/i18n/fa/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/fa/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..adbe83e7 --- /dev/null +++ b/website/i18n/fa/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "تحقیق و جستجوی وب" +description: "یکپارچه‌سازی جستجوی وب در یادداشت‌های شما" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# تحقیق و جستجوی وب + +<TLDR> +**Notemd جستجوی وب را انجام داده و نتایج خلاصه‌شده با LLM را مستقیماً در یادداشت‌های شما قرار می‌دهد.** Tavily API پشته جستجوی اصلی است؛ DuckDuckGo به عنوان گزینه جایگزین بدون پیکربندی عمل می‌کند. نتایج با منابع مرجع خلاصه شده و زیر یک عنوان `## Research` اضافه می‌شوند. این قابلیت حمایت از تحقیق در یک یادداشت، تحقیق در چندین پوشه به صورت دسته‌ای و انتخاب مدل برای مرحله خلاصه‌سازی بر حسب کار را فراهم می‌کند. + +این بخشی از [Obsidian راهنمای مدیریت دانش هوش مصنوعی](/docs/pillar-ai-knowledge) است. +</TLDR> + +## مرور کلی + +تحقیق یکی از قدرتمندترین یکپارچه‌سازی‌های Notemd است: این ویژگی حلقه بین خواندن، جستجو و نوشتن را بسته می‌کند. به جای رفتن به مرورگر برای جستجوی یک اصطلاح ناآشنا، کافی است آن را برجسته کنید و اجازه دهید Notemd جستجو کرده، خلاصه‌سازی کند و یافته‌ها را – همگی درون صندوق امنیتی شما – اضافه کند. + +این فرآیند کاملاً قابل پیکربندی است. شما می‌توانید ارائه‌دهنده جستجو، LLMی که خلاصه را می‌نویسد و اینکه آیا نتایج باید به یادداشت فعال اضافه شوند یا در فایل‌های جداگانه ذخیره شوند را انتخاب کنید. حالت دسته‌ای به شما امکان می‌دهد تا با یک کلیک بر روی تمام یادداشت‌های یک پوشه تحقیق کنید. + +## نحوه کارکرد + +### خط لوله جستجو سپس خلاصه‌سازی + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **استخراج پرس‌وجو** -- Notemd عبارات جستجو را از انتخاب شما یا عنوان یادداشت استخراج می‌کند. +2. **جستجوی وب** -- ابتدا از Tavily استفاده می‌شود. اگر کلید API پیکربندی نشده باشد، DuckDuckGo به طور خودکار استفاده می‌شود (نیازی به کلید نیست). +3. **خلاصه‌سازی توسط LLM** -- نتایج خام جستجو به LLM پیکربندی‌شده ارسال شده و آن مقداری خلاصه مختصر با منابع مرجع درون‌متنی تولید می‌کند. +4. **اضافه کردن** -- خلاصه فرمت‌شده زیر یک عنوان `## Research` در یادداشت فعال اضافه می‌شود. + +### Tavily در مقابل DuckDuckGo + +| جنبه | Tavily | DuckDuckGo | +|--------|--------|------------| +| کلید API | ضروری (نسخه رایگان موجود است) | ضروری نیست | +| کیفیت نتیجه | بالاتر (ساخته‌شده به‌طور ویژه برای هوش مصنوعی) | مناسب برای پرس‌وجوهای عمومی | +| محدودیت‌های نرخ | سطح رایگان فراوان | تحت کنترل سرعت ارسال | +| پیکربندی | `tavilyApiKey` در تنظیمات | بدون پیکربندی – بازگشت خودکار | + +### تحقیق در پوشه‌های دسته‌ای + +روی یک پوشه راست‌کلیک کرده و **"Notemd: پوشه تحقیق"** را انتخاب کنید. هر فایل `.md` در آن پوشه به‌ترتیب (یا به‌صورت موازی تا حد همزمانی پیکربندی‌شده) پردازش می‌شود. هر یادداشت خلاصه تحقیق مخصوص به خود را دریافت می‌کند. + +## پیکربندی + +| تنظیمات | پیش‌فرض | اثر | +|---------|---------|--------| +| `tavilyApiKey` | `''` | کلید Tavily API. هنگامی که خالی باشد، فقط از DuckDuckGo استفاده می‌شود. | +| `researchProvider` / `researchModel` | DeepSeek | LLM برای هر وظیفه برای خلاصه‌سازی نتایج جستجو | +| `maxResearchContentTokens` | `4000` | بودجه توکن برای محتوای ارسالی به LLM. مقدار اضافی حذف می‌شود. | +| `researchAppendToNote` | `true` | خلاصه را به یادداشت منبع اضافه کنید. اگر مقدار آن false باشد، فایل جداگانه‌ای ایجاد می‌شود. | +| `researchLanguage` | `'en'` | زبان خروجی برای تحقیقات خلاصه‌شده | + +### توصیه مدل برای هر وظیفه + +تحقیقات از مدلی سود می‌برند که بتواند محتوای چندزبانه را پردازش کرده و متن‌های با ساختار مناسب تولید نماید. در نظر بگیرید: + +- **DeepSeek** -- استاندارد، ارزان، کیفیت خوب +- **GPT-4o** -- خلاصه‌سازی با کیفیت بالاتر، هزینه بالاتر +- **Gemini Flash** -- سریع و ارزان، مناسب برای پرسش‌های ساده + +## مثال + +شما در حال مطالعه یک مقاله درباره *مکانیسم‌های توجه ترانسفورمر* هستید و با یک اصطلاح ناآشنا روبرو می‌شوید: *relative positional encoding*. به جای اینکه Obsidian را رها کنید: + +1. **"relative positional encoding"** را برجسته کنید +2. راست‌کلیک کنید --> **"Notemd: تحقیق و خلاصه‌سازی"** +3. Notemd در اینترنت جستجو می‌کند، بهترین نتایج را خلاصه کرده و آن‌ها را اضافه می‌کند: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +خلاصه اکنون بخشی از مخزن شماست، قابل جستجو، قابل لینک و در حالت آفلاین قابل دسترسی است. + +## نکات + +- **برای بهترین نتایج یک کلید Tavily تعیین کنید** -- حتی سطح رایگان نیز ربط بهتری نسبت به DuckDuckGo خام ارائه می‌دهد. +- **از یک مدل خلاصه‌سازی قوی استفاده کنید** -- مدل‌های ارزان ممکن است محتوای فنی ظریف را ساده کنند. +- **پس از مطالعه اولیه، تحقیقات را به صورت دسته‌ای انجام دهید** تا بتوانید همزمان شکاف‌های موجود در چندین یادداشت را پر کنید. +- **خلاصه‌های اضافه‌شده را بررسی کنید** -- LLMها ممکن است جزئیات منبع را تخیل کنند. ادعاهای کلیدی را بررسی نمایید. + +--- + +## گام‌های بعدی + +- [Concept Notes](./concept-notes) -- استخراج و ذخیره کردن اصطلاحات کلیدی از نتایج تحقیقات +- [Wiki-Links](./wiki-links) -- ایجاد لینک بین مفاهیم حاصل از تحقیقات در سراسر مخزن شما +- [Translation](./translation) -- ترجمه خلاصه‌های تحقیقات به زبان دیگر +- [ارائه‌دهندگان](/docs/providers/overview) -- پیکربندی مدل مورد استفاده برای خلاصه‌سازی diff --git a/website/i18n/fa/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/fa/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..5940376f --- /dev/null +++ b/website/i18n/fa/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "ترجمه" +description: "ترجمه یادداشت‌ها و بخش‌های انتخاب‌شده" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# ترجمه + +<TLDR> +**Notemd متن را بین ۲۱ زبان و بیشتر با استفاده از ترجمه مبتنی بر LLM ترجمه می‌کند.** این ابزار از ترجمه بخش واحد، ترجمه کل یادداشت، و ترجمه پوشه‌های گروهی پشتیبانی می‌کند. هر کار ترجمه می‌تواند از طریق تنظیمات مربوط به خود، از یک ارائه‌دهنده و مدل مشخص استفاده کند. زبان خروجی را می‌توان مستقل از زبان UI تنظیم کرد. نتایج بسته به ترجیح شما یا در پایین متن اصلی اضافه می‌شوند یا در یک فایل جدید ذخیره می‌گردند. + +این بخشی از [Obsidian راهنمای مدیریت دانش هوش مصنوعی](/docs/pillar-ai-knowledge) است. +</TLDR> + +## مرور کلی + +ترجمه در Notemd صرفاً جستجوی در فرهنگ لغت نیست – بلکه ترجمه‌ای مبتنی بر LLM و آگاه از زمینه است. مدل کل پاراگراف یا یادداشت را می‌بیند و لحن، اصطلاحات حوزه‌ای و ساختار جملات را حفظ می‌کند. این روش نتایج با کیفیت بالاتری نسبت به سرویس‌های ترجمه کلمه به کلمه، به‌ویژه برای متون فنی، آکادمیک و خلاقانه، ارائه می‌دهد. + +این ویژگی سه حوزه را پشتیبانی می‌کند: بخش انتخاب‌شده، یادداشت فعال، و کل پوشه. با ترکیب انتخاب مدل برای هر کار، می‌توانید از یک مدل سریع (Gemini Flash) برای ترجمه‌های غیررسمی و یک مدل قدرتمند (Claude Sonnet) برای محتوای نیازمند ظرافت استفاده کنید – بدون اینکه ارائه‌دهنده کلی خود را تغییر دهید. + +## نحوه کارکرد + +### دستور ترجمه + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **تشخیص منبع** -- LLM زبان منبع را از محتوا استنباط می‌کند. نیازی به مشخص کردن دستی آن نیست. +2. **ساخت پرامپت** -- Notemd پرامپتی را تهیه می‌کند که شامل زبان هدف، سرنخ اختیاری حوزه، و محتوایی است که باید ترجمه شود. +3. **ترجمه LLM** -- `translateProvider` / `translateModel` پیکربندی‌شده درخواست را پردازش می‌کند. مدل فرمت مارکداون، لینک‌های ویکی و بلوک‌های کد را حفظ می‌کند. +4. **خروجی** -- متن ترجمه‌شده یا در پایین متن اصلی اضافه می‌شود یا در یک فایل جدید در مخزن ذخیره می‌گردد. + +### جفت‌های زبانی + +Notemd از هر جفت زبانی که LLM پشتیبانی می‌کند، پشتیبانی می‌کند. جفت‌های رایج عبارتند از: + +| منبع | هدف | کیفیت معمولی | +|--------|--------|----------------| +| انگلیسی | چینی (ساده) | عالی | +| چینی | انگلیسی | عالی | +| انگلیسی | ژاپنی | خیلی خوب | +| انگلیسی | آلمانی / فرانسوی / اسپانیایی | خیلی خوب | +| هر زبانی که پشتیبانی می‌شود | هر زبانی که پشتیبانی می‌شود | بسته به مدل | + +تنظیم `translateLanguage` کنترل‌کننده **زبان خروجی** است. زبان منبع به‌طور خودکار تشخیص داده می‌شود. + +### انتخاب مدل بر حسب وظیفه + +کیفیت ترجمه بسته به مدل به‌طور قابل‌توجهی متفاوت است. Notemd به شما امکان می‌دهد مدل مخصوصی فقط برای ترجمه اختصاص دهید: + +| مدل | سرعت | کیفیت | هزینه | مناسب برای | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | سریع | خوب | پایین | کاربرد غیرحرفه‌ای، حجم بالا | +| `gpt-4o-mini` | سریع | خوب | پایین | جستجوهای سریع | +| `deepseek-chat` | متوسط | خوب | بسیار پایین | برنامه‌های چندزبانه با بودجه کم | +| `claude-3-5-sonnet` | متوسط | عالی | متوسط | فنی / آکادمیک | +| `gpt-4o` | متوسط | عالی | متوسط | نثر حساس به ظرافت‌ها | + +### ترجمه پوشه دسته‌ای + +روی یک پوشه راست‌کلیک کرده و گزینه **"Notemd: Translate folder"** را انتخاب کنید تا تمام یادداشت‌های موجود در آن پوشه ترجمه شوند. هر فایل به‌طور مستقل پردازش می‌شود. تنظیم همزمانی کنترل می‌کند که چند فایل به‌طور همزمان ترجمه شوند. + +## پیکربندی + +| تنظیمات | پیش‌فرض | اثر | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | ارائه‌دهنده ویژه برای وظایف ترجمه | +| `translateLanguage` | `'en'` | زبان خروجی مورد نظر | +| `translationAppendToNote` | `true` | متن ترجمه‌شده را در زیر متن اصلی اضافه کنید. اگر مقدار آن false باشد، فایل جدیدی ایجاد می‌شود. | +| `batchConcurrency` | `3` | تعداد فایل‌هایی که در حین ترجمه دسته‌ای به‌طور همزمان پردازش می‌شوند | + +## مثال + +شما در حال مطالعه یک یادداشت تحقیقاتی به زبان چینی هستید و می‌خواهید نسخه‌ای به زبان انگلیسی داشته باشید: + +1. یادداشت را باز کنید +2. روی آن راست‌کلیک کرده و گزینه **"Notemd: Translate current file"** را انتخاب کنید +3. Notemd زبان چینی را تشخیص داده، آن را به زبان هدف تنظیم‌شده شما (انگلیسی) ترجمه کرده و متن ترجمه‌شده را اضافه می‌کند: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +متن چینی اصلی بدون تغییر در بالای متن ترجمه قرار می‌گیرد. عنوان `## Translation` هر دو نسخه را در یک فایل نگه می‌دارد تا به‌راحتی قابل مراجعه باشند. + +## نکات + +- **برای ترجمه حجیم از Gemini Flash استفاده کنید** -- این گزینه سریع‌ترین و ارزان‌ترین روش برای ترجمه دسته‌ای پوشه‌های بزرگ است. +- **حفظ لینک‌های ویکی** -- دستور Notemd به LLM می‌گوید که `[[wiki-links]]` را در ترجمه دست‌نخورده نگه دارد. پس از ترجمه بررسی کنید، زیرا برخی مدل‌ها گاهی آن‌ها را باز می‌کنند. +- **زبان خروجی را به‌صورت صریح تنظیم کنید** -- تشخیص خودکار برای منبع کار می‌کند، اما همیشه `translateLanguage` را پیکربندی کنید تا درباره زبان هدف سردرگمی ایجاد نشود. +- **ترجمه دسته‌جمعی یادداشت‌های مفهومی** -- اگر پوشه مفاهیم شما به یک زبان است و نیاز به آن به زبان دیگری دارید، ترجمه در سطح پوشه آن را در یک مرحله انجام می‌دهد. + +--- + +## گام‌های بعدی + +- [تحقیق](./research) -- در هر زبانی جستجو و خلاصه‌سازی کنید، سپس نتایج را ترجمه کنید +- [فرآیندها](./workflows) -- ترجمه زنجیره‌ای همراه با لینک‌گذاری ویکی یا استخراج مفاهیم +- [پردازش دسته‌جمعی](/docs/advanced/batch-processing) -- رفتار همزمانی و پوشش فایل‌ها برای عملیات پوشه‌ها +- [LLM ارائه‌دهندگان](/docs/providers/overview) -- بهترین مدل را برای جفت زبان خود انتخاب کنید diff --git a/website/i18n/fa/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/fa/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..ab43877e --- /dev/null +++ b/website/i18n/fa/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "وبلاگ-لینک‌ها" +description: "تولید خودکار لینک‌های وبلاگ برای مفاهیم کلیدی" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# وبلاگ-لینک‌ها + +<TLDR> +**Notemd به‌طور خودکار `[[wiki-links]]` را به مفاهیم کلیدی در یادداشت‌های شما اضافه می‌کند.** LLM محتوای شما را می‌خواند، اصطلاحات مهم را در زمینه تشخیص می‌دهد و لینک‌های وبلاگ به سبک Obsidian را در هر بار ظهور آن‌ها قرار می‌دهد. به‌طور اختیاری فایل‌های یادداشت مفهومی با لینک‌های بازگشتی ایجاد می‌کند. از سرکوب مترادفات، حفظ یکپارچگی لینک‌ها در هنگام تغییر نام یا حذف، و حالت استخراج خالص (بدون تغییر فایل) پشتیبانی می‌کند. برخلاف Auto Link که فقط عناوین یادداشت‌های موجود را مطابقت می‌دهد، Notemd از هوش مصنوعی برای شناسایی مفاهیم جدید و ایجاد یادداشت‌های متناظر استفاده می‌کند. این بخشی از [Obsidian راهنمای مدیریت دانش هوش مصنوعی](/docs/pillar-ai-knowledge) است. +</TLDR> + +## مرور کلی + +لینک‌دهی وبلاگی ویژگی اصلی Notemd است. این ویژگی متن ساده را به یک گراف دانش متصل تبدیل می‌کند از طریق: + +1. **تحلیل یادداشت شما** با استفاده از LLM +2. **شناسایی مفاهیم کلیدی** (اصطلاحات، افراد، روش‌ها، نظریه‌ها) +3. **قرار دادن `[[wiki-links]]`** در هر بار ظهور آن‌ها +4. **ایجاد یادداشت‌های مفهومی** (اختیاری) با لینک‌های بازگشتی + +## نحوه کارکرد + +### فرآیند + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### مثال + +**قبل از:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**پس از:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## کاربرد + +### ساده: افزودن لینک به یادداشت فعلی + +1. باز کردن یک یادداشت +2. راست‌کلیک در ویرایشگر → **"فرآیند فایل (افزودن لینک)"** +3. چند ثانیه صبر کنید +4. مفاهیم اکنون به هم متصل شده‌اند! + +### دسته‌بندی: پردازش چندین یادداشت + +1. کلیک راست بر روی یک پوشه در File Explorer +2. گزینه **"Notemd: Process folder (add links)"** را انتخاب کنید +3. پیکربندی: + - همزمانی (تعداد فایل‌های پاراللیل) + - جایگزینی لینک‌های موجود (بله/خیر) +4. کلیک بر روی **پردازش** + +### انتخابی: لینک کردن متن خاص + +1. برجسته کردن متن برای پردازش +2. کلیک راست → **"پردازش انتخاب‌شده (افزودن لینک‌ها)"** +3. فقط بخش برجسته‌شده تحلیل می‌شود + +## Notemd در مقایسه با Auto Link + +Obsidian دو رویکرد برای لینک‌گذاری خودکار ویکی دارد: + +| | **Auto Link** | **Notemd** | +|--|---------------|-------------| +| منبع لینک | عناوین یادداشت‌های موجود در Vault | مفاهیم شناسایی‌شده توسط LLM در محتوا | +| می‌توان مفاهیم جدید را پیوند داد | خیر — عنوان باید از قبل وجود داشته باشد | بله — هوش مصنوعی مفاهیم را شناسایی کرده و یادداشت‌ها را ایجاد می‌کند | +| مدیریت مترادفات | خیر | بله — سرکوب مترادفات | +| ایجاد یادداشت مفهوم | خیر | بله — همراه با پیوندهای معکوس و حذف تکرارها | +| پردازش دسته‌ای | خیر (فایل تکی) | بله (سطح پوشه) | +| مسیریابی مدل بر اساس هر وظیفه | خیر | بله | + +**Auto Link** بر اساس مطابقت عنوان عمل می‌کند: اگر یادداشتی با نام "Machine Learning" وجود داشته باشد، ظهورهای آن را در `[[Machine Learning]]` قرار می‌دهد. اگر چنین یادداشتی وجود نداشته باشد، هیچ اتفاقی نمی‌افتد. + +**Notemd** توسط هوش مصنوعی اداره می‌شود: LLM محتوای شما را می‌خواند، زمینه را درک می‌کند، مفاهیمی را که باید پیوند داده شوند شناسایی می‌کند — حتی اگر هنوز یادداشتی وجود نداشته باشد — و هم پیوند و هم یادداشت مفهوم را ایجاد می‌کند. + +## ویژگی‌ها + +### سرکوب مترادفات + +**مشکل:** "transformer"، "transformers"، "Transformer architecture" → ۳ مفهوم جداگانه + +**راه‌حل:** Notemd تکرارهای نزدیک را تشخیص داده و شکل استاندارد را استفاده می‌کند. + +**پیکربندی:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### صحت لینک‌ها + +**هنگام تغییر نام یک یادداشت مفهومی:** +- تمام لینک‌های ویکی به‌طور خودکار به‌روزرسانی می‌شوند (Obsidian ویژگی اصلی) +- لینک‌های باز همانند قبل باقی می‌مانند + +**هنگام حذف یک یادداشت مفهومی:** +- لینک‌ها باقی می‌مانند اما به‌عنوان "ارجاعات بدون لینک" نمایش داده می‌شوند +- می‌توانید آن را از هر جایی که وجود دارد دوباره ایجاد کنید + +### حالت استخراج خالص + +**استخراج مفاهیم بدون تغییر در فایل اصلی:** + +1. کلیک راست → **"استخراج مفاهیم (بدون لینک‌سازی)"** +2. یادداشت‌های مفهومی ایجاد می‌شوند +3. فایل اصلی دست‌نخورده باقی می‌ماند + +کاربرد: پردازش محتوای فقط خواندنی یا پیش‌نویس‌های نهایی. + +## تولید یادداشت مفهومی + +### ایجاد خودکار + +**هنگام فعال بودن (پیش‌فرض)، Notemd ایجاد می‌کند:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### پیکربندی + +**پوشه خروجی:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**ساختار سلسله‌مراتبی:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**الگو:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## گزینه‌های پیشرفته + +### پنجره زمینه + +**مقدار متن اطرافی که باید ارسال شود:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +مقدار بیشتر = دقت بهتر، هزینه بالاتر. + +### حداقل تکرارها + +**فقط مفاهیمی را لینک کنید که چندین بار ظاهر می‌شوند:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +به ۲ یا ۳ تنظیم کنید تا روی موضوعات تکراری تمرکز شود. + +### الگوهای حذف شده + +**کلمات خاصی را نادیده بگیرید:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +جلوگیری از لینک کردن بیش از حد به اصطلاحات عمومی. + +### پیشنهادهای سفارشی + +**دستورالعمل‌های پیش‌فرض LLM را بازنویسی کنید:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +برای نیازهای خاص حوزه، تغییر دهید (مثلاً "روی اصطلاحات پزشکی تمرکز کنید"). + +## نکات و بهترین روش‌ها + +### ✅ انجام دهید + +- **یادداشت‌های فرآوری‌شده با بیش از ۱۰۰ کلمه** — یادداشت‌های کوتاه مفاهیم کمتری ارائه می‌دهند +- **از مدل‌های قدرتمند** برای شناسایی بهتر مفاهیم استفاده کنید (GPT-4o، Claude) +- **قبل از پذیرش بررسی کنید** — مطمئن شوید لینک‌های پیشنهادی منطقی هستند +- **به صورت تدریجی ساختار را توسعه دهید** — ۵ تا ۱۰ یادداشت را فرآوری کنید، نمودار را بررسی کرده و تنظیمات را اصلاح کنید + +### ❌ انجام ندهید + +- **لینک‌های زیاد ایجاد کنید** — هر اسم نیازی به لینک ندارد +- **پیش‌نویس‌ها را بارها فرآوری کنید** — مفاهیم ممکن است تغییر کنند، تا زمانی که پایدار شوند صبر کنید +- **سینونیم‌ها را نادیده بگیرید** — قابلیت سرکوب را فعال کنید تا از تفاوت «ML» و «Machine Learning» جلوگیری شود + +## عملکرد + +### سرعت + +| اندازه یادداشت | GPT-4o-mini | Claude Sonnet | Ollama (محلی) | +|-----------|-------------|---------------|----------------| +| ۵۰۰ کلمه | ۲-۳ ثانیه | ۳-۵ ثانیه | ۵-۱۰ ثانیه | +| ۲۰۰۰ کلمه | ۵-۸ ثانیه | ۱۰-۱۵ ثانیه | ۲۰-۴۰ ثانیه | +| ۵۰۰۰+ کلمه | بلوکی (چندین فراخوانی) | بلوکی | بلوکی | + +### تخمین هزینه + +**مثال: یادداشت ۱۰۰۰ کلمه‌ای با GPT-4o-mini** +- ورودی: حدود ۱۵۰۰ توکن +- خروجی: حدود ۲۰۰ توکن +- هزینه: حدود ۰.۰۰۱ دلار + +**پردازش دسته‌ای ۱۰۰ یادداشت:** حدود $0.10 + +## رفع اشکالات + +### هیچ لینکی اضافه نشده است + +**بررسی کنید:** +1. LLM فراخوانی موفقیت‌آمیز بود (تنظیمات → تشخیصات) +2. یادداشت حاوی محتوای کافی است (>50 کلمه) +3. مفاهیم فنی/خاص هستند (فقط ضمایر نیستند) + +**امتحان کنید:** +- از یک مدل قدرتمندتر استفاده کنید +- پنجره زمینه را افزایش دهید +- صحت کلید API را بررسی کنید + +### تعداد لینک‌ها بیش از حد است + +**راه‌حل‌ها:** +1. تعداد حداقل تکرارها را افزایش دهید (۲ یا ۳) +2. کلمات رایج را به لیست مستثنی‌ها اضافه کنید +3. از یک مدل کمتر پرقدرت استفاده کنید + +### مفاهیم اشتباهی به هم متصل شده‌اند + +**رفع اشکالات:** +1. استفاده از پرامپت سفارشی برای تخصص دامنه +2. فعال‌سازی سرکوب مترادفات +3. بررسی دستی و جداسازی لینک‌ها + +### شکستن لینک‌ها پس از تغییر نام + +**این رفتار Obsidian، عادی است.** + +برای به‌روزرسانی تمام لینک‌ها: +1. تغییر نام یادداشت مفهومی +2. Obsidian به‌طور خودکار `[[old]]` را به `[[new]]` به‌روزرسانی می‌کند + +--- + +## گام‌های بعدی + +- 📖 [یادداشت‌های مفهومی](./concept-notes) — بررسی عمیق درباره تولید یادداشت‌های مفهومی +- 🔍 [یکپارچه‌سازی تحقیقات](./research) — ترکیب لینک‌دهی با تحقیقات وب +- 🎨 [نمودارها](./diagrams) — نمایش گراف دانش خود diff --git a/website/i18n/fa/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/fa/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..38ecc0d4 --- /dev/null +++ b/website/i18n/fa/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "فرآیندهای کاری" +description: "زنجیره‌سازی چندین وظیفه با دکمه‌های یک‌کلیک" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# فرآیندهای کاری + +<TLDR> +**Notemd فرآیندهای کاری، چندین وظیفه را در یک عملیات یک‌کلیکی زنجیره‌ای می‌کنند.** می‌توانید توالی‌هایی مانند `add-links > extract-concepts > research > diagram` را با استفاده از یک DSL ساده تعریف کنید. فرآیندهای کاری به صورت دکمه‌هایی در نوار کناری ظاهر می‌شوند که کل زنجیره را بر روی یادداشت یا پوشه فعلی اجرا می‌کنند. این ابزار با فرآیندهای کاری از پیش تعریف‌شده ارائه می‌شود؛ شما می‌توانید فرآیندهای کاری سفارشی را در تنظیمات ایجاد کنید. هر مرحله از پیکربندی مدل مخصوص خود برای آن وظیفه استفاده می‌کند. + +این بخشی از [Obsidian راهنمای مدیریت دانش هوش مصنوعی](/docs/pillar-ai-knowledge) است. +</TLDR> + +## مرور کلی + +یک فرآیند کاری، مشکلات ناشی از اجرای وظایف یکی پس از دیگری را از بین می‌برد. به جای کلیک راست چهار بار برای افزودن لینک، استخراج مفاهیم، جستجوی اصطلاحات ناآشنا و تولید نمودار، کافی است روی یک دکمه در نوار کناری کلیک کنید تا کل زنجیره اجرا شود. Notemd مسئولیت ترتیب‌بندی، انتقال خطاها و گزارش پیشرفت را بر عهده دارد. + +فرآیندهای کاری در یک DSL سبک (زبان مخصوص حوزه) تعریف می‌شوند. آن‌ها در تنظیمات قرار دارند، به صورت دکمه‌های قابل کلیک در نوار کناری Obsidian ظاهر می‌شوند و می‌توان آن‌ها را هم بر روی یادداشت فعلی و هم بر روی یک پوشه کامل اعمال کرد. + +## نحوه کارکرد + +### خط لوله اجرای فرآیندهای کاری + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **تجزیه** -- رشته DSL بر اساس `>` (یا `>`) به یک لیست مرتب از شناسه‌های وظایف تقسیم می‌شود. +2. **رفع** -- هر شناسه به یک دستور داخلی (add-links، extract-concepts، research، translate، diagram و غیره) متصل می‌شود. +3. **اجرا** -- مراحل به ترتیب اجرا می‌شوند. هر مرحله از ارائه‌دهنده و مدل مخصوص آن وظیفه استفاده می‌کند. +4. **مدیریت خطا** -- اگر یک مرحله شکست بخورد، فرآیند کاری یا متوقف می‌شود یا به مرحله بعدی ادامه می‌دهد، بسته به سیاست خطای شما. +5. **تمام شد** -- یک اعلان نوتیفیکیشن نمایش داده می‌شود که موفقیت را گزارش می‌کند یا لیستی از مراحل شکست‌خورده را نشان می‌دهد. + +### فرمت DSL + +فرآیندهای کاری به صورت توالی‌ای از شناسه‌های وظایف که با `>` از هم جدا شده‌اند، تعریف می‌شوند: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**شناسه‌های وظیفه موجود:** + +| شناسه | عملیات | +|------------|--------| +| `process-current-add-links` | افزودن لینک‌های ویکی به یادداشت فعال | +| `extract-concepts-current` | استخراج مفاهیم از یادداشت فعال | +| `research-and-summarize` | تحقیق درباره متن یا عنوان یادداشت انتخاب‌شده | +| `process-current-translate` | ترجمه یادداشت فعال | +| `summarize-to-mermaid` | تولید نمودار از یادداشت فعال | +| `generate-from-title` | تولید محتوا از عنوان یادداشت | +| `extract-original-text` | استخراج متن اصلی (برای OCR/محتوای اسکن‌شده) | + +**گزینه‌های سطح پوشه**: `current` را در نام شناسه با `folder` جایگزین کنید. + +### فرآیندهای کاری از پیش تعریف‌شده در مقابل فرآیندهای کاری سفارشی + +Notemd همراه با فرآیندهای کاری آماده برای الگوهای رایج ارائه می‌شود: + +| فرآیند کاری | زنجیره | کاربرد | +|----------|-------|----------| +| **استخراج یک‌کلیکی** | افزودن لینک‌ها > استخراج مفاهیم > تحقیق | پردازش یک مقاله تحقیقاتی در یک مرحله | +| **خط تولید کامل** | add-links > extract-concepts > research > diagram | استخراج کامل دانش همراه با نمایش گرافیکی | +| **ترجمه + لینک** | translate > add-links | ترجمه سپس ایجاد لینک برای مفاهیم به زبان هدف | + +**فرآیندهای کاری سفارشی** در تنظیمات ایجاد می‌شوند: + +1. باز کردن **Settings** --> **Notemd** --> **Workflows** +2. کلیک بر روی **"Add Workflow"** +3. وارد کردن زنجیره DSL (مثلاً `process-current-add-links>extract-concepts-current`) +4. تعیین نام نمایشی برای آن (مثلاً "Quick Link + Extract") +5. دکمه جدید بلافاصله در نوار کناری ظاهر می‌شود + +## پیکربندی + +| تنظیمات | پیش‌فرض | اثر | +|---------|---------|--------| +| `workflows` | مجموعه از پیش تعریف شده | مجموعه‌ای از تعریف‌های فرآیند کاری (نام + DSL) | +| `workflowContinueOnError` | `true` | در صورت شکست گام فعلی، به مرحله بعدی رفتن | +| `workflowShowProgress` | `true` | نمایش پیام پیشرفت پس از تکمیل هر مرحله | + +### مدل‌های مخصوص هر وظیفه در فرآیندهای کاری + +هر مرحله در یک فرآیند کاری از پیکربندی مدل ویژه خود برای هر وظیفه استفاده می‌کند. نیازی نیست مدل‌ها را مستقیماً در DSL مشخص کنید. ترتیب حل مسئله به این صورت است: + +1. اگر `useMultiModelSettings` وجود داشته باشد، از ارائه‌دهنده/مدل مربوط به هر وظیفه استفاده می‌شود +2. در غیر این صورت، از `activeProvider` جهانی استفاده می‌گردد + +این بدان معناست که `add-links` می‌تواند روی DeepSeek اجرا شود در حالی که `research` روی GPT-4o اجرا می‌شود – همه این‌ها در یک فرآیند کاری واحد انجام می‌گیرد. + +## مثال + +شما به تازگی یک PDF مربوط به مقاله یادگیری ماشین را وارد خزانه خود کرده‌اید و می‌خواهید استخراج کامل دانش انجام شود: + +1. نوت وارد شده را باز کنید +2. روی دکمه سمتی **"Full Pipeline"** کلیک کنید +3. Notemd اجرا می‌شود: + - **مرحله ۱**: افزودن لینک‌های ویکی – `[[attention mechanism]]`، `[[transformer]]` و غیره. + - **مرحله ۲**: استخراج مفاهیم – ایجاد نوت‌های مفهومی در پوشه مفاهیم شما + - **مرحله ۳**: تحقیق – خلاصه کردن منابع وب برای کلمات کلیدی + - **مرحله ۴**: نمودارسازی – تولید یک نقشه ذهنی Mermaid از ساختار مقاله +4. پس از حدود ۳۰ ثانیه، نوت شما دارای لینک‌ها خواهد بود، نوت‌های مفهومی ایجاد شده‌اند، تحقیقات اضافه شده‌اند و یک فایل نمودار ذخیره می‌شود + +همه این‌ها با یک کلیک انجام می‌گیرد. + +## نکات + +- **از فرآیندهای کاری از پیش تعریف‌شده شروع کنید** – آن‌ها رایج‌ترین الگوها را پوشش می‌دهند. تنها زمانی سفارشی‌سازی کنید که به ترتیب متفاوتی نیاز داشته باشید. +- **`workflowContinueOnError` را فعال کنید** – شکست در یک مرحله نمودارسازی نباید کل پایپ‌لاین را متوقف کند. +- **از فرآیندهای کاری پوشه‌ها** برای پردازش انبوه استفاده کنید -- روی یک پوشه کلیک راست کنید، یک فرآیند کاری انتخاب کنید و تمام یادداشت‌ها پردازش خواهند شد. +- **نام فرآیندهای کاری را واضح بگذارید** -- فضای نوار کناری محدود است. از نام‌های کوتاه و مبتنی بر عمل مانند "Quick Extract" یا "Translate + Link" استفاده کنید. + +--- + +## گام‌های بعدی + +- [Research](./research) -- قبل از افزودن آن به فرآیندهای کاری، نحوه عملکرد مرحله تحقیق را درک کنید +- [Wiki-Links](./wiki-links) -- ویژگی اصلی پیوند‌زنی که در اکثر فرآیندهای کاری استفاده می‌شود +- [Concept Notes](./concept-notes) -- استخراج مفاهیم به عنوان یک مرحله در فرآیند کاری +- [Batch Processing](/docs/advanced/batch-processing) -- همزمانی و گزارش پیشرفت برای فرآیندهای کاری پوشه‌ها diff --git a/website/i18n/fa/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/fa/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..846131d1 --- /dev/null +++ b/website/i18n/fa/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "پیکربندی" +description: "پیکربندی تنظیمات و ترجیحات Notemd" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# پیکربندی + +<TLDR> +**پیکربندی Notemd شامل ۶ حوزه اصلی است:** (۱) ارائه‌دهندگان LLM و کلیدهای API، (۲) انتخاب مدل برای هر وظیفه، (۳) مسیرها و الگوهای خروجی، (۴) زبان UI و زبان خروجی، (۵) سرویس‌های جستجو (Tavily/DuckDuckGo)، (۶) فرآیندهای کاربردی سفارشی. تمام تنظیمات در Obsidian Settings → Notemd قرار دارند. تغییرات بلافاصله اعمال می‌شوند. +</TLDR> + +## مرور کلی تنظیمات + +دسترسی: **Obsidian Settings (⚙️) → Notemd** + +### بخش‌های اصلی + +1. **پیکربندی ارائه‌دهنده** — کلیدهای API، URLهای پایه، مدل‌ها +2. **تنظیمات وظیفه** — انتخاب مدل برای هر وظیفه +3. **پیکربندی خروجی** — محل ذخیره فایل‌های تولیدشده +4. **تنظیمات زبان** — UI و زبان‌های خروجی +5. **یکپارچه‌سازی جستجو** — پیکربندی Tavily/DuckDuckGo +6. **فرآیندهای کاربردی** — زنجیره‌های دکمه سفارشی +7. **پیشرفته** — تشخیص اشکال، پردازش دسته‌ای، بلوک‌بندی + +--- + +## ۱. پیکربندی ارائه‌دهنده + +### افزودن یک ارائه‌دهنده + +1. **ارائه‌دهنده را** از لیست کشویی انتخاب کنید (۳۰+ گزینه موجود) +2. **کلید API را وارد کنید** +3. **اختیاری**: مقدار پایه سفارشی URL را تنظیم کنید (برای پروکسی‌ها/گیت‌وی‌ها) +4. **روی «Get Model List» کلیک کنید** تا اتصال را بررسی کنید +5. **مدل پیش‌فرض را انتخاب کنید** + +### ارائه‌دهندگان رایج + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Local) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### ارائه‌دهندگان چندگانه + +شما می‌توانید چندین ارائه‌دهنده را پیکربندی کرده و بر حسب هر وظیفه بین آن‌ها تغییر دهید: +- **ارائه‌دهنده اصلی**: به عنوان گزینه جایگزین استفاده می‌شود +- **ارائه‌دهندگان مخصوص وظیفه**: برای وظایف خاص راهکارهای جایگزین فراهم می‌کنند + +--- + +## ۲. مدل‌های مخصوص وظیفه + +برای بهینه‌سازی هزینه/کیفیت، مدل‌های متفاوتی را برای وظایف مختلف پیکربندی کنید: + +### انواع وظایف + +| وظیفه | مدل پیش‌فرض | هدف | +|------|--------------|---------| +| **پیوند‌زنی** | ارائه‌دهنده اصلی | شناسایی مفاهیم برای لینک‌های ویکی | +| **تولید مفاهیم** | ارائه‌دهنده اصلی | استخراج و توصیف مفاهیم | +| **تحقیق** | ارائه‌دهنده اصلی | خلاصه کردن نتایج جستجوی وب | +| **ترجمه** | ارائه‌دهنده اصلی | ترجمه متن | +| **تولید نمودار** | ارائه‌دهنده اصلی | تولید نمودارهای Mermaid/Canvas | + +### مثال: پیکربندی بهینه‌شده از نظر هزینه + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### نحوه پیکربندی + +1. **تنظیمات → Notemd → تنظیمات وظیفه** +2. برای هر وظیفه، انتخاب کنید: + - ✅ **از ارائه‌دهنده اصلی استفاده کنید** (پیش‌فرض) + - 🔄 **از ارائه‌دهنده سفارشی استفاده کنید** → ارائه‌دهنده و مدل را انتخاب کنید + +--- + +## ۳. پیکربندی خروجی + +### خروجی یادداشت‌های مفهوم + +**محل ذخیره‌سازی یادداشت‌های مفهوم جدید:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**الگو:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### گزینه‌های ساختار پوشه + +**گزینه ۱: صاف (تمام مفاهیم در یک پوشه)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**گزینه ۲: سلسله‌مراتبی (بر اساس پوشه منبع)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +پیکربندی: **تنظیمات → خروجی → استفاده از پوشه‌های سلسله‌مراتبی** + +### خروجی نمودار + +**محل ذخیره‌سازی نمودارها:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**فرمت:** +- `.mmd` (Mermaid منبع) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## ۴. تنظیمات زبان + +### UI زبان + +**زبان رابط کاربری** (دکمه‌ها، منوها، پنجره‌های گفت‌وگو): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +زبان‌های پشتیبانی‌شده: انگلیسی، 简体中文، 繁體中文، 日本語، 한국어، Español، Français، Deutsch، Русский، العربية و بسیاری دیگر. + +### زبان خروجی + +زبان محتوای تولیدشده** (یادداشت‌های مفهومی، خلاصه‌های تحقیقاتی): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**مورد استفاده:** چینی UI + خروجی به زبان انگلیسی برای تحقیقات دوزبانه. + +### هدف ترجمه + +**زبان هدف پیش‌فرض** برای وظایف ترجمه: + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## ۵. یکپارچه‌سازی جستجو + +### Tavily (توصیه‌شده) + +**سرویس جستجوی بهینه‌شده با هوش مصنوعی:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +کلید دریافت کنید: [tavily.com](https://tavily.com/) + +**ویژگی‌ها:** +- نتایج با کیفیت بالا +- خلاصه‌های بهینه‌شده با هوش مصنوعی +- منابع استنادی + +### DuckDuckGo (آزمایشی) + +**نیازی به کلید API نیست:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**توجه:** کیفیت پایین‌تر، بدون امکان سفارشی‌سازی. + +--- + +## ۶. پیکربندی فرآیند کار + +### ایجاد فرآیندهای کار سفارشی + +**فرآیندهای کاری، چندین وظیفه را در یک دکمه ادغام می‌کنند.** + +1. **تنظیمات → فرآیندهای کاری → افزودن فرآیند کاری** +2. **نام**: "فرآیند تحلیل کاغذ" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **ذخیره کردن** + +دکمه جدیدی در نوار سمت چپ ظاهر می‌شود. + +### سینتکس DSL + +**فرمت:** `action1>action2>action3` + +**اقدامات موجود:** +- `process-current-add-links` — افزودن لینک‌های ویکی به یادداشت فعلی +- `extract-concepts-current` — تولید یادداشت‌های مفهومی +- `research-and-summarize` — تحقیق در وب + خلاصه‌سازی +- `translate-current` — ترجمه یادداشت فعلی +- `summarize-as-mermaid` — تولید نمودار Mermaid +- `process-folder-add-links` — پردازش دسته‌ای پوشه + +**فرآیندهای کاری نمونه:** + +**استخراج سریع مفاهیم:** +``` +process-current-add-links>extract-concepts-current +``` + +**تحقیق عمیق:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**تحلیل چندزبانه:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. تنظیمات پیشرفته + +### پردازش دسته‌ای + +**پردازش چندین فایل به صورت همزمان:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +مقدار بالاتر = سرعت بیشتر اما تعداد API فراخوانی‌ها بیشتر است. + +### بخش‌بندی هوشمند + +**برای یادداشت‌های طولانی، آن‌ها را به بخش‌ها تقسیم کنید:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +جلوگیری از خطاهای مربوط به محدودیت توکن. + +### پنل تشخیصی + +**مشاهده لاگ‌های مفصل:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +نمایش موارد زیر: +- API درخواست/پاسخ +- میزان استفاده از توکن‌ها +- زمان‌های پردازش +- خطاها + +### تشخیص مفاهیم تکراری + +**از مفاهیم تقریباً مشابه اجتناب کنید:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +مقدار بالاتر = ادغام پرخروش‌تر. + +--- + +## پروفایل‌های پیکربندی + +### صادر/وارد کردن تنظیمات + +**پیکربندی‌ها را بین دستگاه‌ها به اشتراک بگذارید:** + +1. **تنظیمات → پیشرفته → صادر کردن پیکربندی** +2. `notemd-config.json` را ذخیره می‌کند +3. در دستگاه جدید: **وارد کردن پیکربندی** + +**چه چیزهایی دربرمی‌گیرد:** +- کلیدهای ارائه‌دهنده API (اختیاری) +- انتخاب مدل‌ها +- مسیرهای خروجی +- فرآیندهای کاری سفارشی + +--- + +## پیکربندی‌های توصیه‌شده + +### برای دانشجویان + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### برای پژوهشگران + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### برای کاربرانی که به حریم خصوصی اهمیت می‌دهند + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### برای کار دوزبانه + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## رفع اشکالات پیکربندی + +### تنظیمات ذخیره نشدند +- مجوزهای فایل را در `.obsidian/plugins/notemd/` بررسی کنید +- تلاش کنید: پلاگین را غیرفعال کنید → دوباره فعال کنید + +### کلید API معتبر نیست +- فاصله اضافی وجود ندارد +- تاریخ انقضا را بررسی کنید +- اعتبارات را در داشبورد ارائه‌دهنده بررسی کنید + +### مدل‌ها بارگذاری نمی‌شوند +- برای به‌روزرسانی، روی "فهرست مدل‌ها را دریافت کنید" کلیک کنید +- اتصال شبکه را بررسی کنید +- ارائه‌دهنده دیگری را امتحان کنید + +--- + +## گام‌های بعدی + +- 📖 [ویژگی‌ها را بررسی کنید](../features/wiki-links) +- 🔌 [راهنمای پیکربندی ارائه‌دهنده](../providers/overview) +- ❓ [پرسش‌های متداول](../faq) diff --git a/website/i18n/fa/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/fa/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..1d78ead3 --- /dev/null +++ b/website/i18n/fa/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "نصب" +description: "نحوه نصب Notemd در Obsidian" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# نصب + +<TLDR> +**نصب Notemd در کمتر از ۲ دقیقه.** دو روش: (۱) پلاگین‌های جامعه Obsidian (توصیه می‌شود، نصب یک‌کلیکی)، یا (۲) نصب دستی از طریق GitHub Releases. نیاز به Obsidian نسخه ۰.۱۵.۰ و بالاتر دارد. روی Windows، macOS، Linux، iOS و Android کار می‌کند. هیچ وابستگی خارجی ندارد. بیش از ۴k دانلود، با مجوز MIT. +</TLDR> + +## روش ۱: پلاگین‌های جامعه (توصیه می‌شود) + +1. باز کردن **تنظیمات Obsidian** (آیکون ⚙️ یا `Ctrl/Cmd + ,`) +2. رفتن به بخش **پلاگین‌های جامعه** +3. کلیک بر روی **بررسی** +4. جستجوی **"Notemd"** +5. کلیک بر روی **نصب** +6. کلیک بر روی **فعال‌سازی** + +**تمام شد!** آیکون Notemd را در نوار سمت چپ خود خواهید دید. + +## روش ۲: نصب دستی + +### پیش‌نیازها +- Obsidian نسخه ۰.۱۵.۰ یا بالاتر +- Git (اختیاری، برای کلون کردن) + +### مراحل + +1. **دانلود فایل‌ها** از [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest): + - `main.js` + - `styles.css` + - `manifest.json` + +2. **محل پوشه پلاگین‌های صندوق امنیتی خود را پیدا کنید:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +اگر پوشه `plugins` وجود ندارد، آن را ایجاد کنید. + +3. **ایجاد پوشه Notemd:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **سه فایل را** در پوشه `notemd` کپی کنید. + +5. **بارگذاری مجدد Obsidian:** + - دکمه `Ctrl/Cmd + R` را فشار دهید، یا + - دوباره راه‌اندازی کنید Obsidian + +6. **فعال‌سازی پلاگین:** + - تنظیمات → افزونه‌های جامعه + - در لیست، "Notemd" را پیدا کنید + - آن را فعال کنید. + +## جایگزین: از طریق BRAT نصب کنید + +اگر از [BRAT پلاگین](https://github.com/TfTHacker/obsidian42-brat) استفاده کنید: + +1. باز کردن تنظیمات BRAT +2. روی «افزودن پلاگین بتا» کلیک کنید +3. ورودی: `Jacobinwwey/obsidian-NotEMD` +4. روی «افزودن پلاگین» کلیک کنید +5. Notemd را در پلاگین‌های جامعه فعال کنید + +## بررسی صحت + +پس از نصب، بررسی کنید که Notemd به درستی کار می‌کند: + +1. هر یادداشتی را باز کنید +2. روی منوی راست در ویرایشگر کلیک کنید +3. باید دستورات Notemd مانند این را ببینید: + - "پردازش فایل (افزودن لینک‌ها)" + - "استخراج مفاهیم" + - "تحقیق و خلاصه‌سازی" + +## گام‌های بعدی + +- **پیکربندی ارائه‌دهنده LLM:** [شروع سریع →](./quick-start) +- **رفع مشکلات:** [مشکلات رایج →](../advanced/troubleshooting) + +## الزامات سیستم + +| پلتفرم | نسخه | وضعیت | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | مورد نیاز | +| **Windows** | 7+ | ✅ پشتیبانی می‌شود | +| **macOS** | 10.15+ | ✅ پشتیبانی می‌شود | +| **Linux** | هر کدام | ✅ پشتیبانی می‌شود | +| **iOS** | 15+ | ✅ پشتیبانی می‌شود | +| **Android** | 5+ | ✅ پشتیبانی می‌شود | + +## حذف نرم‌افزار + +برای حذف Notemd: + +1. تنظیمات → افزونه‌های جامعه +2. جستجوی "Notemd" +3. کلیک بر روی آیکون ❌ +4. در صورت تمایل، پوشه افزونه را حذف کنید: `<vault>/.obsidian/plugins/notemd/` + +داده‌های شما (یادداشت‌ها، یادداشت‌های مفهومی و غیره) دست‌نخورده باقی می‌مانند. + +## به‌روزرسانی + +### به‌روزرسانی خودکار (توصیه‌شده) +Obsidian به‌طور خودکار به دنبال به‌روزرسانی افزونه‌ها می‌گردد. هنگامی که نسخه جدیدی در دسترس باشد: +1. تنظیمات → افزونه‌های جامعه +2. کلیک بر روی "بررسی به‌روزرسانی‌ها" +3. کلیک بر روی "به‌روزرسانی" کنار Notemd + +### به‌روزرسانی دستی +فایل‌های جدیدترین نسخه را دانلود کرده و آن‌ها را جایگزین سه فایل موجود در پوشه افزونه خود کنید. + +## دریافت کمک + +- 📖 [راهنمای شروع سریع](./quick-start) +- ❓ [پرسش‌های متداول](../faq) +- 💬 [جامعه Discord](https://discord.gg/qnGgsQ9W) +- 🐛 [گزارش مشکلات](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/fa/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/fa/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..6a41d415 --- /dev/null +++ b/website/i18n/fa/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "راهنمای شروع سریع" +description: "شروع کار با Notemd در عرض ۵ دقیقه" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# راهنمای شروع سریع + +<TLDR> +**شروع به استفاده از Notemd در عرض ۵ دقیقه.** سه مرحله: (۱) افزودن کلید LLM API (یا استفاده از Ollama محلی)، (۲) باز کردن یک یادداشت و اجرای دستور "Process file (add links)"، (۳) بررسی فرآیندهای یک‌کلیکی در نوار کناری. از بیش از ۳۰ ارائه‌دهنده پشتیبانی می‌کند. نیازی به برنامه‌نویسی نیست. با Ollama به صورت آفلاین کار می‌کند. +</TLDR> + +## مرحله ۱: پیکربندی اولین ارائه‌دهنده LLM شما (۲ دقیقه) + +### گزینه A: ارائه‌دهنده ابری (OpenAI، Anthropic و غیره.) + +1. **Settings** را باز کنید → **Notemd** +2. در بخش **پیکربندی ارائه‌دهنده LLM**، یک ارائه‌دهنده را از لیست سقوطی انتخاب کنید +3. کلید **API** خود را وارد کنید +4. (اختیاری) روی دکمه **"Get Model List"** کلیک کنید تا مدل‌های موجود را ببینید +5. برای هر نوع وظیفه یک مدل انتخاب کنید + +**گزینه‌های پرطرفدار:** +- **OpenAI**: `gpt-4o-mini` (سریع، مقرون‌به‌صرفه) +- **Anthropic**: `claude-sonnet-4-6` (کیفیت بالا) +- **DeepSeek**: `deepseek-chat` (بسیار مقرون‌به‌صرفه) + +### گزینه B: Ollama محلی (نیازی به کلید API نیست) + +1. نصب [Ollama](https://ollama.com/) +2. دانلود یک مدل: `ollama pull llama3.1` +3. در تنظیمات Notemd، **"Ollama"** را به عنوان ارائه‌دهنده انتخاب کنید +4. نام مدل: `llama3.1` (یا هر مدلی که دانلود کرده‌اید) + +## مرحله ۲: اولین وظیفه خود را امتحان کنید (۱ دقیقه) + +### افزودن لینک‌های ویکی به یک یادداشت + +1. هر یادداشتی با محتوای معنادار را باز کنید +2. روی منوی راست در ویرایشگر کلیک کنید +3. **"پردازش فایل (افزودن لینک‌ها)"** را انتخاب کنید +4. چند ثانیه صبر کنید +5. مفاهیم کلیدی اکنون `[[wiki-linked]]` هستند! + +**مثال:** + +**قبل از:** +``` +Machine learning models use neural networks to process data. +``` + +**پس از:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## مرحله ۳: بررسی ویژگی‌ها (۲ دقیقه) + +### استخراج یادداشت‌های مفهومی + +1. راست‌کلیک کنید → **"استخراج مفاهیم از فایل فعلی"** +2. Notemd برای هر مفهوم یک فایل جداگانه ایجاد می‌کند +3. پوشه مفاهیم پیکربندی‌شده خود را بررسی کنید (پیش‌فرض: `concepts/`) +4. هر یادداشت مفهومی دارای یک لینک بازگشتی به یادداشت اصلی شماست + +### تحقیق و خلاصه‌سازی + +1. به یک موضوع در یادداشت خود تأکید دهید +2. کلیک راست → **"تحقیق و خلاصه‌سازی"** +3. Notemd پرس‌وجوهای جستجوی اینترنتی (Tavily یا DuckDuckGo) +4. خلاصه به همراه منابع در یادداشت شما اضافه می‌شود + +### فرآیندهای یک‌کلیکی + +1. در **نوار سمت چپ** برای دکمه‌های فرآیند نگاه کنید +2. روی **"استخراج یک‌کلیکی"** در هر یادداشتی کلیک کنید +3. این عملیات انجام می‌شود: افزودن لینک‌ها → استخراج مفاهیم → تحقیق → تولید نمودار +4. همه چیز در یک کلیک! + +## وظایف رایج اولیه + +### وظیفه ۱: پردازش مقاله/متن + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### وظیفه ۲: ترجمه یادداشت‌ها + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### وظیفه ۳: ایجاد نقشه دانش + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## نکات سفارشی‌سازی + +### انتخاب مدل بر حسب وظیفه + +شما می‌توانید برای وظایف مختلف از مدل‌های متفاوتی استفاده کنید: + +| وظیفه | مدل توصیه‌شده | دلیل | +|------|------------------|-----| +| افزودن لینک‌ها | `gpt-4o-mini`، `deepseek-chat` | سریع، تعداد زیادی فراخوانی | +| استخراج مفاهیم | `claude-sonnet-4-6`، `gpt-4o` | استخراج با کیفیت | +| تحقیقات | `perplexity`، `gpt-4o` | مبتنی بر وب | +| ترجمه | `gemini-flash`، `gpt-4o` | چندزبانه | +| نمودارها | `claude-opus`، مدل محلی | استدلال پیچیده | + +پیکربندی در: **تنظیمات → Notemd → مدل‌های مخصوص وظیفه** + +### فرآیندهای کاری سفارشی + +ایجاد دکمه خودتان: + +1. تنظیمات → Notemd → فرآیندهای کاری +2. روی "افزودن فرآیند کاری" کلیک کنید +3. وارد کردن DSL: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. نام آن را "جریان تحقیقات من" قرار دهید +5. دکمه جدیدی در نوار کناری ظاهر می‌شود + +## رفع اشکالات + +### "کلید API نامعتبر است" +- بررسی کنید که آیا کلید صحیح است (بدون فضای اضافی) +- بررسی کنید که حساب کاربری شما اعتبار دارد +- با استفاده از دکمه "آزمایش اتصال" در تنظیمات آزمایش کنید + +### "مدل پیدا نشد" +- برای مشاهده مدل‌های موجود روی "دریافت لیست مدل‌ها" کلیک کنید +- برخی از ارائه‌دهندگان نیاز به نام‌های خاص مدل دارند (مثلاً `gpt-4o` و نه `gpt-4`) + +### لینک‌ها ظاهر نمی‌شوند +- مطمئن شوید که یادداشت شما حداقل ۵۰ کلمه دارد +- از یک مدل قدرتمندتر استفاده کنید +- بررسی کنید که آیا فراخوانی LLM موفق بوده است (به پنل تشخیصی مراجعه کنید) + +### عملکرد آهسته است +- از مدل‌های سریع‌تری استفاده کنید (`gpt-4o-mini` به جای `gpt-4o`) +- اندازه بلوک‌ها را در تنظیمات کاهش دهید +- فعال‌سازی پردازش موازی برای وظایف دسته‌ای + +## گام‌های بعدی + +- 📖 [بررسی تمام ویژگی‌ها](../features/wiki-links) +- ⚙️ [پیکربندی پیشرفته](./configuration) +- 🔧 [LLM تنظیمات ارائه‌دهنده](../providers/overview) +- ❓ [پرسش‌های متداول](../faq) + +## آموزش ویدیویی + +تماشای ویدیوی ۳ دقیقه‌ای آموزش سریع (چینی): +[【کاملاً متن‌باز و رایگان! NotEMD آموزش سریع ۳ دقیقه‌ای】](https://b23.tv/lqR0RlA) + +## دریافت کمک + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **مشکلات**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **مستندات**: [مستندات کامل](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/fa/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/fa/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..4e843396 --- /dev/null +++ b/website/i18n/fa/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "مقدمه‌ای بر Notemd" +description: "سازنده پایگاه دانش مبتنی بر هوش مصنوعی برای Obsidian با تبدیلات یادداشت‌های پایدار، فرآیندهای کاری و نمودارهای مبتنی بر مشخصات" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# مقدمه‌ای بر Notemd + +<TLDR> +**Notemd** (Note + EMD — Enhanced Markdown Documents) یک پلاگین متن‌باز برای Obsidian است که خواندن با استفاده از LLM را به دانش پایدار تبدیل می‌کند. برخلاف هوش مصنوعی مبتنی بر چت که بینش‌ها پس از جلسه از بین می‌روند، Notemd نتایج را **مستقیماً در خزانه شما** به صورت لینک‌های ویکی، یادداشت‌های مفهومی، خلاصه‌های تحقیقاتی، ترجمه‌ها، فرآیندهای کاری و نمودارها ثبت می‌کند. این ابزار برای پژوهشگران، دانشجویان و کارکنان دانش که می‌خواهند خواندن، تحقیق و توضیحات بصری آن‌ها در یک گراف دانش ساختاریافته و در حال توسعه جمع‌آوری شود، ساخته شده است. +</TLDR> + +## Notemd چیست؟ + +Notemd **۳۰ مدل زبان بزرگ و بیشتر** (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama و غیره) را در فرآیند کاری Obsidian شما یکپارچه می‌کند تا استخراج دانش، سازماندهی، ترجمه، تحقیق و تولید نمودارها را خودکار کند. + +### تفاوت کلیدی: دانش گذرا در مقابل دانش پایدار + +| جنبه | هوش مصنوعی مبتنی بر چت (ChatGPT و غیره) | Notemd | +|--------|-------------------------------|--------| +| **محل نگهداری نتایج** | تاریخچه چت (از بین می‌رود) | خزانه Obsidian شما (پایدار می‌ماند) | +| **فرمت** | پاسخ‌های متن ساده | فایل‌های ساختاریافته: `[[wiki-links]]`، یادداشت‌های مفهومی، نمودارها | +| **ارزش بلندمدت** | باید هر بار دوباره سؤال کرد | در یک گراف دانش جمع‌آوری می‌شود | +| **دسترسی آفلاین** | نیاز به اینترنت دارد | با Ollama به‌طور کامل در حالت آفلاین کار می‌کند | + +## قابلیت‌های اصلی + +### ۱. **پیونددهی خودکار ویکی** +- LLM مفاهیم کلیدی در یادداشت‌های شما را شناسایی می‌کند +- در هر بار ظهور، `[[wiki-links]]` را اضافه می‌کند +- به‌صورت اختیاری یادداشت‌های مفهومی پیونددار ایجاد می‌کند +- سرکوب مترادفات برای جلوگیری از تکرار + +### ۲. **تولید یادداشت مفهومی** +- مفاهیم اصلی را از مقالات، مطالب و یادداشت‌ها استخراج می‌کند +- فایل‌های مفهومی مخصوص با پیوندهای بازگشتی تولید می‌کند +- مسیرهای خروجی و الگوهای قابل سفارش‌سازی + +### ۳. **یکپارچه‌سازی تحقیقات وب** +- از درون Obsidian، Tavily یا DuckDuckGo را جستجو کنید +- LLM نتایج را همراه با منابع مرجع خلاصه می‌کند +- یافته‌های تحقیقاتی را به یادداشت فعلی اضافه می‌کند + +### ۴. **ترجمه چندزبانه** +- ترجمه بخش‌های انتخاب‌شده یا کل یادداشت‌ها +- پشتیبانی از بیش از ۲۱ زبان UI +- پیکربندی مستقل زبان خروجی +- پشتیبانی از ترجمه دسته‌ای + +### ۵. **تولید نمودار** +- **Mermaid**: نمودارهای جریان، توالی، کلاس، حالت، ER، Gantt +- **JSON Canvas**: چیدمان‌های بومی Obsidian +- **Vega-Lite**: نمودارهای داده، سری زمانی، نمودارهای پراکندگی +- **HTML / HTML قابل ویرایش/SVG**: اشیاء نموداری مستقل با توضیحات معنایی +- **Draw.io / مرزهای اشیاء Drawnix**: مسیرهای صادراتی مخصوص نگهدارندگان از همان مدل نمودار معنایی +- **رودرروی نمودارهای مداری**: پشتیبانی circuitikz/TikZJax بر اساس منابع طلایی، دستورات محدود، بازخورد رندر و تأیید توپولوژی/چیدمان طراحی می‌شود، نه بر اساس TikZ خام و بدون محدودیت LLM +- **تشخیص پیش‌نمایش**: اشیاء رندر شده می‌توانند تشخیصات مربوط به کامپایل/رندر را نشان دهند و منابع غیر‑درون‌خطی را می‌توان بدون نیاز به محیط LaTeX در سمت پلاگین بررسی کرد +- تصحیح خودکار سینتکس برای خطاهای Mermaid + +### ۶. **فرآیندهای کار یک‌کلیکی** +- چندین عملیات را در دکمه‌های نوار کناری به هم متصل کنید +- تعریف فرآیندهای کاری بر پایه DSL +- مثال: `add-links > extract-concepts > research > diagram` + +## چه کسانی باید از Notemd استفاده کنند؟ + +✅ **پژوهشگران**ی که مقالات را می‌خوانند و مرورهای ادبی تهیه می‌کنند +✅ **دانشجویان**ی که یادداشت‌های درسی خود را سازماندهی می‌کنند و نقشه‌های مفهومی ایجاد می‌کنند +✅ **کارکنان دانشی** که می‌خواهند بینش‌های ناشی از مطالعه را ذخیره کنند +✅ **متخصصان دوزبانه**یی که به ترجمه و پیونددهی به ویکی نیاز دارند +✅ **کاربران محافظه‌کار از نظر حریم خصوصی** که به پشتیبانی محلی LLM (Ollama) نیاز دارند +✅ **کاربران پیشرفته**یی که پرامپت‌ها و فرآیندهای کاری خود را سفارشی می‌کنند + +## چرا Notemd + Obsidian؟ + +**Obsidian** یک پایگاه دانش مبتنی بر مارکداون و با تمرکز بر حالت محلی است. **Notemd** قدرت‌های فوق‌العاده هوش مصنوعی را اضافه می‌کند: +- داده‌های شما در صندوق امانات خودتان باقی می‌ماند (نه در یک سرویس ابری) +- با مدل‌های محلی به صورت آفلاین کار می‌کند +- رایگان و متن‌باز (مجوز MIT) +- با پلاگین‌های موجود Obsidian یکپارچه می‌شود +- توانایی مقیاس‌پذیری تا ده‌ها هزار یادداشت + +## شروع کار + +1. **نصب**: تنظیمات → پلاگین‌های جامعه → جستجو → "Notemd" +2. **پیکربندی**: افزودن کلید API ارائه‌دهنده LLM خود (یا استفاده از Ollama محلی) +3. **آزمایش**: باز کردن یک یادداشت → کلیک راست → "پردازش فایل (افزودن لینک‌ها)" +4. **اکتشاف**: بررسی نوار کناری برای فرآیندهای یک‌کلیکی + +👉 [راهنمای نصب](./getting-started/installation) | [آموزش سریع شروع کار](./getting-started/quick-start) + +## جهت‌گیری توانایی نمودارها + +کار نمودارسازی Notemd در حال دور شدن از روش "خواستن نوشتن یک رشته سینتکس از مدل" به سمت یک خط لوله لایه‌ای است: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +پیاده‌سازی فعلی از Mermaid، JSON Canvas، Vega-Lite، پشتیبانی HTML، HTML/SVG قابل ویرایش، آرتیفکت‌های Draw.io XML، مجموعه کوچک Drawnix JSON، پشتیبانی تشخیص پیش‌نمایش/فقط منبع، و یک نمونه آفلاین `CircuitSpec -> circuitikz` برای الگوهای طلایی منبع مشترک و اینورتر CMOS پشتیبانی می‌کند. نمودارهای مداری دسته سخت‌تری هستند: circuitikz می‌تواند توپولوژی الکتریکی دقیقی را نشان دهد، اما خروجی بدون محدودیت LLM اغلب منجر به مسیریابی غیرخوانا یا LaTeXی که قابل نمایش نیست می‌شود. جهت بعدی، حفظ محدودیت circuitikz با الگوهای مرجع طلایی، قوانین چیدمان شبکه گره‌ها، تشخیص نمایش و چرخه‌های بازخورد تصویر است. + +جزئیات را در [نمودارها](./features/diagrams) بخوانید. + +## معماری + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd در مقایسه با سایر پلاگین‌های هوش مصنوعی Obsidian + +اکثر پلاگین‌های هوش مصنوعی Obsidian بر گفت‌وگو تمرکز دارند (شما می‌پرسید، هوش مصنوعی پاسخ می‌دهد و بینش‌ها در چت باقی می‌مانند). Notemd **ابتدا نوشتن** است: هوش مصنوعی یادداشت‌های شما را پردازش کرده و نتایج ساختاریافته را مستقیماً در صندوق امانات شما می‌نویسد. + +| توانایی‌ها | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| وارد کردن خودکار لینک ویکی | بله | خیر | خیر | خیر | +| تولید یادداشت مفهومی | بله (همراه با لینک‌های بازگشتی + حذف تکرار) | خیر | خیر | خیر | +| تولید نمودار | بله (Mermaid, Canvas, Vega-Lite, HTML, آثار قابل ویرایش) | خیر | خیر | خیر | +| یکپارچه‌سازی تحقیقات وب | بله (Tavily + DuckDuckGo) | خیر | خیر | خیر | +| پردازش پوشه‌های دسته‌ای | بله | محدود | خیر | محدود | +| مسیریابی مدل بر اساس هر وظیفه | بله (۷ وظیفه، مدل‌های مستقل) | خیر | خیر | خیر | +| زنجیره‌های کاربرد یک‌کلیکی | بله (DSL) | خیر | خیر | خیر | +| ترجمه (دسته‌ای) | بله | خیر | خیر | خیر | +| گفتگو با خزانه | خیر | بله | خیر | خیر | +| جستجوی شباهت معنایی | خیر | خیر | بله | خیر | +| تولید مبتنی بر الگوها | خیر | خیر | خیر | بله | +| ارائه‌دهندگان LLM | ۳۶ (ابر + گیت‌وی + محلی) | 3-5 | 2-3 | 3-5 | +| کاملاً آفلاین | بله (Ollama) | جزئی | جزئی | جزئی | + +**چه زمانی باید از Notemd استفاده کنید**: شما می‌خواهید هوش مصنوعی یک گراف دانش پایدار ایجاد کند — نه فقط درباره یادداشت‌هایتان گفتگو کند. + +**چه زمانی باید از Copilot استفاده کنید**: اگر می‌خواهید یک دستیار هوش مصنوعی گفت‌وگومحور درون Obsidian داشته باشید. + +**چه زمانی باید از Smart Connections استفاده کنید**: اگر می‌خواهید روابط موجود بین یادداشت‌ها را از طریق جستجوی معنایی کشف کنید. + +## فلسفه + +**Notemd** معتقد است که هوش مصنوعی باید به کارهای دانشی انسان‌ها کمک کند، نه آن‌ها را جایگزین کند. این پلاگین: +- شما را تحت کنترل نگه می‌دارد (قبل از اعمال تغییرات، بررسی کنید). +- زمینه را حفظ می‌کند (تمام نتایج به منبع مرتبط هستند) +- از حریم خصوصی محافظت می‌کند (پشتیبانی محلی LLM، بدون ارسال داده‌های ردیابی) +- قابلیت گسترش‌پذیری حفظ می‌شود (منابع باز APIs، فرآیندهای کاری سفارشی) + +## منبع باز + +- **مجوز**: MIT +- **منبع**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **جامعه**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **کمک کنید**: پیشنهادات کد مرحبوست، به [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) مراجعه کنید + +--- + +**بعدی**: [Installation →](./getting-started/installation) diff --git a/website/i18n/fa/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/fa/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..724b675c --- /dev/null +++ b/website/i18n/fa/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "راهنمای مدیریت دانش هوش مصنوعی Obsidian" +description: "راهنمای جامع برای ساخت یک پایگاه دانش متصل با استفاده از هوش مصنوعی — از لینک‌های ویکی و استخراج مفاهیم تا تحقیق، ترجمه و تولید نمودارها" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# راهنمای مدیریت دانش هوش مصنوعی Obsidian + +<TLDR> +**Notemd، خواندن با استفاده از LLM را به دانش پایدار تبدیل می‌کند: لینک‌های ویکی مفاهیم را به هم متصل می‌کنند، یادداشت‌های مفهومی یک گراف قابل بازیابی ایجاد می‌کنند، تحقیقات وب را به صندوق اطلاعاتی شما می‌آورند، ترجمه موانع زبانی را از بین می‌برد، نمودارها ساختار را قابل مشاهده می‌کنند و فرآیندهای کاری همه چیز را با یک کلیک به هم متصل می‌کنند.** این راهنما کل مسیر را پوشش می‌دهد — از یادداشت‌های خام تا یک پایگاه دانش متصل، بصری و چندزبانه. +</TLDR> + +## چرا مدیریت دانش با هوش مصنوعی؟ + +یادداشت‌برداری سنتی فایل‌های صاف تولید می‌کند. حتی با لینک‌های ویکی دستی، اکثر یادداشت‌ها از هم جدا می‌مانند. Notemd از LLMها برای خودکارسازی لایه اتصال استفاده می‌کند: + +- **LLMها محتوای شما را می‌خوانند** و آنچه مهم است را شناسایی می‌کنند — اصطلاحات، روش‌ها، افراد، نظریه‌ها +- **لینک‌ها به طور خودکار** در هر بار ظهور یک مفهوم اضافه می‌شوند، نه در بخش «همچنین ببینید» پنهان می‌شوند +- **یادداشت‌های مفهومی به عنوان فایل‌های قابل بازیابی مستقل تولید می‌شوند** +- **تحقیقات یادداشت‌ها را با زمینه‌های منبع وب غنی می‌کنند** +- **نمودارها ساختار را قابل مشاهده می‌کنند** — نقشه‌های ذهنی، نمودارهای جریان، نمودارهای داده از همان محتوا + +نتیجه: یک گراف دانش که با هر یادداشتی که پردازش می‌کنید رشد می‌کند، نه فقط زمانی که به یاد آورید لینک اضافه کنید. + +## کل مسیر پردازش + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +هر مرحله مستقل است. می‌توانید یکی یا همه را استفاده کنید. ترتیب مؤثرترین: **افزودن لینک‌ها → یادداشت‌های مفهومی → نمودارها**. + +--- + +## ۱. لینک‌های ویکی: مشخص کردن ارتباطات + +لینک‌های ویکی ستون فقرات یک گراف دانش هستند. Notemd از یک LLM برای انجام کارهای زیر استفاده می‌کند: + +1. محتوای یادداشت خود را بخوانید (سندهای بلند را به بخش‌های کوچکتر تقسیم کنید) +2. مفاهیم اصلی را شناسایی کنید — با تأکید بر اصطلاحات فنی خاص نسبت به اسامی عمومی +3. در هر بار ظهور، `[[wiki-links]]` را وارد کنید +4. مترادف‌ها را سرکوب کنید تا "ML" و "Machine Learning" گره‌های جداگانه‌ای ایجاد نکنند + +### زمان استفاده + +- **هر یادداشت بالاتر از ۱۰۰ کلمه** — یادداشت‌های کوتاه مفاهیم کمتری دارند +- **مقالات تحقیقاتی، مستندات فنی، یادداشت‌های جلسه** — سرشار از اصطلاحات ویژه حوزه هستند +- **پس از ثبات محتوا** — دست‌نوشته‌ها را مکرراً پردازش نکنید + +### تنظیمات کلیدی + +| تنظیمات | توصیه‌شده | دلیل | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek یا GPT-4o-mini | دقت خوب با هزینه پایین | +| سرکوب مترادف‌ها | فعال | جلوگیری از ایجاد گره‌های تکراری | +| پنجره زمینه | پاراگراف | تعادل بین دقت و هزینه | + +→ [Wiki-Links deep dive](/docs/features/wiki-links) + +--- + +## ۲. یادداشت‌های مفهومی: گره‌های دانش قابل بازیابی + +پیوندهای ویکی ایده‌ها را به صورت درون‌متنی به هم متصل می‌کنند، اما یادداشت‌های مفهومی هر ایده را به صورت مستقل قابل بازیابی می‌سازند. هر مفهوم فایل `.md` مخصوص خود را دارد: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### فرآیند استخراج + +پرامپت LLM ساختار بسیار منظمی دارد: +- تبدیل به شکل مفرد کردن +- ترجیح دادن مفاهیم چندکلمه‌ای به جای کلمات تکی («Dielectric Relaxation» نه «Relaxation») +- نادیده گرفتن بخش‌های منابع/فهرست منابع +- خروجی را به صورت خطوط `CONCEPT:` برای پارسینگ قطعی ارائه دادن + +مفاهیم از طریق `Set<string>` در بین بلوک‌ها حذف تکرار می‌شوند. خطاهای LLM در بلوک‌های جداگانه عملیات را متوقف نمی‌کنند. + +### پیوندهای باز + +هنگام فعال بودن، هر یادداشت مفهومی ثبت می‌کند که کدام یادداشت‌های منبع به آن اشاره دارند. پنل پیوندهای باز ذاتی Obsidian نیز ارتباطات معکوس را نشان می‌دهد. + +### حذف تکرارها + +موتور حذف تکرار ۴ مرحله‌ای Notemd موارد زیر را شناسایی می‌کند: +1. **مطابقت‌های دقیق** — مقایسه نام فایل بدون توجه به حالت بزرگ‌وکوچک +2. **اشکال جمع** — "Models.md" در مقابل "Model.md" +3. **همگن‌سازی نمادها** — "A-B.md" در مقابل "A B.md" +4. **وجود کلمه تکی** — "ML.md" زمانی علامت‌گذاری می‌شود که "Machine Learning.md" وجود داشته باشد + +### تنظیمات کلیدی + +| تنظیمات | توصیه‌شده | دلیل | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` یا `🧠 concepts/` | سازماندهی خزانه را حفظ می‌کند | +| `extractConceptsAddBacklink` | روشن | بازجستار معکوس را فعال می‌کند | +| `extractConceptsMinimalTemplate` | خاموش | قالب کامل با Linked From | +| مدل برای هر وظیفه | DeepSeek | استخراج مفاهیم نیازی به مدل‌های گران‌قیمت ندارد | +| سرکوب مترادفات | روشن | همان تنظیم بر روی لینک کردن و استخراج هر دو تأثیر می‌گذارد | + +→ [مطالعه عمیق یادداشت‌های مفهومی](/docs/features/concept-notes) + +--- + +## ۳. تحقیق: وارد کردن وب به سیستم + +Notemd جستجوی وب را در فرآیند یادداشت‌برداری شما ادغام می‌کند: + +1. **ساختاردهی پرس‌وجو** — عنوان یا بخش انتخاب‌شده یادداشت شما به یک پرس‌وجو تبدیل می‌شود +2. **جستجوی وب** — Tavily (توصیه‌شده، نیاز به کلید API) یا DuckDuckGo (رایگان، بدون نیاز به کلید) +3. **خلاصه‌سازی LLM** — نتایج جستجو به یک خلاصه مرتبط تبدیل می‌شوند +4. **افزودن به یادداشت** — خلاصه در محل کرسور یا به عنوان بخش جدید اضافه می‌شود + +### زمان استفاده + +- قبل از پردازش یک موضوع جدید — ابتدا زمینه وب را به دست آورید +- هنگامی که یک یادداشت مفهومی نیاز به غنی‌سازی دارد — ابتدا تحقیق کرده و سپس لینک‌ها را اضافه کنید +- برای بررسی‌های ادبی — یک پوشه از یادداشت‌ها را به صورت دسته‌جمعی تحقیق کنید + +### تنظیمات کلیدی + +| تنظیمات | توصیه‌شده | دلیل | +|---------|-----------|-----| +| `researchProvider` | GPT-4o یا Claude | تحقیق نیازمند خلاصه‌سازی با کیفیت بالاتر است | +| سرویس جستجو | Tavily | رابطه بهتر، عمق قابل پیکربندی | +| `maxResearchContentTokens` | 4000 | تعادل بین عمق و هزینه | + +→ [بررسی عمیق درباره تحقیق](/docs/features/research) + +--- + +## ۴. ترجمه: شکستن موانع زبانی + +Notemd با استفاده از LLM پیکربندی‌شده توسط شما یادداشت‌ها را ترجمه می‌کند — نه با یک ابزار ترجمه ویژه API. این بدان معناست: + +- **ترجمه‌های آگاه از زمینه** — LLM کل سند را درک می‌کند، نه جمله به جمله +- **مدیریت اصطلاحات فنی** — «gradient descent» همانند «梯度下降» باقی می‌ماند و نه «坡度向下」 +- **پشتیبانی از دسته‌ها** — ترجمه کل یک پوشه از یادداشت‌ها در یک عملیات انجام می‌شود +- **مدل بر اساس هر وظیفه** — از Gemini Flash برای ترجمه استفاده می‌شود (سریع، ارزان، چندزبانه) + +### پشتیبانی از زبان‌ها + +خود Notemd از ۲۱ زبان UI پشتیبانی می‌کند. زبان هدف ترجمه می‌تواند برای هر وظیفه به صورت جداگانه پیکربندی شود. جفت‌های رایج: EN↔ZH، EN↔JA، EN↔KO، EN↔DE، EN↔FR، EN↔ES. + +→ [بررسی عمیق درباره ترجمه](/docs/features/translation) + +--- + +## ۵. نمودارها: نمایش ساختار + +خط لوله نمودار Notemd ابتدا بر اساس مشخصات است: LLM یک `DiagramSpec` JSON ساختاریافته تولید می‌کند، سپس ابزارهای تبدیل آن را به فرمت هدف تبدیل می‌کنند. این روش نتایج قابل اعتمادتری نسبت به درخواست سینتکس خام Mermaid از LLM ارائه می‌دهد. + +### تشخیص قصد + +Notemd بهترین نوع نمودار را بر اساس محتوا استنباط می‌کند: + +- **جداول حاوی اعداد** → نمودار داده‌ها (Vega-Lite) +- **واژگان کلاینت/سرور** → نمودار توالی (Mermaid) +- **شیء/کلید اصلی** → نمودار ER (Mermaid) +- **مرحله/جریان فرآیند** → نمودار جریان (Mermaid) +- **کلمات کلیدی نقشه مفهومی** → JSON Canvas (Obsidian بومی) +- **پیش‌فرض** → نقشه ذهنی (Mermaid) + +### زنجیره رندرینگ + +هدف اصلی → جایگزین → جایگزین → HTML. اگر سینتکس Mermaid موفق نشود، یک بار دیگر با زمینه خطا به LLM تلاش می‌شود و سپس به یک نمودار حداقلی روی می‌آید. + +### تنظیمات کلیدی + +| تنظیمات | توصیه‌شده | دلیل | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | روشن | کیفیت بهتر از طریق اولویت دادن به مشخصات | +| `experimentalDiagramCompatibilityMode` | `best-fit` | هدف بومی بر اساس قصد | +| `summarizeToMermaidProvider` | GPT-4o یا Claude | مشخصات نمودار نیاز به استدلال فضایی دارد | +| `autoMermaidFixAfterGenerate` | روشن | خطاهای سینتکس LLM را به‌طور خودکار شناسایی می‌کند | +| تقویت دانش محلی | روشن برای مختصات دامنه | دقت را با استفاده از زمینه‌ی vault بهبود می‌بخشد | + +→ [بررسی عمیق نمودارها](/docs/features/diagrams) + +--- + +## ۶. فرآیندهای کاری: خودکارسازی با یک کلیک + +فرآیندهای کاری، چندین وظیفه را در یک دکمه نوار کناری ترکیب می‌کنند. فرمت DSL به این صورت است: + +``` +task1 | task2 | task3 +``` + +مثال: `addLinks` | استخراج مفاهیم | generateDiagram` — پردازش یک یادداشت از متن خام تا تبدیل آن به یک گره دانشی بصری کاملاً متصل، در یک کلیک. + +### فرآیندهای کاری توصیه‌شده + +| فرآیند کاری | زنجیره | کاربرد | +|----------|-------|----------| +| فرآیند کامل | `addLinks \| extractConcepts \| generateDiagram` | یادداشت‌های جدید | +| ابتدا تحقیق کنید | `research \| addLinks` | موضوعات ناآشنا | +| چندزبانه | `translate \| addLinks` | یادداشت‌های چندزبانه | +| فقط نمودار | `generateDiagram` | تصویرسازی سریع | + +→ [بررسی عمیق فرآیندها](/docs/features/workflows) + +--- + +## ۷. LLM ارائه‌دهندگان: ۳۶ گزینه از ابری تا محلی + +Notemd از ۳۶ ارائه‌دهنده در ۴ نوع انتقال پشتیبانی می‌کند. گروه‌های کلیدی: + +- **ابر بین‌المللی**: OpenAI, Anthropic, Google, Mistral, xAI +- **ابر چین**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **گیت‌وی‌ها**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **محلی**: Ollama, LMStudio, OVMS — هیچ کلید API وجود ندارد، هیچ داده‌ای از دستگاه شما خارج نمی‌شود + +### استراتژی مدل بر حسب وظیفه + +مؤثرترین روش، استفاده از مدل‌های ارزان برای وظایف ساده و مدل‌های قدرتمند برای وظایف پیچیده است: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [مرور کلی ارائه‌دهندگان LLM](/docs/providers/overview) + +--- + +## فهرست بررسی‌های اولیه + +1. **نصب Notemd** — [پلاگین‌های جامعه](/docs/getting-started/installation) (توصیه‌شده) یا به صورت دستی +2. **پیکربندی یک ارائه‌دهنده** — DeepSeek (آسان‌ترین روش)، OpenAI، یا Ollama (رایگان) +3. **پردازش اولین یادداشت** — راست‌کلیک → "پردازش فایل (افزودن لینک‌ها)" +4. **تنظیم پوشه مفهوم** — تنظیمات → Notemd → خروجی → پوشه مفهوم +5. **استخراج مفاهیم** — اجرای دستور "Extract concepts" روی همان یادداشت +6. **تولید نمودار** — اجرای دستور "Generate diagram" برای نمایش ارتباطات +7. **ایجاد فرآیند کار** — پیوند دادن مراحل بالا به یک دکمه یک‌کلیکی + +## پیکربندی‌های توصیه‌شده + +### دانشجو (بودجه) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### پژوهشگر (کیفیت) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### حریم خصوصی در اولویت (فقط محلی) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### دوزبانه (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## الگوهای رایج + +### الگو: پردازش یک مقاله پژوهشی + +1. وارد کردن محتوای PDF (یا کپی کردن) +2. **تحقیق** — دریافت اطلاعات وب درباره موضوع +3. **افزودن لینک‌ها** — شناسایی و پیوند دادن مفاهیم کلیدی +4. **استخراج مفاهیم** — ایجاد یادداشت‌های مستقل +5. **تولید نمودار** — نمایش ساختار مقاله + +### الگو: غنی‌سازی یادداشت روزانه + +1. یادداشت روزانه بنویسید +2. **افزودن لینک‌ها** — ایده‌های امروز را به مفاهیم موجود مرتبط می‌کند +3. یادداشت‌های مفهومی با لینک‌های بازخورد به‌طور خودکار به‌روزرسانی می‌شوند + +### الگو: بررسی ادبیات علمی + +1. پوشه‌ای با مقالات/یادداشت‌ها ایجاد کنید +2. **افزودن لینک‌ها به صورت دسته‌ای** — کل پوشه را پردازش کنید +3. **حذف تکرارهای مفهومی** — یادداشت‌های تقریباً مشابه را پاک کنید +4. **تولید نمودار** — نقشه ذهنی کل ادبیات علمی + +--- + +*Notemd منبع باز (MIT) است و با Obsidian 0.15.0+ در تمام پلتفرم‌ها کار می‌کند. [همین حالا نصب کنید](/docs/getting-started/installation) یا [در GitHub ببینید](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/fa/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/fa/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..a05191cb --- /dev/null +++ b/website/i18n/fa/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "پیکربندی Anthropic Claude" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Anthropic Provider + +<TLDR> +**Anthropic از روش انتقال Messages API بومی استفاده می‌کند، نه روش انتقال سازگار با OpenAI.** تنظیمات پیش‌فرض فعلی بر روی `claude-3-5-sonnet-20240620`، `https://api.anthropic.com` و `temperature: 0.5` است. هنگام اشکال‌زدایی، آن را مانند یک سطح پروتکل جداگانه در نظر بگیرید. + +این بخشی از [Obsidian راهنمای مدیریت دانش هوش مصنوعی](/docs/pillar-ai-knowledge) است. +</TLDR> + +## برپایی + +یک کلید Anthropic API ایجاد کنید، یک پروفایل ارائه‌دهنده `Anthropic` اضافه کنید و Base URL را مگر اینکه از طریق یک پروفایل گیت‌وی جداگانه مسیردهی کنید، روی انتهای بومی نگه دارید. در فیلد مدل، شماره مدل Claude مورد نظر خود را انتخاب کنید؛ تنظیم پیش‌فرض، سطح پایه محصول فعلی را پایدار نگه می‌دارد. + +Anthropic گزینه خوبی برای خلاصه‌سازی با کیفیت بالا، ترکیب تحقیقات و استخراج مفاهیم است. اگر آن را با ارائه‌دهندگان ارزان‌تر ترکیب کنید، آن را فقط بر روی وظایفی که از کیفیت خروجی آن سود می‌برند، فعال کنید. + +## انتهای پایگاه و احراز هویت + +| فیلد | تنظیمات پیش‌فرض فعلی | +|-------|----------------| +| روش انتقال | `anthropic` | +| کلید API | مورد نیاز | +| Base URL | `https://api.anthropic.com` | +| مدل پیش‌فرض | `claude-3-5-sonnet-20240620` | +| دمای خروجی | `0.5` | +| آزمایش اتصال | فقط چت | + +زمان اجرا درخواست‌ها را با استفاده از `x-api-key` و `anthropic-version: 2023-06-01` به `/v1/messages` ارسال می‌کند. تحت این تنظیمات پیش‌فرض، یک انتهای پایگاه به سبک OpenAI و `/v1/chat/completions` پیکربندی نکنید؛ به جای آن از یک تنظیمات پیش‌فرض گیت‌وی سازگار با OpenAI استفاده کنید. + +## کشف مدل‌ها + +Anthropic از حالت کشف `anthropic-models` در رجیستری ارائه‌دهندگان استفاده می‌کند. اگر کلید یا حساب شما نتواند مدل‌ها را فهرست کند، یک شناسه مدل شناخته‌شده را در پروفایل نگه دارید و آن را از طریق تست اتصال بررسی کنید. + +انتقال داده‌ها قابل جایگزینی با ارائه‌دهندگان سازگار با OpenAI نیست. مدل‌های Claude که از طریق OpenRouter، LiteLLM یا گیت‌وی دیگری مسیریابی می‌شوند، باید در پروفایل مربوط به همان گیت‌وی قرار گیرند، نه در پروفایل بومی Anthropic. + +## رفع اشکالات + +- `401` یا `403`: محدوده کلید، دسترسی به فضای کاری، صورتحساب‌دهی و اینکه آیا کلید متعلق به فضای کاری مورد انتظار Anthropic است یا خیر را بررسی کنید. +- `404`: Base URL نادرست است یا شناسه مدل انتخاب‌شده برای حساب در دسترس نیست. +- شناسه‌های مدل‌های Claude به سبک گیت‌وی با مشکل مواجه می‌شوند: پروفایل را به ارائه‌دهنده گیت‌وی متناظر منتقل کنید زیرا Anthropic بومی منتظر نام‌های مدل بومی است. +- درخواست‌های طولانی در مراحل پایانی با شکست مواجه می‌شوند: اندازه خروجی مدل برای هر وظیفه را کاهش دهید یا از مدلی استفاده کنید که حد بالاتری برای توکن‌های خروجی داشته باشد. + +## زمان استفاده + +هنگامی که کیفیت در تولید محتوا، یادداشت‌های تحقیقاتی یا نوشتن ساختاریافته برای شما از هزینه خام مهم‌تر است، از Anthropic استفاده کنید. از آن به عنوان جایگزین کلی سازگار با OpenAI استفاده نکنید؛ هدف اصلی، انتقال داده‌های جداگانه است و ترکیب پروتکل‌ها تشخیص مشکلات را دشوارتر می‌کند. + +--- + +## گام‌های بعدی + +- [LLM Providers](/docs/providers/overview) -- پیکربندی کامل، مدل‌های مخصوص هر وظیفه و منطق تلاش مجدد +- [Troubleshooting](/docs/advanced/troubleshooting) -- رفع خطاهای 401/403 و مشکلات اتصال diff --git a/website/i18n/fa/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/fa/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..55ee5452 --- /dev/null +++ b/website/i18n/fa/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "ارائه‌دهندگان چین" +description: "پیکربندی Qwen، DeepSeek، GLM و غیره." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# ارائه‌دهندگان چین + +<TLDR> +**Notemd از طریق پایانه‌های سازگار با OpenAI، ارائه‌دهندگان منطقه چین و با منشأ چین را پشتیبانی می‌کند.** مجموعه فعلی شامل DeepSeek، Qwen، Qwen Code، Doubao، Moonshot، Xiaomi MiMo، GLM، MiniMax، Baidu Qianfan، SiliconFlow، Huawei Cloud MaaS و Z AI است. مزیت آن دسترسی منطقه‌ای و کنترل هزینه است؛ ریسک آن نام‌گذاری مدل‌های مخصوص ارائه‌دهنده و محدودیت‌های حساب است. + +این بخشی از [Obsidian راهنمای مدیریت دانش هوش مصنوعی](/docs/pillar-ai-knowledge) است. +</TLDR> + +## برپایی + +حساب ارائه‌دهنده را ایجاد کنید، یک کلید API تولید نمایید، سپس به جای استفاده از پروفایل عمومی OpenAI، از پیش‌تنظیم متناظر Notemd استفاده کنید. این پیش‌تنظیم شامل Base URL پیش‌فرض، حالت آزمایشی API، رفتار کشف مدل و هر فیلد مخصوص ارائه‌دهنده مانند UI است. + +در اینجا از انتخاب مدل بر حسب وظیفه به طور فعال استفاده کنید. به عنوان مثال، در فرآیندهایی که نیاز به استدلال زیادی دارند، از DeepSeek یا GLM استفاده کنید، برای کارهای گسترده به زبان چینی از Qwen یا Moonshot استفاده کنید، و وظایف کدنویسی را به Qwen Code ارجاع دهید زمانی که آن حساب مدل‌های کدنویسی را فراهم می‌کند. + +## انتهای پایگاه و احراز هویت + +| ارائه‌دهنده | مدل پیش‌فرض | Base URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (شناسه پایانه الزامی است) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**توجه:** Doubao به جای نام مدل استاندارد، به یک شناسه پایانه Ark (فرمت: `ep-xxxxxxxx-xxxx-xxxx`) نیاز دارد. + +اکثر این ارائه‌دهندگان از زمان‌بندی مشترک سازگار با OpenAI استفاده می‌کنند، اما معانی حساب و مدل آن‌ها متفاوت است. مگر اینکه شناسه پایانه جایگزین حساب را بررسی کرده باشید، از Base URL مخصوص پیش‌تنظیم استفاده کنید. + +## کشف مدل‌ها + +DeepSeek، Qwen، Qwen Code، Doubao، Moonshot، Xiaomi MiMo، GLM، Z AI، MiniMax، Baidu Qianfan و SiliconFlow در صورتی که ارائه‌دهنده امکان فهرست‌بندی را داشته باشد، از روش کشف مدل سازگار با OpenAI استفاده می‌کنند. Huawei Cloud MaaS از حالت `huaweicloud-modelarts-models` استفاده می‌کند زیرا فراداده‌های استقرار ModelArts با لیست عمومی `/v1/models` یکسان نیست. + +شکست در کشف را به عنوان دلیلی بر عدم امکان گفت‌وگو در نظر نگیرید. برخی ارائه‌دهندگان اجازه گفت‌وگو را در حالی که مجوزهای فهرست مدل را محدود می‌کنند، فراهم می‌کنند. در چنین مواردی، یک شناسه مدل صریح را در پروفایل نگه دارید و آن را با تست اتصال بررسی کنید. + +## رفع اشکالات + +- احراز هویت موفق بود اما گفت‌وگو شکست خورد: نام مدل ممکن است خارج از مجوزها یا منطقه حساب باشد. +- Doubao با یک نام مدل عادی شکست می‌خورد: هنگامی که استقرار شما نیاز به آن دارد، از شناسه پایانه Ark در فیلد مدل استفاده کنید. +- پاسخ‌های استدلالی کوتاه می‌شوند: حداکثر تعداد توکن خروجی مخصوص ارائه‌دهنده و تنظیمات حداکثر توکن مبتنی بر مدل Notemd را بررسی کنید. +- شبکه‌های منطقه‌ای متفاوت هستند: هنگامی که ماشین خزانه در داخل چین است، از پایانه منطقه چین ارائه‌دهنده استفاده کنید؛ تنها زمانی از پایانه بین‌المللی استفاده کنید که هم حساب و هم مسیر شبکه معتبر باشند. + +## زمان استفاده + +در صورتی که تأخیر منطقه‌ای، دسترسی به پرداخت/حساب، کیفیت زبان چینی یا هزینه محدودیت اصلی باشند، از ارائه‌دهندگان چینی استفاده کنید. هنگامی که نیاز به مرز پروتکل ساده‌تر یا یکپارچگی قوی‌تر در اشکال‌زدایی بین ارائه‌دهندگان دارید، ارائه‌دهندگان مستقیم OpenAI، Anthropic، Google یا محلی را ترجیح دهید. + +--- + +## گام‌های بعدی + +- [LLM Providers](/docs/providers/overview) -- پیکربندی کامل، مدل‌های مخصوص هر وظیفه و منطق تلاش مجدد +- [رفع اشکال](/docs/advanced/troubleshooting) -- رفع خطاهای اتصال منطقه‌ای و احراز هویت diff --git a/website/i18n/fa/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/fa/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..4cce0fa8 --- /dev/null +++ b/website/i18n/fa/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "پیکربندی Google Gemini" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Google Provider + +<TLDR> +**Google از روش انتقال زبان تولیدی بومی Gemini API استفاده می‌کند.** پیش‌فرض فعلی به `gemini-2.0-flash-exp`، `https://generativelanguage.googleapis.com/v1` و `temperature: 0.5` تنظیم شده است. این یک پروفایل سازگار با OpenAI نیست. + +این بخشی از [Obsidian راهنمای مدیریت دانش هوش مصنوعی](/docs/pillar-ai-knowledge) است. +</TLDR> + +## برپایی + +ایجاد یک کلید Cloud API از نوع Google AI Studio یا Google با دسترسی به Gemini، افزودن یک پروفایل ارائه‌دهنده `Google`، و حفظ Base زبان تولیدی بومی URL. از پروفایل پیش‌فرض Gemini Flash برای ترجمه سریع و کارهای یادداشتی گسترده استفاده کنید، سپس هنگام نیاز به مدل Gemini بزرگ‌تر یا قدرتمندتر، مدل‌های مورد نیاز را برای هر وظیفه تغییر دهید. + +از قرار دادن شناسه‌های مدل Gemini در یک پروفایل سازگار با OpenAI خودداری کنید مگر اینکه صراحتاً از یک گیت‌وی استفاده کنید که Gemini را از طریق یک روش سازگار با OpenAI و API در دسترس قرار دهد. + +## انتهای پایگاه و احراز هویت + +| فیلد | تنظیمات پیش‌فرض فعلی | +|-------|----------------| +| روش انتقال | `google` | +| کلید API | مورد نیاز | +| Base URL | `https://generativelanguage.googleapis.com/v1` | +| مدل پیش‌فرض | `gemini-2.0-flash-exp` | +| دمای خروجی | `0.5` | +| آزمایش اتصال | فقط چت | + +زمان اجرا به `/models/{model}:generateContent?key={apiKey}` فراخوانی می‌شود. کلید به عنوان پارامتر جستجو منتقل می‌شود زیرا این روش، رابط بومی Gemini در پلاگین را پیکربندی کرده است. + +## کشف مدل‌ها + +Google از حالت کشف `google-models` استفاده می‌کند. کشف باید مدل‌های Gemini موجود برای کلید API را برگرداند؛ اگر گزینه انتخاب خالی باشد، کلید را با همان Base URL آزمایش کرده و تأیید کنید که خانواده مدل برای آن حساب فعال شده است. + +سقف‌های شناخته‌شده توکن خروجی در رجیستر ارائه‌دهندگان، مبتنی بر مدل هستند. اگر ترجمه طولانی یا توضیحات نمودار کوتاه شود، مدل Gemini با ظرفیت خروجی بالاتر یا اندازه خروجی کمتر را انتخاب کنید. + +## رفع اشکالات + +- `400`: شناسه مدل معمولاً با مسیر بومی Gemini مطابقت ندارد یا درخواست از حد شکل پشتیبانی‌شده مدل فراتر می‌رود. +- `401` یا `403`: محدودیت‌های کلید، فعال‌سازی پروژه/API و اینکه آیا کلید می‌تواند به Gemini دسترسی داشته باشد را بررسی کنید. +- `404`: شناسه مدل در نسخه API پیکربندی‌شده در دسترس نیست. +- مثال‌های گیت‌وی در این پروفایل شکست می‌خورند: به جای ارائه‌دهنده بومی Google، از پیش‌فرض گیت‌وی استفاده کنید. + +## زمان استفاده + +از Google برای ترجمه سریع، پاکسازی حجم زیاد یادداشت‌ها و کارهایی که تعادل هزینه/عملکرد Gemini بهتر از OpenAI یا Anthropic مستقیم است، استفاده کنید. برای کارهایی که نیاز به مدیریت مدل‌های استدلالی سازگار با OpenAI دارند، از ارائه‌دهنده دیگری استفاده کنید. + +--- + +## گام‌های بعدی + +- [LLM Providers](/docs/providers/overview) -- پیکربندی کامل، مدل‌های مخصوص هر وظیفه و منطق تلاش مجدد +- [ترجمه](/docs/features/translation) -- برای وظایف ترجمه حجیم، استفاده از Gemini Flash توصیه می‌شود diff --git a/website/i18n/fa/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/fa/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..0d61837a --- /dev/null +++ b/website/i18n/fa/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "مدل‌های محلی" +description: "پیکربندی Ollama و LLMهای محلی" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# مدل‌های محلی + +<TLDR> +**ارائه‌دهندگان محلی محتوای یادداشت‌ها را از APIهای میزبانی‌شده دور نگه می‌دارند.** مسیر محلی فعلی، Ollama را با حمل‌ونقل بومی `ollama` و LMStudio را از طریق حمل‌ونقل سازگار با OpenAI پوشش می‌دهد. هیچ کلید APIی برای هیچ‌کدام از این مسیرها لازم نیست، اما سرور و مدل محلی باید از قبل در حال اجرا باشند. + +این بخشی از [Obsidian راهنمای مدیریت دانش هوش مصنوعی](/docs/pillar-ai-knowledge) است. +</TLDR> + +## برپایی + +برای Ollama، Ollama را نصب کنید، مدل مورد نظر خود را بکشید، سرور را راه‌اندازی کنید و یک پروفایل ارائه‌دهنده `Ollama` را در Notemd اضافه کنید. برای LMStudio، مدل را در سرور محلی LM Studio بارگذاری کرده و یک پروفایل ارائه‌دهنده `LMStudio` اضافه کنید. + +مدل‌های محلی وابستگی‌های عملیاتی هستند، نه فقط تنظیمات. Notemd تنها می‌تواند به آنچه فرآیند محلی ارائه می‌دهد دسترسی پیدا کند، بنابراین قبل از اشکال‌زدایی پلاگین، مدل محلی را خارج از Obsidian بررسی کنید. + +## انتهای پایگاه و احراز هویت + +| ارائه‌دهنده | Base URL | مدل پیش‌فرض | کلید API | یادداشت‌ها | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | ضروری نیست | پخش NDJSON؛ کشف مدل از طریق `/api/tags` | +| LMStudio | `localhost:1234/v1` | `local-model` | ضروری نیست | `"EMPTY"` را به عنوان توکن حامل ارسال می‌کند؛ سازگار با OpenAI | + +Ollama از مسیر بومی `/chat` در زیر Base URL خود استفاده می‌کند. LMStudio از مسیر `chat/completions` سازگار با OpenAI پیروی کرده و انتظار دارد مدلی که در سرور محلی بارگذاری شده باشد، در دسترس باشد. + +## کشف مدل‌ها + +Ollama از حالت کشف `ollama-tags` استفاده کرده و برچسب‌های بکشیده‌شده به صورت محلی را فهرست می‌کند. LMStudio هنگامی که سرور آن `/v1/models` را ارائه می‌دهد، از روش کشف مدل سازگار با OpenAI استفاده می‌کند. + +اگر کشف هیچ چیزی برنگرداند، معمولاً مشکلی در وضعیت سرور محلی وجود دارد: مدل بکشیده نشده، بارگذاری نشده یا سرور به میزبان/پورتی متفاوت از پروفایل متصل است. + +## رفع اشکالات + +- درخواست اتصال رد شد: Ollama یا LM Studio را راه‌اندازی کرده و پورت پیکربندی‌شده را بررسی کنید. +- مدل پیدا نشد: قبل از آزمایش، برچسب Ollama را بکشید یا مدل LM Studio را بارگذاری کنید. +- خروجی آهسته: اندازه زمینه را کاهش دهید، از یک مدل محلی کوچک‌تر استفاده کنید یا وظایف سنگین را به یک ارائه‌دهنده میزبانی‌شده ارسال کنید. +- پاسخ‌های خالی یا نامعتبر: تأیید کنید که پروفایل ارائه‌دهنده انتخاب‌شده با پروتکل سرور محلی مطابقت دارد؛ Ollama و LMStudio قابل جایگزینی نیستند. + +## زمان استفاده + +برای خزانه‌های خصوصی، کار آفلاین یا وظایف تکراری ارزان، از ارائه‌دهندگان محلی استفاده کنید. فرض نکنید که استفاده از منابع محلی به‌طور خودکار برای ترکیب تحقیقات یا استدلال‌های طولانی‌مدت بهتر است؛ کیفیت مدل و محدودیت‌های سخت‌افزاری، معادلات معامله هستند. + +--- + +## گام‌های بعدی + +- [LLM ارائه‌دهندگان](/docs/providers/overview) -- پیکربندی کامل و تنظیم مدل برای هر وظیفه +- [رفع اشکال](/docs/advanced/troubleshooting) -- رفع خطاهای connection-refused زمانی که سرور محلی در حال اجرا نیست diff --git a/website/i18n/fa/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/fa/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..c3c01d1c --- /dev/null +++ b/website/i18n/fa/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "پیکربندی OpenAI (GPT-4، GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# OpenAI Provider + +<TLDR> +**OpenAI از روش انتقال سازگار با OpenAI مشترک استفاده می‌کند.** تنظیمات پیش‌فرض فعلی بر روی `gpt-4o`، `https://api.openai.com/v1`، `temperature: 0.5` و آزمایش اتصال `models-then-chat` تنظیم شده‌اند. هنگامی که به معانی دقیق فیلدها نیاز دارید از این صفحه استفاده کنید؛ برای انتخاب در سطح دسته، از مرورکننده [LLM Providers](/docs/providers/overview) استفاده نمایید. + +این بخشی از [Obsidian راهنمای مدیریت دانش هوش مصنوعی](/docs/pillar-ai-knowledge) است. +</TLDR> + +## برپایی + +یک کلید OpenAI API ایجاد کنید، یک پروفایل ارائه‌دهنده `OpenAI` را در تنظیمات Notemd اضافه کنید و مقدار پیش‌فرض Base URL را حفظ نمایید مگر اینکه عمداً به یک گیت‌وی سازگار با OpenAI اشاره کنید. فیلد مدل می‌تواند برای کارهای عمومی روی `gpt-4o` باقی بماند یا با شناسه مدل دیگری از نوع OpenAI که حساب کاربری شما می‌تواند آن را فراخوانی کند، جایگزین شود. + +برای کنترل هزینه از مدل‌های ویژه برای وظایف خاص استفاده کنید: مدل‌های قوی‌تر را برای تحقیق، استخراج مفاهیم و بازسازی متن‌های طولانی به کار ببرید؛ مدل‌های ارزان‌تر یا سریع‌تر را برای ترجمه، پیشنهاد لینک و خلاصه‌های کوتاه استفاده نمایید. + +## انتهای پایگاه و احراز هویت + +| فیلد | تنظیمات پیش‌فرض فعلی | +|-------|----------------| +| روش انتقال | `openai-compatible` | +| کلید API | مورد نیاز | +| Base URL | `https://api.openai.com/v1` | +| مدل پیش‌فرض | `gpt-4o` | +| دمای خروجی | `0.5` | +| آزمایش اتصال | `/models`، سپس `/chat/completions` | + +Notemd قبل از افزودن `chat/completions` یا `models`، مقادیر پایه سازگار با OpenAI را استانداردسازی می‌کند. در Base URL نباید `/chat/completions` پایانی وجود داشته باشد؛ زیرا این کار منجر به ایجاد مسیر تکراری می‌شود. + +## کشف مدل‌ها + +OpenAI از مسیر کشف مدل سازگار با OpenAI استفاده می‌کند. تنظیمات UI ابتدا از `/v1/models` درخواست می‌کند و سپس مدل انتخاب‌شده را با یک درخواست چت سبک بررسی می‌کند. اگر کشف مدل موفقیت‌آمیز نبود اما چت همچنان کار می‌کند، بررسی کنید که آیا کلید شما دارای مجوز list مدل است یا یک گیت‌وی مانع نمایش فهرست مدل‌ها شده است. + +مدل‌های استدلالی به عنوان یک مورد خاص پروتکل در نظر گرفته می‌شوند: Notemd محتوای دستورات سیستم و کاربر را برای شناسه‌های استدلالی OpenAI ادغام می‌کند که نقش جداگانه `system` را رد می‌کنند، و تنها در مواردی `reasoningEffort` را نمایش می‌دهد که تعریف ارائه‌دهنده از آن پشتیبانی کند. + +## رفع اشکالات + +- `401` یا `403`: کلید، دسترسی پروژه، وضعیت صورتحساب و اینکه آیا مدل انتخاب‌شده برای کلید فعال است یا خیر را بررسی کنید. +- `404` در چت: Base URL معمولاً نادرست است یا از پیش شامل `/chat/completions` می‌باشد. +- مدل در مستندات وجود دارد اما در انتخاب‌کننده نیست: دسترسی list مدل و دسترسی چت نقاط خرابی جداگانه‌ای هستند؛ شناسه دقیق مدل را به صورت دستی در پروفایل ارائه‌دهنده آزمایش کنید. +- مدل استدلالی پیام‌ها را رد می‌کند: از شناسه مدلی که توسط مسیر پردازش استدلال OpenAI پوشش داده می‌شود استفاده کنید یا به یک مدل چت غیراستدلالی روی آورید. + +## زمان استفاده + +هنگامی که می‌خواهید مسیر میزبانی پیش‌فرض قابل پیش‌بینی‌تری داشته باشید، هنگامی که کشف `/v1/models` اهمیت دارد، یا وقتی یک فرآیند کاری به معانی مدل استدلالی OpenAI وابسته است، از OpenAI استفاده کنید. هنگامی که مسیریابی، حریم خصوصی یا کنترل هزینه اهمیت بیشتری نسبت به رفتار مستقیم OpenAI API دارد، از یک گیت‌وی یا ارائه‌دهنده محلی استفاده کنید. + +--- + +## گام‌های بعدی + +- [LLM Providers](/docs/providers/overview) -- پیکربندی کامل، مدل‌های مخصوص هر وظیفه و منطق تلاش مجدد +- [رفع اشکال](/docs/advanced/troubleshooting) -- رفع خطاهای 401/403 و محدودیت‌های نرخ درخواست diff --git a/website/i18n/fa/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/fa/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..0f6adf79 --- /dev/null +++ b/website/i18n/fa/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "فراهم‌کنندگان LLM" +description: "پیکربندی ۳۶ فراهم‌کننده LLM — ابری، گیت‌وی و محلی — با انتخاب مدل بر حسب وظیفه" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# فراهم‌کنندگان LLM + +<TLDR> +**Notemd از ۳۶ فراهم‌کننده LLM در ۴ نوع انتقال پشتیبانی می‌کند.** تمام فراخوانی‌های API از HTTP خام (بدون SDKها) استفاده کرده و دارای تلاش مجدد خودکار، جایگزینی انتقال و ذخیره‌سازی پاسخ به مدت ۵ دقیقه هستند. انتخاب مدل بر حسب وظیفه امکان استفاده از مدل‌های ارزان برای استخراج مفاهیم و مدل‌های قدرتمند برای تحقیقات را فراهم می‌کند. برای فراهم‌کنندگان محلی (Ollama، LMStudio) نیازی به کلید API نیست. +</TLDR> + +این بخشی از [Obsidian راهنمای مدیریت دانش هوش مصنوعی](/docs/pillar-ai-knowledge) است. + +## رده‌های فراهم‌کننده + +### فراهم‌کنندگان ابری + +| ارائه‌دهنده | پایه‌ی پیش‌فرض URL | مدل پیش‌فرض | دمای خروجی | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### فراهم‌کنندگان گیت‌وی / پروکسی + +| ارائه‌دهنده | پایه‌ی پیش‌فرض URL | مدل پیش‌فرض | یادداشت‌ها | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | افزودن هدرهای `HTTP-Referer` + `X-Title` | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | افزودن هدر `X-GitHub-Api-Version` | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | افزودن هدر `APP-Code` | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | کلید اختیاری API | +| **نوع جدید API** | `localhost:3000/v1` | `gpt-4.1` | کلید اختیاری API | +| **OpenAI Compatible** | (تنظیم‌شده توسط کاربر) | `your-model-id` | نقطه پایان سفارشی | + +### ارائه‌دهندگان چین + +| ارائه‌دهنده | پایه پیش‌فرض URL | مدل پیش‌فرض | یادداشت‌ها | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | متمرکز بر برنامه‌نویسی | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (شناسه پایانه الزامی است) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | نقطه پایان Zhipu، چین | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | نقطه پایان بین‌المللی Zhipu | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | پلتفرم میزبانی مدل‌ها | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao نیاز به شناسه نقطه پایان Ark دارد** (فرمت: `ep-xxxxxxxx-xxxx-xxxx`). جایگزینی جایگزین پیش‌فرض الزامی است. + +### ارائه‌دهندگان محلی + +| ارائه‌دهنده | پایه پیش‌فرض URL | مدل پیش‌فرض | یادداشت‌ها | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | هیچ کلید API وجود ندارد. پخش NDJSON. کشف مدل از طریق `/api/tags` | +| **LMStudio** | `localhost:1234/v1` | `local-model` | ارسال `"EMPTY"` به عنوان توکن بیرر. کشف سازگار با OpenAI | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (تنظیم‌شده توسط کاربر) | `gpt-4o` | نام استقرار در URL. هدر `api-key` | + +## انتخاب مدل بر حسب وظیفه + +Notemd از ارائه‌دهنده و مدل مستقل برای هر وظیفه پشتیبانی می‌کند. آن را با `useMultiModelSettings: true` فعال کنید. + +### وظایف موجود + +| وظیفه | کلید تنظیمات | ارائه‌دهنده پیش‌فرض | +|------|-------------|-----------------| +| افزودن لینک‌ها (قرار دادن لینک ویکی) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| تحقیق (جستجوی وب + خلاصه‌سازی) | `researchProvider` / `researchModel` | DeepSeek | +| تولید از عنوان | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| ترجمه | `translateProvider` / `translateModel` | DeepSeek | +| تولید نمودار | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| استخراج مفهوم | `extractConceptsProvider` / `Model` | DeepSeek | +| استخراج متن اصلی | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### ترتیب رفع مشکلات + +1. اگر `useMultiModelSettings` فعال باشد → از ارائه‌دهنده و مدل مخصوص وظیفه استفاده کنید +2. اگر تغییر مدل وظیفه خالی باشد → به مدل پیش‌فرض ارائه‌دهنده رجوع کنید +3. اگر ارائه‌دهنده وظیفه نامعتبر باشد → به `activeProvider` جهانی رجوع کنید +4. اگر `useMultiModelSettings` خاموش باشد → تمام وظایف از `activeProvider` جهانی استفاده می‌کنند + +### پیکربندی‌های توصیه‌شده + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## معماری فراخوانی API + +### لایه‌های انتقال + +1. **Obsidian `requestUrl`** — اصلی (داخلی، روی تمام پلتفرم‌ها کار می‌کند) +2. **Desktop HTTP** — ماژول‌های Node.js `http`/`https` (ستریمینگ + درخواست‌های طولانی) +3. **Web `fetch`** — گزینه جایگزین هنگام عدم در دسترس بودن ماژول‌های Node.js + +این پلاگین به‌طور خودکار در صورت خطاهای موقت شبکه، بین لایه‌های انتقال جابجا می‌شود. + +### منطق تلاش مجدد + +- **حالت عادی** (`enableStableApiCall: false`): یک تلاش. در صورت خطا موقت، به‌طور خودکار به تلاش مجدد پایدار ارتقا می‌یابد. +- **حالت تلاش مجدد پایدار** (`enableStableApiCall: true`): تا ۴ تلاش (۱ + ۳ تلاش مجدد) با فواصل ۵ ثانیه‌ای. +- **خطاهای موقتی که باعث تلاش مجدد می‌شوند**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **غیرقابل تلاش مجدد**: HTTP 400, 401, 403, 404 + +### کش‌سازی پاسخ‌ها + +کش LRU در حافظه با مدت زمان ۵ دقیقه که بر اساس ارائه‌دهنده + مدل + دما + پرامپت + محتوا کلیدگذاری می‌شود. درخواست‌های یکسان بعدی در عرض ۵ دقیقه بلافاصله با نتایج کش‌شده پاسخ داده می‌شوند. + +### مدیریت مدل‌های استدلالی + +مدل‌هایی که از نقش `system` پشتیبانی نمی‌کنند (DeepSeek R1, OpenAI o1/o3/o4/gpt-5) به‌طور خودکار پرامپت‌های سیستم و کاربر را در یک پیام کاربری واحد ترکیب می‌کنند. + +DeepSeek-مشخص: `thinkingEnabled` `{ thinking: { type: 'enabled' } }` را به درخواست اضافه می‌کند. `reasoningEffort` (پایین/متوسط/بالا) به عنوان `reasoning_effort` منتقل می‌شود. هنگام فعال بودن حالت تفکر، اطمینان حاصل می‌شود که حداکثر توکن‌های خروجی ≥ 8000 باشد. + +### تخمین توکن + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — روش هیوریستیک ۴ کاراکتر برای هر توکن. برای اعمال `maxResearchContentTokens` قبل از ارسال به LLM استفاده می‌شود. + +هیچ ردیابی هزینه‌ای پیاده‌سازی نشده است. + +## کشف مدل‌ها + +| حالت | ارائه‌دهندگان | نقطه پایان | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | لیست مدل‌ها API | +| `anthropic-models` | Anthropic | لیست مدل‌ها API | +| `openai-compatible-models` | DeepSeek، Qwen، Mistral و غیره. | `/v1/models` | +| `openrouter-models` | OpenRouter | لیست مدل‌ها API | +| `github-models` | GitHub Models | استنتاج API | +| `none` | Azure OpenAI | غیرفعال (نیاز به نام پیاده‌سازی دارد) | + +## شروع سریع + +1. **یک ارائه‌دهنده انتخاب کنید** — DeepSeek (چین)، OpenAI (بین‌المللی) یا Ollama (محلی/رایگان) +2. **کلید API را وارد کنید** — تنظیمات → Notemd → ارائه‌دهنده → کلید API +3. **اتصال را آزمایش کنید** — روی دکمه آزمایش کلیک کنید +4. **گزینه‌ای: مدل‌های مخصوص هر وظیفه** — `useMultiModelSettings` را فعال کنید و به‌طور جداگانه پیکربندی نمایید + +برای Ollama: نیازی به کلید API نیست. فقط مطمئن شوید که `ollama serve` در حال اجراست. + +--- + +## گام‌های بعدی + +- 📝 [یادداشت‌های مفهومی](/docs/features/concept-notes) — از مدل استخراج مخصوص هر وظیفه استفاده می‌کند +- 🎨 [نمودارها](/docs/features/diagrams) — از مدل نمودار مخصوص هر وظیفه استفاده می‌کند +- 🔍 [تحقیقات](/docs/features/research) — از مدل مخصوص تحقیقات استفاده می‌کند +- ⚙️ [پیکربندی](/docs/getting-started/configuration) — منبع کامل تنظیمات diff --git a/website/i18n/fa/docusaurus-theme-classic/footer.json b/website/i18n/fa/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/fa/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/fa/docusaurus-theme-classic/navbar.json b/website/i18n/fa/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/fa/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/fi/code.json b/website/i18n/fi/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/fi/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/fi/docusaurus-plugin-content-docs/current.json b/website/i18n/fi/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/fi/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/fi/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/fi/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..423e3c24 --- /dev/null +++ b/website/i18n/fi/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "Pakettiprosessointi" +description: "Tehokas monien tiedostojen käsittelemine" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# Pakettiprosessointi + +<TLDR> +**Notemd prosessoi koko kansiojen kokonaisuuden yhdellä toiminnalla, mahdollistając konfiguroitavan samanaikaisuuden ja kirjoittamisen hallinnan.** Paina oikea painikka kansiolle, jotta voit pakettina lisätä wiki-linkkejä, poistaa käsiteltyjä aineita, tehdä tutkimuksia tai kääntää kaikki sisällössä olevat tiedot. Samanaikaisuusrajoitteet estävät API-virheiden syntyä. Edenemistä ilmoitetaan tiedostojen mukaan. Kirjoittaminen voi toimia eri tavoin: jättää olemassa olevat tiedot, lisätä ne tai asettaa uudet tiedot. Epäonnistuneet tiedostot tallennetaan ilman paketin keskeyttämistä. + +Tämä kuuluu [Obsidian AI-tietojen hallintasuunnitelmaan](/docs/pillar-ai-knowledge). +</TLDR> + +## Yleenvaate + +Pakettiprosessointi muuttaa tiedostokansion yhteen toiminnaksi. Sijaan siitä, että avataan jokainen tiedosto ja käytetään komenteja erikseen, painetaan oikea painikka kansiolle ja valitaan toimenpide. Notemd käy kautta kaikista `.md`-tiedostojen ja soveltaa valittua toimintaa, ilmoittając edenemistä reaalissa aikassa. + +Tämä ominaisuus on olennainen koko avaran tietojen poistamiseen. Esimerkiksi pärast kymmeniä PDF-tiedostojen impordia voi pakettina lisätä linkkejä ja sitten pakettina poistaa käsiteltyjä aineita, mikä rakentaa tietograafian minutin aikassa, ei tuntien aikassa. + +## Kuidas se toimii + +### Pakettikäytännön malli + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **Tiedostojen kerääminen** -- Notemd skannaa tarkoituksen kansion rekursiivisesti (tai vain ylemmällä tasolla, riippuen asetuksista) ja kerää kaikki `.md`-tiedostot. +2. **Samanaikaisuuden jakaminen** -- Tiedostot jakataan osiin vastaavasti `batchConcurrency`-asetukseen. Jokainen osa toimii samalla aikalla; muut osat toimivat järjestysmukaisesti. +3. **Käyttö** -- Jokainen tiedosto käsitellään samalla loogikalla kuin yksityisen tiedoston komentoilla. Yksittäisten toimintojen ja mallien asetukset arvestetaan. +4. **Edenemistiedot** -- Jokaisen tiedoston valmistumisen jälkeen ilmestyy ilmoitus, joka näyttää `N / Total`-edennystä. +5. **Virhehallinta** -- Jos tiedosto epäonnistuu (API-virhe, verkon aikataulu jne.), virhe tallennetaan ja paketti jatkuu. Lopullinen yhteenveto listaa kaikki epäonnistuneet tiedostot. +6. **Valmistuminen** -- Yhteenvetoilmoitus ilmoittaa kokonaisen käsiteltyn määrän, edustavat toiminnat ja epäonnistukset. + +### Yrittäytyminen kirjoittamiseen + +Tarkistetaan tiedosto, jossa on jo wiki-linkkejä, konseptitietoja tai käännöksiä; Notemd-nin toiminta riippuu kirjoittamisasetuksesta: + +| Režimi | Toiminta | +|------|----------| +| **Jätä kuin on** | Olemassa oleva sisältö jää muutomattomaksi. Tarkistetaan vain muuttomia tiedostoja. | +| **Lisää** (perustaulukko) | Uusi sisältö lisätään. Olemassa olevat wiki-linkkejä, konseptitietot tai käännöksyt säilyvät. | +| **Asenda** | Tiedosto tarkistetaan uudelleen kokonaan. Kaikki aiemmat Notemd-nin muutokset kirjoitetaan üle. | + +Wiki-linkkejä koskevaltia: jos tiedosto sisältää juba `[[wiki-links]]`, režimi **Jätä kuin on** jättää sen muutomattomaksi, samalla kun režimi **Asenda** lähettää koko tiedon uudelleen LLM-lle uusien linkkien lisäämiseksi. Käytä **Jätä kuin on** suorittamiseen jatkuvasti ja **Asenda** muutokset tulostamiseen tilannossa, kun malli on uudennettu. + +### Samaa aikaa käytetään tiedostoja + +`batchConcurrency`-nin asetus rajoittaa samanaikaisia API-äviä. Tämä estää kiirustaksojen virheitä (HTTP 429) suurten kansiojen tarkistamiselta tarjoajilla, jotka käyttävät strictseja kvoteja. + +| Samaa aikaa käytetään tiedostoja | Suositeltu käyttökohtaisuudet | Typical Rate-Limit Impact | +|-------------|----------------|---------------------------| +| `1` | Tasuta tierit, striikkinpitäjät | Ei (sarakkeet) | +| `3` (omistusasetus) | Enimmäiset pilvapalvelut | Matala | +| `5` | Ollama (lokalisoinnin), suuri tierit | Ei / Matala | +| `10` | Lokalisoinnin mallit nopealla tulostuksella | Ei | + +Jos saat 429-virheitä paketitöökalujen käytön aikana, vähentä samanaikaisia pyyntöjä 1 tai 2:ksi. + +## Konfigurointi + +| Asetus | Omistusasetus | Vaikutus | +|---------|---------|--------| +| `batchConcurrency` | `3` | Maksimillinen samanaikainen API-pyyntö kaustatoimintojen aikana | +| `batchOverwriteExisting` | `false` | Kirjoita olemassa oleva Notemd-sisältö üle. `false` = lisääminen-režiimi. | +| `batchSkipProcessed` | `false` | Jätä huomiotta tiedostot, jotka sisältävät jo Notemd-merkkejä (esim. wiki-liitkeitä) | +| `batchRecursive` | `true` | Lisää alamkataloogit kataloogin skannauksessa | +| `enableStableApiCall` | `false` | Aktivoi uudellepyyntilogika (kunnen 4 yrittäjää) jokaisen tiedoston kanssa pakettoinnin aikana | + +### Työpäivän mukaiset mallit pakettiprosessoinnin kanssa + +Jokainen paketto-toiminta käyttää vastaavaa tehtävän mukaista mallia. Batch-add-links käyttää `addLinksProvider`, batch-research käyttää `researchProvider` ja niin edelleen. Tämä tarkoittaa, että voit määritellä halvempat mallit suuremman määrän toimintoille ja varata kallempat mallit laadun suhteessa tärkeille tehtäville. + +## Esimerkki + +Sinulla on kausta `papers/`, jossa on 40 impordattua tutkimusnotaa. Haluat lisätä wiki-linkkejä ja erottaa ymmärrettävät aiheet kaikista niistä. + +1. Oikeasta paina `papers/` -kaustaa +2. Valitse **"Notemd: Process folder (add links)"** +3. Notemd skannaa kaustan, löytää 40 `.md` -failia ja töötlee ne kolmea kerralla (perusyhteistyösuunta) +4. Edenemisilmoitus näyttää: `12/40 files processed...` +5. Laukkuun ~3 minuutin jälkeen yhteenvetolimoitus raportoi: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. Kertoa uudelleen **"Notemd: Process folder (extract concepts)"**, jotta luodetaan concept -notat kaikille 40 -leihin + +Yksi epäonnistunut faili tallentuu. Voit käyttää sen uudelleen myöhemmin. + +## Vinkit + +- **Alka matalalla yhteistyösuuntailla** -- Jos et tiedä oma palveluntarjoajan kiirustaksoja, alka `1` -lla ja suurenda järk-käyrin. +- **Käytä skip -režiimiin muutoksetekojen päivittämiseen** -- Pärast ensimmäistä täysää osaa vaihtaa `batchSkipProcessed: true` -lle, jotta vain uusimmat notat töödellään seuraavissa käyttöissä. +- **Aktivoi stabilit API -kutsut** -- `enableStableApiCall: true` lisää uudelleenkäynnillogikan, joka toistaa toiminnan ajatusmuotoisen verkonvirheiden korjaamiseksi pitkissä osissa. +- **Käytä uudelleen pärast mallin uusentamista** -- Jos vaihtaat paremmaan malliin, aseta `batchOverwriteExisting: true` -lle ja käytä uudelleen, jotta saad paremmat linkit ja concept -notat. + +--- + +## Järguvät toimet + +- [Workflows](/docs/features/workflows) -- Yhdistä osataskut yhdellä painamiskertaisella sivupuolen painikkeella +- [Custom Prompts](/docs/advanced/custom-prompts) -- Kohanda prompteja osataskujen poistamiseen +- [Troubleshooting](/docs/advanced/troubleshooting) -- Korjaa kiirustaksovirheet ja yhteyshäiriöt osataskujen käyttössä +- [LLM Tarjoajat](/docs/providers/overview) -- Tekstin mukaan mallikonfiguroinnin viite diff --git a/website/i18n/fi/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/fi/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..d2fd8d0f --- /dev/null +++ b/website/i18n/fi/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "Kohdanomaiset pyyntöt" +description: "Kohanna LLM-kysymyksiä omaisiin tarpeisiin" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# Kohdanomaiset pyyntöt + +<TLDR> +**Notemd mahdollistaa sinulle vaihtaa vaihtoehtoisen LLM-kysymyksen jokaisen tehtäystyyppin jaoks.** Kohdanomaiset kysymykset annavat sinulle kontrollin siitä, mitä malli prioriteettiksi ottaa: voit rajoittaa konsepttien poistamisen specifickkaan alueeseen, muuttaa yhdistämismusta tai suunnitella käännön tonia. Kysymyksen muuttujat kuten `{{content}}` ja `{{concept}}` asetetaan käytössä aikana. Tarkoituksellinen oppimisalue-ominaisuus lisää automaattisesti sinun tutkimusalueesi, jotta poistamismuutokset piirataan automaattisesti. + +Tämä kuuluu [Obsidian AI-tietojen hallintasuunnitelmaan](/docs/pillar-ai-knowledge). +</TLDR> + +## Yleenvaate + +Notemd:n sisäistä viestejä on kirjoitettu yleisten tietojen käyttöön. Ne toimivat hyvin eri alueissa, mutta ne jätävät myös mahdollisuuden alueelliselle parantamiseen. Kohdanomaiset viesteet mahdollistavat sinun ilmoittamaan LLM:lle täpseltä, miten se pitää käyttäytyä sinun käyttöolosuhteen kanssa – olipa se vain meditsiiniterminologian poistaminen, nimettyjen entiteetien yhdistäminen tai suomenkielisen tekstin muotoilu formalisessa kielenmuodossa. + +Kohdanomaiset käskyt ei asenda koko sistemakäskyä. Ne asettavat uudelleen tai laajentavat **työtekstin-specificoituja ohjeita**, säilyttäen samalla struktuurisen väljundiformaatin (esim. `CONCEPT:`-rivit, wiki-link-syntaksi), jota Notemd käyttää analysoinnissaan. + +## Kuidas se toimii + +### Kysymyksen arkkitehtuuri + +Jokainen Notemd-työ noudattaa saman pyyntystruktuurin: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **Perusjärjestelmän pyyntö** -- Määrittelee apun henkilömerkin. Ei voi asettaa uutta. +2. **Kenttä keskittyneelle oppimiseen** – Lisäätyy `Relevant Fields: [medicine / law / computer science / ...]` alkuun piirron rajoittamiseksi. Tämä on asetusten päällyttäjä, ei raaka pyyntö. +3. **Custom task prompt** -- Asentaa vaihtoehtoiset tehtävän ohjeet (esim. mitaisia konseptteja on poistaa, kuin aggressiivisesti yhdistää). +4. **Väljontomuoto** -- Struktuurireeglid (`CONCEPT:` rivit, wiki-linkimuoto). Aina lisätään Notemd lopuun varmistaakseen parsattavuus. +5. **Sisältö** -- Todellinen tiedon teksti, joka asetetaan käytön aikana `{{content}}` kautta. + +### Kysymyksen muuttujat + +Muuttujat asetetaan suorittuminen aikana. Saadaulliset muuttujat erottuvat tehtävän mukaan: + +| Muuttuja | Tehtävät | Sulkettiin | +|----------|-------|---------------| +| `{{content}}` | Kaikki | Notin tai valituksen teksti | +| `{{concept}}` | Kontekstitieton malli | Eritetty kontekstin nimi | +| `{{description}}` | Kontekstitieton malli | LLM-luokiteltu kontekstin kirjeldus | +| `{{backlinks}}` | Kontekstitieton malli | Lähteetietojen lista linkkeillä | +| `{{date}}` | Kontekstitieton malli | Täytäntöpäivä (YYYY-MM-DD) | +| `{{language}}` | Käännös | Tarkoituksikieli | +| `{{source}}` | Kontekstitieton malli | Lähteetieton perusnimi | + +### Keskittyty oppimisalue + +Keskittyvä oppimisfunktion on nopea tapa alueen piirtämiseen. Sijaan siitä että kirjoitat omat käskyt, jotka mainovat sinun aluetta, määrität `focusedLearningDomain` asetuksissa: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +Tämä lisää `Relevant Fields: [medicine]` alkuperäiseen käskyyn, mikä saattaa LLM prioriteettiksi alueelle liittyvät käsitteet ja estää yleiset. Se on kevyempi kuin täysin omat käskyt ja toimii kaikissa poistamisoperaatioidessa. + +## Konfigurointi + +| Asetus | Omistusasetus | Vaikutus | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | Päättä omaksumalla vaihtoehtoisen linkkien lisääminen käskyyn | +| `customExtractConceptsPrompt` | `''` | Päättä omaksumalla vaihtoehtoisen käsitteiden poistamiseen käskyyn | +| `customResearchPrompt` | `''` | Päättä omaksumalla vaihtoehtoisen tutkimus + yhteenvetön käskyyn | +| `customTranslatePrompt` | `''` | Päättä omaksumalla vaihtoehtoisen käännökseen käskyyn | +| `customDiagramPrompt` | `''` | Päättä omaksumalla vaihtoehtoisen diagrammin luomiseen käskyyn | +| `focusedLearningDomain` | `''` | Lisää alueellinen konteksti poistamis- ja linkityskäskyihin | +| `extractConceptsMinimalTemplate` | `true` | Käytä vain nimien sisältävää käsitteetiedoston mallia (se vaikuttaa `{{concept}}` mallin ulottuvuuteen) | +| `customConceptNoteTemplate` | `''` | Päättä käsitteetiedoston mallin omaksumalla täysin muuttujatukemalla | + +**Kun omat käskyt ovat tyhjät, käytetään sisällä olevaa vaihtoehtoista käskyä.** + +## Esimerkki + +Sinä olet meditsiini-tutkija, joka poistaa käsitteet kliinisten tutkimusten tiedostojista. Vaihtoehtoinen käsky poistaa yleiset nimet sekä meditsiinilaiset terminit, mikä täyttää sinun käsitteetiedostosi. + +**Lahjentus:** Määritä keskittyvyysalue ja omat poistamiskäskyt. + +1. Määritä `focusedLearningDomain` arvoon `medicine` +2. Määritä `customExtractConceptsPrompt` arvoon: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +Nyt kun käytät käskyn "Extract concepts" kliinisen tiedon puhelussa, LLM tuottaa: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +Sille asemelle että perustapa voi myös poistaa ei tarvittavia yleisiä terminejä kuten "hospital" tai "month". + +## Vinkit + +- **Alka keskittyneen oppimisalueen kanssa** ennen täysin omakkeutettun käskyn kirjoittamista. Se kattaa 80% käyttöolosuhteista yhdellä asetuksella. +- **Säilytä väljundiformaatiot** -- Älä koskaan poista formaatikäytäntöjä kuten "one per line" tai "CONCEPT: prefix" omakkeutettujen käskyn muodostuksessa. Notemd:n analysointi riippuu niistä. +- **Testaa ensin yhdellä tiedolla** -- Omakkeutettut käskyt voivat vaikuttaa ootamatkaan tavalla tiedon poistamisen laajuuteen. Verraa yhdellä tiedolla ennen paketointiprosessia. +- **Pidä käskyt lyhyillä** -- Liian pitkät omakkeutettut käskyt käyttävät tokeneja ja voivat heikentää mallin keskitymistä. + +--- + +## Järguvät toimet + +- [Wiki-Links](/docs/features/wiki-links) -- Mitä liitetään, kun omakkeutat add-links-käskyn +- [Concept Notes](/docs/features/concept-notes) -- Concept-note-mallit ja `{{concept}}`-muuttuja +- [Batch Processing](/docs/advanced/batch-processing) -- Sovellaa omakkeutettuja käskyejä koko kansioon +- [Troubleshooting](/docs/advanced/troubleshooting) -- Korjaa ongelmat, joissa omakkeutettut käskyt tuottavat ootamatkaan väljundia diff --git a/website/i18n/fi/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/fi/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..018e5a81 --- /dev/null +++ b/website/i18n/fi/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "Virheiden ratkaiseminen" +description: "Yleisimmät ongelmat ja niiden ratkaisut" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Virheiden ratkaiseminen + +<TLDR> +**Enimmäiset Notemd ongelmat kuuluvat neljään kategorioon: API pääongelmat, verkon yhteyshäiriöt, tunnistusvirheet (401/403) sekä käyttömääräpiirteet (429).** Sisäistöinen yhteystesti ja diagnostiikkapaneeli tunnistavat perustasan nopeasti. Tämä sivu kattaa kaikki yleisimmät virheilmoitukset, niiden syyn ja ratkaisun. Ongelmille, jotka ei ole tähän listattu, raportoi ne GitHub Issues -sivustolla diagnostiikkatulostuksen kanssa. + +Tämä kuuluu [Obsidian AI-tietojen hallintasuunnitelmaan](/docs/pillar-ai-knowledge). +</TLDR> + +## Yleenvaate + +Notemd riippuu ulkopuolisista palveluista – LLM tarjoajista ja hakukoneista API – mikä tarkoittaa, että enintään ongelmat syntyvät pluginin itsestä ulkopuolella. Asetuksissa oleva diagnostiikkapaneeli tarjoaa strukturoituksen viimeisestä API kutsusta, mukaan lukien päätös URL, vastausstatus ja virhekehys. Tarkista se alati ennen lisäksi tutkimista. + +## Kuidas se toimii: Diagnostiikka + +### Yhteystesti + +Jokaisessa tarjoajan konfigurointiosassa on **"Testaa yhteyttä"** -painikka. Sen painamisella lähetetään minimiisti API päätös (yleensä mallilista tai lyhyt täyttö) ja ilmoitetaan onnistuminen tai konkreettinen HTTP virhe. Tämä on nopein tapa vahvistaa, että sinun API avainsi ja perus URL ovat oikeita. + +### Diagnostiikkapaneeli + +**Asetukset --> Notemd --> Diagnostiikka** näyttää: + +| Poliivi | Sisältö | +|-------|---------| +| Viimainen tarjoaja | Millainen tarjoaja kutsuti viimeisin | +| Viimainen malli | Millainen malli kutsuti viimeisin | +| Viimeinen tila | HTTP-tilastokoodi tai transpordivirhe | +| Viimainen vika | Kerrottompi virheilmoitus API-ltä | +| Viimeinen pyytös URL | Viimeisen pyytön täysin URL (poistettu API-avain) | +| Viimeisen vastauksen sisu | Kortennettu vastauskehys (esim. 500 merkkiä) | + +Kopioi koko diagnostiikan tulostus, kun raportoi ongelmista GitHubissa. + +## Yleisimmät virheet + +### API Avain on väärä tai puuttuu + +**Symptomi:** HTTP 401 tai “Vääri API-avain annettu” + +**Syy:** API-avain puuttuu, sisältää tyhjiä tiloja tai kuuluu toiseen tarjoajaan. + +**Parannus:** +1. Värittele, onko avainilla edessä tai sisällä tilaa. +2. Väliaikaisesti vahvista, että avain sopii valituun palveluntarjoajalle (OpenAI-avain ei toimi Anthropic- kanssa). +3. Tarkista, että sinun kontollesi on krediteja tai aktiivinen tila +4. Klikkaa **"Test Connection"**, jotta voit vahvistaa + +### Verkon / yhteyden virheet + +**Oireet:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**Syy:** API-palautteepiste ei ole käytettävissä sinun laitteestasi. + +**Palautteet:** +1. Tarkista oma internet-yhteyshäiriöt +2. Jos olet proxy- tai tulevyrjyn takana, vahvistaa, että API-domaani ei ole estetty +3. Ollama-tilanteessa: vahvista, että `ollama serve` käy (`ollama list` pitää palauttaamaan mallit) +4. LMStudio-tilanteessa: vahvista, että serveri käy `localhost:1234`-palvelussa +5. Yritä toisen transportin – mobiilikäyttäjät pitävät varmistamaan, että `requestUrl`-transportti on aktiivinen +6. Aktivoi `enableStableApiCall` automaattisten uudellepyyntien suorittamiseen ajutettavissa virheissä + +### 403 Kielletty + +**Oireet:** HTTP 403 + +**Syy:** Sinun API-avainesi on voimassa, mutta seillä ei ole oikeuksia pyytämään resurssille. + +**Palautteet:** +1. Mõned mudelid nõuavad erilist juurdepääsu (nt GPT-4 Azure kaudu nõuab paigaldusnime) +2. Mõned pakkujad piiravad mudeleid paketi taseme järgi – kontrollige oma kontot +3. Võivad kehtida piirkondlikud piirangud (mõned Hiina pakkujad blokeerivad rahvusvahelised IP-id ning vastupidi) +4. Kontrollige, kas mudeli nimi on õigesti kirjutatud (nt `gpt-4o` mitte `gpt-4o-mini`, kui mini-mudel on kõik, mida teie pakett lubab) + +### Sageduspiirang (429) + +**Sümptom:** HTTP 429 või „Sageduspiirang ületatud“ + +**Põhjus:** Liiga palju päringuid lühikese aja jooksul. + +**Lahendus:** +1. Vähendage `batchConcurrency` väärtust `1` või `2` peale +2. Oodake mõni minut enne uuesti proovimist +3. Vaadake oma paketi taseme kohta pakkuja sageduspiirangute dokumentatsiooni +4. Lülitage sisse `enableStableApiCall` automaatseks korduskatseteks koos tagasilöögiga +5. Kaaluge ülemiste piirangutega pakkuja kasutamist (DeepSeek, Ollama) + +### Mudel ei leitud + +**Sümptom:** „Mudel ei leitud“ või HTTP 404 + +**Põhjus:** Mudeli nimi ei eksisteeri valitud pakkuja juures. + +**Parannus:** +1. Klikkaa **"Get Model List"**, jotta näet kaikki saatavilla olevat mallit sinun tarjoajasi jaoks +2. Mõned mallin nimet muuttuvat ajan myötä – kontrolloi aktuaalista nimeä tarjoajan dokumentaatiosta +3. Ollama: käynnita `ollama list`, jotta näet pullattuja mallia; vain ladattuudet mallit ovat saatavilla + +### Ei linkkejä / Ei konsepteja luodut + +**Oire:** Komento käynnistyy mutta ei tuoda väljontaa + +**Syy:** LLM lähetti tühjan tai analysoitamattoman vastauksen. + +**Parannus:** +1. Tarkista diagnostikan paneeli aktuaisen LLM vastauksen osalta +2. Proovi suurempia mahdollisuuksia omavia mallia (mõned väikeset mallid kävelevät rakennyttyn väljontin kanssa) +3. Veendu, että märkintössä on piisavasti sisältöä (>50 sanaa) +4. Tarkista omaan kohandettua käyttäjäkysymyksää vastuoluisien ohjeiden osalta +5. Poista ajutisesti samasanojen tukkiminen, jotta näet, onko se liian aggressiivisesti filtreerivä + +### Doubao-palvelun ID puuttuu + +**Oire:** Vika ByteDance Doubao-tarjoajan käyttössä + +**Syy:** Doubao vaatii Ark-palvelun ID-d (muoto: `ep-xxxxxxxx-xxxx-xxxx`) mallin nimen sijaan. + +**Fix:** Asenna vaihtoehtoisen mallin sijaan sinun todellinen päätuspisteiden ID Volcengine-konsolista. + +## Konfigurointi + +| Diagnostiikasätteet | Sijainti | Tarkoitus | +|--------------------|----------|---------| +| **Testa yhteyttä** | Sättimet --> Tarjoajan osa | Väliaikaisesti kontrolloi API-avain ja yhteyden toiminta | +| **Saada mallien lista** | Sättimet --> Tarjoajan osa | Varmista, millat mallit ovat käytettävissä | +| `enableStableApiCall` | Sättimet --> Edistyneet sättimet | Aktivoi uudelleenpyynnöt taustapäivittämisen kanssa | +| `batchConcurrency` | Sättimet --> Paketit | Kontrolloi parallellisuutta, jotta ei syntyy kiirustaksoja | + +## Kuidas raportoida ongelmia + +Jos sinun ongelman ei ole ylälä mainittu: + +1. Avaa **Asetukset --> Notemd --> Diagnostiikka** +2. Kopioi koko diagnostiikan tulostus +3. Avaa GitHub Issue-sivu [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +4. Sisällyttä: Obsidian versio, Notemd versio, tarjoaja, malli, diagnostiikan tulostus sekä toistamiseen tarvittavat toimet +5. Poista oma API-avain yhdistetyistä logista + +--- + +## Järguvät toimet + +- [LLM Tarjoajat](/docs/providers/overview) -- Täysin tarjoajien konfigurointitietot +- [Pakkettyyn töihin](/docs/advanced/batch-processing) -- Suurten toimintojen samalla aikana suorittaminen ja uudelleenkokeutusasetukset +- [Omakohdat](/docs/advanced/custom-prompts) -- Vastaanottamattoman LLM-toiminnon korjaaminen ohjeiden muuttamisen avulla diff --git a/website/i18n/fi/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/fi/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..ad0d5714 --- /dev/null +++ b/website/i18n/fi/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "Syventäin esitettyjä kysymyksiä" +description: "Yleisimmät kysymykset Notemd asentamiseen, ominaisuuksille ja käyttöön" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# Syventäin esitettyjä kysymyksiä + +<TLDR> +**Nopeat vastaukset yleisimpiin Notemd kysymyksiin.** Käsitellään asentaminen (5 minuutin asetelu), 30+ LLM tarjoajan tuki, paikallinen/pilvimerkkinen mallivalikot, yhden klikkin kanssa toimintatiedot, monikielinen UI (21 kieltä), wiki-yhteyksien automatisointi, tutkimusten yhdistäminen, PDF lukutoimintatiedot, diagrammien luontaminen ja avoimen lähtekoodin litsentsointi. Kaikki ominaisuudet toimivat offline -tilassa Ollama-lla. +</TLDR> + +--- + +## Asentaminen & asetelu + +### Kuidas asentaa Notemd Obsidian-lle? + +Avaa Obsidian **Asetukset → Yhteisön lisäsovellukset → Selvitä** → etsi **"Notemd"** → **Asenta** → **Aktivoi**. + +**Ehdot:** +- Obsidian 0.15.0+ +- Tukitaan laitteilla (Windows, macOS, Linux) ja mobiililaitteilla (iOS, Android) + +**Käsin asentaminen:** +1. Lae downlaadita `main.js`, `styles.css`, `manifest.json` [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases)-ltä +2. Aseta ne `<your-vault>/.obsidian/plugins/notemd/`-lle +3. Uuenda Obsidian ja aktivoi lisäsovellus + +**Tulostot:** 4k+ asentusta, 44 versiota, MIT-litsenssi. + +--- + +## LLM Konfigurointi + +### Mitä LLM-palvelijoita Notemd tukee? + +Notemd toetaa **30+ palveluntarjoajaa**: + +**Pilvapalveluntarjoajat:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonnet, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**Kiinan keskittyvä:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**Sisäiset/itsehostitu:** +- Ollama +- LM Studio +- Jokin OpenAI-sovelluksellinen päätuspiste + +**Gatewayt:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models, Fireworks, LiteLLM, Nebius, Cerebras +- Hugging Face, Vercel AI Gateway, Requesty + +### Voiko Notemd toimia lokalisoiduilla LLM-illa? + +**Kyllä, täysin tuettu.** Notemd toimii seuraavien kanssa: +- **Ollama** (omaiset yhdistykset) +- **LM Studio** (via OpenAI-sovelluvan päätuspiste) +- **vLLM, LocalAI, text-generation-webui** (via OpenAI-sovelluvan režimi) + +**Kaikki tehtävät toimivat lokalisoiduilla mallien kanssa: yhdistäminen, konseptin luominen, kääntö, tutkimus ja diagrammin luominen. + +**Seurauksia sekä yhdistämistä että muutoksia:** +- **Ollama (lokali) yhdistämiseen → nopea, privaatista, ilman kustannuksia +- **OpenAI tutkimukseen → korkea laatu, web‑otsingun yhdistys +- **Gemini kääntöön → monimodaalinen tukea + +### **Kuidas konfiguroida eri mallit eri tehtäville? + +****Notemd Asetukset**-ssä on iga tehtävän jaoks erilliset tarjoajan/mallin valintat: + +| Tehtävä | Esimerkkikonfigurointi | +|------|----------------------| +| **Yhdistäminen** | DeepSeek (nopea, halpa) | +| **Konseptin luominen** | Claude Opus (korkea laatu) | +| **Tutkimus** | Perplexity tai GPT-4o (web-pohjainen) | +| **Kääntö** | Gemini Flash (monimodaalinen) | +| **Diagrammin luominen** | Ollama (sisäistä, privaatista) | + +Tämä tehtäväkohtainen optimointi tasakaaluttaa nopeuden, hintan ja laadun. + +--- + +## Pääominaudet + +### Miten Notemd erottuu ChatGPT pappereiden lukemisen osalta? + +| Määrä | ChatGPT | Notemd | +|-----------|---------|--------| +| **Lähetyspaikka** | Viestintähistoria (ajatuksellinen) | Obsidian varastointi (pystyviat tiedostot) | +| **Tulostusmuoto** | Tekstilainen vastaus | Wiki-liitokset, käsitteelliset tiedot, diagrammit, käännökset | +| **Pikaaikainen arvo** | Kohtaa kaduu puhelun jälkeen | Säilyy tietojankostossa | +| **Kasutettavuus** | Tulee uudelleen pyytää | Tiedostot pysyvät, linkit kehittyvät | + +**Käytä ChatGPT:in** – nopeille kysymyksille ja yksinkertaisille selityksille +**Käytä Notemd:in** – pystyvän, strukturoituun tietojankoston luomiseen viikkojen tai kuukauden ajan jälkeen + +### Kuidas Notemd lisää wiki-liitoksia märkintöihin? + +**Prosessi:** +1. Käytät käskyn "Process file (add links)" märkintön kanssa +2. Notemd lähettää tekstin sinun konfiguroituun LLM:si +3. LLM tunnistaa keskitykselliset käsitteet kontekstissa +4. Notemd lisää `[[wiki-links]]` jokaisen käsiteen ilmuminnin yhteydessä +5. Valitettavasti luodaan automaattisesti käsitekirjoitukset määritetyssä kaustassa + +**Ominaisuudet:** +- Synonyymien poistaminen (vältää "transformer" vs "transformers" duplikaateja) +- Palautuslinkit käsitekirjoituksista lähteeseen +- Linkkin turvallisuus muuttamisen tai poistaman yhteydessä +- Puhtaasti extraktointimodi (extrahoi käsitteet ilman alkuperäisen tiedoston muutokset) + +### Mitä on Notemd yhdellä painikkeella toimivat työprosessit? + +**Yhdellä painikkeella toimivat työprosessit** yhdistävät useat toimet **yhteen vasempan puoleen olevaan painikkeeseen**. + +**Perustyöprosessi:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**Tulos:** Yhdellä painikkeella suoritetaan: +1. Lisää wiki-linkkejä aktiiviseen kirjoituksiin +2. Luo käsitekirjoitukset uuteen termiin +3. Tutkita ja lisätä taustatietoa +4. Sulkita kokonaan Mermaid diagrammiksi + +**Omakustannut työprosessit:** Määritä omat Settingsissä DSL-muodossa. Jokainen työprosessi muuttuu uudelleen käytettävän sivupalkkinpainikkeeksi. + +### Kuidas Notemd vertaaan Copilot tai Smart Connections? + +Nämä lisäsovellukset ratkaistaan erilaisia ongelmia: + +- **Copilot** — Vaiheena keskittyvä. Puhuta AI:n kanssa omaa tiedonnotioita koskeen. AI:n vastaukset jäävät chat-paneeliin; ne ei muuttaa sinun avaruksesi sisältöä. +- **Smart Connections** — Avastuskeskittyvä. Se löytää semantisesti sarnait tiedonnotiot käyttäen embeddingsia. Se ei luoda eikä muoda sisältöä. +- **Notemd** — Kirjoituskeskittyvä. AI-tuottaa sinun tiedonnotioistasi strukturoituja tuloksia (wiki-linkkejä, konseptitiedonnotioita, tutkimusta, diagrammeja, käännöksiä) suoraan sinun avaruksesi pystyviin failiin. + +| Mitä sinun on tarpeen | Suositeltu lisäsovellus | +|----------------|-------------------| +| Puhuta AI:n kanssa tiedonnotioista | Copilot | +| Löydä sarnait/tuoreet tiedonnotiot | Smart Connections | +| Automaattisesti lisää wiki-linkkejä ja luoda tietojärjestelmä | **Notemd** | +| Luo konseptitiedonnotioita taaslinkkejä kanssa | **Notemd** | +| Luo diagrammeja tiedonnotion sisältöstä | **Notemd** | +| Tutka aiheen ja lisa yhteenvetot | **Notemd** | + +Kolmea voidaan käyttää yhdessä — ne täydentävät toisia, ei konkureeri toisiinsa. + +--- + +## Tutkimus & Kääntö + +### Mitä hakupalveluita toimivat Notemd tutkimuksessa? + +| Palvelu | API Key Required | Laatu | Huomiot | +|---------|-----------------|---------|-------| +| **Tavily** | Jaa | Korkea | Suositeltava, AI-optimoitu hakupalvelu | +| **DuckDuckGo** | Ei | Eksperimentaali | Ei tarvitse asentaa, halvempia laatuja | + +**Kuidas „Research & summarize“ toimii:** +1. Valitset teeman tai käytät sen nykyisessä tiedonnotissa +2. Notemd kysyy hakupalvelusta +3. Tulokset → LLM yhteenveto +4. Yhteenveto lisätään tiedonnotiisi lähtöviiteiden kanssa + +**Tulos:** Pidevä tutkimusjäljä sinun avarassasi, ei selaimen sivuissa. + +### Kas Notemd toetaa kiiniaa tai muija kieliä? + +**UI kielet:** 21+ toetatua +- English, 中文 (简体), 中文 (繁體), 日本語, 한국어 +- Arabic, German, French, Spanish, Russian, Portuguese, Italian +- Hindi, Bengali, Thai, Vietnamese, Turkish, Polish, Czech, ja muut + +**Tehtäön tulosten kieli:** Itsevalittava konfigurointi +- UI kiiniassa + tulostus englanniksi: ✅ +- UI englanniksi + tulostus kiiniaksi: ✅ + +**Käytöskaso:** Kaksikieliset tutkijat voivat säilyttää UI oma kielessä samalla kun he tekevät englanninkielisiä tiedonnottoja kirjastamiseen. + +--- + +## PDF ja akateemiset työprosessit + +### Käytäkönnään Notemd artikkelin/PDF lähdötekstin lukeamiseen? + +**Kyllä.** Työprosessi: +1. **Muuntaa PDF → Markdown** käyttäen [MinerU](https://github.com/opendatalab/MinerU) (soovitatavissa akateemisten artikkelien puhul) +2. Avoa Markdown-tiedosto Obsidian-ssä +3. Käynnista Notemd -työt: + - **Lisää wiki-linkkejä** tärkeille termille + - **Luo käsitelmällisen tiedon** tundetun terminologian kohtaan + - **Eritä alkuperäinen teksti** käyttäen käsiteltäviä kysymyksiä (esim. "Mitä on rajoitteet?") + - **Tutka tausta** viitettyjen metodien/tietokoneiden kohta + - **Kääntä** vaikeita osia + - **Sulkuta Mermaid -diagrammiksi** struktuurisen ymmärryksen saamiseksi + +**Versio 1.9.1+:** Kapiteleiden strukturiin erottaminen TOC-tuken kanssa + +**Tulos:** Artikkelin lähdötekstin lukuaminen muuttuu strukturoituksi, linkittavaksi tietoisuuskoneeksi sinun avarassasi. + +--- + +## Diagrammit ja visualisointi + +### Mitä graafikuja/diagrammityyppejä voi Notemd luoda? + +| Tyyppi | Tukea | Ominaisuudet | +|------|---------|----------| +| **Mermaid** | Täysin | Viestitaulukko, järjestys, klassi, tila, ER, Gantt, syntaksin automaattinen korjaus, pakettipäätös | +| **JSON Canvas** | Täysin | Obsidian-mallien omat paikannusmuodot | +| **Vega-Lite** | Täysin | Tietoluettelot, aikaseriat, sulkupylöt, hajutus, käyttäjän määritettävät | +| **HTML** | Varausvaihtoehto | Ei tuetun diagrammityypin korjaamiseen | +| **Muokattavaa HTML/SVG** | Etsytyvä tarkoitus | Itsetoimiv sisäistä SVG semantisten Draw.io-tyylisissä annotaatioissa | +| **Draw.io / Drawnix artefaktit** | Ekspordin rajoite | Deterministinen XML/JSON `SemanticFigureModel`-lta; ei edittimen käyttöajan riippuvuutta | + +**Mermaid automatisointi:** Syvällinen vianparannusrežimi parantaa: +- Kerrunnoitettu nopeat (`-->`, `-.->`, `==>`) +- Eivätkä oikeita siltiä, komenttejä +- Alamgraafin syntyyhteyden virheet +- Kuvannotointi (`[`, `(`, `{`, `((`) +- Pipitähemärkit siltissä +- Merkkien liitettykset + +**Töövoima:** +1. Käytä „Yhteenveto Mermaid-diagrammina“ merkkille +2. Edistyskatselu modaalissa +3. Ekspordi SVG- tai PNG-formaatilla +4. Tai salaa tiedosto `.mmd`-ena avaruudessa + +--- + +## Avoin lähtekoodi & yhteisö + +### Onko Notemd ilmaista ja avoinna lähtekoodilla? + +**Jah.** +- **Litsenssi:** MIT (lennollinen, kaupallinen käyttö mahdollista) +- **Lähtekoodi:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **Ei maksullisia tasoja, ei pilvistettua kiinnitystä, ei telemetriaa** +- **Yhteisö:** 234+ GitHub-tähden, aktiivinen Discord + +**Sinulla on:** +- Sinun dataasi (jää sinun avaruudessasi) +- Sinun työprosessitasi (kohdista esityksiä, mallia, ahelmoja) +- Sinun yksityisyysesi (lokalisoinen LLM-tuki) + +**Panostaa:** Pull-requestit ovat terveet. Katso [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +## Virheiden ratkaiseminen + +### Minun LLM-kutsujenni eivät toimi. Mitä minun tarkistaisin? + +1. **Onko API-avain validi?** Tarkista Asetukset → Tarjoajan konfigurointi +2. **Onko mallin nimi oikea?** Käytä „获取模型列表“ (Get Model List)-painiketta asetuksissa +3. **Yhteys verkkoon mahdollista?** Monet tarjoajat vaativat VPN:n +4. **Kuormakoe?** Tarkista tarjoajan dashboardia +5. **Diagnostiikka:** Käytä asetuksissa "Connection Test" yksityiskohtaisien virheilmojen saamiseksi + +### Notemd on aike. Kuinka voitan se nopeuttaa? + +1. **Käytä nopeampia malleja:** DeepSeek, Gemini Flash, GPT-4o-mini +2. **Vähentä chunkin suurusta:** Asetukset → Smart Chunking → alenta sanojen määrää +3. **Parallinen käyttö:** Asetukset → Batch Processing → suurenda samalla käytettyjä prosesseja +4. **Paikalliset malleet:** Ollama tehtäville, jotka eivät vaadi verkkoyhdistystä + +### Kan Notemd toimia 100% offline? + +**Jaa, Ollama kanssa.** Ilmaisilla API-avainilla, ilman internetia, ei data lähe sinun laitteestasi: + +1. Asenna [Ollama](https://ollama.com) ja käytä `ollama serve` +2. Notemd-asetuksissa valitse **Ollama** oma tarjoajana +3. Taa malle: `ollama pull llama3` (tai qwen2.5, gemma2 jne.) +4. Kaikki ominaisuudet toimivat: wiki-linkit, concept notes, kääntö, diagrammit + +**DuckDuckGo-tutkimus** toimii myös ilmaisilla API-avainilla (eksperimentaaliinen laatu). + +Pilvetarjoajien (OpenAI, Anthropic, Google, DeepSeek jne.) kanssa sinun tiedot lähetetään API-aineena. Tarkista iga tarjoajan yksityisyyspoliittikkaa datan käyttöön liittyvien tietojen vuoksi. + +### Onko minun dataani lähetetty pilveen? + +**Se riippuu sinun palveluntekijästäsi:** + +| Palveluntekijän tyyppi | Data sent to cloud? | Huomiot | +|--------------|---------------------|-------| +| **Ollama (lokali)** | Ei | Kaikki jää sinun laitteeseesi | +| **LMStudio (lokali)** | Ei | Sama kuin Ollama | +| **DeepSeek, OpenAI, jne.** | Jaa | Huomio: sisältö lähetetään API-aineena käsiteltäväksi | +| **OpenRouter, AIHubMix** | Jaa | Pääsisä, joka suunnittaa verkkoyhteyden pilvapalvelijoille | + +Notemd itse kerää **eikä telemetriaa, eikä analyysiä, eikä käyttäjädataa**. Palvelintarakentu on täysin avoimen lähtekoodin perusteella (MIT). Ainoat tiedot, jotka lähevät laitteestasi, ovat ne, jotka saatat selkeästi lähettää asetettuun LLM palvelijalle. + +### Kumpi Obsidian AI-palvelintarakentu on parhaiten tutkimukseen? + +Se riippuu tutkimusprosessistasi: + +| Tarvitaan | Palvelintarakentu | Miksi | +|------|--------|-----| +| Suosittujen artikkelien/tietojen löytö | Smart Connections | Semantinen sarnaisuuden tunnistaminen | +| Viestintä lähteistesi kanssa | Copilot | Vestintä varastokontekstin kanssa | +| Automaattiset yhdistykset käsitteille + nottien luominen | **Notemd** | AI tunnistaa käsitteet, lisää yhdistykset ja luoo notit | +| Web-tutkimus + yhteenveto nottien muodossa | **Notemd** | Tavily/DuckDuckGo hakua → LLM yhteenveto → lisätään tiedonnotkoon | +| Luo diagrammeja tutkimuksista | **Notemd** | Mermaid/Canvas/Vega-Lite tiedonnotkon sisältöstä | + +**Suositeltu kombinatio:** Smart Connections (avastus) + Notemd (strukturointi) + Copilot (arvio). + +--- + +## Apua + +- **Dokumentaatio:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **GitHub Issues:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **Sponsor:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/fi/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/fi/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..1bf4d390 --- /dev/null +++ b/website/i18n/fi/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "Kontekstitietoiset tiedot" +description: "Luo ja hallita konseptitietoja – eraldiseiset tiedot tärkeistästä konseptista, jotka on poistettu sinun avarastostasi" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# Kontekstitietoiset tiedot + +<TLDR> +**Notemd poistaa tärkeimmät käsitteet sinun notioistasi ja luoo itsenäiset käsitteennottojen tiedostot.** LLM tunnistaa keskeiset terminit, luo yhden `.md` -tiedoston jokaiselle käsiteelle konfiguroitavassa kaustassa ja voitiin lisätä taaslinkkejä lähtönotkoon. Se toetaa samasanojen poistamista, tehtävittäistä mallin valintaa, tiedostonimien puhastusta sekä 4-vaiheisen duplikaatien poistamisen mekanismia. Tämä on osa [Obsidian AI-tietojen hallinnan ohjeesta](/docs/pillar-ai-knowledge). +</TLDR> + +## Yleenvaate + +Kontekstitietoiset ovat yhdistyvän tietotekon rakentuskiveet. Kun sinulla on käsiteltävä tieto, Notemd: + +1. **Lähetää sinun tekstisi LLM:lle** strukturoituun extraktiokysymykseen +2. **Tarkistaa `CONCEPT:` rivit** LLM vastauksista +3. **Luo yhden `.md`-failin jokaiselle konseptille** määritellyttyssä kaustassa +4. **Lisää taaslinkkejä** lähteetietoon (jos aktivoitu) + +## Kuidas se toimii + +### Extraktio-pipeline + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### Extraktointi-ohje + +LLM saa käskyn, joka ohjelee sitä toimimaan seuraavasti: + +- Eritä dokumentin teeman keskeiset **nimissä ovat tai nimisanojen lauseet** +- **Eritellävyys on prioriteetti** — “Dielectric Relaxation” sijaan “Relaxation” +- **Normaloi yksilöön** — “models” muuttuu “model”-iksi +- **Suppress sub-conceptit** — jos ilmenee “dielectric relaxation”, älä löydy kauppaa “relaxation”-sta +- **Jätä pois** viite-/bibliografiakohdat, yleiset nimet, yritysten/tuotteiden nimet +- Luo yksi käsite rivillä kuten `CONCEPT: Term Name` + +**Synonyymien poistaminen** (valinta): lisätään pyyntöön alkuun "Vältä synonyymien, semantisesti sarnain pääkäsiteiden tai avainasemien poistamista mahdollisimman aikaa". + +**Keskittyvä oppimisalue** (valinta): lisätään `Relevant Fields: [domain]` alkuun, jotta poistaminen rajoitetaan tiettyyn alueeseen. + +**Kielin asettaminen** (valinta): lisätään lopuun "Lähtökäsitteet PEUVAT olla [kielessä]." + +### Osien jakaminen + +Pikat tiedot jakataan `settings.chunkWordCount` avulla. Jokainen osa lähetetään erikseen. Kaikista osista saatuja käsiteitä kerätään `Set` – duplikaatit osien välillä poistetaan vaikuttamatta muihin. LLM virheet yksittäisissä osissa ei estä toimintaa. + +## Käsitteiden notoinnin luominen + +### Failin nimen sääntöket + +| Sääntö | Toiminta | +|------|----------| +| Kosketus-/alakosketukset | Asennetaan tilanteeseen tilat | +| Eriomaiset merkit | Poistetaan: taaskosketus, eduskosketus, kulkuristi, tähertähti, kysymysmärki, quoteit, nurkkikorvot, toru, hasi, virvokkeus, sulkeutuvat korvot | +| Tily | Sulkeaan ja poistetaan tilat | +| Maksimipikkus | 100 kirjoa (piirrettynä + uudelleen poistettuna) | +| Tyhjä/kokonaan tilapisteet sisältävä tulos | Vaikuttamattomasti poistetaan | + +Esimerkki: `A-B: Key*Term` muutuu `A B KeyTerm.md` + +### Mallit + +**Täysin malli** (palautuslinkit aktivoituja, minimaalinen malli poistettu): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**Minimaalinen malli** (kun `extractConceptsMinimalTemplate: true` on): + +```markdown +# Concept Name +``` + +### Olemassa olevien merkintöjen päivitys + +Kun konsepttipalkki on juba olemassa: + +1. Jos palautuslinkit ovat aktivoituja ja lähtömerkintä ei ole jo listattu, lisätään palautuslinkki +2. Jos `## Linked From`-osio on olemassa, se lisätään ennen seuraavaa `##`-ohjeen +3. Jos ei ole `## Linked From`, osio lisätään lopuun +4. Kertomuksetta samat palautuslinkit kontrolloidaan ja poistetaan + +### Konfigurointi + +| Asetus | Omistusasetus | Vaikutus | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | Päävalinta. Poissa = ei luoda merkintöjä | +| `conceptNoteFolder` | `''` (poistettu) | Konseptitietojen kansiopath | +| `extractConceptsMinimalTemplate` | `true` | Ainoastaan nimet – ei Linked From -tietoa | +| `extractConceptsAddBacklink` | `false` | Lisää palautuslinkkejä yksityisen extraktionin aikana | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | Konseptien extraktionin jokaiselle tehtävälle LLM | +| `extractConceptsLanguage` | `'en'` | Konseptinimien välittömä kieli | +| `replaceSynonymsDuringConceptExtraction` | `false` | Aktivoi sanonyhden estö ohjeessa | +| `generateConceptLogFile` | `false` | Kirjoita `.log` -luettelo luodutista konseptista | + +**Tärkeää:** `extractConceptsAddBacklink` - ja `extractConceptsMinimalTemplate` -asetukset vaikuttavat vain **erityiseen extraktiokomentoihin**. Komento "Lisää linkkejä" luostaa aina täysin mallilla varustetut tiedot palautuslinkkeillä. + +## Deduplikointi + +Dedup -komento (`Notemd: Check & remove duplicate concept notes`) käyttää 5-vaiheista analyysiä: + +### Vaihe 1: Täpäinen tiedostonnimen sopimukset + +Olkotunnistuseta nimenosan vertailu konfiguroituun ulottuvuuteen. + +### Vaihe 2: Monimuotojen tunnistaminen + +Poistetaan lopulliset säännöt: `-ies` tilaa `-y`, `-es` poistetaan, `-s` poistetaan. Verrataan yksilömuoto ulottuvuuskansioihin. Ei käsitle epäregulaireja monimuotoja (children/child). + +### Vaihe 3: Symbolien normalointi + +Soveltuu: `toLowerCase()`, aseta hyphenit/alustakohdat tilaan, poista epänumerolliset merkit, yhdistä tühjät tilat. Merkitetään ne, jotka normaloidaan samalla tavalla. + +### Vaihe 4: Yksikössä sanojen sisältö + +Yksikössä sanoista koettavat tiedot kontrolloidaan yhteen sanoista koostuvien skopeen tiedostojen nimien vastaan. Tämä vaihe ei käytetä, kun skopee on `concept_folder_only`. + +### Vaihe 5: Vahvistus ja poistaminen + +Kaikki kandidaatit näytetään vahvistusmodaalissa. Hyväksytty tiedot siirretään systeemin prümmiin. Toiminta saa poisteta jokaisen poistamisen välillä. + +### Skopeen režimit + +| Režimi | Verrattava | +|------|-------------------| +| `vault` (omistusasetus) | Kaikki varaston `.md` -tiedostot, jotka eivät ole konseptikokoja | +| `concept_folder_only` | Muiet konseptitiedot samassa kohdassa | +| `include` | Tiedostot specificoiduissa listattuissa kohdissa | +| `exclude` | Kaikki varaston tiedostot, jotka eivät ole konseptikokoja + listattuja kohdoja | + +## Käyttö + +### Konsepttien poistaminen (ytsestä) + +1. Avaa tiedon +2. Käynnista **"Notemd: Extract concepts"** komentopalvelustosta +3. Konseptitiedot luodut konfiguroituun kohdaan + +### Sisällön extraktointi + luonto + +**"Notemd: Eritä konseptit ja luoda otsikkeet"** – se eritää konsepttejä, sitten käyttää toimintaa "Generate from Title" kaikille märkintöille konsepttien kansioissa. Tämä luostaa sisältö **kaikille** kansiossa oleville konsepttimärkintöille, ei vain uusia. + +### Luo Wikipedia-linkki valinnasta + +1. Esitä teksti muokkikoneessa +2. Käytä **"Notemd: Luo wiki-linkki valituista"** +3. Teksti on sulkeutunut `[[...]]` ja luodetaan käsitelunnotto + +## Vinkit + +- **Aseta ensin konseptikansiola** — ilman sitä ei luoda mitään merkintöjä. Jos se ei ole asetettu, ilmenee varoitusmodaalikenttä. +- **Käytä tehtävän mukaisia modeleja** – käsitteiden extraktio toimii hyvin halvempien modellien (GPT-4o-mini, DeepSeek) avulla. Säästä kalleita modeleja tutkimuksille/tulkinnalle. +- **Aktivoi sanonyksyjen poistaminen** teknisissä alueissa, joissa useat terminit viitovat samalle käytäntöön. +- **Poistaa duplikaat regulaarisesti** — käytä dedup-komentoa puhelupalvelun käsittelyn jälkeen, jotta löydät lähellisiä duplikaateja. +- **Logifaili kirjoitetaan uudelleen** jokaisen käynnistyskerran aikana, se ei liitetä. Kopioi se, jos sinun on tarpeen aiemmat tulokset. + +--- + +## Järguvät toimet + +- [Wiki-Linkit](./wiki-links) — Kuidas käsitelut yhdistetään sisällöön +- [Diagrammit](./diagrams) — Kuvasta konsepttien suhteet +- [Workflows](./workflows) — Ahelman poistaminen muiden tehtävien kanssa diff --git a/website/i18n/fi/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/fi/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..f2135f3b --- /dev/null +++ b/website/i18n/fi/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "Diagrammit" +description: "Luo Mermaid-, JSON Canvas-, Vega-Lite-, HTML-ja muokattavat kuvat sekä tulevaisuudessa rajoitettuja circuitikz-diagrammeja sinun märkintöistä käyttäen spec-first-arkkitehtuuria" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Diagrammit + +<TLDR> +**Notemd luoo diagrammit sinun märkintöistä spec-first-pipelinein kautta.** LLM tuottaa renderer-agnostisen `DiagramSpec` JSON, jota sitten erilliset adapterit muuntavat Mermaid-, JSON Canvas-, Vega-Lite-, HTML- tai muokattaviksi HTML/SVG-luottolukujenä. Tuo tukea 8 tarkoituustyyppille, automaattisiin varausketjuihin, live-preview-ohjelmiin SVG/PNG-luottolukujen ekspordilla, semantiseen verifikoihin sekä lokalisoidun tiedon perusteella laadituun luomiseen. +</TLDR> + +Tämä kuuluu [Obsidian AI-tietojen hallintasuunnitelmaan](/docs/pillar-ai-knowledge). + +## Arkkitehtuuri: Spec-First-pipeline + +Notemd ei kysy kuntaan LLM-sta tuottamaan suoraan Mermaid-/Vega/Canvas-syntaksia. Sille asemelle: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**Miksi spec-first?** LLM-t tuottavat usein epäsisällistä renderer-syntaksia (erityisesti Mermaid). Strukturoitu `DiagramSpec` voi valvota ennen renderointia, ja sama spec voi toimia varausketjuina useille renderereille. + +## Tuettuva diagrammityyppit + +| Tarkoitus | Päärendereri | Varaukset | Käytöskenttä | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | Hierarkilliset teemat | +| `flowchart` | Mermaid | HTML | Prosessivaihtoehtojat, päätöksetiedot | +| `sequence` | Mermaid | HTML | Client-server-interakiot, protokollit | +| `classDiagram` | Mermaid | HTML | OOP-klassien suhteet | +| `erDiagram` | Mermaid | HTML | Tietokonekehystöket, entiteettien suhteet | +| `stateDiagram` | Mermaid | HTML | Oloskemmat, elinkaupalliset mallit | +| `canvasMap` | JSON Canvas | Mermaid → HTML | Aikakartat, tietojen graafit | +| `dataChart` | Vega-Lite | Mermaid → HTML | Säve-, rea-, alue-, hajutus-, pirukka- ja tabelmallit | + +## Tarkoituksen tunnistaminen + +Notemd arvioi sinun merkinnän sisältöä käyttäen avainasanojen arvoituksia ja määrittää parhaan diagrammityypin: + +| Tarkoitus | Aiheuttajat | Vitoutuminen | +|--------|----------|------------| +| `dataChart` | Tabelit, numeriset cellit, määrä-/kehitystavauksia koskevat avainasanoet, prosenttilukut | 0.88 | +| `sequence` | Pyytö/tulostus-sanovalikoima (4+ sopimukset) tai `->`/`=>`-merkit | 0.82 | +| `erDiagram` | Primärisväyty, ulkopuoliset väytyt, entiteetti, kehystö (2+ sopimukset) | 0.80 | +| `stateDiagram` | Olosuhteet, siirto, poistoehto, käynnissä, epäonnistunut (3+ sopimukset) | 0.76 | +| `flowchart` | Numeroituja vaiheita (2+) tai if/then/else/töövoima-sanovalikoima | 0.74 | +| `canvasMap` | Kontseptikartta, tietojen grafiikki, sijaintipohainen, klusteri | 0.72 | +| `mindmap` | Vaikkaista vaihtoehto | 0.55 | + +Päästä üle **Ehdotettu diagrammityypi**-asetuksella, vasemariban valintaydinnolla tai selkeän käskupalvelun valikolla. + +## Render Target Selection + +Eksperimentaali spec-first-pipelineillä on nyt kaksi erillistä kontrollointa: + +| Kontrolli | Asetus | Vaikutus | +|---------|---------|--------| +| Ehdotettu diagrammityypi | `preferredDiagramIntent` | Ohjaa genereeritun `DiagramSpec` semantista muotoa | +| Ehdotettu render-targetti | `preferredDiagramRenderTarget` | Valitsee artefaktin renderoinnin välineen **Generate diagram**- ja **Preview diagram**-toimintoille | + +Määri **Ehdotettu render-targetti** arvoksi **Auto** suunnittelijan vaihtoehtoina, tai valitse selkeästi Mermaid, JSON Canvas, Vega-Lite, HTML tai Editable HTML/SVG. Ülekirjautuminen soveltuu vain artefakti- ja näytökäskyn toimintoille. Standardinen **Summarise as Mermaid diagram**-käsky jääb kiinnitettuun Mermaid-sovelluville väljöön, jotta olemasolevat Markdown-töyhkeudet ei vaihtoehtoisesti muutetaan muotoja. + +Tämä erottelu on tärkeää, koska `flowchart`-tarkoitus voi nyt renderoida Mermaid Markdown-merkkikirjoituksille, HTML vahvalle vaikkaistuvalle vaihtoehtoiseen muotoon tai Editable HTML/SVG seuraavalle muokkaamiseen. Draw.io ja Drawnix jäävät CLI-artefakttien eksportijiksi, eikä pluginin sisällä oleviin render-targetteihin. + +## Käyttö + +### Generate a Diagram + +1. Avaa tiedon +2. Käytä käskupalvelusta **"Notemd: Generate diagram"** +3. Notemd tunnistaa tarkoituksen, genereerii specin, renderoi ja salvestaa artefaktin + +**Väljöntiedostot tarkoituksen mukaan:** + +| Tavoite | Lisäosaa | Failinimen malle | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| Muokattavat HTML/SVG | `.html` | `{note}_diagram.html` | + +### Diagrammin ennittäkset + +1. Käytä **"Notemd: Edellistäkset diagrammaa"** +2. Modaalikokemus avautuu renderoidun diagrammin kanssa +3. Ekspordi SVG-ena tai PNG:en käyttäen työkalupalkkien painikkeita + +**Automaattinen näyttöavainnin avautuminen** on saatavilla asetuksissa – luomisen jälkeen näyttöavainnin modaalikokemus avautuu automaattisesti. + +Edellistäkatselu-modaalikokemus sisältää myös artefakttien diagnostiikan-paneelin. Renderoinnin ohjelmistot ja suitsutestit voivat liittää `RenderArtifact.diagnostics`; modaalikokemus näyttää diagnostiikan yhteenvetoon, jossa on virheiden/hoihtoehtojen/tietojen määrät, sen jälkeen tärkeysaste, diagnostiikan tyyppi, sanoitus ja parannusvinkit edellistäkatselun kohdalla. Saman yhteenveton näet myös edellistäkatselun historian kirjoissa, mikä mahdollistaa kerran toisen circuitikz suitsutestin vertailun ilman kaiken kirjan avamista. Artefakttien puhul, jotka sisältävät lähtetekstia mutta ei voi renderoida suoraan tai HTML iframe-matkan kautta, modaalikokemus käyttää nyt vain lähtetekstin edellistäkatselua sijaan siitä, että sunnitaan tyhjä iframe. Tämä annaa circuitikz kompiloituksen/renderoinnin suitsutestille, SVG tekstitokenin tarkistuksille, PNG-tyhjän skennauksen tarkistuksille sekä tuleviin yhtepaluvierokkeuksiin näkyvän UI pinnan ilman siitä, että TikZJax tai LaTeX muuttuisi vaativaksi plugin-runktimen riippuvuudeksi tai ilmetellään, että lähteteksti on verifioitu visuaalinen renderointi. + +### Legacy Mermaid-režimi + +Kun `enableExperimentalDiagramPipeline` on poissa, Notemd lähettää suoraan Mermaid-kysymyksen LLM:lle. Tämä ohjaa täysin kiertoketjun kautta. Jos eksperimentaali-kiertoketju ehtoo, se palaa tähän režiimiin. + +## Renderinnan taustapalvelut + +### Mermaid + +6 adapteria (mindmap, flowchart, sequence, ER, class, state) – kääntä `DiagramSpec` Mermaid-syntaksiin. Tulosten luomisen jälkeen `mermaid.parse()` valvostaa sen. Jos valvonta ehtoja ei täyda: + +1. **LLM uudelleen** — yksi yrittö Mermaid virheilmoituksen kontekstina +2. **Minimaalinen varaus** — lihto Mermaid-diagramma spec-node-ID:istä + +**Legacy Mermaid Fixer** korjaa automaattisesti yleisiä LLM syntyyliksetoja: note -direktiivien normalisoiminen, pipe-label -tunnisteiden pakottaminen, semikolmion uusipäätöshoitto, smart -quote -tunnisteet, kaksisuorakkeiset nopeat, kuvin epämukavuudet ja muut. + +### JSON Canvas + +Luo Obsidian JSON Canvas -muotoilun kohtaisen ruumilisen paikannusmallin: +- Sulkut sijoitetaan syvyyden mukaan (x = syvyyden × 420) ja indeksin mukaan (y = indeksin × 170) +- Läpimääräys lajitunnon pituudelta +- Ehdot `fromSide: 'right'`, `toSide: 'left'`, `toEnd: 'arrow'` -tunnisteilla + +### Vega-Lite + +Luo automaattisen koodinmuuttamisen kanssa täydelliset Vega-Lite v5 JSON -spesifikationit: +- **Cartesian -chartit** (bar/line/area/point/scatter): x + y -kanavat + väri useiden sarjien jaoks +- **Pie**: theta = y (määrällinen), väri = x (nominatiivinen) +- **Taulukko**: rivi = x, teksti = y + sarakkeet = sarjat + +Pimeä ja helppää teematilaa yhdistetään syvällisesti ennen kompiloimista. + +### HTML + +Yleiskäyttöinen varapalo. Itsetoimiv HTML -dokumentti, jossa on: +- CSP -meta -tiedostot +- Helppä/pimeä režiimi `prefers-color-scheme` -kautta +- Kohdanmukaiset UI -siltat 20 kielikentälle +- Osat: hero, strukturi (sulkujen puu), suhteet, huomiot, datasarjien taulukot + +### Muokattavat HTML/SVG + +Selkeä kuva-tavoite muokattavien eksportto-prosessien jaoks. Se projekteerii `DiagramSpec` deterministiseen `SemanticFigureModel`, sitten renderoi itsestään toimivan HTML-dokumentin, jossa on sisälläisiä SVG-ryhmiä, jotka sisältävät Draw.io-tyylisää annotaatioita: + +- `data-drawio-type`, `data-drawio-id` ja `data-drawio-role` semantisten sijoitteiden puhul +- `data-drawio-source` ja `data-drawio-target` semantisten edustajien puhul +- stabilit sijoitus-/edustaja-tunnistimet pääsevän tyyhjennys- ja kokonaisuushuollon jälkeen +- ei skriptejä, ei ulkopuolisia kirjoja eikä ulkopuolisia resursseja + +Tämä tavoite ei ole todistettavasti vaihtoehtoisen suunnittelun reitti vielä. Se on saatavilla selkeän renderointitavoikena, kun tuotteen ratkaistaan muokkaustoiminta eri verkostojen ohjelmistoissa. + +### Draw.io ja Drawnix eksporttoliittymät + +Prahtinen toteutus säilyttää kolmannen osapuolen editorin tukea artefaktin rajalla: + +| Tavoite | Sopimus | Käytössä olevat riippuvuudet | +|--------|----------|--------------------| +| Draw.io | deterministinen, pakottamaton `mxfile` XML `SemanticFigureModel`-lta | ei pluginin käyttöajassa eikä CI:ssä | +| Drawnix | minimaalinen `.drawnix` JSON-alamosa, joka käyttää `geometry` ja `arrow-line`-elementtejä | ei pluginin käyttöajassa eikä CI:ssä | + +Tasapaino on tahtevasti valittu: Notemd voi vahvistaa näkyviä siltiä, stabiileja ID:itä ja tuettua primitiivien kattavuutta ilman diagram.net Desktop-, Drawnix-, Plait- tai ainult selaimen editorin tilan sisällyttämistä pluginiin. + +### circuitikz / TikZJax suunta + +Väylädiagrammit eivät ole sama ongelma kuin yleiset vähenväylät. Elektrisistä väylistä käytettävä oikea syntaksitarkoitus on yleensä **circuitikz**, joka renderoidaan Obsidian kautta pluginaikkeja kuten TikZJax. TikZJax voi laadita paketteja kuten `circuitikz`, `pgfplots`, `tikz-cd` ja `chemfig`, mikä tekee sen kiinnostavaksi fysikan, väylien, kemian ja matemaatin tiedonnottojen kanssa. + +Riski on se, että raaka LLM-generoitu TikZ on hapu: + +- Monipuolinen väyläntopologia voi olla elektrisesti oikea, mutta visuaalisesti lukematon; +- Yhteydessä olevat juotimet ja merkit voivat tehdä oikean netlistin käytöttömäksi opinnotiedoissa; +- Puuttevat paketin eelliset osat, väärät ankaat tai epäsisällisiä komponentin nimet voivat estää renderoinnin; +- Palautteet renderoinnin työkalulta ovat yleensä kuvan tasolla, kun taas LLM generoitu tekstitasollinen geometria. + +Parhempi arkitekttuuri on käsitellä circuitikz rajoitettuana diagrammitarkoituksena, ei vapaavormin pyyntöäksi: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +Esimerkkimodelli pitää kuvailla väyläntopologian ja paikannuksen erikseen: + +| Sulu | Vastuutta | Esimerkki | +|-------|----------------|---------| +| Topologia | elektriset sijainnit ja komponenttien yhteydet | `VDD -> RD -> drain(M1)`, `source(M1) -> GND` | +| Paikannus | verkostojen asentaminen, suuntaus, reittiyhdot | `M1 at (3,2.2)`, sisäänkirjoitus vasemmassa, väljottaminen oikeassa | +| Style | paketti, voltamme‑konvensio, siltit, ankaat | `\begin{circuitikz}[american voltages]` | +| Valvonta | kompilaus‑logi, puutteet ankkeissa, yhteenpistymis-/kuvakuvan tarkistukset | TikZJax/LaTeX‑diagnostiikka plus visuaalinen tarkistus | + +### Päivän circuitikz prototyyppi + +Notemd sisältää nyt ensimmäisen rajoitettun repositoorion prototyyppin tässä suunnassa. Se on suositeltavasti offline‑tilassa ja mallipyyrittävä: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +Prototyyppi lisää erillisen `CircuitSpec`‑rajan ja deterministisen eksportoinnin kuudeen kuldiseen viitekehdoon kuuluville perheille: + +| Välinvaihto tyyppi | Kuldinen viite | Virtan varmistus | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | valvostaa `VDD -> R_D -> M1.D`, `vin -> M1.G`, `M1.S -> GND` ja `M1.D -> vout` ennen LaTeX‑kirjoittamista | +| `cmos-inverter` | `cmos-inverter-v1` | valvostaa PMOS-over-NMOS‑topologian, yhdistyneen girin sisäänkirjoituksen, yhdistyneen drenin väljottamisen, `VDD -> MP.S` ja `MN.S -> GND` ennen LaTeX‑kirjoittamista | +| `cmos-buffer` | `cmos-buffer-v1` | valvostaa kaksi järjestynyt inversoritasoa, keskityspiste `vmid`, taastettu `vout` sekä yhdistyneet VDD/GND‑rajad ennen LaTeX‑kirjoittamista | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | valvostaa parallelliset PMOS/NMOS‑sovelluslaitteet `vin` ja `vout` välillä komplementaarisilla `phib` / `phi`‑kontrolloilla ennen LaTeX‑kirjoittamista | +| `cmos-nand2` | `cmos-nand2-v1` | Valvostaa parallellisen PMOS-tahteen, järjestäyksen NMOS-tahteen, kahden sisäänkirjautumisen `va` / `vb` sekä `vout` ennen LaTeX-lukemista | +| `cmos-nor2` | `cmos-nor2-v1` | Valvostaa sarjan PMOS-pull-up-, parallellisen NMOS-pull-down-, kahden sisäänkirjautumisen `va` / `vb`- ja `vout`-toiminnan ennen LaTeX-lukemista | + +Tämä ei ole vielä yleinen TikZ-luomistin verkko. Se ei kompiloita LaTeXia, kutsua TikZJax, tarkista ekraanikuvausia eikä käynnistä automaattista kuvatilastusparannusta. Ne ovat edelleen tulevien vaiheiden osa. + +Preview-diagrammi-komento voi uudelleen avata salattuja circuitikz lähteetekstejä suoraan, kun tiedoston laajennus on `.tex` tai `.tikz` ja lähteessä on `\usepackage{circuitikz}` tai `\begin{circuitikz}`. Tämä menetelmä on circuitikz vain lähteestä perustuva näyttö: modaalikenttä näyttää lähteetekstin, diagnostiikan, kopioi-/salaa-ohjeiden sekä historian meta-tietoja, mutta se ei kompiloita LaTeXia eikä kutsua TikZJax pluginin toimintaa aikana. + +Samalla lähteistä vain perustuva näytöksentekijän rajoitus kattaa nyt salattuja Draw.io-ja Drawnix-artikkeleja. `.drawio`-failit hyväksyntään, kun ne näevät outoa Draw.io XML (- `mxfile` tai `mxGraphModel`), ja `.drawnix`-failit hyväksyntään, kun ne ovat Drawnix JSON koos `type: "drawnix"`-ään ja `elements`-arrayin. Palvelintaa diagram.net eikä Drawnix-valkoispuhelinhostia ei todella sisällytetä; näitä näytöksiä näyttää lähteekoodin, diagnostikan ja artikkelien historian ilman, että vaadittaisiin palvelimessa sisältävää visuaalista editoria. + +Topologian säilyttävän parannuksen kanssa annetaan parannuksen edellinen speciifikationi viiteena ennen kuin parannettu kandidaat hyväksytään: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +Onnistumisvarmuus käyttää `createCircuitTopologySignature` ja `assertCircuitTopologyUnchanged` `circuitKind`, `goldenReferenceId`, verkonkomponentteja, komponenttien ID:itä/tyyppejä/terminaaleja sekä suunaton yhteyden päätöspisteitä vertailuun ennen tulostusta. Merkit, tiitelin teksti, paikannusvihjeet, yhteyden järjekordi ja yhteyden merkit jätetään tahtavasti huomiotta. Kandidaat, joka lisää shortia tai uudelleen suunnittelee terminaalin, ehtoo `Circuit topology drift detected` ennen kuin `.tex`-faili kirjoitetaan. + +CLI voi nyt analysoida olemassa olevan LaTeX/TikZJax komentointilogin ilman kompilaatorin käyttöä: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +Tämä diagnostiikan tiedosto raportoi puutuvista paketteista kuten `circuitikz.sty`, tietoyttömiä TikZ/circuitikz-avainia, TikZ-tiedostojen syntaksivirheitä kuten puutuvia koma-merkkejä, kontrolloimattomia argumentteja tasapainotetuista sulkeista tai lopetamatta siltiä, määritelmättömiä kontrollijärjestelmiä, yleisiä LaTeX-virheitä, kiireisästi päätetyksiä sekä varoitteellisia overfull `\hbox`-hoihtoja. Se jää logit perustuvaan: lokalaisten LaTeX/TikZJax-tulkinnoiden ja kuvaskärjenlaatuisten tarkistusten toteutus on edelleen erillinen tulevainen tehtävä. + +Hoitajan suodotuskontrolloiden käyttöön voi saman CLI käyttää valintaalisesti selkeästi konfiguroituja renderaattoreita ilman shell-komentojen analysointia: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Kompilausjätkäuksessa käytetään `shell: false`, `{tex}`, `{outputDir}` ja `{jobName}` sijaantekoja muodostetaan argumenttikerron arvoiksi, luetaan luotu `{jobName}.log` ja palautetaan `compileExecution` plus `compileDiagnostics` CLI JSON välityksellä. `--compile-executable` on vain renderaatorin binääri tai paketin path; renderaatorin merkit kuuluvat kertouviin `--compile-arg` arvoihin. Tyhjät käyttöohjelmat eivät toimi `compile-executable-invalid` muodossa, puuttevat binäärit eivät toimi `compile-executable-not-found` muodossa, ja shell-komentoja sisältävät käyttöohjelmakentotekstit saavat suositukset argumenttien jakamiseksi, jotta Windows, Linux ja macOS noudattavat samaa suoraan käytön sopimusta. `--expected-artifact` avulla raportoidaan myös `compileExecution.renderSmoke` ja CLI eivät toimi, jos renderaatori ei luoda tyhjättä artikkelia. Se ei siiskä paketa LaTeX:ta, tee TikZJax pluginin käyttöajaliseksi riippuvuudeksi eikä teke täysinkuvan tasolla visuaalista parannusta. + +Jos oletettu artefaktti on `.svg`, siirryy smoke-check yhden kerroksen syvemmälle: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +SVG smoke-ohjelma kontrolloi `<svg>` juurikohdan, positiivisia dimensioita tai `viewBox`, vähintään yhtä näkyvää graafikan elementtia jälkeen, kun peitetty/tuhoutuvat elementit poistetaan, kaikki pyytämät tekstitokenit, ilmennävät elementit `viewBox` ulkopuolella, ilmennävät yhteen rakenneet `<text>` / `<tspan>`-silti, sekä ilmennävät tekstisiltit, jotka yhteydessä `render-svg-label-overlap` ovat graafikan elementtien päällä. Oodattava teksti etsitään näkyvästä tekstistä ja dekooditavista käyttökykymetaan kuten `aria-label`, `<title>` ja `<desc>`, mikä mahdollistaa niillä renderoihin, jotka säilyttävät semantiset siltit välittömästi näkyvän `<text>` ulkopuolella, todentamaan tekstitokenien olemassaolon ilman OCR:n tarpeetta. Geometrian kontrolli käyttää nyt muuttokenttien huomioittavaa geometriaa yleisille ryhmän- ja elementtin `transform`-atribuutteille, mikä tarkoittaa, että suoritatut, skaalattuut, pöitätyt, kääntetyt tai matrismuuttokenttien mukaan muuttetut SVG -kotiot kontrolloituvat muuttokenttien yhdistämisen jälkeen. Se kattaa täsmäisiä kaareiden rajoja A/a-kaareiden äärimille, täsmäisiä Bezier-käveiden rajoja C/S/Q/T-käveiden äärimille, SVG-rajoja, jotka huomioivat värvikostan paksuutta, sekä siltien yhteydessä olevia kontrolloita, `polyline` / `polygon` -graafikan geometriaa, ja ratkaisee myös vain radan perusteella olevien glyfien paikannusketjujen `<use href="#...">` -viiteistä, takaisinottakseen, että uudelleen käytettäviihin glyfiradanoihin muuttetyt siltit voivat edelleen epäonnistua rajoitettujen taustakansojen kontrolloissa, jos paikattu glyfin geometria ulkee `viewBox` -rajoista. Useat paikattuut `tspan` -siltit yhdellä `<text>` -isäelementillä vertaillaan erillistä siltikotia, mikä auttaa havaitsemaan LaTeX-tyylin SVG -lomakkeet, jotka muuten yhdistäisivät erilaiset siltit yhteen tekstikohdaksi. Paikattuut `text` ja `tspan` -kotiot kunnioittavat `text-anchor` -arvoja `start`, `middle` ja `end`, mikä mahdollistaa keskittyneitä ja oikealle suoritettuja siltiä käyttää teksti-/silti- ja silti-/graafikan yhteydessä olevien ongelmien diagnoosina ilman tarvetta browserin tasolla tekstityypillä. Definitioonillaan vain olevat glyfiradanot `<defs>` ei lueta näkyviksi graafikan elementteiksi, mutta niiden omat definitiokenttien `transform` -atribuuttit sovelletaan ennen `<use>` -paikannusta, mikä takaa, että skaalattuut tai peilattuut glyfin definitsiot ei jää märkittävästi alhaalle. Silti-/graafikan yhteydessä oleva kontrolli käyttää pienen graafikkokotion toleranssia ja ilmoitettuja `stroke-width` -arvoja, mikä mahdollistaa, että pitkät, paksut ja polyygoonilaiset komponentin piirteet voivat katsotaan potentiaalisiksi siltien loettavuusongelmiksi, kun niiden näkyvä värvikosta saavuttaa siltin. Vain radan perusteella ratkaiseet glyfisiltit `<use href="#...">` vertaillaan myös graafikkokotioihin ja epäonnistuvat `render-svg-path-glyph-overlap`, jos uudelleen käytettävät glyfin geometriat yhteydessä ovat viivojen tai komponenttien päällä. Jos renderoi tekee siltistä uudelleen käytettävät radan glyfiden sijaan etsytävää `<text>` -tekstia eikä säilytä käyttökykymetaa, smoke-raportti tallentaa `pathOnlyGlyphUseCount` -tietoja ja epäonnistuu pyytämällä tekstitokenin kautta `render-svg-text-path-only`, sijaan siitä että se pettää, että silti on vain puuttuvaa. Muut epäonnistukset raportoidaan `render-svg-invalid`, `render-svg-dimension-missing`, `render-svg-no-visible-elements`, `render-svg-text-missing`, `render-svg-out-of-bounds`, `render-svg-text-overlap`, `render-svg-label-overlap` tai `render-svg-path-glyph-overlap` -kautta. Tekstitokenin- ja yhteydessä olevien kontrolloita tulisi käsitellä vain struktuurillisina smoke-testeiksi niille renderoihin, jotka säilyttävät siltit etsytävän SVG -tekstin tai käyttökykymetaan muodossa; vain radan perusteella SVG -lomakkeet vaativat edelleen hiljaisempaa kuva-/OCR-kontrolloa, jotta voidaan todistaa visuaalisen siltien loettavuuden, ja tämä smoke-testi ei edes väitele, että se kattaa täysin SVG -radat. + +Peitetyt SVG-ryhmät ja -elementit jätetään aina huomiotta näkyvien elementtien lämentämisen ja geometrian keräämisen aikana. Atribuutit tai sisäistyleet `display:none`, `visibility:hidden`, `visibility:collapse` sekä yleinen `opacity:0` eivät voi tehdä muuten tyhjästä renderoinnista näkyvän väljonteen testin läpimisen. + +Tiekeskeiset glifin definitsiot voivat olla suorat tiedot tai ryhmitetyt/symbolejä sisältävät konteinerit `<defs>`-ssä. Smoke-pass ratkaisee alam-tietojen geometrian `<g id="...">` ja `<symbol id="...">` lähtöästä ennen `<use>` asentamista, mikä mahdollistaa, että pakottu glifin väljonti toimii edelleen `pathOnlyGlyphUseCount`-, rajoitettujen taustakansojen kontrolloinnissa sekä `render-svg-path-glyph-overlap`-ssä. + +Tieanalyysija seuraa myös aluetien alustapauksia ja asettaa aktiivisen punktin uudelleen `Z/z`, mikä mahdollistaa suhteellisten käskyn päätteiden jatkumisen oikeasta SVG punktista pääsenä suletun alueen jälkeen, estäen väärän `render-svg-out-of-bounds` diagnostikan syntyminen. + +Sama geometrian prosessi seuraa SVG numerologisen sääntöjen mukaisia kohdakomaista desimaalia ja selkeitä plussmerkkejä, mikä tähän vuoksi kompaktiset dvisvgm-koordinaatit kuten `.5`, `-.5` tai `+.5` pysyvät osakaaluksi rajojen kontrolloin aikana, sijoittuen sen sijaan epätoivottuihin geometriarajoihin tai jätetyiksi. + +Jos renderointilaitteesi välittää `.png`, saman oletetun tulosteen path muuttuu ensimmäiseksi screenshot-smokeeksi: Notemd decodoi mittomuotoiset 1/2/4/8-bitin indeksoitu-väri-PNG-faileet, 1/2/4/8/16-bitin hallitusvärinen PNG-faileet sekä 8/16-bitin hallitusvärinen-alfa/RGB/RGBA PNG-faileet. Indeksoitu-väri- ja alapitkävyyshallitusvärinen-kuvat tukevat pakattuja näyttöalueita; indeksoitu-väri-kuvat tukevat myös PLTE-ja valintaista tRNS-tietoa; hallitusvärinen/RGB-kuvat tukevat tRNS-transparentsejä näyttöalueita. 16-bitin suorat näyttöalueet normaloidaan saman 8-bitin RGBA-viittailutilaan, jota käytetään smoke-kontrolloissa. Smoke-kontrolli todistaa positivisia määrääksiä, tallentaa taustan rajojen `foregroundBounds`-ena, tallentaa taustan tiheysen sellestä kotikoneesta `foregroundDensity`-ena, epäonnistuu `render-png-blank`-ena, kun jokainen näkyvä pikseli vastaa ylävasaisen taustaväriä, epäonnistuu `render-png-content-clipped`-ena, kun taustan sisältö puuttelee kuvan rajoja, epäonnistuu `render-png-foreground-too-small`-ena, kun suuri screenshotillä on vähemmän kuin neliö taustan pikseltä, ja epäonnistuu `render-png-foreground-dense`-ena, kun taustan pikselit ovat erittäin tiheitä mittelmätön kotikoneen sisällä. Ei tuettu PNG-muotoja epäonnistuvat `render-png-unsupported`-ena sekä muotovalikoiman mukaisilla ohjeilla Adam7-mittomuotoisille PNG:ille tai ei tuettuiin indeksoitu-väri-bitipitoisuuksiin. Tämä havaitsee tyhjät screenshotit, ilmenevän canvas-kappaleen poistamisen, alarendattuja taustan näyttöalueita, ensimmäisiä pikselitasolla tapahtuvia kokonaisuusvirheitä sekä väärää renderointilaitteen PNG-eksportointiasetuksia ilman että tarvitsettaan platfommi-specificka shell-tulostusta. Tämä ei ole vielä OCR-tasolla siltien tunnistaminen, tarkka tekstin yhteyden havaitseminen tai topologian säilyttävä kuvan parannus. + +Kun diagnostiikat näyttävät epäonnistunut kompiloinnin tai render-smoke-käytön, CLI voi myös kirjoittaa topologian säilyttävän parannusluettelon: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +Parannusluettelo käyttää schemaa `notemd.circuitikz.repair-brief.v1` ja sisältää lähteekoodin `CircuitSpec`, topologian merkkinen, kompiloinnin/render-käytön diagnostiikat, sallittuja muutoksia, estetyjä topologian muutoksia, seuraavia kontrolltoiveita sekä strukturoituja `repairPrompt`-ja. Promptin rooli on `topology-preserving-circuitikz-repair`; sen `diagnosticFocus`-listaus perustuu kompiloinnin/render-käytön diagnostiikoihin, ja sen `acceptanceCriteria`-vaatimukset edellyttävät kandidaatin valvontaa sekä uutta kompiloinnia ja render-smoke-käyttöä. Se on siirtolomakkeena hilisempään parannusahelmaan, ei väite siitä, että Notemd jo toimii autonoomisesti visuaalisessa parannuksessa. + +Kun parannuskandidaati on luotu, sama CLI voi valvita sitä vastaan luettelon ennen tulostusta: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief` kontrolloi kandidaatin topologian merkkinen luettelosta ja se on toisensa kanssa vastakkuisia `--topology-reference`-hen. Tämän katsausprosessin läpiminen todistaa vain topologian säilyttämisen; kandidaatti tarvitsee edelleen kompiloinnin diagnostiikat ja render-smoke-käytön kontrollit. + +`--repair-brief`-tulokset sisältävät myös `repairAcceptance`-tiedot schemaan `notemd.circuitikz.repair-acceptance.v1` mukaisesti. Se raportoi `topology-signature`-, `compile-diagnostics`- ja `render-smoke`-katsausprosessit `passed`-, `failed`- tai `missing`-ena; paljastaa `remainingChecks`-tiedot; ja pitää `readyForVisualAcceptance` epätoivottuna, kunnes kandidaatin käyttö sisältää kaikki vaadittavat tiedot. + +Käytä `--repair-acceptance-output` yhdessä `--repair-brief`-hen, kun CI tai väljastus-tiedot tarvitsevat kestävää JSON-tiedostoa: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +Väljastus- tai hoitajan tietojen vuoksi käytä kaikki tuetut kuldiset perheet yhdistetyn fixture-käyttöjärjestelmän kautta: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Käyttöjärjestelmä käyttää `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`-, `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`-, `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`-, `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`-, `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json`- ja `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json`-, kutsuu saman shell-tulostusratkan jokaiselle fixtureille ja palauttaa yhdistetyn JSON-raportin, jossa on tiedot jokaisesta fixtureistä `compileExecution`- ja `compileDiagnostics`-ena. Se on edelleen hoitajan käsk, ei plugin-runktimen riippuvuus. + +Kun hoitajan laitteessa ei ole vielä renderointilaitteetta konfiguroitu, käytä samaa fixture-käyttöä ilman `--compile-executable`-a ja säilytä ympäristön katsausprosessi selkeästi: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +Se ratkaus kirjoittaa todennäköisen fixturein `.tex`-artefakteja, mutta palauttaa `ok: false`-en, jossa `rendererAvailability.status` on asettettu `missing-configuration`-eksi sekä `compile-executable-invalid`-diagnostiikan. Käsittele sitä vain renderointilaitteen saatavuuden tueena; se ei ole kompiloinnin, render-smoke- tai visuaalisen hyväksyminen. + +### Kuldisen referenssin promptin muoto + +Lähitulevaisuudessa anna käyttöön renderoitavainen kuldinen referenssi ennen kuin pyytät sirkuitin variantia. Rajoitettu prompt pitää säilyttävän sisäänkirjautumisen, koordinaattiskaalan, ankkakentän ja suunnittelukäytännöt: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +CMOS-inverterin tapauksessa promptin tulisi pyytää selkeää topologian sekä paikannusrajoitteet, ei vain "draw a CMOS inverter": + +- Säilytä `VDD` ylän puolella, `GND` alän puolella, sisäänantoi vasemmassa, väljottu oikeassa; +- Käytä `pmos` ylpeänä `nmos`:lla, yhdistetyillä viivoilla ja yhdistetyillä virtauskanavilla; +- Säilytä väljundipiste virtauskanavan yhteyspisteessä ja merkki se `*-o`:lla; +- Käytä nimeillisiä ankkereita (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) visuaalisesti suoritettujen koordinaatien sijaan; +- Vältä diagonaalia tai ristuvia viivoja ilman elektrisen vaatimuksen olemassaolua. + +### Prahtinen eden ja seuraavat vaiheet + +| Ala | Prahtinen tila | Seuraava toimi | +|------|----------------|-----------| +| Yleiset diagrammit | Spec-first-pipeline on käytössä Mermaid, JSON Canvas, Vega-Lite, HTML:lle | Jatka semantisen verifikoinnin kattavuuden laajentamista | +| Muokattavat kuvat | `editable-html-svg`, Draw.io XML ja Drawnix JSON artefaktien rajat on rakennettu | Lisäydy suurempia primitiivejä vain kun testit osoittavat muokattavuutta | +| CLI-tuke | `npm run diagram:export-artifact` eksportoi muokattavat HTML/SVG, Draw.io ja Drawnix yhdestä `DiagramSpec`:stä | Lisäytyvät tarkoitukselle suunniteltu suitsutuskomponentit uusien tarkoituksien toimituksessa | +| circuitikz | `CircuitSpec -> circuitikz` prototyyppi eksportoi yleiset lähteet, CMOS-inverterin, `cmos-buffer` / `cmos-buffer-v1`, `cmos-transmission-gate` / `cmos-transmission-gate-v1`, `cmos-nand2` / `cmos-nand2-v1` sekä `cmos-nor2` / `cmos-nor2-v1` kultaiset mallit, projektit `layoutHints.inputSide` ja `layoutHints.outputSide` deterministiseen sisään-/ulospordiporttien paikannukseen ilman topologian muuttamista, hylkää parannustopologian vuorovaikutuksen `--topology-reference` kautta, lähettää topologian säilyttävät parannusraportit `--repair-brief-output` ja schema `notemd.circuitikz.repair-brief.v1` kautta, sisältää strukturoituja `repairPrompt` siirtoaineita `diagnosticFocus`, `acceptanceCriteria` sekä roolin `topology-preserving-circuitikz-repair` kautta, valvostaa parannuskandidaateja `--repair-brief` kautta, lähettää `repairAcceptance` porttien tukijohdat schema `notemd.circuitikz.repair-acceptance.v1` kautta `readyForVisualAcceptance` ja `remainingChecks` kautta, säilyttää ne tukijohdat `--repair-acceptance-output` kautta, analysoi kompilauslogit, voi käyttää erillisiä lokalisoiduja renderointilaitteita plus `--expected-artifact`, SVG `--expected-svg-text`, pääsykehityksen meta-tietojen kontrollit `aria-label`, `<title>` sekä `<desc>` kautta, peittetyjen/tansparenttien SVG elementtien poistaminen, `render-svg-text-path-only` / `pathOnlyGlyphUseCount` klassifiointi vain radan merkintöille, radan merkintöjen glyfien paikannuskontrollit `<use href="#...">` kautta, radan merkintöjen glyfien yhteyden diagnostiikat `render-svg-path-glyph-overlap` kautta, suoravan radan virtauspunktin hallinta `Z/z` kautta, täysi kaareen rajoitteet A/a kaareiden äärimille, täysi Bezier-käveiden rajoitteet C/S/Q/T käveiden äärimille, värvipaksuun perustuvat SVG rajoitteet ja merkintöjen yhteyden kontrollit, `polyline` / `polygon` maalintogeometrian kontrollit, sijoitettu `tspan` merkintögeometria, `text-anchor`-tietoiset sijoitettut tekstigeometriat, transformaatio-tietoiset geometriat SVG piirrittyyn taustalle/textin yhteyden sekä merkintöjen vs maalinton suitsutuskontrolloihin `render-svg-label-overlap` kautta, sekä PNG:n ei-tyhjä / kärjitty / tihe-foreground -skennaus suitsutuskontrollit, sisältäen indeksoidun värvipaletan alfan, hallitusvärin/RGB tRNS transparent -esimerkkejä sekä muodokohdastaatuvia `render-png-unsupported` ohjeita Adam7 interlaced PNG:ille ja indeksoiduun bit-pituuden virheille, `foregroundBounds`, `foregroundDensity`, `render-png-content-clipped` sekä `render-png-foreground-dense` kautta ilman shell-analyysiä, sisältää yhteenvetollisia hoitajan suitsutuskomponentteja `npm run diagram:smoke-circuitikz` kautta, tallentaa puuttuvat renderointilaitteiden konfiguroinnin `rendererAvailability.status: "missing-configuration"` ja `compile-executable-invalid` kautta, sekä sisältää yleisiä esittelydiagnostiikoita, diagnostiikan yhteenvetotuloksia, diagnostiikan tietoisia historiallisia kirjoituksia sekä lähtötekstin ainoastaan varauksen `RenderArtifact.diagnostics` sekä esittelymodaalin kautta | Lisäytyy OCR-tasolla merkintöiden tunnistaminen vain radan visuaalisille tekstille, tarkat pikselitasolla yhteydenkontrollit, laajempi SVG radan katto tarpeen mukaan, automaattinen renderointilaitteen asentaminen/tunnistaminen vain siinä tapauksessa, kun se voi jää valintaan, sekä automaattinen topologian säilyttävän parannusprosessin käyttö | +| TikZJax yhdistelmä | Kandidaattinen renderointihostaus Obsidian-puolen näytökselle | Säilyttäkää se valintaan; älä tee TikZJax pakolliseksi plugin-runktimen riippuvuudeksi | + +## Konfigurointi + +| Asetus | Omistusasetus | Vaikutus | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | Vaihtoehto spec-first ja vanhaa Mermaid välillä | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = Mermaid vain; `'best-fit'` = perus tarkoitukset + varaukset | +| `preferredDiagramIntent` | `undefined` (auto) | Ylöntaa automaattinen tarkoituksen tunnistus | +| `summarizeToMermaidLanguage` | `'en'` | Diagrammin merkintöjen tarkoituskieli | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | Tehtävän mukaainen LLM diagrammin luomiseen | +| `autoMermaidFixAfterGenerate` | (konstanttien väliltä) | Auto-käytä vanha parannuslaitteet Mermaid tuloksilla | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | Lisää lähteeseen lokalisoidut tietot | + +### Lokalisoidut tietojen lisääminen + +Aktivoituessa Notemd ottaa käyttöön relevante kontekstikatkaukset sinun vaultin lokalaisesta tietotekistästä (MiniSearch-pohjainen) ja lisää ne lähteemarkkdidyn alkaan. Täydentämisohje määrittelee: "Ainoastaan tukea‑viite; säilyttäkää lähteetiedon perusstrukturi loydyksena." + +### Sopivuusrežimit + +- **`legacy-mermaid`**: Kaikki tarkoitukset suunnataan Mermaid:ni. Ei‑Mermaid tarkoitukset (canvasMap, dataChart) sunnitaan käyttämään `flowchart` tai `mindmap`:a. Ei ole varausketjuä. +- **`best-fit`**: Jokainen tarkoitus suunnataan sen omalle tavoitteelle. Jos perustavoite ehtyy, käytetään varausketjua (esim. Vega-Lite → Mermaid → HTML). + +## Eeläkkaus & eksportointi + +| Toimenpide | Metodit | +|--------|--------| +| SVG export | `mermaid.render()` / `vega.View.toSVG()` / SVG builder for Canvas | +| PNG‑eksportointi | SVG → Image → Canvas (device pixel ratio 1x-3x) → PNG ArrayBuffer | +| Lähteetiedon salaus | Raaka artefaktin sisältö salataan tavoitteekohdan mukaisella laajennuksella | +| Ainoastaan lähteetiedon eeläkkaus | Ei‑inline artefaktit, joissa näytetään lähteetiedon sisältö koodina sekä diagnostiikkaa, ilman iframe‑tulkintaa | +| Semantinen audit | Mermaid, JSON Canvas, Vega-Lite ja muokattavaa HTML/SVG, jota kontrolloi `scripts/diagram-semantic-verification.js` | + +**Caching**: RenderCache käyttää `{spec, target, theme}` deterministista JSON-avaintia. Matkan aikana toimiva duplikaatiointi estää kaksinkertaiset renderoinnut. + +## Vinkit + +- **Alkaa `best-fit`-režillä** — se tuottaa parhaan visuaalisen tuloksen jokaiselle tarkoituksentyyppille +- **Käytä voimakkeita malleja kompleksisille diagrammille** — suoratoimukka- ja ER-diagrammit saavat hyöty GPT-4o tai Claudeista +- **Aktivoi lokaliset tiedot** domaintin omiin diagrammiin — relevaattinen vault-taihtoehto parantaa täydellisyyttä +- **Määri `autoMermaidFixAfterGenerate`** — ilman sitä esiintyvät yleisesti Mermaid-syntyylikset virheet +- **Legatiivinen korjausohjelma on laajaperustava** — jos Mermaid-esikatselu ehtyy, korjauskomennon käyttö käsitsi ratkaisee usein sen + +--- + +## Järguvät toimet + +- 🔗 [Wiki-Links](./wiki-links) — Kuidas konseptit yhdistetään sisällön päälle +- 📝 [Concept Notes](./concept-notes) — Ekstrahoi konsepttejä diagrammin lähteemateriaalille +- 🔍 [Research](./research) — Täydentä diagrammeja verkkokäytetyillä tietoilla diff --git a/website/i18n/fi/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/fi/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..6e61a2f6 --- /dev/null +++ b/website/i18n/fi/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "Tutkimus ja verkkokysely" +description: "Yhdistä verkkokysely omaan notoihin" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Tutkimus ja verkkokysely + +<TLDR> +**Notemd kysytää internetistä tietoa ja lisää LLM - yhteenvetottuja tuloksia suoraan sinun notoihin.** Tavily API on pääkyselypalvelin; DuckDuckGo toimii ilman asetuksia toisen vaihtoehtona. Tulokset yhteenvetottakseen sisältävät lähteitä ja lisätään `## Research`-ohjeen alla. Tukitaan yksityisen noton tutkimus, paketin muodossa kaustan tutkimus sekä tehtäökohdan mukaista mallin valinta yhteenvetottavaksi toimenpiteeksi. + +Tämä kuuluu [Obsidian AI-tietojen hallintasuunnitelmaan](/docs/pillar-ai-knowledge). +</TLDR> + +## Yleenvaate + +Tutkimus on yksi Notemd'nin vahvimmista yhdistelmistä: se sulkee syklin lähdöksen, kyselyn ja kirjoittamisen välillä. Sijaan siitä että vaihtaudut selaimelle tundetun termin etsimiseen, highlightoi sinun se ja lasketaan Notemd kysyä, yhteenvetottaa sekä lisätä tulokset – kaikki sinun avarassasi. + +Prosessi on täysin asettettavissa. Vaihtaa voi kyselypalvelija, LLM, joka kirjoittaa yhteenveton, sekä siitä, käytäänkö tuloksia aktiivisen noton alla tai kirjoitetaanko ne erillisiin fiileihin. Paketimodi mahdollistaa tutkimaan kaikki kaustan notot yhdellä klikkaamisella. + +## Kuidas se toimii + +### Kysely – siirto yhteenvetoon prosessi + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **Kyselytermien poistaminen** -- Notemd poistaa kyselytermit valinnastasi tai noton titelistä. +2. **Verkkokysely** -- Ensimmäisesti pyritään käyttää Tavily. Jos ei ole määritelty API-avain, käytetään automaattisesti DuckDuckGo (ei avaintia tarvita). +3. **LLM yhteenveto** -- Toimitetut kyselytulokset lähetetään määriteltuun LLM, joka tuottaa lyhyen yhteenveton sisällä olevien lähteiden kanssa. +4. **Lisääminen** -- Muodostettu yhteenveto lisätään `## Research`-ohjeen alla aktiivisen noton alla. + +### Tavily vs. DuckDuckGo + +| Aspektti | Tavily | DuckDuckGo | +|--------|--------|------------| +| API-avain | Tarvitaan (tila on ilmaista) | Ei tarvita | +| Tulosten laatu | Korkeampi (suunniteltu AI:lle) | Kelpaa yleisiin kyselyihin | +| Kiirustusrajoitukset | Suuri ilmaista taso | Rajoitettu käyttö | +| Konfigurointi | `tavilyApiKey` asetuksissa | Ilmaista konfigurointi – automaattinen vaihto | + +### Pakettikatalojen tutkimus + +Painaa oikealla painikella kataloosi ja valitse **"Notemd: Tutkimuskatalo"**. Kaikki `.md` -tiedostot kataloossa käsitellään järjestynyt (tai parallellisesti määrattuun samanaikaisuuslukkuun). Jokainen merkintä saa oman tutkimusyhteenvetonsa. + +## Konfigurointi + +| Asetus | Omistusasetus | Vaikutus | +|---------|---------|--------| +| `tavilyApiKey` | `''` | Tavily API -avain. Kun se on tyhjä, käytetään ainoastaan DuckDuckGo. | +| `researchProvider` / `researchModel` | DeepSeek | Tulostuskäytön LLM -yhteenvetojen tehdäksä | +| `maxResearchContentTokens` | `4000` | Tokenit sisällön lähettämiseen LLM -iin. Liiallinen osa poistetaan. | +| `researchAppendToNote` | `true` | Lisää yhteenveto lähtemerkintään. Jos ei, luodaan erillinen tiedosto. | +| `researchLanguage` | `'en'` | Yhteenvetottujen tutkimusten väljölaskukieli | + +### Käytönkohtainen malliennuste + +Tutkimuksia hyödyntää malli, joka toimii monikielisen sisällön kanssa ja tuottaa hyvin strukturoituja tekstejä. Voi huomata: + +- **DeepSeek** – perusversio, halpa, hyvä laatu +- **GPT-4o** – parempi yhteenvetointi, korkeampi hinta +- **Gemini Flash** – nopea ja odotonta, sopii yleisille kysymyksille + +## Esimerkki + +Luet artikkelia *transformer attention mechanisms* -teemasta ja satut tundemattomaan termiin: *relative positional encoding*. Sijaan siitä että jätät Obsidian: + +1. Valaistaa **"relative positional encoding"** +2. Oikeaklikkaus --> **"Notemd: Tutkimus ja yhteenveto"** +3. Notemd etsii internetistä, yhteenvetoo parhaat tulokset ja lisää: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +Yhteenveto on nyt osa sinun avarastasi – se on hakettavaa, yhdistettävää ja käytettävää offline. + +## Vinkit + +- **Määri Tavily-kehys parhaiden tulosten saamiseksi** – jopa ilmaista taso tarjoaa paremman relevanssin kuin raaka DuckDuckGo. +- **Käytä voimakasta yhteenvetointimallia** – halvat mallit voivat tuhota nykyisiä teknisitä tietoja. +- **Tutka kokonaan** jälkeen ensimmäisen lähdön, jotta voit täyttää tilanteita useissa notioissa yhtä aikaa. +- **Tarkista lisättyjä yhteenvetoja** – LLM-mallit voivat luoda epätoivoisia lähteetietoja. Verraa tärkeitä väiteitä. + +--- + +## Järguvät toimet + +- [Concept Notes](./concept-notes) – Eritä ja säilytä tärkeät terminit tutkimustuloksista +- [Wiki-Links](./wiki-links) – Yhdistä tutkimuksista saatuja konseptteja sinun avarassasi +- [Translation](./translation) – Kääntä tutkimusyhteenvetoja toiseen kieliin +- [LLM Tarjoajat](/docs/providers/overview) -- Konfiguroi yhteenvettoinnissa käytettävä malli diff --git a/website/i18n/fi/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/fi/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..4cfd3b14 --- /dev/null +++ b/website/i18n/fi/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "Käännös" +description: "Kääntä notat ja valintat" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# Käännös + +<TLDR> +**Notemd kääntää tekstiä 21+ kielen välillä LLM-voimistettuun kääntöpalveluun.** Se toetaa yksityisen valinnan kääntöä, koko notan kääntöä sekä paketin kaustan kääntöä. Jokainen kääntötöitä tehtävä voi käyttää erillistä tarjoajaa ja mallia tehtävän asetuksien kautta. Tuloksentekieli on erikseen käsiteltävää UI-kielistä. Tulokset lisätään alkuperäiseen tekstiin tai kirjoitetaan uudeen tiedostoon vastaavasti sinun valintasi mukaan. + +Tämä kuuluu [Obsidian AI-tietojen hallintasuunnitelmaan](/docs/pillar-ai-knowledge). +</TLDR> + +## Yleenvaate + +Kääntö Notemd-ssä ei ole sanokirjan etsintä – se on LLM-voimistettu, kontekstitunnettu kääntö. Malli näkee koko paragrafin tai notan, säilyttäen tonin, alueellisen terminologian ja lausestrukturan. Tämä tuottaa parempia tuloksia kuin lauseittain toimivat palvelut, erityisesti teknisessä, akateemisessa ja luovassa kirjoituksessa. + +Tämä ominaisuus toetaa kolmea alueetta: valinta, aktiivinen notta ja koko kausta. Yhdistettyä tehtävän mukaiseen mallivalintaan käyttäen voit käyttää nopeaa mallia (Gemini Flash) vapaalle kääntöille ja voimakasta mallia (Claude Sonnet) nuansseihin tarkkaan sisältöön – ilman että sinun pitää muuttaa omaa globaalista tarjoajaa. + +## Kuidas se toimii + +### Kääntökomento + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **Lähteikielen tunnistaminen** – LLM arvostaa lähteikieleen sisältöstä. Ei tarvitse sitä käsitsi määritellä. +2. **Kysymyksen luominen** – Notemd luoo kysymyksen, jossa on tarkoituksentekieli, valittavasti alueellinen vihje ja kääntettävä sisältö. +3. **LLM-kääntö** – Konfiguroitu `translateProvider` / `translateModel` käsittelee pyytämystä. Malli säilyttää markdown-muotoilu, wiki-linkit ja koodiplokkit. +4. **Tulokset** – Kääntetty teksti lisätään alkuperäisen tekstin alle tai kirjoitetaan uudeen tiedostoon avarassa. + +### Kieletynjot + +Notemd toetaa kaikki kieletynjot, jotka perustavan LLM toetaa. Yleisimmät yhteydet ovat: + +| Lähteikieli | Tavoite | Typinen laatu | +|--------|--------|----------------| +| Englanti | Kiina (lihtentetty) | Suuretlaatuinen | +| kiinakieli | englanti | suuretuloinen | +| englanti | japankieli | hyvä | +| englanti | saksa / ranska / espanja | hyvä | +| mistä tahansa tuettu | mistä tahansa tuettu | mallitaito | + +The `translateLanguage` setting controls the **output language**. The source language is auto-detected. + +### Mallin valinta tehtävälle + +Käännön laatu muuttuu merkittävästi mallin mukaan. Notemd lets you assign a dedicated model just for translation: + +| Malli | Nopeus | Laatu | Kustannus | Paras käyttö | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | Nopea | Hyvä | Matala | Välinainen, suuri määrä | +| `gpt-4o-mini` | Nopea | Hyvä | Matala | Nopeat etsintät | +| `deepseek-chat` | Keski | Hyvä | Väliin pieni | Budjettinen monikielinen | +| `claude-3-5-sonnet` | Keski | Suuretulot | Keski | Tekniset / akateemiset | +| `gpt-4o` | Keski | Suuret | Keski | Nüansseihin tarkka prosa | + +### Pakettikatalojen kääntö + +Painaa oikea painiketta katalolle ja valitse **"Notemd: Kääntä kataloosi"**, jotta kääntetään kaikki märkinnät selle katalon sisällä. Jokainen tiedosto käsitellään erikseen. Samaa aikaa käsiteltäviä tiedostoja määrittelee suoratoimisuasetus. + +## Konfigurointi + +| Asetus | Omistusasetus | Vaikutus | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | Erihallintaa tarjoava palveluntarjoaja kääntötyöksille | +| `translateLanguage` | `'en'` | Tarkoituksikieli | +| `translationAppendToNote` | `true` | Lisää kääntetty teksti alkuperäisen tekstin alle. Jos arvo on false, luodetaan uusi tiedosto. | +| `batchConcurrency` | `3` | Pakettikääntön aikana samaa aikaa käsiteltäviä tiedostojen määrä | + +## Esimerkki + +Luet kiinalaisen tutkimusmärkinnän ja haluat sen englanninkielisen version. + +1. Avaa märkinnä +2. Painaa oikea painiketta --> **"Notemd: Kääntä nykyinen tiedosto"** +3. Notemd tunnistaa kiinan kielen, kääntää sen sinun määritellytään tarkoituksikielille (englantiin) ja lisää: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +Alkuperäinen kiinalainen teksti jää muutomattomana käännön yläpuolelle. `## Translation`-ohje säilyttää mbothat versiot samassa tiedostossa helposti saatavaksi. + +## Vinkit + +- **Käytä Gemini Flash suurtiloille** -- se on nopein ja halvimpi valinta suurten katalojen pakettikääntöön. +- **Säilytä wiki-liitokset** -- Notemd:n käsku kertoo LLM:lle, että `[[wiki-links]]` tulee säilyttää muotoilun aikana muutomattomana. Tarkista tuloksen jälkeen, koska jotkut mallit voivat aikaisin poistaa ne. +- **Määritä väljöksi oleva kieli selkeästi** -- automaattinen tunnistus toimii lähteeksi, mutta konfiguroi aina `translateLanguage`, jotta ei ole epäselvyyttä siirtokysestä. +- **Kertokirjojen paketimuotoilu** -- jos sinun kertokirjoiden kansio on yhdessä kielessä ja sinun on tarpeen ne toisessa kielessä, kansioluokanmuotoilu tekee sen yhden kerralla. + +--- + +## Järguvät toimet + +- [Research](./research) -- etsi ja yhteenvetöitä minkä kielellä tahansa, sitten muotoila tulokset +- [Workflows](./workflows) -- yhdistä muotoilu wiki-liitoksien tai kertokirjojen poistamisen kanssa +- [Batch Processing](/docs/advanced/batch-processing) -- samanaikaisuus ja uudelleenkirjoittaminen kansiolaittojen käytössä +- [LLM Providers](/docs/providers/overview) -- valitse parhaa mallia sinun kielipaarille diff --git a/website/i18n/fi/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/fi/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..aca7f03a --- /dev/null +++ b/website/i18n/fi/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "Wiki-linkit" +description: "Automaattinen wiki-linkin luominen tärkeille käsitteille" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# Wiki-linkit + +<TLDR> +**Notemd lisää automaattisesti `[[wiki-links]]` tärkeille käsitteille sinun notioihisi.** LLM lukee sinun sisällön, tunnistaa kontekstissa tärkeitä terminejä ja lisää Obsidian-tyylin wiki-linkit jokaisessa esiintymissä. Vaihtoehtoisesti luodaan konsepttipalat taaslinkkeillä. Tukitaan samasanojen poistaminen, linkin turvallisuus muuttamisen tai poistaman yhteydessä sekä puhtaasti extraktio-režiimi (ilman tiedostojen muutoksetta). Erillisesti Auto Linkistä, joka sopii vain olemassa olevien notion nimille, Notemd käyttää AI:aa uusien käsitteiden tunnistamiseen ja vastaavien notiojen luomiseen. Tämä kuuluu [Obsidian AI-tietojen hallintan ohjeeseen](/docs/pillar-ai-knowledge). +</TLDR> + +## Yleenvaate + +Wiki-linkit ovat Notemd:n keskeinen ominaisuus. Se muuntaa tavallisen tekstin yhdistetyiksi tietojen graafikuksi seuraavilla tavoin: + +1. **Analysoi sinun notioisi** käyttäen LLM +2. **Tunnistaa tärkeitä käsiteitä** (termineet, henkilöt, metodit, teooriat) +3. **Lisää `[[wiki-links]]`** jokaisessa esiintymissä +4. **Luo konsepttipalat** (valittavasti) taaslinkkeillä + +## Kuidas se toimii + +### Prosessi + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### Esimerkki + +**Ennen:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**Jälkeen:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## Käyttö + +### Perus: Lisää linkit nykyiseen notioon + +1. Avaa tiedon +2. Painaa oikea painikka editorissa → **"Process file (add links)"** +3. Oota muutama sekunti +4. Käsitteet ovat nyt yhdistetyt! + +### Paketti: Käsittele useita merkintöjä + +1. Oikeasta paina kaustaa tiedostovalitsemissa +2. Valitse **"Notemd: Process folder (add links)"** +3. Konfiguroi: + - Samaa aikaa käsiteltäviä tiedostoja (miten paljon) + - Uusikaata olemassa olevat linkit (kyllä/ei) +4. Paina **Käsittele** + +### Valintainen: Linkita konkreettinen teksti + +1. Esitä teksti, joka käsitellään +2. Oikeasta paina → **"Käsittele valinta (lisää linkkejä)"** +3. Ainoastaan esitetty osa analysoituu + +## Notemd vs Auto Link + +Obsidianilla on kaksi lähestymistapa automaatiseen wiki-linkkistämiseen: + +| | **Auto Link** | **Notemd** | +|--|---------------|-------------| +| Linkkin lähteä | Vaultissa olevat olemassa olevat merkintöjen nimet | LLM-tunnistetut käsitelmän sisällössä olevat konseptit | +| Yhteydet uusiin käsiteltyihin | Ei — otsikko mussi jo olla olemassa | Jaa — AI tunnistaa käsiteltyjä ja luoo merkintöitä | +| Synoniimien hallinta | Ei | Jaa — synoniimien poistaminen | +| Käsiteltyjen merkintöjen luominen | Ei | Jaa — taasyhteyksillä ja duplikaatien poistamisella | +| Pakettiprosessointi | Ei (yksi tiedosto) | Jaa (kaustatasolla) | +| Toimenpito per toimenpide | Ei | Jaa | + +**Auto Link** toimii otsikkojen mukaisesti: jos merkintö nimeä "Machine Learning" on olemassa, se muotoi esiintymät `[[Machine Learning]]`-ksi. Jos merkintö ei ole olemassa, ei tapahtu mitään. + +**Notemd** on AI-johdonnoitu: LLM lukee sinun sisällön, ymmärtää kontekstin, tunnistaa käsiteltyjä, jotka *sulkeutuvat* yhteydeksi — even if no note exists yet — ja luoo sekä yhteyden että käsiteltyjen merkintöjen. + +## Ominaisuudet + +### Synoniimien poistaminen + +**Probleemi:** "transformer", "transformers", "Transformer architecture" → 3 erillistä käsiteltyä + +**Lösung:** Notemd tunnistaa lähellisiä duplikaateja ja käyttää kanoninen muoto. + +**Konfigurointi:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### Linkintä turvallisuus + +**Kun nimetät uudellean käsitteellistä tiedostoa:** +- Kaikki wiki-linkit päivitetään automaattisesti (Obsidian pääominaisuus) +- Tagasilinkit pysyvät muutomattomina + +**Kun poistat käsitteellisen tiedoston:** +- Linkit pysyvät mutta näkyvät „unlinked mentions“-ena +- Voit luoda uudelleen mistä tahansa esiintymistä + +### Puhtaasta extraktointimodeilla + +**Extrahoi käsitteet ilman alkuperäisen tiedoston muuttamista:** + +1. Paina oikea painikko → **„Extract concepts (no linking)"** +2. Käsitteelliset tiedostot luodut +3. Alkuperäinen tiedosto muutomaton + +Käyttötila: Ainoastaan lukemiskelvollisen sisällön tai lopullisten versioiden käsitely. + +## Käsitteellisten tiedostojen luontaminen + +### Automatinen luontaminen + +**Kun se on aktivoitu (varsinaisesti), Notemd luostaa:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### Konfigurointi + +**Tulostuskausta:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Hierarktilinen strukturi:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**Malli:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## Edistyneet valintat + +### Yhteyspano + +**Miten paljon ympäristötekstiä lähettää:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +Suurempi = parempi tarkkuus, suurempi hinta. + +### Minimaaliset esiintymät + +**Linkitä vain ne käsitteet, jotka ilmuvat usein:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +Asenna 2 tai 3, jotta keskittytään kertoisiin teemoihin. + +### Ekskluudiromaat + +**Jätä käyttöön teatud sanojen:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +Tässä tavalla estetään yleistä termineiden liian paljon linkitsemistä. + +### Kohdanomaiset pyyntöt + +**Ylöntaa varsinaisia LLM ohjeita:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +Muokkaa niitä domaaniin specifickeihin tarpeisiin (esim. "Keskittyy meditsiiniterminologiaan"). + +## Vinkit ja parhaat praktiikat + +### ✅ TEKÄ + +- **Tarkista tiedot, joilla on >100 sanaa** — Korkean pituuden tiedot sisältävät vähän käytännöllisiä aihetoimeita +- **Käytä voimakkaia mallia** paremmalle aihetoimien tunnistamiseen (GPT-4o, Claude) +- **Tarkista ennen hyväksymistä** — Varmista, että suositeltuja linkkejä on sinnillisiä +- **Valmistaa iteratiivisesti** — Tarkista 5–10 tiedostoa, vaatita graafiaa, päivitä asetukset + +### ❌ ÄÄTKÄ + +- **Yli-linkkaista** — Ei jokaiselle sanalle tarvitse olla linkki +- **Tarkista muotoiluja kerran toisensa jälkeen** — Aihetoimet voivat muuttua, odota stabilisointia +- **Jätä synonyymit huomiotta** — Aktivoi estämistä, ettei ilmene "ML" vs "Machine Learning" + +## Toimintaehdot + +### Nopeus + +| Tiedoston suurus | GPT-4o-mini | Claude Sonnet | Ollama (lokalisoinnin) | +|-----------|-------------|---------------|----------------| +| 500 sanaa | 2–3 sekuntia | 3–5 sekuntia | 5–10 sekuntia | +| 2000 sanaa | 5–8 sekuntia | 10–15 sekuntia | 20–40 sekuntia | +| 5000+ sanaa | Osittainen (useita kutsuja) | Osittain | Osittain | + +### Kustannusarvio + +**Esimerkki: 1000-sanan longheet GPT-4o-mini kanssa** +- Sisäänantava määrä: ~1500 tokenia +- Lähteenväli: ~200 tokenia +- Kustannus: ~ + +**100 merkkinen parantaminen paketittain:** ~ + +## Virheiden ratkaiseminen + +### Ei linkkejä lisätty + +**Kontrolloi:** +1. LLM kutsu on suoritettu edullisesti (Asetukset → Diagnostiikka) +2. Notissa on tarpeeksi sisältöä (>50 sanaa) +3. Konseptit ovat tekniset/tarkoitukselliset (ei vain sanajäsenet) + +**Proovi:** +- Käytä voimakkaampaa mallia +- Suurenta kontekstikokoa +- Kontrolloi API-avainnin todellisuutta + +### Liian paljon linkkejä + +**Lääket** +1. Suurenda minimaaliset esiintymät (2 tai 3) +2. Lisää yleisiä sanoja poistolistaan +3. Käytä vähemmän aggressiivista mallia + +### Väärit tiedot yhdistetyt + +**Parannukset:** +1. Käytä käsiteltävää pyyntöä domaani specificiteettiin +2. Aktivoi sanonyksensupressio +3. Tarkista käsittävästi ja poista yhdistykset + +### Linkit katkeuvat muuttamisen jälkeen + +**Tämä on normaalinen Obsidian toiminta.** + +Kaikkeen linkkien päivittämiseen: +1. Muokkaa konsepttikuvaus +2. Obsidian päivittää automaattisesti `[[old]]` → `[[new]]` + +--- + +## Järguvät toimet + +- 📖 [Konsepttikuvausnotat](./concept-notes) — Syvällinen yksityiskohtainen tutkimus konsepttikuvausten luomista +- 🔍 [Tutkimuksen yhdistäminen](./research) — Yhdistä linkit verkkotutkimuksien kanssa +- 🎨 [Diagrammit](./diagrams) — Visualoi sinun tietoympyränsi diff --git a/website/i18n/fi/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/fi/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..93210558 --- /dev/null +++ b/website/i18n/fi/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "Työprosessit" +description: "Yhdistä useita tehtäviä yhdellä klikkaamisella painikkeella" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Työprosessit + +<TLDR> +**Notemd Työprosessit yhdistävät useita tehtäviä yhteen yhdellä klikkaamisella toimintoon.** Määritä järjestelmät kuten `add-links > extract-concepts > research > diagram` käyttäen yksinkertoa DSL:aa. Työprosessit ilmuvat puolekaluun painikkeina, jotka käyttävät koko ketjun nykyisessä tiedostossa tai kaustassa. Asennuksessa on olemassa etukäteen määriteltyt työprosessit; luodaan omat asetuksissa. Jokainen vaihe käyttää omaa tehtävälle specificoidutta mallikonfigurointia. + +Tämä kuuluu [Obsidian AI-tietojen hallintasuunnitelmaan](/docs/pillar-ai-knowledge). +</TLDR> + +## Yleenvaate + +Työprosessi poistaa vaikeuudet tehtävien yksittäisen käyttöön. Sijaan siitä, että pitäisi oikeasta klikkaa neliä kertaa linkkien lisäämiseen, käsitteiden poistamiseen, tuntumattomien termien tutkimiseen ja diagrammin luomiseen, painaat yhdellä puolekalun painikkeella ja koko ketju käytetään. Notemd hallitsee järjestelmän, virheiden levymisen ja edenpidon raportoinnin. + +Työprosessit määritetään kerrokselta DSL:lla (alueellisella kielenä). Ne asuvat asetuksissa, ilmuvat Obsidian puolekalun klikattavina painikkeina ja ne voivat soveltaa jaksoon nykyiseen tiedostoon tai koko kaustaan. + +## Kuidas se toimii + +### Työprosessin käyttöketju + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **Tulkita** -- DSL-teksti jakataan `>` (tai `>`) perusteella järjestykselliseen tehtävien tunnistajien listaksi. +2. **Tarkistaa** -- Jokainen tunnistaja siirtyy sisäisen komentoon (add-links, extract-concepts, research, translate, diagram jne.). +3. **Käyttää** -- Vaiheet käytetään järjestyksellisesti. Jokainen vaihe käyttää konfiguroituja tehtävälle specificoituja tarjoajia ja mallia. +4. **Virhehallinta** -- Jos vaihe ehtyy, työprosessi tai poistaa tai jatkaa seuraavaan vaiheeseen, riippuen sinun virhepolitiikastasi. +5. **Valmis** -- Ilmoitus raportoi edun tai listoi kaikki ehtyneet vaiheet. + +### DSL-muoto + +Työprosessit määritetään `>`-erottuina tehtävien tunnistajien järjestelmänä: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**Saadaolevat tehtävien tunnistajat:** + +| Tunnistaja | Toimenpide | +|------------|--------| +| `process-current-add-links` | Lisää wiki-linkkejä aktiiviseen tiedonnotkoon | +| `extract-concepts-current` | Eritä käsiteltyistä tiedonnotkosta käsitelmälliset ajatukset | +| `research-and-summarize` | Tutka valittu teksti tai tiedonnotkan nimi | +| `process-current-translate` | Kääntä aktiivinen tiedonnotka | +| `summarize-to-mermaid` | Luo diagramma aktiivisestä tiedonnotkasta | +| `generate-from-title` | Luo sisältö tiedonnotkan nimestä | +| `extract-original-text` | Eritä alkuperäinen teksti (OCR-/skannattuun sisältöön) | + +**Kataloogitasolla olevat variantit** asettaavat `current`:n `folder`:ksi tunnistusnimen kanssa. + +### Eelmäntunnustetut vs. käsiteltävät työprosessit + +Notemd sisältää valmiita työprosesseja yleisille mallille: + +| Työprosessi | Ahelma | Käytöskenttä | +|----------|-------|----------| +| **Yhden painutuksen päälle erittäminen** | add-links > extract-concepts > research | Tehokkaasti töidä tutkimusartikkelia yhdellä kerralla | +| **Koko tuotantopiste** | add-links > extract-conceptit > tutkimus > diagrammi | Täydellinen tietojen poistaminen visualisoinnin kanssa | +| **Kääntä + Linkkaa** | kääntä > add-links | Kääntä ja linkkaa konseptit siirtymäkielille | + +**Omakustoidut työprosessit** luodaan asetuksissa: + +1. Avaa **Asetukset** --> **Notemd** --> **Työprosessit** +2. Painaa **"Lisää työprosessi"** +3. Sisesta DSL-ahelma (esim. `process-current-add-links>extract-concepts-current`) +4. Anna sille näytönime (esim. "Nopea linkka + Poistaminen") +5. Uusi painikko ilmuu välitaulukossa heti + +## Konfigurointi + +| Asetus | Omistusasetus | Vaikutus | +|---------|---------|--------| +| `workflows` | Eelmästä määritetty joukko | Työprosessien definitsiojen array (nimi + DSL) | +| `workflowContinueOnError` | `true` | Jatka seuraavaan vaiheeseen, jos nykyinen vaihe ehtyy | +| `workflowShowProgress` | `true` | Näytä edistymistietoja jokaisen vaiheen valmistumisen jälkeen | + +### Työprosessissa olevat tehtäökohdan mallit + +Jokainen toimenpideen vaihe käyttää omaa taskatyyppillistä mallikonfigurointia. Ei ole tarpea määritellä mallia DSL:ssä itse. Ratkaisun järjekordi on: + +1. Taskatyyppinen tarjoaja/malli, jos `useMultiModelSettings` on käytössä +2. Yleinen `activeProvider` muuten + +Tämä tarkoittaa, että `add-links` voi toimia DeepSeek-llä samalla kun `research` toimii GPT-4o -llä – kaikki samassa toimenpideen klikissa. + +## Esimerkki + +Olet just impordinnut yhtä PDF-a masinoppimisartikkelista omaan avaruksesiin ja haluat täysän tietojen poistamisen: + +1. Avaa impordattu tiedosto +2. Klikkaa **"Full Pipeline"** -painiketta sijainnivalikossa +3. Notemd käynnistyy: + - **Toimenpide 1**: Lisää wiki-linkkejä – `[[attention mechanism]]`, `[[transformer]]` jne. + - **Toimenpide 2**: Poista käsiteltyjä aineita – luodaan aineetiedot sinun aineetokiossi + - **Toimenpide 3**: Tutkinta – yhteenvetottavat verkkolähteet keskeisiin termiin + - **Toimenpide 4**: Diagramma – luodetaan Mermaid-malli artikkelin rakenteesta +4. Laukkuun noin 30 sekuntia myöhemmin on tiedostossa linkkit, aineetiedot ovat olemassa, tutkimustulokset on lisätty ja diagrammatoimi on salattu + +Kaikki yhden klikin kautta. + +## Vinkit + +- **Alka etukäteen määriteltyiltä toimenpiteiltä** – ne kattavat useimmat yleiset mallit. Kohandaa vain siis, kun tarvitset erilistä järjestystä. +- **Aktivoi `workflowContinueOnError`** – epäonnistunut diagrammatoimenpide ei tohisi estää koko toimenpideen toimintaa. +- **Käytä kansiojen työprosesseja** massitööhöntekoon – oikeasta paina kansiolle, valitse työprosessi, ja kaikki tiedot töidetään. +- **Nimeä työprosessit selkeästi** – puolekaluun on rajoitettu tilaa. Käytä lyhkiä, toimintoorihtisiä nimesiä kuten "Quick Extract" tai "Translate + Link". + +--- + +## Järguvät toimet + +- [Research](./research) -- Ymmärkää, mitä tutkimusvaihe tekee, ennen kuin lisätät sen työprosesseihin +- [Wiki-Links](./wiki-links) -- Päälinkitysteknologia, jota käytetään useimmissa työprosesseissa +- [Concept Notes](./concept-notes) -- Ajattelun poistaminen työprosessivaiheena +- [Batch Processing](/docs/advanced/batch-processing) -- Samaa aikaa toiminta ja edenemismäärän raportointi kansiojen työprosesseissa diff --git a/website/i18n/fi/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/fi/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..0e79ec1a --- /dev/null +++ b/website/i18n/fi/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "Konfigurointi" +description: "Konfigoi Notemd-asetukset ja eelistöt" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Konfigurointi + +<TLDR> +**Notemd-konfigurointi kattaa 6 pääaluea:** (1) LLM-tarjoajat ja API-avainet, (2) Tekstinvalintat yksittäisten tehtävien mukaan, (3) Tulostuspaatit ja mallit, (4) UI-kieli ja tulostuskieli, (5) Palautteenpalvelut (Tavily/DuckDuckGo), (6) Kohdanomaiset työprosessit. Kaikki asetukset ovat Obsidian Asetukset → Notemd. Muutokset voivat toimia heti. +</TLDR> + +## Asetuksien yleenvaate + +Pääsy: **Obsidian Asetukset (⚙️) → Notemd** + +### Pääosat + +1. **Tarjoajan konfigurointi** — API-avainet, perus URL-tiedot, mallit +2. **Tehtävin asetukset** — Tekstinvalintat yksittäisten tehtävien mukaan +3. **Tulostuskonfigurointi** — Missä salata luodut tiedostot +4. **Kielikoneet** — UI-kieli ja tulostuskieli +5. **Palautteenyhteydet** — Tavily/DuckDuckGo-asetukset +6. **Työprosessit** — Kohdanomaiset painikkeojärjestelmät +7. **Edistyneet asetukset** — Diagnostiikka, pakettiprosessointi, osien jakaminen + +--- + +## 1. Tarjoajan konfigurointi + +### Tarjoajan lisääminen + +1. **Valitse tarjoaja** valikosta (30+ saatavilla) +2. **Sisesta API-avaini** +3. **Valinta**: Määritä omat perus URL -arvot (proksi-/gateway-tarkoituksissa) +4. **Klikkaa "Get Model List"**, jotta voit vahvistaa yhteyden +5. **Valitse vaihtoehtoinen malli** + +### Yleiset tarjoajat + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Local) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### Usein tarjoajat + +Voit konfiguroida useita tarjoajia ja vaihtaa niiden välillä yksittäisen tehtävän kohdalla: +- **Päätarjoaja**: Käytetään varauksena +- **Tehtävän mukaiset tarjoajat**: Korvataan erillisten tehtävien kohdalla + +--- + +## 2. Tehtävän mukaiset mallit + +Konfiguroi erilaisia mallia eri tehtäville, jotta voit optimoittaa kustannuksia ja laadua: + +### Tehtävän tyypit + +| Tehtävä | Vaihtoehtoinen malli | Tarkoitus | +|------|--------------|---------| +| **Yhdistäminen** | Päätarjoaja | Tunnistaa konsepttejä wiki-linkkejä kohdalla | +| **Konseptin luominen** | Päätarjoaja | Eritä ja kirjelda konseptteja | +| **Tutkimus** | Päätarjoaja | Yhteenvetöitä web-pyyhkäysjen tuloksista | +| **Kääntö** | Päätarjoaja | Kääntä teksti | +| **Diagrammin luominen** | Päätarjoaja | Luo Mermaid/Canvas-diagrammit | + +### Esimerkki: Kustannustehokas asetus + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### Kuidas konfiguroida + +1. **Asetukset → Notemd → Tehtäön asetukset** +2. Ihmeen mukaan valitse: + - ✅ **Käytä päätarjoajaa** (ominaisuus) + - 🔄 **Käytä omakustannuslistaa** → valitse tarjoaja + malli + +--- + +## 3. Tulostusasetukset + +### Konsepttipisteiden tulostus + +**Kunne uusi konseptikirjeet tallennetaan:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Malli:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### Kaustakonstruktion valintat + +**Valinta 1: Sisempi (kaikki konseptit yhdessä kaustassa)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**Valinta 2: Hierarktilinen (lähteekaustan mukaan)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +Konfiguroi: **Asetukset → Tulostus → Käytä hierarktisia kaustoja** + +### Diagrammin tulostus + +**Kunne diagrammit tallennetaan:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**Muoto:** +- `.mmd` (Mermaid lähteä) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. Kielitilat + +### UI Kieli + +**Ympäristön kieli** (painikkeet, menyt, dialoigot): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +Tukittu: englanti, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Русский, العربية ja muut. + +### Tulostuskieli + +**Luoettu sisältön kieli** (konceptikirjeet, tutkimusyhteenvetot): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**Käyttötila:** Kiinaan UI + englanninkielinen tulostus kaksikielisen tutkimuksen jaoks. + +### Kääntösihtti + +**Vaikuttavimmat kääntökielit** kääntötöidön tilanteissa: + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. Palautteen yhdistäminen + +### Tavily (soovitatu) + +**AI-optimoitu palautteenpalvelu:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +Get key: [tavily.com](https://tavily.com/) + +**Ominaisuudet:** +- Kvalitettomat tulokset +- AI-optimoituut yhteenvetot +- Lähtöviiteet + +### DuckDuckGo (eksperimentaali) + +**Ei API-avainaa tarvita:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**Merkkus:** Halvempi laatu, ilman käsittelemistä. + +--- + +## 6. Työprosessin konfigurointi + +### Omien työprosessien luominen + +**Töövoimat yhdistävät useat tehtävät yhteiseen painikkeeseen.** + +1. **Asetukset → Töövoimat → Lisää töövoima** +2. **Nimi**: "Paper Analysis Flow" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **Salvaa** + +Uusi painikkei ilmenee vasemmassa puolekaluun. + +### DSL-syntaksi + +**Muoto:** `action1>action2>action3` + +**Saadaulliset toimintat:** +- `process-current-add-links` — Lisää wiki-linkkejä nykyiseen merkintään +- `extract-concepts-current` — Luo konseptimerkintät +- `research-and-summarize` — Web-tutkimus + yhteenveto +- `translate-current` — Kääntä nykyinen merkintä +- `summarize-as-mermaid` — Luo Mermaid-diagramma +- `process-folder-add-links` — Päivitä koko kaustaa + +**Esimerkkitöövoimat:** + +**Nopea konsepttien poistaminen:** +``` +process-current-add-links>extract-concepts-current +``` + +**Syvällinen tutkimus:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**Monikielinen analyysi:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. Edistyneet asetukset + +### Pakettiprosessointi + +**Täydennä useita failia yhtä aikaa:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +Suurempi arvo = nopeampi, mutta enemmän API kutsuja. + +### Tarkka osien jakaminen + +**Pikkojen notitoinnin korjaamiseksi jakaa ne osiin:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +Ehdottaa tokenin määrän liikkeiden välttämiseksi. + +### Diagnostiikkapaneeli + +**Tarkista yksityiskohtaiset logit:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +Näyttää: +- API pyytäksi/tulokset +- Tokenien käyttö +- Käsitelyntai +- Viannot + +### Kerran olevien konsepttien tunnistaminen + +**Vältä läheisesti duplikaatteja olevia konseptteja:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +Yleisempi = aggressiivisempi yhdistäminen. + +--- + +## Konfigurointiprofiilit + +### Tilannusten eksportointi/importointi + +**Jaa konfigurointia eri laitteilla:** + +1. **Tilat → Edistyneet → Konfiguroinnin eksportointi** +2. Säästää `notemd-config.json` +3. Uudella laitteella: **Impordi konfigurointi** + +**Miten se sisältää:** +- Tarjoajan API-avainet (valittava) +- Mallivalintat +- Tulostuspathit +- Kohdanomaiset työprosessit + +--- + +## Suositeltu konfigurointi + +### Opiskelijoille + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### Tutkijoiden käyttöön + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### Yksityisyystä huolehtivien käyttäjien tilanne + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### Kaksikielisen työn tilanne + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## Konfiguroinnin vianohjaus + +### Asetukset ei salvesteta +- Tarkista tiedostojen oikeudet `.obsidian/plugins/notemd/`-ssä +- Yritä: Poista sovelluslaitteisto → Aktivoi uudelleen + +### API-virto on epäsisällinen +- Ei lisätiloja +- Tarkista aikakierroksia +- Veroita krediteja tarjoajan tilastollisessa ympyrössä + +### Mallit ei laadu +- Klikkaa "Saada mallilistaus" uudistamiseen +- Tarkista verkon yhteyttä +- Yritä toinen tarjoaja + +--- + +## Järguvät toimet + +- 📖 [Tutkita ominaisuuksia](../features/wiki-links) +- 🔌 [Tarjoajan asennusohjeet](../providers/overview) +- ❓ [Kysymyksiä ja vastauksia](../faq) diff --git a/website/i18n/fi/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/fi/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..341cad97 --- /dev/null +++ b/website/i18n/fi/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "Asentaminen" +description: "Kuidas asentaa Notemd käyttäen Obsidian" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Asentaminen + +<TLDR> +**Asenna Notemd vähemmän kuin 2 minuutissa.** Kaksi metoodia: (1) Obsidian Community Plugins (soovitatavasti, yhden klikkinolla asentaminen), tai (2) Käyttäjäasentaminen GitHub Releasesin kautta. Tarvitaan Obsidian 0.15.0+. Toimii Windowsissa, macOS:ssa, Linuxissä, iOS:ssa ja Androidissä. Ei ulkopuolisia riippuvuuksia. 4k+ ladattuja, MIT-litsentsoilla. +</TLDR> + +## Metoodi 1: Community Plugins (soovitatavasti) + +1. Avaa **Obsidian Settings** (⚙️-ikoni tai `Ctrl/Cmd + ,`) +2. Mene **Community plugins**-ihin +3. Klikkaa **Browse** +4. Otsi **"Notemd"** +5. Klikkaa **Install** +6. Klikkaa **Enable** + +**Valmis!** Näet Notemd-ikoneen vasemmassa sivupuoleessa. + +## Metoodi 2: Käyttäjäasentaminen + +### Eeltingimukset +- Obsidian 0.15.0 tai uudempi +- Git (valinta, klonoimiseen) + +### Vaiheet + +1. **Lae tiedostot** [GitHub Releases]-ista(https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest): + - `main.js` + - `styles.css` + - `manifest.json` + +2. **Otsi sinun vaultin pluginin kausta:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +Jos `plugins`-kausta ei ole olemassa, luo se. + +3. **Luo Notemd-kausta:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **Kopioi kolme tiedostoa** `notemd`-kaustaan. + +5. **Uudelleenlaadita Obsidian:** + - Vaihta `Ctrl/Cmd + R`-painikkeella tai + - Alkaa uudelleen Obsidian + +6. **Aktivoi plugini:** + - Asetukset → Yhteisöpluginit + - Otsi „Notemd“ listasta + - Aktivoi se + +## Valinta: Asenna BRAT-kautta + +Jos käytät [BRAT pluginia](https://github.com/TfTHacker/obsidian42-brat): + +1. Avaa BRAT-asetukset +2. Klikkaa "Lisää Beta-plugini" +3. Sisesta: `Jacobinwwey/obsidian-NotEMD` +4. Klikkaa "Lisää plugini" +5. Aktivoi Notemd yhteisöpluginissä + +## Veroittaminen + +Toisen paikan päätteessä verokaa, että Notemd toimii: + +1. Avoa mistä tahansa tiedosto +2. Klikkaa oikealla painikella muokkikossa +3. Sinun pitää näkyä Notemd-komentoja kuten: + - "Tulkita tiedosto (lisää linkkejä)" + - "Eritä konseptit" + - "Tutkita ja yhteenvetä" + +## Järguvät toimet + +- **Konfiguroi LLM-palveluntarjoaja:** [Nopea käyttö →](./quick-start) +- **Virheentekijätyö:** [Yleiset ongelmat →](../advanced/troubleshooting) + +## Systeemin vaatimukset + +| Plattformi | Versio | Tilastot | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | Tarvittava | +| **Windows** | 7+ | ✅ Tuettu | +| **macOS** | 10.15+ | ✅ Tuettu | +| **Linux** | Mitään | ✅ Tuettu | +| **iOS** | 15+ | ✅ Tuettu | +| **Android** | 5+ | ✅ Tuettu | + +## Poistaus + +Notemd poistamiseen: + +1. Asetukset → Yhteisön lisäsovellukset +2. Otsi "Notemd" +3. Painaa ❌-ikoni +4. Valitettavasti poista lisäsovelluksen kansio: `<vault>/.obsidian/plugins/notemd/` + +Sinun tiedot (merkintöt, konseptimerkintöt jne.) jäävät muutomattomiksi. + +## Uppdatero + +### Automaattinen uppdatero (suositeltu) +Obsidian tarkistaa automaattisesti lisäsovelluksien uusimmat versiot. Kun uusi versio on saatavilla: +1. Asetukset → Yhteisön lisäsovellukset +2. Painaa "Tarkista uusimmat versiot" +3. Painaa "Uppdate" Notemd-nin kohdalla + +### Käsittelyinen uppdatero +Lae uusin versio ja aseta kolme tiedostoa sinun lisäsovelluksen kansioon. + +## Apua + +- 📖 [Nopea käyttöohje](./quick-start) +- ❓ [Kysymyksiä ja vastauksia](../faq) +- 💬 [Discord-yhteisö](https://discord.gg/qnGgsQ9W) +- 🐛 [Tilanneiden raportointi](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/fi/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/fi/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..1583eca9 --- /dev/null +++ b/website/i18n/fi/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "Nopea käyttöohje" +description: "Alkaa käyttämään Notemd 5 minuutissa" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Nopea käyttöohje + +<TLDR> +**Alkaa käyttämään Notemd 5 minuutissa.** Kolme vaiheetta: (1) Lisää LLM API-avain (tai käytä lokalaista Ollama), (2) Avoi noti ja käynnistä „Process file (add links)", (3) Tarkkaile yhden painutuksen kanssa toimintatietoisuudet vasempuussa sivulla. Tukee 30+ tarjoajaa. Koodin kirjoittaminen ei ole tarpeen. Toimii offline Ollama-käytön kanssa. +</TLDR> + +## Vaihe 1: Konfiguroi oma ensimmäinen LLM-tarjoaja (2 minuutta) + +### Valinta A: Pilvetarjoaja (OpenAI, Anthropic jne.) + +1. Avoa **Settings** → **Notemd** +2. Valitse **LLM-tarjoajan konfigurointi**-alalla drop-down-listasta tarjoaja +3. Sisesta oma **API-avain** +4. (Valinta) Paina **„Get Model List"** näyttääkseen saatavilla olevat mallit +5. Valitse malli iga tehtytypin jaoks + +**Suosituimmat valintat:** +- **OpenAI**: `gpt-4o-mini` (nopea, halpa) +- **Anthropic**: `claude-sonnet-4-6` (korkea laatu) +- **DeepSeek**: `deepseek-chat` (erittäin halpa) + +### Valinta B: Lokalinen Ollama (Ei API-avainia tarvita) + +1. Asenna [Ollama](https://ollama.com/) +2. Lae alla malli: `ollama pull llama3.1` +3. Valitse Notemd-asetuksissa tarjoajana **"Ollama"** +4. Mallin nimi: `llama3.1` (tai jokin muu laadittu malli) + +## Toinen vaihe: Yritä ensimmäistäsi tehtävää (1 minuuti) + +### Lisää Wikipedia-linkkejä tiedoon + +1. Avoa jokainen merkittävä sisältöllinen tiedosto +2. Klikkaa oikealla painikella muokkikossa +3. Valitse **"Tulkita tiedosto (lisää linkkejä)"** +4. Oota muutama sekunti +5. Pääkäsitteet ovat nyt `[[wiki-linked]]`! + +**Esimerkki:** + +**Ennen:** +``` +Machine learning models use neural networks to process data. +``` + +**Jälkeen:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## Kolmas vaihe: Tutkita ominaisuuksia (2 minuuttia) + +### Eritä käsityksennotat + +1. Oikeasta painikosta → **"Eritä käsitykset nykyisestä tiedostosta"** +2. Notemd luoo erilliset tiedostot jokaiseen käsitykseen +3. Tarkista oma konfiguroitu käsityskanssi (ominaisuus: `concepts/`) +4. Jokaisella käsityksennotalla on palautuslinkki alkuperäiseen tiedostoon + +### Tutkinta & yhteenveto + +1. Esitä tavoitteesi tiedonnotkussasi +2. Oikea klikka → **"Tutkita ja yhteenvetoa tehdä"** +3. Notemd käsittelee webissä hakua (Tavily tai DuckDuckGo) +4. Yhteenveto lisätään sinun merkintösiin lähtökohtien kanssa + +### Yhden klikkinin työprosessit + +1. Tarkista **vasempi sivupalkki** työprosessin painikeiden kanssa +2. Klikkaa **"One-Click Extract"** mistä tahansa merkintässä +3. Se toimii näin: lisää linkkejä → erottaa konsepttejä → tutkita → luoda diagramma +4. Kaikki yhdellä klikkaamisella! + +## Yleisimmät ensimmäiset tehtävät + +### Tehtävä 1: Tarkista paperi/artikkeli + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### Tehtävä 2: Kääntä notat + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### Tehtävä 3: Luo tietoisuusmaantausta + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## Kohdannusvinkit + +### Mallin valinta tehtävälle + +Voit käyttää eri malleja eri tehtävissä: + +| Tehtävä | Soovitatu malli | Miksi | +|------|------------------|-----| +| Lisää linkkejä | `gpt-4o-mini`, `deepseek-chat` | Nopea, monit kutsu | +| Käytänteiden poistaminen | `claude-sonnet-4-6`, `gpt-4o` | Kvaliteettinen poistaminen | +| Tutkimus | `perplexity`, `gpt-4o` | Web-grounded | +| Käännös | `gemini-flash`, `gpt-4o` | Monikielinen | +| Diagrammit | `claude-opus`, paikallinen malli | Monimutkainen syysteorettika | + +Konfiguroi **Asetukset → Notemd → Tehtäökohdan malleet** + +### Omakustomiset työvoimat + +Luo oma painikka: + +1. Asetukset → Notemd → Työvoimat +2. Painaa "Lisää työvoima" +3. Sisesta DSL: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. Nimetä se: "Minun tutkimusohjoni" +5. Uusi painikka ilmenee puolekaluun + +## Virheiden ratkaiseminen + +### "API Key Invalid" +- Tarkista, onko avain oikea (ilmaisilla lisätiloilla) +- Verraa, onko tilillä krediteja +- Testoi se „Connection Test“-painikkeella asetuksissa + +### "Model Not Found" +- Klikkaa „Get Model List", jotta näet saatavilla olevat mallit +- Mõned tarjoajat vaativat konkreettisia mallinimejä (esim. `gpt-4o` ei `gpt-4`) + +### Linkkit eivät ilmene +- Varmista, että tiedostossa on piisavasti sisältöä (>50 sanaa) +- Proovi voimakampaa mallia +- Tarkista, onko LLM-kutsu edunnut (katso diagnostikan paneeli) + +### Hyvin hyvä toiminta +- Kasuta nopeamia mallia (`gpt-4o-mini` sijaan `gpt-4o`) +- Vähenda osien suurustaa asetuksissa +- Aktivoi parallinen käsitely paketitaskujen jaoks + +## Järguvät toimet + +- 📖 [Tutkita kaikki ominaisuudet](../features/wiki-links) +- ⚙️ [Edistynyt konfigurointi](./configuration) +- 🔧 [LLM - tarjoajan asentaminen](../providers/overview) +- ❓ [Kysymyksiä ja vastauksia](../faq) + +## Videoopas + +Katsela 3-minuutinen nopeusturvallisuusvideo (kiinaani): +[【Täysin avoimen lähtekoodin, ilmaista! NotEMD 3 minuuttia nopeasti】](https://b23.tv/lqR0RlA) + +## Apua + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **Ongelmat**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **Dokumentaatio**: [Täysin dokumentaatio](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/fi/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/fi/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..42935a16 --- /dev/null +++ b/website/i18n/fi/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "Esittely Notemd:sta" +description: "AI-välineet tietojenkerhojen luomiseen Obsidian:lle – joka mahdollistaa kestävät muutokset, työprosessit ja spec-first-diagrammit" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Esittely Notemd:sta + +<TLDR> +**Notemd** (Note + EMD — Enhanced Markdown Documents) on avoimen lähtekoodin Obsidian-plugini, joka muuntaa LLM-välineillä tehtyä lukemista kestävään tietoon. Erillisesti chat-pohjaisista AI-laitteista, joissa tiedot kadovat keskustelun jälkeen, Notemd kirjoittaa tulokset **direktiivisesti sinun vaultisiin** wiki-linkkejä, konseptitietoja, tutkimusyhteenvetoja, käännöksiä, työprosesseja ja diagrammeja. Se on suunniteltu tutkijille, opiskelijoille ja tietojenhankkijoille, jotka haluavat, että heidän lukemisensa, tutkimustensa ja visuaaliset selityksensä koonnistuvat strukturoituun, kehittyvään tietograafioon. +</TLDR> + +## Mitä on Notemd? + +Notemd yhdistää **30+ suurta kielellistä mallia** (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama ja muut) sinun Obsidian-työprosessisiin, jotta voidaan automatisoida tietojen poistaminen, organisoiminen, kääntö, tutkimus ja diagrammin luominen. + +### Päätilanne: hetkelliset vs. kestävät tietot + +| Aspektti | Chat-pohjainen AI (ChatGPT jne.) | Notemd | +|--------|-------------------------------|--------| +| **Kuhaan tulokset menevät** | Chat-tiedot (kadovat) | Sinun Obsidian-vaultisi (kestää) | +| **Muoto** | Simpelit tekstivastaukset | Strukturoituja tiedostoja: `[[wiki-links]]`, konseptitietot, diagrammit | +| **Pikaaikainen arvo** | Tulee uudelleen kysyä jokaisen kerran | Koonnistuu tietograafioon | +| **Poistotietoisuus** | Interneti on tarpeen | Toimii täysin poistotietoisuudessaan Ollama | + +## Päätoiminnot + +### 1. **Automaattinen wiki-yhdistäminen** +- LLM tunnistaa keskeiset käsitteet sinun notioissasi +- Lähetää `[[wiki-links]]` jokaisessa ilmumisessa +- Vaihtoehtoisesti luodaan yhdistetyt käsitteetiedot +- Synonyymien poistaminen dupliikkojen välttämiseksi + +### 2. **Käsitteetiedon luominen** +- Tarkistaa keskeiset käsitteet artikkeleista, paperista ja notioista +- Luo erilliset käsitteetiedot taustalinkkien kanssa +- Kohdannettavat väljälaskutilat ja mallit + +### 3. **Web-tutkimuksen yhdistäminen** +- Etsi Tavily tai DuckDuckGo Obsidian sisällä +- LLM yhteenvetoo tuloksetta lähtöviiteiden kanssa +- Lisää tutkimustulokset nykyiseen notiin + +### 4. **Monikielinen kääntö** +- Kääntä valituja osia tai koko notia +- Toetetaan 21+ UI kieltä +- Suora uloskirjautumiskielen konfigurointi +- Pakettikääntön tuki + +### 5. **Diagrammien luontaminen** +- **Mermaid**: Vierailukartat, järjestys-, klassi-, tila-, ER- ja Gantt-diagrammit +- **JSON Canvas**: Obsidian kansalliset paikannusmuodot +- **Vega-Lite**: Datadiagrammit, aikaseriat ja hajureitodiat +- **HTML / Muokattavat HTML/SVG**: Itsevalmis kuvat kohtaisilla semantisten annotaatioiden kanssa +- **Draw.io / Drawnix artefaktien rajat**: Hoitajan käyttöön suunnatut eksportit samasta semantisesta kuvamallista +- **Välinekuvadiagrammien suunnitelma**: circuitikz/TikZJax tuki suunnitellaan kuldisten viiteiden, rajoitettujen pyyntöjen, renderoinnin palautteiden ja topologian/paikannusvalvontan perusteella, ei raakaan, rajoitteittomaan LLM TikZ:ään +- **Eelennäksen diagnostiikka**: Renderoidut artefaktit voivat paljastaa komentoinnin/renderoinnin virheiden diagnostiikan, ja epälinjaisia lähteitä voi tarkistaa ilman pluginin LaTeX-ytimen tarpeetta +- Mermaid-virheiden syntaksi-autotoisto + +### 6. **Yhden painutuksen käyttöflussit** +- Ketjosta useita toimintoja puutarhakkeen painikeiksi +- DSL-pyyhin tööflussin määrittely +- Esimerkki: `add-links > extract-concepts > research > diagram` + +## Kuka sollte Notemd käyttää? + +✅ **Tutkijat**, jotka läsentävät artikleja ja luovat kirjallisuusarvioita +✅ **Opiskelijat**, jotka järjestävät opinnannottoja ja luovat konseptikaarteja +✅ **Tietojenkäyttäjät**, jotka haluavat, että läsityksensä pysyisi +✅ **Kaksikieliset ammattilaiset**, jotka tarvitsevat kääntöä + wiki-yhdistäyksiä +✅ **Yksityisyystunneelliset käyttäjät**, jotka haluavat paikallista LLM-tukia (Ollama) +✅ **Vaihtoehtoiset käyttäjät**, jotka kohandavat pyyntöjä ja tööflussia + +## Miksi Notemd + Obsidian? + +**Obsidian** on paikallisuuskeskistyn, markdown-pyyhin tietojankanta. **Notemd** lisää AI-voimia: +- Sinun dataasi pysyy sinun avarassasi (ei pilvapalvelussa) +- Toimii offline paikallisten mallien kanssa +- Tasuta ja avoimen lähtekoodin (MIT-litsenssi) +- Yhdistyy olemassaoleviin Obsidian-plugineihin +- Skaalautuu kymmeniin tuhannoihin nooteihin + +## Alustus + +1. **Asenna**: Asetukset → Yhteisöpluginit → Selaa → "Notemd" +2. **Konfiguroi**: Lisä sinun LLM-palveluntarjoajan API-avain (tai käytä lokalaista Ollama) +3. **Proovi**: Avaa noiteen → Oikeasta paina → "Tulkita tiedosto (lisää linkkejä)" +4. **Tutkii**: Katso sivupalkki yhdellä klikkaulla toimintaketjuja + +👉 [Asennusohje](./getting-started/installation) | [Nopean alustuskoulutus](./getting-started/quick-start) + +## Diagrammit – suunta kehityksessä + +Notemd-diagrammit ovat muuttumassa "kysy mallilta kirjoittaa yksi syntaksisano"-mallista suoraan kerroksittuun käytäntöön: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +Prahtinen rakentus tukee jo Mermaid, JSON Canvas, Vega-Lite, HTML-varauksia, muokattavaa HTML/SVG-, Draw.io XML-tuotteita, minimaalista Drawnix JSON-alamryhmää, ennittelydiagnostiikkaa/tai vain lähteetiedostoja varauksina sekä offline `CircuitSpec -> circuitikz`-proototyyppejä yleisille lähteille ja CMOS-inverterin kultatempliteille. Välineiden diagrammit ovat vaikeampia: circuitikz voi ilmaista täpsää elektrisen topologian, mutta rajoitsemattomat LLM-lauskitukset tuovat usein lukemattomia suunnittelua tai renderoituutta epätoivottavat LaTeX-tiedostot. Seuraava suunta on säilyttää circuitikz rajoitettuna kultatempliteiden, sijaintisilmukkien asetuksien, renderointidiagnostiikan ja kuvauskuvien palautusaheloiden avulla. + +Lue tarkemmat [Diagrammit](./features/diagrams)-artikkelissa. + +## Arkkitehtuuri + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd vs muut Obsidian-AI-pluginit + +Enimmäiset Obsidian-AI-pluginit ovat keskittyneet vuoropuheluun (sinä kysyt, AI vastaa, tiedot jäävät chatiin). Notemd on **kirjoituskeskistynyt**: AI töötlee sinun noitteesi ja kirjoittaa strukturoituja tulemusia suoraan sinun avaruksesiin. + +| Toimintavaihtoehto | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| Auton wiki-linkin lisääminen | Jaa | Ei | Ei | Ei | +| Kontsepttipyynnön luominen | Kyllä (backlinkit + duplikaatien poistaminen) | Ei | Ei | Ei | +| Diagrammin luominen | Kyllä (Mermaid, Canvas, Vega-Lite, HTML, muokattavat artektit) | Ei | Ei | Ei | +| Webin tutkimusten yhdistäminen | Kyllä (Tavily + DuckDuckGo) | Ei | Ei | Ei | +| Pakettikanssojen töötely | Jaa | Rajoitettu | Ei | Rajoitettu | +| Toimenpito per toimenpide | Kyllä (7 tehtävää, itsenäiset mallit) | Ei | Ei | Ei | +| Yhdellä painamiskertaa toimintajonot | Kyllä (DSL) | Ei | Ei | Ei | +| Kääntö (paketti) | Jaa | Ei | Ei | Ei | +| Viestintä varastokoneen kanssa | Ei | Jaa | Ei | Ei | +| Semantinen sarnasuuskysely | Ei | Ei | Jaa | Ei | +| Mallipohjainen generointi | Ei | Ei | Ei | Jaa | +| LLM palveluntarjoajat | 36 (pilvetti + käyttöpäässä + lokalisoinnin) | 3-5 | 2-3 | 3-5 | +| Täysin offline | Kyllä (Ollama) | Osittainen | Osittainen | Osittainen | + +**Milloin valita Notemd**: Haluat, että AI luottaa pitkäaikaisen tietograafian – ei vain keskustele sinun muistatuksetta. + +**Milloin valita Copilot**: Haluat vestlevän AI-assistentin Obsidian sisällä. + +**Milloin valita Smart Connections**: Haluat avastaa olemassa olevat suhteet merkintöjen välillä semantisen hakun kautta. + +## Filosofia + +**Notemd uskee, että AI sollte den menschlichen Wissensaufbau ergänzen, nicht ersetzen.** Palvelu: +- Pitoi sinut kontrollissa (tarkista ennen muutoksien soveltamista) +- Ymmärtää kontekstin (kaikki tulokset viitavat lähteeseen) +- Respektoi yksityisyttä (sijallinen LLM-tuki, ilman telemetriaa) +- Jää laajentettavaksi (avattu APIs, käsiteltyt työprosessit) + +## Avoin lähtekoodi + +- **Litsenssi**: MIT +- **Lähteekoodi**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **Kuntti**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **Panostaminen**: PR:t ovat tervetut, katso [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +**Järgующее**: [Installation →](./getting-started/installation) diff --git a/website/i18n/fi/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/fi/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..5850ad2c --- /dev/null +++ b/website/i18n/fi/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Obsidian AI-tietojen hallintaohje" +description: "Kokonaisohje yhdistettyjen tietojen basesin luomiseen AI:n avulla – wiki-linkkeistä ja konsepttien extraktointista tutkimukseen, kääntöön sekä diagrammien luomiseen" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Obsidian AI-tietojen hallintaohje + +<TLDR> +**Notemd muuttaa LLM-voimaisen lukemisen kestävään tietoon: wiki-linkkit yhdistävät konsepttejä, konsepttipalat luovat palautettavan graafin, tutkimukset tuovat verkon sinun avaruksesiin, kääntöjä purkaa kielitilat, diagrammit tekevät strukturan näkyväksi, ja työprosessit yhdistävät kaikki yhdellä klikkilla.** Tämä ohje kattaa koko prosessiketjun – toisinlaatuisista merkintöistä yhdistettyyn, visuaaliseen, monikieliseen tietojen basesiin. +</TLDR> + +## Miksi AI-tietojen hallinta? + +Perinteiset merkintät tuovat ainoastaan suorat tiedostot. Vaikka käytetään käsitsi wiki-linkkejä, enintään merkintät jäävät yhdistymättömiksi. Notemd käyttää LLM-ja automatisoimaan yhdistyskerroksen: + +- **LLM-t lukevat sinun sisällöksesi** ja tunnistavat mikä on tärkeää – termit, metodit, henkilöt, teooriat +- **Linkkit lisätään automaattisesti** jokaisen konsepttin esiintymisen yhteydessä, eikä peidetä „katso myös“-osioon +- **Konsepttipalat luodut** erillistä, palautettavista tiedostoista +- **Tutkimukset rikastavat merkintöjä** verkkokäytöllisestä kontekstistä +- **Diagrammit tekevät strukturan näkyväksi** – mentykartat, virtauskaavat, datakaavat samasta sisällöstä + +Tuloksena: tietografiikka, joka kasvaa jokaisen sinun käsiteltävän merkintän kanssa, ei vain siis, kun muistat lisätä linkkejä. + +## Koko prosessiketju + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +Jokainen vaihe on itsenäinen. Voit käyttää yhtä tai kaikkia. Kansainvälisimmin vaikutteellinen järjestys: **Lisää linkkit → Konsepttipalat → Diagrammit**. + +--- + +## 1. Wiki-linkkit: Yhdistysten selkeä muotoilu + +Wiki-linkkit ovat tietografiikan selkeä alustus. Notemd käyttää LLM-a täyttäkseen seuraavia tehoja: + +1. Lue oma tiedon sisältö (jaka pitkät dokummentit osiin) +2. Tunnista keskeiset käsitteet — anna prioriteetti konkreettisiin, teknisille termineihin kuin yleisiin nimissä +3. Lisää `[[wiki-links]]` jokaisessa ilmennysessä +4. Ehdä sanojaan saman merkinnän ansiosta, jotta "ML" ja "Machine Learning" ei luoda erillisiä nodeja + +### Kun käyttää + +- **Jokainen tiedonnotto >100 sanaa** — pienempiä nottoja on vähän käsiteitä +- **Tutkimusartikkelit, tekniset dokumentit, keskustelunnotat** — ne sisältävät paljon alueellisia terminejä +- **Kun sisältö on stabilinen** — älä töidä muodostuksia kertoja + +### Pääasetukset + +| Asetus | Suositeltu | Miksi | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek tai GPT-4o-mini | Hyvä täpsyys madalla hinnaalla | +| Sanojaan saman merkinnän ehdäminen | Aktiivinen | Ehdottaa duplikaattisten nodejen luomista | +| Yhteyspano | Paragrafi | Tarkkuuden ja hintan tasapaino | + +→ [Wiki-Linkit – syvällinen tutkimus](/docs/features/wiki-links) + +--- + +## 2. Konseptitiedot: Palautettavat tieton nodit + +Wiki-linkit yhdistävät ideita suoraan, mutta konseptitiedot tekevät jokaisen idean erikseen palautettavaksi. Jokainen konseptti saa oman `.md`-failin: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### Extraktointiprosessi + +LLM-kysymyksellä on korkea struktuuri: +- Normaloi yhteenmuotoon +- Ehdotetaan usean sanoisen konseptin käyttöä yksilöisiä sanoja vastaan ("Dielectric Relaxation", ei "Relaxation") +- Jätä pois viite- ja bibliografiakohdat +- Luo `CONCEPT:`-rivit deterministiselle analyysille + +Konsepttejä poistetaan duplikaateista osien välillä käyttäen `Set<string>`. LLM-virheet yksittäisissä osissa ei estä toimintaa. + +### Palautuslinkit + +Kun se on aktivoitu, jokainen konseptitiedosto tallentaa, mitä lähteetiedostoja se mainostavat. Obsidian:n omat palautuslinkitaulukot näyttävät myös vastaisia yhteyksiä. + +### Deduplikointi + +Notemd:n 4-vaiheinen duplikaatipoistointimekanismi havaitsee: +1. **Täysin samanmukaiset** – epätilastollinen nimelun vertailu +2. **Monimuotojen muotoilu** — "Models.md" vs "Model.md" +3. **Symbolin normalisointi** — "A-B.md" vs "A B.md" +4. **Yksikössä olevien sanojen hallinta** — "ML.md" merkitään, kun "Machine Learning.md" on olemassa + +### Avainasetukset + +| Asetus | Suositeltu | Miksi | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` tai `🧠 concepts/` | Pitoi avarakoti organisoituina | +| `extractConceptsAddBacklink` | Käytössä | Mahdollistaa vastaisen etsinnän | +| `extractConceptsMinimalTemplate` | Poissa | Täysin malli Linked From -tyyppillä | +| Tehtäökohdan môdeli | DeepSeek | Aiatekstrointi ei vaadi kalliita môlmejä | +| Syyneiden estö | Käytössä | Samat asetukset vaikuttavat niihin linkkeihin kuin ekstraktioon | + +→ [Concept Notes deep dive](/docs/features/concept-notes) + +--- + +## 3. Tutkimus: Webin käyttö märkintäprosessissa + +Notemd yhdistää webissä hakemisen sinun märkintäprosessisiin: + +1. **Hakukysymyksen luominen** — sinun märkintän titeli tai valinta muuttuu hakukysymyksiksi +2. **Webissä hakeminen** — Tavily (soovitatulla tavalla, tarvitaan API-avain) tai DuckDuckGo (tilittu, ei tarvitse avaintia) +3. **LLM - yhteenvetointi** — hakutulokset yhdistetään kokonaisiksi relevanteiksi yhteenvetoiksi +4. **Lisää märkintään** — yhteenveto lisätään kursorin sijalle tai uudelle osalle + +### Kun käyttää + +- Ennen uuden aiheen käsiteltämistä — saa esimerkiksi webissä tiedot ennen +- Kun concept note-ja tarvitsee täydentämistä — tutka ennen ja lisää linkkejä +- Kirjallisuuskäymisiin — tutka kokonaan märkintöjen kansio + +### Pääasetukset + +| Asetus | Soovitatulla tavalla | Miksi | +|---------|-----------|-----| +| `researchProvider` | GPT-4o tai Claude | Tutkimuksessa on tarpeen parempaa yhteenvetointia | +| Hakupalvelu | Tavily | Parhaa suosituksen laatuja, asettettavaa syvyyttä | +| `maxResearchContentTokens` | 4000 | Syvyyden ja kustannuksen välinen tasapaino | + +→ [Research deep dive](/docs/features/research) + +--- + +## 4. Kääntö: kielen estojen poistaminen + +Notemd kääntää merkintöjä käyttäen sinun asettamasi LLM – ei erillistä kääntöohjelmaa API. Tämä tarkoittaa: + +- **Ympäristökäskeiset kääntöjä** – LLM ymmärkee koko dokumentin, ei vain lauseita +- **Tekniset terminit** – "gradient descent" jää "梯度下降"iksi, ei "坡度向下"iksi +- **Pakettikääntö** – kääntä koko merkintöjen kansio yhdellä toiminnalla +- **Tehtäökohdan môdeli** – käytä Gemini Flash-kääntöä (nopea, halpa, monikielinen) + +### Kielitukemus + +Notemd itse tukee 21 UI kieltä. Kääntösihteentuki on asettettavaa tehtäkkökohtaisesti. Yleisimmät yhteydet: EN↔ZH, EN↔JA, EN↔KO, EN↔DE, EN↔FR, EN↔ES. + +→ [Translation deep dive](/docs/features/translation) + +--- + +## 5. Diagrammit: struktuurin näkyvyyden luominen + +Notemd-nin diagrammituotevalinta perustuu speciin: LLM tuottaa strukturoituun `DiagramSpec` JSON, jota sitten sovellukset kääntävät siirtymäsuuntaan. Tämä annaa usaldusväärisemän tuloksen kuin pyytäminen LLM tuottamaan raakaa Mermaid-syntaksia. + +### Tarkoituksen tunnistaminen + +Notemd arvioi sisältöstä parhaan diagrammityypin: + +- **Numeroiden kanssa tabelit** → data chart (Vega-Lite) +- **Klient/tietokone-kielit** → järjestysdiagrammi (Mermaid) +- **Entiteetti/primäinen kieli** → ER-diagrammi (Mermaid) +- **Vaihe/prosessi** → voolu-diagrammi (Mermaid) +- **Kontseptikartan avainasemat** → JSON Canvas (Obsidian kielisä) +- **Vaikkaus** → mieleenkarta (Mermaid) + +### Rendering Chain + +Primäinen tarkoitus → varaus → varaus → HTML. Jos Mermaid-syntaksi ehtyy, se yrittää uudelleen yhdessä virhekontekstilla LLM:lle, sitten vaihtuu minimaaliseen diagrammiin. + +### Avainasetukset + +| Asetus | Suositeltu | Miksi | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | Käytössä | Parhaa laadua spec-first -menetelmällä | +| `experimentalDiagramCompatibilityMode` | `best-fit` | Kielisä tarkoitus ideo perusteella | +| `summarizeToMermaidProvider` | GPT-4o tai Claude | Diagrammin spec-ihmiset vaativat ruumillista syystäksentelyä | +| `autoMermaidFixAfterGenerate` | Käytössä | Pystyy automaattisesti löytämään LLM-syntektipäivät | +| Sisäisen tieteen laajentaminen | Aktivoitu domainti-tyyppiseen käyttöön | Parantaa täydellisyttä vault-taihteen kanssa | + +→ [Diagrammit syvällisemmin](/docs/features/diagrams) + +--- + +## 6. Työprosessit: Yhden painutuksen automatisointi + +Työprosessit yhdistävät useat tehtävät yhteiseen vasempan puoleen olevaan painikkeeseen. DSL-muoto on: + +``` +task1 | task2 | task3 +``` + +Esimerkki: `addLinks | extractConcepts | generateDiagram` — töidäte notea toisessa muodossa olevasta tekstistä täysin yhdistetyksi, visuaaliseksi tieton nodeksi yhden painutuksen kanssa. + +### Suositeltu työprosessi + +| Työprosessi | Ahelma | Käytöskenttä | +|----------|-------|----------| +| Koko prosessi | `addLinks \| extractConcepts \| generateDiagram` | Uusi note | +| Alkuperäinen tutkimus | `research \| addLinks` | Tuntemattomat aiheet | +| Polyglot | `translate \| addLinks` | Monikieliset notit | +| Käytä vain diagrammaa | `generateDiagram` | Nopea visualisointi | + +→ [Workflows deep dive](/docs/features/workflows) + +--- + +## 7. LLM tarjoajat: 36 valintaa pilvistä paikalliseen + +Notemd toetaa 36 tarjoajaa 4 transporttyypin kautta. Pääryhmät: + +- **Rahvusvahainen pilvi**: OpenAI, Anthropic, Google, Mistral, xAI +- **Hiinan pilvi**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **Gateway-tarjoajat**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **Paikallinen**: Ollama, LMStudio, OVMS — ei API-tyyppiä, tiedot eivät lähe sinun laitteestasi + +### Yksittäisten tehtävien mallestrategia + +Kostohyökkäysvaltaisimpi asettelu käyttää halvia mallia yksinkertaisille tehtäville ja voimakkaia mallia monimutkaisille: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [LLM tarjoajien yleenvaade](/docs/providers/overview) + +--- + +## Alustuskontrollolista + +1. **Asenna Notemd** — [Community Plugins](/docs/getting-started/installation) (soovitatulla tavalla) tai käsitsi +2. **Konfiguroi tarjoaja** — DeepSeek (helpompi), OpenAI, tai Ollama (tilaittu) +3. **Täydennä sinun ensimmäinen tiedosto** — oikeasta painikosta → "Process file (add links)" +4. **Set concept-kansio** — Asetukset → Notemd → Tulostus → Concept-kansio +5. **Extract concepts** — käynnistä „Extract concepts“ samalla tiedonnotolla +6. **Generate a diagram** — käynnistä „Generate diagram“ yhteyksien visualisoimiseen +7. **Create a workflow** — yhdistä yllä olevat toimet yhdelle painamiskertaiselle painikkeelle + +## Suositeltu konfigurointi + +### Student (Budget) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### Researcher (Quality) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### Privacy-First (Local Only) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### Bilingual (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## Common Patterns + +### Pattern: Process a Research Paper + +1. Import PDF content (or paste) +2. **Research** — saa web-päivänäkymän aiheesta +3. **Add Links** — tunnistaa ja yhdistää tärkeitä konsepttejä +4. **Extract Concepts** — luoda erilliset tiedonnot +5. **Generate Diagram** — visualisoi paperin rakennus + +### Pattern: Daily Note Enrichment + +1. Kirjoita päivännotto +2. **Lisä linkkejä** — yhdistää tänään käytetyt ideat olemassa oleviin konsepttiin +3. Konsepttipäivännotot päivitetään automaattisesti taaslinkkien avulla + +### Malli: Kirjallisuuskeskustelu + +1. Luo kausta artikkeleiden/tietojen kanssa +2. **Lisä linkkejä kokonaan** — käsittele koko kausta +3. **Ehdottompaa konseptteja** — poista läheisesti samanlaiset tiedot +4. **Luo diagramma** — mielikaartti koko kirjallisuudesta + +--- + +*Notemd on avoimen lähtekoodin (MIT) ohjelmisto ja toimii Obsidian 0.15.0+ kaikilla platfommissa. [Asenna nyt](/docs/getting-started/installation) tai [katso GitHubilla](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/fi/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/fi/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..84c7aa51 --- /dev/null +++ b/website/i18n/fi/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "Konfigoi Anthropic Claude" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Anthropic Provider + +<TLDR> +**Anthropic käyttää omat Messages API-transportoja, ei OpenAI-sovelluvia transportoja.** Nykyinen asetus vaihtuu automaattisesti `claude-3-5-sonnet-20240620`-, `https://api.anthropic.com`- ja `temperature: 0.5`-. Käsittele sitä erillisen protokollin pinnana ohjelmistovirheiden korjaamisel. + +Tämä kuuluu [Obsidian AI-tietojen hallintasuunnitelmaan](/docs/pillar-ai-knowledge). +</TLDR> + +## Asetukset + +Luo Anthropic API-avain, lisää `Anthropic`-tarjoajan profiili ja jätä Base URL omalle päätöspisteelle, ilman että käytät erillistä gateway-profiilia. Valitse Claude-mallin ID, jota haluat käyttää mallivalikossa; vaihtoehtoinen asetus säilyttää olemassa olevan tuotteen perustasoinnin stabilina. + +Anthropic on suosittu valinta korkealaatuisen yhteenvetön, tutkimusten synteesin ja konsepttien extraktointin tilanteissa. Jos se käytetään yhdessä halvempien tarjoajien kanssa, aseta se vain niille tehtäville, jotka saavat hyöty sen tulostuslaadusta. + +## Päätöspiste ja tunnistus + +| Poliivi | Nykyinen asetus | +|-------|----------------| +| Transporto | `anthropic` | +| API-avain | Tarvittava | +| Base URL | `https://api.anthropic.com` | +| Vaikuttava malli | `claude-3-5-sonnet-20240620` | +| Tempertatuuri | `0.5` | +| Yhteystesti | Ainoastaan chat | + +Käyttöajalla lähetetään pyytelut `/v1/messages`:hin käyttäen `x-api-key`-ja `anthropic-version: 2023-06-01`-. Älä konfiguroi OpenAI-tyylin `/v1/chat/completions`-päätöspisteä tässä asetuksessa; käytä sijaan OpenAI-sovelluvaa gateway-asetusta. + +## Mallien löytö + +Anthropic käyttää `anthropic-models`-tukijärjestelmän avastusrežiimiä. Jos tehtävänavainne tai tilisi ei voi listata malleja, säilyttä tunttu mallin ID profiilissa ja vahvista se yhteystestin kautta. + +Transportti ei ole vaihtoehto OpenAI-sovelluksellisille tukijille. Claude-malli, joka suunnitetaan OpenRouter, LiteLLM tai toisen käytäntöpöytän kautta, kuuluu siihen käytäntöpöytän profiiliin, ei alkuperäiseen Anthropic-profiiliin. + +## Virheiden ratkaiseminen + +- `401` tai `403`: kontrolloi tehtävänavainnin päällepanoa, työtilin pääsyä, tilastointia sekä sitä, käykö tehtävänavainne oletetun Anthropic-työtilille. +- `404`: Alkuperäinen URL on väärin tai valittu mallin ID ei ole tilillä saatavilla. +- Käytäntöpöytästyylin Claude-mallien ID:t eivät toimi: siirrä profiili sopivaan käytäntöpöytäntukijalle, koska alkuperäinen Anthropic ootaa alkuperäisiä mallinimejä. +- Pikat pyytökset eivät toimi hiljaisesti: vähentä mallin tulostusmäärää tehtävän kohdalla tai käytä mallia, jolla on suurempi tunttu tulostustoimiston alampi raja. + +## Kun käyttää + +Käytä Anthropic, kun synteesin laatu, tutkimusnotat tai strukturoitu kirjoitus ovat tärkeämpää kuin raaka hinta. Älä käytä sitä yleisän OpenAI-sovelluksellisen varaukseena; erillinen transportti on tärkeä, ja protokollien sekoittaminen raskentaa diagnoosintaa. + +--- + +## Järguvät toimet + +- [LLM Tukijat](/docs/providers/overview) -- Täysin konfigurointi, tehtävänkohdalliset mallit ja uudellepyyntologiikka +- [Virheiden ratkaiseminen](/docs/advanced/troubleshooting) -- Paranna 401/403-virheet ja yhteyshäiriöt diff --git a/website/i18n/fi/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/fi/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..87a0a2e4 --- /dev/null +++ b/website/i18n/fi/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "Hiina tarjoajat" +description: "Konfiguroi Qwen, DeepSeek, GLM jne." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Hiina tarjoajat + +<TLDR> +**Notemd toetaa Hiina-alueen ja Hiinasta pärit tarjoajia perustuen suuresti OpenAI-sovelluksiin sopiville päätöspisteille.** Nykyinen valikoima sisältää DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, MiniMax, Baidu Qianfan, SiliconFlow, Huawei Cloud MaaS ja Z AI. Arvona ovat alueellinen laajuus ja kostohallinta; riskinä ovat tarjoajan omat mallin nimetysviisit ja kontoinnin rajoitteet. + +Tämä kuuluu [Obsidian AI-tietojen hallintasuunnitelmaan](/docs/pillar-ai-knowledge). +</TLDR> + +## Asetukset + +Luo tarjoajakonto, luo API-avain, valitse sitten sopiva Notemd-tarjoajapredefiniointi sijaan yleistä OpenAI-profiilia. Predefiniointi sisältää vaihtoehtoisen Base URL-, mallin, API-testimallin, mallien löytämisen toiminnan sekä kaikki tarjoajalle specificoidut UI-alueet. + +Käytä tällä tilanteella aktiivisesti tehtäökohdan mukaista mallivalintaa. Esimerkiksi säilytä DeepSeek tai GLM logiikan raskaisille työprosessille, käytä Qwen tai Moonshot laajempilla hiina-kielillä tehtävillä ja suuntaa ohjelmistointitehtävät Qwen Code-ihin, jos se konto tarjoaa ohjelmistajamalleja. + +## Päätöspiste ja tunnistus + +| Tarjoaja | Vaihtoehtoinen malli | Base URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (Päätöspisteiden ID on vaativaa) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**Huomio:** Doubao vaatii Ark-päätöspisteiden ID:ä (muoto: `ep-xxxxxxxx-xxxx-xxxx`) sijaan standardista mallin nimeä. + +Enimmäistä näistä tarjoajista käytetään yhteistä OpenAI-sovelluksiin sopivaa käyttöympäristöä, mutta heidän kontoinnin ja mallien merkityksensä erottuvat. Säilytä predefiniointille specificoitu Base URL, illessä olet varmistanut konton toisen päätöspisteen. + +## Mallien löytö + +DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan ja SiliconFlow käyttävät OpenAI-sovelluksiin sopivaa mallien löytämistä, jos tarjoaja toetaa listausfunktiona. Huawei Cloud MaaS käyttää `huaweicloud-modelarts-models`-mallia, koska ModelArts-julkaisun meta-tietot eivät ole identtisi yleisen `/v1/models`-listan omien. + +Älä käsittele mallien löytämisen epäonnistumista tõendina siitä, että chat on mahdoton. Monet tarjoajat mahdollistavat chatin, rajoittamalla mallilistan perusteet. Tällöin säilytä profiilissa selkeä mallin ID ja vahvista yhteyden testin avulla. + +## Virheiden ratkaiseminen + +- Autentointi on edunsaanut, mutta chat ei toimi: mallin nimi voi olla konton oikeuksien tai alueen ulkopuolella. +- Doubao epäonnistuu normaalisella mallin nimen kanssa: käytä Ark-päätöspisteiden ID:tä mallin välilehdessä, jos sinun julkaissesi vaatii sitä. +- Logiikan vastaukset on lühentetyt: tarkista tarjoajalle specificoitu maksimipalkintotokenin määrä sekä Notemd-mallitietoiset maksimipalkintotokenin asetukset. +- Alueelliset verkonyhteydet ovat erilaisia: käytä tarjoajan Hiina-alueen päätöspisteä, kun avarakappalelaitteesi on Hiinas; käytä internaatioaalista päätöspisteä vain siis, kun konto ja verkon path ovat mõlemat validit. + +## Kun käyttää + +Käytä China-palveluntajia, kun piirkollinen viivästyminen, maksu-/tilillistä pääsy, kiinalankielisen laadun tai hinta ovat keskeisimmät rajoitteet. Ehdotetaan suoraa OpenAI-, Anthropic-, Google-tai paikallisia palveluntajia, kun tarvitset yksinkertainempaa protokollirajoitusta tai parempaa eri palveluntajien välistä vianohjelmistaa. + +--- + +## Järguvät toimet + +- [LLM Tukijat](/docs/providers/overview) -- Täysin konfigurointi, tehtävänkohdalliset mallit ja uudellepyyntologiikka +- [Vianohjastus](/docs/advanced/troubleshooting) -- Korjaa piirkollisen yhteyden ja autentointivianon diff --git a/website/i18n/fi/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/fi/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..38be08ad --- /dev/null +++ b/website/i18n/fi/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "Konfigoi Google Gemini" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Google Provider + +<TLDR> +**Google käyttää perus Gemini Generative Language API-liikenteä.** Nykyinen asetukset ovat vaihtoehtoisesti `gemini-2.0-flash-exp`, `https://generativelanguage.googleapis.com/v1` ja `temperature: 0.5`. Se ei ole OpenAI-sovelluksellinen profiili. + +Tämä kuuluu [Obsidian AI-tietojen hallintasuunnitelmaan](/docs/pillar-ai-knowledge). +</TLDR> + +## Asetukset + +Luo Google AI Studio tai Google Cloud API-avain Gemini-pääsyllä, lisää `Google`-tarjoajan profiili ja säilytä perus Generative Language Base URL. Käytä vaihtoehtoisesti vaihtoehtoisen Gemini Flash-profiilin nopeaan kääntöön ja laajempiin tiedonhallintatoimintoihin, mutta asenna erilliset mallit yksittäisten tehtävien kanssa, jos tarvitset suurempaa tai tehokkaampaa Gemini-mallia. + +Vältä Gemini-mallin ID:jen asettamista OpenAI-sovellukselliseen profiiliin, ilman että käytät selkeästi gatewaya, joka paljastaa Gemini OpenAI-sovelluksellisen API-menetelmän kautta. + +## Päätöspiste ja tunnistus + +| Poliivi | Nykyinen asetus | +|-------|----------------| +| Transporto | `google` | +| API-avain | Tarvittava | +| Base URL | `https://generativelanguage.googleapis.com/v1` | +| Vaikuttava malli | `gemini-2.0-flash-exp` | +| Tempertatuuri | `0.5` | +| Yhteystesti | Ainoastaan chat | + +Käyttöajalla kutsutaan `/models/{model}:generateContent?key={apiKey}`. Avain lähetetään kyselyparametrina, koska tässä tavassa on yhdistetty perus Gemini-päätyppi sovelluksessa. + +## Mallien löytö + +Google käyttää `google-models`-avastusrežiimiä. Avastusprosessi pitää palauttaamaan API-avainelle saatavat Gemini-mallit; jos valinta on tyhjä, testaa avaintia samalla Base URL-menetelmällä ja vahvista, että mallikunta on aktivoitu tilille. + +Tuntut välittömisten tulostustokenien rajoitteet ovat tiedossa tarjoajarejistössä mallien perusteella. Jos pitkä kääntö tai diagrammin selitys lopetetaan keskellä, valitse Gemini-malli, jolla on suurempi tuettu välittömisten tulostustokenien määrä, tai vähentä pyytettyä välittömisten tulostustokenien määrää. + +## Virheiden ratkaiseminen + +- `400`: mallin ID ei yleensä sopi perus Gemini-marsmariin tai pyyntö ületää mallin tuettua muotoa. +- `401` tai `403`: kontrolloi avainen rajoitteet, projektin/API-aktivoinnin sekä sitä, onko avain pääsyis Gemini:hin. +- `404`: mallin ID ei ole saatavilla konfiguroituessa API-versioissa. +- Gateway-näytävät esimerkit eivät toimi tässä profiilissa: käytä sitten gateway-asetuksia sijaan perus Google-tarjoajaa. + +## Kun käyttää + +Käytä Google nopeaan kääntöön, suuremman määrän tiedon puhastamiseen sekä toimintoihin, joissa Gemini:n hinna/tehokkuus-suhteella on parempi kuin suora OpenAI tai Anthropic. Ehdotetaan toinen tarjoaja toimintoille, jotka vaativat OpenAI-sovelluksellista puhelumallien käyttöä. + +--- + +## Järguvät toimet + +- [LLM Tukijat](/docs/providers/overview) -- Täysin konfigurointi, tehtävänkohdalliset mallit ja uudellepyyntologiikka +- [Kääntö](/docs/features/translation) -- Gemini Flash on suositeltava suuremman määrän kääntötöiden tilanteissa diff --git a/website/i18n/fi/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/fi/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..e97951b8 --- /dev/null +++ b/website/i18n/fi/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "Sisäiset mallit" +description: "Konfiguroi Ollama ja sisäiset LLM-t" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# Sisäiset mallit + +<TLDR> +**Sisäiset tarjoajat säilyttävät sisältöä ulkopuolisen API-sta.** Nykyinen sisäinen path kattaa Ollama kanssa perus `ollama`-transportin ja LMStudio OpenAI-sovelluksen transportin kautta. Ei ole tarpeen API-avaintia mukaisessa pathissa, mutta sisäinen serveri ja malli trebuie deja käynnissä. + +Tämä kuuluu [Obsidian AI-tietojen hallintasuunnitelmaan](/docs/pillar-ai-knowledge). +</TLDR> + +## Asetukset + +Ollama-ksi asetaa Ollama, taaan halutun mallin, käynnistää serverin ja lisää `Ollama`-tarjoajan profiili Notemd-ssä. LMStudio-ksi laaditaan malli LM Studio:n sisäisessä serverissä ja lisätään `LMStudio`-tarjoajan profiili. + +Sisäiset mallit ovat toimintakriteerit, ei vain asetukset. Notemd voi kutsua vain sitä, mitä sisäinen prosessi paljostaa, siksi tarkista sisäinen malli ulkopuolella Obsidian ennen sovelluksen vianottamista. + +## Päätöspiste ja tunnistus + +| Tarjoaja | Base URL | Vaihtoehtoinen malli | API-avain | Huomiot | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | Ei tarvita | NDJSON-strimointi; mallien löytö `/api/tags`-kautta | +| LMStudio | `localhost:1234/v1` | `local-model` | Ei tarvita | Lähetää `"EMPTY"`-t kantajatokena; OpenAI-sovelluksellinen | + +Ollama käyttää perus `/chat`-pathia alaisessa Base URL-ssaan. LMStudio seuraa OpenAI-sovelluksellista `chat/completions`-maria ja ootaa mallia, joka on laadittu sisäisessä serverissä. + +## Mallien löytö + +Ollama käyttää `ollama-tags`-löytömodiia ja listoi sisäisesti taittuja siltiä. LMStudio käyttää OpenAI-sovelluksellista mallien löytöä, kun sen serveri paljostaa `/v1/models`. + +Jos löytö ei anna tulevia tulevia, se on yleensä sisäisen serverin tilan ongelma: malli ei ole taittu, laadittu tai serveri on yhdistetty toiseen hostiin/porttiin kuin profiilissa. + +## Virheiden ratkaiseminen + +- Yhteyden estää: käynnistä Ollama tai LM Studio ja vahvista konfiguroitu portti. +- Mallia ei löydy: taaan Ollama-silti tai laadita LM Studio-malli ennen testausa. +- Hyvin hyvä välitys: vähentä kontekstin suurusta, käytä pienempää sisäistä mallia tai suunnittele raskaita tehtävät ulkopuoliseen tarjoajaan. +- Tyhjät tai väärinkonstruoituja vastauksia: vahvista, että valittu tarjoajan profiili sopii sisäisen serverin protokollille; Ollama ja LMStudio eivät ole vaihtoehtoisia. + +## Kun käyttää + +Käytä paikallisia tarjoajia yksityisiin avaroihin, offline-toimintaan tai halville, kertoisille tehtäville. Älä olettaa, että paikallinen ratkaisu on automaattisesti parempi tutkimus-synthetiseen tai pitkeään pohjendeluaan; mallin laatu ja laitteiden rajoitteet ovat tasapainotus. + +--- + +## Järguvät toimet + +- [LLM Tarjoajat](/docs/providers/overview) -- Täysin konfigurointi ja mallin asettelu tehtävälle +- [Virheentekijä](/docs/advanced/troubleshooting) -- Korjaa connection-refused-virheet, kun paikallinen serveri ei käy diff --git a/website/i18n/fi/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/fi/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..300cf290 --- /dev/null +++ b/website/i18n/fi/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "Konfigoi OpenAI (GPT-4, GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# OpenAI Provider + +<TLDR> +**OpenAI käyttää yhdistyvää OpenAI-sovelluksellista liikenteä.** Nykyinen asetus vaihtuu automaattisesti `gpt-4o`, `https://api.openai.com/v1`, `temperature: 0.5` sekä `models-then-chat`-yhteystestin suuntaan. Käytä tätä sivua, kun tarvitset täsmällisiä vältyvyysmerkityksiä; käytä [LLM Tuoja](/docs/providers/overview)-yhteenvietoa kategorianvalinnan vuoksi. + +Tämä kuuluu [Obsidian AI-tietojen hallintasuunnitelmaan](/docs/pillar-ai-knowledge). +</TLDR> + +## Asetukset + +Luo OpenAI API-avain, lisää `OpenAI`-tuojen profiili Notemd-asetuksissa ja säilytä vaihtoehtoisesti perus URL, ilman että tarkoitat suositeltavasti OpenAI-sovelluksellista käytäntöpintaa. Malleiväli voi jää `gpt-4o` yleiseen käyttöön tai se voidaan asettaa toiseen OpenAI-mallin tunnukseksi, jonka sinun tilisi voi käyttää. + +Käytä tehtäökohdallisia mallia kulutusten hallintaan: säilytä vahvempia mallia tutkimuksissa, aineiden erottamisessa ja pitkien tekstien uudellejärjestelmällässä; käytä halvempia tai nopeampia mallia kääntöjen, linkkiä suosittelemisen ja lyhyiden yhteenvetojen vuoksi. + +## Päätöspiste ja tunnistus + +| Poliivi | Nykyinen asetus | +|-------|----------------| +| Transporto | `openai-compatible` | +| API-avain | Tarvittava | +| Base URL | `https://api.openai.com/v1` | +| Vaikuttava malli | `gpt-4o` | +| Tempertatuuri | `0.5` | +| Yhteystesti | `/models`, sitten `/chat/completions` | + +Notemd normaloi OpenAI-sovelluksellisia perus URL-mallia ennen kuin se lisää `chat/completions` tai `models`. Älä lisa perus URL:hin lopullista `/chat/completions`; se luodaan duplikaattisen pathin. + +## Mallien löytö + +OpenAI käyttää yleistä OpenAI-sovelluksellista mallien löytöpathia. Asetukset UI kysyvät ensin `/v1/models`, sitten vahvistavat valittun mallin helpokkaan chat-pyyntöllä. Jos löytö ehtoissa epäonnestuu mutta chat toimii edelleen, tarkista, onko sinun avainsellesi mallilistan käyttöoikeus tai onko käytäntöpinta estänyt mallien listaus. + +Päätöksentekijämallit kohdellutkaan protokollin erityisjuhtomuodina: Notemd yhdistää sistemän ja käyttäjän pyyntösisältöä OpenAI-päätöksentekijäidentyksiksi, jotka hylkäävät erillisen `system`-roolin, ja se paljastaa `reasoningEffort` vain siellä, kun tuojen määrittely tukee sitä. + +## Virheiden ratkaiseminen + +- `401` tai `403`: todista avain, projektin pääsyoikeudet, tilastointitilanne sekä tämä, onko valittu malli avainselle aktivoitu. +- `404` chatissa: perus URL on usein väärä tai sisältää juba `/chat/completions`. +- Malli näkyy dokumenteissa mutta ei valintalista: mallilistan pääsy ja chat-pääsy ovat erilliset virhekohtat; testaa täsmällistä mallintunnusta käsikäyttöisesti tuojen profiilissa. +- Päätöksentekijämalli hylkää viestit: käytä OpenAI-päätöksentekijähallinnan pathia koskevat mallintunnukset tai vaihtaa muihin, jotka eivät ole päätöksentekijämallit. + +## Kun käyttää + +Käytä OpenAI, kun haluat ennustettavaimman perushostituksen pathin, kun `/v1/models`-löytö on tärkeää tai kun työprosessi riippuu OpenAI-päätöksentekijämallien käyttöominaisuuksista. Ehdotetaan käyttää käytäntöpintaa tai lokalaista tuojaa, kun reittitys, yksityisyys tai kulutusten hallinta ovat tärkeämpää kuin suora OpenAI API-toiminta. + +--- + +## Järguvät toimet + +- [LLM Tukijat](/docs/providers/overview) -- Täysin konfigurointi, tehtävänkohdalliset mallit ja uudellepyyntologiikka +- [Virheiden ratkaiseminen](/docs/advanced/troubleshooting) -- Korjaa 401/403- ja rate-limit-virheet diff --git a/website/i18n/fi/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/fi/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..6e5ebc3c --- /dev/null +++ b/website/i18n/fi/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "LLM tarjoajat" +description: "Konfigoi 36 LLM tarjoajaa – pilvot, käyttöpöytä ja lokaliset – käyttäen työhön mukaisen mallin valinnan" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# LLM tarjoajat + +<TLDR> +**Notemd toetaa 36 LLM tarjoajaa 4 liikennötyyppin kautta.** Kaikki API kutsut käyttävät raakaa HTTP-a (ilman SDK:ja) automaattisen uudellepyynnön, liikennön varauksen ja 5 minuutin ajan vastauksen säilyttämisen kanssa. Työhön mukainen mallin valinta mahdollistaa käytettäväksi odottomia mallia kontsepttien poistamiseen ja voimakkaia mallia tutkimuksiin. Lokalisten tarjoajien (Ollama, LMStudio) tilalle ei tarvitse API-avainta. +</TLDR> + +Tämä kuuluu [Obsidian AI-tietojen hallintasuunnitelmaan](/docs/pillar-ai-knowledge). + +## Tarjoajakategoriat + +### Pilvotarjoajat + +| Tarjoaja | Vaikuttava alus URL | Vaihtoehtoinen malli | Tempertatuuri | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### Käyttöpöytä-/proxitarjoajat + +| Tarjoaja | Vaikuttava alus URL | Vaihtoehtoinen malli | Huomiot | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | Lisää `HTTP-Referer` + `X-Title`-ohjeet | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | Lisää `X-GitHub-Api-Version`-ohjeen | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | Lisää `APP-Code`-ohjeen | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | Valittavasti API-avain | +| **Uusi API** | `localhost:3000/v1` | `gpt-4.1` | Valittavasti API-avain | +| **OpenAI Compatible** | (käyttäjän määritetty) | `your-model-id` | Omakustannuslikki päätuspiste | + +### Hiina tarjoajat + +| Tarjoaja | Vaikuttavainen perus URL | Vaihtoehtoinen malli | Huomiot | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | Koodin keskeisyys | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (Päätöspisteiden ID on vaativaa) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | Zhipu, China-päätuspiste | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | Zhipu, internaatioonalinen päätuspiste | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | Mallien majottamisplatfoimi | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao vaatii Ark-päätuspisteiden tunnustetta** (muoto: `ep-xxxxxxxx-xxxx-xxxx`). Vaikuttava asentuspaikka tulee asettaa. + +### Paikalliset tarjoajat + +| Tarjoaja | Vaikuttavainen perus URL | Vaihtoehtoinen malli | Huomiot | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | Ei API-tunnusta. NDJSON-strimointi. Mallien löytö `/api/tags` kautta | +| **LMStudio** | `localhost:1234/v1` | `local-model` | Lähetää `"EMPTY"` kertomistokenina. OpenAI-sovelluksellinen löytö | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (käyttäjän määritetty) | `gpt-4o` | Asentusnimi URL-ssä. `api-key`-ohje | + +## Mallin valinta tehtävälle + +Notemd tukee erillistä tarjoajaa ja mallia iga tehtävän için. Aktivoi `useMultiModelSettings: true`-lla. + +### Saadaolevat tehtävät + +| Tehtävä | Asetuksien avain | Vaikuttavainen tarjoaja | +|------|-------------|-----------------| +| Linkkien lisääminen (wiki-linkin lisääminen) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| Tutkimus (web-sirjaus + yhteenveto) | `researchProvider` / `researchModel` | DeepSeek | +| Luo tiiteltä | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| Käännös | `translateProvider` / `translateModel` | DeepSeek | +| Diagrammin luontaminen | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| Konceptin erottaminen | `extractConceptsProvider` / `Model` | DeepSeek | +| Alkuperäisen tekstin erottaminen | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### Ratkaisun järjestyksesi + +1. Jos `useMultiModelSettings` on aktiivinen → käytä tehtävän omaa tarjoajaa + mallia +2. Jos tehtävän mallin asetus on tyhjä → käytä tarjoajan vaikuttavaa mallia +3. Jos tehtävän tarjoaja on epäsisällinen → käytä globaalia `activeProvider`-a +4. Jos `useMultiModelSettings` on poissa → kaikki tehtävät käyttävät globaalia `activeProvider` + +### Suositeltu konfigurointi + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## API Call Architecture + +### Transport Layerit + +1. **Obsidian `requestUrl`** — perus (sisäistynyt, toimii kaikilla platfoimeilla) +2. **Desktop HTTP** — Node.js `http`/`https` -moduulit (strimointi + pitkät pyytelut) +3. **Web `fetch`** — varaus, kun Node.js -moduulit eivät ole saatavilla + +Plugina automaattisesti vaihtaa transporttien välillä ajutettujen verkonvirheiden korjaamiseksi. + +### Uudellepyttämismallit + +- **Normaali režiimi** (`enableStableApiCall: false`): Yksi yrittö. Ajutetun virheen korjaamiseksi automaattisesti uudellepytetään stabiliseen režiimiin. +- **Stabilinen uudellepyttämismalli** (`enableStableApiCall: true`): Kuni 4 yrittöä (1 + 3 uudellepyttämistä) 5 sekuntin välistyksillä. +- **Ajutetut virheet, jotka käynnistävät uudellepyttämisen**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **Ei uudellepytetä**: HTTP 400, 401, 403, 404 + +### Vastauspysähdyttäminen + +5 minuutin ajan sisälläpysähdyttäminen LRU -mallilla, joka on tiedostettu tarjoajan, mallin, lämpötilan, pyyntön ja sisällön perusteella. Seuraavat samanlaiset pyytelut 5 minuutin sisällä palauttaavat heti pysähdyttämistulokset. + +### Mallien käyttö + +Mallit, jotka ei tuke `system` -roolia (DeepSeek R1, OpenAI o1/o3/o4/gpt-5), yhdistävät automaattisesti sistemän ja käyttäjän pyyntöt yhteen yksiköiseen käyttäjäpyyntöön. + +DeepSeek-specific: `thinkingEnabled` lisää `{ thinking: { type: 'enabled' } }` pyytäkseen. `reasoningEffort` (alhaa/mittelinen/korkea) lähetetään kuten `reasoning_effort`. Vahvistaa, että maksimilliset väljontitokenit ≥ 8000, kun mietintä on aktiivinen. + +### Token Estimation + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — 4-kirjain-tokenin heuristikka. Käytetään `maxResearchContentTokens` vaatimusten toteuttamiseen ennen lähetystä LLM.: + +Kostennusturvaus ei ole rakentettu. + +## Mallien löytö + +| Režimi | Providers | Endpoint | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | Mallien lista API | +| `anthropic-models` | Anthropic | Mallien lista API | +| `openai-compatible-models` | DeepSeek, Qwen, Mistral jne. | `/v1/models` | +| `openrouter-models` | OpenRouter | Mallien lista API | +| `github-models` | GitHub Models | Inference API | +| `none` | Azure OpenAI | Poistossa (tarvitaan käyttöönpanon nimi) | + +## Quick Start + +1. **Valitse tarjoaja** — DeepSeek (China), OpenAI (International) tai Ollama (Local/Free) +2. **Sisesta API-avain** — Settings → Notemd → Provider → API Key +3. **Testaa yhteyttä** — Paina testointipainikki +4. **Valinta: Tehtävän mukaiset mallit** — Aktivoi `useMultiModelSettings` ja konfiguroi se erikseen + +Ollama: API-avain ei ole tarpeen. Varmista vain, että `ollama serve` toimii. + +--- + +## Järguvät toimet + +- 📝 [Konseptitiedot](/docs/features/concept-notes) — Käytää tehtävän mukaista extraktiomallia +- 🎨 [Diagrammit](/docs/features/diagrams) — Käytää tehtävän mukaista diagrammallia +- 🔍 [Tutkimus](/docs/features/research) — Käytää tutkimukseen suunniteltua mallia +- ⚙️ [Konfigurointi](/docs/getting-started/configuration) — Täysin asetusten viite diff --git a/website/i18n/fi/docusaurus-theme-classic/footer.json b/website/i18n/fi/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/fi/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/fi/docusaurus-theme-classic/navbar.json b/website/i18n/fi/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/fi/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/he/code.json b/website/i18n/he/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/he/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/he/docusaurus-plugin-content-docs/current.json b/website/i18n/he/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/he/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/he/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/he/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..00c57971 --- /dev/null +++ b/website/i18n/he/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "עיבוד בקבוצות" +description: "לעבד מספר קבצים ביעילות" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# עיבוד בקבוצות + +<TLDR> +**Notemd מעבד את כל התיקיות בפעולה אחת עם שליטה במקביליות ובהחלפה.** לחץ ימני על תיקייה כדי להוסיף באופן אוטומטי קישורי wiki, לשלוף רעיונות, לחקור או לתרגם את כל ההערות שבתוכה. מגבלות המקביליות מונעות שגיאות של API. מתקבלות דיווחי התקדמות לפי קובץ. התנהגות ההחלפה ניתנת להגדרה: לדלג על קיימים, להוסיף או להחליף. קבצים שנכשלו נרשמים מבלי לעצור את העיבוד הקבוצתי. + +זהו חלק מה[Obsidian מדריך ניהול ידע AI](/docs/pillar-ai-knowledge). +</TLDR> + +## סקירה + +עיבוד בקבוצות הופך תיקייה של הערות לפעולה אחת. במקום לפתוח כל הערה ולבצע פקודות בנפרד, לוחצים ימני על התיקייה ובוחרים את המשימה. Notemd עובר על כל קובץ `.md`, מיישם את הפעולה הנבחרת ומדווח על ההתקדמות בזמן אמת. + +תכונה זו הכרחית לשליפת ידע ברמת הארכיון כולו. לאחר ייבוא עשרות PDF, למשל, הוספה אוטומטית של קישורים לאחר מכן שליפה אוטומטית של רעיונות, בונים את גרף הידע שלכם בדקות ולא בשעות. + +## אופן הפעולה + +### מודל ביצוע בקבוצות + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **איסוף קבצים** -- Notemd סורק את התיקייה היעד באופן רקורסיבי (או רק ברמת הרמה העליונה, בהתאם להגדרות) ואוסף את כל קבצי `.md`. +2. **חלוקה למקביליות** -- הקבצים מחולקים לקבוצות בהתאם להגדרת `batchConcurrency`. כל קבוצה מתבצעת במקביל; הקבוצות מתבצעות ברצף. +3. **ביצוע** -- כל קובץ מעובד באמצעות אותה לוגיקה כמו הפקודה לקובץ בודד. מתחשבים בהגדרות הספק והמודל לכל משימה. +4. **דיווח התקדמות** -- הודעת toast מתעדכנת לאחר סיום כל קובץ, ומציגה את ההתקדמות `N / Total`. +5. **טיפול בשגיאות** -- אם קובץ נכשל (שגיאת API, זמן חיבור לרשת וכו'), השגיאה נרשמת והעיבוד הקבוצתי ממשיך. סיכום סופי מציג את כל הקבצים שנכשלו. +6. **סיום** -- הודעת toast סיכום מדווחת על הכמות הכוללת שעובדה, ההצלחות והכישלונות. + +### התנהגות כתיבה מחדש + +בעת עיבוד קובץ שכבר מכיל קישורי wiki, רשימות רעיונות או תרגומים, ההתנהגות של Notemd תלויה בהגדרת הכתיבה מחדש: + +| מצב | התנהגות | +|------|----------| +| **דלג** | התוכן הקיים נשאר ללא שינוי. רק קבצים שלא שונו מעובדים. | +| **הוסף בסוף** (ברירת המחדל) | תוכן חדש מוסף בסוף. קישורי wiki, הרעיונות או התרגומים הקיימים נשמרים. | +| **החליף** | הקובץ מעובד מחדש לחלוטין. כל השינויים הקודמים של Notemd מוחלפים. | + +לגבי יצירת קישורי wiki באופן ספציפי: אם רשימה כבר מכילה `[[wiki-links]]`, מצב **דלג** משאיר אותה כמו שהיא, בעוד ש**החליף** שולח את כל הרשימה ל-LLM כדי להוסיף קישורים חדשים. השתמשו ב**דלג** לעיבוד הדרגתי וב**החליף** לעיבוד מחדש לאחר שדרוג של המודל. + +### בקרת תוך-זמניות + +הגדרת `batchConcurrency` מגבילה את מספר הקריאות המקבילות של API. זה מונע שגיאות מגבלת קצב (HTTP 429) בעת עיבוד תיקיות גדולות אצל ספקים עם מגבלות קפדניות. + +| תוך-זמניות | מומלץ לשימוש ב | השפעה טיפוסית על מגבלת הקצב | +|-------------|----------------|---------------------------| +| `1` | רמות בחינם, ספקים קפדניים | אף אחת (סריאלית) | +| `3` (ברירת מחדל) | רוב ספקי הענן | נמוך | +| `5` | Ollama (מקומית), רמות נדיבות | אף אחת / נמוך | +| `10` | מודלים מקומיים עם הסקה מהירה | אף אחת | + +אם אתם נתקלים בשגיאות 429 במהלך עיבוד בקבוצות, הפחיתו את הביצועים המקבילים ל-1 או 2. + +## הגדרה + +| ערך | ברירת מחדל | השפעה | +|---------|---------|--------| +| `batchConcurrency` | `3` | מספר הקריאות המקבילות המרבי של API במהלך פעולות על תיקיות | +| `batchOverwriteExisting` | `false` | לכתוב מחדש את תוכן Notemd הקיים. `false` = מצב הוספה. | +| `batchSkipProcessed` | `false` | לדלג על קבצים שכבר מכילים סימני Notemd (למשל, קישורי wiki) | +| `batchRecursive` | `true` | לכלול תת‑תיקיות בעת סריקת התיקייה | +| `enableStableApiCall` | `false` | להפעיל לוגיקת ניסיונות חוזרים (עד 4 ניסיונות) לכל קובץ במסגרת הבצוע ההמוני | + +### מודלים למשימה בודדת בבצוע המוני + +כל פעולה בבצוע המוני משתמשת במודל המתאים למשימה. batch-add-links משתמש ב‑`addLinksProvider`, batch-research משתמש ב‑`researchProvider`, וכן הלאה. זה אומר שניתן להקצות מודלים זולים לפעולות בהיקף גדול ולשמור מודלים יקרים למשימות הדורשות איכות גבוהה. + +## דוגמה + +יש לך תיקייה `papers/` שמכילה 40 רשימות מחקר מיובאות. אתה רוצה להוסיף קישורי wiki ולשלוף רעיונות מכולן: + +1. לחץ ימני על התיקייה `papers/` +2. בחר **"Notemd: Process folder (add links)"** +3. Notemd סורק את התיקייה, מוצא 40 קבצי `.md`, ומעבד 3 בכל פעם (רמת ביצועים סטנדרטית) +4. תצוגת התקדמות מראה: `12/40 files processed...` +5. לאחר כ‑3 דקות, תצוגת סיכום מדווחת: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. חזור על הפעולה באמצעות **"Notemd: Process folder (extract concepts)"** כדי ליצור תגיתות רעיונות עבור כל 40 הקבצים + +הקובץ שנכשל נרשם. ניתן להריץ שוב רק את אותו קובץ לאחר מכן. + +## טיפים + +- **התחל ברמת ביצועים נמוכה** -- אם אינך בטוח לגבי מגבלות הקצב של הספק שלך, התחל עם `1` והגדל בהדרגה. +- **השתמש במצב דילוג לעדכונים הדרגתיים** -- לאחר המחזור המלא הראשון, עבור ל‑`batchSkipProcessed: true` כך שרק התגיתות החדשות יעובדו בריצות הבאות. +- **הפעל שיחות API יציבות** -- `enableStableApiCall: true` מוסיף לוגיקת ניסיונות חוזרים שמתאוששת משגיאות רשת זמניות במחזורים ארוכים. +- **הרץ שוב לאחר שדרוגי מודל** -- אם עוברים למודל טוב יותר, הגדר `batchOverwriteExisting: true` והרץ שוב כדי לקבל קישורים ורעיונות משופרים. + +--- + +## צעדים באופק + +- [Workflows](/docs/features/workflows) -- חבר את משימות המחזור לכפתורי צד של לחיצה אחת +- [Custom Prompts](/docs/advanced/custom-prompts) -- התאים אישית את ההוראות לשליפה המחזורית +- [Troubleshooting](/docs/advanced/troubleshooting) -- תקן שגיאות מגבלות קצב וכישלונות חיבור במהלך ריצות המחזור +- [LLM ספקים](/docs/providers/overview) -- התייחסות להגדרת המודל לכל משימה diff --git a/website/i18n/he/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/he/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..9a48610c --- /dev/null +++ b/website/i18n/he/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "הוראות מותאמות אישית" +description: "להתאים הוראות LLM לצרכים שלכם" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# הוראות מותאמות אישית + +<TLDR> +**Notemd מאפשר לכם לעקוף את ההוראה הבסיסית LLM עבור כל סוג משימה.** הוראות מותאמות אישית מעניקות לכם שליטה על מה שהמודל מעדיף: ניתן להגביל את חילוץ הרעיונות לתחום מסוים, לשנות את סגנון הקישורים, או לשנות את טון התרגום. משתני הוראה כמו `{{content}}` ו-`{{concept}}` מוחלפים בזמן ביצוע. מאפיין תחום הלמידה הממוקד מוסיף את תחום הלימוד שלכם בראש הטקסט כדי להגביל אוטומטית את תוצאות החילוץ. + +זהו חלק מה[Obsidian מדריך ניהול ידע AI](/docs/pillar-ai-knowledge). +</TLDR> + +## סקירה + +ההוראות המובנות של Notemd נכתבו לעבודה בידע בשימוש כללי. הן עובדות היטב בין תחומים שונים, אך הן גם משאירות מקום לשיפורים ספציפיים לתחום. הוראות מותאמות אישית מאפשרות לכם להגיד ל-LLM בדיוק איך לפעול עבור השימוש שלכם – בין אם זה אומר לחלץ רק מונחים רפואיים, לקשר רק ישויות מוגדרות, או לתרגם בסגנון רשמי. + +הוראות מותאמות אישית אינן מחליפות את הוראת המערכת כולה. הן מעקבות או משלימות את **החלק של ההוראות הספציפיות למשימה** תוך שמירה על פורמט הפלט המבני (למשל, שורות `CONCEPT:`, תחביר קישורי wiki) ש-Notemd מסתמך עליו לצורך פענוח. + +## אופן הפעולה + +### ארכיטקטורת ההוראות + +כל משימה Notemd עוקבת אחר אותה מבנה הוראות: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **הוראת המערכת הבסיסית** -- קובעת את דמות העוזר. אינה ניתנת לעקיפה. +2. **תחום הלמידה הממוקד** -- מוסיף `Relevant Fields: [medicine / law / computer science / ...]` בראש הטקסט כדי להגביל את ההיקף. זהו מתג בהגדרות, ולא הוראה גולמית. +3. **הוראת המשימה המותאמת** -- מחליפה את ההוראות הבסיסיות של המשימה (למשל, אילו סוגי רעיונות לחלץ, באיזו עוצמה ליצור קישורים). +4. **פורמט הפלט** -- חוקים מבניים (שורות `CONCEPT:`, פורמט קישורי wiki). תמיד מוסף על ידי Notemd כדי להבטיח ניתנות פענוח. +5. **תוכן** -- טקסט ההערה האמיתי, המוחלף בזמן ביצוע באמצעות `{{content}}`. + +### משתני הוראה + +המשתנים מוחלפים בזמן ביצוע. המשתנים הזמינים משתנים לפי המשימה: + +| Variable | משימות | הוחלף ב- | +|----------|-------|---------------| +| `{{content}}` | כולם | טקסט ההערה או הבחירה | +| `{{concept}}` | תבנית הערת רעיון | שם הרעיון שהופק | +| `{{description}}` | תבנית הערת רעיון | תיאור הרעיון שנוצר על ידי LLM | +| `{{backlinks}}` | תבנית הערת רעיון | רשימת ההערות המקוריות עם לינקים | +| `{{date}}` | תבנית הערת רעיון | תאריך היום (YYYY-MM-DD) | +| `{{language}}` | תרגום | שפת הפלט היעד | +| `{{source}}` | תבנית הערת רעיון | שם הקובץ של ההערה המקורית | + +### תחום למידה ממוקד + +התכונה של למידה ממוקדת היא דרך מהירה להגביל את התחום. במקום לכתוב הוראה מותאמת אישית שמציינת את התחום שלכם, יש להגדיר `focusedLearningDomain` בהגדרות: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +זה מוסיף את `Relevant Fields: [medicine]` להוראת החילוץ, מה שגורם ל-LLM להעדיף רעיונות הקשורים לתחום ולדכא רעיונות כלליים. זה קל יותר מהוראה מותאמת אישית מלאה ופועל בכל משימות החילוץ. + +## הגדרה + +| ערך | ברירת מחדל | השפעה | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | לעקוף את הוראת המשימה הרגילה להוספת קישורים | +| `customExtractConceptsPrompt` | `''` | לעקוף את הוראת החילוץ של הרעיונות הרגילה | +| `customResearchPrompt` | `''` | לעקוף את הוראת המחקר + סיכום הרגילה | +| `customTranslatePrompt` | `''` | לעקוף את הוראת התרגום הרגילה | +| `customDiagramPrompt` | `''` | לעקוף את הוראת יצירת הדיאגרמה הרגילה | +| `focusedLearningDomain` | `''` | להוסיף רקע של תחום להוראות החילוץ והקישורים | +| `extractConceptsMinimalTemplate` | `true` | להשתמש בתבנית רשימת רעיונות עם רק שם (זה משפיע על היקף התבנית של `{{concept}}`) | +| `customConceptNoteTemplate` | `''` | לעקוף את תבנית קובץ רשימת הרעיונות עם תמיכה מלאה במשתנים | + +**כאשר שדה ההוראה המותאמת אישית ריק, נעשה שימוש בהוראה הרגילה המובנית.** + +## דוגמה + +אתם חוקרים רפואיים שחולצים רעיונות מרשימות של ניסויים קליניים. ההוראה הרגילה חולצת שמות עצם כלליים יחד עם מושגים רפואיים, מה שמסבך את תיק הרעיונות שלכם. + +**פתרון:** להגדיר תחום למידה ממוקד והוראת חילוץ מותאמת אישית. + +1. להגדיר `focusedLearningDomain` ל-`medicine` +2. להגדיר `customExtractConceptsPrompt` ל: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +כעת, כאשר אתם מריצים את "Extract concepts" על רשומה קלינית, ה‑LLM מייצר: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +במקום ההתנהגות הבסיסית שעלולה גם היא לשלוף מושגים כלליים לא רצויים כמו "hospital" או "month". + +## טיפים + +- **התחילו עם תחום הלמידה הממוקד** לפני כתיבת בקשה מותאמת מלאה. הוא מכסה 80% ממקרי השימוש עם הגדרה אחת בלבד. +- **שמרו על פורמט הפלט** – אל תסירו לעולם הוראות פורמט כמו "one per line" או "CONCEPT: prefix" מבקשות מותאמות. המפרש של Notemd תלוי בהן. +- **בדקו תחילה עם רשומה אחת** – בקשות מותאמות עלולות לגרום להשפעות בלתי צפויות על רוחב השליפה. בדקו על רשומה אחת לפני עיבוד המוני. +- **שמרו על בקשות תמציתיות** – בקשות מותאמות ארוכות מדי צורכות יותר טוקנים ועלולות להחליש את הריכוז של המודל. + +--- + +## צעדים באופק + +- [Wiki-Links](/docs/features/wiki-links) – מה נקשר כאשר אתם מתאימים את הבקשה להוספת קישורים +- [Concept Notes](/docs/features/concept-notes) – תבניות של רשומות רעיונות והמשתנה `{{concept}}` +- [Batch Processing](/docs/advanced/batch-processing) – יישום בקשות מותאמות על תיקיות שלמות +- [Troubleshooting](/docs/advanced/troubleshooting) – תיקון בעיות שבהן בקשות מותאמות יוצרות פלט בלתי צפוי diff --git a/website/i18n/he/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/he/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..459ece91 --- /dev/null +++ b/website/i18n/he/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "פתרון בעיות" +description: "בעיות נפוצות ופתרונות להן" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# פתרון בעיות + +<TLDR> +**רוב Notemd הבעיות מתחלקות לארבע קטגוריות: בעיות מרכזיות של API, חיבור לרשת, שגיאות אימות (401/403), ומגבלות קצב (429).** מבחן החיבור המובנה ולוח האבחון מזהים את הסיבה הראשונית במהירות. דף זה מכסה כל הודעת שגיאה נפוצה, את הסיבה לה ואת התיקון. לבעיות שאינן מופיעות כאן, דווחו עליהן ב‑GitHub Issues יחד עם תוצאות האבחון. + +זהו חלק מה[Obsidian מדריך ניהול ידע AI](/docs/pillar-ai-knowledge). +</TLDR> + +## סקירה + +Notemd תלוי בשירותים חיצוניים – ספקי LLM ומנועי חיפוש API – כך שרוב הבעיות נובעות מחוץ לפלגין עצמו. לוח האבחון בהגדרות מספק תצוגה ממוקדת של השיחה האחרונה API, כולל הבקשה URL, מצב התגובה וגוף השגיאה. תמיד בדקו אותו קודם לפני שאתם חוקרים יותר. + +## אופן הפעולה: אבחון + +### מבחן חיבור + +לכל סעיף הגדרות של ספק יש כפתור **"בדוק חיבור"**. לחיצה עליו שולחת בקשה מינימלית של API (בדרך כלל רשימת מודלים או השלמה קצרה) ומדווחת על הצלחה או על שגיאת HTTP ספציפית. זו הדרך המהירה ביותר לוודא ש‑API המפתח ו‑URL הבסיסי שלכם נכונים. + +### לוח האבחון + +**הגדרות --> Notemd --> אבחון** מציג את הבא: + +| שדה | תוכן | +|-------|---------| +| ספק אחרון | איזה ספק נקרא לאחרונה | +| מודל אחרון | איזה מודל נקרא לאחרונה | +| מצב אחרון | קוד מצב HTTP או שגיאת העברה | +| שגיאה אחרונה | הודעת השגיאה המקורית מה API | +| בקשה אחרונה URL | URL מלא של הבקשה האחרונה (מפתח API מוסתר) | +| תוכן התגובה האחרון | תוכן תגובה מקוצר (500 התווים הראשונים) | + +העתיקו את פלט האבחון המלא כאשר מדווחים על בעיות ב‑GitHub. + +## שגיאות נפוצות + +### מפתח API לא תקין או חסר + +**תסמין:** HTTP 401 או "מפתח API לא נכון ניתן" + +**סיבה:** המפתח API חסר, מכיל רווחים, או שייך לספק אחר. + +**פתרון:** +1. בדקו שאין רווחים בתחילת/סוף המפתח +2. וודאו שהמפתח תואם את הספק הנבחר (מפתח OpenAI לא יעבוד עם Anthropic) +3. בדקו שלחשבון שלכם יש אשראי או מנוי פעיל +4. לחצו על **"Test Connection"** כדי לבדוק + +### שגיאות רשת / חיבור + +**תסמין:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**סיבה:** הקצה API אינו נגיש מהמחשב שלכם. + +**פתרון:** +1. בדקו את חיבור האינטרנט שלכם +2. אם אתם מאחורי פרוקסי או חומת אש, בדקו שהדומיין API אינו חסום +3. עבור Ollama: בדקו ש‑`ollama serve` פועל (‎`ollama list` צריך להחזיר מודלים) +4. עבור LMStudio: בדקו שהשרת פועל על `localhost:1234` +5. נסו תשלוח אחר – משתמשי מובייל צריכים לוודא שתשלוח `requestUrl` פעיל +6. הפעילו `enableStableApiCall` לניסיונות חוזרים אוטומטיים במקרה של שגיאות זמניות + +### 403 Forbidden + +**תסמין:** HTTP 403 + +**סיבה:** המפתח API שלכם תקין אך אינו מחזיק ברשות למשאב המבוקש. + +**פתרון:** +1. חלק מהמודלים דורשים גישה מיוחדת (למשל, GPT-4 דרך Azure דורש שם הפריסה) +2. כמה ספקים מגבילים מודלים לפי רמת התוכנית – בדקו את החשבון שלכם +3. עשויות להיות הגבלות אזוריות (כמה ספקים בסין חוסמים IP בינלאומיים ולהיפך) +4. וודאו ששם המודל נכתב כראוי (למשל, `gpt-4o` ולא `gpt-4o-mini` כאשר המודל הקטן הוא כל מה שהתוכנית שלכם מאפשרת) + +### Rate Limit (429) + +**תסמין:** HTTP 429 או "Rate limit exceeded" + +**סיבה:** יותר מדי בקשות בפרק זמן קצר. + +**פתרון:** +1. הפחיתו את `batchConcurrency` ל-`1` או `2` +2. חכו מספר דקות לפני ניסיון חוזר +3. בדקו את המסמכים של הספק שלכם לגבי מגבלות הקצבה לרמת התוכנית שלכם +4. הפעילו `enableStableApiCall` לניסיונות חוזרים אוטומטיים עם backoff +5. שקלו לעבור לספק עם מגבלות גבוהות יותר (DeepSeek, Ollama) + +### Model Not Found + +**תסמין:** "Model not found" או HTTP 404 + +**סיבה:** שם המודל אינו קיים אצל הספק הנבחר. + +**תיקון:** +1. לחצו על **"Get Model List"** כדי לראות את כל המודלים הזמינים עבור הספק שלכם +2. שמות של מודלים משתנים עם הזמן -- בדקו את השם העדכני במסמכי הספק +3. עבור Ollama: הריצו `ollama list` כדי לראות את המודלים שהורדו; רק מודלים שהורדו זמינים + +### אין קישורים / אין רעיונות שנוצרו + +**תסמין:** הפקודה מתבצעת אך אינה מפיקה שום תוצאה + +**סיבה:** הLLM החזיר תגובה ריקה או בלתי ניתנת לפענוח. + +**תיקון:** +1. בדקו את לוח האבחון עבור התגובה האמיתית של LLM +2. נסו מודל יותר חזק (מודלים קטנים מסוימים מתקשים עם פלט ממוקדר) +3. הבטיחו שלהערה יש תוכן מספיק (יותר מ‑50 מילים) +4. בדקו את ההוראות המותאמות אישית שלכם לחיפוש על התנגשויות +5. נטרלו זמנית את דיכוי המילים הנרדפות כדי לראות אם הוא מסנן באופן קיצוני מדי + +### חסר מזהה קצה Doubao + +**תסמין:** שגיאה בשימוש בספק ByteDance Doubao + +**סיבה:** Doubao דורש מזהה קצה Ark (פורמט: `ep-xxxxxxxx-xxxx-xxxx`) במקום שם מודל. + +**תיקון:** החליפו את המודל הפיילוט הסטנדרטי ב-ID של נקודת הקצה האמיתית שלכם מממשק Volcengine. + +## הגדרה + +| הגדרות אבחון | מיקום | מטרה | +|--------------------|----------|---------| +| **בדיקת חיבור** | סעיף Provider בהגדרות | בדקו את מפתח API ואת החיבוריות | +| **קבלת רשימת מודלים** | סעיף Provider בהגדרות | אשרו אילו מודלים זמינים | +| `enableStableApiCall` | הגדרות --> מתקדם | הפעילו ניסיונות חוזרים עם דחייה | +| `batchConcurrency` | הגדרות --> בקבוצות | שלטו במקביליות כדי להימנע ממגבלות קצב | + +## כיצד לדווח על בעיות + +אם הבעיה שלכם אינה מכוסה לעיל: + +1. לפתוח **הגדרות --> Notemd --> אבחון** +2. להעתיק את פלט האבחון המלא +3. לפתוח בעיה ב-GitHub בכתובת [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +4. לכלול: גרסת Obsidian, גרסת Notemd, ספק, מודל, פלט האבחון, ושלבים לשחזור +5. למחוק את המפתח API שלכם מכל יומני לוגים משותפים + +--- + +## צעדים באופק + +- [LLM Providers](/docs/providers/overview) -- מסמך התייחסות מלא להגדרות הספקים +- [Batch Processing](/docs/advanced/batch-processing) -- הגדרות ריבוי משימות וניסיונות חוזרים לפעולות גדולות +- [Custom Prompts](/docs/advanced/custom-prompts) -- תיקון התנהגות בלתי צפויה של LLM על ידי התאמת ההוראות diff --git a/website/i18n/he/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/he/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..86fa9630 --- /dev/null +++ b/website/i18n/he/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "שאלות נפוצות" +description: "שאלות נפוצות לגבי התקנה, תכונות ושימוש ב- Notemd" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# שאלות נפוצות + +<TLDR> +**תשובות מהירות לשאלות הנפוצות ביותר של Notemd.** כולל התקנה (הגדרה ב-5 דקות), תמיכה ב-30+ ספקי LLM, אפשרויות מודל מקומי/ענן, עבודות בלחיצה אחת, UI רב-לשוני (21 שפות), אוטומציה של קישורי wiki, אינטגרציה למחקר, עבודות קריאה ב- PDF, יצירת תרשימים ורישיון מקור פתוח. כל התכונות עובדות ללא אינטרנט עם Ollama. +</TLDR> + +--- + +## התקנה והגדרה + +### איך אני מתקין את Notemd ב- Obsidian? + +פתחו את Obsidian → **Settings → Community Plugins → Browse** → חפשו **"Notemd"** → **Install** → **Enable**. + +**דרישות:** +- Obsidian 0.15.0+ +- נתמך במחשבים שולחניים (Windows, macOS, Linux) ובמובייל (iOS, Android) + +**התקנה ידנית:** +1. הורידו את `main.js`, `styles.css`, `manifest.json` מ- [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) +2. הניחו אותם בתוך `<your-vault>/.obsidian/plugins/notemd/` +3. חדשו את Obsidian והפעילו את התוסף + +**סטטיסטיקות:** למעלה מ-4k הורדות, 44 גרסאות, רישיון MIT. + +--- + +## הגדרות LLM + +### מהם ספקי ה-LLM ש-Notemd תומך בהם? + +Notemd תומך ב-**30+ ספקים**: + +**ספקי ענן:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonnet, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**ממוקדים בסין:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**מקומיים/עם הפעלה עצמית:** +- Ollama +- LM Studio +- כל קצה תואם ל-OpenAI + +**שערים:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models, Fireworks, LiteLLM, Nebius, Cerebras +- Hugging Face, Vercel AI Gateway, Requesty + +### האם Notemd יכול לעבוד עם LLM מקומיים? + +**כן, תומך במלואו.** Notemd עובד עם: +- **Ollama** (אינטגרציה ישירה) +- **LM Studio** (דרך קצה תואם OpenAI) +- **vLLM, LocalAI, text-generation-webui** (במוד תואם OpenAI) + +כל המשימות עובדות עם מודלים מקומיים: חיבור, יצירת רעיונות, תרגום, מחקר ויצירת תרשימים. + +**דוגמה לשילוב:** +- Ollama (מקומי) לחיבור → מהיר, פרטי, ללא עלות +- OpenAI למחקר → איכות גבוהה, אינטגרציה עם חיפוש אינטרנט +- Gemini לתרגום → תמיכה רב-מודלית + +### איך אני מגדיר מודלים שונים למשימות שונות? + +ב**הגדרות Notemd**, לכל משימה יש בוחרי ספק/מודל עצמאיים: + +| משימה | הגדרה דוגמתית | +|------|----------------------| +| **חיבור** | DeepSeek (מהיר, זול) | +| **ייצור רעיונות** | Claude Opus (איכות גבוהה) | +| **מחקר** | Perplexity או GPT-4o (מבוסס אינטרנט) | +| **תרגום** | Gemini Flash (רב-מודלי) | +| **ייצור תרשימים** | Ollama (מקומי, פרטי) | + +אופטימיזציה זו לכל משימה מאזנת בין מהירות, עלות ואיכות. + +--- + +## תכונות בסיסיות + +### במה Notemd שונה מ-ChatGPT לצורך קריאת מאמרים? + +| ממד | ChatGPT | Notemd | +|-----------|---------|--------| +| **מיקום הפלט** | היסטוריית שיחות (זמנית) | Obsidian כספת (קבצים קבועים) | +| **פורמט התוצאה** | תשובה טקסטואלית | קישורי ויקי, רשימות מושגים, דיאגרמות, תרגומים | +| **ערך לטווח ארוך** | נעלם לאחר הסשן | נאגר בבסיס הידע | +| **שימוש חוזר** | יש לבצע שאילתה מחדש | הקבצים נשארים, הקישורים נשארים, הם מתפתחים | + +**השתמשו בChatGPT ל:** שאלות ותשובות מהירות, הסברים חד-פעמיים +**השתמשו בNotemd ל:** בניית בסיס ידע מובנה וקבוע לאורך שבועות/חודשים + +### איך Notemd מוסיף קישורי ויקי לרשימות? + +**התהליך:** +1. אתם מריצים את "Process file (add links)" על רשימה +2. Notemd שולח את הטקסט ל-LLM המוגדר שלכם +3. ה-LLM מזהה רעיונות מרכזיים בהקשר +4. Notemd מוסיף את ה-`[[wiki-links]]` בכל הופעה של הרעיון +5. באופציונלי, הוא יוצר אוטומטית רשימות רעיונות בתיקייה שתגדירו + +**תכונות:** +- דיכוי נרדפים (מונע כפילויות של "transformer" לעומת "transformers") +- קישורים החוזרים מרשימות הרעיונות למקור +- שמירה על שלמות הקישורים בעת שינוי שם/מחיקה +- מצב חילוץ טהור (חילוץ רעיונות ללא שינוי במקור) + +### מהו תהליך העבודה בלחיצה אחת של ה-Notemd? + +**תהליכי עבודה בלחיצה אחת** מחברים מספר פעולות לתוך **כפתור צד אחד**. + +**תהליך עבודה ברירת המחדל:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**התוצאה:** לחיצה אחת מבצעת את הדברים הבאים: +1. הוספת קישורי wiki לרשימה הנוכחית +2. יצירת רשימות רעיונות למושגים חדשים +3. מחקר והוספת רקע +4. אריזה לתוך דיאגרמת Mermaid + +**תהליכי עבודה מותאמים אישית:** הגדירו את שלכם בחלק Settings בפורמט DSL. כל תהליך עבודה הופך לכפתור בסרגל הצד הניתן לשימוש חוזר. + +### איך Notemd משווה ל-Copilot או Smart Connections? + +הפלגינים האלה פותרים בעיות שונות: + +- **Copilot** — דגש על שיחה. אתם משוחחים עם בינה מלאכותית על הרשימות שלכם. התשובות של הבינה המלאכותית נשארות בלוח השיחה; הן אינן משנות את הארכיון שלכם. +- **Smart Connections** — דגש על גילוי. הוא מוצא רשימות דומות מבחינה סמנטית באמצעות embeddings. הוא אינו יוצר או משנה תוכן. +- **Notemd** — דגש על כתיבה. הבינה המלאכותית מעבדת את הרשימות שלכם וכותבת תוצאות ממוקדות (קישורי wiki, רשימות רעיונות, מחקר, דיאגרמות, תרגומים) ישירות לארכיון שלכם כקבצים קבועים. + +| מה אתם צריכים | פלגין מומלץ | +|----------------|-------------------| +| שיחה עם בינה מלאכותית על רשימות | Copilot | +| מציאת רשימות דומות/קשורות | Smart Connections | +| הכנסה אוטומטית של קישורי wiki ויצירת גרף ידע | **Notemd** | +| יצירת רשימות רעיונות עם קישורים חוזרים | **Notemd** | +| יצירת דיאגרמות מתוכן הרשימות | **Notemd** | +| לחקור נושא ולהוסיף סיכומים | **Notemd** | + +ניתן להשתמש בשלושתם יחד — הם משלימים זה את זה ולא מתחרים. + +--- + +## מחקר ותרגום + +### אילו שירותי חיפוש עובדים עם מחקר Notemd? + +| שירות | נדרש מפתח API | איכות | הערות | +|---------|-----------------|---------|-------| +| **Tavily** | כן | גבוה | חיפוש מומלץ, מותאם לבינה מלאכותית | +| **DuckDuckGo** | לא | ניסיוני | אין צורך בהגדרות, איכות נמוכה יותר | + +**איך "מחקר וסיכום" פועל:** +1. אתם בוחרים נושא או מריצים אותו על ההערה הנוכחית +2. Notemd שולח בקשות לשירות החיפוש +3. תוצאות → סיכום על ידי LLM +4. הסיכום מתווסף להערה שלכם עם ציטוטי מקור + +**התוצאה:** מסלול מחקר קבוע בארכיון שלכם, לא בכרטיסיות הדפדפן. + +### האם Notemd תומך בסינית או בשפות אחרות? + +**שפות UI:** 21+ שפות תומכות +- אנגלית, 中文 (简体), 中文 (繁體), 日本語, 한국어 +- ערבית, גרמנית, צרפתית, ספרדית, רוסית, פורטוגזית, איטלקית +- הינדי, בנגלית, תאילנדית, וייטנאמית, טורקית, פולנית, צ'כית ועוד + +**שפת הפלט של המשימה:** הגדרה עצמאית +- UI בסינית + פלט באנגלית: ✅ +- UI באנגלית + פלט בסינית: ✅ + +**מקרי שימוש:** חוקרים דו‑לשוניים יכולים להשתמש ב‑UI בשפת האם שלהם ובמקביל ליצור הערות באנגלית לפרסום. + +--- + +## PDF ותהליכי עבודה אקדמיים + +### האם אני יכול להשתמש ב-Notemd לקריאת מאמרים/PDF? + +**כן.** תהליך: +1. **המיר PDF ל‑Markdown** באמצעות [MinerU](https://github.com/opendatalab/MinerU) (מומלץ למאמרים אקדמיים) +2. פתחו את קובץ Markdown ב-Obsidian +3. בצעו משימות ב-Notemd: + - **הוסיפו קישורי wiki** למושגים מרכזיים + - **יצרו תזכירי מושגים** למונחים לא מוכרים + - **שלפו את הטקסט המקורי** באמצעות שאלות מותאמות אישית (למשל, "מהן המגבלות?") + - **חקרו רקע** לשיטות/מכלולי נתונים שצוינו + - **תרגמו** את הקטעים הקשים + - **קצרו לדיאגרמה ב‑Mermaid** לצורך הבנה מבנית + +**גרסה 1.9.1+:** שליפת מבנה פרקים עם תמיכה ב‑TOC + +**תוצאה:** קריאת המאמר שלכם הופכת ליצירת ידע ממוקדת וניתנת לקישור בארכיון שלכם. + +--- + +## דיאגרמות וויזואליזציה + +### אילו סוגי גרפים/דיאגרמות יכול Notemd ליצור? + +| סוג | תמיכה | תכונות | +|------|---------|----------| +| **Mermaid** | מלא | תרשימי זרימה, סדר, מחלקות, מצבים, ER, Gantt, תיקון אוטומטי של תחביר, בדיקת לוחות | +| **JSON Canvas** | מלא | עיצובי canvas ייחודיים של Obsidian | +| **Vega-Lite** | מלא | תרשימי נתונים, סדרות זמן, מוטות, פיזור, ניתנים להתאמה | +| **HTML** | פתרון חלופי | עבור סוגי דיאגרמות שאינם תומכים בהם | +| **ניתן לערוך HTML/SVG** | יעד מפורש | Inline עצמאי SVG עם הערות בסגנון Draw.io-style | +| **Draw.io / Drawnix artifacts** | גבולות ייצוא | XML/JSON דטרמיניסטי מתוך `SemanticFigureModel`; אין תלות בזמן ריצה של מערכת עריכה | + +**Mermaid auto-fix:** מצב דיבג עמוק לתיקון: +- חצים שבורים (`-->`, `-.->`, `==>`) +- תוויות ותגובות בלתי תקינות +- שגיאות תחביר בסאבגרף +- סימון צורות (`[`, `(`, `{`, `((`) +- תווי צינור בתוויות +- קבצי הערה + +**תהליך עבודה:** +1. הפעל את "Summarize as Mermaid diagram" על הערה +2. תצוגת מראה בחלון מודל +3. ייצוא כ-SVG או PNG +4. או שמרו כקובץ `.mmd` ב‑vault + +--- + +## מקור פתוח וקהילה + +### האם Notemd הוא בחינם ובמקור פתוח? + +**כן.** +- **רישיון:** MIT (נוח, מותר שימוש מסחרי) +- **קוד המקור:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **אין רמות תשלום, אין נעילה בענן, אין מעקב** +- **קהילה:** 234+ כוכבים ב‑GitHub, Discord פעיל + +**אתם הבעלים של:** +- הנתונים שלכם (נשארים ב‑vault שלכם) +- הזרימות שלכם (התאמת הוראות, מודלים, שרשראות) +- הפרטיות שלכם (תמיכה מקומית ב‑LLM) + +**תרומה:** ברוכים הבאים לבקשות Pull request. ראו [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +## פתרון בעיות + +### השיחות שלי ב‑LLM נכשלות. מה עליי לבדוק? + +1. **האם המפתח API תקין?** בדקו ב‑Settings → Provider Configuration +2. **האם שם המודל נכון?** השתמשו בכפתור "获取模型列表" (Get Model List) בהגדרות +3. **האם ניתן לגשת לרשת?** חלק מהספקים דורשים VPN +4. **מגבלות קצב?** בדקו את לוח הבקרה של הספק +5. **אבחון:** הפעילו "בדיקת חיבור" בהגדרות כדי לקבל יומני שגיאות מפורטים + +### Notemd איטי. איך אני יכול להאיץ אותו? + +1. **השתמשו במודלים מהירים יותר:** DeepSeek, Gemini Flash, GPT-4o-mini +2. **הקטינו את גודל החתיכה:** הגדרות → Smart Chunking → הפחיתו את מספר המילים +3. **עיבוד מקביל:** הגדרות → עיבוד בלוחות → הגדילו את המקביליות +4. **מודלים מקומיים:** Ollama למשימות שאינן דורשות חיפוש ברשת + +### האם Notemd יכול לעבוד 100% ללא אינטרנט? + +**כן, עם Ollama.** בלי מפתח API, בלי אינטרנט, אין נתונים שיוצאים מהמחשב שלכם: + +1. התקינו [Ollama](https://ollama.com) והפעילו את `ollama serve` +2. בהגדרות של Notemd, בחרו **Ollama** כספק שלכם +3. הורידו מודל: `ollama pull llama3` (או qwen2.5, gemma2 וכו') +4. כל התכונות עובדות: קישורי wiki, רשימות רעיונות, תרגום, דיאגרמות + +**מחקר DuckDuckGo** עובד גם בלי מפתח API (איכות ניסיונית). + +עם ספקי ענן (OpenAI, Anthropic, Google, DeepSeek וכו'), תוכן ההערות שלכם נשלח כקלט API. בדקו את מדיניות הפרטיות של כל ספק לגבי פרטי העיבוד. + +### האם הנתונים שלי נשלחים לענן? + +**זה תלוי בספק שלך:** + +| סוג הספק | הנתונים נשלחים לענן? | הערות | +|--------------|---------------------|-------| +| **Ollama (מקומי)** | לא | הכל נשאר במחשב שלך | +| **LMStudio (מקומי)** | לא | זהה ל-Ollama | +| **DeepSeek, OpenAI, וכו'** | כן | תוכן ההערה נשלח כקלט API לעיבוד | +| **OpenRouter, AIHubMix** | כן | שער גישה שמפנה לספקי ענן | + +Notemd עצמו אינו אוסף **שום נתוני טלמטריה, שום נתוני אנליטיקה, שום נתוני משתמש**. הפלגין הוא מקור פתוח לחלוטין (MIT). הנתונים היחידים שיוצאים מהמחשב שלך הם אלו שאתה שולח באופן מפורש לספק LLM שהוגדר אצלך. + +### איזה פלגין AI של Obsidian הוא הטוב ביותר למחקר? + +זה תלוי בתהליך המחקר שלך: + +| צורך | פלגין | מדוע | +|------|--------|-----| +| מציאת מאמרים/רשימות רלוונטיות | Smart Connections | גילוי דמיון סמנטי | +| שיחה על המקורות שלך | Copilot | שיחה עם הקשר של האוצר | +| קישור אוטומטי בין רעיונות + יצירת רשימות | **Notemd** | ה-AI מזהה רעיונות, מוסיף קישורים, יוצר רשימות | +| מחקר באינטרנט + סיכום לרשימות | **Notemd** | Tavily/DuckDuckGo חיפוש → LLM סיכום → מוסף לרשימת ההערות | +| יצירת תרשימים ממחקרים | **Notemd** | Mermaid/Canvas/Vega-Lite מתוך תוכן ההערות | + +**שילוב מומלץ:** Smart Connections (גילוי) + Notemd (מבנה) + Copilot (דיון). + +--- + +## קבלת עזרה + +- **מדריך:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **בעיות ב‑GitHub:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **ספונסר:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/he/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/he/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..b6a6e6a7 --- /dev/null +++ b/website/i18n/he/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "הערות רעיוניות" +description: "ליצור ולנהל הערות רעיוניות — הערות עצמאיות לרעיונות מרכזיים שנלקחו מהארכיון שלך" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# הערות רעיוניות + +<TLDR> +**Notemd מוציא את הרעיונות המרכזיים מההערות שלך ויוצר קבצי הערת רעיון עצמאיים.** הLLM מזהה מושגים בסיסיים, יוצר קובץ `.md` אחד לכל רעיון בתיקייה שניתן להגדיר, ובאופציונלי מוסיף קישורים חזרה להערה המקורית. הוא תומך בדיכוי שמות נרדפים, בבחירת מודל לכל משימה, בניקוי שמות הקבצים, ובמנוע הסרת חזרות ב-4 שלבים. זהו חלק מה[Obsidian מדריך ניהול הידע של AI](/docs/pillar-ai-knowledge). +</TLDR> + +## סקירה + +הערות רעיוניות הן אבני הבניין של בסיס ידע מחובר. כאשר אתה מעבד הערה, Notemd: + +1. **שולח את הטקסט שלך ל-LLM** עם בקשת חילוץ מובנית +2. **מפרק את שורות `CONCEPT:`** מהתגובה של LLM +3. **יוצר קובץ `.md` אחד לכל רעיון** בתיקייה המיועדת +4. **מוסיף קישורים חזרה** להערה המקורית (כאשר זה מאופשר) + +## אופן הפעולה + +### מערכת החילוץ + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### בקשת החילוץ + +ה-LLM מקבל בקשה שמורה לו לבצע את הדברים הבאים: + +- לחלץ **שמות עצם או ביטויי שם עצם** שהם מרכזיים לנושא המסמך +- **לתת עדיפות לדיוק** — "Dielectric Relaxation" על פני "Relaxation" +- **לנורמליזציה לצורה יחידה** — "models" הופך ל‑"model" +- **לדכא רעיונות משניים** — אם מופיע "dielectric relaxation", אל תחלץ גם את "relaxation" +- **לדלג** על סעיפי ההפניות/ביבליוגרפיה, שמות עצם רגילים, שמות חברות/מוצרים +- להפיק מושג אחד בכל שורה כ-`CONCEPT: Term Name` + +**דיכוי נרדפים** (אופציונלי): להוסיף בתחילת ההוראה "להימנע משליפת נרדפים, מושגים עיקריים דומים מבחינה סמנטית, או מילות מפתח ככל האפשר". + +**תחום למידה ממוקד** (אופציונלי): להוסיף `Relevant Fields: [domain]` בתחילה כדי להגביל את השליפה לתחום מסוים. + +**החלפת שפה** (אופציונלי): להוסיף בסוף "המושגים המופקים חייבים להיות ב-[שפה]." + +### חלוקה לחתיכות + +הערות ארוכות מחולקות על ידי `settings.chunkWordCount`. כל חתיכה נשלחת בנפרד. המושגים מכל החתיכות מצטברים ב-`Set` — עותקים מחתיכות שונות נמחקים בשקט. שגיאות LLM בחתיכות בודדות אינן גורמות לביטול הפעולה. + +## יצירת תזכיר מושגים + +### כללי שמות קבצים + +| כלל | התנהגות | +|------|----------| +| קווים תחתיים/חסרונות | מוחלפים ברווחים | +| תווים מיוחדים | נמחקים: סימן לולאה אחורי, סימן לולאה קדמי, סימן קולון, כוכבית, שאלה, מרכאות, סוגריים זוויתיים, צינור, סימן חתיכה, סימן קרט, סוגריים | +| רווחים | מצומצמים ומנוקדים | +| אורך מרבי | 100 תווים (מקוצרים + מנוקדים שוב) | +| תוצאה ריקה/עם נקודות בלבד | מושמט בשקט | + +דוגמה: `A-B: Key*Term` הופך ל- `A B KeyTerm.md` + +### תבניות + +**תבנית מלאה** (קישורי החזר מאופשרים, תבנית מינימלית כיבויה): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**תבנית מינימלית** (כאשר `extractConceptsMinimalTemplate: true`): + +```markdown +# Concept Name +``` + +### עדכון הערות קיימות + +כאשר קובץ הרעיון כבר קיים: + +1. אם קישורי החזר מאופשרים וההערה המקורית עדיין לא מופיעה, הוסף קישור החזר +2. אם יש סעיף `## Linked From`, הכנס אותו לפני כותרת `##` הבאה +3. אם אין `## Linked From`, הוסף את הסעיף בסוף +4. קישורי החזר חוזרים נבדקים ומושמטים + +### הגדרה + +| ערך | ברירת מחדל | השפעה | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | מתג הראשי. כיבוי = אין יצירת הערות | +| `conceptNoteFolder` | `''` (מושבת) | שביל התיקייה לפתקי רעיונות | +| `extractConceptsMinimalTemplate` | `true` | פתקים עם רק שם (ללא Linked From) | +| `extractConceptsAddBacklink` | `false` | הוספת בקישורים חוזרים במהלך חילוץ עצמאי | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | LLM לכל משימה לחילוץ רעיונות | +| `extractConceptsLanguage` | `'en'` | שפת הפלט לשמות הרעיונות | +| `replaceSynonymsDuringConceptExtraction` | `false` | הפעלת דיכוי שמות נרדפים בהוראה | +| `generateConceptLogFile` | `false` | כתוב `.log` רשימה של הרעיונות שנוצרו | + +**חשוב:** ההגדרות `extractConceptsAddBacklink` ו- `extractConceptsMinimalTemplate` משפיעות רק על **הפקודה המיוחדת לחילוץ**. הפקודה "הוסף קישורים" תמיד יוצרת פתקים בטמפלט מלא עם בקישורים חוזרים. + +## דה-דופליקציה + +הפקודה לדה-דופליקציה (`Notemd: Check & remove duplicate concept notes`) מבצעת ניתוח ב-5 שלבים: + +### שלב 1: התאמה מדויקת של שם הקובץ + +השוואה לא רגישה להבדלי גדוליות של שם הקובץ בטווח המוגדר. + +### שלב 2: זיהוי צורת הרבים + +הסרת סיומות: `-ies` ל- `-y`, `-es` מוסר, `-s` מוסר. השוואה של הצורה היחידה עם קבצי הטווח. אינה מטפלת ברבים לא סדירים (children/child). + +### שלב 3: נורמליזציה של סימנים + +חל על: `toLowerCase()`, החלף קווים-תחתיות ברווח, הסר תווים שאינם אלפאנומריים, אחדות של רווחים. הערכים שמתאימים באופן זהה מסומנים. + +### שלב 4: הכללה של מילה בודדת + +נעשית בדיקה של רשימות רעיונות בודדות לעומת שמות קבצי היקף רבי-מילים. הפעולה אינה מתבצעת כאשר ההיקף הוא `concept_folder_only`. + +### שלב 5: אישור ומחיקה + +כל המועמדים מוצגים בחלון אישור. הפריטים שאושרו מועברים לפח האשפה של המערכת. ניתן לבטל את הפעולה בין כל מחיקה. + +### מצבי היקף + +| מצב | נשווים לגבי | +|------|-------------------| +| `vault` (ברירת מחדל) | כל קבצי האוצר `.md` למעט תיקיית הרעיונות | +| `concept_folder_only` | רשימות רעיונות אחרות בתוך התיקייה | +| `include` | קבצים בתיקיות מסוימות שנמצאות ברשימה | +| `exclude` | כל קבצי האוצר למעט תיקיית הרעיונות + התיקיות שנמצאות ברשימה | + +## שימוש + +### שליפת רעיונות (עצמאי) + +1. פתח רשימת רעיונות +2. הפעל **"Notemd: שליפת רעיונות"** מתפריט הפקודות +3. רשימות רעיונות נוצרות בתיקייה שנקבעה + +### שליפה + יצירת תוכן + +**"Notemd: שליפת רעיונות ויצירת כותרות"** — שולף רעיונות, ולאחר מכן מריץ את הפקודה "Generate from Title" על כל הרשימות בתיקיית הרעיונות. זה יוצר תוכן ל**כל** הרשימות בתיקייה, ולא רק לאלו שנוצרו לאחרונה. + +### יצירת קישור ויקי מהבחירה + +1. הדגשת טקסט במערכת העריכה +2. הרצת **"Notemd: יצירת קישור ויקי מהבחירה"** +3. הטקסט מוקף ב-`[[...]]` ונוצרת רשימת רעיונות + +## טיפים + +- **יש להגדיר תחילה את תיקיית הרעיונות** — בלעדיה לא ייצרו רשימות. אם היא לא מוגדרת, יופיע חלון אזהרה. +- **השתמשו במודלים למשימה ספציפית** — שליפת רעיונות מתבצעת היטב עם מודלים זולים יותר (GPT-4o-mini, DeepSeek). שמרו את המודלים היקרים למחקר/תרגום. +- **הפעילו דיכוי שמות נרדפים** בתחומים טכניים שבהם מספר מושגים מתייחסים לאותו רעיון. +- **בצעו דה-דופליקציה באופן קבוע** — הריצו את פקודת הדה-דופליקציה לאחר עיבוד בלוקים כדי לזהות רשימות דומות. +- **קובץ הלוג מוחלף** בכל הרצה, ולא מתווסף אליו. העתיקו אותו אם אתם זקוקים לתוצאות קודמות. + +--- + +## צעדים באופק + +- [Wiki-Links](./wiki-links) — כיצד רעיונות מקושרים בתוך הטקסט +- [Diagrams](./diagrams) — ויזואליזציה של יחסי רעיונות +- [Workflows](./workflows) — שילוב של שליפת רעיונות עם משימות אחרות diff --git a/website/i18n/he/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/he/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..3c2f8608 --- /dev/null +++ b/website/i18n/he/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "תרשימים" +description: "ליצור Mermaid, JSON Canvas, Vega-Lite, HTML, קבצי תרשים ניתנים לעריכה, ותרשימים circuitikz מוגבלים בעתיד מההערות שלך באמצעות ארכיטקטורה שמתחילה במפרט" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# תרשימים + +<TLDR> +**Notemd יוצר תרשימים מההערות שלך דרך תהליך שמתחיל במפרט.** הLLM מייצר `DiagramSpec` JSON שאינו תלוי בממשק ההצגה, ולאחר מכן מתאמים מיוחדים ממירים אותו ל-Mermaid, JSON Canvas, Vega-Lite, HTML, או לפלט HTML/SVG ניתן לעריכה. הוא תומך ב‑8 סוגי כוונות, שרשראות חלופיות אוטומטיות, תצוגה בזמן אמת עם ייצוא SVG/PNG, בדיקה סמנטית, ויצירה מוגברת באמצעות ידע מקומי. +</TLDR> + +זהו חלק מה[Obsidian מדריך ניהול ידע AI](/docs/pillar-ai-knowledge). + +## ארכיטקטורה: תהליך שמתחיל במפרט + +Notemd אף פעם לא מבקש מהLLM לייצר תחביר Mermaid/Vega/Canvas ישירות. במקום זאת: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**למה שמתחילים במפרט?** הLLM מייצרים לעתים קרובות תחביר לא תקין לממשק ההצגה (במיוחד Mermaid). מפרט מובנה ניתן לאימות לפני ההצגה, ואותו מפרט יכול לשמש מספר ממשקי הצגה כחלופות. + +## סוגי תרשימים תומכים + +| כוונה | ממשק הצגה ראשי | חלופות | מקרי שימוש | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | פירוק נושאים היררכי | +| `flowchart` | Mermaid | HTML | תהליכים, עצי החלטה | +| `sequence` | Mermaid | HTML | אינטראקציות לקוח‑שרת, פרוטוקולים | +| `classDiagram` | Mermaid | HTML | יחסי מחלקות OOP | +| `erDiagram` | Mermaid | HTML | תצורות בסיסי נתונים, יחסי ישויות | +| `stateDiagram` | Mermaid | HTML | מכונות מצב, מודלים של מחזור חיים | +| `canvasMap` | JSON Canvas | Mermaid → HTML | מפות רעיונות, גרפי ידע | +| `dataChart` | Vega-Lite | Mermaid → HTML | מקלעת, קו, שטח, פיזור, עוגה, טבלאות | + +## זיהוי כוונה + +Notemd מסיק את סוג הדיאגרמה הטוב ביותר מתוכן ההערה שלך באמצעות דירוג מילות מפתח: + +| כוונה | גורמי הפעלה | ביטחון | +|--------|----------|------------| +| `dataChart` | טבלאות, תאים מספריים, מילות מפתח של מדדים/מגמות, אחוזים | 0.88 | +| `sequence` | אוצר מילים של בקשה/תגובה (4+ התאמות) או סימני `->`/`=>` | 0.82 | +| `erDiagram` | מפתח ראשי, מפתח זר, ישות, תצורה (2+ התאמות) | 0.80 | +| `stateDiagram` | מצב, מעבר, בהמתנה, פועל, כשל (3+ התאמות) | 0.76 | +| `flowchart` | שלבים ממוספרים (2+) או אוצר מילים של if/then/else/workflow | 0.74 | +| `canvasMap` | מפת רעיונות, גרף ידע, מרחבי, קבוצות | 0.72 | +| `mindmap` | אפשרות חלופית ברירת מחדל | 0.55 | + +החליפו באמצעות הגדרת **סוג הדיאגרמה המועדף**, בחירת הסיידבר הצדדי, או אפשרות מפלטת הפקודות המפורשת. + +## בחירת יעד ההצגה + +הצינור הניסיוני שמתחיל במפרט כולל כעת שתי בקרות עצמאיות: + +| בקרה | ערך | השפעה | +|---------|---------|--------| +| סוג הדיאגרמה המועדף | `preferredDiagramIntent` | מנחה את הצורה הסמנטית של ה`DiagramSpec` המופק | +| יעד ההצגה המועדף | `preferredDiagramRenderTarget` | בוחר את ממשק ההצגה של המוצר עבור **Generate diagram** ו-**Preview diagram** | + +הגדירו **יעד ההצגה המועדף** ל-**Auto** כברירת מחדל של התכנון, או בחרו באופן מפורש Mermaid, JSON Canvas, Vega-Lite, HTML, או Editable HTML/SVG. ההחלפה תקפה רק לפקודות של מוצרים ותצוגות מבט. הפקודה הסטנדרטית **Summarise as Mermaid diagram** נשארת מחוברת לפלט תואם Mermaid כך שתהליכי Markdown קיימים לא ישנו את הפורמט באופן אוטומטי. + +ההפרדה הזו חשובה מכיוון שכעת ניתן להציג כוונה של `flowchart` כ-Mermaid לתגיתות Markdown, כ-HTML כאפשרות חלופית אמינה, או כ-Editable HTML/SVG לעריכה מאוחרת. Draw.io ו-Drawnix נשארים כיוצאי מוצרים של CLI ולא כיעדי הצגה בתוך התוסף. + +## שימוש + +### יצירת דיאגרמה + +1. פתח רשימת רעיונות +2. הריצו **"Notemd: Generate diagram"** ממפלטת הפקודות +3. Notemd מזהה את הכוונה, מייצר מפרט, מציג ושומר את המוצר + +**קבצי פלט לפי יעד:** + +| טארגט | הרחבה | תבנית שם הקובץ | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| ניתן לערוך HTML/SVG | `.html` | `{note}_diagram.html` | + +### להציג תרשים בפריוויו + +1. להריץ **"Notemd: Preview diagram"** +2. מודל חלוני נפתח עם התרשים המוצג +3. לייצא כ- SVG או PNG באמצעות כפתורי לוח הבקרה + +**פתיחה אוטומטית של פריוויו** זמינה בהגדרות — לאחר הייצור, מודל הפריוויו נפתח אוטומטית. + +מודל הפריוויו כולל גם פאנל אבחון של חפצים. מעבדים ובדיקות עשן יכולים להוסיף `RenderArtifact.diagnostics`; המודל מציג סיכום אבחון עם מספרי שגיאות/אזהרות/מידע, ולאחר מכן רמת חומרה, סוג אבחון, הודעה ועצות לתיקון ליד הפריוויו. אותו סיכום מוצג גם ברשומות היסטוריית הפריוויו, כך שניתן להשוות ניסיונות עשן circuitikz חוזרים מבלי לפתוח כל רשומה. עבור חפצים שיש להם תוכן מקור אך אינם ניתנים להצגה בתוך הטקסט או דרך מסלול ה-iframe HTML, המודל עובר כעת לפריוויו של תוכן מקור בלבד במקום לאלץ שימוש ב-iframe ריק. זה מאפשר בדיקות עשן של קומפילציה/הצגה circuitikz, בדיקות טוקנים טקסטואליים SVG, בדיקות סקריןשוט ריק של PNG, ודיווחי חפיפה עתידיים להציג שטח נראה UI מבלי להפוך את TikZJax או LaTeX לתלות ריאלטיים קשה של פלגין או להעמיד פנים שהטקסט המקורי הוא הצגה ויזואלית מאומתת. + +### מוד **Mermaid** מיושן + +כאשר `enableExperimentalDiagramPipeline` כבוי, Notemd שולח בקשה ישירה Mermaid ל- LLM. זה עוקף לחלוטין את מערך המפרט. אם מערך הניסויים נכשל, הוא חוזר למוד זה. + +## מאחורי הקלעים של ההצגה + +### Mermaid + +6 מתאמים (מפה של מחשבות, תרשים זרימה, סדרה, ER, כיתה, מצב) מתרגמים `DiagramSpec` לתחביר Mermaid. לאחר הייצור, `mermaid.parse()` מאשר את הפלט. אם האימות נכשל: + +1. **ניסיון LLM חוזר** — ניסיון אחד עם הודעת השגיאה של Mermaid כהקשר +2. **חזרה מינימלית** — תרשים Mermaid בסיסי ממזהים צמתי המפרט + +**Legacy Mermaid Fixer** מתקן אוטומטית שגיאות תחביר LLM נפוצות: נורמליזציה של הנחיות note, בריחה של pipe-label, סידור מחדש של פסיקים, ציטוטים חכמים, חצים עם קו כפול, אי‑התאמות בצורה, ועוד. + +### JSON Canvas + +יוצרת פורמט Obsidian JSON Canvas עם תצורה מרחבית: +- הצמתים ממוקמים לפי עומק (x = עומק × 420) ולפי אינדקס (y = אינדקס × 170) +- הרוחב מוערך לפי אורך התווית +- קשתות עם `fromSide: 'right'`, `toSide: 'left'`, `toEnd: 'arrow'` + +### Vega-Lite + +יוצרת מפרטים מלאים של Vega-Lite v5 JSON עם קידוד אוטומטי: +- **גרפים קרטזיים** (מוט/קו/שטח/נקודה/פיזור): ערוצי x + y + צבע למספר סדרות +- **פאי**: theta = y (כמותי), צבע = x (נומינלי) +- **טבלה**: שורה = x, טקסט = y + עמודה = סדרה + +תיקוני נושא כהה ובהיר מומסים לעומק לפני הקומפילציה. + +### HTML + +פתרון חלופי אוניברסלי. מסמך HTML עצמאי עם: +- ראשי תיבות CSP +- מצב בהיר/כהה דרך `prefers-color-scheme` +- תוויות UI מקומיות ל‑20 שפות +- סעיפים: hero, מבנה (עץ צמתים), יחסים, הערות, טבלאות סדרות נתונים + +### HTML/SVG ניתנים לעריכה + +יעד מספרי מפורש לתהליכי ייצוא שניתן לערוך. הוא מתרגם את `DiagramSpec` ל-`SemanticFigureModel` דטרמיניסטי, ואז מציג מסמך HTML עצמאי עם קבוצות SVG בתוך הטקסט שמכילות הערות בסגנון Draw.io: + +- `data-drawio-type`, `data-drawio-id`, ו-`data-drawio-role` על קשרים סמנטיים +- `data-drawio-source` ו-`data-drawio-target` על קצוות סמנטיים +- זהויות יציבות של קשרים/קצוות לאחר נורמליזציה של רווחים וטיפול בהתנגשויות +- אין סקריפטים, אין פונטים חיצוניים, ואין נכסים מרחוק + +יעד זה לא הוא באופן מכוון המסלול הברירתי של התכנון כרגע. הוא זמין כיעד תצוגה מפורש בזמן שמסלול המוצר מוכיח התנהגות עריכה בכלים אמיתיים. + +### Draw.io ו-Drawnix גבולות ייצוא + +היישום הנוכחי שומר על תמיכה במערכות עריכה של צד שלישי בגבול המוצר: + +| יעד | חוזה | תלות בזמן ריצה | +|--------|----------|--------------------| +| Draw.io | `mxfile` XML לא מנוחזר באופן דטרמיניסטי מ-`SemanticFigureModel` | שום דבר בזמן ריצת הפלגין או ב- CI | +| Drawnix | תת‑קבוצה מינימלית של `.drawnix` JSON המשתמשת באלמנטים `geometry` ו-`arrow-line` | שום דבר בזמן ריצת הפלגין או ב- CI | + +הפשרה היא מכוונת: Notemd יכול לבדוק תוויות גלויות, זהויות יציבות, וכיסוי של פרימיטיבים תומכים מבלי לשלב את Diagram.net Desktop, Drawnix, Plait, או מצב מערכת של מערכת עריכה שמותקנת רק בדפדפן לתוך הפלגין. + +### circuitikz / TikZJax כיוון + +תרשימי מעגלים אינם אותה בעיה כמו תרשימי זרימה כלליים. התחביר הנכון למעגלים חשמליים הוא בדרך כלל **circuitikz**, המוצג ב‑Obsidian באמצעות תוספים כמו TikZJax. TikZJax יכול לטעון חבילות כמו `circuitikz`, `pgfplots`, `tikz-cd` ו‑`chemfig`, מה שהופך אותו לאטרקטיבי לתזכירים בפיזיקה, מעגלים, כימיה ומתמטיקה. + +הסיכון הוא ש‑TikZ שנוצר ישירות מ‑LLM הוא שביר: + +- טופולוגיה מורכבת של מעגלים יכולה להיות נכונה מבחינה חשמלית אך בלתי קריאה מבחינה ויזואלית; +- חוטים ותוויות מתחרים יכולים להפוך רשימת רשת נכונה לבלתי ניתנת לשימוש בתזכירי לימוד; +- חסרון של הקדמות חבילה, יישורים לא נכונים או שמות רכיבים בלתי תקינים יכול למנוע ייצוג; +- המשוב מהממחיש הוא בדרך כלל ברמת התמונה, בעוד ש‑LLM מייצר גאומטריה ברמת הטקסט. + +הארכיטקטורה הטובה יותר היא להתייחס ל‑circuitikz כיעד תרשים מוגבל, ולא כהוראה בצורה חופשית: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +המודל מהדרגה הראשונה צריך לתאר את הטופולוגיה של המעגל ואת ההסדר בנפרד: + +| שכבה | אחריות | דוגמה | +|-------|----------------|---------| +| טופולוגיה | צמתים חשמליים וחיבורי רכיבים | `VDD -> RD -> drain(M1)`, `source(M1) -> GND` | +| הסדר | מיקום ברשת, כיוון, מסלולי הולכה | `M1 at (3,2.2)`, קלט שמאלי, פלט ימני | +| סגנון | חבילה, נורמה של מתח, תוויות, יציבות | `\begin{circuitikz}[american voltages]` | +| אימות | יומן קומפילציה, יציבות חסרות, בדיקות חפיפה/תמונת מסך | TikZJax/אבחוני LaTeX בתוספת בדיקה ויזואלית | + +### פרוטוטייפ circuitikz הנוכחי + +Notemd כולל כעת את פרוטוטייפ המאגר המוגבל הראשון לכיוון זה. הוא מכוון באופן מכוון להיות לא מחובר לרשת ומוגבל על ידי תבנית: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +הפרוטוטייפ מוסיף גבול `CircuitSpec` נפרד ומייצא דטרמיניסטי עבור שש משפחות של התייחסויות זהב: + +| סוג מעגל | התייחסות זהב | הבטחת מתח | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | מאשר `VDD -> R_D -> M1.D`, `vin -> M1.G`, `M1.S -> GND`, ו-`M1.D -> vout` לפני כתיבת LaTeX | +| `cmos-inverter` | `cmos-inverter-v1` | מאשר טופולוגיה PMOS-over-NMOS, קלט של שער משותף, פלט של דריין משותף, `VDD -> MP.S`, ו-`MN.S -> GND` לפני כתיבת LaTeX | +| `cmos-buffer` | `cmos-buffer-v1` | מאשר שתי שלבי אינוורטר מקבילים, צומת ביניים `vmid`, `vout` משוחזר, ומסילות VDD/GND משותפות לפני כתיבת LaTeX | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | מאשר מכשירי מעבר PMOS/NMOS מקבילים בין `vin` ל-`vout` עם בקרות `phib` / `phi` משלימות לפני כתיבת LaTeX | +| `cmos-nand2` | `cmos-nand2-v1` | בודק את ההרמה המקבילה של PMOS, ההורדה החוזרת של NMOS, שני הקלטים `va` / `vb`, ואת `vout` לפני כתיבת LaTeX | +| `cmos-nor2` | `cmos-nor2-v1` | בודק את ההרמה החוזרת של PMOS בסדרה, ההורדה המקבילה של NMOS, שני הקלטים `va` / `vb`, ואת `vout` לפני כתיבת LaTeX | + +זה עדיין אינו מוצר TikZ כללי. הוא אינו מקמץ LaTeX, אינו מקרא TikZJax, אינו בודק תמונות מסך, ואינו מבצע תיקון אוטומטי של תמונות. אלו יהיו שלבים בעתיד. + +הפקודה Preview diagram יכולה לפתוח מחדש ישירות את קבצי המקור circuitikz השמורים כאשר סיומת הקובץ היא `.tex` או `.tikz` והמקור מכיל `\usepackage{circuitikz}` או `\begin{circuitikz}`. שיטה זו היא תצוגת מקור בלבד circuitikz: החלון המודאלי מציג את המקור, את האבחונים, את שליטות ההעתקה/שמירה, ואת מטא-דאטה ההיסטוריה, אך הוא אינו מקמץ LaTeX או מקרא TikZJax בזמן פעולת הפלגין. + +גבולות תצוגת המקור בלבד כוללים כעת גם את הקבצים Draw.io ו-Drawnix השמורים. קבצי `.drawio` מתקבלים כאשר הם נראים כמו Draw.io XML (`mxfile` או `mxGraphModel`), וקבצי `.drawnix` מתקבלים כאשר הם Drawnix JSON עם `type: "drawnix"` ומערך `elements`. הפלגין עדיין אינו משלב diagrams.net או את מארח הלוח הלבן Drawnix; תצוגות אלו מציגות את המקור, את האבחונים, ואת היסטוריית הקבצים מבלי לטעון למערכת עריכה ויזואלית בתוך הפלגין. + +לצורך תיקון ששומר על הטופולוגיה, יש למסור את המפרט שלפני התיקון כהתייחסות לפני קבלת מועמד מתוקן: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +מנגנון ההגנה בתיקון משתמש ב-`createCircuitTopologySignature` ו-`assertCircuitTopologyUnchanged` כדי להשוות את `circuitKind`, `goldenReferenceId`, הרשתות, מזהי/סוג/טרמינלים של הרכיבים, וקצוות החיבור הלא מכוונים לפני הפקת התוצאה. תוויות, טקסט הכותרת, הערות עיצוב, סדר החיבור, ותוויות החיבור מתעלמים מהם בכוונה. מועמד שמוסיף חלק קצר או מחבר מחדש טרמינל נכשל עם `Circuit topology drift detected` לפני שהקובץ `.tex` נכתב. + +ה-CLI יכול כעת לפרסם לוג של קימוץ LaTeX/TikZJax קיים מבלי להריץ מקמץ: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +שביל האבחון הזה מדווח על חבילות חסרות כמו `circuitikz.sty`, מפתחות TikZ/circuitikz לא ידועים, שגיאות בתחביר השביל של TikZ כמו חסר פסיקים, ארגומנטים מופרזים מסוגריים לא מאוזנים או תוויות לא סגורות, רצפי בקרה לא מוגדרים, שגיאות LaTeX כלליות, עצירות חירום, ואזהרות על מלאות יתר של `\hbox`. זה עדיין מבוסס לוג: ביצוע מקומי של LaTeX/TikZJax ושלבי איכות תמונת מסך הם עדיין עבודה עתידית נפרדת. + +לצורך בדיקות עשן למתחזקים, אותו CLI יכול באופציונלי להריץ ממרה שנקבעה באופן מפורש מבלי לפרסם פקודות שרת: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +מרץ הקימוץ משתמש ב-`shell: false`, מרחיב את `{tex}`, `{outputDir}`, ואת המקומות `{jobName}` לערכי מערך ארגומנטים, קורא את ה-`{jobName}.log` שנוצר, ומחזיר `compileExecution` יחד עם `compileDiagnostics` בפלט CLI JSON. `--compile-executable` הוא רק שביל הבינארי של הממרה או שביל העטיפה; סימני ממרה צריכים להיות בערכים חוזרים של `--compile-arg`. קבצי ביצוע ריקים נכשלים כ-`compile-executable-invalid`, קבצי בינארי חסרים נכשלים כ-`compile-executable-not-found`, ושרשראות קובץ ביצוע בצורת פקודת שרת מקבלות המלצה לחלק את הארגומנטים כך ש-Windows, Linux, ו-macos יפעלו לפי אותו חוזה ביצוע ישיר. עם `--expected-artifact`, הוא גם מדווח על `compileExecution.renderSmoke` ונכשל ב-CLI אם הממרה אינה יוצרת קובץ לא ריק. הוא עדיין אינו משלב LaTeX, אינו הופך את TikZJax לתלות בזמן פעולת הפלגין, ואינו מבצע תיקון ויזואלי ברמת תמונת מסך. + +אם הקובץ הצפוי הוא `.svg`, בדיקת העשן חודרת שכבה נוספת: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +בדיקת העשן SVG מאמתת את השורש `<svg>`, ממדים חיוביים או `viewBox`, לפחות רכיב ציור נראה אחרי הדרה של רכיבים נסתרים/שקופים, כל טוקני טקסט מבוקשים, רכיבים ברורים מחוץ ל-`viewBox`, תוויות `<text>` / `<tspan>` ממוקמות החופפות באופן ברור, ותוויות טקסט ברורות החופפות רכיבי ציור דרך `render-svg-label-overlap`. הטקסט הצפוי נחפש בטקסט הנראה ומפוענח מטא-דאטה של נגישות כמו `aria-label`, `<title>`, ו-`<desc>`, כך שממרים ששומרים על תוויות סמנטיות מחוץ ל-`<text>` עדיין יכולים לעמוד בבדיקת טוקני טקסט ללא צורך ב-OCR. שלב הגאומטריה הוא כעת גאומטריה מודעת לטרנספורמציות עבור תכונות קבוצה ורכיב נפוצות `transform`, כך שתיבות SVG מתורגמות, מוגדלות, מסובבות, מעוותות, או מוטרנספורמות במטריצה נבדקות לאחר הרכבת הטרנספורמציות. הוא כולל גבולות מדויקים של קשתות A/a, גבולות מדויקים של עקומות Bezier C/S/Q/T, גבולות SVG מודעים לעובי הקו ובדיקות חפיפת תוויות, גאומטריה של ציור `polyline` / `polygon`, וגם פתרון מיקום גליפים רק של שבילים מתוך התייחסויות `<use href="#...">` כך שתוויות שהומרו למסלולי גליפים ניתנים לשימוש עדיין יכולות להיכשל בבדיקות של לוח גבולות כאשר גאומטריית הגליפ הממוקם חורגת מה-`viewBox`. מספר תוויות `tspan` ממוקמות תחת הורה אחד `<text>` מושוות כתיבות תווית נפרדות, מה שתופס פלט בסגנון LaTeX SVG שאחרת היה מאחד תוויות שונות לקובץ טקסט אחד. תיבות SVG `text` ו-`tspan` ממוקמות מכבדות את הערכים `start`, `middle`, ו-`end`, כך שתוויות ממוקמות במרכז ומימין יכולות לגרום לאבחוני חפיפה של טקסט/תווית מול ציור מבלי לדרוש עיצוב טקסט ברמת מנוע החיפוש. מסלולי גליפים שהם רק הגדרה נמצאים בתוך `<defs>` אינם נחשבים כרכיבי ציור נראים, אך התכונות `transform` המקומיות שלהם מיושמות לפני המיקום `<use>` כך שהגדרות גליפים מוגדלות או משתקפות אינן נמנות בטעות. בדיקת תווית-מול-ציור משתמשת בסובלנות קטנה של תיבת ציור וב-`stroke-width` המצוין, כך שחוטים דקים, חוטים עבים, וקווי מתאר של רכיבים פוליגונליים יכולים להיחשב ככישלונות אפשריים בקריאות תווית כאשר הקו הנראה שלהם מגיע לתווית. תוויות גליפים רק של שבילים שנפתרו מ-`<use href="#...">` מושוות גם הן לתיבות ציור ונכשלות עם `render-svg-path-glyph-overlap` כאשר גאומטריית גליפים ניתנים לשימוש חופפת חוטים או רכיבים. אם ממרה ממירה תוויות לגליפי שביל ניתנים לשימוש במקום `<text>` ניתן לחיפוש ואינה שומרת על מטא-דאטה של נגישות, דוח העשן רושם `pathOnlyGlyphUseCount` ונכשל בטוקן הטקסט המבוקש דרך `render-svg-text-path-only` במקום להעמיד פנים שהתווית פשוט חסרה. כישלונות אחרים מדווחים דרך `render-svg-invalid`, `render-svg-dimension-missing`, `render-svg-no-visible-elements`, `render-svg-text-missing`, `render-svg-out-of-bounds`, `render-svg-text-overlap`, `render-svg-label-overlap`, או `render-svg-path-glyph-overlap`. בדיקות טוקן טקסט וחפיפה צריכות להיחשב רק כבדיקות מבניות לממרים ששומרים על תוויות כטקסט SVG ניתן לחיפוש או מטא-דאטה של נגישות; פלט רק של שבילים SVG עדיין זקוק לשלב מאוחר יותר של תמונת מסך/OCR כדי להוכיח קריאות ויזואליות של תוויות, ובדיקה זו עדיין אינה טוענת לכיסוי מלא של SVG שבילים. + +קבוצות ורכיבים SVG נסתרים נדחים באופן אחיד במהלך ספירת הרכיבים הנראים ואיסוף הגאומטריה. תכונות או סגנון פנימי `display:none`, `visibility:hidden`, `visibility:collapse`, ובכלל `opacity:0` אינם יכולים לגרום לקובץ הממרה הריק לעבור בדיקת פלט נראה. + +הגדרות גליפים רק של שבילים יכולות להיות שבילים ישירים או מכלים מקובצים/סמליים בתוך `<defs>`. שלב העשן מפתר את גאומטריית השביל הילד מתוך `<g id="...">` ו-`<symbol id="...">` לפני המיקום `<use>`, כך שפלט הגליף המעוטף עדיין מזין את `pathOnlyGlyphUseCount`, בדיקות לוח גבולות, ואת `render-svg-path-glyph-overlap`. + +מפרש השביל גם עוקב אחר תחילות של שבילי משנה ומשחזר את הנקודה הנוכחית ב-`Z/z`, כך שפקודות יחסיות לאחר שביל מסוגר ממשיכות מהנקודה הנכונה SVG במקום ליצור אבחונים שגויים של `render-svg-out-of-bounds`. + +העברת הגאומטריה הזהה עוקבת אחר חוקיות מספר SVG למספרים עם נקודה בתחילתם ולסימני חבר, כך שקואורדינטות dvisvgm קומפקטיות כמו `.5`, `-.5` או `+.5` נשארות בצורת מספרים שבריים בבדיקות הגבולות במקום להפוך לגאומטריה שאינה בגבולות או להישמט. + +אם הממר מפיק `.png`, אותו מסלול של תוצר מצופה הופך לסקריןשוט ראשון של smoke: Notemd מפענח קבצי PNG בצבע ממוקד 1/2/4/8-ביט לא מתואמים, קבצי PNG באפור 1/2/4/8/16-ביט, וקבצי PNG באפור-אלפא/RGB/RGBA 8/16-ביט. תמונות בצבע ממוקד ובאפור תת-בייט תומכות בדגימות מאוחסנות; תמונות בצבע ממוקד תומכות גם ב-PLTE ובנתוני tRNS אופציונליים; תמונות אפור/RGB תומכות בדגימות שקופות tRNS. דגימות ישירות 16-ביט מנורמלות לאותו מרחב השוואה RGBA 8-ביט שמשמש את בדיקות ה-smoke. בדיקת smoke מאשרת ממדים חיוביים, רושמת את גבולות הפריימגרונד כ-`foregroundBounds`, רושמת את צפיפות הפריימגרונד בתוך אותו מסגרת כ-`foregroundDensity`, נכשלת עם `render-png-blank` כאשר כל פיקסל גלוי תואם את צבע הרקע בפינה העליונה-שמאלית, נכשלת עם `render-png-content-clipped` כאשר תוכן הפריימגרונד נוגע בגבול התמונה, נכשלת עם `render-png-foreground-too-small` כאשר סקריןשוט גדול כולל פחות מארבעה פיקסלי פריימגרונד, ונכשלת עם `render-png-foreground-dense` כאשר פיקסלי הפריימגרונד צפופים באופן בלתי רגיל בתוך מסגרת לא טריוויאלית. פורמטי PNG לא תומכים נכשלים עם `render-png-unsupported` ויש הנחיות ספציפיות לפורמטים של Adam7 מתואמים או לעומקי ביט של צבע ממוקד לא תומכים. זה תופס סקריןשוטים ריקים, חיתוך ברור של הקנבס, עקבות פריימגרונד לא ממומשות, כישלונות בצפיפות ברמת הפיקסל הראשון, והגדרות יצוא PNG שגויות של הממר, מבלי להוסיף תלות בשלב ספציפי לפלטפורמה. זה עדיין אינו זיהוי תווים ברמת OCR, גילוי מדויק של חפיפת טקסט, או תיקון תמונה ששומר על טופולוגיה. + +כאשר האבחון מראה כישלון בקומפייל או בריצת render-smoke, ה-CLI יכול גם לכתוב תיאור תיקון ששומר על טופולוגיה: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +תיאור התיקון משתמש בסכמה `notemd.circuitikz.repair-brief.v1` ומכיל את המקור `CircuitSpec`, חתימת הטופולוגיה, אבחוני קומפייל/רנדר, עריכות מותרות, עריכות טופולוגיה אסורות, שלבי בדיקה הבאים, ו-`repairPrompt` ממוקד. תפקיד הפרומפט הוא `topology-preserving-circuitikz-repair`; רשימת ה-`diagnosticFocus` שלו מגובשת מאבחוני הקומפייל/רנדר, וה-`acceptanceCriteria` שלו דורש אימות של מועמדים בתוספת קומפייל ובדיקות render-smoke חדשות. זהו פורמט ההעברה למחזור תיקון מאוחר יותר, ולא טענה ש-Notemd כבר מבצע תיקון ויזואלי אוטונומי. + +לאחר שמופק מועמד לתיקון, אותו CLI יכול לאשר אותו בהשוואה לתיאור לפני כתיבת הפלט: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief` בודק את חתימת הטופולוגיה של המועמד מהתיאור והיא סותרת את `--topology-reference`. עבירה על בדיקה זו מוכיחה רק שמירה על טופולוגיה; המועמד עדיין צריך אבחוני קומפייל ובדיקות render-smoke. + +תוצאת ה-`--repair-brief` כוללת גם ראיות `repairAcceptance` עם סכמה `notemd.circuitikz.repair-acceptance.v1`. היא מדווחת על בדיקות `topology-signature`, `compile-diagnostics` ו-`render-smoke` כ-`passed`, `failed` או `missing`; חושפת את `remainingChecks`; ושומרת על `readyForVisualAcceptance` כשקרי עד שהריצה של המועמד כוללת את כל הראיות הנדרשות. + +השתמשו ב-`--repair-acceptance-output` יחד עם `--repair-brief` כאשר ראיות CI או שחרור צריכות קובץ JSON עמיד: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +לצורך ראיות שחרור או של מתחזק, הריצו כל משפחת הגולדן התומכת דרך מבצע הפיקס'ן הכולל: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +המבצע משתמש ב-`docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json` ו-`docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json`, קורא לאותו מסלול יצוא ללא שלב לכל פיקס'ן, ומחזיר דוח כולל JSON עם `compileExecution` ו-`compileDiagnostics` לכל פיקס'ן. זהו עדיין פקודה של מתחזק, ולא תלות בזמן ריצה של פלגין. + +כאשר למחשב המתחזק אין ממר מוגדר עדיין, הריצו את אותה פקודת הפיקס'ן ללא `--compile-executable` ושמרו באופן מפורש את שער הסביבה: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +אותו מסלול עדיין כותב את חפצי הפיקס'ן הדטרמיניסטיים `.tex`, אך מחזיר `ok: false` עם `rendererAvailability.status` שמוגדר ל-`missing-configuration` ועם אבחון `compile-executable-invalid`. יש להתייחס אליו רק כראייה לזמינות הממר; זה אינו קומפייל, render-smoke או קבלה ויזואלית. + +### צורת פרומפט של הרפרנס הגולדן + +לשימוש בטווח הקרוב, ספקו רפרנס גולדן שניתן להציג לפני בקשה לווריאנט של מעגל. פרומפט מוגבל צריך לשמור על ההקדמה, סולם הקואורדינטות, סגנון העוגן, ונהלי הניהול: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +עבור אינוורטר CMOS, הפרומפט צריך לבקש טופולוגיה מפורשת יחד עם מגבלות תכנון, ולא רק 'ציירו אינוורטר CMOS': + +- שמרו את `VDD` בחלק העליון, את `GND` בחלק התחתון, את הקלט בשמאל, את הפלט בימין; +- השתמש ב- `pmos` מעל `nmos`, עם שערים משותפים וניקוזים משותפים; +- שמור על צומת הפלט בנקודת הניקוז וסמן אותו ב- `*-o`; +- השתמש בעוגנים מוגדרים (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) במקום קואורדינטות שנקבעו ויזואלית; +- הימנע מחוטים אלכסוניים או חוטים החוצים זה את זה אלא אם יש צורך חשמלי. + +### התקדמות נוכחית ושלבים הבאים + +| שטח | מצב נוכחי | הצעד הבא | +|------|----------------|-----------| +| תרשימים כלליים | מערכת עם ספציפיקציות ראשונות מיושמת עבור Mermaid, JSON Canvas, Vega-Lite, HTML | המשך הרחבת כיסוי הבדיקה הסמנטית | +| תרשימים ניתנים לעריכה | גבולות הארטיפקטים של `editable-html-svg`, Draw.io XML ו- Drawnix JSON מיושמו | הוסף פרימיטיבים מתוחכמים רק לאחר שהמבחנים יוכיחו אפשרות לעריכה | +| תמיכה ב- CLI | - `npm run diagram:export-artifact` מייצא קבצים ניתנים לעריכה של HTML/SVG, Draw.io ו- Drawnix מתוך `DiagramSpec` | הוספת מתקני עשן ספציפיים ליעד כאשר יעדים חדשים נשלחים | +| circuitikz | `CircuitSpec -> circuitikz` הפרוטוטייפ מייצא תבניות זהב של מקור משותף, הפוך CMOS, `cmos-buffer` / `cmos-buffer-v1`, `cmos-transmission-gate` / `cmos-transmission-gate-v1`, `cmos-nand2` / `cmos-nand2-v1`, ו- `cmos-nor2` / `cmos-nor2-v1`, פרויקטים `layoutHints.inputSide` ו- `layoutHints.outputSide` למיקום קבוע של פורטי קלט/פלט מבלי לשנות את הטופולוגיה, דוחה שינויים בטופולוגיה של תיקונים דרך `--topology-reference`, מפרסם תיאורי תיקון השומרים על הטופולוגיה דרך `--repair-brief-output` והתבנית `notemd.circuitikz.repair-brief.v1`, כולל תוכן מועבר מובנה `repairPrompt` עם `diagnosticFocus`, `acceptanceCriteria`, ותפקיד `topology-preserving-circuitikz-repair`, מאשר מועמדי תיקון דרך `--repair-brief`, מחזיר ראיות של שער `repairAcceptance` דרך התבנית `notemd.circuitikz.repair-acceptance.v1` עם `readyForVisualAcceptance` ו- `remainingChecks`, שומר על אותן ראיות דרך `--repair-acceptance-output`, מפרש לוגים של קומפילציה, יכול להריץ ממחישים מקומיים מפורשים בנוסף ל- `--expected-artifact`, SVG `--expected-svg-text`, בדיקות מטא-נתוני נגישות דרך `aria-label`, `<title>`, ו- `<desc>`, הדרה של אלמנטים SVG נסתרים/שקופים, סיווג `render-svg-text-path-only` / `pathOnlyGlyphUseCount` לתוויות בעלות מסלול בלבד, בדיקות מיקום גליפים בעלי מסלול בלבד עבור `<use href="#...">`, אבחון חפיפה של גליפים בעלי מסלול בלבד דרך `render-svg-path-glyph-overlap`, טיפול בנקודת הזרם של מסלולים סגורים עבור `Z/z`, גבולות מדויקים של קשת A/a בקצוות, גבולות מדויקים של עקומות Bezier בקצוות C/S/Q/T, בדיקות חפיפה של תוויות וגבולות SVG המתחשבים בעובי הקו, בדיקות גאומטריה של ציור `polyline` / `polygon`, גאומטריה של תוויות ממוקמות `tspan`, גאומטריה של טקסט ממוקם המתחשבת ב- `text-anchor`, גאומטריה המתחשבת בטרנספורמציות עבור SVG bounded-canvas/text-overlap ו- label-vs-drawing smoke דרך `render-svg-label-overlap`, ובדיקות סקריןשוט של PNG לא ריק/מקוצר/עם רקע צפוף, כולל פלטת צבעים ממוזערת עם אלפא, דגימות שקופות בשחור-לבן/RGB tRNS, והנחיות `render-png-unsupported` ספציפיות ל-PNG מעורבבים Adam7 ולכישלונות בעומק הביט, דרך `foregroundBounds`, `foregroundDensity`, `render-png-content-clipped`, ו- `render-png-foreground-dense` ללא פירוש של שלוחה, כולל מתקני עשן של מתחזקים כוללים דרך `npm run diagram:smoke-circuitikz`, רושם הגדרות ממחיש שחסרות דרך `rendererAvailability.status: "missing-configuration"` ו- `compile-executable-invalid`, ויש לו אבחוני תצוגה כלליים, ספירות סיכום של אבחונים, רשומות היסטוריה המודעות לאבחונים, וחזרה על מקור בלבד דרך `RenderArtifact.diagnostics` והמודל של תצוגה | הוספת זיהוי תוויות ברמת OCR לטקסט ויזואלי בעל מסלול בלבד, בדיקות חפיפה מדויקות ברמת הפיקסל, כיסוי מסלול רחב יותר SVG כאשר נדרש, התקנה/גילוי אוטומטי של ממחישים רק אם ניתן להשאיר אותם אופציונליים, וביצוע אוטומטי של תיקונים השומרים על הטופולוגיה | +| אינטגרציה של TikZJax | מארח הממחיש המועמד עבור תצוגה בצד Obsidian | שמרו זאת כאופציונלית; אל תהפכו את TikZJax לתלות חובה של זמן ריצה של פלגין | + +## הגדרה + +| ערך | ברירת מחדל | השפעה | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | החלפה בין ספציפיקציות ראשונות ל- Mermaid מסורתי | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = Mermaid בלבד; `'best-fit'` = יעדים מולדים + חלופות | +| `preferredDiagramIntent` | `undefined` (אוטומטי) | החלפת זיהוי הכוונה האוטומטי | +| `summarizeToMermaidLanguage` | `'en'` | שפת היעד לתוויות של דיאגרמה | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | LLM לכל משימה ליצירת דיאגרמה | +| `autoMermaidFixAfterGenerate` | (מהקבועים) | הרצה אוטומטית של מתקן התיקונים המסורתי על פלט Mermaid | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | הרחבת המקור עם ידע של אוצר מקומי | + +### הרחבת ידע מקומי + +כאשר הוא מופעל, Notemd משיג קטעי תוכן רלוונטיים מבסיס הידע המקומי של ה‑vault שלך (המבוסס על MiniSearch) ומוסיף אותם בתחילת ה‑markdown המקורי. ההוראה להרחבה מציינת: "רק הפניות תומכות; שמרו על המבנה הראשי נאמן לרשימת המקור." + +### מצבי תאימות + +- **`legacy-mermaid`**: כל הכוונות מופנות ל‑Mermaid. כוונות שאינן Mermaid (canvasMap, dataChart) נאלצות לעבור ל‑`flowchart` או `mindmap`. אין שרשרת חלופית. +- **`best-fit`**: כל כוונה מופנית ליעד המקורי שלה. אם היעד הראשי נכשל, היא עוברת דרך שרשרת החלופים (למשל, Vega-Lite → Mermaid → HTML). + +## תצוגה מראש וייצוא + +| פעולה | שיטה | +|--------|--------| +| SVG export | בונה `mermaid.render()` / `vega.View.toSVG()` / SVG ל‑Canvas | +| ייצוא PNG | SVG → Image → Canvas (יחס פיקסלים של המכשיר 1x-3x) → PNG ArrayBuffer | +| שמירת מקור | תוכן הארטיפקט הגולמי נשמר עם סיומת ייעודית ליעד | +| תצוגה מראש של מקור בלבד | ארטיפקטים שאינם inline עם תוכן המקור מוצגים כקוד יחד עם אבחונים, ללא רנדרינג של iframe | +| בדיקת סמנטיקה | Mermaid, JSON Canvas, Vega-Lite, ו- HTML/SVG שניתן לערוך, מאומת על ידי `scripts/diagram-semantic-verification.js` | + +**אחסון בקשר**: RenderCache משתמש במפתח דטרמיניסטי JSON של `{spec, target, theme}`. ביטול כפילויות בזמן העיבוד מונע הצגות כפולות. + +## טיפים + +- **התחילו במוד `best-fit`** — הוא מספק את התוצאה הוויזואלית הטובה ביותר לכל סוג כוונה +- **השתמשו במודלים חזקים לדיאגרמות מורכבות** — תרשימי זרימה ותרשימי ER מפיקים תועלת מ-GPT-4o או Claude +- **הפעילו ידע מקומי** לדיאגרמות ספציפיות לתחום — הקשר של vault הרלוונטי משפר את הדיוק +- **הגדירו `autoMermaidFixAfterGenerate`** — שגיאות תחביר Mermaid נפוצות ללא זה +- **המתקן הישן הוא מקיף** — אם התצוגה המקדימה של Mermaid כושלת, ביצוע פקודת המתקן באופן ידני מפתור אותה לעתים קרובות + +--- + +## צעדים באופק + +- 🔗 [Wiki-Links](./wiki-links) — כיצד מושגים מחוברים באופן אינליין +- 📝 [Concept Notes](./concept-notes) — שליפת מושגים לחומר מקור של דיאגרמות +- 🔍 [Research](./research) — הרחבת דיאגרמות באמצעות נתונים מהאינטרנט diff --git a/website/i18n/he/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/he/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..c5eb352c --- /dev/null +++ b/website/i18n/he/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "מחקר וחיפוש באינטרנט" +description: "לשלב חיפוש באינטרנט ברשימות שלכם" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# מחקר וחיפוש באינטרנט + +<TLDR> +**Notemd מחפש ברשת ומזרים את התוצאות המסוכמות LLM ישירות לרשימות שלכם.** Tavily API הוא מערך החיפוש הראשי; DuckDuckGo משמש כאפשרות חלופית ללא כוונון. התוצאות מסוכמות עם ציטוטי מקור ומוספות תחת כותרת `## Research`. הוא תומך במחקר ברשימה בודדת, במחקר של תיקיות בקבוצה, ובבחירת מודל לשלב הסיכום לפי משימה. + +זהו חלק מה[Obsidian מדריך ניהול ידע AI](/docs/pillar-ai-knowledge). +</TLDR> + +## סקירה + +המחקר הוא אחת האינטגרציות החזקות ביותר של Notemd: הוא יוצר מעגל סגור בין קריאה, חיפוש וכתיבה. במקום לעבור לדפדפן כדי לחפש מושג לא מוכר, סמנו אותו ותנו ל‑Notemd לחפש, לסכם ולהוסיף את הממצאים – כל זה בתוך הארכיון שלכם. + +התהליך ניתן לכוונון מלא. אתם בוחרים את ספק החיפוש, את LLM שכותב את הסיכום, והאם התוצאות יוספו לרשימה הפעילה או יירשמו בקבצים נפרדים. מצב קבוצתי מאפשר לחקור כל רשימה בתיקייה בלחיצה אחת. + +## אופן הפעולה + +### מערך חיפוש‑ואז‑סיכום + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **שליפת שאילתות** -- Notemd שולף מילות חיפוש מהבחירה שלכם או משם הרשימה. +2. **חיפוש באינטרנט** -- נעשית ניסיון ראשון עם Tavily. אם לא קובעתם מפתח API, DuckDuckGo ישמש אוטומטית (אין צורך במפתח). +3. **סיכום ב‑LLM** -- תוצאות החיפוש הגולמיות נשלחות ל‑LLM המוגדר, שיוצר סיכום קצר עם ציטוטי מקור בתוך הטקסט. +4. **הוספה** -- הסיכום המעוצב מוסף תחת כותרת `## Research` ברשימה הפעילה. + +### Tavily לעומת DuckDuckGo + +| היבט | Tavily | DuckDuckGo | +|--------|--------|------------| +| מפתח API | נדרש (יש גרסה בחינם) | לא נדרש | +| איכות התוצאה | גבוהה (נוצרה במיוחד ל‑AI) | מספקת לשאילתות כלליות | +| מגבלות קצב | שכבה בחינם נדיבה | תלויה בהגבלת קצב | +| הגדרה | `tavilyApiKey` בהגדרות | אין הגדרות – חזרה אוטומטית | + +### מחקר בתיקיית קבוצות + +לחץ ימין על תיקייה ובחר **"Notemd: תיקיית מחקר"**. כל קובץ `.md` בתיקייה מעובד ברצף (או במקביל עד לרמת המקביליות המוגדרת). לכל רשימה יש סיכום מחקר משלה. + +## הגדרה + +| ערך | ברירת מחדל | השפעה | +|---------|---------|--------| +| `tavilyApiKey` | `''` | מפתח Tavily API. כאשר הוא ריק, משתמשים אך ורק ב‑DuckDuckGo. | +| `researchProvider` / `researchModel` | DeepSeek | LLM לכל משימה לסיכום תוצאות החיפוש | +| `maxResearchContentTokens` | `4000` | תקציב טוקנים לתוכן הנשלח ל‑LLM. עודף יגוזם. | +| `researchAppendToNote` | `true` | להוסיף סיכום לרשימה המקורית. אם הערך שקרי, נוצר קובץ נפרד. | +| `researchLanguage` | `'en'` | שפת הפלט לסיכום המחקר | + +### המלצת מודל לכל משימה + +המחקר מרוויח ממודל שמטפל בתוכן רב‑לשוני ויוצר טקסט מאורגן היטב. שקלו: + +- **DeepSeek** -- ברירת מחדל, במחיר נוח, איכות טובה +- **GPT-4o** -- סיכום באיכות גבוהה יותר, עלות גבוהה יותר +- **Gemini Flash** -- מהיר וזול, מתאים לשאילתות פשוטות + +## דוגמה + +אתם קוראים מאמר על *מנגנוני תשומת לב של transformer* ונתקלים במושג לא מוכר: *relative positional encoding*. במקום להשאיר Obsidian: + +1. הדגישו **"relative positional encoding"** +2. לחצו ימינה --> **"Notemd: Research and summarize"** +3. Notemd מחפש ברשת, מסכם את התוצאות העיקריות, ומוסיף: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +הסיכום נמצא כעת בארכיון שלכם, ניתן לחפש בו, ליצור קישורים אליו, ולגשת אליו ללא אינטרנט. + +## טיפים + +- **הגדירו מפתח Tavily לתוצאות הטובות ביותר** -- אפילו המנוי החינמי מספק רלוונטיות טובה יותר מאשר DuckDuckGo גולמי. +- **השתמשו במודל סיכום איכותי** -- מודלים זולים עלולים לפשט תוכן טכני מורכב. +- **בצעו מחקר בקבוצות** לאחר קריאה ראשונית כדי למלא פערים במספר רב של רשימות בבת אחת. +- **בדקו את הסיכומים המוספים** -- LLM עלולים ליצור הזיות לגבי פרטי המקור. בדקו את הטענות העיקריות. + +--- + +## צעדים באופק + +- [Concept Notes](./concept-notes) -- שלפו ושמרו מושגים חשובים מתוצאות המחקר +- [Wiki-Links](./wiki-links) -- יצרו קישורים בין המושגים שנוצרו מהמחקר בארכיון שלכם +- [Translation](./translation) -- תרגמו את סיכומי המחקר לשפה אחרת +- [LLM ספקים](/docs/providers/overview) -- להגדיר את המודל המשמש לסיכום diff --git a/website/i18n/he/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/he/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..a0097555 --- /dev/null +++ b/website/i18n/he/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "תרגום" +description: "תרגום הערות ובחירות" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# תרגום + +<TLDR> +**Notemd מתרגם טקסט בין 21+ שפות באמצעות תרגום המבוסס על LLM.** הוא תומך בתרגום של בחירה בודדת, תרגום של כל ההערה, ותרגום של תיקיות באופן קבוצתי. כל משימת תרגום יכולה להשתמש בספק ובמודל ייעודיים דרך הגדרות לכל משימה. שפת הפלט ניתנת להגדרה נפרדת משפת הUI. התוצאות מתווספות או נכתבות לקובץ חדש בהתאם להעדפתכם. + +זהו חלק מה[Obsidian מדריך ניהול ידע AI](/docs/pillar-ai-knowledge). +</TLDR> + +## סקירה + +התרגום בNotemd אינו חיפוש במילון – זהו תרגום המבוסס על LLM ומודע להקשר. המודל רואה את הפסקה המלאה או את ההערה, ושומר על הטון, על המונחים הייחודיים לתחום ועל מבנה המשפטים. זה מניב תוצאות באיכות גבוהה יותר משירותים של תרגום מילה במילה, במיוחד לטקסטים טכניים, אקדמיים ויצירתיים. + +התכונה תומכת בשלושה טווחים: בחירה, הערה פעילה ותיקייה שלמה. בשילוב עם בחירת מודל לכל משימה, ניתן להשתמש במודל מהיר (Gemini Flash) לתרגומים יומיומיים ובמודל חזק (Claude Sonnet) לתוכן הדורש דיוק – מבלי לשנות את הספק הגלובלי שלכם. + +## אופן הפעולה + +### הפקודה Translate + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **זיהוי מקור** -- LLM מסיק את שפת המקור מהתוכן. אין צורך לציין אותה באופן ידני. +2. **בניית הפרומפט** -- Notemd בונה פרומפט שכולל את שפת היעד, הערה אופציונלית לתחום ואת התוכן שצריך לתרגם. +3. **תרגום בLLM** -- ה`translateProvider` / `translateModel` המוגדרים מעבדים את הבקשה. המודל שומר על פורמט markdown, קישורי wiki ובלוקי קוד. +4. **פלט** -- הטקסט המתורגם מתווסף מתחת למקור או נכתב לקובץ חדש בארכיון. + +### זוגות שפות + +Notemd תומך בכל זוג שפות שהLLM הבסיסי תומך בו. זוגות נפוצים כוללים: + +| מקור | טארגט | איכות טיפוסית | +|--------|--------|----------------| +| אנגלית | סינית (פשוטה) | מעולה | +| עברית | אנגלית | מצוין | +| אנגלית | יפנית | טוב מאוד | +| אנגלית | גרמנית / צרפתית / ספרדית | טוב מאוד | +| כל שפה תומכת | כל שפה תומכת | תלוי במודל | + +ההגדרה `translateLanguage` שולטת ב**שפת הפלט**. שפת המקור נקבעת אוטומטית. + +### בחירת מודל למשימה + +איכות התרגום משתנה באופן משמעותי בהתאם למודל. Notemd מאפשר לך להקצות מודל ייעודי רק לתרגום: + +| מודל | מהירות | איכות | עלות | מתאים ל- | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | מהיר | טוב | נמוך | שימוש יומיומי, נפח גבוה | +| `gpt-4o-mini` | מהיר | טוב | נמוך | חיפושים מהירים | +| `deepseek-chat` | בינוני | טוב | מאוד נמוך | תכנון בתקציב רב-לשוני | +| `claude-3-5-sonnet` | בינוני | מעולה | בינוני | טכני / אקדמי | +| `gpt-4o` | בינוני | מעולה | בינוני | פרוזה רגישה לניואנסים | + +### תרגום תיקיות בקבוצה + +לחץ ימני על תיקייה ובחר **"Notemd: Translate folder"** כדי לתרגם כל ההערות בתיקייה. כל קובץ מעובד באופן עצמאי. הגדרת הביצועים המקבילים שולטת במספר הקבצים שמתורגמים בו-זמנית. + +## הגדרה + +| ערך | ברירת מחדל | השפעה | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | ספק מיוחד למשימות תרגום | +| `translateLanguage` | `'en'` | שפת הפלט היעד | +| `translationAppendToNote` | `true` | הוסף את הטקסט המתורגם מתחת לטקסט המקורי. אם הערך הוא false, נוצר קובץ חדש. | +| `batchConcurrency` | `3` | מספר הקבצים שמעובדים בו-זמנית במהלך תרגום בקבוצה | + +## דוגמה + +אתה קורא הערת מחקר בסינית ורוצה גרסה באנגלית: + +1. פתח את ההערה +2. לחץ ימני --> **"Notemd: Translate current file"** +3. Notemd מזהה סינית, מתרגם לשפת היעד שהוגדרה (אנגלית), ומוסיף: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +הטקסט הסיני המקורי נשאר ללא שינוי מעל התרגום. הכותרת `## Translation` שומרת על שתי הגרסאות באותו קובץ לנוחות גישה. + +## טיפים + +- **השתמש ב‑Gemini Flash לתרגום בכמויות גדולות** -- זו האפשרות המהירה והזולה ביותר לתרגום בקבוצה של תיקיות גדולות. +- **שמור על לינקי ויקי** -- ההוראה של Notemd מורה ל-LLM לשמור על `[[wiki-links]]` בלתי משתנה בתרגום. בדקו לאחר התרגום, שכן מודלים מסוימים לפעמים מסירים אותם. +- **הגדירו במפורש את שפת הפלט** -- זיהוי אוטומטי עובד עבור המקור, אך תמיד הגדירו את `translateLanguage` כדי למנוע עמימות לגבי היעד. +- **תרגום המוני של רשימות רעיונות** -- אם תיקיית הרעיונות שלכם בשפה אחת ואתם צריכים אותה בשפה אחרת, תרגום ברמת התיקייה מטפל בכך בשלב אחד. + +--- + +## צעדים באופק + +- [Research](./research) -- חפשו וסכמו בכל שפה, ואז תרגמו את התוצאות +- [Workflows](./workflows) -- חברו תרגומים עם לינקי ויקי או שליפת רעיונות +- [Batch Processing](/docs/advanced/batch-processing) -- ביצוע מקביל והתנהגות כתיבה חוזרת לפעולות על תיקיות +- [LLM Providers](/docs/providers/overview) -- בחרו את המודל הטוב ביותר עבור זוג השפות שלכם diff --git a/website/i18n/he/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/he/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..81686c3f --- /dev/null +++ b/website/i18n/he/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "Wiki-Links" +description: "יצירה אוטומטית של קישורי wiki למושגים מרכזיים" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# Wiki-Links + +<TLDR> +**Notemd מוסיף אוטומטית `[[wiki-links]]` למושגים המרכזיים ברשימות ההערות שלך.** הLLM קורא את התוכן שלך, מזהה מונחים חשובים בהקשר, ומכניס קישורי wiki בסגנון Obsidian בכל הופעה. באופציונלי נוצרים קבצי הערות מושגים עם קישורים החוזרים. תומך בדיכוי שמות נרדפים, בשמירה על שלמות הקישורים בעת שינוי שם/מחיקה, ובמצב של חילוץ טהור (ללא שינוי בקבצים). בניגוד ל‑Auto Link שמתאים רק לכותרות הערות קיימות, Notemd משתמש ב‑AI כדי לזהות מושגים חדשים וליצור הערות מתאימות. זהו חלק מה[Obsidian מדריך ניהול הידע ב‑AI](/docs/pillar-ai-knowledge). +</TLDR> + +## סקירה + +יצירת קישורי wiki היא המאפיין המרכזי של Notemd. היא ממירה טקסט רגיל לגרף ידע מחובר באמצעות: + +1. **ניתוח ההערות שלך** באמצעות LLM +2. **זיהוי מושגים מרכזיים** (מונחים, אנשים, שיטות, תיאוריות) +3. **הכנסת `[[wiki-links]]`** בכל הופעה +4. **יצירת הערות מושגים** (אופציונלי) עם קישורים החוזרים + +## אופן הפעולה + +### תהליך + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### דוגמה + +**לפני:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**אחרי:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## שימוש + +### בסיסי: הוספת קישורים להערה הנוכחית + +1. פתח רשימת רעיונות +2. לחיצה ימנית במערכת העריכה → **"Process file (add links)"** +3. המתנה של מספר שניות +4. המושגים כעת מקושרים! + +### בלוק: עיבוד מספר הערות + +1. לחיצה ימנית על תיקייה ב‑File Explorer +2. בחר **"Notemd: Process folder (add links)"** +3. הגדרות: + - ביצוע מקביל (כמה קבצים בו‑זמנית) + - כתיבה חוזרת של קישורים קיימים (כן/לא) +4. לחץ על **Process** + +### סלקטיבי: קישור לטקסט מסוים + +1. הדגשת הטקסט לעיבוד +2. לחיצה ימנית → **"Process selection (add links)"** +3. רק החלק המודגש נבדק + +## Notemd לעומת Auto Link + +Obsidian כולל שתי גישות ליצירת קישורי wiki אוטומטיים: + +| | **Auto Link** | **Notemd** | +|--|---------------|-------------| +| מקור הקישור | שמות הערות קיימים ב‑Vault | מושגים שנזהו על ידי LLM בתוכן | +| ניתן ליצור קישורים למושגים חדשים | לא — הכותרת חייבת להתקיים כבר | כן — הבינה המלאכותית מזהה מושגים ויוצרת רשימות תגובות | +| טיפול במילים נרדפות | לא | כן — דיכוי של מילים נרדפות | +| יצירת רשימת תגובות למושג | לא | כן — עם קישורים החוזרים וביטול חזרות | +| עיבוד בקבוצות | לא (קובץ בודד) | כן (ברמת תיקייה) | +| הפניית מודל לפי משימה | לא | כן | + +**Auto Link** מתאים את הכותרת: אם קיימת רשימת תגובות בשם "Machine Learning", היא עוטפת את ההופעות ב‑`[[Machine Learning]]`. אם הרשימה אינה קיימת, שום דבר לא קורה. + +**Notemd** מונע על ידי בינה מלאכותית: ה‑LLM קורא את התוכן שלך, מבין את ההקשר, מזהה מושגים ש*צריך* לקשר אליהם — גם אם אין עדיין רשימת תגובות — ויוצר הן את הקישור והן את רשימת התגובות למושג. + +## תכונות + +### דיכוי של מילים נרדפות + +**בעיה:** "transformer", "transformers", "Transformer architecture" → 3 מושגים נפרדים + +**פתרון:** Notemd מזהה חזרות קרובות ומשתמש בצורה הקנונית. + +**הגדרות:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### שלמות הקישורים + +**כאשר אתם משנים שם לפתק רעיון:** +- כל הקישורים בוויקי מתעדכנים אוטומטית (Obsidian מאפיין בסיסי) +- הקישורים ההפוכים נשארים שלמים + +**כאשר אתם ממחקים פתק רעיון:** +- הקישורים נשארים אך מוצגים כ'הזכרות ללא קישור' +- ניתן ליצור אותו מחדש מכל הופעה + +### מצב של חילוץ טהור + +**לחלץ רעיונות מבלי לשנות את המקור:** + +1. לחיצה ימנית → **"לחלץ רעיונות (בלי קישורים)"** +2. נוצרים פתקי רעיון +3. הקובץ המקורי לא נפגע + +מקרי שימוש: עיבוד תוכן רק לקריאה או טיוטות סופיות. + +## יצירת פתקי רעיון + +### יצירה אוטומטית + +**כאשר מופעל (באופן אוטומטי), Notemd יוצר:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### הגדרה + +**תיקיית הפלט:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**מבנה היררכי:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**תבנית:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## אפשרויות מתקדמות + +### חלון ההקשר + +**כמה טקסט סביב לשלוח:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +גודל גדול יותר = דיוק גבוה יותר, עלות גבוהה יותר. + +### הופעות מינימליות + +**הצג רק רעיונות שמופיעים מספר פעמים:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +הגדר ל‑2 או 3 כדי להתמקד בנושאים חוזרים. + +### תבניות להדרה + +**דלג על מילים מסוימות:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +מונע יצירת קישורים יתר למושגים כלליים. + +### הוראות מותאמות אישית + +**לשנות את ההוראות הבסיסיות של LLM:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +שנה לצרכים ספציפיים לתחום (למשל, "התמקד בטרמינולוגיה רפואית"). + +## עצות ומעשי טובה + +### ✅ כן + +- **עבדו על הערות עם יותר מ-100 מילים** — הערות קצרות מניבות מעט מושגים +- **השתמשו במודלים חזקים** לזיהוי מושגים טוב יותר (GPT-4o, Claude) +- **בדקו לפני הסכמה** — בדקו שהקישורים המוצעים הגיוניים +- **בנו באופן איטרטיבי** — עבדו על 5-10 הערות, בדקו את הגרף, שנו את ההגדרות + +### ❌ לא + +- **הוסיפו יותר מדי קישורים** — לא לכל שם עצם יש צורך בקישור +- **עבדו על טיוטות שוב ושוב** — המושגים עשויים להשתנות, חכו עד שיהיו יציבים +- **התעלמו ממילים נרדפות** — הפעילו דיכוי כדי למנוע "ML" לעומת "Machine Learning" + +## ביצועים + +### מהירות + +| גודל ההערה | GPT-4o-mini | Claude Sonnet | Ollama (מקומי) | +|-----------|-------------|---------------|----------------| +| 500 מילים | 2-3 שניות | 3-5 שניות | 5-10 שניות | +| 2000 מילים | 5-8 שניות | 10-15 שניות | 20-40 שניות | +| 5000+ מילים | חלוקה לחלקים (קריאות מרובות) | מחולק לחלקים | מחולק לחלקים | + +### הערכת עלויות + +**דוגמה: תזכיר של 1000 מילים עם GPT-4o-mini** +- קלט: ~1500 טוקנים +- הפקה: ~200 טוקנים +- עלות: ~ + +עיבוד המוני של 100 רשימות: כ-0.10 + +## פתרון בעיות + +### לא נוספו קישורים + +**בדיקה:** +1. LLM הקריאה הצליחה (הגדרות → אבחון) +2. לפתק יש מספיק תוכן (>50 מילים) +3. המושגים הם טכניים/ספציפיים (לא רק כינויים) + +**נסו:** +- השתמשו במודל חזק יותר +- הגדל את חלון ההקשר +- בדקו את תקפות המפתח API + +### יותר מדי קישורים + +**פתרונות:** +1. הגדל את מספר ההופעות המינימלי (2 או 3) +2. הוסף מילים נפוצות לרשימת החריגה +3. השתמשו במודל פחות אגרסיבי + +### רעיונות שגויים מקושרים + +**תיקונים:** +1. השתמשו בהוראה מותאמת אישית לספציפיות של הדומיין +2. הפעילו דיכוי של מילים נרדפות +3. בדקו באופן ידני ונתקו את הקישורים + +### הקישורים נשברים לאחר שינוי שם + +**זוהי התנהגות רגילה Obsidian.** + +כדי לעדכן את כל הקישורים: +1. שנו את שם המסמך המושגי +2. Obsidian מעדכן אוטומטית `[[old]]` → `[[new]]` + +--- + +## צעדים באופק + +- 📖 [מסמכים מושגיים](./concept-notes) — חדירה עמוקה ליצירת מסמכים מושגיים +- 🔍 [אינטגרציה של מחקר](./research) — שילוב של קישורים עם מחקר באינטרנט +- 🎨 [דיאגרמות](./diagrams) — ויזואליזציה של גרף הידע שלכם diff --git a/website/i18n/he/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/he/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..dd422a63 --- /dev/null +++ b/website/i18n/he/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "תהליכי עבודה" +description: "חיבור מספר משימות באמצעות כפתורי לחיצה אחת" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# תהליכי עבודה + +<TLDR> +**Notemd תהליכי עבודה מחברים מספר משימות לפעולה אחת בלחיצה אחת.** ניתן להגדיר רצפים כמו `add-links > extract-concepts > research > diagram` באמצעות DSL פשוט. תהליכי העבודה מופיעים ככפתורים בצד המסך שמריצים את כל השרשרת על ההערה או התיקייה הנוכחיים. התוכנה מגיעה עם תהליכי עבודה מוגדרים מראש; ניתן ליצור תהליכים מותאמים אישית בהגדרות. כל שלב משתמש בהגדרת המודל הייחודית לו. + +זהו חלק מה[Obsidian מדריך ניהול ידע AI](/docs/pillar-ai-knowledge). +</TLDR> + +## סקירה + +תהליך עבודה מבטל את הקושי שבביצוע משימות אחת אחרי השנייה. במקום ללחוץ פעמיים בכפתור ימין כדי להוסיף קישורים, לשלוף רעיונות, לחקור מושגים לא מוכרים וליצור דיאגרמה, מספיק ללחוץ על כפתור בצד המסך וכל השרשרת מתבצעת. Notemd אחראי על הסדר, העברת שגיאות ודיווח על ההתקדמות. + +תהליכי עבודה מוגדרים ב‑DSL קל משקל (שפה ספציפית לתחום). הם נמצאים בהגדרות, מופיעים ככפתורים ניתנים ללחיצה בצד המסך של Obsidian, וניתן ליישם אותם על ההערה הנוכחית או על תיקייה שלמה. + +## אופן הפעולה + +### מערכת ביצוע תהליכי עבודה + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **פירוש** -- השרשורת של DSL מחולקת לפי `>` (או `>`) לרשימה ממוינת של זיהויי משימות. +2. **פתרון** -- כל זיהוי מתאים לפקודה פנימית (add-links, extract-concepts, research, translate, diagram וכו'). +3. **ביצוע** -- השלבים מתבצעים ברצף. כל שלב משתמש בספק ובמודל המוגדרים לו. +4. **טיפול בשגיאות** -- אם שלב כלשהו נכשל, תהליך העבודה יכול להפסיק או להמשיך לשלב הבא, בהתאם למדיניות השגיאות שלך. +5. **סיום** -- הודעת toast מדווחת על הצלחה או מפרטת את השלבים שנכשלו. + +### פורמט DSL + +תהליכי עבודה מוגדרים כרצף של זיהויי משימות המופרדים ב‑`>`: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**זיהויי משימות זמינים:** + +| זיהוי | פעולה | +|------------|--------| +| `process-current-add-links` | להוסיף קישורי wiki לפתק הפעיל | +| `extract-concepts-current` | לשלוף רעיונות מהפתק הפעיל | +| `research-and-summarize` | לחקור את הטקסט הנבחר או את שם הפתק | +| `process-current-translate` | לתרגם את הפתק הפעיל | +| `summarize-to-mermaid` | ליצור תרשים מהפתק הפעיל | +| `generate-from-title` | ליצור תוכן משם הפתק | +| `extract-original-text` | לשלוף את הטקסט המקורי (ל‑OCR / תוכן מסורק) | + +**ווריאנטים ברמת התיקייה** – החליפו `current` ב‑`folder` בשם הזיהוי. + +### תהליכי עבודה מוגדרים מראש לעומת תהליכים מותאמים אישית + +Notemd מגיע עם תהליכי עבודה מוכנים לתבניות נפוצות: + +| תהליך עבודה | שרשרת | מקרי שימוש | +|----------|-------|----------| +| **שליפה בלחיצה אחת** | add-links > extract-concepts > research | לעבד מאמר מחקר במעבר אחד | +| **צינור עבודה מלא** | add-links > extract-concepts > research > diagram | הפקת ידע מלאה עם ויזואליזציה | +| **תרגום + קישור** | translate > add-links | תרגם ולאחר מכן קשר את המושגים בשפה היעד | + +**תהליכי עבודה מותאמים אישית** נוצרים בהגדרות: + +1. פתח **Settings** --> **Notemd** --> **Workflows** +2. לחץ על **"Add Workflow"** +3. הזן את שרשרת DSL (למשל, `process-current-add-links>extract-concepts-current`) +4. תן לו שם תצוגה (למשל, "Quick Link + Extract") +5. הכפתור החדש מופיע מיד בסביבה הצדדית + +## הגדרה + +| ערך | ברירת מחדל | השפעה | +|---------|---------|--------| +| `workflows` | קבוצה מוגדרת מראש | מערך של הגדרות תהליכי עבודה (שם + DSL) | +| `workflowContinueOnError` | `true` | המשך לשלב הבא אם השלב הנוכחי נכשל | +| `workflowShowProgress` | `true` | הצגת הודעת התקדמות לאחר סיום כל שלב | + +### מודלים למשימה בתהליכי עבודה + +כל שלב בתהליך עבודה משתמש בהגדרת המודל הייחודית שלו לכל משימה. אין צורך לציין מודלים ב‑DSL עצמו. סדר הפתרון הוא: + +1. ספק/מודל לכל משימה אם `useMultiModelSettings` נמצא שם +2. `activeProvider` גלובלי במקרה האחר + +זה אומר ש‑`add-links` יכול לרוץ על DeepSeek בעוד ש‑`research` רץ על GPT-4o – הכל בתוך אותו קליק של תהליך עבודה. + +## דוגמה + +רק ייבאתם PDF של מאמר למידת מכונה לארכיון שלכם ורוצים חילוץ מידע מלא: + +1. פתחו את ההערה שהובאה +2. לחצו על כפתור הצד **"Full Pipeline"** +3. Notemd מבצע: + - **שלב 1**: הוספת קישורי wiki – `[[attention mechanism]]`, `[[transformer]]` וכו' + - **שלב 2**: חילוץ רעיונות – יוצר הערות רעיון בתיקיית הרעיונות שלכם + - **שלב 3**: מחקר – מסכם מקורות אינטרנט למילות מפתח + - **שלב 4**: תרשים – יוצר מפה שכלית של Mermaid של מבנה המאמר +4. לאחר כ‑30 שניות, להערה שלכם יש קישורים, הערות רעיון קיימות, המחקר מוסף, וקובץ תרשים נשמר + +הכל בלחיצה אחת. + +## טיפים + +- **התחילו עם תהליכי עבודה מוגדרים מראש** – הם מכסים את התבניות הנפוצות ביותר. התאימו רק כאשר אתם צריכים סדר שונה. +- **הפעילו `workflowContinueOnError`** – שלב תרשים שנכשל לא צריך לעצור את כל המערכת. +- **השתמשו בעבודות תיקייה** לעיבוד המוני – לחצו בכפתור הימני על תיקייה, בחרו עבודה, וכל הרשימות יעובדו. +- **קראו לעבודות בבירור** – שטח הצד הוא מוגבל. השתמשו בשמות קצרים ומונחים כמו "הפקה מהירה" או "תרגום + קישור". + +--- + +## צעדים באופק + +- [Research](./research) – הבינו מה עושה שלב המחקר לפני שאתם מוסיפים אותו לעבודות +- [Wiki-Links](./wiki-links) – התכונה הבסיסית של יצירת קישורים המשמשת ברוב העבודות +- [Concept Notes](./concept-notes) – חילוץ רעיונות כשלב בעבודה +- [Batch Processing](/docs/advanced/batch-processing) – ביצוע מקביל ודיווח על התקדמות לעבודות תיקייה diff --git a/website/i18n/he/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/he/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..95110bd7 --- /dev/null +++ b/website/i18n/he/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "הגדרה" +description: "להגדיר את הגדרות וההעדפות של Notemd" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# הגדרה + +<TLDR> +**ההגדרה של Notemd כוללת 6 תחומים עיקריים:** (1) ספקי LLM ומפתחות API, (2) בחירת מודל לכל משימה, (3) מסלולי הפלט ותבניות, (4) שפת UI ושפת הפלט, (5) שירותי חיפוש (Tavily/DuckDuckGo), (6) זרמי עבודה מותאמים אישית. כל ההגדרות נמצאות ב‑Obsidian Settings → Notemd. השינויים נכנסים לתוקף מיד. +</TLDR> + +## סקירת ההגדרות + +גישה: **Obsidian Settings (⚙️) → Notemd** + +### פרקים עיקריים + +1. **הגדרת ספק** — מפתחות API, URLs בסיסיים, מודלים +2. **הגדרות משימה** — בחירת מודל לכל משימה +3. **הגדרת הפלט** — היכן לשמור את הקבצים שנוצרו +4. **הגדרות שפה** — UI ושפות הפלט +5. **אינטגרציית חיפוש** — הגדרת Tavily/DuckDuckGo +6. **זרמי עבודה** — שרשראות כפתורים מותאמות אישית +7. **מתקדם** — אבחון, עיבוד בלוחות, חלוקה לחלקים + +--- + +## 1. הגדרת ספק + +### הוספת ספק + +1. **בחרו ספק** מהרשימה הנפתחת (יותר מ‑30 זמינים) +2. **הזינו את המפתח API** +3. **אופציונלי**: הגדרת בסיס מותאם אישית URL (לפרוקסים/שערים) +4. **לחץ על "Get Model List"** כדי לבדוק את החיבור +5. **בחר מודל ברירת המחדל** + +### ספקים נפוצים + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Local) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### ספקים מרובים + +ניתן להגדיר מספר ספקים ולעבור ביניהם לפי משימה: +- **ספק ראשי**: משמש כחלופה +- **ספקים ספציפיים למשימה**: להחליף עבור משימות ספציפיות + +--- + +## 2. מודלים ספציפיים למשימה + +הגדרת מודלים שונים למשימות שונות כדי לאופטימיזציה של עלויות/איכות: + +### סוגי משימות + +| משימה | מודל ברירת המחדל | מטרה | +|------|--------------|---------| +| **חיבור** | ספק ראשי | זיהוי רעיונות לקישורי wiki | +| **ייצור רעיונות** | ספק ראשי | שלוף ותאר מושגים | +| **מחקר** | ספק ראשי | סכם תוצאות חיפוש אינטרנט | +| **תרגום** | ספק ראשי | תרגם טקסט | +| **ייצור תרשימים** | ספק ראשי | יצר diagram Mermaid/Canvas | + +### דוגמה: הגדרה מושכלת מבחינת עלויות + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### כיצד להגדיר + +1. **הגדרות → Notemd → הגדרות משימה** +2. עבור כל משימה, בחרו: + - ✅ **להשתמש בספק הראשי** (ברירת מחדל) + - 🔄 **להשתמש בספק מותאם אישית** → בחרו ספק + מודל + +--- + +## 3. הגדרות פלט + +### פלט הערות על מושגים + +**לאן נשמרות רשימות הרעיונות החדשות:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**תבנית:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### אפשרויות מבנה התיקיות + +**אפשרות 1: שטוח (כל הרעיונות בתיקייה אחת)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**אפשרות 2: היררכי (לפי תיקיית המקור)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +להגדרה: **הגדרות → פלט → להשתמש בתיקיות היררכיות** + +### פלט של דיאגרמות + +**לאן נשמרות הדיאגרמות:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**פורמט:** +- `.mmd` (Mermaid מקור) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. הגדרות שפה + +### UI שפה + +**שפת הממשק** (כפתורים, מנויים, חלונות שיח): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +נתמכות: אנגלית, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Русский, العربية, ועוד. + +### שפת הפלט + +שפת התוכן שנוצר (**הערות רעיוניות, סיכומי מחקר**): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**מקרה שימוש:** סינית UI + תוצאות באנגלית למחקר דו‑לשוני. + +### יעד התרגום + +**שפת היעד הבסיסית** למשימות תרגום: + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. אינטגרציה של חיפוש + +### Tavily (מומלץ) + +**שירות חיפוש מותאם AI:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +קבל מפתח: [tavily.com](https://tavily.com/) + +**תכונות:** +- תוצאות איכותיות +- סיכומים מותאמים AI +- ציטוטי מקור + +### DuckDuckGo (ניסיוני) + +**אין צורך במפתח API:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**הערה:** איכות נמוכה, ללא אפשרויות התאמה. + +--- + +## 6. קונפיגורציית עבודה + +### יצירת עבודות קסטומיות + +**שרשראות עבודה מחברות מספר משימות לכפתור אחד.** + +1. **הגדרות → שרשראות עבודה → הוסף שרשרת עבודה** +2. **שם**: "Paper Analysis Flow" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **שמור** + +כפתור חדש מופיע בצד השמאלי. + +### תחביר DSL + +**פורמט:** `action1>action2>action3` + +**פעולות זמינות:** +- `process-current-add-links` — הוסף קישורי wiki לרשימה הנוכחית +- `extract-concepts-current` — יצירת רשימות רעיונות +- `research-and-summarize` — מחקר באינטרנט + סיכום +- `translate-current` — תרגום הרשימה הנוכחית +- `summarize-as-mermaid` — יצירת דיאגרמת Mermaid +- `process-folder-add-links` — עיבוד מאגר קבצים בקבוצה + +**שרשראות עבודה לדוגמה:** + +**שליפת רעיונות מהירה:** +``` +process-current-add-links>extract-concepts-current +``` + +**מחקר מעמיק:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**ניתוח רב-לשוני:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. הגדרות מתקדמות + +### עיבוד בקבוצות + +**עיבוד מספר קבצים במקביל:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +ערך גבוה יותר = מהירות גבוהה יותר אך יותר קריאות API. + +### חלוקה חכמה לחתיכות + +**עבור הערות ארוכות, חלקו לחתיכות:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +מונע שגיאות של מגבלת טוקנים. + +### לוח האבחון + +**צפייה ביומני לוג מפורטים:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +מציג: +- API בקשות/תגובות +- שימוש בטוקנים +- זמני עיבוד +- שגיאות + +### זיהוי רעיונות חוזרים + +**הימנעו מרעיונות כמעט זהים:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +גבוה יותר = איחוד אגרסיבי יותר. + +--- + +## תצורות פרופילים + +### ייצוא/ייבוא הגדרות + +**שתפו תצורות בין מכשירים:** + +1. **הגדרות → מתקדם → ייצוא תצורה** +2. שומר `notemd-config.json` +3. במכשיר חדש: **ייבוא תצורה** + +**מה כלול:** +- מפתחות ספק API (אופציונלי) +- בחירות מודלים +- נתיבי יציאה +- תהליכי עבודה מותאמים אישית + +--- + +## תצורות מומלצות + +### לסטודנטים + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### לחוקרים + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### למשתמשים הדואגים לפרטיות + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### לעבודה דו-לשונית + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## פתרון בעיות בהגדרות + +### ההגדרות לא נשמרו +- בדקו את זכויות הגישה לקובץ ב-`.obsidian/plugins/notemd/` +- נסו: כבו את התוסף → הפעילו אותו שוב + +### מפתח API לא תקין +- אין מרווחים נוספים +- בדקו את תאריך התפוגה +- בדקו את הזיכויים בלוח הבקרה של הספק + +### המודלים לא מוטענים +- לחצו על "קבל רשימת מודלים" כדי לעדכן +- בדקו את חיבור הרשת +- נסו ספק אחר + +--- + +## צעדים באופק + +- 📖 [לחקור את התכונות](../features/wiki-links) +- 🔌 [מדריכי הגדרת הספק](../providers/overview) +- ❓ [שאלות נפוצות](../faq) diff --git a/website/i18n/he/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/he/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..101f8b2b --- /dev/null +++ b/website/i18n/he/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "התקנה" +description: "איך להתקין Notemd ב- Obsidian" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# התקנה + +<TLDR> +**התקינו את Notemd תוך פחות מ-2 דקות.** שתי שיטות: (1) תוספי קהילה של Obsidian (מומלץ, התקנה בלחיצה אחת), או (2) התקנה ידנית דרך GitHub Releases. נדרשת גרסת Obsidian 0.15.0+ או חדשה יותר. עובד על Windows, macOS, Linux, iOS ו-Android. אין תלות בכלים חיצוניים. למעלה מ-4k הורדות, רישיון MIT. +</TLDR> + +## שיטה 1: תוספי קהילה (מומלץ) + +1. פתחו **הגדרות של Obsidian** (אייקון ⚙️ או `Ctrl/Cmd + ,`) +2. עברו ל-**תוספי קהילה** +3. לחצו על **לחפש** +4. חפשו **"Notemd"** +5. לחצו על **להתקין** +6. לחצו על **להפעיל** + +**הכל!** תראו את האייקון של Notemd בסרגל הצד השמאלי שלכם. + +## שיטה 2: התקנה ידנית + +### דרישות מוקדמות +- גרסת Obsidian 0.15.0 או חדשה יותר +- Git (אופציונלי, לצורך קלונים) + +### שלבים + +1. **הורד את הקבצים** מ-[GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest): + - `main.js` + - `styles.css` + - `manifest.json` + +2. **מצא את תיקיית הפלגין של ה-vault שלך:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +אם התיקייה `plugins` אינה קיימת, יצור אותה. + +3. **יצור תיקייה Notemd:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **העתק את שלושת הקבצים** לתיקייה `notemd`. + +5. **טעינה מחדש של Obsidian:** + - לחץ על `Ctrl/Cmd + R`, או + - הפעל מחדש את Obsidian + +6. **הפעלת הפלגין:** + - הגדרות → פלגינים של הקהילה + - מצא את "Notemd" ברשימה + - הפעל אותו + +## אלטרנטיבה: התקן דרך BRAT + +אם אתה משתמש ב[BRAT plugin](https://github.com/TfTHacker/obsidian42-brat): + +1. פתח את הגדרות BRAT +2. לחץ על "הוסף תוסף בטא" +3. הזן: `Jacobinwwey/obsidian-NotEMD` +4. לחץ על "הוסף תוסף" +5. הפעל את Notemd בתוספים של הקהילה + +## אימות + +לאחר ההתקנה, בדוק ש- Notemd פועל: + +1. פתח כל רשימת רשימות +2. לחץ בכפתור הימני במערכת העריכה +3. אתה אמור לראות פקודות Notemd כגון: + - "עיבוד קובץ (הוספת קישורים)" + - "שליפת רעיונות" + - "מחקר וסיכום" + +## צעדים באופק + +- **הגדר את ספק LLM:** [התחלה מהירה →](./quick-start) +- **פתרון בעיות:** [בעיות נפוצות →](../advanced/troubleshooting) + +## דרישות המערכת + +| פלטפורמה | גרסה | מצב | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | נדרש | +| **Windows** | 7+ | ✅ תומך | +| **macOS** | 10.15+ | ✅ תומך | +| **Linux** | כל | ✅ תומך | +| **iOS** | 15+ | ✅ תומך | +| **Android** | 5+ | ✅ תומך | + +## הסרה + +כדי להסיר Notemd: + +1. הגדרות → תוספי קהילה +2. מצאו את "Notemd" +3. לחצו על האייקון ❌ +4. באופציונלי, מחקו את תיקיית התוסף: `<vault>/.obsidian/plugins/notemd/` + +הנתונים שלכם (רשימות, רשימות רעיונות וכו') נשארים ללא שינוי. + +## עדכון + +### עדכון אוטומטי (מומלץ) +Obsidian בודק אוטומטית אחר עדכוני תוספים. כאשר גרסה חדשה זמינה: +1. הגדרות → תוספי קהילה +2. לחצו על "בדוק אחר עדכונים" +3. לחצו על "עדכן" ליד Notemd + +### עדכון ידני +הורידו את הגרסה האחרונה והחליפו את שלושת הקבצים בתיקיית התוסף שלכם. + +## קבלת עזרה + +- 📖 [מדריך התחלה מהירה](./quick-start) +- ❓ [שאלות נפוצות](../faq) +- 💬 [קהילת Discord](https://discord.gg/qnGgsQ9W) +- 🐛 [דווח על בעיות](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/he/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/he/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..2a4c0445 --- /dev/null +++ b/website/i18n/he/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "מדריך התחלה מהירה" +description: "התחלו לעבוד עם Notemd תוך 5 דקות" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# מדריך התחלה מהירה + +<TLDR> +**התחילו להשתמש ב-Notemd תוך 5 דקות.** שלושה שלבים: (1) הוסיפו מפתח LLM API (או השתמשו ב-Ollama מקומי), (2) פתחו רשימת תזכורות והריצו את הפקודה "Process file (add links)", (3) גלו תהליכי עבודה בלחיצה אחת בסרגל הצד. תומך ב-30+ ספקים. אין צורך בכתיבת קוד. עובד בלי אינטרנט עם Ollama. +</TLDR> + +## שלב 1: הגדרת הספק הראשון שלכם LLM (2 דקות) + +### אפשרות א': ספק ענן (OpenAI, Anthropic, וכו') + +1. פתחו **הגדרות** → **Notemd** +2. תחת **LLM תצורת ספק**, בחרו ספק מהרשימה הנפתחת +3. הזינו את **API Key** שלכם +4. (אופציונלי) לחץ על **"Get Model List"** כדי לראות את המודלים הזמינים +5. בחרו מודל לכל סוג משימה + +**אפשרויות פופולריות:** +- **OpenAI**: `gpt-4o-mini` (מהיר, במחיר נוח) +- **Anthropic**: `claude-sonnet-4-6` (איכות גבוהה) +- **DeepSeek**: `deepseek-chat` (במחיר נוח מאוד) + +### אפשרות B: מקומי Ollama (אין צורך במפתח API) + +1. התקנת [Ollama](https://ollama.com/) +2. הורדת מודל: `ollama pull llama3.1` +3. בהגדרות Notemd, בחרו **"Ollama"** כספק +4. שם המודל: `llama3.1` (או כל מודל שהורדתם) + +## שלב 2: נסו את המשימה הראשונה שלכם (1 דקה) + +### הוספת קישורי Wiki לרשימת רשימות + +1. פתחו כל רשימת רשימות עם תוכן משמעותי +2. לחץ בכפתור הימני במערכת העריכה +3. בחרו **"עיבוד קובץ (הוספת קישורים)"** +4. המתנה של מספר שניות +5. המושגים העיקריים כעת `[[wiki-linked]]`! + +**דוגמה:** + +**לפני:** +``` +Machine learning models use neural networks to process data. +``` + +**אחרי:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## שלב 3: חקר התכונות (2 דקות) + +### שליפת רשימות מושגים + +1. לחץ ימין → **"שלוף מושגים מהקובץ הנוכחי"** +2. Notemd יוצר קבצים נפרדים לכל מושג +3. בדקו את תיקיית המושגים שהוגדרה (באופן אוטומטי: `concepts/`) +4. לכל רשימת מושגים יש קישור חזרה לרשימת הרשימות המקורית שלכם + +### מחקר וסיכום + +1. להדגיש נושא ברשימת ההערות שלך +2. לחיצה ימנית → **"מחקר וסיכום"** +3. Notemd שואל את מנוע החיפוש (Tavily או DuckDuckGo) +4. הסיכום מתווסף לרשימת ההערות שלך יחד עם המקורות + +### תהליכי עבודה בלחיצה אחת + +1. בדקו את **הסרגל השמאלי** לחיצוניות של תהליכי העבודה +2. לחצו על **"שליפה בלחיצה אחת"** בכל הערה +3. הוא מבצע: הוספת לינקים → שליפת רעיונות → מחקר → יצירת דיאגרמה +4. הכל בלחיצה אחת! + +## משימות ראשוניות נפוצות + +### משימה 1: לעבד מאמר/עיתון + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### משימה 2: לתרגם הערות + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### משימה 3: ליצור מפת ידע + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## טיפים להתאמה אישית + +### בחירת מודל למשימה + +ניתן להשתמש במודלים שונים למשימות שונות: + +| משימה | מודל מומלץ | מדוע | +|------|------------------|-----| +| הוסף קישורים | `gpt-4o-mini`, `deepseek-chat` | מהיר, שיחות רבות | +| שליפת רעיונות | `claude-sonnet-4-6`, `gpt-4o` | שליפת איכות | +| מחקר | `perplexity`, `gpt-4o` | מבוסס אינטרנט | +| תרגום | `gemini-flash`, `gpt-4o` | רב-לשוני | +| תרשימים | `claude-opus`, מודל מקומי | היגיון מורכב | + +להגדיר ב: **הגדרות → Notemd → מודלים למשימות ספציפיות** + +### תהליכי עבודה מותאמים אישית + +יצירת הכפתור שלך: + +1. הגדרות → Notemd → תהליכי עבודה +2. לחץ על "הוסף תהליך עבודה" +3. הזן DSL: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. שמו: "My Research Flow" +5. כפתור חדש מופיע בצד הצדדי + +## פתרון בעיות + +### "API Key Invalid" +- בדקו האם המפתח נכון (בלי רווחים נוספים) +- וודאו שלחשבון יש אשראי +- בדקו עם כפתור "Connection Test" בהגדרות + +### "Model Not Found" +- לחצו על "Get Model List" כדי לראות את המודלים הזמינים +- חלק מהספקים דורשים שמות מודל מסוימים (למשל, `gpt-4o` ולא `gpt-4`) + +### הקישורים לא מופיעים +- ודאו שלהערה יש מספיק תוכן (>50 מילים) +- נסו מודל חזק יותר +- בדקו האם הקריאה ל‑LLM הצליחה (ראו לוח האבחון) + +### ביצועים איטיים +- השתמשו במודלים מהירים יותר (`gpt-4o-mini` במקום `gpt-4o`) +- הקטינו את גודל החתיכה בהגדרות +- להפעיל עיבוד מקביל למשימות בלוק + +## צעדים באופק + +- 📖 [לחקור את כל התכונות](../features/wiki-links) +- ⚙️ [הגדרות מתקדמות](./configuration) +- 🔧 [הגדרת ספק LLM](../providers/overview) +- ❓ [שאלות נפוצות](../faq) + +## הדרכה בווידאו + +צפו בווידאו של 3 דקות להתחלה מהירה (סינית): +[【מקורי לחלוטין ובחינם! NotEMD – הדרכה מהירה של 3 דקות】](https://b23.tv/lqR0RlA) + +## קבלת עזרה + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **בעיות**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **מדריכים**: [מדריכים מלאים](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/he/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/he/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..841f9179 --- /dev/null +++ b/website/i18n/he/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "הכרת בסיס הידע Notemd" +description: "מבנה בסיס ידע מבוסס AI ל-Obsidian עם טרנספורמציות של רשימות קבועות, תהליכי עבודה ודיאגרמות המבוססות על מפרטים" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# הכרת בסיס הידע Notemd + +<TLDR> +**Notemd** (Note + EMD — Enhanced Markdown Documents) הוא תוסף מקור פתוח ל-Obsidian שממיר קריאה המבוססת על LLM לידע קבוע. בניגוד ל-AI המבוסס שיחה שבו התובנות נעלמות לאחר השיחה, Notemd כותב את התוצאות **ישירות לארכיון שלך** כקישורי wiki, רשימות רעיונות, סיכומי מחקר, תרגומים, תהליכי עבודה ודיאגרמות. הוא נוצר עבור חוקרים, סטודנטים ועובדי ידע שרוצים שהקריאה, המחקר וההסברים הוויזואליים יצטברו לגרף ידע מובנה ומתפתח. +</TLDR> + +## מהו Notemd? + +Notemd משלב **30+ מודלי שפה גדולים** (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama ועוד) לתהליך העבודה של Obsidian כדי לאוטומציה את חילוץ הידע, ארגונו, תרגומו, המחקר בו ויצירת הדיאגרמות. + +### ההבדל המרכזי: ידע זמני לעומת ידע קבוע + +| היבט | AI מבוסס שיחה (ChatGPT, וכו') | Notemd | +|--------|-------------------------------|--------| +| **לאן התוצאות הולכות** | היסטוריית שיחות (נעלמת) | הארכיון שלך ב-Obsidian (נשאר) | +| **פורמט** | תשובות טקסט פשוט | קבצים מובנים: `[[wiki-links]]`, רשימות רעיונות, דיאגרמות | +| **ערך לטווח ארוך** | יש לשאול שוב בכל פעם | מצטבר לגרף ידע | +| **גישה ללא אינטרנט** | דורש אינטרנט | פועל במלואו ללא אינטרנט עם Ollama | + +## יכולות בסיסיות + +### 1. **חיבור אוטומטי ל‑Wiki** +- LLM מזהה רעיונות מרכזיים ברשימות הרשימות שלך +- מכניס `[[wiki-links]]` בכל הופעה +- באופציה יוצר רשימות רעיונות מקושרות +- דיכוי נרדפים כדי למנוע חזרות + +### 2. **יצירת רשימות רעיונות** +- מוציא רעיונות בסיסיים ממאמרים, כתבות, רשימות +- יוצר קבצי רעיונות ייעודיים עם קישורים חוזרים +- נתיבי פלט ותבניות שניתן להתאים אותם + +### 3. **אינטגרציה של מחקר באינטרנט** +- מחפש Tavily או DuckDuckGo מתוך Obsidian +- LLM מסכם את התוצאות עם ציטוטי מקור +- מוסיף ממצאי מחקר לרשימת ההערות הנוכחית + +### 4. **תרגום רב-לשוני** +- לתרגם בחירות או את כל ההערות +- תומך ביותר מ‑21 UI שפות +- הגדרה עצמאית של שפת הפלט +- תמיכה בתרגום בקבוצות + +### 5. **יצירת דיאגרמות** +- **Mermaid**: תרשימי זרימה, סדר, מחלקות, מצבים, ER, Gantt +- **JSON Canvas**: תצורות ילידיות של Obsidian +- **Vega-Lite**: גרפי נתונים, סדרות זמן, תרשימי פיזור +- **HTML / HTML ניתנים לעריכה/SVG**: יצירות תרשים עצמאיות עם הערות סמנטיות +- **Draw.io / גבולות היצירה Drawnix**: שבילי ייצוא למתחזקים מאותו מודל תרשים סמנטי +- **מסלול דיאגרמות מעגלים**: התמיכה circuitikz/TikZJax נוצרת סביב רפרנסים זהב, הנחיות מוגבלות, משוב על ייצור ואימות טופולוגיה/תצורה במקום LLM TikZ לא מוגבל +- **אבחון תצוגה מראש**: יצירות הייצור יכולות לחשוף אבחוני עשן של קומפילציה/ייצור, ומקורות שאינם בליניארי ניתן לבדוק ללא צורך בסביבת LaTeX בצד הפלגין +- תיקון אוטומטי של תחביר לשגיאות Mermaid + +### 6. **עבודות בלחיצה אחת** +- לחבר מספר פעולות לכפתורים בצד המסך +- הגדרת תהליכי עבודה המבוססת על DSL +- דוגמה: `add-links > extract-concepts > research > diagram` + +## מי צריך להשתמש ב- Notemd? + +✅ **חוקרים** הקוראים מאמרים ויוצרים סקירות ספרותיות +✅ **סטודנטים** המארגנים רשימות לימוד ויוצרים מפות רעיונות +✅ **עובדי ידע** הרוצים שהתובנות מהקריאה יישמרו +✅ **מקצוענים דו-לשוניים** הזקוקים לתרגום + קישורים לוויקי +✅ **משתמשים מודעי פרטיות** הרוצים תמיכה מקומית ב- LLM (Ollama) +✅ **משתמשים מתקדמים** המתאימים אישית הוראות ותהליכי עבודה + +## למה Notemd + Obsidian? + +**Obsidian** היא בסיס ידע המבוסס על מרקדו ומעדיף את השימוש המקומי. **Notemd** מוסיפה יכולות על-אנושיות: +- הנתונים שלך נשארים במאגר שלך (לא בשירות ענן) +- פועלת ללא אינטרנט עם מודלים מקומיים +- חינמית ובמקור פתוח (רישיון MIT) +- משתלבת עם תוספים קיימים של Obsidian +- מתאים לעשרות אלפי רשימות + +## התחלה + +1. **התקנה**: הגדרות → תוספי קהילה → חיפוש → "Notemd" +2. **כיול**: הוסף את מפתח API של ספק LLM שלך (או השתמש ב-Ollama מקומי) +3. **נסה זאת**: פתח רשימה → לחץ ימני → "עבד על קובץ (הוסף קישורים)" +4. **חקור**: בדוק את הצד הצדדי למסלולי עבודה בלחיצה אחת + +👉 [מדריך התקנה](./getting-started/installation) | [מדריך התחלה מהיר](./getting-started/quick-start) + +## כיוון היכולת של תרשימים + +עבודת התרשימים של Notemd עוברת מ"לבקש מהמודל לכתוב שרשור תחביר אחד" לכיוון של צינורית מרובת שכבות: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +היישום הנוכחי כבר תומך ב-Mermaid, JSON Canvas, Vega-Lite, HTML כחלופה, HTML/SVG ניתנים לעריכה, יצירות Draw.io XML, קבוצה מינימלית של Drawnix JSON, אבחון תצוגה/חלופה של מקור בלבד, ופרוטוטייפ `CircuitSpec -> circuitikz` ללא אינטרנט עבור תבניות זהב של מקורות נפוצים ואינוורטרים CMOS. תרשימי מעגלים הם קטגוריה קשה יותר: circuitikz יכול לייצג טופולוגיה חשמלית מדויקת, אך פלט LLM ללא הגבלות יוצר לעתים קרובות ניווט בלתי קריא או LaTeX שאינו מוצג. הכיוון הבא הוא להמשיך להגביל את circuitikz באמצעות תבניות ייחוס זהב, חוקי עיצוב רשת קשרים, אבחון הצגה, ומעגלי משוב של צילומי מסך. + +קרא את הפרטים ב-[תרשימים](./features/diagrams). + +## ארכיטקטורה + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd לעומת תוספי AI אחרים של Obsidian + +רוב תוספי AI של Obsidian הם מבוססי שיחה (אתה שואל, ה-AI עונה, התובנות נשארות בשיחה). Notemd הוא **מבוסס כתיבה**: ה-AI מעבד את הרשימות שלך וכותב תוצאות ממוקדות ישירות לארכיון שלך. + +| יכולת | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| הכנסת קישורי wiki אוטומטית | כן | לא | לא | לא | +| יצירת תזכיר מושג | כן (עם קישורים החוזרים + ביטול דופליקטים) | לא | לא | לא | +| יצירת דיאגרמות | כן (Mermaid, Canvas, Vega-Lite, HTML, חומרים ניתנים לעריכה) | לא | לא | לא | +| אינטגרציה של מחקר באינטרנט | כן (Tavily + DuckDuckGo) | לא | לא | לא | +| עיבוד תיקיות בקבוצות | כן | מוגבל | לא | מוגבל | +| הפניית מודל לפי משימה | כן (7 משימות, מודלים עצמאיים) | לא | לא | לא | +| שרשראות עבודה בלחיצה אחת | כן (DSL) | לא | לא | לא | +| תרגום (בקבוצות) | כן | לא | לא | לא | +| שיחה עם האוצר | לא | כן | לא | לא | +| חיפוש לדמיון סמנטי | לא | לא | כן | לא | +| יצירה על בסיס תבניות | לא | לא | לא | כן | +| ספקי LLM | 36 (ענן + שער + מקומי) | 3-5 | 2-3 | 3-5 | +| לחלוטין ללא אינטרנט | כן (Ollama) | חלקי | חלקי | חלקי | + +**מתי לבחור ב-Notemd**: אתם רוצים שה-BI ייצור גרף ידע קבוע — ולא רק לשוחח על הרשימות שלכם. + +**מתי לבחור ב-Copilot**: אתם רוצים עוזר תוכנה בעל יכולות שיחה בתוך Obsidian. + +**מתי לבחור ב-Smart Connections**: אתם רוצים לגלות קשרים קיימים בין רשימות באמצעות חיפוש סמנטי. + +## פילוסופיה + +**Notemd מאמין שבינה מלאכותית צריכה להרחיב את עבודת הידע של בני אדם, ולא להחליף אותה.** הפלגין: +- שומר עליכם בשליטה (בדקו לפני הטמעת שינויים) +- שומר על ההקשר (כל התוצאות מקשרות חזרה למקור) +- שומר על פרטיות (תמיכה מקומית ב-LLM, ללא איסוף נתונים) +- נשאר ניתן להרחבה (פונקציות פתוחות API, תהליכי עבודה מותאמים אישית) + +## מקור פתוח + +- **רישיון**: MIT +- **מקור**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **קהילה**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **תרומה**: פניות PR מתקבלות בברכה, ראו [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +**המשך**: [Installation →](./getting-started/installation) diff --git a/website/i18n/he/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/he/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..d80f6a08 --- /dev/null +++ b/website/i18n/he/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Obsidian מדריך לניהול ידע באמצעות AI" +description: "מדריך מלא לבניית בסיס ידע מחובר עם AI — החל מקישורי wiki ושליפת רעיונות ועד מחקר, תרגום ויצירת דיאגרמות" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Obsidian מדריך לניהול ידע באמצעות AI + +<TLDR> +**Notemd הופך קריאה המונעת על ידי LLM לידע קבוע: קישורי wiki מחברים רעיונות, רשימות רעיונות יוצרות גרף שניתן לחיפוש, מחקר מביא את האינטרנט למאגר שלך, תרגום מסיר מחסומי שפה, דיאגרמות הופכות את המבנה לגלוי, ותהליכי עבודה מחברים את כל זה בלחיצה אחת.** מדריך זה מכסה את כל המסלול — מרשימות גולמיות לבסיס ידע מחובר, ויזואלי ורב‑לשוני. +</TLDR> + +## מדוע ניהול ידע באמצעות AI? + +רישום רגיל של הערות יוצר קבצים שטוחים. אפילו עם קישורי wiki ידניים, רוב ההערות נשארות לא מחוברות. Notemd משתמש ב‑LLM כדי לאוטומציה את שכבת החיבור: + +- **LLMs קוראים את התוכן שלך** ומזהים מה חשוב — מושגים, שיטות, אנשים, תיאוריות +- **קישורים מוכנסים אוטומטית** בכל הופעה של רעיון, ולא נקברים ב‑"ראו גם" +- **רשימות רעיונות נוצרות** כקבצים עצמאיים שניתן לחיפוש +- **מחקר מעשיר את ההערות** בהקשרים מהאינטרנט +- **דיאגרמות הופכות את המבנה לגלוי** — מפות מחשבה, תרשימי זרימה, גרפים של נתונים מאותו תוכן + +התוצאה: גרף ידע שגדל עם כל הערה שאתה מעבד, ולא רק כשאתה זוכר להוסיף קישורים. + +## המסלול המלא + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +כל שלב הוא עצמאי. ניתן להשתמש באחד או בכולם. הרצף המשפיע ביותר: **הוספת קישורים → רשימות רעיונות → דיאגרמות**. + +--- + +## 1. קישורי Wiki: הפיכת החיבורים לברורים + +קישורי wiki הם עמוד השדרה של גרף ידע. Notemd משתמש ב‑LLM כדי ל: + +1. קראו את תוכן ההערה שלכם (חלקו לחלקים עבור מסמכים ארוכים) +2. זהו את המושגים המרכזיים — תנו עדיפות למונחים טכניים ספציפיים על פני שמות עצם כלליים +3. הכניסו `[[wiki-links]]` בכל הופעה +4. דכאו מילים נרדפות כך ש‑"ML" ו‑"Machine Learning" לא ייצרו קשרים נפרדים + +### מתי להשתמש בזה + +- **כל הערה >100 מילים** — הערות קצרות מניבות מעט מושגים +- **מאמרי מחקר, מסמכים טכניים, פרוטוקולי ישיבות** — עשירים במונחים ספציפיים לתחום +- **לאחר שהתוכן יציב** — אל תעבדו שוב ושוב טיוטות + +### הגדרות מפתח + +| ערך | מומלץ | מדוע | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek או GPT-4o-mini | דיוק טוב בעלות נמוכה | +| דכאת מילים נרדפות | כן | מונע קשרים חוזרים | +| חלון ההקשר | פסקה | איזון בין דיוק לעלות | + +→ [Wiki-Links deep dive](/docs/features/wiki-links) + +--- + +## 2. רשימות רעיונות: צמתי ידע שניתן לשלוף + +הקישורים בוויקי מחברים רעיונות באופן אינליין, אך רשימות הרעיונות מאפשרות לשלוף כל רעיון בנפרד. לכל רעיון יש קובץ `.md` משלו: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### תהליך השליפה + +הפרומפט של LLM מאורגן בצורה מאוד מובנית: +- להביא לצורה יחידה +- להעדיף רעיונות רב-מילתיים על פני מילים בודדות ("Dielectric Relaxation" ולא "Relaxation") +- לדלג על חלקי ההפניות/ביבליוגרפיה +- להציג את התוצאה כשורות `CONCEPT:` לצורך פענוח דטרמיניסטי + +הרעיונות מנוקים מדופליקטים בין החלקים באמצעות `Set<string>`. שגיאות LLM בחלקים בודדים אינן עוצרות את הפעולה. + +### הפניות חוזרות + +כאשר הן מופעלות, כל רשימת רעיונות מתעדת אילו רשימות מקור מזכירות אותה. לוח ההפניות החוזרות המובנה של Obsidian מציג גם את הקשרים ההפוכים. + +### דה-דופליקציה + +מנוע הניקוי מ-4 שלבים של Notemd תופס: +1. **התאמות מדויקות** — השוואת שמות קבצים ללא התחשבות בגודל האותיות +2. **צורות רבים** — "Models.md" לעומת "Model.md" +3. **נורמליזציה של סימנים** — "A-B.md" לעומת "A B.md" +4. **הכללה של מילה בודדת** — "ML.md" מסומן כאשר קיים "Machine Learning.md" + +### הגדרות מפתח + +| ערך | מומלץ | מדוע | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` או `🧠 concepts/` | שומר על ארגון הכספת | +| `extractConceptsAddBacklink` | כן | מאפשר חיפוש הפוך | +| `extractConceptsMinimalTemplate` | לא | תבנית מלאה עם Linked From | +| מודל למשימה | DeepSeek | חילוץ רעיונות אינו דורש מודלים יקרים | +| דיכוי נרדפים | כן | אותה הגדרה משפיעה על קישורים ועל חילוץ | + +→ [Concept Notes deep dive](/docs/features/concept-notes) + +--- + +## 3. מחקר: הכנסת האינטרנט לתהליך רישום ההערות + +Notemd משלב חיפוש באינטרנט לתהליך רישום ההערות שלך: + +1. **בניית שאילתה** — כותרת ההערה או הבחירה שלך הופכת לשאילתת חיפוש +2. **חיפוש באינטרנט** — Tavily (מומלץ, נדרש מפתח API) או DuckDuckGo (בחינם, ללא מפתח) +3. ****LLM סיכום** — תוצאות החיפוש מסוכמות לסיכום רלוונטי +4. **הוספה להערה** — הסיכום מוסף במיקום הסמן או כפרק חדש + +### מתי להשתמש בזה + +- לפני עיבוד נושא חדש — קבלו קודם רקע מהאינטרנט +- כאשר יש צורך להעשיר הערת רעיון — בצעו מחקר ולאחר מכן הוסיפו קישורים +- לסקירות ספרות — בצעו מחקר המוני על תיקייה של הערות + +### הגדרות מפתח + +| ערך | מומלץ | מדוע | +|---------|-----------|-----| +| `researchProvider` | GPT-4o או Claude | המחקר דורש סיכום באיכות גבוהה יותר | +| שירות חיפוש | Tavily | רלוונטיות טובה יותר, עומק ניתן לכיול | +| `maxResearchContentTokens` | 4000 | איזון בין עומק לעלות | + +→ [Research deep dive](/docs/features/research) + +--- + +## 4. תרגום: שבירת מחסומי השפה + +Notemd מתרגם הערות באמצעות LLM שנקבע על ידכם — לא באמצעות API מיוחד לתרגום. זה אומר: + +- **תרגומים המבינים את ההקשר** — LLM מבין את כל המסמך, ולא רק משפט אחר משפט +- **טיפול במושגים טכניים** — "gradient descent" נשאר כ‑"梯度下降" ולא כ‑"坡度向下" +- **תמיכה בבקצעות** — ניתן לתרגם תיקייה שלמה של הערות בפעולה אחת +- **מודל לכל משימה** — ניתן להשתמש ב‑Gemini Flash לתרגום (מהיר, זול, רב‑לשוני) + +### תמיכה בשפות + +Notemd עצמו תומך ב‑21 שפות UI. שפת היעד לתרגום ניתנת לכיול לפי משימה. זוגות נפוצים: EN↔ZH, EN↔JA, EN↔KO, EN↔DE, EN↔FR, EN↔ES. + +→ [Translation deep dive](/docs/features/translation) + +--- + +## 5. תרשימים: הפיכת המבנה לגלוי + +מערכת התרשימים של Notemd מתבססת קודם כל על המפרט: LLM מייצר `DiagramSpec` JSON ממוקד מבנה, ואז ממירים מתרגמים אותו לפורמט היעד. זה מניב תוצאות אמינות יותר מאשר לבקש מ‑LLM תחביר Mermaid בלתי מעובד. + +### זיהוי כוונה + +Notemd מסיק את סוג התרשים הטוב ביותר מהתוכן: + +- **טבלאות עם מספרים** → גרף נתונים (Vega-Lite) +- **אוצר מילים של לקוח/שרת** → תרשים סדרה (Mermaid) +- **עצם/מפתח ראשי** → תרשים ER (Mermaid) +- **שלב/זרימת תהליך** → תרשים זרימה (Mermaid) +- **מילות מפתח של מפה קונצפטואלית** → JSON Canvas (Obsidian native) +- **ברירת מחדל** → מפת מחשבה (Mermaid) + +### שרשרת עיבוד + +יעד ראשי → חלופה → חלופה → HTML. אם התחביר של Mermaid כושל, הוא מנסה שוב פעם אחת עם הקשר השגיאה ל‑LLM, ואז עובר לתרשים מינימלי. + +### הגדרות מפתח + +| ערך | מומלץ | מדוע | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | כן | איכות טובה יותר באמצעות ספקיפיקציה ראשונה | +| `experimentalDiagramCompatibilityMode` | `best-fit` | יעד native לפי כוונה | +| `summarizeToMermaidProvider` | GPT-4o או Claude | לתרשימי ספקיפיקציה נדרש חשיבה מרחבית | +| `autoMermaidFixAfterGenerate` | כן | תופס שגיאות תחביר של LLM באופן אוטומטי | +| הרחבת ידע מקומי | פעיל לתחומים ספציפיים | משפר את הדיוק עם הקשר של ה‑vault | + +→ [Diagrams deep dive](/docs/features/diagrams) + +--- + +## 6. תהליכי עבודה: אוטומציה בלחיצה אחת + +תהליכי עבודה מחברים מספר משימות לכפתור בסמן הצד. פורמט ה‑DSL הוא: + +``` +task1 | task2 | task3 +``` + +דוגמה: `addLinks | extractConcepts | generateDiagram` — לעבד הערה מטקסט גולמי לצומת ידע ויזואלי מחובר בלחיצה אחת. + +### תהליכי עבודה מומלצים + +| תהליך עבודה | שרשרת | מקרי שימוש | +|----------|-------|----------| +| תהליך מלא | `addLinks \| extractConcepts \| generateDiagram` | הערות חדשות | +| מחקר ראשוני | `research \| addLinks` | נושאים לא מוכרים | +| Polyglot | `translate \| addLinks` | הערות רב‑לשוניות | +| רק דיאגרמה | `generateDiagram` | ויזואליזציה מהירה | + +→ [Workflows deep dive](/docs/features/workflows) + +--- + +## 7. LLM ספקים: 36 אפשרויות מענן למקומי + +Notemd תומך ב‑36 ספקים ב‑4 סוגי העברה. קבוצות מפתח: + +- **ענן בינלאומי**: OpenAI, Anthropic, Google, Mistral, xAI +- **ענן סין**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **שערים**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **מקומי**: Ollama, LMStudio, OVMS — אין מפתח API, אין נתונים יוצאים מהמכשיר שלך + +### אסטרטגיית מודל לכל משימה + +ההגדרה החסכונית ביותר משתמשת במודלים זולים למשימות פשוטות ובמודלים חזקים למשימות מורכבות: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [LLM Providers overview](/docs/providers/overview) + +--- + +## רשימת בדיקה להתחלה + +1. **התקנת Notemd** — [Community Plugins](/docs/getting-started/installation) (מומלץ) או באופן ידני +2. **הגדרת ספק** — DeepSeek (הקל ביותר), OpenAI, או Ollama (בחינם) +3. **עיבוד ההערה הראשונה שלך** — לחיצה ימנית → "Process file (add links)" +4. **הגדרת תיקיית הרעיונות** — הגדרות → Notemd → פלט → תיקיית רעיונות +5. **שליפת רעיונות** — הרץ את "שליפת רעיונות" על אותה רשימה +6. **יצירת דיאגרמה** — הרץ את "יצירת דיאגרמה" כדי להציג את הקשרים +7. **יצירת תהליך עבודה** — חבר את הפעולות הנ"ל לכפתור לחיצה אחת + +## תצורות מומלצות + +### Student (Budget) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### Researcher (Quality) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### Privacy-First (Local Only) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### Bilingual (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## Common Patterns + +### Pattern: Process a Research Paper + +1. Import PDF content (or paste) +2. **Research** — קבל הקשרים מהאינטרנט לנושא +3. **Add Links** — זהה וחבר רעיונות מרכזיים +4. **Extract Concepts** — יצור רשימות נפרדות +5. **Generate Diagram** — הצג את מבנה המאמר + +### Pattern: Daily Note Enrichment + +1. לכתוב רשימת יומן +2. **הוספת לינקים** — מחברת את הרעיונות של היום למושגים קיימים +3. רשימות המושגים מתעדכנות אוטומטית עם לינקים חוזרים + +### תבנית: סקירת ספרות + +1. ליצור תיקייה עם מאמרים/רשימות +2. **הוספת לינקים בקבוצה** — לעבד את כל התיקייה +3. **הסרת רשימות דומות** — לנקות רשימות דומות מאוד +4. **יצירת דיאגרמה** — מפת מחשבות של כל הספרות + +--- + +*Notemd הוא קוד פתוח (MIT) ועובד עם Obsidian 0.15.0+ בכל הפלטפורמות. [התקינו עכשיו](/docs/getting-started/installation) או [צפו ב‑GitHub](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/he/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/he/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..d7f74fbe --- /dev/null +++ b/website/i18n/he/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "להגדיר Anthropic Claude" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Anthropic Provider + +<TLDR> +**Anthropic משתמש בתשלוח Messages API המובנה, ולא בתשלוח התואם OpenAI.** ההגדרה הקיימת משתמשת באופן אוטומטי ב-`claude-3-5-sonnet-20240620`, `https://api.anthropic.com` ו-`temperature: 0.5`. יש להתייחס אליה כאל שכבת פרוטוקול נפרדת בזמן ניפוי שגיאות. + +זהו חלק מה[Obsidian מדריך ניהול ידע AI](/docs/pillar-ai-knowledge). +</TLDR> + +## הגדרה + +יצרו מפתח Anthropic API, הוסיפו פרופיל של ספק `Anthropic`, והשאירו את Base URL בקצה המובנה אלא אם כן אתם מנתבים דרך פרופיל של שער מיוחד. בחרו את מספר המודל של Claude שברצונכם להשתמש בו בשדה המודל; ההגדרה הבסיסית שומרת על יציבות הבסיס של המוצר הקיים. + +Anthropic הוא מועמד מצוין לסיכום באיכות גבוהה, סינתזת מחקר ושליפת רעיונות. אם משלבים אותו עם ספקים זולים יותר, השתמשו בו רק במשימות שמפיקות תועלת מאיכות התוצאה שלו. + +## קצה ואימות + +| שדה | ההגדרה הנוכחית | +|-------|----------------| +| תשלוח | `anthropic` | +| מפתח API | נדרש | +| Base URL | `https://api.anthropic.com` | +| מודל ברירת המחדל | `claude-3-5-sonnet-20240620` | +| טמפרטורה | `0.5` | +| בדיקת חיבור | רק שיחה | + +המנוע שולח בקשות ל-`/v1/messages` עם `x-api-key` ו-`anthropic-version: 2023-06-01`. אל תגדירו קצה `/v1/chat/completions` בסגנון OpenAI תחת ההגדרה הזו; השתמשו במקום זאת בהגדרת שער התואמת OpenAI. + +## גילוי מודלים + +Anthropic משתמש במוד הגילוי `anthropic-models` ברשומת הספקים. אם המפתח או החשבון שלכם אינם יכולים לרשום מודלים, שמרו מזהה מודל ידוע בפרופיל ואשרו זאת דרך מבחן החיבור. + +התעבורה אינה ניתנת להחלפה עם ספקים תואמי OpenAI. מודל Claude שמופנה דרך OpenRouter, LiteLLM או שער אחר צריך להיות בפרופיל של אותו שער, ולא בפרופיל המקורי Anthropic. + +## פתרון בעיות + +- `401` או `403`: בדקו את טווח המפתח, גישה למרחב עבודה, חיובים, והאם המפתח שייך למרחב העבודה Anthropic הצפוי. +- `404`: ה‑Base URL שגוי או שמזהה המודל הנבחר אינו זמין לחשבון. +- מזהים מודלי Claude בסגנון שער נכשלים: העבירו את הפרופיל לספק השער התואם, מכיוון ש‑Anthropic המקורי מצפה לשמות מודל מקוריים. +- בקשות ארוכות נכשלות בשלב מאוחר: הקטינו את גודל הפלט של המודל לכל משימה או השתמשו במודל עם תקרת טוקני פלט גדולה יותר. + +## מתי להשתמש + +השתמשו ב‑Anthropic כאשר האיכות בסינתזה, ברשימות מחקר או בכתיבה ממוקדת חשובה יותר מהעלות הגולמית. אל תשתמשו בו כחלופה כללית תואמת OpenAI; התעבורה הנפרדת היא הנקודה, ושילוב הפרוטוקולים מקשה על אבחון. + +--- + +## צעדים באופק + +- [LLM Providers](/docs/providers/overview) -- תצורה מלאה, מודלים לכל משימה, ולוגיקת ניסיונות חוזרים +- [Troubleshooting](/docs/advanced/troubleshooting) -- תיקון שגיאות 401/403 ושגיאות חיבור diff --git a/website/i18n/he/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/he/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..5d50edff --- /dev/null +++ b/website/i18n/he/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "ספקים בסין" +description: "להגדיר Qwen, DeepSeek, GLM וכו'" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# ספקים בסין + +<TLDR> +**Notemd תומך בספקים מהאזור של סין וממקור של סין דרך קצוות תואמים בעיקר ל-OpenAI.** הקבוצה הנוכחית כוללת את DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, MiniMax, Baidu Qianfan, SiliconFlow, Huawei Cloud MaaS ו-Z AI. היתרון הוא הגישה האזורית ושליטה בעלויות; הסיכון הוא שמות מודלים ספציפיים לספק ובקרת חשבונות. + +זהו חלק מה[Obsidian מדריך ניהול ידע AI](/docs/pillar-ai-knowledge). +</TLDR> + +## הגדרה + +יש ליצור חשבון ספק, לייצר מפתח API, ולאחר מכן לבחור את ההגדרה המותאמת של הספק Notemd במקום להשתמש בפרופיל כללי OpenAI. ההגדרה הזו כוללת את Base URL הבסיסי, מודל, מצב בדיקה API, התנהגות גילוי מודלים, וכל שדות UI ספציפיים לספק. + +יש להשתמש בבחירת מודל לפי משימה באופן אגרסיבי כאן. לדוגמה, לשמור על DeepSeek או GLM בעבודות הדורשות חשיבה מורכבת, להשתמש ב-Qwen או Moonshot לעבודות רחבות בשפה הסינית, ולהפנות משימות קידוד ל-Qwen Code כאשר החשבון הזה מציג מודלי מתכנתים. + +## קצה ואימות + +| ספק | מודל ברירת המחדל | Base URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (נדרש מזהה קצה) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**הערה:** Doubao דורש מזהה קצה של Ark (פורמט: `ep-xxxxxxxx-xxxx-xxxx`) במקום שם מודל סטנדרטי. + +רוב הספקים האלה משתמשים בסביבת ביצועים משותפת תואמת ל-OpenAI, אך הסמנטיקה של החשבונות והמודלים שלהם שונה. יש לשמור על Base URL הספציפי להגדרה אלא אם כן בדקתם את קצה החלופי של החשבון. + +## גילוי מודלים + +DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan ו-SiliconFlow משתמשים בגילוי מודלים תואם ל-OpenAI כאשר הספק תומך ברשימה. Huawei Cloud MaaS משתמש במודל `huaweicloud-modelarts-models` מכיוון שמטא-נתוני ההפעלה של ModelArts אינם זהים לרשימה כללית של `/v1/models`. + +אל תטילו את כישלון הגילוי כהוכחה ששיחה בלתי אפשרית. מספר ספקים מאפשרים שיחה תוך הגבלת זכויות רשימת המודלים. במקרה כזה, יש לשמור על מזהה מודל מפורש בפרופיל ולבדוק זאת עם מבחן החיבור. + +## פתרון בעיות + +- האימות מצליח אך השיחה נכשלת: שם המודל עשוי להיות מחוץ להרשאות או לאזור של החשבון. +- Doubao נכשל עם שם מודל רגיל: יש להשתמש במזהי קצה של Ark בשדה המודל כאשר ההפעלה שלכם דורשת זאת. +- תגובות החשיבה מקוצרות: בדקו את מספר הטוקנים המרבי הספציפי לספק ואת הגדרות הטוקן המרבי המבוססות מודל של Notemd. +- הרשתות האזוריות שונות: השתמשו בקצה של הספק באזור סין כאשר מחשב האוצר נמצא בסין; השתמשו רק בקצה הבינלאומי כאשר החשבון ונתיב הרשת שניהם תקינים. + +## מתי להשתמש + +השתמשו בספקים מסין כאשר עיכובים אזוריים, גישה לתשלומים/חשבונות, איכות בשפה הסינית או העלות הם המגבלה העיקרית. העדיפו OpenAI ישיר, Anthropic, Google או ספקים מקומיים כאשר אתם זקוקים לגבולות פרוטוקול פשוטים יותר או לעקביות חזקה יותר בניפוי שגיאות בין ספקים. + +--- + +## צעדים באופק + +- [LLM Providers](/docs/providers/overview) -- תצורה מלאה, מודלים לכל משימה, ולוגיקת ניסיונות חוזרים +- [פתרון בעיות](/docs/advanced/troubleshooting) -- תקן בעיות של חיבור אזורי ושגיאות אימות diff --git a/website/i18n/he/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/he/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..a05abc64 --- /dev/null +++ b/website/i18n/he/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "להגדיר Google Gemini" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Google Provider + +<TLDR> +**Google משתמש במערכת ההעברה המובנית של שפת הייצור Gemini API.** ההגדרות המוגדרות מראש משתמשות באופן אוטומטי ב-`gemini-2.0-flash-exp`, `https://generativelanguage.googleapis.com/v1` ו-`temperature: 0.5`. זה אינו פרופיל תואם OpenAI. + +זהו חלק מה[Obsidian מדריך ניהול ידע AI](/docs/pillar-ai-knowledge). +</TLDR> + +## הגדרה + +ליצור מפתח Cloud API של Google AI Studio או Google עם גישה ל-Gemini, להוסיף פרופיל ספק `Google`, ולשמור על הבסיס של שפת הייצור המובנית URL. השתמשו בפרופיל Gemini Flash המוגדר מראש לתרגום מהיר ולעבודות עם הערות נרחבות, ואז שנו את המודלים לפי משימה כאשר נדרש מודל Gemini גדול יותר או בעל יכולות גבוהות יותר. + +הימנעו מהכנסת מזהי מודלי Gemini לפרופיל תואם OpenAI אלא אם כן אתם משתמשים באופן מפורש בשער שמציג את Gemini דרך API תואם OpenAI. + +## קצה ואימות + +| שדה | ההגדרה הנוכחית | +|-------|----------------| +| תשלוח | `google` | +| מפתח API | נדרש | +| Base URL | `https://generativelanguage.googleapis.com/v1` | +| מודל ברירת המחדל | `gemini-2.0-flash-exp` | +| טמפרטורה | `0.5` | +| בדיקת חיבור | רק שיחה | + +הביצועים מקראים את `/models/{model}:generateContent?key={apiKey}`. המפתח נמסר כפרמטר של שאילתה מכיוון שזו הדרך שבה נקשר קצה Gemini המובנית בתוסף. + +## גילוי מודלים + +Google משתמש במודול הגילוי `google-models`. הגילוי צריך להחזיר את מודלי Gemini הזמינים למפתח API; אם הבוחר ריק, בדקו את המפתח כנגד אותו בסיס URL ווודאו שמשפחת המודלים מאושרת עבור החשבון. + +הגבולות הידועים של טוקני הפלט תלויים במודל ברשומת הספקים. אם תרגום ארוך או הסבר של תרשים נקטע, בחרו מודל Gemini עם קיבולת פלט גדולה יותר או הפחיתו את גודל הפלט המבוקש. + +## פתרון בעיות + +- `400`: מזהה המודל בדרך כלל אינו תואם לנתיב המובנית של Gemini או הבקשה חורגת מהצורה התומכת של המודל. +- `401` או `403`: בדקו את המגבלות של המפתח, את ההפעלה של הפרויקט/API, והאם המפתח יכול לגשת ל-Gemini. +- `404`: מזהי המודל אינה זמינה בגרסה API המוגדרת. +- דוגמאות של שערים כושלות תחת פרופיל זה: השתמשו בהגדרה של שער במקום בספק המובנית Google. + +## מתי להשתמש + +השתמשו ב-Google לתרגום מהיר, לניקוי הערות בכמויות גדולות, ולעבודות שבהן האיזון בין עלות לביצועים של Gemini טוב יותר מאשר OpenAI או Anthropic ישירים. העדיפו ספק אחר לעבודות שדורשות טיפול במודלי היגיון תואמי OpenAI. + +--- + +## צעדים באופק + +- [LLM Providers](/docs/providers/overview) -- תצורה מלאה, מודלים לכל משימה, ולוגיקת ניסיונות חוזרים +- [תרגום](/docs/features/translation) -- Gemini Flash מומלץ למשימות תרגום בכמויות גדולות diff --git a/website/i18n/he/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/he/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..50bc1579 --- /dev/null +++ b/website/i18n/he/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "מודלים מקומיים" +description: "הגדרו את Ollama ואת ה- LLM המקומיים" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# מודלים מקומיים + +<TLDR> +**הספקים המקומיים שומרים את תוכן הרשימות מחוץ לשרתים המאוחסנים API.** השביל המקומי הנוכחי מכסה את Ollama באמצעות התשלום המקומי `ollama` ואת LMStudio באמצעות התשלום התואם OpenAI. אין צורך במפתח API עבור אף אחד מהשבילים, אך השרת המקומי והמודל חייבים לכבר לרוץ. + +זהו חלק מה[Obsidian מדריך ניהול ידע AI](/docs/pillar-ai-knowledge). +</TLDR> + +## הגדרה + +עבור Ollama, התקינו את Ollama, הורידו את המודל שאתם רוצים, הפעילו את השרת, והוסיפו פרופיל של ספק `Ollama` ב-Notemd. עבור LMStudio, טענו מודל בשרת המקומי של LM Studio והוסיפו פרופיל של ספק `LMStudio`. + +מודלים מקומיים הם תלויויות תפעוליות, ולא רק הגדרות. Notemd יכול רק לקרוא את מה שהתהליך המקומי מציג, לכן יש לבדוק את המודל המקומי מחוץ ל-Obsidian לפני תיקון הפלגין. + +## קצה ואימות + +| ספק | Base URL | מודל ברירת המחדל | מפתח API | הערות | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | לא נדרש | NDJSON שידור חי; גילוי מודלים באמצעות `/api/tags` | +| LMStudio | `localhost:1234/v1` | `local-model` | לא נדרש | שולח את `"EMPTY"` כטוקן בעל; תואם OpenAI | + +Ollama משתמש בנתיב המקומי `/chat` שמתחת ל‑Base URL שלו. LMStudio עוקב אחר המסלול התואם OpenAI של `chat/completions` ומצפה למודל שנטען בשרת המקומי. + +## גילוי מודלים + +Ollama משתמש במוד של גילוי `ollama-tags` ומציג את התגים שהורדו לוקאלית. LMStudio משתמש בגילוי מודלים תואם OpenAI כאשר השרת שלו חושף את `/v1/models`. + +אם החיפוש אינו מחזיר דבר, זה בדרך כלל בעיה של מצב השרת המקומי: המודל לא הורד, לא טוען, או שהשרת מחובר למארח/פורט שונים מאלו של הפרופיל. + +## פתרון בעיות + +- התחברות נדחתה: הפעילו את Ollama או את LM Studio ואשרו את הפורט המוגדר. +- המודל לא נמצא: הורידו את התג Ollama או טענו את מודל LM Studio לפני הבדיקה. +- פלט איטי: הקטינו את גודל ההקשר, השתמשו במודל מקומי קטן יותר, או העבירו משימות כבדות לספק המארח. +- תגובות ריקות או לא תקינות: ודאו שפרופיל הספק הנבחר תואם את פרוטוקול השרת המקומי; Ollama ו-LMStudio אינם ניתנים להחלפה. + +## מתי להשתמש + +השתמשו בספקים מקומיים לארונות פרטיים, עבודה ללא אינטרנט, או משימות חוזרות וזולות. אל תניחו שהשימוש במקומי הוא אוטומטית טוב יותר לסינתזת מחקר או לחשיבה ארוכת טווח; איכות המודל ומגבלות החומרה הם הפשרה. + +--- + +## צעדים באופק + +- [LLM ספקים](/docs/providers/overview) -- תצורה מלאה והגדרת מודל לכל משימה +- [פתרון בעיות](/docs/advanced/troubleshooting) -- תיקון שגיאות connection-refused כאשר השרת המקומי אינו פועל diff --git a/website/i18n/he/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/he/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..89eb7a39 --- /dev/null +++ b/website/i18n/he/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "להגדיר OpenAI (GPT-4, GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# OpenAI Provider + +<TLDR> +**OpenAI משתמש בתשתית המשותפת התואמת OpenAI.** ההגדרות הבסיסיות הנוכחיות משתמשות ב-`gpt-4o`, `https://api.openai.com/v1`, `temperature: 0.5` ובבדיקת החיבור `models-then-chat`. השתמשו בדף זה כאשר אתם זקוקים לסמנטיקה מדויקת של השדות; השתמשו בסקירת [LLM Providers](/docs/providers/overview) לבחירה ברמת הקטגוריה. + +זהו חלק מה[Obsidian מדריך ניהול ידע AI](/docs/pillar-ai-knowledge). +</TLDR> + +## הגדרה + +יצרו מפתח OpenAI API, הוסיפו פרופיל של ספק `OpenAI` בהגדרות Notemd, ושמרו על ה-Base URL הבסיסי אלא אם כן אתם מכוונים במכוון לשער OpenAI-תואם. שדה המודל יכול להישאר על `gpt-4o` לעבודה כללית או להיות מוחלף במזהה מודל OpenAI אחר שהחשבון שלכם יכול לקרוא אליו. + +השתמשו במודלים ספציפיים למשימות לשליטה בעלויות: שמרו מודלים חזקים יותר למחקר, שליפת רעיונות ושינוי מבנה ארוך; השתמשו במודלים זולים יותר או מהירים יותר לתרגום, הצעות קישורים ותקצירים קצרים. + +## קצה ואימות + +| שדה | ההגדרה הנוכחית | +|-------|----------------| +| תשלוח | `openai-compatible` | +| מפתח API | נדרש | +| Base URL | `https://api.openai.com/v1` | +| מודל ברירת המחדל | `gpt-4o` | +| טמפרטורה | `0.5` | +| בדיקת חיבור | `/models`, ואז `/chat/completions` | + +Notemd מנורמל את ה-Base URL התואם OpenAI לפני הוספת `chat/completions` או `models`. אל תכללו `/chat/completions` סופי ב-Base URL; זה יוצר מסלול כפול. + +## גילוי מודלים + +OpenAI משתמש במסלול הכללי לגילוי מודלים התואם OpenAI. ההגדרות UI שואלות קודם `/v1/models`, ואז מאשרות את המודל הנבחר באמצעות בקשת שיחה קלה. אם הגילוי נכשל אך השיחה עדיין עובדת, בדקו האם למפתח שלכם יש רשות לרשימת מודלים או האם שער כלשהו חוסם את רשימת המודלים. + +מודלי חשיבה נחשבים למקרה קיצון של פרוטוקול: Notemd מאחד את תוכן ההודעה של המערכת ושל המשתמש למזהיי חשיבה OpenAI שדוחים תפקיד `system` נפרד, והוא מגלה את `reasoningEffort` רק במקומות שהגדרת הספק תומכת בכך. + +## פתרון בעיות + +- `401` או `403`: בדקו את המפתח, את גישת הפרויקט, את מצב החיובים והאם המודל הנבחר מאושר עבור המפתח. +- `404` בשיחה: ה-Base URL בדרך כלל שגוי או כבר כולל את `/chat/completions`. +- המודל מופיע במסמכים אך לא בממשק הבחירה: גישה לרשימת מודלים וגישה לשיחה הן נקודות כישלון נפרדות; בדקו את מזהה המודל המדויק באופן ידני בפרופיל הספק. +- מודל חשיבה דוחה הודעות: השתמשו במזהה מודל שנכלל במסלול טיפול החשיבה OpenAI או עברו למודל שיחה שאינו מבצע חשיבה. + +## מתי להשתמש + +השתמשו ב-OpenAI כאשר אתם רוצים את המסלול המאורח הבסיסי הצפוי ביותר, כאשר גילוי `/v1/models` חשוב, או כאשר תהליך עבודה תלוי בסמנטיקה של מודל החשיבה OpenAI. העדיפו שער או ספק מקומי כאשר ניהול מסלולים, פרטיות או שליטה בעלויות חשובים יותר מהתנהגות ה-OpenAI API הישירה. + +--- + +## צעדים באופק + +- [LLM Providers](/docs/providers/overview) -- תצורה מלאה, מודלים לכל משימה, ולוגיקת ניסיונות חוזרים +- [Troubleshooting](/docs/advanced/troubleshooting) -- תיקון שגיאות 401/403 ומגבלות קצב diff --git a/website/i18n/he/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/he/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..6810c857 --- /dev/null +++ b/website/i18n/he/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "ספקי LLM" +description: "להגדיר 36 ספקי LLM — ענן, שער ומקומי — עם בחירת מודל לכל משימה" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# ספקי LLM + +<TLDR> +**Notemd תומך ב-36 ספקי LLM ב-4 סוגי תעבורה.** כל הקריאות API משתמשות ב-HTTP גולמי (בלי SDKs) עם ניסיונות חוזרים אוטומטיים, חלופת תעבורה ואחסון תגובות ל-5 דקות. בחירת מודל לכל משימה מאפשרת להשתמש במודלים זולים לשליפת רעיונות ובמודלים חזקים למחקר. אין צורך במפתח API עבור ספקים מקומיים (Ollama, LMStudio). +</TLDR> + +זהו חלק מה[Obsidian מדריך ניהול ידע AI](/docs/pillar-ai-knowledge). + +## קטגוריות של ספקים + +### ספקי ענן + +| ספק | בסיס URL ברירת מחדל | מודל ברירת המחדל | טמפרטורה | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### ספקי שער/פרוקסי + +| ספק | בסיס URL ברירת מחדל | מודל ברירת המחדל | הערות | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | מוסיף כותרות `HTTP-Referer` + `X-Title` | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | מוסיף כותרת `X-GitHub-Api-Version` | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | מוסיף כותרת `APP-Code` | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | מפתח API אופציונלי | +| **New API** | `localhost:3000/v1` | `gpt-4.1` | מפתח API אופציונלי | +| **OpenAI Compatible** | (user-configured) | `your-model-id` | קצה מותאם אישית | + +### ספקים בסין + +| ספק | בסיס ברירת המחדל URL | מודל ברירת המחדל | הערות | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | ממוקד קידוד | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (נדרש מזהה קצה) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | קצה Zhipu, סין | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | קצה Zhipu, בינלאומי | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | פלטפורמת אחסון מודלים | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao דורש מזהה קצה Ark** (פורמט: `ep-xxxxxxxx-xxxx-xxxx`). יש להחליף את המקום התופס הברירתי. + +### ספקים מקומיים + +| ספק | בסיס ברירת המחדל URL | מודל ברירת המחדל | הערות | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | אין מפתח API. שידור NDJSON. גילוי מודלים דרך `/api/tags` | +| **LMStudio** | `localhost:1234/v1` | `local-model` | שולח `"EMPTY"` כטוקן בארר. גילוי תואם OpenAI | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (מוגדר על ידי המשתמש) | `gpt-4o` | שם ההפצה ב- URL. כותרת `api-key` | + +## בחירת מודל למשימה + +Notemd תומך בספק ובמודל עצמאיים לכל משימה. הפעלה באמצעות `useMultiModelSettings: true`. + +### משימות זמינות + +| משימה | מפתח הגדרות | ספק ברירת המחדל | +|------|-------------|-----------------| +| הוספת לינקים (הכנסת לינק wiki) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| מחקר (חיפוש אינטרנט + סיכום) | `researchProvider` / `researchModel` | DeepSeek | +| יצירה מהכותרת | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| תרגום | `translateProvider` / `translateModel` | DeepSeek | +| ייצור דיאגרמות | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| שליפת רעיונות | `extractConceptsProvider` / `Model` | DeepSeek | +| שליפת טקסט מקורי | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### סדר הפתרון + +1. אם `useMultiModelSettings` פעיל → השתמש בספק ובמודל הספציפיים למשימה +2. אם עריכת מודל המשימה ריקה → חזור למודל הברירת המחדל של הספק +3. אם ספק המשימה בלתי תקין → חזור ל- `activeProvider` הגלובלי +4. אם `useMultiModelSettings` כבוי → כל המשימות משתמשות ב-`activeProvider` הגלובלי + +### תצורות מומלצות + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## ארכיטקטורת הקריאה של API + +### שכבות ההעברה + +1. **Obsidian `requestUrl`** — ראשית (מובנה, עובד על כל הפלטפורמות) +2. **Desktop HTTP** — מודולי Node.js `http`/`https` (שידור + בקשות ארוכות) +3. **Web `fetch`** — חלופה כאשר מודולי Node.js אינם זמינים + +התוסף מעביר אוטומטית בין שכבות ההעברה במקרה של שגיאות רשת זמניות. + +### לוגיקת ניסיונות מחדש + +- **מצב רגיל** (`enableStableApiCall: false`): ניסיון אחד. במקרה של כישלון זמני, הוא מעלה אוטומטית לניסיון חוזר יציב. +- **מצב ניסיונות מחדש יציב** (`enableStableApiCall: true`): עד 4 ניסיונות (1 + 3 ניסיונות חוזרים) עם מרווחים של 5 שניות. +- **שגיאות זמניות הגורמות לניסיון מחדש**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **לא ניתנים לניסיון מחדש**: HTTP 400, 401, 403, 404 + +### אחסון בקשות בזיכרון + +מאגר זיכרון LRU של 5 דקות המבוסס על מפתח של ספק + מודל + טמפרטורה + הודעה + תוכן. בקשות זהות שמגיעות לאחר 5 דקות מקבלות את התוצאות המאוחסנות מיד. + +### טיפול במודלי החשיבה + +מודלים שאינם תומכים בתפקיד `system` (DeepSeek R1, OpenAI o1/o3/o4/gpt-5) משלבים אוטומטית את ההודעות של המערכת והמשתמש להודעת משתמש אחת. + +DeepSeek-specific: `thinkingEnabled` מוסיף `{ thinking: { type: 'enabled' } }` לבקשה. `reasoningEffort` (נמוך/בינוני/גבוה) נמסר כ- `reasoning_effort`. בודק שמספר הטוקנים המרבי בפלט ≥ 8000 כאשר החשיבה מופעלת. + +### הערכת טוקנים + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — הירור של 4 אותיות לכל טוקן. משמש לאכיפת `maxResearchContentTokens` לפני שליחה ל- LLM. + +אין מעקב אחר עלויות מיושם. + +## גילוי מודלים + +| מצב | ספקים | קצה | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | רשימת המודלים API | +| `anthropic-models` | Anthropic | רשימת המודלים API | +| `openai-compatible-models` | DeepSeek, Qwen, Mistral, וכו' | `/v1/models` | +| `openrouter-models` | OpenRouter | רשימת המודלים API | +| `github-models` | GitHub Models | הסקה API | +| `none` | Azure OpenAI | מושבת (דורש שם פריסה) | + +## התחלה מהירה + +1. **בחרו ספק** — DeepSeek (סין), OpenAI (בינלאומי), או Ollama (מקומי/חינמי) +2. **הזינו מפתח API** — הגדרות → Notemd → ספק → מפתח API +3. **בדקו חיבור** — לחצו על כפתור הבדיקה +4. **אופציונלי: מודלים לכל משימה** — הפעילו `useMultiModelSettings` והגדירו אותו בנפרד + +עבור Ollama: אין צורך במפתח API. רק ודאו ש`ollama serve` פועל. + +--- + +## צעדים באופק + +- 📝 [הערות רעיוניות](/docs/features/concept-notes) — משתמש במודל חילוץ לכל משימה +- 🎨 [דיאגרמות](/docs/features/diagrams) — משתמש במודל דיאגרמות לכל משימה +- 🔍 [מחקר](/docs/features/research) — משתמש במודל ספציפי למחקר +- ⚙️ [הגדרות](/docs/getting-started/configuration) — הפנייה לכל ההגדרות diff --git a/website/i18n/he/docusaurus-theme-classic/footer.json b/website/i18n/he/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/he/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/he/docusaurus-theme-classic/navbar.json b/website/i18n/he/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/he/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/hi/code.json b/website/i18n/hi/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/hi/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/hi/docusaurus-plugin-content-docs/current.json b/website/i18n/hi/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/hi/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/hi/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/hi/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..1b9e19ea --- /dev/null +++ b/website/i18n/hi/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "बैच प्रोसेसिंग" +description: "कई फ़ाइलों को कुशलतापूर्वक संसाधित करें" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# बैच प्रोसेसिंग + +<TLDR> +**Notemd एक ही कार्य में समायोज्य समवर्तीता एवं ओवरराइट नियंत्रण के साथ पूरे फ़ोल्डरों को संसाधित करता है।** किसी फ़ोल्डर पर राइट-क्लिक करके विकि-लिंक बैच में जोड़ें, अंदर की सभी नोट्स से अवधारणाएँ निकालें, शोध करें या उनका अनुवाद करें। समवर्तीता सीमाएँ API रेट-लिमिट त्रुटियों को रोकती हैं। प्रत्येक फ़ाइल के लिए प्रगति की रिपोर्ट दी जाती है। ओवरराइट व्यवहार समायोज्य है: मौजूदा फ़ाइलों को छोड़ें, उनके अंत में जोड़ें या प्रतिस्थापित करें। विफल फ़ाइलों को लॉग किया जाता है लेकिन बैच रुकता नहीं है. + +यह [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge) का हिस्सा है. +</TLDR> + +## अवलोकन + +बैच प्रोसेसिंग नोट्स वाले फ़ोल्डर को एक ही कार्य में बदल देती है। प्रत्येक नोट खोलकर अलग-अलग कमांड चलाने के बजाय, आप फ़ोल्डर पर राइट-क्लिक करके कार्य चुनते हैं। Notemd प्रत्येक `.md` फ़ाइल के माध्यम से चलता है, चुना गया कार्य लागू करता है एवं वास्तविक समय में प्रगति की रिपोर्ट देता है. + +यह सुविधा पूरे वॉल्ट में ज्ञान निकालने हेतु आवश्यक है। उदाहरण के लिए, दर्जनों PDFs आयात करने के बाद, बैच-एड-लिंक्स के बाद बैच-एक्सट्रैक्ट-कॉन्सेप्ट्स करने से आपका ज्ञान ग्राफ़ कुछ ही मिनटों में बन जाता है, घंटों में नहीं. + +## यह कैसे काम करता है + +### बैच निष्पादन मॉडल + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **फ़ाइल संग्रह** -- Notemd लक्षित फ़ोल्डर को पुनरावर्ती रूप से (या केवल टॉप-लेवल पर, सेटिंग्स के आधार पर) स्कैन करता है एवं सभी `.md` फ़ाइलों को एकत्र करता है. +2. **समवर्तीता विभाजन** -- फ़ाइलों को `batchConcurrency` सेटिंग के आधार पर खंडों में विभाजित किया जाता है। प्रत्येक खंड समानांतर रूप से चलता है; खंड क्रमिक रूप से चलते हैं. +3. **निष्पादन** -- प्रत्येक फ़ाइल को एकल-फ़ाइल कमांड के समान ही तर्क का उपयोग करके संसाधित किया जाता है। प्रत्येक कार्य हेतु प्रदाता एवं मॉडल सेटिंग्स का सम्मान किया जाता है. +4. **प्रगति रिपोर्टिंग** -- प्रत्येक फ़ाइल पूरी होने के बाद एक टोस्ट सूचना अपडेट होती है, जिसमें `N / Total` प्रगति दिखाई देती है. +5. **त्रुटि प्रबंधन** -- यदि कोई फ़ाइल विफल हो जाती है (API त्रुटि, नेटवर्क टाइमआउट आदि), तो त्रुटि लॉग की जाती है एवं बैच जारी रहता है। अंतिम सारांश में सभी विफल फ़ाइलों की सूची दी जाती है. +6. **समाप्ति** -- एक सारांश टोस्ट में कुल प्रोसेस की गई फ़ाइलों, सफलताओं एवं विफलताओं की जानकारी दी जाती है. + +### ओवरराइट व्यवहार + +जब किसी ऐसी फ़ाइल को संसाधित किया जाता है जिसमें पहले से ही विकि-लिंक, कॉन्सेप्ट नोट्स या अनुवाद मौजूद होते हैं, तो Notemd का व्यवहार ओवरराइट सेटिंग पर निर्भर करता है: + +| मोड | व्यवहार | +|------|----------| +| **स्किप** | मौजूदा सामग्री बिना छुए रहती है। केवल अपरिवर्तित फ़ाइलों को ही संसाधित किया जाता है. | +| **एपेंड** (डिफ़ॉल्ट) | नई सामग्री जोड़ी जाती है। मौजूदा विकि-लिंक, कॉन्सेप्ट्स या अनुवाद संरक्षित रहते हैं. | +| **रिप्लेस** | फ़ाइल पूरी तरह से पुनः संसाधित की जाती है। सभी पिछले Notemd संशोधन ओवरराइट हो जाते हैं. | + +विशेष रूप से विकि-लिंकिंग के लिए: यदि कोई नोट पहले से ही `[[wiki-links]]` से युक्त है, तो **स्किप** मोड उसे वैसा ही छोड़ देता है, जबकि **रिप्लेस** पूरा नोट LLM को नए लिंक सम्मिलित करने हेतु फिर से भेजता है। धीरे-धीरे संसाधन करने हेतु **स्किप** एवं मॉडल अपग्रेड के बाद पुनः संसाधन करने हेतु **रिप्लेस** का उपयोग करें. + +### समवर्तीता नियंत्रण + +`batchConcurrency` सेटिंग समानांतर API कॉलों को सीमित करती है। इससे कड़े कोटा वाले प्रदाताओं के साथ बड़ी फ़ोल्डरों को संसाधित करते समय रेट-लिमिट त्रुटियाँ (HTTP 429) नहीं आती हैं. + +| समवर्तीता | अनुशंसित उपयोग | सामान्य रेट-लिमिट प्रभाव | +|-------------|----------------|---------------------------| +| `1` | मुफ्त स्तर, कड़े प्रदाता | कोई नहीं (सीरियल) | +| `3` (डिफ़ॉल्ट) | अधिकांश क्लाउड प्रदाता | कम | +| `5` | Ollama (लोकल), उदार स्तर | कोई नहीं / कम | +| `10` | तेज़ इन्फरेंस वाले लोकल मॉडल | कोई नहीं | + +यदि बैच प्रोसेसिंग के दौरान आपको 429 त्रुटियाँ मिलती हैं, तो समानांतरता को 1 या 2 तक कम करें. + +## कॉन्फ़िगरेशन + +| सेटिंग | डिफ़ॉल्ट | प्रभाव | +|---------|---------|--------| +| `batchConcurrency` | `3` | फ़ोल्डर संचालन के दौरान अधिकतम समानांतर API कॉल | +| `batchOverwriteExisting` | `false` | मौजूदा Notemd सामग्री को ओवरराइट करें। `false` = एपेंड मोड है। | +| `batchSkipProcessed` | `false` | उन फ़ाइलों को छोड़ दें जिनमें पहले से ही Notemd मार्कर मौजूद हैं (उदाहरण के लिए, विकि-लिंक्स) | +| `batchRecursive` | `true` | फ़ोल्डर को स्कैन करते समय सब-डायरेक्टरीज़ को शामिल करें | +| `enableStableApiCall` | `false` | बैच के दौरान प्रत्येक फ़ाइल के लिए रिट्राय लॉजिक सक्षम करें (अधिकतम 4 प्रयास) | + +### बैच में प्रति-टास्क मॉडल + +प्रत्येक बैच ऑपरेशन में संबंधित प्रति-टास्क मॉडल का उपयोग होता है। batch-add-links में `addLinksProvider` का उपयोग होता है, batch-research में `researchProvider` का उपयोग होता है, आदि। इसका मतलब है कि आप बड़े पैमाने पर ऑपरेशनों के लिए सस्ते मॉडल नियुक्त कर सकते हैं और गुणवत्ता-संवेदनशील कार्यों के लिए महंगे मॉडल आरक्षित कर सकते हैं. + +## उदाहरण + +आपके पास `papers/` नामक एक फ़ोल्डर है जिसमें 40 आयात किए गए शोध नोट्स हैं। आप सभी में विकि-लिंक्स जोड़ना और अवधारणाओं को निकालना चाहते हैं: + +1. `papers/` फ़ोल्डर पर राइट-क्लिक करें +2. **"Notemd: Process folder (add links)"** का चयन करें +3. Notemd फ़ोल्डर की स्कैनिंग करता है, 40 `.md` फ़ाइलें पाता है, एवं डिफ़ॉल्ट कनकरेंसी के अनुसार हर बार 3 फ़ाइलों को प्रोसेस करता है +4. एक प्रगति टोस्ट दिखाता है: `12/40 files processed...` +5. लगभग 3 मिनट बाद, एक सारांश टोस्ट रिपोर्ट करता है: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. सभी 40 फ़ाइलों के लिए कॉन्सेप्ट नोट बनाने हेतु **"Notemd: Process folder (extract concepts)"** का उपयोग करके प्रक्रिया दोहराएं + +जो एक फ़ाइल विफल रही है उसका लॉग बन जाता है। आप बाद में केवल उसी फ़ाइल पर पुनः चला सकते हैं. + +## सुझाव + +- **कम कनकरेंसी से शुरू करें** -- यदि आपको अपने प्रदाता की रेट-लिमिट के बारे में यकीन न हो, तो `1` से शुरू करें एवं धीरे-धीरे इसे बढ़ाएं. +- **इंक्रीमेंटल अपडेट हेतु स्किप मोड का उपयोग करें** -- पहले पूरे बैच के बाद, `batchSkipProcessed: true` पर स्विच करें ताकि बाद के चलानों में केवल नए नोट ही प्रोसेस हों. +- **स्थिर API कॉल सक्षम करें** -- `enableStableApiCall: true` लंबे बैचों के दौरान अस्थायी नेटवर्क त्रुटियों से बचने हेतु रिट्राई लॉजिक जोड़ता है. +- **मॉडल अपग्रेड के बाद पुनः चलाएं** -- यदि आप बेहतर मॉडल पर स्विच करते हैं, तो `batchOverwriteExisting: true` सेट करके पुनः चलाएं ताकि बेहतर लिंक एवं कॉन्सेप्ट प्राप्त हों. + +--- + +## अगले चरण + +- [Workflows](/docs/features/workflows) -- बैच टास्कों को वन-क्लिक साइडबार बटनों में श्रृंखलाबद्ध करें +- [Custom Prompts](/docs/advanced/custom-prompts) -- बैच एक्सट्रैक्शन हेतु प्रॉम्प्टों को कस्टमाइज़ करें +- [Troubleshooting](/docs/advanced/troubleshooting) -- बैच चलानों के दौरान रेट-लिमिट त्रुटियों एवं कनेक्शन विफलताओं को ठीक करें +- [LLM प्रदाता](/docs/providers/overview) -- प्रति-कार्य मॉडल कॉन्फ़िगरेशन संदर्भ diff --git a/website/i18n/hi/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/hi/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..095db7cd --- /dev/null +++ b/website/i18n/hi/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "कस्टम प्रॉम्प्ट्स" +description: "अपनी आवश्यकताओं के अनुसार LLM प्रॉम्प्ट्स को कस्टमाइज़ करें" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# कस्टम प्रॉम्प्ट्स + +<TLDR> +**Notemd आपको हर टास्क प्रकार के लिए डिफ़ॉल्ट LLM प्रॉम्प्ट को ओवरराइड करने की सुविधा देता है.** कस्टम प्रॉम्प्ट्स आपको यह नियंत्रण देते हैं कि मॉडल किस चीज़ को प्राथमिकता दे: आप अवधारणा निष्कर्षण को किसी विशेष क्षेत्र तक सीमित कर सकते हैं, लिंकिंग शैली बदल सकते हैं, या अनुवाद के स्वर को पुनः निर्देशित कर सकते हैं. `{{content}}` और `{{concept}}` जैसे प्रॉम्प्ट वेरिएबल रनटाइम पर प्रतिस्थापित किए जाते हैं. ‘फोकस्ड लर्निंग डोमेन’ सुविधा आपके अध्ययन क्षेत्र को शुरुआत में जोड़कर निष्कर्षण परिणामों को स्वचालित रूप से सीमित करती है. + +यह [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge) का हिस्सा है. +</TLDR> + +## अवलोकन + +Notemd के बिल्ट-इन प्रॉम्प्ट्स सामान्य उद्देश्यों के ज्ञान कार्यों के लिए लिखे गए हैं. ये विभिन्न क्षेत्रों में अच्छी तरह काम करते हैं, लेकिन क्षेत्र-विशिष्ट सुधार के लिए भी जगह छोड़ते हैं. कस्टम प्रॉम्प्ट्स आपको LLM को यह बताने की सुविधा देते हैं कि आपके उपयोग के मामले में उसे कैसे व्यवहार करना चाहिए -- चाहे वह केवल चिकित्सा संबंधी शब्दावली निकालना हो, केवल नामित इकाइयों को जोड़ना हो, या औपचारिक शैली में अनुवाद करना हो. + +कस्टम प्रॉम्प्ट्स पूरे सिस्टम प्रॉम्प्ट को प्रतिस्थापित नहीं करते. वे **टास्क-विशिष्ट निर्देश भाग** को ओवरराइड या पूरक बनाते हैं, जबकि Notemd द्वारा पार्स करने हेतु आवश्यक संरचनात्मक आउटपुट प्रारूप (जैसे `CONCEPT:` पंक्तियाँ, विकी-लिंक सिंटैक्स) को बरकरार रखते हैं. + +## यह कैसे काम करता है + +### प्रॉम्प्ट आर्किटेक्चर + +हर Notemd टास्क एक ही प्रॉम्प्ट संरचना का पालन करता है: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **बेस सिस्टम प्रॉम्प्ट** -- सहायक का व्यक्तित्व निर्धारित करता है. इसे ओवरराइड नहीं किया जा सकता. +2. **फोकस्ड लर्निंग डोमेन** -- `Relevant Fields: [medicine / law / computer science / ...]` को शुरुआत में जोड़कर दायरे को सीमित करता है. यह एक सेटिंग टॉगल है, कोई कच्चा प्रॉम्प्ट नहीं है. +3. **कस्टम टास्क प्रॉम्प्ट** -- डिफ़ॉल्ट टास्क निर्देशों को प्रतिस्थापित करता है (जैसे किस प्रकार की अवधारणाओं को निकालना है, कितनी आक्रामकता से लिंक करना है). +4. **आउटपुट प्रारूप** -- संरचनात्मक नियम (`CONCEPT:` पंक्तियाँ, विकी-लिंक प्रारूप). Notemd द्वारा हमेशा अंत में जोड़ा जाता है ताकि पार्स करना संभव रहे. +5. **कंटेंट** -- वास्तविक नोट टेक्स्ट, जिसे रनटाइम पर `{{content}}` के माध्यम से प्रतिस्थापित किया जाता है. + +### प्रॉम्प्ट वेरिएबल्स + +वेरिएबल्स निष्पादन समय पर प्रतिस्थापित किए जाते हैं. उपलब्ध वेरिएबल्स टास्क के अनुसार भिन्न होते हैं: + +| वेरिएबल | कार्य | प्रतिस्थापित किया गया | +|----------|-------|---------------| +| `{{content}}` | सभी | नोट या चयनित पाठ | +| `{{concept}}` | कॉन्सेप्ट नोट टेम्पलेट | निकाला गया कॉन्सेप्ट नाम | +| `{{description}}` | कॉन्सेप्ट नोट टेम्पलेट | LLM-जनरेटेड कॉन्सेप्ट विवरण | +| `{{backlinks}}` | कॉन्सेप्ट नोट टेम्पलेट | लिंक के साथ स्रोत नोट्स की सूची | +| `{{date}}` | कॉन्सेप्ट नोट टेम्पलेट | वर्तमान तिथि (YYYY-MM-DD) | +| `{{language}}` | अनुवाद | लक्ष्य आउटपुट भाषा | +| `{{source}}` | कॉन्सेप्ट नोट टेम्पलेट | स्रोत नोट का मूल नाम | + +### केंद्रित सीखने का क्षेत्र + +केंद्रित सीखने की सुविधा डोमेन सीमांकन हेतु एक शॉर्टकट है। अपने क्षेत्र का उल्लेख करने वाला कस्टम प्रॉम्प्ट लिखने के बजाय, आप सेटिंग्स में `focusedLearningDomain` सेट करते हैं: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +यह निष्कर्षण प्रॉम्प्ट के आगे `Relevant Fields: [medicine]` जोड़ देता है, जिससे LLM डोमेन-संबंधी अवधारणाओं को प्राथमिकता देता है एवं सामान्य अवधारणाओं को दबा देता है। यह पूर्ण कस्टम प्रॉम्प्ट की तुलना में हल्का है एवं सभी निष्कर्षण कार्यों में कार्य करता है. + +## कॉन्फ़िगरेशन + +| सेटिंग | डिफ़ॉल्ट | प्रभाव | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | डिफ़ॉल्ट ‘add-links’ कार्य प्रॉम्प्ट को ओवरराइड करें | +| `customExtractConceptsPrompt` | `''` | डिफ़ॉल्ट ‘concept extraction’ प्रॉम्प्ट को ओवरराइड करें | +| `customResearchPrompt` | `''` | डिफ़ॉल्ट ‘research + summarize’ प्रॉम्प्ट को ओवरराइड करें | +| `customTranslatePrompt` | `''` | डिफ़ॉल्ट ‘translation’ प्रॉम्प्ट को ओवरराइड करें | +| `customDiagramPrompt` | `''` | डिफ़ॉल्ट ‘diagram generation’ प्रॉम्प्ट को ओवरराइड करें | +| `focusedLearningDomain` | `''` | निष्कर्षण एवं लिंकिंग प्रॉम्प्ट्स में विषय-संबंधी संदर्भ जोड़ें | +| `extractConceptsMinimalTemplate` | `true` | केवल शीर्षक वाला ‘concept note’ टेम्पलेट उपयोग करें (यह `{{concept}}` टेम्पलेट के दायरे को प्रभावित करता है) | +| `customConceptNoteTemplate` | `''` | पूर्ण वेरिएबल समर्थन वाला ‘concept note’ फ़ाइल टेम्पलेट ओवरराइड करें | + +**जब कस्टम प्रॉम्प्ट फ़ील्ड खाली होता है, तो अंतर्निहित डिफ़ॉल्ट प्रॉम्प्ट ही उपयोग में आता है.** + +## उदाहरण + +आप एक चिकित्सा शोधकर्ता हैं जो क्लिनिकल ट्रायल नोट्स से अवधारणाएँ निकाल रहे हैं। डिफ़ॉल्ट प्रॉम्प्ट चिकित्सा शब्दों के साथ-साथ सामान्य संज्ञाओं को भी निकालता है, जिससे आपका ‘concept’ फ़ोल्डर अस्त-व्यस्त हो जाता है. + +**समाधान:** एक केंद्रित सीखने का क्षेत्र एवं एक कस्टम निष्कर्षण प्रॉम्प्ट सेट करें. + +1. `focusedLearningDomain` को `medicine` पर सेट करें +2. `customExtractConceptsPrompt` को इस प्रकार सेट करें: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +जब आप किसी क्लिनिकल नोट पर "Extract concepts" चलाते हैं, तो LLM निम्नलिखित उत्पन्न करता है: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +डिफ़ॉल्ट व्यवहार के बजाय, जिसमें "hospital" या "month" जैसे अनावश्यक सामान्य शब्द भी निकाले जा सकते हैं. + +## सुझाव + +- पूरा कस्टम प्रॉम्प्ट लिखने से पहले **केंद्रित सीखने के क्षेत्र** से शुरू करें। एक ही सेटिंग से 80% उपयोग मामले कवर हो जाते हैं. +- **आउटपुट प्रारूप को बनाए रखें** -- कस्टम प्रॉम्प्ट से "one per line" या "CONCEPT: prefix" जैसे प्रारूप निर्देश कभी न हटाएँ। Notemd का पार्सर इन्हीं पर निर्भर करता है. +- **पहले एक ही नोट से परीक्षण करें** -- कस्टम प्रॉम्प्ट से निकालने की सीमा पर अप्रत्याशित प्रभाव पड़ सकते हैं। बैच प्रोसेसिंग से पहले एक नोट पर ही सत्यापन करें. +- **प्रॉम्प्ट्स को संक्षिप्त रखें** -- अत्यधिक लंबे कस्टम प्रॉम्प्ट्स टोकन खपत करते हैं और मॉडल का ध्यान भंग कर सकते हैं. + +--- + +## अगले चरण + +- [Wiki-Links](/docs/features/wiki-links) -- जब आप add-links प्रॉम्प्ट को कस्टमाइज़ करते हैं तो क्या लिंक होता है +- [Concept Notes](/docs/features/concept-notes) -- कॉन्सेप्ट नोट टेम्पलेट और `{{concept}}` वेरिएबल +- [Batch Processing](/docs/advanced/batch-processing) -- पूरे फ़ोल्डरों में कस्टम प्रॉम्प्ट्स लागू करें +- [Troubleshooting](/docs/advanced/troubleshooting) -- ऐसी समस्याओं को ठीक करें जहाँ कस्टम प्रॉम्प्ट्स से अप्रत्याशित आउटपुट प्राप्त होता है diff --git a/website/i18n/hi/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/hi/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..db3ca9a2 --- /dev/null +++ b/website/i18n/hi/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "समस्या निवारण" +description: "सामान्य समस्याएँ एवं समाधान" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# समस्या निवारण + +<TLDR> +**अधिकांश Notemd समस्याएँ चार श्रेणियों में आती हैं: API मुख्य समस्याएँ, नेटवर्क कनेक्टिविटी, प्रमाणीकरण त्रुटियाँ (401/403), एवं दर सीमाएँ (429)।** अंतर्निहित कनेक्शन परीक्षण एवं निदान पैनल जल्दी ही मूल कारण की पहचान करते हैं। यह पृष्ठ प्रत्येक सामान्य त्रुटि संदेश, उसका कारण एवं समाधान को कवर करता है। जो समस्याएँ यहाँ सूचीबद्ध नहीं हैं, उन्हें निदान आउटपुट के साथ GitHub Issues पर रिपोर्ट करें. + +यह [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge) का हिस्सा है. +</TLDR> + +## अवलोकन + +Notemd बाहरी सेवाओं पर निर्भर है -- LLM प्रदाताओं एवं खोज API सेवाओं पर -- इसलिए अधिकांश समस्याएँ प्लगइन के बाहर ही उत्पन्न होती हैं। सेटिंग्स में मौजूद निदान पैनल पिछले API कॉल का संरचित दृश्य प्रदान करता है, जिसमें अनुरोध URL, प्रतिक्रिया स्थिति एवं त्रुटि बॉडी शामिल है। आगे जाँच करने से पहले हमेशा इसे पहले ही देखें. + +## यह कैसे कार्य करता है: निदान + +### कनेक्शन परीक्षण + +प्रत्येक प्रदाता कॉन्फ़िगरेशन विभाग में एक **“Test Connection”** बटन होता है। इसे क्लिक करने से एक न्यूनतम API अनुरोध भेजा जाता है (आमतौर पर मॉडल सूची या एक छोटा पूर्णीकरण) एवं सफलता या विशिष्ट HTTP त्रुटि की रिपोर्ट दी जाती है। यह आपके API कुंजी एवं बेस URL के सही होने की पुष्टि करने का सबसे तेज़ तरीका है. + +### निदान पैनल + +**Settings --> Notemd --> Diagnostics** में निम्नलिखित दिखाया जाता है: + +| फ़ील्ड | सामग्री | +|-------|---------| +| पिछला प्रदाता | कौन सा प्रदाता पिछले बार कॉल किया गया था | +| पिछला मॉडल | कौन सा मॉडल पिछले बार कॉल किया गया था | +| अंतिम स्थिति | HTTP स्टेटस कोड या ट्रांसपोर्ट त्रुटि | +| अंतिम त्रुटि | API से प्राप्त कच्चा त्रुटि संदेश | +| अंतिम अनुरोध URL | पिछले अनुरोध का पूरा URL (API कुंजी हटाई गई है) | +| अंतिम प्रतिक्रिया बॉडी | ट्रंक्टेड रिस्पॉन्स बॉडी (पहले 500 कैरेक्टर) | + +GitHub पर समस्याओं की रिपोर्ट करते समय पूरा डायग्नोस्टिक्स आउटपुट कॉपी करें। + +## आम त्रुटियाँ + +### API कुंजी अमान्य है या गायब है + +**लक्षण:** HTTP 401 या “गलत API कुंजी प्रदान की गई है” + +**कारण:** API कुंजी गायब है, इसमें खाली स्थान है, या यह किसी अन्य प्रदाता से संबंधित है। + +**समाधान:** +1. सुनिश्चित करें कि कुंजी में कोई शुरुआती/अंतिम स्पेस न हो। +2. पुष्टि करें कि कुंजी चयनित प्रदाता से मेल खाती है (एक OpenAI कुंजी Anthropic के साथ काम नहीं करेगी) +3. यह जाँचें कि आपके खाते में क्रेडिट हैं या कोई सक्रिय सब्सक्रिप्शन है +4. सत्यापन करने हेतु **"Test Connection"** पर क्लिक करें + +### नेटवर्क / कनेक्शन संबंधी त्रुटियाँ + +**लक्षण:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**कारण:** आपके मशीन से API एंडपॉइंट तक पहुँच संभव नहीं है. + +**समाधान:** +1. अपने इंटरनेट कनेक्शन की जाँच करें +2. यदि आप प्रॉक्सी या फ़ायरवॉल के पीछे हैं, तो API डोमेन ब्लॉक न होने की पुष्टि करें +3. Ollama के लिए: `ollama serve` चल रहा है या नहीं यह सुनिश्चित करें (`ollama list` से मॉडल प्राप्त होने चाहिए) +4. LMStudio के लिए: `localhost:1234` पर सर्वर चल रहा है या नहीं यह सुनिश्चित करें +5. कोई अन्य ट्रांसपोर्ट आज़माएँ – मोबाइल उपयोगकर्ताओं को `requestUrl` ट्रांसपोर्ट सक्रिय होना चाहिए +6. अस्थायी त्रुटियों पर स्वचालित पुनः प्रयास हेतु `enableStableApiCall` को सक्षम करें + +### 403 Forbidden + +**लक्षण:** HTTP 403 + +**कारण:** आपकी API कुंजी वैध है लेकिन अनुरोधित संसाधन के लिए अनुमति नहीं है. + +**समाधान:** +1. कुछ मॉडलों के लिए विशेष पहुँच की आवश्यकता होती है (उदाहरण के लिए, Azure के माध्यम से GPT-4 के लिए एक डिप्लॉयमेंट नाम आवश्यक है) +2. कुछ प्रदाता योजना स्तर के अनुसार मॉडलों पर प्रतिबंध लगाते हैं -- अपने खाते की जाँच करें +3. क्षेत्रीय प्रतिबंध लागू हो सकते हैं (कुछ चीनी प्रदाता अंतरराष्ट्रीय IP पर प्रतिबंध लगाते हैं और इसके विपरीत भी) +4. सुनिश्चित करें कि मॉडल नाम सही ढंग से लिखा गया है (उदाहरण के लिए, mini मॉडल के लिए `gpt-4o` न कि `gpt-4o-mini`, जबकि आपकी पूरी योजना इसे ही अनुमति देती है) + +### रेट लिमिट (429) + +**लक्षण:** HTTP 429 या “रेट लिमिट एक्सपीर्ड” + +**कारण:** छोटे समय अंतराल में बहुत सारे अनुरोध होना. + +**समाधान:** +1. `batchConcurrency` को `1` या `2` तक कम करें +2. पुनः प्रयास करने से पहले कुछ मिनट इंतजार करें +3. अपनी योजना स्तर के लिए अपने प्रदाता के रेट लिमिट दस्तावेज़ों की जाँच करें +4. बैकऑफ के साथ स्वचालित पुनः प्रयास हेतु `enableStableApiCall` को सक्षम करें +5. उच्च सीमाओं वाले प्रदाता (DeepSeek, Ollama) में स्विच करने पर विचार करें + +### मॉडल नहीं मिला + +**लक्षण:** “मॉडल नहीं मिला” या HTTP 404 + +**कारण:** चुने गए प्रदाता पर मॉडल नाम मौजूद नहीं है. + +**समाधान:** +1. अपने प्रदाता के लिए उपलब्ध सभी मॉडल देखने हेतु **"Get Model List"** पर क्लिक करें +2. कुछ मॉडलों के नाम समय के साथ बदल जाते हैं -- प्रदाता के दस्तावेज़ों में वर्तमान नाम की पुष्टि करें +3. Ollama के लिए: पुल किए गए मॉडल देखने हेतु `ollama list` चलाएं; केवल डाउनलोड किए गए मॉडल ही उपलब्ध हैं + +### कोई लिंक / कोई अवधारणाएँ उत्पन्न नहीं हुईं + +**लक्षण:** कमांड चलती है लेकिन कोई आउटपुट नहीं आता + +**कारण:** LLM ने खाली या पार्स न किया जा सकने वाला जवाब दिया है. + +**समाधान:** +1. वास्तविक LLM जवाब देखने हेतु डायग्नोस्टिक्स पैनल की जाँच करें +2. एक अधिक सक्षम मॉडल आज़माएँ (कुछ छोटे मॉडल संरचित आउटपुट के साथ समस्या करते हैं) +3. सुनिश्चित करें कि नोट में पर्याप्त सामग्री है (>50 शब्द) +4. टकराव वाले निर्देशों हेतु अपने कस्टम प्रॉम्प्ट की समीक्षा करें +5. यदि यह बहुत कठोरता से फिल्टर कर रहा है तो अस्थायी रूप से समानार्थक शब्दों को दबाना बंद करें + +### Doubao एंडपॉइंट ID गायब है + +**लक्षण:** ByteDance Doubao प्रदाता का उपयोग करते समय त्रुटि आती है + +**कारण:** Doubao को मॉडल नाम के बजाय एक Ark एंडपॉइंट ID (प्रारूप: `ep-xxxxxxxx-xxxx-xxxx`) की आवश्यकता होती है. + +**ठीक करें:** Volcengine कंसोल से अपना वास्तविक एंडपॉइंट ID का उपयोग करके डिफ़ॉल्ट प्लेसहोल्डर मॉडल को बदलें. + +## कॉन्फ़िगरेशन + +| निदान सेटिंग | स्थान | उद्देश्य | +|--------------------|----------|---------| +| **कनेक्शन जाँचें** | सेटिंग्स --> प्रोवाइडर विभाग | API कुंजी एवं कनेक्टिविटी की पुष्टि करें | +| **मॉडल सूची प्राप्त करें** | सेटिंग्स --> प्रोवाइडर विभाग | कौन-से मॉडल एक्सेस किए जा सकते हैं, इसकी पुष्टि करें | +| `enableStableApiCall` | सेटिंग्स --> एडवांस्ड | बैकऑफ़ के साथ रीट्राय चालू करें | +| `batchConcurrency` | सेटिंग्स --> बैच | रेट लिमिट से बचने हेतु समानांतरता को नियंत्रित करें | + +## समस्याओं की रिपोर्ट कैसे करें + +यदि आपकी समस्या ऊपर दी गई श्रेणियों में नहीं आती है: + +1. **सेटिंग्स --> Notemd --> डायग्नोस्टिक्स** को खोलें +2. पूरा डायग्नोस्टिक्स आउटपुट कॉपी करें +3. [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) पर एक GitHub Issue खोलें +4. शामिल करें: Obsidian संस्करण, Notemd संस्करण, प्रोवाइडर, मॉडल, डायग्नोस्टिक्स आउटपुट, एवं पुनरुत्पादन हेतु चरण +5. किसी भी साझा लॉग से अपना API कुंजी हटा दें + +--- + +## अगले चरण + +- [LLM प्रोवाइडर्स](/docs/providers/overview) -- पूरा प्रोवाइडर कॉन्फ़िगरेशन संदर्भ +- [बैच प्रोसेसिंग](/docs/advanced/batch-processing) -- बड़े ऑपरेशनों हेतु समानांतरता एवं पुनः प्रयास सेटिंग्स +- [कस्टम प्रॉम्प्ट्स](/docs/advanced/custom-prompts) -- प्रॉम्प्ट्स समायोजित करके अप्रत्याशित LLM व्यवहार को ठीक करें diff --git a/website/i18n/hi/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/hi/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..253aa1a9 --- /dev/null +++ b/website/i18n/hi/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "अक्सर पूछे जाने वाले प्रश्न" +description: "Notemd की स्थापना, सुविधाओं एवं उपयोग से संबंधित सामान्य प्रश्न" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# अक्सर पूछे जाने वाले प्रश्न + +<TLDR> +**Notemd से संबंधित सबसे आम प्रश्नों के त्वरित उत्तर।** इसमें स्थापना (5 मिनट की सेटअप), 30+ LLM प्रदाताओं का समर्थन, स्थानीय/क्लाउड मॉडल विकल्प, वन-क्लिक वर्कफ्लो, बहुभाषी UI (21 भाषाएँ), विकि-लिंकिंग स्वचालन, अनुसंधान एकीकरण, PDF पठन वर्कफ्लो, आरेख निर्माण एवं ओपन-सोर्स लाइसेंसिंग शामिल है। सभी सुविधाएँ Ollama के साथ ऑफलाइन भी कार्य करती हैं. +</TLDR> + +--- + +## स्थापना एवं सेटअप + +### मैं Obsidian में Notemd कैसे स्थापित करूँ? + +**Settings → Community Plugins → Browse** पर जाएँ → **"Notemd"** खोजें → **Install** करें → **Enable** करें. + +**आवश्यकताएँ:** +- Obsidian 0.15.0+ +- डेस्कटॉप (Windows, macOS, Linux) एवं मोबाइल (iOS, Android) पर समर्थित + +**मैनुअल स्थापना:** +1. [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) से `main.js`, `styles.css`, `manifest.json` डाउनलोड करें +2. उन्हें `<your-vault>/.obsidian/plugins/notemd/` में रखें +3. Obsidian को पुनः लोड करें एवं प्लगइन सक्रिय करें + +**आँकड़े:** 4k+ डाउनलोड, 44 रिलीज़, MIT लाइसेंसित. + +--- + +## LLM कॉन्फ़िगरेशन + +### Notemd कौन-से LLM प्रदाता समर्थित हैं? + +Notemd **30+ प्रदाताओं** को समर्थन देता है: + +**क्लाउड प्रदाता:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonnet, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**चीन-केंद्रित:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**स्थानीय/स्व-होस्टेड:** +- Ollama +- LM Studio +- कोई भी OpenAI-संगत एंडपॉइंट + +**गेटवे:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models, Fireworks, LiteLLM, Nebius, Cerebras +- Hugging Face, Vercel AI Gateway, Requesty + +### क्या Notemd स्थानीय LLMs के साथ काम कर सकता है? + +**हाँ, पूरी तरह से समर्थित।** Notemd निम्नलिखित के साथ काम करता है: +- **Ollama** (नेटिव एकीकरण) +- **LM Studio** (OpenAI-संगत एंडपॉइंट के माध्यम से) +- **vLLM, LocalAI, text-generation-webui** (OpenAI-संगत मोड के माध्यम से) + +सभी कार्य स्थानीय मॉडलों के साथ काम करते हैं: लिंकिंग, अवधारणा निर्माण, अनुवाद, अनुसंधान, एवं आरेख निर्माण. + +**मिक्स एंड मैच उदाहरण:** +- लिंकिंग के लिए Ollama (स्थानीय) → तेज़, निजी, बिना लागत के +- अनुसंधान के लिए OpenAI → उच्च गुणवत्ता, वेब खोज एकीकरण +- अनुवाद के लिए Gemini → बहु-मोडल समर्थन + +### मैं विभिन्न कार्यों के लिए अलग-अलग मॉडल कैसे कॉन्फ़िगर करूँ? + +**Notemd सेटिंग्स** में, प्रत्येक कार्य के लिए स्वतंत्र प्रदाता/मॉडल चयनकर्ता होते हैं: + +| कार्य | उदाहरण कॉन्फ़िगरेशन | +|------|----------------------| +| **लिंकिंग** | DeepSeek (तेज़, सस्ता) | +| **कॉन्सेप्ट जनरेशन** | Claude Opus (उच्च गुणवत्ता) | +| **अनुसंधान** | Perplexity या GPT-4o (वेब-आधारित) | +| **अनुवाद** | Gemini Flash (मल्टीमोडल) | +| **डायग्राम जनरेशन** | Ollama (स्थानीय, निजी) | + +यह प्रति-कार्य अनुकूलन गति, लागत और गुणवत्ता के बीच संतुलन बनाता है. + +--- + +## मुख्य विशेषताएँ + +### पेपर पढ़ने के लिए Notemd, ChatGPT से कैसे अलग है? + +| आयाम | ChatGPT | Notemd | +|-----------|---------|--------| +| **आउटपुट स्थान** | चैट इतिहास (क्षणिक) | Obsidian वॉल्ट (स्थायी फ़ाइलें) | +| **परिणाम प्रारूप** | पाठ उत्तर | विकि-लिंक, अवधारणा संदेश, आरेख, अनुवाद | +| **दीर्घकालिक मूल्य** | सत्र समाप्त होने के बाद गायब हो जाता है | ज्ञान आधार में संचित हो जाता है | +| **पुन: उपयोगिता** | पुनः प्रश्न करना आवश्यक है | फ़ाइलें बनी रहती हैं, लिंक बने रहते हैं, विकसित होते रहते हैं | + +**ChatGPT का उपयोग करें:** त्वरित प्रश्न-उत्तर, एकल व्याख्याओं के लिए +**Notemd का उपयोग करें:** हफ्तों/महीनों तक एक स्थायी, संरचित ज्ञान आधार बनाने के लिए + +### Notemd नोट्स में विकि-लिंक कैसे जोड़ता है? + +**प्रक्रिया:** +1. आप किसी नोट पर "Process file (add links)" चलाते हैं +2. Notemd उस पाठ को आपके कॉन्फ़िगर किए गए LLM में भेजता है +3. यह LLM संदर्भ में मुख्य अवधारणाओं की पहचान करता है +4. Notemd प्रत्येक अवधारणा के उल्लेख पर `[[wiki-links]]` जोड़ता है +5. वैकल्पिक रूप से, यह आपके द्वारा निर्दिष्ट फ़ोल्डर में स्वचालित रूप से कॉन्सेप्ट नोट्स बनाता है + +**विशेषताएँ:** +- समानार्थी शब्दों का दमन ("transformer" एवं "transformers" जैसे डुप्लिकेट्स से बचता है) +- कॉन्सेप्ट नोट्स से स्रोत तक बैकलिंक्स +- नाम बदलने/हटाने पर लिंकों की अखंडता +- शुद्ध निष्कर्षण मोड (मूल डेटा को बदले बिना अवधारणाएँ निकालता है) + +### Notemd वन-क्लिक वर्कफ्लो क्या है? + +**वन-क्लिक वर्कफ्लो** कई क्रियाओं को एक **एकल साइडबार बटन** में जोड़ता है. + +**डिफ़ॉल्ट वर्कफ्लो:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**परिणाम:** एक क्लिक से निम्नलिखित कार्य होते हैं: +1. वर्तमान नोट में विकि-लिंक्स जोड़ना +2. नए शब्दों के लिए कॉन्सेप्ट नोट्स बनाना +3. अनुसंधान करके पृष्ठभूमि जोड़ना +4. इसे एक Mermaid आरेख में संपीड़ित करना + +**कस्टम वर्कफ्लो:** DSL प्रारूप का उपयोग करके सेटिंग्स में अपने स्वयं के वर्कफ्लो परिभाषित करें। प्रत्येक वर्कफ्लो एक पुनः उपयोग योग्य साइडबार बटन बन जाता है. + +### Notemd, Copilot और Smart Connections की तुलना कैसे की जाती है? + +ये प्लगइन अलग-अलग समस्याओं का समाधान करते हैं: + +- **Copilot** — संवाद-प्रथम। आप अपने नोट्स के बारे में एक AI के साथ चैट करते हैं। AI के उत्तर चैट पैनल में ही रहते हैं; वे आपके वॉल्ट को संशोधित नहीं करते. +- **Smart Connections** — खोज-प्रथम। यह एम्बेडिंग्स का उपयोग करके अर्थात्मक रूप से समान नोट्स खोजता है। यह सामग्री बनाता या संशोधित नहीं करता. +- **Notemd** — लेखन-प्रथम। AI आपके नोट्स को संसाधित करके संरचित परिणाम (विकी-लिंक, कॉन्सेप्ट नोट्स, शोध, आरेख, अनुवाद) को सीधे आपके वॉल्ट में स्थायी फ़ाइलों के रूप में लिख देता है. + +| आपको क्या चाहिए | अनुशंसित प्लगइन | +|----------------|-------------------| +| नोट्स के बारे में AI के साथ चैट करें | Copilot | +| समान/संबंधित नोट्स खोजें | Smart Connections | +| स्वचालित रूप से विकी-लिंक डालें और एक ज्ञान ग्राफ़ बनाएं | **Notemd** | +| बैकलिंक के साथ कॉन्सेप्ट नोट्स बनाएं | **Notemd** | +| नोट सामग्री से आरेख बनाएं | **Notemd** | +| किसी विषय पर शोध करें और सारांश जोड़ें | **Notemd** | + +तीनों का उपयोग एक साथ किया जा सकता है — वे आपस में प्रतिस्पर्धा नहीं करते, बल्कि एक-दूसरे को पूरक बनाते हैं. + +--- + +## शोध एवं अनुवाद + +### Notemd शोध के साथ कौन-सी खोज सेवाएँ काम करती हैं? + +| सेवा | API कुंजी आवश्यक है | गुणवत्ता | नोट्स | +|---------|-----------------|---------|-------| +| **Tavily** | हाँ | उच्च | अनुशंसित, AI-ऑप्टिमाइज्ड खोज | +| **DuckDuckGo** | नहीं | प्रयोगात्मक | कोई सेटअप नहीं, कम गुणवत्ता | + +**"Research & summarize" कैसे काम करता है:** +1. आप एक विषय चुनते हैं या उसे वर्तमान नोट पर चलाते हैं +2. Notemd सर्च सर्विस से पूछताछ करता है +3. परिणाम → LLM सारांशन +4. स्रोत संदर्भों के साथ सारांश आपके नोट में जुड़ जाता है + +**परिणाम:** आपके वॉल्ट में स्थायी अनुसंधान ट्रेल, ब्राउज़र टैब्स में नहीं. + +### क्या Notemd चीनी या अन्य भाषाओं का समर्थन करता है? + +**UI भाषाएँ:** 21+ समर्थित +- अंग्रेज़ी, 中文 (简体), 中文 (繁體), 日本語, 한국어 +- अरबी, जर्मन, फ्रांसीसी, स्पेनिश, रूसी, पुर्तगाली, इतालवी +- हिंदी, बंगाली, थाई, वियतनामी, तुर्की, पोलिश, चेक एवं अन्य + +**टास्क आउटपुट भाषा:** स्वतंत्र कॉन्फ़िगरेशन +- UI चीनी में + आउटपुट अंग्रेज़ी में: ✅ +- UI अंग्रेज़ी में + आउटपुट चीनी में: ✅ + +**उपयोग का मामला:** द्विभाषी शोधकर्ता अपनी मूल भाषा में UI रख सकते हैं जबकि प्रकाशन के लिए अंग्रेज़ी नोट तैयार कर सकते हैं. + +--- + +## PDF एवं शैक्षणिक कार्यप्रवाह + +### क्या मैं पेपर/PDF पढ़ने हेतु Notemd का उपयोग कर सकता हूँ? + +**हाँ.** कार्यप्रवाह: +1. [MinerU](https://github.com/opendatalab/MinerU) का उपयोग करके **PDF को Markdown में बदलें** (शैक्षणिक पेपरों के लिए अनुशंसित) +2. Obsidian में Markdown फ़ाइल खोलें +3. Notemd कार्यों को चलाएँ: + - मुख्य शब्दों में **विकि-लिंक जोड़ें** + - अपरिचित शब्दावली के लिए **अवधारणा संदेश बनाएँ** + - स्वयं निर्धारित प्रश्नों के माध्यम से **मूल पाठ निकालें** (उदाहरण: "सीमाएँ क्या हैं?") + - उद्धृत विधियों/डेटासेटों के लिए **पृष्ठभूमि अनुसंधान** करें + - कठिन खंडों का **अनुवाद** करें + - संरचनात्मक समझ हेतु **Mermaid** आरेख में संपीड़ित करें + +**संस्करण 1.9.1+:** TOC सहायता के साथ अध्याय संरचना निकालना + +**परिणाम:** आपका पेपर पढ़ना आपके वॉल्ट में एक संरचित, लिंक योग्य ज्ञान सामग्री बन जाता है. + +--- + +## आरेख एवं दृश्यीकरण + +### Notemd किस प्रकार के ग्राफ/आरेख बना सकता है? + +| प्रकार | समर्थन | विशेषताएँ | +|------|---------|----------| +| **Mermaid** | पूर्ण | फ्लोचार्ट, अनुक्रम, क्लास, स्टेट, ER, गैंट, सिंटैक्स ऑटो-फिक्स, बैच वैलिडेशन | +| **JSON Canvas** | पूर्ण | Obsidian नेटिव कैनवास लेआउट्स | +| **Vega-Lite** | पूर्ण | डेटा चार्ट, टाइम सीरीज़, बार, स्कैटर, कस्टमाइज़ेबल | +| **HTML** | फॉलबैक | असमर्थित डायग्राम प्रकारों के लिए | +| **एडिटेबल HTML/SVG** | स्पष्ट लक्ष्य | अर्थपूर्ण Draw.io-शैली की टिप्पणियों के साथ स्व-निहित इनलाइन SVG | +| **Draw.io / Drawnix आर्टिफैक्ट्स** | निर्यात सीमा | `SemanticFigureModel` से निर्धारित XML/JSON; कोई एडिटर रनटाइम निर्भरता नहीं | + +**Mermaid ऑटो-फिक्स:** गहरे डीबग मोड द्वारा मरम्मत: +- टूटे हुए तीर (`-->`, `-.->`, `==>`) +- अमान्य लेबल, टिप्पणियाँ +- सबग्राफ सिंटैक्स त्रुटियाँ +- आकृति संकेतन (`[`, `(`, `{`, `((`) +- लेबल में पाइप चराहे +- नोट अटैचमेंट + +**वर्कफ्लो:** +1. किसी नोट पर "Summarize as Mermaid diagram" चलाएँ +2. मोडल में प्रीव्यू करें +3. SVG या PNG के रूप में निर्यात करें +4. या इसे vault में `.mmd` फ़ाइल के रूप में सहेजें + +--- + +## ओपन सोर्स एवं समुदाय + +### क्या Notemd मुफ्त एवं ओपन सोर्स है? + +**हाँ.** +- **लाइसेंस:** MIT (उदार, वाणिज्यिक उपयोग अनुमत), +- **स्रोत कोड:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **कोई भुगतान श्रेणियाँ नहीं, कोई क्लाउड लॉक-इन नहीं, कोई टेलीमेट्री नहीं** +- **समुदाय:** 234+ GitHub स्टार, सक्रिय Discord + +**आपके पास है:** +- आपका डेटा (आपके vault में ही रहता है) +- आपके वर्कफ्लो (प्रॉम्प्ट, मॉडल, चेन कस्टमाइज़ करें) +- आपकी गोपनीयता (स्थानीय LLM सहायता) + +**योगदान दें:** पुल रिक्वेस्ट स्वागत हैं। [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) देखें + +--- + +## समस्या निवारण + +### मेरे LLM कॉल विफल हो रहे हैं। मुझे क्या जाँचना चाहिए? + +1. **API कुंजी वैध है?** सेटिंग्स → प्रोवाइडर कॉन्फ़िगरेशन देखें +2. **मॉडल का नाम सही है?** सेटिंग्स में “获取模型列表” (Get Model List) बटन का उपयोग करें +3. **नेटवर्क तक पहुँच संभव है?** कुछ प्रदाता VPN की आवश्यकता रखते हैं +4. **रेट लिमिट्स?** प्रदाता के डैशबोर्ड की जाँच करें +5. **निदान:** विस्तृत त्रुटि लॉग के लिए सेटिंग्स में "Connection Test" चलाएँ + +### Notemd धीमा है। मैं इसे कैसे तेज़ कर सकता हूँ? + +1. **तेज़ मॉडलों का उपयोग करें:** DeepSeek, Gemini Flash, GPT-4o-mini +2. **चंक साइज़ कम करें:** सेटिंग्स → Smart Chunking → शब्द संख्या कम करें +3. **समानांतर प्रसंस्करण:** सेटिंग्स → Batch Processing → समवर्तीता बढ़ाएँ +4. **लोकल मॉडल:** ऐसे कार्यों के लिए Ollama जिन्हें वेब खोज की आवश्यकता नहीं है + +### क्या Notemd 100% ऑफ़लाइन काम कर सकता है? + +**हाँ, Ollama के साथ।** कोई API कुंजी नहीं, कोई इंटरनेट नहीं, कोई डेटा आपके मशीन से बाहर नहीं जाता: + +1. [Ollama](https://ollama.com) इंस्टॉल करें और `ollama serve` चलाएँ +2. Notemd की सेटिंग्स में, अपने प्रदाता के रूप में **Ollama** चुनें +3. एक मॉडल लाएँ: `ollama pull llama3` (या qwen2.5, gemma2, आदि) +4. सभी सुविधाएँ काम करती हैं: विकि-लिंक, कॉन्सेप्ट नोट्स, अनुवाद, डायग्राम + +**DuckDuckGo रिसर्च** भी API कुंजी के बिना काम करता है (प्रायोगिक गुणवत्ता)। + +क्लाउड प्रदाताओं (OpenAI, Anthropic, Google, DeepSeek, आदि) के साथ, आपकी नोट सामग्री API इनपुट के रूप में भेजी जाती है। डेटा हैंडलिंग के विवरण के लिए प्रत्येक प्रदाता की गोपनीयता नीति देखें. + +### क्या मेरा डेटा क्लाउड में भेजा जाता है? + +**यह आपके प्रदाता पर निर्भर करता है:** + +| प्रदाता प्रकार | क्या डेटा क्लाउड में भेजा जाता है? | नोट्स | +|--------------|---------------------|-------| +| **Ollama (स्थानीय)** | नहीं | सब कुछ आपके मशीन पर ही रहता है | +| **LMStudio (स्थानीय)** | नहीं | Ollama के समान ही | +| **DeepSeek, OpenAI, आदि** | हाँ | नोट की सामग्री प्रसंस्करण के लिए API इनपुट के रूप में भेजी जाती है | +| **OpenRouter, AIHubMix** | हाँ | वह गेटवे जो क्लाउड प्रदाताओं तक मार्ग प्रदान करता है | + +Notemd स्वयं **कोई टेलीमेट्री, कोई एनालिटिक्स, कोई उपयोगकर्ता डेटा** एकत्र नहीं करता है। यह प्लगइन पूरी तरह से ओपन सोर्स (MIT) है। आपके मशीन से बाहर जाने वाला एकमात्र डेटा वह है जिसे आप स्पष्ट रूप से अपने कॉन्फ़िगर किए गए LLM प्रदाता को भेजते हैं. + +### अनुसंधान के लिए कौन सा Obsidian AI प्लगइन सबसे अच्छा है? + +यह आपकी अनुसंधान कार्यप्रणाली पर निर्भर करता है: + +| आवश्यकता | प्लगइन | कारण | +|------|--------|-----| +| संबंधित पेपर/नोट्स खोजना | Smart Connections | सेमेंटिक समानता की खोज | +| अपने स्रोतों के बारे में चैट करना | Copilot | वॉल्ट संदर्भ के साथ बातचीत करना | +| संकल्पनाओं को स्वचालित रूप से जोड़ना + नोट्स बनाना | **Notemd** | AI संकल्पनाओं की पहचान करता है, लिंक जोड़ता है, नोट्स बनाता है | +| वेब अनुसंधान + नोट्स में सारांश बनाना | **Notemd** | Tavily/DuckDuckGo खोज → LLM सारांश → नोट में जोड़ा गया | +| अनुसंधान से आरेख बनाएँ | **Notemd** | नोट की सामग्री से Mermaid/Canvas/Vega-Lite | + +**अनुशंसित संयोजन:** Smart Connections (खोज) + Notemd (संरचना) + Copilot (चर्चा). + +--- + +## सहायता प्राप्त करें + +- **दस्तावेज़ीकरण:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **GitHub Issues:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **Sponsor:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/hi/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/hi/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..bf8162d3 --- /dev/null +++ b/website/i18n/hi/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "अवधारणा नोट्स" +description: "अवधारणा नोट्स बनाएँ एवं प्रबंधित करें — आपके वॉल्ट से निकाले गए मुख्य अवधारणाओं के लिए स्वतंत्र नोट्स" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# अवधारणा नोट्स + +<TLDR> +**Notemd आपके नोट्स से मुख्य अवधारणाओं को निकालकर स्वतंत्र अवधारणा नोट फ़ाइलें बनाता है।** LLM मुख्य शब्दों की पहचान करता है, कॉन्फ़िगर किए गए फ़ोल्डर में प्रत्येक अवधारणा के लिए एक `.md` फ़ाइल बनाता है, एवं वैकल्पिक रूप से स्रोत नोट में बैकलिंक जोड़ता है। यह समानार्थी शब्दों को दबाने, प्रत्येक कार्य के लिए मॉडल चयन, फ़ाइल नामों का स्वच्छीकरण, एवं 4-चरणीय डुप्लिकेशन हटाने वाले इंजन का समर्थन करता है। यह [Obsidian AI ज्ञान प्रबंधन मार्गदर्शिका](/docs/pillar-ai-knowledge) का हिस्सा है. +</TLDR> + +## अवलोकन + +अवधारणा नोट्स एक जुड़ी हुई ज्ञान आधार के निर्माण खंड हैं। जब आप किसी नोट को संसाधित करते हैं, तो Notemd: + +1. **आपका टेक्स्ट एक LLM में भेजा जाता है**, जहाँ संरचित निष्कर्षण प्रॉम्प्ट होता है +2. **LLM प्रतिक्रिया से `CONCEPT:` पंक्तियों को पार्स किया जाता है +3. **निर्धारित फ़ोल्डर में प्रत्येक अवधारणा के लिए एक `.md` फ़ाइल बनाई जाती है +4. **स्रोत नोट में बैकलिंक जोड़े जाते हैं** (यदि सक्षम किया गया हो) + +## यह कैसे काम करता है + +### निष्कर्षण पाइपलाइन + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### निष्कर्षण प्रॉम्प्ट + +LLM को ऐसा प्रॉम्प्ट मिलता है जो उसे निम्नलिखित करने के लिए निर्देशित करता है: + +- दस्तावेज़ के विषय से संबंधित **संज्ञाएँ या संज्ञा वाक्यांश** निकालें +- **विशिष्टता को प्राथमिकता दें** — "Dielectric Relaxation" को "Relaxation" से ऊपर रखें +- **एकवचन में सामान्यीकृत करें** — "models" को "model" बना दें +- **उप-अवधारणाओं को दबाएँ** — यदि "dielectric relaxation" मौजूद है, तो "relaxation" को भी निकालें नहीं +- **छोड़ें** संदर्भ/ग्रंथसूची वाले खंड, सामान्य संज्ञाएँ, कंपनी/उत्पाद नाम +- प्रत्येक पंक्ति में एक अवधारणा `CONCEPT: Term Name` के रूप में आउटपुट करें + +**पर्यायवाची दमन** (वैकल्पिक): प्रॉम्प्ट के आगे "Avoid extracting synonyms, semantically similar core concepts, or keywords whenever possible" जोड़ें. + +**केंद्रित सीखने का क्षेत्र** (वैकल्पिक): एक विषय तक निष्कर्ष निकालने हेतु `Relevant Fields: [domain]` को आगे जोड़ें. + +**भाषा ओवरराइड** (वैकल्पिक): "The output concepts MUST be in [language]." जोड़ें. + +### चंकिंग + +लंबे नोट `settings.chunkWordCount` से विभाजित होते हैं। प्रत्येक चंक को स्वतंत्र रूप से भेजा जाता है। सभी चंकों से प्राप्त अवधारणाएँ `Set` में एकत्र की जाती हैं — चंकों में मौजूद दोहराव चुपचाप हटा दिए जाते हैं। व्यक्तिगत चंकों पर LLM त्रुटियाँ प्रक्रिया को रोकती नहीं हैं. + +## अवधारणा नोट बनाना + +### फ़ाइल नाम नियम + +| नियम | व्यवहार | +|------|----------| +| हाइफ़न/अंडरस्कोर | स्पेस से प्रतिस्थापित किए जाते हैं | +| विशेष अक्षर | हटा दिए जाते हैं: बैकस्लैश, फ़ोरवर्डस्लैश, कोलन, एस्टरिस्क, प्रश्नचिह्न, उद्धरण चिह्न, एंगल ब्रैकेट, पाइप, हैश, कैरेट, ब्रैकेट | +| व्हाइटस्पेस | संकुचित एवं कटा हुआ | +| अधिकतम लंबाई | 100 वर्ण (संक्षिप्त + पुनः काटा गया) | +| खाली/सभी-डॉट परिणाम | चुपचाप छोड़ दिया गया | + +उदाहरण: `A-B: Key*Term` को `A B KeyTerm.md` में बदल दिया जाता है + +### टेम्पलेट्स + +**पूर्ण टेम्पलेट** (बैकलिंक सक्षम, न्यूनतम टेम्पलेट बंद): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**न्यूनतम टेम्पलेट** (जब `extractConceptsMinimalTemplate: true` हो): + +```markdown +# Concept Name +``` + +### मौजूदा नोट्स को अपडेट करना + +जब कोई कॉन्सेप्ट फ़ाइल पहले से मौजूद हो: + +1. यदि बैकलिंक सक्षम हैं और स्रोत नोट पहले से सूचीबद्ध नहीं है, तो एक बैकलिंक जोड़ें +2. यदि कोई `## Linked From` खंड मौजूद है, तो अगले `##` हेडर से पहले उसे डालें +3. यदि कोई `## Linked From` मौजूद नहीं है, तो खंड को अंत में जोड़ें +4. डुप्लिकेट बैकलिंक्स की जाँच की जाती है और उन्हें छोड़ दिया जाता है + +### कॉन्फ़िगरेशन + +| सेटिंग | डिफ़ॉल्ट | प्रभाव | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | मास्टर टॉगल। बंद = कोई नोट्स नहीं बनाए जाते | +| `conceptNoteFolder` | `''` (अक्षम) | कॉन्सेप्ट नोट्स के लिए फ़ोल्डर पथ | +| `extractConceptsMinimalTemplate` | `true` | केवल शीर्षक वाले नोट्स (लिंक्ड फ्रॉम नहीं) | +| `extractConceptsAddBacklink` | `false` | स्टैंडअलोन एक्सट्रैक्शन के दौरान बैकलिंक्स जोड़ें | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | कॉन्सेप्ट एक्सट्रैक्शन के लिए प्रति-टास्क LLM | +| `extractConceptsLanguage` | `'en'` | कॉन्सेप्ट नामों के लिए आउटपुट भाषा | +| `replaceSynonymsDuringConceptExtraction` | `false` | प्रॉम्प्ट में सिनॉनिम सप्रेशन सक्षम करें | +| `generateConceptLogFile` | `false` | बनाए गए कॉन्सेप्ट्स की `.log` सूची लिखें | + +**महत्वपूर्ण:** `extractConceptsAddBacklink` और `extractConceptsMinimalTemplate` सेटिंग्स केवल **समर्पित एक्सट्रैक्शन कमांड** को प्रभावित करती हैं। "Add Links" कमांड हमेशा बैकलिंक्स के साथ पूर्ण-टेम्पलेट नोट्स बनाती है. + +## डुप्लिकेशन रिमूवल + +डुप्लिकेशन रिमूवल कमांड (`Notemd: Check & remove duplicate concept notes`) 5-चरणीय विश्लेषण करती है: + +### चरण 1: सटीक फ़ाइलनाम मैच + +कॉन्फ़िगर किए गए स्कोप में केस-इनसेंसिटिव बेसनेम तुलना. + +### चरण 2: बहुवचन रूप पहचान + +सफ़िक्स हटाएँ: `-ies` से `-y`, `-es` हटाया गया, `-s` हटाया गया। सिंगुलर रूप की स्कोप फ़ाइलों के साथ तुलना की जाती है। अनियमित बहुवचन (children/child) को संभाला नहीं जाता. + +### चरण 3: प्रतीक सामान्यीकरण + +लागू होता है: `toLowerCase()`, डैश/अंडरस्कोर को स्पेस से बदलें, गैर-अल्फान्यूमेरिक चरण हटाएं, व्हाइटस्पेस को संकुचित करें। जो मैच ठीक उसी तरह सामान्यीकृत होते हैं उन्हें चिह्नित किया जाता है. + +### चरण 4: एकल-शब्द संग्रहण + +एकल-शब्द वाले अवधारणा नोट्स की जाँच मल्टी-वर्ड स्कोप फ़ाइलों के बेसनेम के खिलाफ़ की जाती है। जब स्कोप `concept_folder_only` होता है तो यह चरण चलाया नहीं जाता. + +### चरण 5: पुष्टि एवं हटाना + +सभी उम्मीदवारों को एक पुष्टि मॉडल में प्रस्तुत किया जाता है। अनुमोदित आइटम्स को सिस्टम ट्रैश में ले जाया जाता है। प्रत्येक हटाने के बीच ऑपरेशन रद्द किया जा सकता है. + +### स्कोप मोड + +| मोड | तुलना किया जाता है | +|------|-------------------| +| `vault` (डिफ़ॉल्ट) | कॉन्सेप्ट फ़ोल्डर को छोड़कर सभी वॉल्ट `.md` फ़ाइलें | +| `concept_folder_only` | फ़ोल्डर के भीतर के अन्य कॉन्सेप्ट नोट्स | +| `include` | विशिष्ट सूचीबद्ध फ़ोल्डरों में फ़ाइलें | +| `exclude` | कॉन्सेप्ट फ़ोल्डर एवं सूचीबद्ध फ़ोल्डरों को छोड़कर सभी वॉल्ट फ़ाइलें | + +## उपयोग + +### कॉन्सेप्ट्स निकालें (स्टैंडअलोन) + +1. एक नोट खोलें +2. कमांड पैलेट से **"Notemd: कॉन्सेप्ट्स निकालें"** चलाएं +3. कॉन्सेप्ट नोट्स कॉन्फ़िगर किए गए फ़ोल्डर में बनाए जाते हैं + +### सामग्री निकालें + बनाएँ + +**"Notemd: अवधारणाओं को निकालें एवं शीर्षक बनाएँ"** — यह अवधारणाओं को निकालता है, फिर अवधारणा फ़ोल्डर में प्रत्येक नोट पर "शीर्षक से बनाएँ" कमांड चलाता है। इससे फ़ोल्डर में **सभी** अवधारणा नोट्स के लिए सामग्री बनती है, केवल नए बनाए गए नोट्स के लिए ही नहीं. + +### चयन से विकि लिंक बनाएँ + +1. एडिटर में टेक्स्ट को हाइलाइट करें +2. **"Notemd: चयन से विकि लिंक बनाएँ"** कमांड चलाएँ +3. टेक्स्ट `[[...]]` में लपेटा जाता है एवं एक अवधारणा नोट बनता है + +## सुझाव + +- **पहले अवधारणा फ़ोल्डर सेट करें** — इसके बिना कोई नोट नहीं बनता। यदि यह सेट न हो तो एक चेतावनी मॉडल दिखाई देता है. +- **प्रत्येक कार्य के लिए अलग मॉडल उपयोग करें** — सस्ते मॉडल (GPT-4o-mini, DeepSeek) अवधारणा निकालने हेतु बेहतर काम करते हैं। महंगे मॉडलों को अनुसंधान/अनुवाद हेतु संरक्षित रखें. +- **तकनीकी क्षेत्रों में समानार्थी शब्दों को दबाने की सुविधा चालू करें** — जहाँ कई शब्द एक ही अवधारणा को दर्शाते हैं. +- **नियमित रूप से डुप्लिकेट हटाएँ** — बैच प्रोसेसिंग के बाद डुप्लिकेट हटाने वाली कमांड चलाएँ ताकि लगभग समान डुप्लिकेट पकड़े जा सकें. +- **हर बार चलने पर लॉग फ़ाइल ओवरराइट हो जाती है**, इसमें नया डेटा जोड़ा नहीं जाता। पिछले परिणामों की आवश्यकता हो तो इसे कॉपी कर लें. + +--- + +## अगले चरण + +- [Wiki-Links](./wiki-links) — अवधारणाओं को इनलाइन कैसे जोड़ा जाता है +- [Diagrams](./diagrams) — अवधारणाओं के बीच संबंधों को दृश्यमान बनाएँ +- [Workflows](./workflows) — अन्य कार्यों के साथ निकालने की प्रक्रिया को श्रृंखलाबद्ध करें diff --git a/website/i18n/hi/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/hi/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..dc8db736 --- /dev/null +++ b/website/i18n/hi/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "डायग्राम" +description: "स्पेक-फर्स्ट आर्किटेक्चर का उपयोग करके अपने नोट्स से Mermaid, JSON Canvas, Vega-Lite, HTML, संपादनीय आर्टिफैक्ट्स, तथा भविष्य में प्रतिबंधित circuitikz डायग्राम उत्पन्न करें" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# डायग्राम + +<TLDR> +**Notemd स्पेक-फर्स्ट पाइपलाइन के माध्यम से आपके नोट्स से डायग्राम बनाता है।** LLM एक रेंडरर-अग्नोस्टिक `DiagramSpec` JSON उत्पन्न करता है, फिर समर्पित एडाप्टर इसे Mermaid, JSON Canvas, Vega-Lite, HTML, या संपादनीय HTML/SVG आउटपुट में बदल देते हैं। 8 इंटेंट प्रकार, स्वचालित फॉलबैक चेन, SVG/PNG निर्यात के साथ लाइव प्रीव्यू, सेमेंटिक सत्यापन, तथा लोकल-नॉलेज-ऑगमेंटेड जनरेशन का समर्थन है. +</TLDR> + +यह [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge) का हिस्सा है. + +## आर्किटेक्चर: स्पेक-फर्स्ट पाइपलाइन + +Notemd कभी भी LLM से सीधे Mermaid/Vega/Canvas सिंटैक्स उत्पन्न करने को नहीं कहता। इसके बजाय: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**स्पेक-फर्स्ट क्यों?** LLM अक्सर अमान्य रेंडरर सिंटैक्स उत्पन्न करते हैं (विशेष रूप से Mermaid)। एक संरचित `DiagramSpec` को रेंडरिंग से पहले सत्यापित किया जा सकता है, तथा वही स्पेक कई रेंडररों को फॉलबैक के रूप में उपयोग में लाया जा सकता है. + +## समर्थित डायग्राम प्रकार + +| इंटेंट | प्राथमिक रेंडरर | फॉलबैक्स | उपयोग का मामला | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | हायरार्किकल विषय विभाजन | +| `flowchart` | Mermaid | HTML | प्रक्रिया प्रवाह, निर्णय वृक्ष | +| `sequence` | Mermaid | HTML | क्लाइंट-सर्वर अंतःक्रियाएँ, प्रोटोकॉल | +| `classDiagram` | Mermaid | HTML | OOP क्लास संबंध | +| `erDiagram` | Mermaid | HTML | डेटाबेस स्कीमाएँ, एंटिटी संबंध | +| `stateDiagram` | Mermaid | HTML | स्टेट मशीनें, लाइफसाइकल मॉडल | +| `canvasMap` | JSON Canvas | Mermaid → HTML | कॉन्सेप्ट मैप, नॉलेज ग्राफ | +| `dataChart` | Vega-Lite | Mermaid → HTML | बार, लाइन, एरिया, स्कैटर, पाई, टेबल्स | + +## इंटेंट डिटेक्शन + +Notemd वर्डकी स्कोरिंग का उपयोग करके आपके नोट की सामग्री से सबसे अच्छे डायग्राम प्रकार का अनुमान लगाता है: + +| इंटेंट | ट्रिगर्स | कॉन्फिडेंस | +|--------|----------|------------| +| `dataChart` | टेबल्स, संख्यात्मक सेल्स, मेट्रिक/ट्रेंड वर्डकी, प्रतिशत | 0.88 | +| `sequence` | रिक्वेस्ट/रिस्पॉन्स वोकैब (4+ मैच) या `->`/`=>` मार्कर्स | 0.82 | +| `erDiagram` | प्राइमरी की, फॉरेन की, एंटिटी, स्कीमा (2+ मैच) | 0.80 | +| `stateDiagram` | स्टेट, ट्रांजिशन, पेंडिंग, रनिंग, फेल्ड (3+ मैच) | 0.76 | +| `flowchart` | नंबर्ड स्टेप्स (2+) या if/then/else/workflow वोकैब | 0.74 | +| `canvasMap` | अवधारणा मानचित्र, ज्ञान ग्राफ, स्थानिक, क्लस्टर | 0.72 | +| `mindmap` | डिफ़ॉल्ट फ़ॉलबैक | 0.55 | + +**पसंदीदा आरेख प्रकार** सेटिंग, साइडबार सिलेक्टर, या स्पष्ट कमांड पैलेट विकल्प के साथ ओवरराइड करें. + +## रेंडर टारगेट चयन + +प्रयोगात्मक spec-पहला पाइपलाइन में अब दो स्वतंत्र नियंत्रण हैं: + +| नियंत्रण | सेटिंग | प्रभाव | +|---------|---------|--------| +| पसंदीदा आरेख प्रकार | `preferredDiagramIntent` | जनरेट किए गए `DiagramSpec` के सेमांटिक आकार को मार्गदर्शन देता है | +| पसंदीदा रेंडर टारगेट | `preferredDiagramRenderTarget` | **आरेख जनरेट** और **आरेख प्रीव्यू** के लिए आर्टिफैक्ट रेंडरर चुनता है | + +प्लानर डिफ़ॉल्ट के लिए **पसंदीदा रेंडर टारगेट** को **Auto** पर सेट करें, या स्पष्ट रूप से Mermaid, JSON Canvas, Vega-Lite, HTML, या Editable HTML/SVG चुनें। यह ओवरराइड केवल आर्टिफैक्ट और प्रीव्यू कमांडों पर ही लागू होता है। मानक **Summarise as Mermaid diagram** कमांड Mermaid-संगत आउटपुट से जुड़ा रहता है ताकि मौजूदा Markdown वर्कफ्लो में चुपचाप फ़ॉर्मेट न बदले. + +यह अलगाव महत्वपूर्ण है क्योंकि अब एक `flowchart` इरादे को Markdown नोट्स के लिए Mermaid, मजबूत फ़ॉलबैक के लिए HTML, या डाउनस्ट्रीम संपादन के लिए Editable HTML/SVG के रूप में रेंडर किया जा सकता है। Draw.io और Drawnix CLI आर्टिफैक्ट एक्सपोर्टर ही बने रहते हैं, प्लग-इन रेंडर टारगेट नहीं. + +## उपयोग + +### एक आरेख जनरेट करें + +1. एक नोट खोलें +2. कमांड पैलेट से **"Notemd: Generate diagram"** चलाएं +3. Notemd इरादे का पता लगाता है, स्पेक जनरेट करता है, रेंडर करता है, और आर्टिफैक्ट सेव करता है + +**टारगेट के अनुसार आउटपुट फ़ाइलें:** + +| लक्ष्य | एक्सटेंशन | फ़ाइलनाम पैटर्न | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| संपादनीय HTML/SVG | `.html` | `{note}_diagram.html` | + +### डायग्राम का पूर्वावलोकन करें + +1. **"Notemd: पूर्वावलोकन डायग्राम"** चलाएं +2. रेंडर किया गया डायग्राम वाला एक मोडल खुलता है +3. टूलबार बटनों का उपयोग करके SVG या PNG के रूप में निर्यात करें + +सेटिंग्स में **स्वचालित पूर्वावलोकन खोलना** उपलब्ध है — जनरेशन के बाद, पूर्वावलोकन मोडल स्वचालित रूप से शुरू हो जाता है. + +पूर्वावलोकन मोडल में एक आर्टिफैक्ट डायग्नोस्टिक्स पैनल भी है। रेंडरर और स्मोक चेक `RenderArtifact.diagnostics` को जोड़ सकते हैं; मोडल पूर्वावलोकन के बगल में त्रुटि/चेतावनी/सूचना की संख्या, फिर गंभीरता, डायग्नोस्टिक प्रकार, संदेश और मरम्मत सलाह वाला एक सारांश दिखाता है। यही सारांश पूर्वावलोकन इतिहास प्रविष्टियों में भी दिखाया जाता है, इसलिए हर प्रविष्टि खोले बिना दोहरे circuitikz स्मोक प्रयासों की तुलना की जा सकती है। उन आर्टिफैक्ट्स के लिए जिनके पास स्रोत सामग्री है लेकिन उन्हें इनलाइन या HTML आईफ्रेम पथ के माध्यम से रेंडर नहीं किया जा सकता, मोडल अब खाली आईफ्रेम थोपने के बजाय केवल स्रोत-आधारित पूर्वावलोकन पर वापस जाता है। इससे circuitikz कंपाइल/रेंडर स्मोक, SVG टेक्स्ट-टोकन चेक, PNG खाली-स्क्रीनशॉट चेक और भविष्य की ओवरलैप रिपोर्टों को एक दृश्यमान UI सतह मिलती है, बिना TikZJax या LaTeX को कठोर प्लगइन रनटाइम निर्भरता बनाए या स्रोत टेक्स्ट को सत्यापित विजुअल रेंडर माने बिना. + +### पुराना Mermaid मोड + +जब `enableExperimentalDiagramPipeline` बंद होता है, तो Notemd सीधे Mermaid प्रॉम्प्ट को LLM भेजता है। यह पूरी तरह से स्पेक पाइपलाइन को बायपास करता है। यदि प्रयोगात्मक पाइपलाइन विफल हो जाती है, तो यह मोड उपयोग में आता है. + +## रेंडरिंग बैकएंड्स + +### Mermaid + +6 एडाप्टर (माइंडमैप, फ्लोचार्ट, सीक्वेंस, ER, क्लास, स्टेट) `DiagramSpec` को Mermaid सिंटैक्स में अनुवाद करते हैं। जनरेशन के बाद, `mermaid.parse()` आउटपुट की सत्यापना करता है। यदि सत्यापन विफल हो जाता है: + +1. **LLM पुनः प्रयास** — Mermaid की त्रुटि संदेश को संदर्भ के रूप में लेकर एक प्रयास +2. **न्यूनतम फॉलबैक** — स्पेक नोड ID से एक सरल Mermaid डायग्राम + +**Legacy Mermaid Fixer** स्वचालित रूप से सामान्य LLM सिंटैक्स त्रुटियों की मरम्मत करता है: नोट डायरेक्टिव का सामान्यीकरण, पाइप-लेबल का एस्केपिंग, सेमीकोलन का पुनर्स्थापन, स्मार्ट कोट्स, डबल-डैश एरो, आकार संबंधी असंगतियाँ, एवं अन्य. + +### JSON Canvas + +यह Obsidian JSON Canvas प्रारूप के साथ स्थानिक व्यवस्था उत्पन्न करता है: +- नोडों को गहराई (x = गहराई × 420) एवं सूचकांक (y = सूचकांक × 170) के आधार पर स्थित किया जाता है +- चौड़ाई लेबल की लंबाई से अनुमानित की जाती है +- किनारों में `fromSide: 'right'`, `toSide: 'left'`, `toEnd: 'arrow'` होते हैं + +### Vega-Lite + +यह स्वचालित एन्कोडिंग के साथ पूर्ण Vega-Lite v5 JSON स्पेसिफिकेशन बनाता है: +- **कार्टेशियन चार्ट** (बार/लाइन/एरिया/पॉइंट/स्कैटर): मल्टी-सीरीज़ के लिए x + y चैनल एवं रंग +- **पाई**: थीटा = y (मात्रात्मक), रंग = x (नाममात्र) +- **टेबल**: पंक्ति = x, टेक्स्ट = y + कॉलम = सीरीज़ + +कंपाइलेशन से पहले डार्क एवं लाइट थीम पैचों को गहराई से मर्ज किया जाता है. + +### HTML + +यह एक सार्वभौमिक फॉलबैक है। यह स्व-निहित HTML दस्तावेज़ में शामिल है: +- CSP मेटा हेडर्स +- `prefers-color-scheme` के माध्यम से लाइट/डार्क मोड +- 20 स्थानीयकृत भाषाओं के लिए UI लेबल +- खंड: हीरो, संरचना (नोड ट्री), संबंध, कॉलआउट्स, डेटा सीरीज़ टेबल + +### संपादनीय HTML/SVG + +संपादनीय निर्यात कार्यप्रवाहों के लिए स्पष्ट आकृति लक्ष्य। यह `DiagramSpec` को एक निर्धारित `SemanticFigureModel` में परिवर्तित करता है, फिर इनलाइन SVG समूहों वाला एक स्व-समाविष्ट HTML दस्तावेज़ प्रदर्शित करता है जिसमें Draw.io-शैली की टिप्पणियाँ होती हैं: + +- `data-drawio-type`, `data-drawio-id`, एवं `data-drawio-role` सेमेंटिक नोड्स पर +- `data-drawio-source` एवं `data-drawio-target` सेमेंटिक एज़ पर +- स्पेसवाइट नॉर्मलाइज़ेशन एवं कोलिज़न हैंडलिंग के बाद स्थिर नोड/एज़ पहचानकर्ता +- कोई स्क्रिप्ट, कोई बाहरी फ़ॉन्ट, एवं कोई रिमोट एसेट नहीं + +यह लक्ष्य जानबूझकर अभी डिफ़ॉल्ट प्लानर मार्ग नहीं है। जब उत्पाद पथ वास्तविक उपकरणों में संपादन व्यवहार साबित कर देता है, तब इसे एक स्पष्ट रेंडर लक्ष्य के रूप में उपलब्ध कराया जाता है. + +### Draw.io एवं Drawnix निर्यात सीमाएँ + +वर्तमान कार्यान्वयन तृतीय-पक्ष संपादक सहायता को आर्टिफ़ैक्ट सीमा पर ही रखता है: + +| लक्ष्य | संधि | रनटाइम निर्भरता | +|--------|----------|--------------------| +| Draw.io | `SemanticFigureModel` से निर्धारित, अनकंप्रेस्ड `mxfile` XML | प्लगइन रनटाइम या CI में कोई नहीं | +| Drawnix | `geometry` एवं `arrow-line` तत्वों का उपयोग करके न्यूनतम `.drawnix` JSON सबसेट | प्लगइन रनटाइम या CI में कोई नहीं | + +यह समझौता जानबूझकर किया गया है: Notemd डायग्राम्स.नेट डेस्कटॉप, Drawnix, प्लेट, या केवल ब्राउज़र-आधारित संपादक स्थिति को प्लगइन में शामिल किए बिना ही दृश्यमान लेबल, स्थिर ID, एवं समर्थित प्रिमिटिव कवरेज की जाँच कर सकता है। + +### circuitikz / TikZJax दिशा + +सर्किट आरेख, सामान्य फ्लोचार्ट की तरह समस्या नहीं होते। विद्युत सर्किटों के लिए सही सिंटैक्स लक्ष्य आमतौर पर **circuitikz** होता है, जिसे Obsidian में TikZJax जैसे प्लगइन्स के माध्यम से प्रस्तुत किया जाता है। TikZJax, `circuitikz`, `pgfplots`, `tikz-cd` एवं `chemfig` जैसे पैकेजों को लोड कर सकता है, जिससे यह भौतिकी, सर्किट, रसायन विज्ञान एवं गणित के नोट्स के लिए आकर्षक बन जाता है. + +खतरा यह है कि LLM द्वारा सीधे बनाया गया TikZ नाजुक होता है: + +- जटिल सर्किट टोपोलॉजी विद्युत रूप से सही हो सकती है लेकिन दृश्य रूप से पढ़ने योग्य नहीं होती; +- ओवरलैप होने वाले तार एवं लेबल कारण से सही नेटलिस्ट अध्ययन नोट्स के लिए उपयोग में नहीं आ सकता; +- पैकेज प्रीएम्बल का अभाव, गलत एंकर या अमान्य कंपोनेंट नाम प्रस्तुति में बाधा डाल सकते हैं; +- रेंडरर से प्राप्त फीडबैक आमतौर पर छवि-स्तर का होता है, जबकि LLM द्वारा बनाई गई ज्यामिति टेक्स्ट-स्तर की होती है. + +बेहतर आर्किटेक्चर यह है कि circuitikz को एक सीमित आरेख लक्ष्य के रूप में माना जाए, न कि एक मुक्त-रूप प्रॉम्प्ट के रूप में: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +प्रथम-श्रेणी का मॉडल सर्किट टोपोलॉजी एवं लेआउट का वर्णन अलग-अलग करना चाहिए: + +| परत | जिम्मेदारी | उदाहरण | +|-------|----------------|---------| +| टोपोलॉजी | विद्युत नोड्स एवं कंपोनेंट कनेक्शन | `VDD -> RD -> drain(M1)`, `source(M1) -> GND` | +| लेआउट | ग्रिड स्थापना, दिशा, रूटिंग लेन | `M1 at (3,2.2)`, इनपुट बाएँ, आउटपुट दाएँ | +| स्टाइल | पैकेज, वोल्टेज संधि, लेबल, एंकर | `\begin{circuitikz}[american voltages]` | +| वैलिडेशन | कंपाइल लॉग, लुप्त एंकर, ओवरलैप/स्क्रीनशॉट जाँच | TikZJax/LaTeX निदान सहित दृश्य समीक्षा | + +### वर्तमान circuitikz प्रोटोटाइप + +Notemd में अब इस दिशा के लिए पहला सीमित रिपॉजिटरी प्रोटोटाइप शामिल है। यह जानबूझकर ऑफलाइन एवं टेम्पलेट-आधारित है: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +प्रोटोटाइप छह गोल्डन-रेफरेंस परिवारों के लिए एक अलग `CircuitSpec` सीमा एवं निर्धारित निर्यातक जोड़ता है: + +| सर्किट प्रकार | गोल्डन रेफरेंस | वर्तमान गारंटी | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | LaTeX लिखने से पहले `VDD -> R_D -> M1.D`, `vin -> M1.G`, `M1.S -> GND`, एवं `M1.D -> vout` की वैलिडेशन करता है | +| `cmos-inverter` | `cmos-inverter-v1` | LaTeX लिखने से पहले PMOS-over-NMOS टोपोलॉजी, साझा गेट इनपुट, साझा ड्रेन आउटपुट, `VDD -> MP.S`, एवं `MN.S -> GND` की वैलिडेशन करता है | +| `cmos-buffer` | `cmos-buffer-v1` | LaTeX लिखने से पहले दो कैस्केडेड इन्वर्टर स्टेज, मध्यवर्ती नोड `vmid`, पुनर्स्थापित `vout`, एवं साझा VDD/GND रेलों की वैलिडेशन करता है | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | LaTeX लिखने से पहले `vin` एवं `vout` के बीच समानांतर PMOS/NMOS पास डिवाइसों की वैलिडेशन करता है, जिसमें पूरक `phib` / `phi` नियंत्रण शामिल हैं | +| `cmos-nand2` | `cmos-nand2-v1` | वह LaTeX लिखने से पहले समानांतर PMOS पुल-अप, श्रृंखला NMOS पुल-डाउन, द्विआधारी इनपुट `va` / `vb`, एवं `vout` की सत्यापन करता है | +| `cmos-nor2` | `cmos-nor2-v1` | वह LaTeX लिखने से पहले श्रृंखला PMOS पुल-अप, समानांतर NMOS पुल-डाउन, द्विआधारी इनपुट `va` / `vb`, एवं `vout` की सत्यापन करता है | + +यह अभी तक कोई सामान्य TikZ जनरेटर नहीं है। यह LaTeX को संकलित नहीं करता, TikZJax को नहीं बुलाता, स्क्रीनशॉटों की जाँच नहीं करता, और स्वचालित छवि-प्रतिक्रिया मरम्मत भी नहीं करता। ये सभी कार्य बाद के चरणों में किए जाएँगे. + +प्रीव्यू डायग्राम कमांड, जब फ़ाइल एक्सटेंशन `.tex` या `.tikz` हो एवं स्रोत में `\usepackage{circuitikz}` या `\begin{circuitikz}` हो, तो सहेजे गए circuitikz स्रोत आर्टिफैक्ट्स को सीधे पुनः खोल सकता है। यह मार्ग एक circuitikz स्रोत-केवल प्रीव्यू है: मोडल स्रोत, निदान, कॉपी/सेव नियंत्रण एवं इतिहास मेटाडेटा दिखाता है, लेकिन प्लगइन रनटाइम के भीतर LaTeX को संकलित नहीं करता या TikZJax को नहीं बुलाता. + +अब वही स्रोत-केवल प्रीव्यू सीमा सहेजे गए Draw.io एवं Drawnix आर्टिफैक्ट्स को भी सम्मिलित करती है। `.drawio` फ़ाइलें तब स्वीकार की जाती हैं जब वे Draw.io XML (`mxfile` या `mxGraphModel`) के समान दिखती हैं, एवं `.drawnix` फ़ाइलें तब स्वीकार की जाती हैं जब वे Drawnix JSON के साथ `type: "drawnix"` एवं एक `elements` सरणी होती हैं। प्लगइन अभी भी diagrams.net या Drawnix व्हाइटबोर्ड होस्ट को शामिल नहीं करता; ये प्रीव्यू स्रोत, निदान एवं आर्टिफैक्ट इतिहास को प्रदर्शित करते हैं, लेकिन प्लगइन के भीतर कोई विज़ुअल एडिटर नहीं देते. + +टोपोलॉजी-संरक्षण मरम्मत हेतु, मरम्मत किए गए उम्मीदवार को स्वीकार करने से पहले पूर्व-मरम्मत स्पेक को संदर्भ के रूप में पास करें: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +मरम्मत गार्ड, आउटपुट से पहले `circuitKind`, `goldenReferenceId`, नेट्स, कंपोनेंट आईडी/टाइप/टर्मिनल्स एवं अनिर्देशित कनेक्शन एंडपॉइंट्स की तुलना करने हेतु `createCircuitTopologySignature` एवं `assertCircuitTopologyUnchanged` का उपयोग करता है। लेबल, शीर्षक पाठ, लेआउट संकेत, कनेक्शन क्रम एवं कनेक्शन लेबलों को जानबूझकर नज़रअंदाज़ किया जाता है। ऐसा उम्मीदवार जो एक छोटा लेबल जोड़ता है या किसी टर्मिनल को पुनः जोड़ता है, `.tex` फ़ाइल लिखे जाने से पहले ही `Circuit topology drift detected` के कारण विफल हो जाता है. + +अब CLI, कंपाइलर चलाए बिना मौजूदा LaTeX/TikZJax कंपाइल लॉग को पार्स कर सकता है: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +यह निदान मार्ग `circuitikz.sty` जैसे गायब पैकेजों, TikZ/circuitikz कुंजियों के अज्ञात होने, सेमीकोलन की कमी जैसी TikZ पथ सिंटैक्स त्रुटियों, असंतुलित क्लॉज़ या अधूरे लेबल से उत्पन्न अतिरिक्त आर्ग्युमेंट्स, अपरिभाषित कंट्रोल सीक्वेंसेज, सामान्य LaTeX त्रुटियों, आपातकालीन रोकों एवं `\hbox` के ओवरफुल होने संबंधी सलाहात्मक चेतावनियों की रिपोर्ट करता है। यह अभी भी लॉग-आधारित है: स्थानीय LaTeX/TikZJax निष्पादन एवं स्क्रीनशॉट-गुणवत्ता संबंधी कार्य अभी भी भविष्य के कार्य हैं. + +मेन्टेनर स्मोक चेक हेतु, वही CLI वैकल्पिक रूप से शेल कमांड पार्सिंग के बिना स्पष्ट रूप से कॉन्फ़िगर किए गए रेंडरर को चला सकता है: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +कंपाइल रनर, `shell: false` का उपयोग करके `{tex}`, `{outputDir}` एवं `{jobName}` प्लेसहोल्डर्स को आर्ग्युमेंट-सरणी मानों में विस्तारित करता है, उत्पन्न `{jobName}.log` को पढ़ता है, एवं CLI JSON आउटपुट में `compileExecution` एवं `compileDiagnostics` के साथ लौटाता है। `--compile-executable` केवल रेंडरर बाइनरी या व्रैपर पथ है; रेंडरर फ्लैग्स दोहराए गए `--compile-arg` मानों में होते हैं। खाली एक्जीक्यूटेबल्स `compile-executable-invalid` के रूप में विफल हो जाते हैं, गायब बाइनरीज़ `compile-executable-not-found` के रूप में विफल हो जाती हैं, एवं शेल-कमांड-आकार की एक्जीक्यूटेबल स्ट्रिंग्स को आर्ग्युमेंट्स को विभाजित करने की सलाह दी जाती है ताकि Windows, Linux एवं macOS समान प्रत्यक्ष-निष्पादन समझौते का पालन कर सकें। `--expected-artifact` के साथ, यह `compileExecution.renderSmoke` की भी रिपोर्ट करता है एवं यदि रेंडरर कोई गैर-खाली आर्टिफैक्ट नहीं बनाता तो CLI में विफल हो जाता है। यह अभी भी LaTeX को शामिल नहीं करता, TikZJax को प्लगइन रनटाइम निर्भरता नहीं बनाता, या स्क्रीनशॉट-स्तरीय विज़ुअल मरम्मत नहीं करता. + +यदि अपेक्षित आर्टिफैक्ट `.svg` है, तो स्मोक चेक एक स्तर और गहरा हो जाता है: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +SVG स्मोक, `<svg>` रूट, सकारात्मक आयाम या `viewBox`, छिपे/पारदर्शी तत्वों को बाहर रखने के बाद कम से कम एक दृश्यमान ड्रॉइंग तत्व, कोई भी अनुरोधित टेक्स्ट टोकन, `viewBox` के बाहर स्पष्ट तत्व, `<text>` / `<tspan>` लेबलों का स्पष्ट ओवरलैपिंग पोज़िशनिंग, एवं `render-svg-label-overlap` के माध्यम से ड्रॉइंग तत्वों के ऊपर स्पष्ट टेक्स्ट लेबलों की जाँच करता है। अपेक्षित टेक्स्ट की खोज दृश्यमान टेक्स्ट एवं `aria-label`, `<title>`, `<desc>` जैसे एक्सेसिबिलिटी मेटाडेटा को डिकोड करके की जाती है, ताकि वे रेंडरर जो दृश्यमान `<text>` के बाहर सेमांटिक लेबलों को संरक्षित करते हैं, OCR की आवश्यकता के बिना भी टेक्स्ट-टोकन स्मोक को पूरा कर सकें। ज्यामिति पास अब सामान्य समूह एवं तत्व `transform` गुणों हेतु ट्रांसफॉर्म-सचेत ज्यामिति है, इसलिए अनुवादित, स्केल किए गए, घुमाए गए, विकृत या मैट्रिक्स-ट्रांसफॉर्म किए गए SVG बॉक्सों की जाँच ट्रांसफॉर्म संयोजन के बाद की जाती है। यह A/a आर्क एक्स्ट्रीमा के सटीक आर्क सीमाओं, C/S/Q/T वक्र एक्स्ट्रीमा के सटीक बीजियर कर्व सीमाओं, स्ट्रोक-विड्थ-सचेत SVG सीमाओं एवं लेबल ओवरलैप जाँचों, `polyline` / `polygon` ड्रॉइंग ज्यामिति, एवं `<use href="#...">` संदर्भों से पथ-केवल ग्लिफ़ प्लेसमेंट को भी हल करता है, ताकि पुनः उपयोग योग्य ग्लिफ़ पथों में बदले गए लेबल भी बाउंडेड-कैनवास जाँचों में विफल हो सकें जब रखे गए ग्लिफ़ ज्यामिति `viewBox` से बाहर निकल जाती है। एक ही `<text>` पैरेंट के अंतर्गत कई पोज़िशनित `tspan` लेबलों की तुलना अलग-अलग लेबल बॉक्सों के रूप में की जाती है, जिससे LaTeX-शैली का SVG आउटपुट जो अन्यथा अलग-अलग लेबलों को एक ही टेक्स्ट नोड में समाहित कर देता, पकड़ा जा सकता है। पोज़िशनित SVG `text` एवं `tspan` बॉक्स `text-anchor` मान `start`, `middle`, एवं `end` का सम्मान करते हैं, इसलिए केंद्रित एवं दाएँ-संरेखित लेबल टेक्स्ट/टेक्स्ट एवं लेबल-बनाम-ड्रॉइंग ओवरलैप निदान को ट्रिगर कर सकते हैं, बिना ब्राउज़र-स्तरीय टेक्स्ट लेआउट का दावा किए। `<defs>` के भीतर केवल परिभाषा-आधारित ग्लिफ़ पथों को दृश्यमान ड्रॉइंग तत्वों के रूप में गिना नहीं जाता, लेकिन उनके स्वयं के परिभाषा-स्थानीय `transform` गुण `<use>` प्लेसमेंट से पहले ही लागू किए जाते हैं, ताकि स्केल किए गए या दर्पणित ग्लिफ़ परिभाषाओं की गिनती कम न हो। लेबल-बनाम-ड्रॉइंग जाँच में एक छोटा ड्रॉइंग-बॉक्स सहनशीलता एवं घोषित `stroke-width` का उपयोग किया जाता है, इसलिए पतले तार, मोटे तार एवं बहुभुजीय कंपोनेंट आउटलाइन्स सभी लेबल-पठनीयता विफलताओं के रूप में माने जा सकते हैं जब उनका दृश्यमान स्ट्रोक किसी लेबल तक पहुँचता है। `<use href="#...">` से हल किए गए पथ-केवल ग्लिफ़ लेबलों की भी ड्रॉइंग बॉक्सों के साथ तुलना की जाती है एवं यदि पुनः उपयोग योग्य ग्लिफ़ ज्यामिति तारों या कंपोनेंट्स से ओवरलैप होती है तो `render-svg-path-glyph-overlap` के साथ विफल हो जाते हैं। यदि कोई रेंडरर लेबलों को खोजने योग्य `<text>` में बदलकर पुनः उपयोग योग्य पथ ग्लिफ़ बनाता है एवं एक्सेसिबिलिटी मेटाडेटा को संरक्षित नहीं करता, तो स्मोक रिपोर्ट `pathOnlyGlyphUseCount` को दर्ज करती है एवं `render-svg-text-path-only` के माध्यम से अनुरोधित टेक्स्ट टोकन को विफल कर देती है, बजाय इसके कि लेबल को सिर्फ़ अनुपस्थित मान लिया जाए। अन्य विफलताओं की रिपोर्ट `render-svg-invalid`, `render-svg-dimension-missing`, `render-svg-no-visible-elements`, `render-svg-text-missing`, `render-svg-out-of-bounds`, `render-svg-text-overlap`, `render-svg-label-overlap`, या `render-svg-path-glyph-overlap` के माध्यम से की जाती है। टेक्स्ट-टोकन एवं ओवरलैप जाँचों को केवल उन रेंडररों के लिए संरचनात्मक स्मोक माना जाना चाहिए जो लेबलों को खोजने योग्य SVG टेक्स्ट या एक्सेसिबिलिटी मेटाडेटा के रूप में संरक्षित करते हैं; पथ-केवल SVG आउटपुट को अभी भी बाद के स्क्रीनशॉट/OCR गेट की आवश्यकता होती है ताकि विज़ुअल लेबल पठनीयता साबित हो सके, एवं यह स्मोक पास अभी भी पूर्ण SVG पथ कवरेज का दावा नहीं करता। + +दृश्यमान तत्वों की गिनती एवं ज्यामिति संग्रह के दौरान छिपे SVG समूह एवं तत्व हमेशा एकसमान रूप से छोड़ दिए जाते हैं। गुण या इनलाइन-स्टाइल `display:none`, `visibility:hidden`, `visibility:collapse`, एवं समग्र `opacity:0` किसी अन्यथा खाली रेंडर आर्टिफैक्ट को दृश्यमान-आउटपुट स्मोक पास करने नहीं दे सकते. + +पथ-केवल ग्लिफ़ परिभाषाएँ प्रत्यक्ष पथ हो सकती हैं या `<defs>` के भीतर समूहित/सिम्बल कंटेनर हो सकते हैं। स्मोक पास, `<use>` प्लेसमेंट से पहले `<g id="...">` एवं `<symbol id="...">` से चैल्ड पथ ज्यामिति को हल करता है, इसलिए लपेटे गए ग्लिफ़ आउटपुट फिर भी `pathOnlyGlyphUseCount`, बाउंडेड-कैनवास जाँचों, एवं `render-svg-path-glyph-overlap` को आपूर्ति करता है. + +पथ पार्सर, `Z/z` पर उपसर्ग पथों की शुरुआत का ट्रैक रखता है एवं वर्तमान बिंदु को रीसेट करता है, इसलिए बंद उपसर्ग पथ के बाद के सापेक्ष कमांड सही SVG बिंदु से ही जारी रहते हैं, न कि गलत `render-svg-out-of-bounds` निदान बनाते हुए। + +डेली ज्यामिति पास, लीडिंग-डॉट दशमलवों एवं स्पष्ट प्लस चिह्नों के लिए SVG संख्या व्याकरण का पालन करता है, इसलिए `.5`, `-.5`, या `+.5` जैसे संकीर्ण dvisvgm निर्देशांक सीमा जाँच के दौरान भिन्नात्मक ही रहते हैं, बजाय इसके कि वे गलत बाउंड्री वाली ज्यामिति बन जाएँ या छोड़ दिए जाएँ. + +यदि रेंडरर `.png` उत्पन्न करता है, तो वही अपेक्षित-आर्टिफैक्ट पथ पहले स्क्रीनशॉट स्मोक के रूप में बनता है: Notemd, गैर-इंटरलेस्ड 1/2/4/8-बिट इंडेक्स्ड-कलर PNG फ़ाइलों, 1/2/4/8/16-बिट ग्रेस्केल PNG फ़ाइलों, एवं 8/16-बिट ग्रेस्केल-अल्फा/RGB/RGBA PNG फ़ाइलों को डीकोड करता है। इंडेक्स्ड-कलर एवं सब-बाइट ग्रेस्केल छवियाँ पैक्ड सैंपलों का समर्थन करती हैं; इंडेक्स्ड-कलर छवियाँ PLTE एवं वैकल्पिक tRNS डेटा का भी समर्थन करती हैं; ग्रेस्केल/RGB छवियाँ tRNS पारदर्शी सैंपलों का समर्थन करती हैं। 16-बिट डायरेक्ट सैंपलों को स्मोक चेक द्वारा उपयोग किए जाने वाले ही 8-बिट RGBA तुलना स्पेस में सामान्यीकृत किया जाता है। स्मोक चेक सकारात्मक आयामों की जाँच करता है, फ्रंटग्राउंड की सीमाओं को `foregroundBounds` के रूप में दर्ज करता है, उस बॉक्स के भीतर फ्रंटग्राउंड घनत्व को `foregroundDensity` के रूप में दर्ज करता है, जब प्रत्येक दृश्यमान पिक्सेल ऊपर-बाएँ बैकग्राउंड रंग के समान हो तो `render-png-blank` के साथ विफल होता है, जब फ्रंटग्राउंड सामग्री छवि की सीमा को छूती है तो `render-png-content-clipped` के साथ विफल होता है, जब एक बड़े स्क्रीनशॉट में चार से कम फ्रंटग्राउंड पिक्सेल होते हैं तो `render-png-foreground-too-small` के साथ विफल होता है, एवं जब किसी गैर-साधारण बाउंडिंग बॉक्स के भीतर फ्रंटग्राउंड पिक्सेल असामान्य रूप से घने होते हैं तो `render-png-foreground-dense` के साथ विफल होता है। असमर्थ PNG प्रारूप `render-png-unsupported` के साथ विफल हो जाते हैं, एवं Adam7 इंटरलेस्ड PNG या असमर्थ इंडेक्स्ड-कलर बिट गहराईयों के लिए प्रारूप-विशिष्ट मार्गदर्शन उपलब्ध है। यह खाली स्क्रीनशॉट, स्पष्ट कैनवास क्लिपिंग, अंडर-रेंडर्ड फ्रंटग्राउंड फुटप्रिंट, पहले पिक्सेल-स्तरीय भीड़भाड़ विफलताओं, एवं गलत रेंडरर PNG निर्यात सेटिंगों को पकड़ लेता है, बिना किसी प्लेटफॉर्म-विशिष्ट शेल निर्भरता के। यह अभी तक OCR-स्तरीय लेबल पहचान, सटीक टेक्स्ट-ओवरलैप डिटेक्शन, या टोपोलॉजी-संरक्षण वाली छवि मरम्मत नहीं है. + +जब डायग्नोस्टिक्स में कंपाइल या रेंडर-स्मोक चलाने में विफलता दिखाई देती है, तो CLI मरम्मत के लिए टोपोलॉजी-संरक्षण वाला संक्षिप्त विवरण भी लिख सकता है: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +मरम्मत विवरण में स्कीमा `notemd.circuitikz.repair-brief.v1` का उपयोग होता है एवं इसमें स्रोत `CircuitSpec`, टोपोलॉजी हस्ताक्षर, कंपाइल/रेंडर डायग्नोस्टिक्स, अनुमत संपादन, प्रतिबंधित टोपोलॉजी संपादन, अगले सत्यापन चरण, एवं एक संरचित `repairPrompt` शामिल होता है। प्रॉम्प्ट की भूमिका `topology-preserving-circuitikz-repair` है; इसकी `diagnosticFocus` सूची कंपाइल/रेंडर डायग्नोस्टिक्स से प्राप्त होती है, एवं इसकी `acceptanceCriteria` में उम्मीदवार का सत्यापन, नया कंपाइल एवं रेंडर-स्मोक चेक आवश्यक है। यह बाद के मरम्मत चक्र के लिए हैंडओवर फॉर्मेट है, न कि यह दावा है कि Notemd पहले से ही स्वायत्त दृश्य मरम्मत चला रहा है. + +मरम्मत उम्मीदवार तैयार होने के बाद, वही CLI आउटपुट लिखने से पहले उसे विवरण के अनुसार सत्यापित कर सकता है: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief`, विवरण से उम्मीदवार का टोपोलॉजी हस्ताक्षर जाँचता है एवं यह `--topology-reference` के साथ पारस्परिक रूप से अद्वितीय है। इस गेट को पार करना केवल टोपोलॉजी संरक्षण को ही साबित करता है; उम्मीदवार को अभी भी कंपाइल डायग्नोस्टिक्स एवं रेंडर-स्मोक चेक की आवश्यकता है. + +`--repair-brief` परिणाम में स्कीमा `notemd.circuitikz.repair-acceptance.v1` के साथ `repairAcceptance` साक्ष्य भी शामिल होते हैं। यह `topology-signature`, `compile-diagnostics`, एवं `render-smoke` गेटों को `passed`, `failed`, या `missing` के रूप में रिपोर्ट करता है; `remainingChecks` को प्रकट करता है; एवं `readyForVisualAcceptance` को तब तक गलत ही रखता है जब तक कि उम्मीदवार चलान में सभी आवश्यक साक्ष्य शामिल न हों. + +जब CI या रिलीज़ साक्ष्य को एक टिकाऊ JSON फ़ाइल की आवश्यकता हो, तो `--repair-acceptance-output` का उपयोग `--repair-brief` के साथ करें: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +रिलीज़ या मेन्टेनर साक्ष्य के लिए, प्रत्येक समर्थित गोल्डन फैमिली को एग्रीगेट फिक्सचर रनर के माध्यम से चलाएँ: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +रनर `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json`, एवं `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json` का उपयोग करता है, प्रत्येक फिक्सचर के लिए वही शेल-रहित एक्सपोर्टर पथ को कॉल करता है, एवं प्रति-फिक्सचर `compileExecution` एवं `compileDiagnostics` के साथ एक एग्रीगेट JSON रिपोर्ट लौटाता है। यह अभी भी मेन्टेनर कमांड है, प्लगइन रनटाइम निर्भरता नहीं है. + +जब मेन्टेनर मशीन में अभी तक कोई रेंडरर कॉन्फ़िगर नहीं किया गया है, तो `--compile-executable` के बिना ही वही फिक्सचर कमांड चलाएँ एवं वातावरण गेट को स्पष्ट रूप से संग्रहीत करें: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +वह पथ फिर भी निर्धारित फिक्सचर `.tex` आर्टिफैक्ट्स को लिखता है, लेकिन `ok: false` के साथ `rendererAvailability.status` को `missing-configuration` पर सेट करके एवं एक `compile-executable-invalid` डायग्नोस्टिक्स के साथ लौटाता है। इसे केवल रेंडरर उपलब्धता साक्ष्य के रूप में ही मानें; यह कंपाइल, रेंडर-स्मोक, या दृश्य स्वीकृति नहीं है. + +### गोल्डन रेफरेंस प्रॉम्प्ट आकार + +निकट भविष्य में उपयोग के लिए, सर्किट वेरिएंट माँगने से पहले एक रेंडर करने योग्य गोल्डन रेफरेंस प्रदान करें। एक सीमित प्रॉम्प्ट में प्रस्तावना, निर्देशांक पैमाना, एंकर शैली, एवं रूटिंग परंपराओं को बनाए रखना चाहिए: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +CMOS इन्वर्टर के लिए, प्रॉम्प्ट में केवल “CMOS इन्वर्टर बनाओ” नहीं, बल्कि स्पष्ट टोपोलॉजी एवं लेआउट प्रतिबंधों का अनुरोध होना चाहिए: + +- `VDD` को ऊपर रखें, `GND` को नीचे रखें, इनपुट बाईं ओर, आउटपुट दाईं ओर; +- use `pmos` above `nmos`, shared gates एवं shared drains के साथ; +- output node को drain junction पर ही रखें एवं उसे `*-o` से चिह्नित करें; +- दृश्य रूप से अनुमानित निर्देशांकों के बजाय नामित anchors (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) का उपयोग करें; +- जब तक विद्युतीय रूप से आवश्यक न हो, तब तक तिरछे या आपस में क्रॉस होने वाले तारों से बचें. + +### वर्तमान प्रगति एवं अगले चरण + +| क्षेत्रफल | वर्तमान स्थिति | अगला कदम | +|------|----------------|-----------| +| सामान्य आरेख | Mermaid, JSON Canvas, Vega-Lite, HTML के लिए spec-first pipeline लागू किया गया है | सेमांटिक सत्यापन कवरेज को लगातार बढ़ाते रहें | +| संपादनीय आकृतियाँ | `editable-html-svg`, Draw.io XML, एवं Drawnix JSON artifact सीमाएँ लागू की गई हैं | परीक्षणों में संपादनीयता सिद्ध होने के बाद ही अधिक समृद्ध primitives जोड़ें | +| CLI सहायता | `npm run diagram:export-artifact` एक ही `DiagramSpec` से editable HTML/SVG, Draw.io, एवं Drawnix निर्यात करता है | नए टारगेटों के आने पर लक्ष्य-विशिष्ट स्मोक फिक्सचर जोड़ें | +| circuitikz | `CircuitSpec -> circuitikz` प्रोटोटाइप, कॉमन-सोर्स, CMOS इन्वर्टर, `cmos-buffer` / `cmos-buffer-v1`, `cmos-transmission-gate` / `cmos-transmission-gate-v1`, `cmos-nand2` / `cmos-nand2-v1`, एवं `cmos-nor2` / `cmos-nor2-v1` गोल्डन टेम्पलेट्स, प्रोजेक्ट्स `layoutHints.inputSide` एवं `layoutHints.outputSide` को टोपोलॉजी बदले बिना निर्धारित इनपुट/आउटपुट पोर्ट स्थान देता है, `--topology-reference` के माध्यम से मरम्मत टोपोलॉजी ड्रिफ्ट को अस्वीकार करता है, `--repair-brief-output` एवं स्कीमा `notemd.circuitikz.repair-brief.v1` के माध्यम से टोपोलॉजी-संरक्षित मरम्मत सारांश जारी करता है, `diagnosticFocus`, `acceptanceCriteria`, एवं भूमिका `topology-preserving-circuitikz-repair` के साथ संरचित `repairPrompt` हैंडऑफ़ कंटेंट शामिल करता है, `--repair-brief` के माध्यम से मरम्मत उम्मीदवारों की सत्यापन करता है, स्कीमा `notemd.circuitikz.repair-acceptance.v1` के माध्यम से `readyForVisualAcceptance` एवं `remainingChecks` के साथ `repairAcceptance` गेट साक्ष्य लौटाता है, `--repair-acceptance-output` के माध्यम से उस साक्ष्य को संरक्षित रखता है, कंपाइल लॉग्स को पार्स करता है, स्पष्ट स्थानीय रेंडररों के साथ-साथ `--expected-artifact`, SVG `--expected-svg-text` चला सकता है, `aria-label`, `<title>`, एवं `<desc>` के माध्यम से एक्सेसिबिलिटी मेटाडेटा जाँच करता है, छिपे/पारदर्शी SVG तत्वों को बाहर रखता है, पथ-केवल लेबलों के लिए `render-svg-text-path-only` / `pathOnlyGlyphUseCount` वर्गीकरण, `<use href="#...">` के लिए पथ-केवल ग्लिफ़ स्थान जाँच, `render-svg-path-glyph-overlap` के माध्यम से पथ-केवल ग्लिफ़ ओवरलैप निदान, `Z/z` के लिए क्लोज़-पथ करंट-पॉइंट हैंडलिंग, A/a आर्क एक्सट्रीमा के लिए सटीक आर्क सीमाएँ, C/S/Q/T आर्क एक्सट्रीमा के लिए सटीक बीज़ियर कर्व सीमाएँ, स्ट्रोक-विड्थ-सचेत SVG सीमाएँ एवं लेबल ओवरलैप जाँच, `polyline` / `polygon` ड्रॉइंग ज्यामिति जाँच, स्थित `tspan` लेबल ज्यामिति, `text-anchor`-सचेत स्थित टेक्स्ट ज्यामिति, SVG बाउंडेड-कैनवास/टेक्स्ट-ओवरलैप एवं लेबल-बनाम-ड्रॉइंग स्मोक के लिए ट्रांसफॉर्म-सचेत ज्यामिति, `render-svg-label-overlap` के माध्यम से, एवं PNG नॉनब्लैंक/क्लिप्ड/डेंस-फोरग्राउंड स्क्रीनशॉट स्मोक जाँच, इंडेक्स्ड-कलर पैलेट अल्फा, ग्रेस्केल/RGB tRNS ट्रांसपेरेंट सैंपल, एवं Adam7 इंटरलेस्ड PNG एवं इंडेक्स्ड बिट-डेप्थ विफलताओं के लिए स्वरूप-विशिष्ट `render-png-unsupported` मार्गदर्शन, `foregroundBounds`, `foregroundDensity`, `render-png-content-clipped`, एवं `render-png-foreground-dense` के माध्यम से, शेल पार्सिंग के बिना, समूहीकृत रखरखावकर्ता स्मोक फिक्सचर शामिल करता है, `rendererAvailability.status: "missing-configuration"` एवं `compile-executable-invalid` के माध्यम से गायब रेंडरर कॉन्फ़िगरेशन को रिकॉर्ड करता है, एवं सामान्य प्रीव्यू निदान, निदान सारांश गिनतियाँ, निदान-सचेत इतिहास प्रविष्टियाँ, एवं `RenderArtifact.diagnostics` एवं प्रीव्यू मोडल के माध्यम से केवल स्रोत-आधारित फॉलबैक शामिल करता है | पथ-केवल दृश्य टेक्स्ट के लिए OCR-स्तरीय लेबल पहचान, सटीक पिक्सेल-स्तरीय ओवरलैप जाँच, आवश्यकता पड़ने पर व्यापक SVG पथ कवरेज, केवल तभी स्वचालित रेंडरर इंस्टॉलेशन/खोज जब वह वैकल्पिक रह सके, एवं स्वचालित टोपोलॉजी-संरक्षित मरम्मत निष्पादन | +| TikZJax एकीकरण | Obsidian-साइड डिस्प्ले के लिए उम्मीदवार रेंडर होस्ट | इसे वैकल्पिक रखें; TikZJax को कठोर प्लगइन रनटाइम निर्भरता न बनाएं | + +## कॉन्फ़िगरेशन + +| सेटिंग | डिफ़ॉल्ट | प्रभाव | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | स्पेसिफिकेशन-पहले एवं पुराने Mermaid के बीच टॉगल करें | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = Mermaid ही; `'best-fit'` = नेटिव टारगेट्स + फॉलबैक्स | +| `preferredDiagramIntent` | `undefined` (ऑटो) | स्वचालित इरादा पहचान को ओवरराइड करें | +| `summarizeToMermaidLanguage` | `'en'` | डायग्राम लेबलों के लिए लक्ष्य भाषा | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | डायग्राम जनरेशन के लिए प्रति-टास्क LLM | +| `autoMermaidFixAfterGenerate` | (कॉन्स्टेंट्स से) | Mermaid आउटपुट पर पुराना फिक्सर स्वचालित रूप से चलाएं | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | स्थानीय वॉल्ट ज्ञान के साथ स्रोत को समृद्ध करें | + +### स्थानीय ज्ञान समृद्धीकरण + +जब इसे सक्षम किया जाता है, तो Notemd आपके वॉल्ट के स्थानीय ज्ञान आधार (MiniSearch-आधारित) से संबंधित संदर्भ टुकड़े प्राप्त करता है और उन्हें स्रोत मार्कडाउन के आगे जोड़ देता है। वर्धन प्रॉम्प्ट में लिखा है: "केवल सहायक संदर्भ; स्रोत नोट की मूल संरचना को बरकरार रखें।" + +### संगतता मोड + +- **`legacy-mermaid`**: सभी इंटेंट Mermaid पर भेजे जाते हैं। गैर-Mermaid इंटेंट (canvasMap, dataChart) को मजबूरन `flowchart` या `mindmap` पर भेजा जाता है। कोई फॉलबैक चेन नहीं है। +- **`best-fit`**: प्रत्येक इंटेंट को उसके मूल लक्ष्य पर भेजा जाता है। यदि मूल विधि विफल हो जाती है, तो फॉलबैक चेन का उपयोग किया जाता है (उदाहरण के लिए, Vega-Lite → Mermaid → HTML)। + +## प्रीव्यू एवं निर्यात + +| क्रिया | विधि | +|--------|--------| +| SVG निर्यात | Canvas के लिए `mermaid.render()` / `vega.View.toSVG()` / SVG बिल्डर | +| PNG निर्यात | SVG → इमेज → Canvas (डिवाइस पिक्सेल अनुपात 1x-3x) → PNG ArrayBuffer | +| स्रोत सहेजें | लक्ष्य-विशिष्ट एक्सटेंशन के साथ कच्ची आर्टिफैक्ट सामग्री सहेजी जाती है | +| केवल स्रोत प्रीव्यू | स्रोत सामग्री वाले गैर-इनलाइन आर्टिफैक्ट को कोड के रूप में दिखाया जाता है साथ ही डायग्नोस्टिक्स भी, iframe रेंडरिंग के बिना | +| सेमेंटिक ऑडिट | Mermaid, JSON Canvas, Vega-Lite, एवं संपादनीय HTML/SVG की जाँच `scripts/diagram-semantic-verification.js` द्वारा की गई है | + +**कैशिंग**: RenderCache `{spec, target, theme}` की निर्धारित JSON कुंजी का उपयोग करता है। इन-फ्लाइट डुप्लिकेशन रोकने से डुप्लिकेट रेंडरिंग नहीं होती है. + +## सुझाव + +- **`best-fit` मोड से शुरू करें** — यह प्रत्येक इंटेंट प्रकार के लिए सबसे अच्छा दृश्य आउटपुट देता है +- **जटिल आरेखों के लिए शक्तिशाली मॉडलों का उपयोग करें** — फ्लोचार्ट एवं ER आरेख GPT-4o या Claude से लाभ प्राप्त करते हैं +- **डोमेन-विशिष्ट आरेखों के लिए स्थानीय ज्ञान सक्षम करें** — प्रासंगिक वॉल्ट संदर्भ सटीकता में सुधार करता है +- **`autoMermaidFixAfterGenerate` सेट करें** — इसके बिना Mermaid सिंटैक्स त्रुटियाँ आम होती हैं +- **लेगेसी फिक्सर व्यापक है** — यदि Mermaid प्रीव्यू विफल हो जाए, तो फिक्सर कमांड को मैन्युअल रूप से चलाने से अक्सर समस्या हल हो जाती है + +--- + +## अगले चरण + +- 🔗 [Wiki-Links](./wiki-links) — अवधारणाओं को इनलाइन कैसे जोड़ा जाता है +- 📝 [Concept Notes](./concept-notes) — आरेख स्रोत सामग्री के लिए अवधारणाओं को निकालें +- 🔍 [Research](./research) — वेब-स्रोतित डेटा से आरेखों को समृद्ध बनाएँ diff --git a/website/i18n/hi/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/hi/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..57f004d4 --- /dev/null +++ b/website/i18n/hi/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "अनुसंधान एवं वेब खोज" +description: "अपने नोट्स में वेब खोज को एकीकृत करें" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# अनुसंधान एवं वेब खोज + +<TLDR> +**Notemd वेब की खोज करता है एवं LLM-सारांशित परिणामों को सीधे आपके नोट्स में डाल देता है.** Tavily API मुख्य खोज बैकएंड है; DuckDuckGo शून्य-कॉन्फ़िगरेशन वाला विकल्प के रूप में कार्य करता है. परिणामों को स्रोत संदर्भों के साथ सारांशित किया जाता है एवं `## Research` शीर्षक के नीचे जोड़ा जाता है. यह एकल-नोट अनुसंधान, बैच फ़ोल्डर अनुसंधान, एवं सारांशन चरण के लिए प्रति-कार्य मॉडल चयन का समर्थन करता है. + +यह [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge) का हिस्सा है. +</TLDR> + +## अवलोकन + +अनुसंधान Notemd के सबसे शक्तिशाली एकीकरणों में से एक है: यह पढ़ने, खोजने एवं लिखने के बीच का चक्र बंद कर देता है. किसी अपरिचित शब्द की जानकारी पाने हेतु ब्राउज़र में जाने के बजाय, आप उसे हाइलाइट करें एवं Notemd को खोज, सारांशन एवं परिणाम जोड़ने का कार्य सौंपें -- यह सब आपके वॉल्ट में ही होता है. + +यह प्रक्रिया पूरी तरह से कॉन्फ़िगर की जा सकती है. आप खोज प्रदाता, सारांश लिखने वाला LLM, एवं परिणामों को सक्रिय नोट में जोड़ा जाए या अलग फ़ाइलों में लिखा जाए, यह चुन सकते हैं. बैच मोड आपको एक क्लिक में ही किसी फ़ोल्डर में मौजूद सभी नोट्स का अनुसंधान करने की सुविधा देता है. + +## यह कैसे काम करता है + +### खोज-फिर-सारांशन पाइपलाइन + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **क्वेरी निष्कर्षण** -- Notemd आपके चयन या नोट शीर्षक से खोज शब्द निकालता है. +2. **वेब खोज** -- पहले Tavily का उपयोग किया जाता है. यदि कोई API कुंजी कॉन्फ़िगर नहीं की गई है, तो DuckDuckGo स्वचालित रूप से उपयोग में आता है (कोई कुंजी आवश्यक नहीं). +3. **LLM सारांशन** -- कच्चे खोज परिणामों को कॉन्फ़िगर किए गए LLM में भेजा जाता है, जो इनलाइन स्रोत संदर्भों के साथ एक संक्षिप्त सारांश तैयार करता है. +4. **जोड़ना** -- फ़ॉर्मेट किया गया सारांश सक्रिय नोट में `## Research` शीर्षक के नीचे जोड़ दिया जाता है. + +### Tavily बनाम DuckDuckGo + +| पहलू | Tavily | DuckDuckGo | +|--------|--------|------------| +| API कुंजी | आवश्यक (मुफ्त स्तर उपलब्ध) | आवश्यक नहीं | +| परिणाम की गुणवत्ता | उच्च (एआई के लिए विशेष रूप से बनाया गया) | सामान्य प्रश्नों के लिए पर्याप्त | +| दर सीमाएँ | उदार मुफ्त स्तर | थ्रॉटलिंग के अधीन | +| कॉन्फ़िगरेशन | सेटिंग्स में `tavilyApiKey` | शून्य कॉन्फ़िगरेशन -- स्वचालित फ़ॉलबैक | + +### बैच फ़ोल्डर अनुसंधान + +एक फ़ोल्डर पर राइट-क्लिक करें और **"Notemd: Research folder"** चुनें। फ़ोल्डर में मौजूद प्रत्येक `.md` फ़ाइल को क्रमशः (या कॉन्फ़िगर की गई समानांतरता तक समानांतर रूप से) संसाधित किया जाता है। प्रत्येक नोट को अपना स्वयं का अनुसंधान सारांश मिलता है. + +## कॉन्फ़िगरेशन + +| सेटिंग | डिफ़ॉल्ट | प्रभाव | +|---------|---------|--------| +| `tavilyApiKey` | `''` | Tavily API कुंजी। जब यह खाली हो, तो केवल DuckDuckGo ही उपयोग में आता है. | +| `researchProvider` / `researchModel` | DeepSeek | खोज परिणामों को सारांशित करने हेतु प्रति-कार्य LLM | +| `maxResearchContentTokens` | `4000` | LLM में भेजे गए सामग्री के लिए टोकन बजट। अतिरिक्त भाग काट दिया जाता है. | +| `researchAppendToNote` | `true` | स्रोत नोट में सारांश जोड़ें। यदि false हो, तो एक अलग फ़ाइल बनाई जाती है. | +| `researchLanguage` | `'en'` | सारांशित अनुसंधान के लिए आउटपुट भाषा | + +### प्रति-कार्य मॉडल सिफ़ारिश + +बहुभाषी सामग्री को संभालने वाले एवं अच्छी तरह संरचित गद्य उत्पन्न करने वाले मॉडल से अनुसंधान को लाभ होता है। विचार करें: + +- **DeepSeek** -- डिफ़ॉल्ट, किफ़ायती, अच्छी गुणवत्ता +- **GPT-4o** -- बेहतर गुणवत्ता वाला सारांश, अधिक लागत +- **Gemini Flash** -- तेज़ एवं सस्ता, साधारण प्रश्नों के लिए उपयुक्त + +## उदाहरण + +आप *transformer attention mechanisms* पर एक शोधपत्र पढ़ रहे हैं एवं आपको *relative positional encoding* नामक अपरिचित शब्द मिला है: Obsidian को छोड़ने के बजाय. + +1. **"relative positional encoding"** को हाइलाइट करें +2. राइट-क्लिक करें --> **"Notemd: Research and summarize"** +3. Notemd वेब पर खोज करता है, शीर्ष परिणामों का सारांश तैयार करता है एवं निम्नलिखित जोड़ता है: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +अब यह सारांश आपके वॉल्ट का हिस्सा है, जिसे खोजा जा सकता है, लिंक किया जा सकता है एवं ऑफ़लाइन भी एक्सेस किया जा सकता है. + +## सुझाव + +- **सर्वोत्तम परिणामों हेतु एक Tavily कुंजी सेट करें** -- मुफ़्त स्तर भी कच्चे DuckDuckGo की तुलना में बेहतर प्रासंगिकता प्रदान करता है. +- **एक सक्षम सारांशन मॉडल का उपयोग करें** -- सस्ते मॉडल बारीक तकनीकी सामग्री को सरल बना सकते हैं. +- **प्रारंभिक पठन के बाद बैच अनुसंधान** करें ताकि एक साथ कई नोट्स में मौजूद खाली जगहें भरी जा सकें. +- **जोड़े गए सारांशों की समीक्षा करें** -- LLM स्रोत विवरणों में गलतियाँ कर सकता है। मुख्य दावों की पुष्टि करें. + +--- + +## अगले चरण + +- [Concept Notes](./concept-notes) -- अनुसंधान परिणामों से महत्वपूर्ण शब्दों को निकालकर संग्रहीत करें +- [Wiki-Links](./wiki-links) -- आपके वॉल्ट में अनुसंधान से प्राप्त अवधारणाओं को आपस में जोड़ें +- [Translation](./translation) -- अनुसंधान सारांशों का दूसरी भाषा में अनुवाद करें +- [LLM प्रदाता](/docs/providers/overview) -- सारांशन हेतु उपयोग किए जाने वाले मॉडल को कॉन्फ़िगर करें diff --git a/website/i18n/hi/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/hi/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..f3309938 --- /dev/null +++ b/website/i18n/hi/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "अनुवाद" +description: "नोट्स एवं चयनित भागों का अनुवाद करें" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# अनुवाद + +<TLDR> +**Notemd LLM-संचालित अनुवाद तकनीक का उपयोग करके 21+ भाषाओं के बीच पाठ का अनुवाद करता है।** यह एकल-चयन अनुवाद, पूर्ण-नोट अनुवाद एवं बैच फ़ोल्डर अनुवाद का समर्थन करता है। प्रत्येक अनुवाद कार्य में प्रति-कार्य सेटिंग्स के माध्यम से एक विशेष प्रदाता एवं मॉडल का उपयोग किया जा सकता है। आउटपुट भाषा UI भाषा से स्वतंत्र रूप से कॉन्फ़िगर की जा सकती है। परिणाम आपकी पसंद के अनुसार या तो मूल पाठ के नीचे जोड़े जाते हैं या एक नई फ़ाइल में लिखे जाते हैं. + +यह [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge) का हिस्सा है. +</TLDR> + +## अवलोकन + +Notemd में अनुवाद कोई शब्दकोश खोज नहीं है -- यह LLM-संचालित, संदर्भ-जागरूक अनुवाद है। मॉडल पूरा पैराग्राफ़ या नोट देखता है, जिससे स्वर, क्षेत्र-विशिष्ट शब्दावली एवं वाक्य-संरचना बरकरार रहती है। इससे वाक्य-दर-वाक्य सेवाओं की तुलना में विशेष रूप से तकनीकी, शैक्षणिक एवं रचनात्मक लेखन हेतु उच्च गुणवत्ता वाले परिणाम प्राप्त होते हैं. + +यह सुविधा तीन दायरों का समर्थन करती है: चयन, सक्रिय नोट एवं पूरा फ़ोल्डर। प्रति-कार्य मॉडल चयन के साथ, आप सामान्य अनुवाद हेतु तेज़ मॉडल (Gemini Flash) एवं सूक्ष्मता-संवेदनशील सामग्री हेतु शक्तिशाली मॉडल (Claude Sonnet) का उपयोग कर सकते हैं -- बिना अपने सामान्य प्रदाता को बदले. + +## यह कैसे काम करता है + +### अनुवाद कमांड + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **स्रोत पहचान** -- LLM सामग्री से स्रोत भाषा का अनुमान लगाता है। आपको इसे मैन्युअल रूप से निर्दिष्ट करने की आवश्यकता नहीं है. +2. **प्रॉम्प्ट निर्माण** -- Notemd लक्ष्य भाषा, वैकल्पिक क्षेत्र-संकेत एवं अनुवाद करने योग्य सामग्री शामिल करने वाला प्रॉम्प्ट बनाता है. +3. **LLM अनुवाद** -- कॉन्फ़िगर किया गया `translateProvider` / `translateModel` अनुरोध को संसाधित करता है। मॉडल मार्कडाउन फॉर्मेटिंग, विकी-लिंक्स एवं कोड ब्लॉक्स को बरकरार रखता है. +4. **आउटपुट** -- अनुवादित पाठ या तो मूल पाठ के नीचे जोड़ा जाता है या वॉल्ट में एक नई फ़ाइल में लिखा जाता है. + +### भाषा जोड़े + +Notemd उस LLM द्वारा समर्थित किसी भी भाषा जोड़े का समर्थन करता है। सामान्य जोड़े में शामिल हैं: + +| स्रोत | लक्ष्य | सामान्य गुणवत्ता | +|--------|--------|----------------| +| अंग्रेज़ी | चीनी (सरलीकृत) | उत्कृष्ट | +| चीनी | अंग्रेज़ी | उत्कृष्ट | +| अंग्रेज़ी | जापानी | बहुत अच्छा | +| अंग्रेज़ी | जर्मन / फ्रेंच / स्पेनिश | बहुत अच्छा | +| कोई भी समर्थित | कोई भी समर्थित | मॉडल-निर्भर | + +The `translateLanguage` setting controls the **output language**. The source language is auto-detected. + +### कार्य-वार मॉडल चयन + +अनुवाद की गुणवत्ता मॉडल के आधार पर काफी भिन्न होती है. Notemd lets you assign a dedicated model just for translation: + +| मॉडल | गति | गुणवत्ता | लागत | सबसे उपयुक्त | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | तेज़ | अच्छा | कम | हल्का, उच्च मात्रा में | +| `gpt-4o-mini` | तेज़ | अच्छा | कम | त्वरित खोजें | +| `deepseek-chat` | मध्यम | अच्छा | बहुत कम | बजटीय बहुभाषी | +| `claude-3-5-sonnet` | मध्यम | उत्कृष्ट | मध्यम | तकनीकी / शैक्षणिक | +| `gpt-4o` | मध्यम | उत्कृष्ट | मध्यम | सूक्ष्म भेदों के प्रति संवेदनशील गद्य | + +### बैच फ़ोल्डर अनुवाद + +किसी फ़ोल्डर पर राइट-क्लिक करें और **"Notemd: Translate folder"** चुनें ताकि उस फ़ोल्डर में मौजूद हर नोट का अनुवाद हो सके। प्रत्येक फ़ाइल को स्वतंत्र रूप से संसाधित किया जाता है। समानांतरता सेटिंग यह निर्धारित करती है कि कितनी फ़ाइलें एक साथ अनुवाद होंगी. + +## कॉन्फ़िगरेशन + +| सेटिंग | डिफ़ॉल्ट | प्रभाव | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | अनुवाद कार्यों के लिए समर्पित प्रदाता | +| `translateLanguage` | `'en'` | लक्ष्य आउटपुट भाषा | +| `translationAppendToNote` | `true` | मूल पाठ के नीचे अनुवादित पाठ जोड़ें। यदि false हो, तो एक नई फ़ाइल बनाई जाती है. | +| `batchConcurrency` | `3` | बैच अनुवाद के दौरान एक साथ संसाधित होने वाली फ़ाइलों की संख्या | + +## उदाहरण + +आप एक चीनी भाषा का शोध नोट पढ़ रहे हैं और उसका अंग्रेज़ी संस्करण चाहते हैं: + +1. नोट खोलें +2. राइट-क्लिक --> **"Notemd: Translate current file"** +3. Notemd चीनी भाषा का पता लगाता है, आपके कॉन्फ़िगर किए गए लक्ष्य भाषा (अंग्रेज़ी) में अनुवाद करता है, और नीचे जोड़ता है: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +मूल चीनी पाठ अनुवाद के ऊपर बिना बदले रहता है। `## Translation` शीर्षक दोनों संस्करणों को एक ही फ़ाइल में रखता है ताकि आसानी से संदर्भ लिया जा सके. + +## सुझाव + +- **बड़े फ़ोल्डरों के बैच अनुवाद के लिए Gemini Flash का उपयोग करें** -- यह बड़े फ़ोल्डरों के अनुवाद हेतु सबसे तेज़ और सस्ता विकल्प है. +- **विकि-लिंकों को संरक्षित रखें** -- Notemd का निर्देश LLM को अनुवाद में `[[wiki-links]]` को बिल्कुल वैसा ही रखने के लिए कहता है. अनुवाद के बाद जाँच करें, क्योंकि कुछ मॉडल कभी-कभी उन्हें अनस्वैप कर देते हैं. +- **आउटपुट भाषा को स्पष्ट रूप से सेट करें** -- स्रोत के लिए स्वचालित पहचान काम करती है, लेकिन लक्ष्य के बारे में कोई द्विअर्थता न हो इसलिए हमेशा `translateLanguage` को कॉन्फ़िगर करें. +- **कॉन्सेप्ट नोट्स का बैच-अनुवाद करें** -- यदि आपकी कॉन्सेप्ट फ़ोल्डर एक भाषा में है और आपको उसे दूसरी भाषा में चाहिए, तो फ़ोल्डर-स्तरीय अनुवाद इसे एक ही चरण में संभाल लेता है. + +--- + +## अगले चरण + +- [Research](./research) -- किसी भी भाषा में खोज करें और सारांश तैयार करें, फिर परिणामों का अनुवाद करें +- [Workflows](./workflows) -- विकि-लिंकिंग या कॉन्सेप्ट निष्कर्षण के साथ अनुवाद को श्रृंखलाबद्ध करें +- [Batch Processing](/docs/advanced/batch-processing) -- फ़ोल्डर संचालन के लिए समवर्तीता और ओवरराइट व्यवहार +- [LLM Providers](/docs/providers/overview) -- अपनी भाषा-जोड़ी के लिए सबसे अच्छा मॉडल चुनें diff --git a/website/i18n/hi/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/hi/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..349fa3ed --- /dev/null +++ b/website/i18n/hi/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "विकि-लिंक्स" +description: "मुख्य अवधारणाओं के लिए स्वचालित विकि-लिंक निर्माण" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# विकि-लिंक्स + +<TLDR> +**Notemd स्वचालित रूप से आपके नोट्स में मुख्य अवधारणाओं के पास `[[wiki-links]]` जोड़ देता है।** LLM आपकी सामग्री को पढ़ता है, संदर्भ में महत्वपूर्ण शब्दों की पहचान करता है, और प्रत्येक उपस्थिति पर Obsidian-शैली के विकि-लिंक डालता है। वैकल्पिक रूप से बैकलिंक्स के साथ कॉन्सेप्ट नोट फ़ाइलें भी बनाता है। यह समानार्थी शब्दों को दबाने, पुनःनामकरण/हटाने पर लिंकों की अखंडता बनाए रखने, और शुद्ध निष्कर्षण मोड (फ़ाइल में कोई परिवर्तन नहीं) का समर्थन करता है। Auto Link के विपरीत जो केवल मौजूदा नोट शीर्षकों के साथ मेल खाता है, Notemd AI का उपयोग करके नई अवधारणाओं की पहचान करता है और संबंधित नोट्स बनाता है। यह [Obsidian AI ज्ञान प्रबंधन मार्गदर्शिका](/docs/pillar-ai-knowledge) का हिस्सा है। +</TLDR> + +## अवलोकन + +विकि-लिंकिंग Notemd की मुख्य सुविधा है। यह साधारण पाठ को एक जुड़े हुए ज्ञान ग्राफ़ में बदलती है निम्नलिखित तरीकों से: + +1. **LLM के साथ आपके नोट का विश्लेषण** करना +2. **मुख्य अवधारणाओं** (शब्द, व्यक्ति, विधियाँ, सिद्धांत) की पहचान करना +3. **प्रत्येक उपस्थिति पर `[[wiki-links]]` डालना** +4. **बैकलिंक्स के साथ कॉन्सेप्ट नोट्स** (वैकल्पिक) बनाना + +## यह कैसे काम करता है + +### प्रक्रिया + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### उदाहरण + +**पहले:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**बाद में:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## उपयोग + +### बुनियादी: वर्तमान नोट में लिंक जोड़ना + +1. एक नोट खोलें +2. एडिटर में राइट-क्लिक करें → **"फ़ाइल प्रोसेस करें (लिंक जोड़ें)"** +3. कुछ सेकंड इंतज़ार करें +4. अब अवधारणाएँ लिंक्ड हो गई हैं! + +### बैच: कई नोट्स प्रोसेस करें + +1. फ़ाइल एक्सप्लोरर में एक फ़ोल्डर पर राइट-क्लिक करें +2. **"Notemd: Process folder (add links)"** का चयन करें +3. कॉन्फ़िगर करें: + - समवर्तीता (समानांतर में कितनी फ़ाइलें) + - मौजूदा लिंकों को ओवरराइट करें (हाँ/नहीं) +4. **प्रोसेस** पर क्लिक करें + +### चयनात्मक: विशिष्ट टेक्स्ट को लिंक करें + +1. प्रोसेस करने हेतु टेक्स्ट को हाइलाइट करें +2. राइट-क्लिक → **"प्रोसेस सिलेक्शन (लिंक जोड़ें)"** +3. केवल हाइलाइट किया गया हिस्सा ही विश्लेषित किया जाता है + +## Notemd बनाम ऑटो लिंक + +Obsidian में स्वचालित विकि-लिंकिंग हेतु दो तरीके हैं: + +| | **ऑटो लिंक** | **Notemd** | +|--|---------------|-------------| +| लिंक स्रोत | वॉल्ट में मौजूदा नोट शीर्षक | कंटेंट में LLM द्वारा पहचाने गए अवधारणाएँ | +| नए अवधारणाओं को लिंक कर सकते हैं | नहीं — शीर्षक पहले से मौजूद होना चाहिए | हाँ — AI अवधारणाओं की पहचान करता है और नोट्स बनाता है | +| समानार्थी शब्दों का प्रबंधन | नहीं | हाँ — समानार्थी शब्दों को दबाया जाता है | +| अवधारणा नोट बनाना | नहीं | हाँ — बैकलिंक्स और डुप्लीकेशन हटाकर | +| बैच प्रोसेसिंग | नहीं (एकल फ़ाइल) | हाँ (फ़ोल्डर-स्तर पर) | +| प्रति-कार्य मॉडल रूटिंग | नहीं | हाँ | + +**Auto Link** शीर्षक-मेल करने वाला है: यदि "Machine Learning" नामक नोट मौजूद है, तो यह `[[Machine Learning]]` में उसकी घटनाओं को लपेट देता है। यदि नोट मौजूद नहीं है, तो कुछ नहीं होता। + +**Notemd** AI-चालित है: LLM आपकी सामग्री पढ़ता है, संदर्भ को समझता है, ऐसी अवधारणाओं की पहचान करता है जिन्हें *लिंक* किया जाना चाहिए — भले ही अभी तक कोई नोट मौजूद न हो — और लिंक तथा अवधारणा नोट दोनों बनाता है. + +## विशेषताएँ + +### समानार्थी शब्दों को दबाना + +**समस्या:** "transformer", "transformers", "Transformer architecture" → 3 अलग-अलग अवधारणाएँ + +**समाधान:** Notemd लगभग समान डुप्लीकेट्स का पता लेता है और मानक रूप का उपयोग करता है. + +**कॉन्फ़िगरेशन:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### लिंक इंटीग्रिटी + +**जब आप किसी कॉन्सेप्ट नोट का नाम बदलते हैं:** +- सभी विकि-लिंक स्वचालित रूप से अपडेट हो जाते हैं (Obsidian मुख्य सुविधा) +- बैकलिंक अपरिवर्तित रहते हैं + +**जब आप किसी कॉन्सेप्ट नोट को हटाते हैं:** +- लिंक तो रह जाते हैं लेकिन वे "अनलिंक्ड मेंशन्स" के रूप में दिखाई देते हैं +- आप किसी भी उदाहरण से इसे पुनः बना सकते हैं + +### प्योर एक्सट्रैक्शन मोड + +**मूल को बदले बिना कॉन्सेप्ट निकालें:** + +1. राइट-क्लिक → **"कॉन्सेप्ट निकालें (लिंकिंग बिना)"** +2. कॉन्सेप्ट नोट बन जाते हैं +3. मूल फ़ाइल अपरिवर्तित रहती है + +उपयोग का मामला: केवल पढ़ने योग्य सामग्री या अंतिम मसौदों को संसाधित करना. + +## कॉन्सेप्ट नोट जनरेशन + +### स्वचालित रचना + +**जब सक्षम हो (डिफ़ॉल्ट), Notemd निम्नलिखित बनाता है:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### कॉन्फ़िगरेशन + +**आउटपुट फ़ोल्डर:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**हायरार्किकल संरचना:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**टेम्पलेट:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## उन्नत विकल्प + +### कॉन्टेक्स्ट विंडो + +**कितना आसपास का टेक्स्ट भेजना है:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +अधिक = बेहतर सटीकता, उच्च लागत. + +### न्यूनतम घटनाएँ + +**केवल वे ही लिंक कॉन्सेप्ट जो कई बार दिखाई देते हैं:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +पुनरावर्ती थीमों पर ध्यान केंद्रित करने हेतु 2 या 3 पर सेट करें. + +### पैटर्न बाहर करें + +**कुछ शब्दों को छोड़ें:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +सामान्य शब्दों के अतिरिक्त लिंक होने से रोकता है. + +### कस्टम प्रॉम्प्ट्स + +**डिफ़ॉल्ट LLM निर्देशों को ओवरराइड करें:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +डोमेन-विशिष्ट आवश्यकताओं हेतु संशोधित करें (उदाहरण के लिए, "चिकित्सा शब्दावली पर ध्यान केंद्रित करें"). + +## सुझाव एवं सर्वोत्तम प्रथाएँ + +### ✅ करें + +- **100 शब्दों से अधिक वाले नोट्स को संसाधित करें** — छोटे नोट्स से कम अवधारणाएँ प्राप्त होती हैं +- **बेहतर अवधारणा पहचान हेतु शक्तिशाली मॉडलों का उपयोग करें** (GPT-4o, Claude) +- **स्वीकार करने से पहले समीक्षा करें** — जाँचें कि सुझाए गए लिंक उचित हैं +- **चरणबद्ध रूप से निर्माण करें** — 5-10 नोट्स को संसाधित करें, ग्राफ की समीक्षा करें, सेटिंग्स में संशोधन करें + +### ❌ न करें + +- **अत्यधिक लिंकिंग** — हर संज्ञा के लिए लिंक आवश्यक नहीं है +- **मसौदों को बार‑बार संसाधित न करें** — अवधारणाएँ बदल सकती हैं, स्थिर होने तक प्रतीक्षा करें +- **पर्यायवाची शब्दों को नजरअंदाज न करें** — "ML" एवं "Machine Learning" जैसे शब्दों से बचने हेतु दमन सक्षम करें + +## प्रदर्शन + +### गति + +| नोट का आकार | GPT-4o-mini | Claude Sonnet | Ollama (स्थानीय) | +|-----------|-------------|---------------|----------------| +| 500 शब्द | 2-3 सेकंड | 3-5 सेकंड | 5-10 सेकंड | +| 2000 शब्द | 5-8 सेकंड | 10-15 सेकंड | 20-40 सेकंड | +| 5000+ शब्द | चंक्ड (कई कॉल) | चंक्ड | चंक्ड | + +### लागत अनुमानन + +**उदाहरण: GPT-4o-mini के साथ 1000-शब्दों वाला नोट** +- इनपुट: ~1500 टोकन्स +- आउटपुट: ~200 टोकन्स +- लागत: ~ + +**100 नोट्स का बैच प्रोसेसिंग:** लगभग $0.10 + +## समस्या निवारण + +### कोई लिंक जोड़े नहीं गए। + +**जाँच करें:** +1. LLM कॉल सफल रहा (Settings → Diagnostics) +2. नोट में पर्याप्त सामग्री है (>50 शब्द) +3. अवधारणाएँ तकनीकी/विशिष्ट होती हैं (केवल सर्वनाम नहीं) + +**आजमाएँ:** +- एक अधिक शक्तिशाली मॉडल का उपयोग करें +- कॉन्टेक्स्ट विंडो को बढ़ाएं +- API कुंजी की वैधता जाँचें + +### बहुत सारे लिंक हैं + +**समाधान:** +1. न्यूनतम घटनाओं की संख्या बढ़ाएं (2 या 3) +2. बाहर करने वाली सूची में सामान्य शब्द जोड़ें +3. एक कम आक्रामक मॉडल का उपयोग करें + +### गलत अवधारणाएँ जुड़ी हुई हैं + +**सुधार:** +1. डोमेन विशिष्टता के लिए कस्टम प्रॉम्प्ट का उपयोग करें +2. समानार्थी शब्दों को दबाने की सुविधा सक्षम करें +3. मैन्युअल रूप से समीक्षा करें एवं लिंक हटाएं + +### नाम बदलने के बाद लिंक टूट जाते हैं + +**यह Obsidian व्यवहार सामान्य है.** + +सभी लिंक अपडेट करने हेतु: +1. कॉन्सेप्ट नोट का नाम बदलें +2. Obsidian स्वचालित रूप से `[[old]]` को `[[new]]` में अपडेट कर देगा + +--- + +## अगले चरण + +- 📖 [कॉन्सेप्ट नोट्स](./concept-notes) — कॉन्सेप्ट नोट बनाने की गहन जानकारी +- 🔍 [रिसर्च एकीकरण](./research) — लिंकिंग को वेब रिसर्च के साथ जोड़ें +- 🎨 [डायग्राम](./diagrams) — अपने नॉलेज ग्राफ को दृश्यमान बनाएं diff --git a/website/i18n/hi/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/hi/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..343de97d --- /dev/null +++ b/website/i18n/hi/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "कार्यप्रवाह" +description: "एक-क्लिक बटनों के साथ कई कार्यों को श्रृंखलाबद्ध करें" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# कार्यप्रवाह + +<TLDR> +**Notemd कार्यप्रवाह कई कार्यों को एक ही एक-क्लिक क्रिया में श्रृंखलाबद्ध करते हैं.** `add-links > extract-concepts > research > diagram` के समान अनुक्रमों को एक सरल DSL का उपयोग करके परिभाषित किया जाता है. कार्यप्रवाह बार-बटनों के रूप में दिखाई देते हैं जो वर्तमान नोट या फ़ोल्डर पर पूरी श्रृंखला को चलाते हैं. पहले से परिभाषित कार्यप्रवाह शामिल होते हैं; सेटिंग्स में अपने स्वयं के कार्यप्रवाह बनाए जा सकते हैं. प्रत्येक चरण अपनी स्वयं की प्रति-कार्य मॉडल कॉन्फ़िगरेशन का उपयोग करता है. + +यह [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge) का हिस्सा है. +</TLDR> + +## अवलोकन + +एक कार्यप्रवाह कार्यों को एक-एक करके चलाने से होने वाली परेशानियों को दूर करता है. लिंक जोड़ने, अवधारणाओं को निकालने, अपरिचित शब्दों का अनुसंधान करने और एक आरेख बनाने हेतु चार बार राइट-क्लिक करने के बजाय, आप एक बार बार-बटन दबाते हैं और पूरी श्रृंखला चल जाती है. Notemd अनुक्रमण, त्रुटि प्रसारण और प्रगति रिपोर्टिंग को संभालता है. + +कार्यप्रवाह एक हल्के DSL (डोमेन-विशिष्ट भाषा) में परिभाषित किए जाते हैं. वे सेटिंग्स में स्थित होते हैं, Obsidian बार में क्लिक करने योग्य बटनों के रूप में दिखाई देते हैं, और वर्तमान नोट या पूरे फ़ोल्डर पर लागू किए जा सकते हैं. + +## यह कैसे काम करता है + +### कार्यप्रवाह निष्पादन पाइपलाइन + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **पार्स** -- DSL स्ट्रिंग को `>` (या `>`) पर विभाजित करके कार्य पहचानकर्ताओं की एक क्रमबद्ध सूची बनाई जाती है. +2. **रिज़ॉल्व** -- प्रत्येक पहचानकर्ता एक आंतरिक कमांड (add-links, extract-concepts, research, translate, diagram आदि) से मेल खाता है. +3. **निष्पादित करें** -- चरण क्रमशः चलते हैं. प्रत्येक चरण अपने कॉन्फ़िगर किए गए प्रति-कार्य प्रदाता और मॉडल का उपयोग करता है. +4. **त्रुटि प्रबंधन** -- यदि कोई चरण विफल हो जाता है, तो कार्यप्रवाह या तो रुक जाता है या आपकी त्रुटि नीति के अनुसार अगले चरण पर जारी रहता है. +5. **समाप्त** -- एक टोस्ट सूचना सफलता की रिपोर्ट करती है या किसी भी विफल चरणों की सूची देती है. + +### DSL प्रारूप + +कार्यप्रवाह `>` से अलग किए गए कार्य पहचानकर्ताओं के अनुक्रम के रूप में परिभाषित किए जाते हैं: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**उपलब्ध कार्य पहचानकर्ता:** + +| पहचानकर्ता | क्रिया | +|------------|--------| +| `process-current-add-links` | सक्रिय नोट में विकि-लिंक जोड़ें | +| `extract-concepts-current` | सक्रिय नोट से अवधारणाएँ निकालें | +| `research-and-summarize` | चुने गए पाठ या नोट शीर्षक का अनुसंधान करें | +| `process-current-translate` | सक्रिय नोट का अनुवाद करें | +| `summarize-to-mermaid` | सक्रिय नोट से एक आरेख बनाएँ | +| `generate-from-title` | नोट शीर्षक से सामग्री उत्पन्न करें | +| `extract-original-text` | मूल पाठ निकालें (OCR/स्कैन की गई सामग्री के लिए) | + +**फ़ोल्डर-स्तरीय विकल्प** – पहचानकर्ता नाम में `current` को `folder` से बदलें. + +### पूर्वनिर्धारित बनाम कस्टम वर्कफ़्लो + +Notemd में सामान्य पैटर्नों के लिए पहले से तैयार वर्कफ़्लो शामिल हैं: + +| वर्कफ़्लो | चेन | उपयोग का मामला | +|----------|-------|----------| +| **वन-क्लिक एक्सट्रैक्ट** | add-links > extract-concepts > research | एक ही चरण में एक शोध पत्र संसाधित करें | +| **पूर्ण पाइपलाइन** | add-links > extract-concepts > research > diagram | प्रदर्शन के साथ पूर्ण ज्ञान निष्कर्षण | +| **अनुवाद + लिंक** | translate > add-links | लक्ष्य भाषा में अनुवाद करके फिर अवधारणाओं को लिंक करें | + +**कस्टम वर्कफ्लो** सेटिंग्स में बनाए जाते हैं: + +1. **Settings** खोलें --> **Notemd** --> **Workflows** +2. **"Add Workflow"** पर क्लिक करें +3. DSL श्रृंखला दर्ज करें (उदाहरण के लिए, `process-current-add-links>extract-concepts-current`) +4. इसे एक प्रदर्शन नाम दें (उदाहरण के लिए, "Quick Link + Extract") +5. नया बटन तुरंत साइडबार में दिखाई देगा + +## कॉन्फ़िगरेशन + +| सेटिंग | डिफ़ॉल्ट | प्रभाव | +|---------|---------|--------| +| `workflows` | पूर्वनिर्धारित सेट | वर्कफ्लो परिभाषाओं की सरणी (नाम + DSL) | +| `workflowContinueOnError` | `true` | यदि वर्तमान चरण विफल हो जाए तो अगले चरण पर जाएँ | +| `workflowShowProgress` | `true` | प्रत्येक चरण पूरा होने के बाद एक प्रगति टोस्ट दिखाएँ | + +### वर्कफ्लो में प्रति-टास्क मॉडल + +वर्कफ्लो में प्रत्येक चरण अपनी **स्वयं की** प्रति-कार्य मॉडल कॉन्फ़िगरेशन का उपयोग करता है. आपको DSL में सीधे मॉडल निर्दिष्ट करने की आवश्यकता नहीं है. रिज़ॉल्यूशन क्रम इस प्रकार है: + +1. यदि `useMultiModelSettings` उपलब्ध हो तो प्रति-कार्य प्रदाता/मॉडल +2. अन्यथा ग्लोबल `activeProvider` + +इसका अर्थ है कि `add-links` DeepSeek पर चल सकता है जबकि `research` GPT-4o पर चलता है -- यह सब एक ही वर्कफ्लो क्लिक के भीतर होता है. + +## उदाहरण + +आपने अपने वॉल्ट में किसी मशीन लर्निंग पेपर का PDF आयात किया है और पूर्ण ज्ञान निष्कर्षण चाहते हैं: + +1. आयात की गई नोट खोलें +2. **"पूर्ण पाइपलाइन"** साइडबार बटन पर क्लिक करें +3. Notemd निम्नलिखित कार्य करता है: + - **चरण 1**: विकि-लिंक जोड़ें -- `[[attention mechanism]]`, `[[transformer]]`, आदि. + - **चरण 2**: अवधारणाओं को निष्कर्षित करें -- आपके कॉन्सेप्ट फ़ोल्डर में कॉन्सेप्ट नोट बनाएं + - **चरण 3**: अनुसंधान -- मुख्य शब्दों के लिए वेब स्रोतों का सारांश तैयार करें + - **चरण 4**: आरेख -- पेपर की संरचना का Mermaid माइंडमैप बनाएं +4. लगभग 30 सेकंड बाद, आपकी नोट में लिंक हो जाते हैं, कॉन्सेप्ट नोट मौजूद होते हैं, अनुसंधान जुड़ जाता है, और एक आरेख फ़ाइल सहेजी जाती है + +यह सब एक ही क्लिक से हो जाता है. + +## सुझाव + +- **पहले पूर्वनिर्धारित वर्कफ्लो से शुरू करें** -- ये सबसे सामान्य पैटर्नों को कवर करते हैं. केवल तभी कस्टमाइज़ करें जब आपको अलग क्रम की आवश्यकता हो. +- **`workflowContinueOnError` को सक्षम करें** -- यदि कोई आरेख चरण विफल हो जाए तो पूरी पाइपलाइन रुकनी नहीं चाहिए. +- **बल्क प्रोसेसिंग के लिए फ़ोल्डर वर्कफ़्लो का उपयोग करें** -- किसी फ़ोल्डर पर राइट-क्लिक करें, एक वर्कफ़्लो चुनें, और हर नोट को संसाधित किया जाएगा. +- **वर्कफ़्लो के नाम स्पष्ट रखें** -- साइडबार की जगह सीमित है. "Quick Extract" या "Translate + Link" जैसे छोटे, क्रिया-उन्मुख नामों का उपयोग करें. + +--- + +## अगले चरण + +- [Research](./research) -- वर्कफ़्लो में इसे जोड़ने से पहले यह समझें कि रिसर्च चरण क्या करता है +- [Wiki-Links](./wiki-links) -- अधिकांश वर्कफ़्लो में उपयोग होने वाली मुख्य लिंकिंग सुविधा +- [Concept Notes](./concept-notes) -- वर्कफ़्लो चरण के रूप में कॉन्सेप्ट निष्कर्षण +- [Batch Processing](/docs/advanced/batch-processing) -- फ़ोल्डर वर्कफ़्लो के लिए समानांतरता एवं प्रगति रिपोर्टिंग diff --git a/website/i18n/hi/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/hi/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..80bdcfdb --- /dev/null +++ b/website/i18n/hi/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "कॉन्फ़िगरेशन" +description: "Notemd की सेटिंग्स एवं प्राथमिकताओं को कॉन्फ़िगर करें" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# कॉन्फ़िगरेशन + +<TLDR> +**Notemd कॉन्फ़िगरेशन 6 मुख्य क्षेत्रों को कवर करता है:** (1) LLM प्रोवाइडर एवं API कुंजियाँ, (2) प्रति-कार्य मॉडल चयन, (3) आउटपुट पथ एवं टेम्पलेट, (4) UI भाषा एवं आउटपुट भाषा, (5) खोज सेवाएँ (Tavily/DuckDuckGo), (6) कस्टम वर्कफ़्लो। सभी सेटिंग्स Obsidian Settings → Notemd में हैं। परिवर्तन तुरंत प्रभावी हो जाते हैं. +</TLDR> + +## सेटिंग्स अवलोकन + +पहुँच: **Obsidian Settings (⚙️) → Notemd** + +### मुख्य विभाग + +1. **प्रोवाइडर कॉन्फ़िगरेशन** — API कुंजियाँ, बेस URLs, मॉडल +2. **कार्य सेटिंग्स** — प्रति-कार्य मॉडल चयन +3. **आउटपुट कॉन्फ़िगरेशन** — जहाँ जेनरेट किए गए फ़ाइलों को सहेजा जाता है +4. **भाषा सेटिंग्स** — UI एवं आउटपुट भाषाएँ +5. **खोज एकीकरण** — Tavily/DuckDuckGo सेटअप +6. **वर्कफ़्लो** — कस्टम बटन श्रृंखलाएँ +7. **उन्नत** — डायग्नोस्टिक्स, बैच प्रोसेसिंग, चंकिंग + +--- + +## 1. प्रोवाइडर कॉन्फ़िगरेशन + +### प्रोवाइडर जोड़ना + +1. ड्रॉपडाउन से **प्रोवाइडर चुनें** (30+ उपलब्ध) +2. **API कुंजी दर्ज करें** +3. **वैकल्पिक**: कस्टम बेस URL सेट करें (प्रॉक्सी/गेटवे के लिए) +4. **‘Get Model List’ पर क्लिक करें** ताकि कनेक्शन की जाँच हो सके +5. **डिफ़ॉल्ट मॉडल चुनें** + +### सामान्य प्रदाता + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Local) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### बहुल प्रदाता + +आप कई प्रदाताओं को कॉन्फ़िगर कर सकते हैं एवं प्रत्येक कार्य के लिए उनके बीच स्विच कर सकते हैं: +- **मुख्य प्रदाता**: फ़ॉलबैक के रूप में उपयोग होता है +- **कार्य-विशिष्ट प्रदाता**: विशिष्ट कार्यों के लिए ओवरराइड किया जाता है + +--- + +## 2. कार्य-विशिष्ट मॉडल + +लागत/गुणवत्ता को अनुकूलित करने हेतु विभिन्न कार्यों के लिए अलग-अलग मॉडल कॉन्फ़िगर करें: + +### कार्य प्रकार + +| कार्य | डिफ़ॉल्ट मॉडल | उद्देश्य | +|------|--------------|---------| +| **लिंकिंग** | मुख्य प्रदाता | विकि-लिंकों के लिए अवधारणाओं की पहचान करें | +| **कॉन्सेप्ट जनरेशन** | मुख्य प्रदाता | अवधारणाओं को निकालें एवं वर्णन करें | +| **अनुसंधान** | मुख्य प्रदाता | वेब खोज परिणामों का सारांश दें | +| **अनुवाद** | मुख्य प्रदाता | पाठ का अनुवाद करें | +| **डायग्राम जनरेशन** | मुख्य प्रदाता | Mermaid/Canvas आरेख बनाएँ | + +### उदाहरण: लागत-अनुकूल सेटअप + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### कैसे कॉन्फ़िगर करें + +1. **सेटिंग्स → Notemd → टास्क सेटिंग्स** +2. प्रत्येक टास्क के लिए, चुनें: + - ✅ **मुख्य प्रदाता का उपयोग करें** (डिफ़ॉल्ट) + - 🔄 **कस्टम प्रदाता का उपयोग करें** → प्रदाता + मॉडल चुनें + +--- + +## 3. आउटपुट कॉन्फ़िगरेशन + +### अवधारणा नोट्स आउटपुट + +**नए कॉन्सेप्ट नोट्स कहाँ संग्रहीत होते हैं:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**टेम्पलेट:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### फ़ोल्डर संरचना विकल्प + +**विकल्प 1: फ्लैट (सभी कॉन्सेप्ट एक ही फ़ोल्डर में)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**विकल्प 2: हायरार्किकल (स्रोत फ़ोल्डर के अनुसार)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +कॉन्फ़िगर करें: **Settings → Output → Use Hierarchical Folders** + +### डायग्राम आउटपुट + +**डायग्राम कहाँ संग्रहीत होते हैं:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**फ़ॉर्मेट:** +- `.mmd` (Mermaid स्रोत) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. भाषा सेटिंग्स + +### UI भाषा + +**इंटरफ़ेस भाषा** (बटन, मेनू, डायलॉग): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +समर्थित: English, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Русский, العربية, एवं अन्य. + +### आउटपुट भाषा + +**जनरेटेड कंटेंट भाषा** (कॉन्सेप्ट नोट्स, अनुसंधान सारांश): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**उपयोग केस:** चीनी UI + अंग्रेजी आउटपुट द्विभाषी अनुसंधान के लिए. + +### अनुवाद लक्ष्य + +**अनुवाद कार्यों के लिए डिफ़ॉल्ट लक्ष्य भाषा:** + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. खोज एकीकरण + +### Tavily (अनुशंसित) + +**AI-ऑप्टिमाइज्ड खोज सेवा:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +Get key: [tavily.com](https://tavily.com/) + +**विशेषताएँ:** +- उच्च गुणवत्ता वाले परिणाम +- AI-ऑप्टिमाइज्ड सारांश +- स्रोत संदर्भ + +### DuckDuckGo (प्रयोगात्मक) + +**कोई API कुंजी आवश्यक नहीं:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**नोट:** कम गुणवत्ता, कोई कस्टमाइजेशन नहीं. + +--- + +## 6. वर्कफ्लो कॉन्फ़िगरेशन + +### कस्टम वर्कफ्लो बनाना + +**वर्कफ्लो, कई कार्यों को एक बटन में जोड़ते हैं.** + +1. **सेटिंग्स → वर्कफ्लो → वर्कफ्लो जोड़ें** +2. **नाम**: "पेपर एनालिसिस फ्लो" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **सहेजें** + +बाएँ साइडबार में एक नया बटन दिखाई देता है. + +### DSL सिंटैक्स + +**फॉर्मेट:** `action1>action2>action3` + +**उपलब्ध क्रियाएँ:** +- `process-current-add-links` — वर्तमान नोट में विकि-लिंक जोड़ें +- `extract-concepts-current` — कॉन्सेप्ट नोट बनाएँ +- `research-and-summarize` — वेब शोध + सारांश +- `translate-current` — वर्तमान नोट का अनुवाद करें +- `summarize-as-mermaid` — Mermaid आरेख बनाएँ +- `process-folder-add-links` — फोल्डर को बैच में संसाधित करें + +**उदाहरण वर्कफ्लो:** + +**त्वरित अवधारणा निष्कर्षण:** +``` +process-current-add-links>extract-concepts-current +``` + +**गहन अनुसंधान:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**बहुभाषी विश्लेषण:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. उन्नत सेटिंग्स + +### बैच प्रोसेसिंग + +**समानांतर में कई फ़ाइलों को संसाधित करें:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +अधिक = तेज़, लेकिन अधिक API कॉल होती हैं. + +### स्मार्ट चंकिंग + +**लंबे नोट्स के लिए, उन्हें चंक्स में विभाजित करें:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +टोकन सीमा संबंधी त्रुटियों को रोकता है. + +### निदान पैनल + +**विस्तृत लॉग देखें:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +दर्शाता है: +- API अनुरोध/प्रतिक्रियाएँ +- टोकन उपयोग +- संसाधन समय +- त्रुटियाँ + +### डुप्लिकेट अवधारणा पहचान + +**निकट-डुप्लिकेट अवधारणाओं से बचें:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +उच्च = अधिक आक्रामक मर्जिंग. + +--- + +## कॉन्फ़िगरेशन प्रोफ़ाइल्स + +### एक्सपोर्ट/इम्पोर्ट सेटिंग्स + +**डिवाइसों के बीच कॉन्फ़िगरेशन साझा करें:** + +1. **सेटिंग्स → एडवांस्ड → एक्सपोर्ट कॉन्फ़िगरेशन** +2. `notemd-config.json` को सहेजता है +3. नए डिवाइस पर: **कॉन्फ़िगरेशन इम्पोर्ट करें** + +**इसमें क्या शामिल है:** +- प्रोवाइडर API कुंजियाँ (वैकल्पिक) +- मॉडल चयन +- आउटपुट पथ +- कस्टम वर्कफ्लोज़ + +--- + +## अनुशंसित कॉन्फ़िगरेशन्स + +### छात्रों के लिए + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### शोधकर्ताओं के लिए + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### गोपनीयता के प्रति सजग उपयोगकर्ताओं के लिए + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### द्विभाषी कार्य हेतु + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## कॉन्फ़िगरेशन संबंधी समस्याओं का समाधान + +### सेटिंग्स सहेजी नहीं गईं +- `.obsidian/plugins/notemd/` में फ़ाइल अनुमतियों की जाँच करें +- प्रयास करें: प्लगइन निष्क्रिय करें → पुनः सक्रिय करें + +### API कुंजी अमान्य है +- कोई अतिरिक्त स्पेस नहीं +- समाप्ति तिथि की जाँच करें +- प्रदाता डैशबोर्ड में क्रेडिट्स की पुष्टि करें + +### मॉडल लोड नहीं हो रहे हैं +- ताज़ा जानकारी हेतु "Get Model List" पर क्लिक करें +- नेटवर्क कनेक्टिविटी की जाँच करें +- अलग प्रदाता का प्रयास करें + +--- + +## अगले चरण + +- 📖 [Explore Features](../features/wiki-links) +- 🔌 [Provider Setup Guides](../providers/overview) +- ❓ [FAQ](../faq) diff --git a/website/i18n/hi/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/hi/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..174334d0 --- /dev/null +++ b/website/i18n/hi/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "स्थापना" +description: "Obsidian में Notemd को कैसे स्थापित करें" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# स्थापना + +<TLDR> +**2 मिनट से भी कम समय में Notemd को स्थापित करें।** दो विधियाँ: (1) Obsidian Community Plugins (अनुशंसित, वन-क्लिक स्थापना), या (2) GitHub Releases के माध्यम से मैन्युअल स्थापना। Obsidian 0.15.0+ की आवश्यकता है। Windows, macOS, Linux, iOS और Android पर कार्य करता है। कोई बाहरी निर्भरता नहीं। 4k+ डाउनलोड, MIT लाइसेंसित. +</TLDR> + +## विधि 1: Community Plugins (अनुशंसित) + +1. **Obsidian सेटिंग्स** खोलें (⚙️ आइकन या `Ctrl/Cmd + ,`) +2. **Community plugins** पर जाएँ +3. **Browse** पर क्लिक करें +4. **"Notemd"** के लिए खोज करें +5. **Install** पर क्लिक करें +6. **Enable** पर क्लिक करें + +**काम हो गया!** आपको अपने बाएँ साइडबार में Notemd आइकन दिखाई देगा. + +## विधि 2: मैन्युअल स्थापना + +### पूर्व आवश्यकताएँ +- Obsidian 0.15.0 या उससे ऊपर +- Git (वैकल्पिक, क्लोनिंग के लिए) + +### चरण + +1. [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest) से **फ़ाइलें डाउनलोड** करें: + - `main.js` + - `styles.css` + - `manifest.json` + +2. **अपने वॉल्ट के प्लगइन फोल्डर का पता लगाएँ:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +यदि `plugins` फोल्डर मौजूद नहीं है, तो इसे बनाएं। + +3. **Notemd फ़ोल्डर बनाएँ:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **तीनों फ़ाइलों** को `notemd` फ़ोल्डर में **कॉपी करें**. + +5. **Obsidian को पुनः लोड करें:** + - `Ctrl/Cmd + R` दबाएं, या + - Obsidian को पुनः शुरू करें + +6. **प्लगइन को सक्रिय करें:** + - सेटिंग्स → कम्युनिटी प्लगइन्स + - सूची में "Notemd" खोजें + - इसे चालू करें + +## वैकल्पिक तरीका: BRAT के माध्यम से इंस्टॉल करें + +यदि आप [BRAT प्लगइन](https://github.com/TfTHacker/obsidian42-brat) का उपयोग करते हैं: + +1. BRAT के सेटिंग्स खोलें +2. "एड बीटा प्लगइन" पर क्लिक करें +3. दर्ज करें: `Jacobinwwey/obsidian-NotEMD` +4. "एड प्लगइन" पर क्लिक करें +5. कम्युनिटी प्लगइन्स में Notemd को सक्षम करें + +## सत्यापन + +इंस्टॉलेशन के बाद, Notemd कार्यरत है या नहीं यह सत्यापित करें: + +1. कोई भी नोट खोलें +2. एडिटर में राइट-क्लिक करें +3. आपको Notemd कमांड्स दिखने चाहिए जैसे: + - "प्रोसेस फ़ाइल (लिंक जोड़ें)" + - "कॉन्सेप्ट्स निकालें" + - "शोध करें एवं सारांश तैयार करें" + +## अगले चरण + +- **LLM प्रदाता को कॉन्फ़िगर करें:** [क्विक स्टार्ट →](./quick-start) +- **समस्या निवारण:** [कॉमन इश्यूज़ →](../advanced/troubleshooting) + +## सिस्टम आवश्यकताएँ + +| प्लेटफ़ॉर्म | संस्करण | स्थिति | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | आवश्यक | +| **Windows** | 7+ | ✅ समर्थित | +| **macOS** | 10.15+ | ✅ समर्थित | +| **Linux** | कोई भी | ✅ समर्थित | +| **iOS** | 15+ | ✅ समर्थित | +| **Android** | 5+ | ✅ समर्थित | + +## हटाना + +Notemd को हटाने हेतु: + +1. सेटिंग्स → कम्युनिटी प्लगइन्स +2. "Notemd" खोजें +3. ❌ आइकन पर क्लिक करें +4. वैकल्पिक रूप से, प्लगइन फोल्डर हटाएं: `<vault>/.obsidian/plugins/notemd/` + +आपका डेटा (नोट्स, कॉन्सेप्ट नोट्स आदि) बिना किसी प्रभाव के बरकरार रहता है. + +## अपडेट कर रहा है + +### स्वचालित अपडेट (अनुशंसित) +Obsidian स्वचालित रूप से प्लगइन अपडेटों की जाँच करता है। जब कोई नया संस्करण उपलब्ध होता है: +1. सेटिंग्स → कम्युनिटी प्लगइन्स +2. "अपडेट जाँचें" पर क्लिक करें +3. Notemd के बगल में "अपडेट" पर क्लिक करें + +### मैनुअल अपडेट +नवीनतम संस्करण डाउनलोड करें और अपने प्लगइन फोल्डर में तीन फ़ाइलों को बदल दें. + +## सहायता प्राप्त करें + +- 📖 [क्विक स्टार्ट गाइड](./quick-start) +- ❓ [FAQ](../faq) +- 💬 [डिस्कॉर्ड कम्युनिटी](https://discord.gg/qnGgsQ9W) +- 🐛 [समस्याओं की रिपोर्ट करें](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/hi/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/hi/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..6368aabe --- /dev/null +++ b/website/i18n/hi/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "क्विक स्टार्ट गाइड" +description: "5 मिनट में Notemd के साथ शुरुआत करें" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# क्विक स्टार्ट गाइड + +<TLDR> +**5 मिनट में Notemd का उपयोग शुरू करें।** तीन चरण: (1) एक LLM API कुंजी जोड़ें (या स्थानीय Ollama का उपयोग करें), (2) एक नोट खोलें और “Process file (add links)” चलाएं, (3) साइडबार में वन-क्लिक वर्कफ्लो का उपयोग करें। 30 से अधिक प्रदाता समर्थित हैं। कोडिंग की आवश्यकता नहीं है। Ollama के साथ ऑफलाइन भी काम करता है. +</TLDR> + +## चरण 1: अपने पहले LLM प्रदाता को कॉन्फ़िगर करें (2 मिनट) + +### विकल्प A: क्लाउड प्रदाता (OpenAI, Anthropic, आदि.) + +1. **Settings** → **Notemd** खोलें +2. **LLM Provider Configuration** के नीचे, ड्रॉपडाउन से एक प्रदाता चुनें +3. अपनी **API कुंजी** दर्ज करें +4. (वैकल्पिक) उपलब्ध मॉडल देखने हेतु **“Get Model List”** पर क्लिक करें +5. प्रत्येक कार्य प्रकार के लिए एक मॉडल चुनें + +**लोकप्रिय विकल्प:** +- **OpenAI**: `gpt-4o-mini` (तेज़, सस्ता) +- **Anthropic**: `claude-sonnet-4-6` (उच्च गुणवत्ता वाला) +- **DeepSeek**: `deepseek-chat` (बहुत ही सस्ता) + +### विकल्प B: स्थानीय Ollama (API कुंजी की आवश्यकता नहीं है) + +1. [Ollama](https://ollama.com/) को इंस्टॉल करें +2. एक मॉडल डाउनलोड करें: `ollama pull llama3.1` +3. Notemd सेटिंग्स में, प्रदाता के रूप में **"Ollama"** चुनें +4. मॉडल का नाम: `llama3.1` (या आपके द्वारा डाउनलोड किया गया कोई भी मॉडल) + +## चरण 2: अपना पहला कार्य आजमाएं (1 मिनट) + +### किसी नोट में विकि-लिंक जोड़ें + +1. सार्थक सामग्री वाला कोई भी नोट खोलें +2. एडिटर में राइट-क्लिक करें +3. **"फ़ाइल प्रोसेस करें (लिंक जोड़ें)"** चुनें +4. कुछ सेकंड इंतज़ार करें +5. मुख्य अवधारणाएँ अब `[[wiki-linked]]` हैं! + +**उदाहरण:** + +**पहले:** +``` +Machine learning models use neural networks to process data. +``` + +**बाद में:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## चरण 3: सुविधाओं का अन्वेषण करें (2 मिनट) + +### अवधारणा नोट्स निकालें + +1. राइट-क्लिक → **"वर्तमान फ़ाइल से अवधारणाएँ निकालें"** +2. Notemd प्रत्येक अवधारणा के लिए अलग-अलग फ़ाइलें बनाता है +3. अपनी कॉन्फ़िगर की गई अवधारणा फ़ोल्डर देखें (डिफ़ॉल्ट: `concepts/`) +4. प्रत्येक अवधारणा नोट में आपके मूल नोट का बैकलिंक होता है + +### अनुसंधान एवं सारांश बनाएँ + +1. अपने नोट में किसी विषय को हाइलाइट करें +2. राइट-क्लिक → **“अनुसंधान एवं सारांश बनाएँ”** +3. Notemd वेब खोज (Tavily या DuckDuckGo) +4. स्रोतों के साथ सारांश आपके नोट में जुड़ जाता है + +### वन-क्लिक वर्कफ्लो + +1. वर्कफ्लो बटनों के लिए **बाएँ साइडबार** देखें +2. किसी भी नोट पर **“वन-क्लिक एक्सट्रैक्ट”** पर क्लिक करें +3. यह चलता है: लिंक जोड़ें → अवधारणाएँ निकालें → अनुसंधान करें → आरेख बनाएँ +4. सब कुछ एक ही क्लिक में! + +## सामान्य प्रारंभिक कार्य + +### कार्य 1: कोई पेपर/लेख संसाधित करें + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### कार्य 2: नोट्स का अनुवाद करें + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### कार्य 3: एक ज्ञान मानचित्र बनाएँ + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## कस्टमाइजेशन सुझाव + +### कार्य-वार मॉडल चयन + +आप विभिन्न कार्यों के लिए अलग-अलग मॉडल उपयोग कर सकते हैं: + +| कार्य | अनुशंसित मॉडल | कारण | +|------|------------------|-----| +| लिंक जोड़ें | `gpt-4o-mini`, `deepseek-chat` | तेज़, कई कॉल | +| अवधारणाएँ निकालें | `claude-sonnet-4-6`, `gpt-4o` | गुणवत्तापूर्ण निष्कर्षन | +| अनुसंधान | `perplexity`, `gpt-4o` | वेब-आधारित | +| अनुवाद | `gemini-flash`, `gpt-4o` | बहुभाषी | +| डायग्राम | `claude-opus`, स्थानीय मॉडल | जटिल तर्क | + +**सेटिंग्स → Notemd → टास्क-विशिष्ट मॉडल** में कॉन्फ़िगर करें + +### कस्टम वर्कफ़्लो + +अपना स्वयं का बटन बनाएँ: + +1. सेटिंग्स → Notemd → वर्कफ़्लो +2. "वर्कफ़्लो जोड़ें" पर क्लिक करें +3. DSL दर्ज करें: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. नाम दें: "मेरा रिसर्च फ्लो" +5. साइडबार में एक नया बटन दिखाई देता है + +## समस्या निवारण + +### "API कुंजी अमान्य है" +- जाँचें कि कुंजी सही है या नहीं (कोई अतिरिक्त स्पेस नहीं) +- सुनिश्चित करें कि खाते में क्रेडिट हैं +- सेटिंग्स में "कनेक्शन टेस्ट" बटन के साथ परीक्षण करें + +### "मॉडल नहीं मिला" +- उपलब्ध मॉडल देखने हेतु "मॉडल सूची प्राप्त करें" पर क्लिक करें +- कुछ प्रदाताओं को विशिष्ट मॉडल नामों की आवश्यकता होती है (जैसे, `gpt-4o` न कि `gpt-4`) + +### लिंक दिखाई नहीं दे रहे हैं +- सुनिश्चित करें कि नोट में पर्याप्त सामग्री है (>50 शब्द) +- एक अधिक शक्तिशाली मॉडल आजमाएं +- जाँचें कि LLM कॉल सफल रहा या नहीं (डायग्नोस्टिक्स पैनल देखें) + +### धीमा प्रदर्शन +- तेज़ मॉडलों का उपयोग करें (`gpt-4o-mini` के बजाय `gpt-4o`) +- सेटिंग्स में चंक साइज़ कम करें +- बैच कार्यों के लिए समानांतर प्रसंस्करण सक्षम करें + +## अगले चरण + +- 📖 [सभी सुविधाओं को देखें](../features/wiki-links) +- ⚙️ [उन्नत कॉन्फ़िगरेशन](./configuration) +- 🔧 [LLM प्रदाता सेटअप](../providers/overview) +- ❓ [FAQ](../faq) + +## वीडियो ट्यूटोरियल + +3-मिनट का क्विकस्टार्ट वीडियो (चीनी) देखें: +[【पूरी तरह ओपन सोर्स एवं मुफ्त! NotEMD – तीन मिनट में सीखें】](https://b23.tv/lqR0RlA) + +## सहायता प्राप्त करें + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **समस्याएँ**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **दस्तावेज़**: [पूरी दस्तावेज़ीकरण](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/hi/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/hi/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..6567f9b8 --- /dev/null +++ b/website/i18n/hi/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "Notemd का परिचय" +description: "Obsidian के लिए AI-संचालित ज्ञान आधार निर्माता, जिसमें स्थायी नोट परिवर्तन, कार्यप्रवाह एवं स्पेक-पहले आरेख शामिल हैं" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Notemd का परिचय + +<TLDR> +**Notemd** (नोट + EMD — एन्हांस्ड मार्कडाउन दस्तावेज़) एक ओपन-सोर्स Obsidian प्लगइन है जो LLM-संचालित पठन को स्थायी ज्ञान में बदल देता है। चैट-आधारित AI के विपरीत जहाँ सत्र के बाद अंतर्दृष्टियाँ गायब हो जाती हैं, Notemd परिणामों को **सीधे आपके वॉल्ट में** विकि-लिंक, अवधारणा नोट्स, अनुसंधान सारांश, अनुवाद, कार्यप्रवाह एवं आरेखों के रूप में लिखता है। यह उन शोधकर्ताओं, छात्रों एवं ज्ञान कार्यकर्ताओं के लिए बनाया गया है जो पठन, अनुसंधान एवं दृश्य स्पष्टीकरणों को एक संरचित, विकसित होते ज्ञान ग्राफ में एकत्र करना चाहते हैं. +</TLDR> + +## Notemd क्या है? + +Notemd आपके Obsidian कार्यप्रवाह में **30+ बड़े भाषा मॉडल** (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama एवं अन्य) को एकीकृत करता है ताकि ज्ञान निष्कर्षण, संगठन, अनुवाद, अनुसंधान एवं आरेख निर्माण स्वचालित हो सके. + +### मुख्य अंतर: क्षणिक बनाम स्थायी ज्ञान + +| पहलू | चैट-आधारित AI (ChatGPT, आदि) | Notemd | +|--------|-------------------------------|--------| +| **परिणाम कहाँ जाते हैं** | चैट इतिहास (गायब हो जाता है) | आपका Obsidian वॉल्ट (स्थायी रहता है) | +| **प्रारूप** | सादा पाठ उत्तर | संरचित फ़ाइलें: `[[wiki-links]]`, अवधारणा नोट्स, आरेख | +| **दीर्घकालिक मूल्य** | हर बार पुनः पूछना पड़ता है | ज्ञान ग्राफ में एकत्र हो जाता है | +| **ऑफलाइन पहुँच** | इंटरनेट की आवश्यकता है | Ollama के साथ पूरी तरह ऑफलाइन काम करता है | + +## मुख्य क्षमताएँ + +### 1. **स्वचालित विकि-लिंकिंग** +- LLM आपके नोट्स में महत्वपूर्ण अवधारणाओं की पहचान करता है +- प्रत्येक उपस्थिति पर `[[wiki-links]]` डालता है +- वैकल्पिक रूप से लिंक्ड कॉन्सेप्ट नोट्स बनाता है +- डुप्लिकेट से बचने हेतु समानार्थी शब्दों को दबा देता है + +### 2. **कॉन्सेप्ट नोट जनरेशन** +- पेपर, लेखों, नोट्स से मूलभूत अवधारणाओं को निकालता है +- बैकलिंक्स के साथ समर्पित कॉन्सेप्ट फ़ाइलें बनाता है +- आउटपुट पथ एवं टेम्पलेट संशोधित किए जा सकते हैं + +### 3. **वेब रिसर्च एकीकरण** +- Obsidian के भीतर से Tavily या DuckDuckGo की खोज करें +- LLM स्रोत संदर्भों के साथ परिणामों का सारांश देता है +- वर्तमान नोट में अनुसंधान परिणाम जोड़ता है + +### 4. **बहुभाषी अनुवाद** +- चयनित भागों या पूरे नोट्स का अनुवाद करें +- 21+ UI भाषाओं का समर्थन करता है +- स्वतंत्र आउटपुट भाषा कॉन्फ़िगरेशन +- बैच अनुवाद समर्थन + +### 5. **डायग्राम निर्माण** +- **Mermaid**: फ्लोचार्ट, अनुक्रम, क्लास, स्टेट, ER, Gantt +- **JSON Canvas**: Obsidian स्थानीय लेआउट +- **Vega-Lite**: डेटा चार्ट, टाइम सीरीज़, स्कैटर प्लॉट +- **HTML / संपादनीय HTML/SVG**: सेमेंटिक एनोटेशन के साथ स्व-सम्पूर्ण आर्टिफैक्ट्स +- **Draw.io / Drawnix आर्टिफैक्ट सीमाएँ**: उसी सेमेंटिक फिगर मॉडल से मेन्टेनर के लिए निर्यात पथ +- **सर्किट डायग्राम रोडमैप**: circuitikz/TikZJax समर्थन को सीधे अनसंयमित LLM TikZ के बजाय गोल्डन रेफरेंस, प्रतिबंधित प्रॉम्प्ट, रेंडर फीडबैक एवं टोपोलॉजी/लेआउट सत्यापन के आधार पर डिज़ाइन किया जा रहा है +- **प्रीव्यू डायग्नोस्टिक्स**: रेंडर आर्टिफैक्ट्स से कंपाइल/रेंडर स्मोक डायग्नोस्टिक्स प्राप्त हो सकती हैं, एवं नॉन-इनलाइन स्रोतों की जाँच प्लगइन-साइड LaTeX रनटाइम के बिना की जा सकती है +- Mermaid त्रुटियों के लिए सिंटैक्स ऑटो-फिक्स + +### 6. **वन-क्लिक वर्कफ्लो** +- साइडबार बटनों में कई क्रियाओं को श्रृंखलाबद्ध करें +- DSL-आधारित वर्कफ्लो परिभाषा +- उदाहरण: `add-links > extract-concepts > research > diagram` + +## Notemd का उपयोग कौन करना चाहिए? + +✅ **शोधकर्ता** जो पेपर पढ़ते हैं और साहित्य समीक्षाएँ बनाते हैं +✅ **छात्र** जो अध्ययन नोट्स व्यवस्थित करते हैं और अवधारणा मानचित्र बनाते हैं +✅ **ज्ञान कार्यकर्ता** जो पठन संबंधी अंतर्दृष्टियों को स्थायी रखना चाहते हैं +✅ **द्विभाषी पेशेवर** जिन्हें अनुवाद + विकि-लिंकिंग की आवश्यकता है +✅ **गोपनीयता-संवेदनशील उपयोगकर्ता** जो स्थानीय LLM सहायता (Ollama) चाहते हैं +✅ **पावर उपयोगकर्ता** जो प्रॉम्प्ट और वर्कफ्लो को कस्टमाइज़ करते हैं + +## Notemd + Obsidian क्यों? + +**Obsidian** एक स्थानीय-प्रथम, मार्कडाउन-आधारित ज्ञान आधार है. **Notemd** एआई की शक्तियाँ जोड़ता है: +- आपका डेटा आपके वॉल्ट में ही रहता है (किसी क्लाउड सेवा में नहीं) +- स्थानीय मॉडलों के साथ ऑफलाइन काम करता है +- मुफ्त और ओपन सोर्स (MIT लाइसेंस) +- मौजूदा Obsidian प्लगइन्स के साथ एकीकृत होता है +- हजारों नोट्स तक स्केल करता है + +## प्रारंभ करें + +1. **इंस्टॉल करें**: सेटिंग्स → कम्युनिटी प्लगइन्स → ब्राउज़ → "Notemd" +2. **कॉन्फ़िगर करें**: अपने LLM प्रोवाइडर API कुंजी को जोड़ें (या स्थानीय Ollama का उपयोग करें) +3. **आजमाएं**: एक नोट खोलें → राइट-क्लिक करें → "फ़ाइल प्रोसेस करें (लिंक जोड़ें)" +4. **अन्वेषण करें**: वन-क्लिक वर्कफ़्लो के लिए साइडबार देखें + +👉 [इंस्टॉलेशन गाइड](./getting-started/installation) | [क्विक स्टार्ट ट्यूटोरियल](./getting-started/quick-start) + +## डायग्राम क्षमता की दिशा + +Notemd का डायग्राम कार्य "मॉडल से एक सिंटैक्स स्ट्रिंग लिखवाने" की दिशा से हटकर एक स्तरीय पाइपलाइन की ओर बढ़ रहा है: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +वर्तमान कार्यान्वयन पहले से ही Mermaid, JSON Canvas, Vega-Lite, HTML फॉलबैक, संपादनीय HTML/SVG, Draw.io XML आर्टिफ़ैक्ट्स, न्यूनतम Drawnix JSON सबसेट, प्रीव्यू डायग्नोस्टिक्स/सोर्स-ओनली फॉलबैक, तथा कॉमन-सोर्स एवं CMOS इन्वर्टर गोल्डन टेम्पलेट्स के लिए ऑफ़लाइन `CircuitSpec -> circuitikz` प्रोटोटाइप का समर्थन करता है। सर्किट डायग्राम एक कठिन श्रेणी है: circuitikz सटीक विद्युत टोपोलॉजी को व्यक्त कर सकता है, लेकिन बिना प्रतिबंध के LLM आउटपुट अक्सर अपठनीय राउटिंग या रेंडर न होने वाला LaTeX पैदा करता है। अगली दिशा circuitikz को गोल्डन-रेफरेंस टेम्पलेट्स, नोड-ग्रिड लेआउट नियमों, रेंडर डायग्नोस्टिक्स, एवं स्क्रीनशॉट फीडबैक लूप्स के साथ प्रतिबंधित रखना है. + +[डायग्राम्स](./features/diagrams) में विवरण पढ़ें. + +## आर्किटेक्चर + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd बनाम अन्य Obsidian AI प्लगइन्स + +अधिकांश Obsidian AI प्लगइन्स संवाद-प्रथम होते हैं (आप पूछते हैं, AI जवाब देता है, अंतर्दृष्टियाँ चैट में ही रहती हैं)। Notemd **लिखने-प्रथम** है: AI आपके नोट्स को संसाधित करके सीधे आपके वॉल्ट में संरचित परिणाम लिख देता है. + +| क्षमता | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| ऑटो विकि-लिंक सम्मिलन | हाँ | नहीं | नहीं | नहीं | +| कॉन्सेप्ट नोट जनरेशन | हाँ (बैकलिंक्स + डुप्लिकेट हटाने के साथ) | नहीं | नहीं | नहीं | +| डायग्राम जनरेशन | हाँ (Mermaid, Canvas, Vega-Lite, HTML, संपादनीय आर्टिफैक्ट्स) | नहीं | नहीं | नहीं | +| वेब रिसर्च एकीकरण | हाँ (Tavily + DuckDuckGo) | नहीं | नहीं | नहीं | +| बैच फोल्डर प्रोसेसिंग | हाँ | सीमित | नहीं | सीमित | +| प्रति-कार्य मॉडल रूटिंग | हाँ (7 कार्य, स्वतंत्र मॉडल) | नहीं | नहीं | नहीं | +| वन-क्लिक वर्कफ्लो चेन | हाँ (DSL) | नहीं | नहीं | नहीं | +| अनुवाद (बैच) | हाँ | नहीं | नहीं | नहीं | +| वॉल्ट के साथ चैट | नहीं | हाँ | नहीं | नहीं | +| सेमैंटिक सिमिलरिटी सर्च | नहीं | नहीं | हाँ | नहीं | +| टेम्पलेट-आधारित जनरेशन | नहीं | नहीं | नहीं | हाँ | +| LLM प्रदाता | 36 (क्लाउड + गेटवे + लोकल) | 3-5 | 2-3 | 3-5 | +| पूरी तरह ऑफलाइन | हाँ (Ollama) | आंशिक | आंशिक | आंशिक | + +**Notemd कब चुनें**: आप चाहते हैं कि AI एक स्थायी ज्ञान ग्राफ बनाए — केवल आपके नोट्स के बारे में चैट न करे. + +**Copilot कब चुनें**: आप चाहते हैं कि Obsidian के भीतर एक संवादात्मक AI सहायक हो. + +**Smart Connections कब चुनें**: आप चाहते हैं कि सेमेंटिक सर्च के माध्यम से नोट्स के बीच मौजूदा संबंधों की खोज की जाए. + +## दर्शन + +**Notemd का मानना है कि AI को मानवीय ज्ञान संबंधी कार्यों को पूरक बनाना चाहिए, उनकी जगह नहीं लेनी चाहिए.** प्लगइन: +- आपको नियंत्रण में रखता है (परिवर्तन लागू करने से पहले समीक्षा करें) +- संदर्भ को संरक्षित रखता है (सभी परिणाम स्रोत से जुड़े रहते हैं) +- गोपनीयता का सम्मान करता है (लोकल LLM समर्थन, कोई टेलीमेट्री नहीं) +- यह विस्तारयोग्य रहता है (खुले APIs, कस्टम वर्कफ्लो) + +## ओपन सोर्स + +- **लाइसेंस**: MIT +- **स्रोत**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **कम्युनिटी**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **योगदान दें**: PRs स्वागत हैं, [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) देखें + +--- + +**अगला कदम**: [Installation →](./getting-started/installation) diff --git a/website/i18n/hi/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/hi/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..91bacedd --- /dev/null +++ b/website/i18n/hi/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Obsidian एआई ज्ञान प्रबंधन मार्गदर्शिका" +description: "एआई के साथ एक जुड़ी हुई ज्ञान आधार बनाने का पूर्ण मार्गदर्शिका — विकि-लिंक एवं अवधारणा निष्कर्षण से लेकर अनुसंधान, अनुवाद एवं आरेख निर्माण तक" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Obsidian एआई ज्ञान प्रबंधन मार्गदर्शिका + +<TLDR> +**Notemd LLM-संचालित पठन को स्थायी ज्ञान में बदलता है: विकि-लिंक अवधारणाओं को जोड़ते हैं, अवधारणा नोट्स एक पुनर्प्राप्य ग्राफ बनाते हैं, अनुसंधान वेब को आपके भंडार में लाता है, अनुवाद भाषा की बाधाओं को दूर करता है, आरेख संरचना को दृश्यमान बनाते हैं, एवं वर्कफ्लो इस सबको एक क्लिक में जोड़ देता है.** यह मार्गदर्शिका कच्चे नोट्स से लेकर एक जुड़ी हुई, दृश्यमान, बहुभाषी ज्ञान आधार तक की पूरी प्रक्रिया को कवर करती है. +</TLDR> + +## एआई ज्ञान प्रबंधन क्यों? + +पारंपरिक नोट-लेने से सपाट फ़ाइलें बनती हैं. मैनुअल विकि-लिंक होने पर भी अधिकांश नोट्स अलग-थलग रहते हैं. Notemd LLM का उपयोग करके कनेक्शन स्तर को स्वचालित किया जाता है: + +- **LLMs आपकी सामग्री को पढ़ते हैं** एवं महत्वपूर्ण चीज़ें पहचानते हैं — शब्द, विधियाँ, लोग, सिद्धांत +- **लिंक प्रत्येक अवधारणा की उपस्थिति पर स्वचालित रूप से डाले जाते हैं**, "देखें भी" में छिपे नहीं रहते +- **अवधारणा नोट्स स्वतंत्र, पुनर्प्राप्य फ़ाइलों के रूप में बनाए जाते हैं** +- **अनुसंधान वेब से प्राप्त संदर्भों से नोट्स को समृद्ध बनाता है** +- **आरेख संरचना को दृश्यमान बनाते हैं** — माइंड मैप, फ्लोचार्ट, एक ही सामग्री से डेटा चार्ट + +परिणाम: ऐसा ज्ञान ग्राफ जो आपके द्वारा प्रसंस्कृत हर नोट के साथ बढ़ता है, न कि केवल तब जब आप लिंक जोड़ना याद रखते हैं. + +## पूरी प्रक्रिया + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +प्रत्येक चरण स्वतंत्र है. एक या सभी का उपयोग करें. सबसे प्रभावी क्रम: **लिंक जोड़ें → अवधारणा नोट्स → आरेख**. + +--- + +## 1. विकि-लिंक: संबंधों को स्पष्ट बनाना + +विकि-लिंक ज्ञान ग्राफ की रीढ़ हैं. Notemd एक LLM का उपयोग करके: + +1. अपने नोट की सामग्री पढ़ें (लंबे दस्तावेज़ों के लिए इसे खंडों में विभाजित करें) +2. मुख्य अवधारणाओं की पहचान करें — सामान्य संज्ञाओं के बजाय विशिष्ट, तकनीकी शब्दों को प्राथमिकता दें +3. प्रत्येक उपस्थिति पर `[[wiki-links]]` डालें +4. समानार्थी शब्दों को दबा दें ताकि "ML" और "Machine Learning" अलग-अलग नोड न बनें + +### कब उपयोग करें + +- **100 शब्दों से अधिक वाले हर नोट** — छोटे नोटों में कम अवधारणाएँ होती हैं +- **शोध पत्र, तकनीकी दस्तावेज़, बैठक के नोट** — क्षेत्र-विशिष्ट शब्दों से भरपूर होते हैं +- **सामग्री स्थिर होने के बाद** — मसौदों पर बार-बार प्रसंस्करण न करें + +### मुख्य सेटिंग्स + +| सेटिंग | अनुशंसित | कारण | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek या GPT-4o-mini | कम लागत पर अच्छी सटीकता | +| समानार्थी शब्द दबाना | चालू | डुप्लिकेट नोडों को रोकता है | +| कॉन्टेक्स्ट विंडो | पैराग्राफ | सटीकता एवं लागत का संतुलन | + +→ [Wiki-Links deep dive](/docs/features/wiki-links) + +--- + +## 2. अवधारणा नोट्स: पुनर्प्राप्त किए जा सकने वाले ज्ञान नोड्स + +Wiki-लिंक्स विचारों को इनलाइन जोड़ते हैं, लेकिन अवधारणा नोट्स प्रत्येक विचार को स्वतंत्र रूप से पुनर्प्राप्त करने योग्य बनाते हैं. प्रत्येक अवधारणा का अपना `.md` फ़ाइल होता है: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### निष्कर्षण प्रक्रिया + +LLM प्रॉम्प्ट अत्यधिक संरचित होता है: +- एकवचन रूप में सामान्यीकृत करें +- एकल शब्दों के बजाय बहु-शब्द अवधारणाओं को प्राथमिकता दें ("Dielectric Relaxation" न कि "Relaxation") +- संदर्भ/ग्रंथसूची खंडों को छोड़ दें +- निर्धारित पार्सिंग हेतु `CONCEPT:` पंक्तियों के रूप में आउटपुट दें + +चंकों के बीच `Set<string>` के माध्यम से अवधारणाओं को डुप्लिकेट से मुक्त किया जाता है. व्यक्तिगत चंकों पर LLM त्रुटियाँ प्रक्रिया को रोकती नहीं हैं. + +### बैकलिंक्स + +जब सक्षम किया जाता है, तो प्रत्येक अवधारणा नोट यह ट्रैक करता है कि कौन-से स्रोत नोट्स उसका उल्लेख करते हैं. Obsidian का मूल बैकलिंक पैनल भी विपरीत कनेक्शन दिखाता है. + +### डुप्लिकेशन रिमूवल + +Notemd का 4-चरणीय डुप्लिकेट मुक्त करने वाला इंजन निम्नलिखित को पकड़ता है: +1. **सटीक मेल** — फ़ाइलनाम की केस-इनसेंसिटिव तुलना +2. **बहुवचन रूप** — “Models.md” बनाम “Model.md” +3. **प्रतीक सामान्यीकरण** — “A-B.md” बनाम “A B.md” +4. **एकल-शब्द संयमन** — जब “Machine Learning.md” मौजूद होता है तो “ML.md” को चिह्नित किया जाता है + +### मुख्य सेटिंग्स + +| सेटिंग | अनुशंसित | कारण | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` या `🧠 concepts/` | वॉल्ट को व्यवस्थित रखता है | +| `extractConceptsAddBacklink` | चालू | रिवर्स लुकअप को सक्षम करता है | +| `extractConceptsMinimalTemplate` | बंद | Linked From के साथ पूरा टेम्पलेट | +| प्रति-कार्य मॉडल | DeepSeek | कॉन्सेप्ट एक्सट्रैक्शन के लिए महंगे मॉडलों की आवश्यकता नहीं होती। | +| समानार्थी शब्द दबाना | चालू | वही सेटिंग लिंकिंग और एक्सट्रैक्शन दोनों को प्रभावित करती है। | + +→ [Concept Notes deep dive](/docs/features/concept-notes) + +--- + +## 3. अनुसंधान: वेब को शामिल करना + +Notemd आपके नोट-लेने के कार्यप्रवाह में वेब खोज को एकीकृत करता है: + +1. **क्वेरी निर्माण** — आपका नोट का शीर्षक या चयन एक खोज क्वेरी बन जाता है +2. **वेब खोज** — Tavily (अनुशंसित, API कुंजी आवश्यक) या DuckDuckGo (मुफ्त, कोई कुंजी नहीं) +3. **LLM सारांशन** — खोज परिणामों को एक प्रासंगिक सारांश में संक्षिप्त किया जाता है +4. **नोट में जोड़ें** — सारांश कर्सर की स्थिति पर या एक नए खंड के रूप में जोड़ा जाता है + +### कब उपयोग करें + +- किसी नए विषय को संसाधित करने से पहले — पहले वेब संदर्भ प्राप्त करें +- जब किसी कॉन्सेप्ट नोट में समृद्धि की आवश्यकता हो — पहले अनुसंधान करें फिर लिंक जोड़ें +- साहित्य समीक्षाओं के लिए — नोट्स के एक फोल्डर पर बैच-अनुसंधान करें + +### मुख्य सेटिंग्स + +| सेटिंग | अनुशंसित | कारण | +|---------|-----------|-----| +| `researchProvider` | GPT-4o या Claude | अनुसंधान के लिए उच्च गुणवत्ता वाला सारांशन आवश्यक है | +| खोज सेवा | Tavily | बेहतर प्रासंगिकता, कॉन्फ़िगर की जा सकने वाली गहराई | +| `maxResearchContentTokens` | 4000 | गहराई एवं लागत के बीच संतुलन | + +→ [Research deep dive](/docs/features/research) + +--- + +## 4. अनुवाद: भाषा की बाधाओं को तोड़ना + +Notemd आपके कॉन्फ़िगर किए गए LLM का उपयोग करके नोट्स का अनुवाद करता है — यह कोई समर्पित अनुवाद API नहीं है। इसका अर्थ है: + +- **संदर्भ-जागरूक अनुवाद** — LLM पूरे दस्तावेज़ को समझता है, न कि वाक्य‑दर‑वाक्य +- **तकनीकी शब्दों का प्रबंधन** — "gradient descent" को "梯度下降" के रूप में ही रखा जाता है, न कि "坡度向下" +- **बैच समर्थन** — एक ही कार्य में नोट्स के पूरे फ़ोल्डर का अनुवाद किया जा सकता है +- **प्रति‑कार्य मॉडल** — अनुवाद के लिए Gemini Flash का उपयोग किया जाता है (तेज़, सस्ता, बहुभाषी) + +### भाषा समर्थन + +Notemd स्वयं 21 UI भाषाओं का समर्थन करता है। अनुवाद की लक्ष्य भाषा प्रति‑कार्य के आधार पर कॉन्फ़िगर की जा सकती है। आम जोड़ियाँ: EN↔ZH, EN↔JA, EN↔KO, EN↔DE, EN↔FR, EN↔ES. + +→ [Translation deep dive](/docs/features/translation) + +--- + +## 5. आरेख: संरचना को दृश्यमान बनाना + +Notemd की आरेख पाइपलाइन स्पेसिफ़िकेशन‑पहली है: LLM एक संरचित `DiagramSpec` JSON उत्पन्न करता है, फिर एडाप्टर इसे लक्ष्य प्रारूप में अनुवादित करते हैं। ऐसा करने से LLM से कच्चे Mermaid सिंटैक्स को माँगने की तुलना में अधिक विश्वसनीय आउटपुट प्राप्त होता है. + +### इंटेंट डिटेक्शन + +Notemd सामग्री से सबसे उपयुक्त आरेख प्रकार का अनुमान लगाता है: + +- **संख्याओं वाली तालिकाएँ** → डेटा चार्ट (Vega-Lite) +- **क्लाइंट/सर्वर शब्दावली** → अनुक्रम आरेख (Mermaid) +- **एंटिटी/प्राथमिक कुंजी** → ER आरेख (Mermaid) +- **चरण/प्रक्रिया प्रवाह** → फ्लोचार्ट (Mermaid) +- **कॉन्सेप्ट मैप कीवर्ड** → JSON Canvas (Obsidian स्थानीय) +- **डिफ़ॉल्ट** → माइंड मैप (Mermaid) + +### रेंडरिंग चेन + +प्राथमिक लक्ष्य → फॉलबैक → फॉलबैक → HTML. यदि Mermaid सिंटैक्स विफल हो जाता है, तो यह त्रुटि संदर्भ के साथ LLM पर एक बार पुनः प्रयास करता है, फिर न्यूनतम आरेख पर जाता है. + +### मुख्य सेटिंग्स + +| सेटिंग | अनुशंसित | कारण | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | चालू | स्पेक-प्रथम द्वारा बेहतर गुणवत्ता | +| `experimentalDiagramCompatibilityMode` | `best-fit` | प्रत्येक इरादे के लिए स्थानीय लक्ष्य | +| `summarizeToMermaidProvider` | GPT-4o या Claude | आरेख स्पेसिफिकेशन्स को स्थानिक तर्क की आवश्यकता है | +| `autoMermaidFixAfterGenerate` | चालू | LLM सिंटैक्स त्रुटियों को स्वचालित रूप से पकड़ता है | +| स्थानीय ज्ञान का विस्तार | डोमेन-विशिष्ट मोड में सक्रिय | वॉल्ट संदर्भ के साथ सटीकता में सुधार | + +→ [Diagrams deep dive](/docs/features/diagrams) + +--- + +## 6. वर्कफ्लो: वन-क्लिक ऑटोमेशन + +वर्कफ्लो कई कार्यों को एक ही साइडबार बटन में जोड़ते हैं। DSL प्रारूप है: + +``` +task1 | task2 | task3 +``` + +उदाहरण: `addLinks | extractConcepts | generateDiagram` — कच्चे टेक्स्ट से एक क्लिक में पूरी तरह जुड़े, दृश्यमान ज्ञान नोड तक प्रसंस्करण करता है. + +### अनुशंसित वर्कफ्लो + +| वर्कफ़्लो | चेन | उपयोग का मामला | +|----------|-------|----------| +| पूर्ण प्रक्रिया | `addLinks \| extractConcepts \| generateDiagram` | नए नोट्स | +| पहले अनुसंधान करें | `research \| addLinks` | अपरिचित विषय | +| पॉलीग्लॉट | `translate \| addLinks` | बहुभाषी नोट्स | +| केवल आरेख | `generateDiagram` | त्वरित दृश्यीकरण | + +→ [Workflows deep dive](/docs/features/workflows) + +--- + +## 7. LLM प्रदाता: क्लाउड से लोकल तक 36 विकल्प + +Notemd 4 परिवहन प्रकारों में 36 प्रदाताओं का समर्थन करता है। मुख्य समूह: + +- **अंतर्राष्ट्रीय क्लाउड**: OpenAI, Anthropic, Google, Mistral, xAI +- **चीनी क्लाउड**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **गेटवे**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **लोकल**: Ollama, LMStudio, OVMS — कोई API कुंजी नहीं, आपका डेटा मशीन से बाहर नहीं जाता + +### प्रति-कार्य मॉडल रणनीति + +सबसे किफायती सेटअप में सरल कार्यों के लिए सस्ते मॉडल और जटिल कार्यों के लिए शक्तिशाली मॉडल का उपयोग किया जाता है: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [LLM प्रदाताओं का अवलोकन](/docs/providers/overview) + +--- + +## शुरू करने हेतु चेकलिस्ट + +1. **Notemd इंस्टॉल करें** — [Community Plugins](/docs/getting-started/installation) (अनुशंसित) या मैन्युअल रूप से +2. **एक प्रदाता कॉन्फ़िगर करें** — DeepSeek (सबसे आसान), OpenAI, या Ollama (मुफ्त) +3. **अपनी पहली नोट को संसाधित करें** — राइट-क्लिक → "Process file (add links)" +4. **संकल्पना फ़ोल्डर सेट करें** — सेटिंग्स → Notemd → आउटपुट → संकल्पना फ़ोल्डर +5. **संकल्पनाओं को निकालें** — उसी नोट पर "संकल्पनाओं को निकालें" चलाएँ +6. **एक आरेख बनाएँ** — कनेक्शनों को दृश्यमान बनाने हेतु "आरेख बनाएँ" चलाएँ +7. **एक वर्कफ़्लो बनाएँ** — ऊपर दिए गए कार्यों को एक क्लिक वाले बटन में जोड़ें + +## अनुशंसित कॉन्फ़िगरेशन्स + +### स्टूडेंट (बजट) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### रिसर्चर (गुणवत्ता) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### प्राइवेसी-फ़र्स्ट (केवल स्थानीय) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### द्विभाषी (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## सामान्य पैटर्न + +### पैटर्न: एक रिसर्च पेपर को संसाधित करना + +1. PDF सामग्री आयात करें (या पेस्ट करें) +2. **अनुसंधान** — विषय पर वेब संदर्भ प्राप्त करें +3. **लिंक जोड़ें** — मुख्य संकल्पनाओं की पहचान करें एवं उन्हें लिंक करें +4. **संकल्पनाओं को निकालें** — स्वतंत्र नोट बनाएँ +5. **आरेख बनाएँ** — पेपर की संरचना को दृश्यमान बनाएँ + +### पैटर्न: दैनिक नोट समृद्धीकरण + +1. रोज़ाना नोट लिखें +2. **लिंक जोड़ें** — आज के विचारों को मौजूदा अवधारणाओं से जोड़ता है +3. कॉन्सेप्ट नोट्स बैकलिंक्स के साथ स्वचालित रूप से अपडेट हो जाते हैं + +### पैटर्न: साहित्य समीक्षा + +1. पेपर्स/नोट्स के साथ एक फ़ोल्डर बनाएं +2. **बैच में लिंक जोड़ें** — पूरे फ़ोल्डर को संसाधित करें +3. **डुप्लीकेट कॉन्सेप्ट्स हटाएं** — लगभग समान नोट्स को साफ़ करें +4. **डायग्राम बनाएं** — पूरे साहित्य का माइंड मैप + +--- + +*Notemd ओपन सोर्स (MIT) है और Obsidian 0.15.0+ के साथ सभी प्लेटफ़ॉर्मों पर काम करता है. [अभी इंस्टॉल करें](/docs/getting-started/installation) या [GitHub पर देखें](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/hi/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/hi/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..5c55abca --- /dev/null +++ b/website/i18n/hi/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "Anthropic क्लॉड को कॉन्फ़िगर करें" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Anthropic प्रदाता + +<TLDR> +**Anthropic मूल Messages API ट्रांसपोर्ट का उपयोग करता है, OpenAI-संगत ट्रांसपोर्ट का नहीं.** वर्तमान प्रीसेट `claude-3-5-sonnet-20240620`, `https://api.anthropic.com` और `temperature: 0.5` के लिए डिफ़ॉल्ट है. डीबगिंग के समय इसे एक अलग प्रोटोकॉल सतह के रूप में मानें. + +यह [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge) का हिस्सा है. +</TLDR> + +## सेटअप + +एक Anthropic API कुंजी बनाएँ, एक `Anthropic` प्रदाता प्रोफ़ाइल जोड़ें, और यदि आप किसी विशेष गेटवे प्रोफ़ाइल के माध्यम से रूटिंग नहीं कर रहे हैं तो Base URL को मूल एंडपॉइंट पर ही रखें. मॉडल फ़ील्ड में आप जिस क्लॉड मॉडल ID का उपयोग करना चाहते हैं उसे चुनें; डिफ़ॉल्ट विकल्प मौजूदा उत्पाद बेसलाइन को स्थिर रखता है. + +Anthropic उच्च-गुणवत्ता वाले सारांशन, अनुसंधान संश्लेषण और अवधारणा निष्कर्षण के लिए एक अच्छा विकल्प है. यदि आप इसे सस्ते प्रदाताओं के साथ मिलाते हैं, तो केवल उन्हीं कार्यों पर इसे लागू करें जिन्हें इसकी आउटपुट गुणवत्ता से लाभ होता है. + +## एंडपॉइंट एवं प्रमाणीकरण + +| फ़ील्ड | वर्तमान प्रीसेट | +|-------|----------------| +| ट्रांसपोर्ट | `anthropic` | +| API कुंजी | आवश्यक | +| Base URL | `https://api.anthropic.com` | +| डिफ़ॉल्ट मॉडल | `claude-3-5-sonnet-20240620` | +| टेम्परेचर | `0.5` | +| कनेक्शन परीक्षण | केवल चैट | + +रनटाइम `x-api-key` और `anthropic-version: 2023-06-01` के साथ `/v1/messages` को अनुरोध भेजता है. इस प्रीसेट के तहत OpenAI-शैली का `/v1/chat/completions` एंडपॉइंट कॉन्फ़िगर न करें; इसके बजाय OpenAI-संगत गेटवे प्रीसेट का उपयोग करें. + +## मॉडल खोज + +Anthropic प्रोवाइडर रजिस्ट्री में `anthropic-models` डिस्कवरी मोड का उपयोग करता है। यदि आपकी कुंजी या खाता मॉडलों की सूची नहीं बना सकता, तो प्रोफ़ाइल में एक ज्ञात मॉडल ID रखें और कनेक्शन टेस्ट के माध्यम से इसकी पुष्टि करें. + +ट्रांसपोर्ट को OpenAI-संगत प्रोवाइडर्स के साथ आदान‑प्रदान नहीं किया जा सकता। OpenRouter, LiteLLM या किसी अन्य गेटवे के माध्यम से रूट किया गया क्लॉड मॉडल उस गेटवे प्रोफ़ाइल में ही होना चाहिए, न कि मूल Anthropic प्रोफ़ाइल में. + +## समस्या निवारण + +- `401` या `403`: कुंजी के स्कोप, वर्कस्पेस एक्सेस, बिलिंग और यह जाँचें कि क्या कुंजी अपेक्षित Anthropic वर्कस्पेस से संबंधित है. +- `404`: बेस URL गलत है या चुना गया मॉडल ID खाते के लिए उपलब्ध नहीं है. +- गेटवे‑स्टाइल क्लॉड मॉडल ID विफल हो जाते हैं: प्रोफ़ाइल को मेल खाने वाले गेटवे प्रोवाइडर में स्थानांतरित करें, क्योंकि मूल Anthropic मूल मॉडल नामों की अपेक्षा करता है. +- लंबे अनुरोध देर से विफल हो जाते हैं: प्रति‑टास्क मॉडल आउटपुट आकार को कम करें या ऐसा मॉडल उपयोग करें जिसकी ज्ञात आउटपुट‑टोकन सीमा अधिक हो. + +## कब उपयोग करें + +जब संश्लेषण, शोध नोट्स या संरचित लेखन में गुणवत्ता, कच्ची लागत से अधिक महत्वपूर्ण हो, तब Anthropic का उपयोग करें। इसे सामान्य OpenAI-संगत विकल्प के रूप में न उपयोग करें; अलग ट्रांसपोर्ट ही मुख्य बिंदु है, और प्रोटोकॉलों को मिलाने से निदान कठिन हो जाता है. + +--- + +## अगले चरण + +- [LLM Providers](/docs/providers/overview) -- पूर्ण कॉन्फ़िगरेशन, प्रति‑टास्क मॉडल और रिट्राय लॉजिक +- [Troubleshooting](/docs/advanced/troubleshooting) -- 401/403 एवं कनेक्शन त्रुटियों का समाधान diff --git a/website/i18n/hi/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/hi/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..d6009fed --- /dev/null +++ b/website/i18n/hi/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "चीन के प्रदाता" +description: "Qwen, DeepSeek, GLM आदि को कॉन्फ़िगर करें." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# चीन के प्रदाता + +<TLDR> +**Notemd मुख्यतः OpenAI-संगत एंडपॉइंट्स के माध्यम से चीन-क्षेत्र और चीन-मूल प्रदाताओं का समर्थन करता है.** वर्तमान सेट में DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, MiniMax, Baidu Qianfan, SiliconFlow, Huawei Cloud MaaS और Z AI शामिल हैं. इसका लाभ क्षेत्रीय पहुँच और लागत नियंत्रण है; जबकि जोखिम प्रदाता-विशिष्ट मॉडल नामकरण और खाता प्रवेश नियंत्रण है. + +यह [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge) का हिस्सा है. +</TLDR> + +## सेटअप + +प्रदाता खाता बनाएँ, एक API कुंजी बनाएँ, फिर सामान्य OpenAI प्रोफ़ाइल के बजाय मेल खाने वाला Notemd प्रदाता प्रीसेट चुनें. यह प्रीसेट डिफ़ॉल्ट बेस URL, मॉडल, API टेस्ट मोड, मॉडल-डिस्कवरी व्यवहार और किसी भी प्रदाता-विशिष्ट UI फ़ील्ड्स को संभालता है. + +यहाँ प्रति-कार्य मॉडल चयन का अधिकतम उपयोग करें. उदाहरण के लिए, तर्क-भारी वर्कफ़्लो में DeepSeek या GLM रखें, व्यापक चीनी भाषा के कार्यों के लिए Qwen या Moonshot का उपयोग करें, और जब खाता कोडर मॉडल प्रदान करता हो तो कोडिंग कार्यों को Qwen Code पर भेजें. + +## एंडपॉइंट एवं प्रमाणीकरण + +| प्रदाता | डिफ़ॉल्ट मॉडल | Base URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (एंडपॉइंट ID आवश्यक है) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**नोट:** Doubao के लिए मानक मॉडल नाम के बजाय एक आर्क एंडपॉइंट ID (प्रारूप: `ep-xxxxxxxx-xxxx-xxxx`) आवश्यक है. + +इनमें से अधिकांश प्रदाता साझा OpenAI-संगत रनटाइम का उपयोग करते हैं, लेकिन उनके खाता और मॉडल सेमैंटिक्स अलग-अलग होते हैं. जब तक आप खाते के वैकल्पिक एंडपॉइंट की पुष्टि नहीं कर लेते, तब तक प्रीसेट-विशिष्ट बेस URL ही रखें. + +## मॉडल खोज + +DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan और SiliconFlow, जब प्रदाता सूचीबद्धता का समर्थन करता है, तो OpenAI-संगत मॉडल डिस्कवरी का उपयोग करते हैं. Huawei Cloud MaaS `huaweicloud-modelarts-models` मोड का उपयोग करता है क्योंकि मॉडलआर्ट्स डिप्लॉयमेंट मेटाडेटा सामान्य `/v1/models` सूची से अलग होता है. + +डिस्कवरी विफल होने को यह साबित करने के रूप में न लें कि चैट संभव नहीं है. कई प्रदाता मॉडल-सूची अनुमतियों को सीमित करते हुए भी चैट की अनुमति देते हैं. ऐसी स्थिति में, प्रोफ़ाइल में एक स्पष्ट मॉडल ID रखें और कनेक्शन परीक्षण से इसकी पुष्टि करें. + +## समस्या निवारण + +- प्रमाणीकरण सफल होता है लेकिन चैट विफल हो जाती है: मॉडल नाम खाते के अधिकारों या क्षेत्र से बाहर हो सकता है. +- Doubao सामान्य मॉडल नाम के साथ विफल हो जाता है: यदि आपके डिप्लॉयमेंट के लिए आवश्यक हो तो मॉडल फ़ील्ड में आर्क एंडपॉइंट ID का उपयोग करें. +- तर्क-आधारित प्रतिक्रियाएँ संक्षिप्त हो जाती हैं: प्रदाता-विशिष्ट अधिकतम आउटपुट टोकन और Notemd की मॉडल-संवेदनशील अधिकतम-टोकन सेटिंग्स की जाँच करें. +- क्षेत्रीय नेटवर्किंग अलग-अलग होती है: जब वॉल्ट मशीन चीन के भीतर हो तो प्रदाता के चीन-क्षेत्र एंडपॉइंट का उपयोग करें; केवल तभी अंतरराष्ट्रीय एंडपॉइंट का उपयोग करें जब खाता और नेटवर्क पथ दोनों ही वैध हों. + +## कब उपयोग करें + +जब क्षेत्रीय विलंबता, भुगतान/खाता पहुँच, चीनी भाषा में गुणवत्ता, या लागत प्रमुख सीमाबद्धता हों, तो चीनी प्रदाताओं का उपयोग करें। जब आपको एक सरल प्रोटोकॉल सीमा या प्रदाताओं के बीच मजबूत डीबगिंग सुसंगतता चाहिए, तो सीधे OpenAI, Anthropic, Google, या स्थानीय प्रदाताओं को प्राथमिकता दें. + +--- + +## अगले चरण + +- [LLM Providers](/docs/providers/overview) -- पूर्ण कॉन्फ़िगरेशन, प्रति‑टास्क मॉडल और रिट्राय लॉजिक +- [Troubleshooting](/docs/advanced/troubleshooting) -- क्षेत्रीय कनेक्टिविटी एवं प्रमाणीकरण संबंधी त्रुटियों को ठीक करें diff --git a/website/i18n/hi/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/hi/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..0e96db93 --- /dev/null +++ b/website/i18n/hi/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "Google को कॉन्फ़िगर करें Gemini" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Google प्रदाता + +<TLDR> +**Google मूल Gemini जेनरेटिव लैंग्वेज API ट्रांसपोर्ट का उपयोग करता है।** वर्तमान प्रीसेट `gemini-2.0-flash-exp`, `https://generativelanguage.googleapis.com/v1`, और `temperature: 0.5` के लिए डिफ़ॉल्ट है। यह OpenAI-संगत प्रोफ़ाइल नहीं है. + +यह [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge) का हिस्सा है. +</TLDR> + +## सेटअप + +Google AI Studio या Google कुलाकार API कुंजी बनाएँ जिसमें Gemini एक्सेस हो, `Google` प्रदाता प्रोफ़ाइल जोड़ें, और मूल जेनरेटिव लैंग्वेज बेस URL को बनाए रखें। तेज़ अनुवाद और व्यापक नोट वर्कफ़्लो के लिए डिफ़ॉल्ट Gemini Flash प्रोफ़ाइल का उपयोग करें, और जब आपको बड़ा या अधिक सक्षम Gemini मॉडल चाहिए हो तो प्रति-टास्क मॉडलों को ओवरराइड करें. + +जब तक आप स्पष्ट रूप से ऐसा गेटवे नहीं उपयोग कर रहे हैं जो OpenAI-संगत API के माध्यम से Gemini को प्रदर्शित करे, OpenAI-संगत प्रोफ़ाइल में Gemini मॉडल आईडी रखने से बचें. + +## एंडपॉइंट एवं प्रमाणीकरण + +| फ़ील्ड | वर्तमान प्रीसेट | +|-------|----------------| +| ट्रांसपोर्ट | `google` | +| API कुंजी | आवश्यक | +| Base URL | `https://generativelanguage.googleapis.com/v1` | +| डिफ़ॉल्ट मॉडल | `gemini-2.0-flash-exp` | +| टेम्परेचर | `0.5` | +| कनेक्शन परीक्षण | केवल चैट | + +रनटाइम `/models/{model}:generateContent?key={apiKey}` को कॉल करता है। कुंजी को क्वेरी पैरामीटर के रूप में पास किया जाता है क्योंकि प्लगइन में मूल Gemini एंडपॉइंट इसी तरह जुड़ा है. + +## मॉडल खोज + +Google `google-models` डिस्कवरी मोड का उपयोग करता है। डिस्कवरी को API कुंजी के लिए उपलब्ध Gemini मॉडल वापस करने चाहिए; यदि सेलेक्टर खाली है, तो उसी बेस URL के खिलाफ़ कुंजी का परीक्षण करें और पुष्टि करें कि उस खाते के लिए मॉडल परिवार सक्षम है. + +प्रदाता रजिस्ट्री में ज्ञात आउटपुट-टोकन सीलिंग मॉडल-संवेदनशील होती है। यदि लंबा अनुवाद या डायग्राम स्पष्टीकरण कट जाता है, तो बड़ी समर्थित आउटपुट सीमा वाला Gemini मॉडल चुनें या अनुरोधित आउटपुट आकार को कम करें. + +## समस्या निवारण + +- `400`: मॉडल आईडी आमतौर पर मूल Gemini रूट से मेल नहीं खाती है या अनुरोध मॉडल के समर्थित आकार से अधिक होता है. +- `401` या `403`: कुंजी प्रतिबंधों, प्रोजेक्ट/API सक्षमता, और यह जाँचें कि क्या कुंजी Gemini तक पहुँच सकती है. +- `404`: कॉन्फ़िगर की गई API संस्करण में मॉडल आईडी उपलब्ध नहीं है. +- इस प्रोफ़ाइल के तहत गेटवे उदाहरण विफल हो जाते हैं: मूल Google प्रदाता के बजाय गेटवे प्रीसेट का उपयोग करें. + +## कब उपयोग करें + +तेज़ अनुवाद, बड़े मात्रा वाले नोट सफ़ाई, और ऐसे वर्कफ़्लो के लिए Google का उपयोग करें जहाँ Gemini की लागत/प्रदर्शन संतुलन सीधे OpenAI या Anthropic की तुलना में बेहतर हो। ऐसे वर्कफ़्लो के लिए जिनमें OpenAI-संगत रीज़निंग-मॉडल हैंडलिंग की आवश्यकता हो, किसी अन्य प्रदाता को प्राथमिकता दें. + +--- + +## अगले चरण + +- [LLM Providers](/docs/providers/overview) -- पूर्ण कॉन्फ़िगरेशन, प्रति‑टास्क मॉडल और रिट्राय लॉजिक +- [Translation](/docs/features/translation) -- उच्च मात्रा वाले अनुवाद कार्यों के लिए Gemini Flash की सिफ़ारिश की जाती है diff --git a/website/i18n/hi/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/hi/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..fca03f64 --- /dev/null +++ b/website/i18n/hi/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "स्थानीय मॉडल" +description: "Ollama और स्थानीय LLMs को कॉन्फ़िगर करें" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# स्थानीय मॉडल + +<TLDR> +**स्थानीय प्रदाता होस्टेड APIs से नोट सामग्री को बचाए रखते हैं।** वर्तमान स्थानीय पथ Ollama को नेटिव `ollama` ट्रांसपोर्ट के साथ और LMStudio को OpenAI-संगत ट्रांसपोर्ट के माध्यम से कवर करता है। किसी भी पथ के लिए API कुंजी की आवश्यकता नहीं है, लेकिन स्थानीय सर्वर और मॉडल पहले से ही चल रहे होने चाहिए. + +यह [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge) का हिस्सा है. +</TLDR> + +## सेटअप + +Ollama के लिए, Ollama इंस्टॉल करें, आपका चाहा हुआ मॉडल प्राप्त करें, सर्वर शुरू करें, और Notemd में एक `Ollama` प्रदाता प्रोफ़ाइल जोड़ें। LMStudio के लिए, LM Studio के स्थानीय सर्वर में एक मॉडल लोड करें और एक `LMStudio` प्रदाता प्रोफ़ाइल जोड़ें. + +स्थानीय मॉडल केवल सेटिंग्स नहीं हैं, बल्कि संचालन संबंधी निर्भरताएँ हैं। Notemd केवल उसी को कॉल कर सकता है जो स्थानीय प्रक्रिया द्वारा प्रदान किया जाता है, इसलिए प्लगइन को डीबग करने से पहले Obsidian के बाहर स्थानीय मॉडल की जाँच करें. + +## एंडपॉइंट एवं प्रमाणीकरण + +| प्रदाता | Base URL | डिफ़ॉल्ट मॉडल | API कुंजी | नोट्स | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | आवश्यक नहीं | NDJSON स्ट्रीमिंग; `/api/tags` के माध्यम से मॉडल खोज | +| LMStudio | `localhost:1234/v1` | `local-model` | आवश्यक नहीं | `"EMPTY"` को बेयरर टोकन के रूप में भेजता है; OpenAI-संगत | + +Ollama अपने Base URL के नीचे नेटिव `/chat` पथ का उपयोग करता है। LMStudio OpenAI-संगत `chat/completions` मार्ग का पालन करता है और स्थानीय सर्वर में लोड किए गए मॉडल की अपेक्षा करता है. + +## मॉडल खोज + +Ollama `ollama-tags` खोज मोड का उपयोग करता है और स्थानीय रूप से प्राप्त किए गए टैग्स की सूची देता है। LMStudio तब OpenAI-संगत मॉडल खोज का उपयोग करता है जब उसका सर्वर `/v1/models` प्रदान करता है. + +यदि खोज से कुछ भी नहीं मिलता, तो यह आमतौर पर स्थानीय-सर्वर स्थिति से संबंधित होता है: मॉडल प्राप्त नहीं हुआ है, लोड नहीं हुआ है, या सर्वर प्रोफ़ाइल के अनुसार अलग होस्ट/पोर्ट से जुड़ा हुआ है. + +## समस्या निवारण + +- कनेक्शन अस्वीकार किया गया: Ollama या LM Studio शुरू करें और कॉन्फ़िगर किए गए पोर्ट की पुष्टि करें. +- मॉडल नहीं मिला: परीक्षण से पहले Ollama टैग प्राप्त करें या LM Studio मॉडल लोड करें. +- धीमा आउटपुट: कंटेक्स्ट आकार को कम करें, एक छोटा स्थानीय मॉडल उपयोग करें, या भारी कार्यों को होस्टेड प्रदाता के पास भेजें. +- खाली या गलत आकार के उत्तर: चुने गए प्रदाता प्रोफ़ाइल की स्थानीय सर्वर प्रोटोकॉल से मेल जाँचें; Ollama और LMStudio आपस में बदले नहीं जा सकते हैं. + +## कब उपयोग करें + +निजी वॉल्ट, ऑफलाइन कार्य, या सस्ते दोहराव वाले कार्यों के लिए स्थानीय प्रदाताओं का उपयोग करें। अनुसंधान संश्लेषण या लंबे समय तक के तर्क हेतु स्थानीय विकल्प स्वचालित रूप से बेहतर होगा, ऐसा मानना नहीं चाहिए; मॉडल की गुणवत्ता एवं हार्डवेयर की सीमाएँ ही इसका समझौता हैं. + +--- + +## अगले चरण + +- [LLM प्रदाता](/docs/providers/overview) -- पूर्ण कॉन्फ़िगरेशन एवं प्रत्येक कार्य हेतु मॉडल सेटअप +- [समस्या निवारण](/docs/advanced/troubleshooting) -- जब स्थानीय सर्वर चल नहीं रहा हो तो connection-refused त्रुटियों को ठीक करें diff --git a/website/i18n/hi/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/hi/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..9b759be6 --- /dev/null +++ b/website/i18n/hi/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "OpenAI को कॉन्फ़िगर करें (GPT-4, GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# OpenAI प्रदाता + +<TLDR> +**OpenAI, साझा OpenAI-संगत ट्रांसपोर्ट का उपयोग करता है.** वर्तमान प्रीसेट `gpt-4o`, `https://api.openai.com/v1`, `temperature: 0.5` और `models-then-chat` कनेक्शन परीक्षण के लिए डिफ़ॉल्ट है. जब आपको सटीक फ़ील्ड सेमैंटिक्स की आवश्यकता हो तो इस पृष्ठ का उपयोग करें; श्रेणी-स्तरीय चयन के लिए [LLM Providers](/docs/providers/overview) का अवलोकन देखें. + +यह [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge) का हिस्सा है. +</TLDR> + +## सेटअप + +एक OpenAI API कुंजी बनाएँ, Notemd सेटिंग्स में एक `OpenAI` प्रदाता प्रोफ़ाइल जोड़ें, और जब तक आप जानबूझकर OpenAI-संगत गेटवे की ओर इशारा न कर रहे हों, डिफ़ॉल्ट Base URL को ही रखें. मॉडल फ़ील्ड सामान्य कार्य के लिए `gpt-4o` पर ही रह सकता है या आपके खाते द्वारा कॉल किए जा सकने वाले किसी अन्य OpenAI मॉडल ID से बदला जा सकता है. + +लागत नियंत्रण के लिए कार्य-विशिष्ट मॉडलों का उपयोग करें: अनुसंधान, अवधारणा निष्कर्षण और लंबे रूप के पुनर्गठन के लिए मजबूत मॉडलों को रखें; अनुवाद, लिंक सुझाव और संक्षिप्त सारांशों के लिए सस्ते या तेज़ मॉडलों का उपयोग करें. + +## एंडपॉइंट एवं प्रमाणीकरण + +| फ़ील्ड | वर्तमान प्रीसेट | +|-------|----------------| +| ट्रांसपोर्ट | `openai-compatible` | +| API कुंजी | आवश्यक | +| Base URL | `https://api.openai.com/v1` | +| डिफ़ॉल्ट मॉडल | `gpt-4o` | +| टेम्परेचर | `0.5` | +| कनेक्शन परीक्षण | `/models`, फिर `/chat/completions` | + +Notemd, `chat/completions` या `models` जोड़ने से पहले OpenAI-संगत बेस URLs को सामान्यीकृत करता है. Base URL में कोई अंतिम `/chat/completions` शामिल न करें; ऐसा करने से दोहरा पथ बन जाता है. + +## मॉडल खोज + +OpenAI, सामान्य OpenAI-संगत मॉडल खोज पथ का उपयोग करता है. सेटिंग्स UI पहले `/v1/models` से पूछती है, फिर हल्के चैट अनुरोध के माध्यम से चयनित मॉडल की पुष्टि करती है. यदि खोज विफल हो जाती है लेकिन चैट अभी भी काम कर रहा है, तो जाँचें कि क्या आपकी कुंजी में मॉडल-सूची अनुमति है या कोई गेटवे मॉडल सूचीबद्ध करने में बाधा डाल रहा है. + +तर्कनिष्ठा मॉडलों को एक प्रोटोकॉल एज केस के रूप में माना जाता है: Notemd, सिस्टम और उपयोगकर्ता प्रॉम्प्ट सामग्री को मिलाकर OpenAI तर्कनिष्ठा ID बनाता है जो अलग `system` भूमिका को अस्वीकार करते हैं, और यह केवल तभी `reasoningEffort` प्रदर्शित करता है जब प्रदाता परिभाषा इसे समर्थन देती है. + +## समस्या निवारण + +- `401` या `403`: कुंजी, प्रोजेक्ट पहुँच, बिलिंग स्थिति और चयनित मॉडल के कुंजी के लिए सक्षम होने की जाँच करें. +- चैट पर `404`: आमतौर पर Base URL गलत होता है या पहले से ही `/chat/completions` शामिल होता है. +- मॉडल दस्तावेज़ों में दिखता है लेकिन चयनकर्ता में नहीं: मॉडल-सूची पहुँच और चैट पहुँच अलग-अलग विफलता बिंदु हैं; प्रदाता प्रोफ़ाइल में सीधे मॉडल ID का मैन्युअल रूप से परीक्षण करें. +- तर्कनिष्ठा मॉडल संदेशों को अस्वीकार करता है: OpenAI तर्कनिष्ठा हैंडलिंग पथ द्वारा कवर किए गए मॉडल ID का उपयोग करें या गैर-तर्कनिष्ठा चैट मॉडल पर स्विच करें. + +## कब उपयोग करें + +जब आप सबसे पूर्वानुमेय डिफ़ॉल्ट होस्टेड पथ चाहते हैं, जब `/v1/models` खोज महत्वपूर्ण होती है, या जब कोई वर्कफ़्लो OpenAI तर्कनिष्ठा मॉडल सेमैंटिक्स पर निर्भर होता है, तो OpenAI का उपयोग करें. राउटिंग, गोपनीयता या लागत नियंत्रण के मामले में गेटवे या स्थानीय प्रदाता को प्राथमिकता दें, जब सीधा OpenAI API व्यवहार कम महत्वपूर्ण हो. + +--- + +## अगले चरण + +- [LLM Providers](/docs/providers/overview) -- पूर्ण कॉन्फ़िगरेशन, प्रति‑टास्क मॉडल और रिट्राय लॉजिक +- [Troubleshooting](/docs/advanced/troubleshooting) -- 401/403 और रेट-लिमिट त्रुटियों को ठीक करें diff --git a/website/i18n/hi/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/hi/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..676dd750 --- /dev/null +++ b/website/i18n/hi/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "LLM प्रदाता" +description: "36 LLM प्रदाताओं — क्लाउड, गेटवे एवं स्थानीय — को प्रति-कार्य मॉडल चयन के साथ कॉन्फ़िगर करें" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# LLM प्रदाता + +<TLDR> +**Notemd 4 परिवहन प्रकारों में 36 LLM प्रदाताओं का समर्थन करता है.** सभी API कॉलें कच्चे HTTP का उपयोग करती हैं (कोई SDK नहीं) एवं स्वचालित पुनः प्रयास, परिवहन फ़ॉलबैक एवं 5 मिनट की प्रतिक्रिया कैशिंग की सुविधा देती हैं. प्रति-कार्य मॉडल चयन के कारण आप अवधारणा निष्कर्षण हेतु सस्ते मॉडल एवं अनुसंधान हेतु शक्तिशाली मॉडल का उपयोग कर सकते हैं. स्थानीय प्रदाताओं (Ollama, LMStudio) के लिए कोई API कुंजी आवश्यक नहीं है. +</TLDR> + +यह [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge) का हिस्सा है. + +## प्रदाता श्रेणियाँ + +### क्लाउड प्रदाता + +| प्रदाता | डिफ़ॉल्ट बेस URL | डिफ़ॉल्ट मॉडल | टेम्परेचर | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### गेटवे / प्रॉक्सी प्रदाता + +| प्रदाता | डिफ़ॉल्ट बेस URL | डिफ़ॉल्ट मॉडल | नोट्स | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | `HTTP-Referer` + `X-Title` हेडर जोड़ता है | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | `X-GitHub-Api-Version` हेडर जोड़ता है | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | `APP-Code` हेडर जोड़ता है | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | वैकल्पिक API कुंजी | +| **नया API** | `localhost:3000/v1` | `gpt-4.1` | वैकल्पिक API कुंजी | +| **OpenAI Compatible** | (user-configured) | `your-model-id` | कस्टम एंडपॉइंट | + +### चीन के प्रदाता + +| प्रदाता | डिफ़ॉल्ट बेस URL | डिफ़ॉल्ट मॉडल | नोट्स | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | कोडिंग-केंद्रित | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (एंडपॉइंट ID आवश्यक है) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | Zhipu, China एंडपॉइंट | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | Zhipu, अंतर्राष्ट्रीय एंडपॉइंट | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | मॉडल होस्टिंग प्लेटफ़ॉर्म | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao के लिए एक Ark एंडपॉइंट ID आवश्यक है** (फ़ॉर्मेट: `ep-xxxxxxxx-xxxx-xxxx`). डिफ़ॉल्ट प्लेसहोल्डर को बदलना आवश्यक है. + +### स्थानीय प्रदाता + +| प्रदाता | डिफ़ॉल्ट बेस URL | डिफ़ॉल्ट मॉडल | नोट्स | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | कोई API कुंजी नहीं. NDJSON स्ट्रीमिंग. `/api/tags` के माध्यम से मॉडल खोज | +| **LMStudio** | `localhost:1234/v1` | `local-model` | `"EMPTY"` को बेयरर टोकन के रूप में भेजता है. OpenAI-संगत खोज | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (user-configured) | `gpt-4o` | URL में डिप्लॉयमेंट का नाम। `api-key` हेडर | + +## कार्य-वार मॉडल चयन + +Notemd प्रत्येक टास्क के लिए स्वतंत्र प्रोवाइडर और मॉडल का समर्थन करता है। `useMultiModelSettings: true` के साथ इसे सक्षम करें. + +### उपलब्ध टास्क + +| कार्य | सेटिंग्स कुंजी | डिफ़ॉल्ट प्रोवाइडर | +|------|-------------|-----------------| +| लिंक जोड़ें (विकि-लिंक सम्मिलन) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| अनुसंधान (वेब खोज + सारांशीकरण) | `researchProvider` / `researchModel` | DeepSeek | +| शीर्षक से जनरेट करें | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| अनुवाद | `translateProvider` / `translateModel` | DeepSeek | +| डायग्राम जनरेशन | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| अवधारणा निष्कर्षण | `extractConceptsProvider` / `Model` | DeepSeek | +| मूल पाठ निष्कर्षण | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### रिज़ॉल्यूशन क्रम + +1. यदि `useMultiModelSettings` सक्षम है → टास्क-विशिष्ट प्रोवाइडर + मॉडल का उपयोग करें +2. यदि टास्क मॉडल ओवरराइड खाली है → प्रोवाइडर के डिफ़ॉल्ट मॉडल पर वापस जाएं +3. यदि टास्क प्रोवाइडर अमान्य है → ग्लोबल `activeProvider` पर वापस जाएं +4. यदि `useMultiModelSettings` बंद है → सभी कार्य ग्लोबल `activeProvider` का उपयोग करते हैं + +### अनुशंसित कॉन्फ़िगरेशन्स + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## API कॉल आर्किटेक्चर + +### ट्रांसपोर्ट लेयर्स + +1. **Obsidian `requestUrl`** — प्राथमिक (बिल्ट-इन, सभी प्लेटफॉर्मों पर कार्य करता है) +2. **डेस्कटॉप HTTP** — Node.js `http`/`https` मॉड्यूल (स्ट्रीमिंग + लंबे अनुरोध) +3. **वेब `fetch`** — जब Node.js मॉड्यूल उपलब्ध न हों तो वैकल्पिक विकल्प + +अस्थायी नेटवर्क त्रुटियों के समय प्लगइन स्वचालित रूप से ट्रांसपोर्ट्स के बीच स्विच कर देता है. + +### रिट्राई लॉजिक + +- **सामान्य मोड** (`enableStableApiCall: false`): एक ही प्रयास। अस्थायी विफलता पर, स्वचालित रूप से स्थिर रिट्राई मोड में स्विच हो जाता है. +- **स्थिर रिट्राई मोड** (`enableStableApiCall: true`): 4 बार तक प्रयास (1 + 3 रिट्राई) 5 सेकंड के अंतराल पर. +- **जो अस्थायी त्रुटियाँ रिट्राई को ट्रिगर करती हैं**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **जिन्हें रिट्राई नहीं किया जा सकता**: HTTP 400, 401, 403, 404 + +### रिस्पॉन्स कैशिंग + +प्रोवाइडर + मॉडल + टेम्परेचर + प्रॉम्प्ट + कंटेंट के आधार पर 5 मिनट की इन-मेमोरी LRU कैश। 5 मिनट के भीतर आने वाले समान अनुरोधों को तुरंत कैश्ड परिणाम मिल जाते हैं. + +### रीज़निंग मॉडल हैंडलिंग + +वे मॉडल जो `system` भूमिका का समर्थन नहीं करते (DeepSeek R1, OpenAI o1/o3/o4/gpt-5) स्वचालित रूप से सिस्टम + यूज़र प्रॉम्प्ट्स को एक ही यूज़र मैसेज में जोड़ देते हैं. + +DeepSeek-विशिष्ट: `thinkingEnabled` अनुरोध में `{ thinking: { type: 'enabled' } }` जोड़ता है। `reasoningEffort` (कम/मध्यम/उच्च) को `reasoning_effort` के रूप में पास किया जाता है। जब सोच चालू होती है तो अधिकतम आउटपुट टोकन ≥ 8000 होने की पुष्टि करता है। + +### टोकन अनुमान + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — प्रति टोकन 4 अक्षरों की विधि। LLM को भेजने से पहले `maxResearchContentTokens` को लागू करने हेतु इसका उपयोग किया जाता है। + +लागत ट्रैकिंग लागू नहीं की गई है। + +## मॉडल खोज + +| मोड | प्रदाता | एंडपॉइंट | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | मॉडल सूची API | +| `anthropic-models` | Anthropic | मॉडल सूची API | +| `openai-compatible-models` | DeepSeek, Qwen, Mistral, आदि. | `/v1/models` | +| `openrouter-models` | OpenRouter | मॉडल सूची API | +| `github-models` | GitHub Models | इन्फरेंस API | +| `none` | Azure OpenAI | अक्षम (डिप्लॉयमेंट नाम की आवश्यकता है) | + +## त्वरित प्रारंभ + +1. **प्रदाता चुनें** — DeepSeek (चीन), OpenAI (अंतरराष्ट्रीय), या Ollama (स्थानीय/मुफ्त) +2. **API कुंजी दर्ज करें** — सेटिंग्स → Notemd → प्रदाता → API कुंजी +3. **कनेक्शन जाँचें** — टेस्ट बटन पर क्लिक करें +4. **वैकल्पिक: प्रति-कार्य मॉडल** — `useMultiModelSettings` को सक्षम करें एवं इसे अलग से कॉन्फ़िगर करें + +Ollama के लिए: API कुंजी की कोई आवश्यकता नहीं है। बस यह सुनिश्चित करें कि `ollama serve` चल रहा है. + +--- + +## अगले चरण + +- 📝 [कॉन्सेप्ट नोट्स](/docs/features/concept-notes) — प्रति-कार्य निष्कर्षण मॉडल का उपयोग करता है +- 🎨 [डायग्राम](/docs/features/diagrams) — प्रति-कार्य डायग्राम मॉडल का उपयोग करता है +- 🔍 [अनुसंधान](/docs/features/research) — अनुसंधान-विशिष्ट मॉडल का उपयोग करता है +- ⚙️ [कॉन्फ़िगरेशन](/docs/getting-started/configuration) — पूर्ण सेटिंग्स संदर्भ diff --git a/website/i18n/hi/docusaurus-theme-classic/footer.json b/website/i18n/hi/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/hi/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/hi/docusaurus-theme-classic/navbar.json b/website/i18n/hi/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/hi/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/hu/code.json b/website/i18n/hu/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/hu/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/hu/docusaurus-plugin-content-docs/current.json b/website/i18n/hu/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/hu/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/hu/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/hu/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..9ee5eb1e --- /dev/null +++ b/website/i18n/hu/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "Hromados feldolgozás" +description: "Nagy számú fájlt hatékonyan feldolgozik" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# Hromados feldolgozás + +<TLDR> +**Notemd egyetlen lépésben feldolgozza az összes mappát, és lehetővé teszi a konfigurálható egyidejű munkavégzést és az átírás kezelését.** Kattintson hajtókattintással egy mappára, hogy hromadilag hozzáadjon wiki-hivatkozásokat, kivegye a koncepteket, végezzen kutatást vagy fordítsa át az összes feljegyzést benne. A egyidejű munkavégzés korlátai megakadályozzák a API szintű határozati hibákat. A folyamat állapota az egyes fájlok alapján jelölik meg. Az átírás viselkedése konfigurálható: elhagyja a már létező fájlokat, csatlakoztatja őket vagy helyettesíti őket. A hibás fájlok bejegyezésre kerülnek, de a hromados feldolgozás nem leáll. + +Ez része a [Obsidian AI tudományos kezelési útmutatójának](/docs/pillar-ai-knowledge). +</TLDR> + +## Áttekintés + +A hromados feldolgozás egy mappában lévő feljegyzéseket egyetlen operációként átváltja. Nem kell az egyes feljegyzést nyitni és külön-külön parancsokat futtatni – kattintson hajtókattintással a mappára és válassza ki a munkát. Notemd átfogja minden `.md` fájlt, alkalmazza a kiválasztott műveletet és azonnal jelenti meg a folyamat állapotát. + +Ez a funkció fontos a teljes tároló szintű tudományos adatok kihozásához. Például, miután importálta többek között több PDF-t, a hromadilag hivatkozások hozzáadása után következően a konceptek hromadilag kivegtetése csak néhány perc alatt építi fel a tudományos grafikonát, nem órák alatt. + +## Hogyan működik + +### Hromados futtatási modell + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **Fájlok gyűjtése** – Notemd rekurszívül keresi át a célmappát (vagy csak a felső szintű fájlokat, attól függően a beállításoktól) és gyűjtözi össze az összes `.md` fájlt. +2. **Egyidejű munkavégzés osztása** – A fájlok oszlokká válnak a `batchConcurrency` beállítás alapján. Minden oszlok egyidejűen fut; az oszlokok pedig sorrendben futnak. +3. **Feldolgozás** – Az egyes fájlok feldolgozása azonos logikával történik, mint a egyetlen fájlra vonatkozó parancs esetében. A munka alapú fornincsok és a modell beállításai figyelembe vennék. +4. **Folyamat jelentése** – Minden fájl lefuttatása után frissül egy üzenet, amely az `N / Total` folyamat állapotát mutatja be. +5. **Hibák kezelése** – Ha egy fájl hibásul (API hiba, hálózati időkötés stb.), a hiba bejegyezésre kerül és a hromados feldolgozás továbbra is folytatódik. A végleges összefoglalásban listázhatók az összes hibás fájl. +6. **Lezárás** – Egy összefoglaló üzenet jelenti meg a teljesen feldolgozott fájlok számát, a sikereket és a hibákat. + +### Üleírás elvényszerűlete + +Amikor folyamatozunk egy fájljal, amely már tartalmaz wiki-hivatkozásokat, konceptjelzéseket vagy fordításokat, Notemd elvényszerűlete attól függ, milyen üleírás beállítása van: + +| Módszer | Elvényszerűlet | +|------|----------| +| **Elhagyás** | A meglévő tartalom megmarad. Csak az nem módosított fájlok folyamatoznak. | +| **Hozzáadás** (alapértelmezett) | Új tartalom hozzáadódik. A meglévő wiki-hivatkozások, konceptek vagy fordítások megőriződnek. | +| **Cserélés** | A fájl teljesen újra folyamatozik. Minden korábbi Notemd módosítása üleírásra kerül. | + +Wiki-hivatkozások esetében: ha egy jelzés már tartalmaz `[[wiki-links]]`-t, az **elhagyás** módszer nem érinti meg azt, míg a **cserélés** módszer újra küldi az összes jelzést a LLM-hez, hogy új hivatkozások kerüljenek be. Inkrementális folyamatozásra használjuk az **elhagyás**-t, míg a modellek frissítése utáni újrafolyamatozásra az **cserélés**-t. + +### Konkurenccsi kezelés + +A `batchConcurrency` beállítása korlátozza a paralel API kéréseket. Ez megakadályozza a sebességi korlát hibáit (HTTP 429) nagy mappák folyamatozásákor olyan szolgáltatókkal, akikkél szigorúak a korlátozásuk. + +| Konkurenccsi kezelés | Tajékoztatás | Tipikus sebességi korlát hatása | +|-------------|----------------|---------------------------| +| `1` | Inklúzív szintek, szigorú fornalmazók | Nincs (soros) | +| `3` (alapértelmezett) | A legtöbb felhőforrás | Kisebb | +| `5` | Ollama (lokal), nagyosztályú szintek | Nincs / Kisebb | +| `10` | Hagyományos modellek gyors értékelésével | Nincs | + +Ha batch feldolgozás során 429 hibák jelentek meg, csökkentsd a koncurrentitást 1 vagy 2-re. + +## Konfiguráció + +| Beállítás | Alapértelmezett | Hatás | +|---------|---------|--------| +| `batchConcurrency` | `3` | Maksimális paralel API kérések mappafeldolgozások során | +| `batchOverwriteExisting` | `false` | Másolja le a meglévő Notemd tartalmat. `false` = csatlakoztatási módban. | +| `batchSkipProcessed` | `false` | Elhagyja azokat a fájlokat, amelyek már tartalmaznak Notemd jelölőket (pl. wiki-hivatkozásokat) | +| `batchRecursive` | `true` | Beolvasza a mappát ellenőrizetté váltva a alamappákat is. | +| `enableStableApiCall` | `false` | Engedélyezze a újrapróbálási logikát (legfeljebb 4 körrel) az egyes fájlok esetén a batch művelet során | + +### Batch-ben lévő munkavégzési modellek + +Az egyes batch műveletek az igényes munkavégzési modellt használják. A batch-add-links `addLinksProvider`-t, a batch-research `researchProvider`-t stb. használ; ez azt jelenti, hogy lehetősége van használni olcsó modelleket nagy mennyiségű műveletekhez, és drágább modelleket pedig minőségre fontos munkáknak. + +## példa + +Olyan mappát tartozik, amely `papers/` néven van, és benne 40 importált kutatási jelentés van. Szüksége van wiki-hivatkozások hozzáadására és az összesükben lévő konceptek kihozására: + +1. Jobb kattintson a `papers/` mappára +2. Válassza ki **"Notemd: Process folder (add links)"**-t +3. Notemd ellenőrzi a mappát, talál 40 `.md` fájlt, és kezel 3-at egyre (alapértelmezett konvergencia) +4. Egy fejlépési üzenet mutatja meg: `12/40 files processed...` +5. Körülbelül 3 perc után egy összefoglaló üzenet jelenti meg: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. Ugyanazt tegye **"Notemd: Process folder (extract concepts)"**-vel, hogy az 40 fájlnak is konceptjelöltetése történjen + +A nem sikerült fájl bejegyzésre kerül. Ezt a fájlt később újra lehet kezelni. + +## Tippek + +- **Kezdje alacsony konvergenciával** -- Ha nem biztos abban, milyen határok vannak a szolgáltatójaé, kezdje `1`-vel és növelje gradually. +- **Használja a skip módot inkrementális frissítésekhez** -- A first teljes batch után váltson meg `batchSkipProcessed: true`-ra, így csak a új jelöltetések kezelődnek a következő futásokban. +- **Engedélyezze a stabil API kéréseket** -- `enableStableApiCall: true` hozzáad egy újra próbálkozó logikát, amely helyreállítja a hosszú batchok során jelentkező áthajtó hibákat. +- **Újra futtasson az újabb modell frissítésektől után** -- Ha egy jobb modellt használ, állítsa be `batchOverwriteExisting: true`-t és újra futtasson, hogy jobb hivatkozások és konceptek kapjon. + +--- + +## További lépések + +- [Workflows](/docs/features/workflows) -- Összekötje a batch munkákat egy kattintással elérhető sávoldali gombokká +- [Custom Prompts](/docs/advanced/custom-prompts) -- Szabályozza a batch extrakcióhoz szükséges promptokat +- [Troubleshooting](/docs/advanced/troubleshooting) -- Elszolgálja a rate-limit hibákat és a kapcsolati problémákat a batch futások során +- [LLM Társadalmak](/docs/providers/overview) -- Munkaalapú modell konfigurációs referencia diff --git a/website/i18n/hu/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/hu/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..02b6cfcc --- /dev/null +++ b/website/i18n/hu/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "Szerkeszthető kérdések" +description: "A saját igényeidhez megfelelően szerkeszthetők a LLM kérdések." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# Szerkeszthető kérdések + +<TLDR> +**A Notemd lehetőségével lehet módosítani a helyettesítő LLM kérdést minden munkaterületre.** A szerkeszthető kérdések lehetővé teszik, hogy kontrollálhassz, mire prioritászt ad a model: lehet korlátozni a konceptek kiemelését egy specifikus tudományterületről, megváltoztatni a kötési stílust vagy átirányítani a fordítás hangulatát. A `{{content}}` és `{{concept}}` tulajdonképpen kérdési változók helyettesítők formájában kerülnek be az elvételek során. A fokozott tanulási terület funkció automatikusan hozzáadja a tudományod terünetét, hogy korlátozzon a kiemelés eredményeit. + +Ez része a [Obsidian AI tudományos kezelési útmutatójának](/docs/pillar-ai-knowledge). +</TLDR> + +## Áttekintés + +A Notemd belső kérdései általános tudalmi munkákhoz írva vannak. Jóan működnek több területen is, de lehetőséget adnak a területhez specifikus fejlesztésre is. A szerkeszthető kérdések lehetővé teszik, hogy pontosan megnevezhetsz a LLM, hogyan kell elkövetkeznie a saját használatodhoz – legyen az csak a médicai terminológia kiemelése, a nevű entitások kötése vagy formális stílusban fordítás. + +A szerkeszthető kérdések nem helyettesítik el az összes rendszeri kérdést. Azok módosítják vagy bővítenek a **munkaterületspecifikus instrukciók részét**, miközben megőrizik a struktúrálatos kijelző formátumot (pl. `CONCEPT:` sorok, wiki-köti szintaxis), amelyre a Notemd függ a tárgyak analíziséhez. + +## Hogyan működik + +### Kérdési architektúra + +Minden Notemd munka követi az egyetlen kérdési struktúrat: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **Alap rendszeri kérdés** – Megadja a segédfigyelmeket. Nem lehet módosítani. +2. **Fokozott tanulási terület** – Hozzáadja az `Relevant Fields: [medicine / law / computer science / ...]`-ot, hogy korlátozza a körzetet. Ez egy beállításik nyomogató, nem egy egyszerű kérdés. +3. **Szerkeszthető munkaterületi kérdés** – Az helyettesíti a helyettesítő munkai instrukciókat (pl. milyen típusú koncepteket kell kiemelni, mennyire agresszívnak kell lennie a kötés). +4. **Kijelző formátum** – Struktúrálatos szabályok (`CONCEPT:` sorok, wiki-köti formátum). Mindig hozzáadja az Notemd, hogy biztosítsa a tárgyak megértését. +5. **Tartalom** – A valós írási tartalom, amely az elvételek során a `{{content}}`-ot használva helyettesítők formájában kerül be. + +### Kérdési változók + +A változók az elvételek futtatása során helyettesítők formájában kerülnek be. Az elérhető változók attól függnek, milyen munkát végezünk: + +| Változó | Feladatok | Cserélt ki az alával | +|----------|-------|---------------| +| `{{content}}` | Mind | A jegyzet vagy választott szöveg | +| `{{concept}}` | Konceptjegyzet szabványformátuma | Kivonott koncept neve | +| `{{description}}` | Konceptjegyzet szabványformátuma | LLM-képzett koncept leírása | +| `{{backlinks}}` | Konceptjegyzet szabványformátuma | Forrásjegyzetek listája hivatkozásokkal | +| `{{date}}` | Konceptjegyzet szabványformátuma | Jelenlegi dátum (YYYY-MM-DD) | +| `{{language}}` | Übersetzung | Célképző nyelv | +| `{{source}}` | Konceptjegyzet szabványformátuma | Forrásjegyzet alneve | + +### Fokozott tanulási terület + +A fokozott tanulási funkció egy gyorsút a területi korlátozáshoz. Nem kell írni egy különleges leírást, amelyben említetne a szakterületét, hanem beállítmányokban állítja be a `focusedLearningDomain`-t: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +Ez az `Relevant Fields: [medicine]`-t előírja a kiemelési leíráshoz, így a LLM prioritásba teszi a területre kapcsolódó koncepteket és lelassítja a általánosakat. Ez egyszerűbb, mint egy teljes különleges leírás, és működik minden kiemelési munkában. + +## Konfiguráció + +| Beállítás | Alapértelmezett | Hatás | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | Átírja a helyettesítő hivatkozások kiemelési leírást | +| `customExtractConceptsPrompt` | `''` | Átírja a helyettesítő konceptek kiemelési leírást | +| `customResearchPrompt` | `''` | Átírja a helyettesítő kutatás + összefoglalás leírást | +| `customTranslatePrompt` | `''` | Átírja a helyettesítő fordítási leírást | +| `customDiagramPrompt` | `''` | Átírja a helyettesítő diagram kialakítási leírást | +| `focusedLearningDomain` | `''` | Előírja a disciplínai kontextust a kiemelési és hivatkozások leíráshoz | +| `extractConceptsMinimalTemplate` | `true` | Használja a cím-kizárólagú koncept jellegzési szablont (ez befolyásolja a `{{concept}}` szablon határait) | +| `customConceptNoteTemplate` | `''` | Átírja a koncept jellegzési fájl szablont teljes változó támogatással | + +**Ha egy különleges leírási mező üres, akkor használódik a belső, helyettesítő leírás.** + +## példa + +Ön egy orvosi kutató, aki koncepteket kivágtat a klinikai kísérleti feljegyzésekből. A helyettesítő leírás kivágtatja az általános névmutatókat is az orvosi kifejezésekkel együtt, ami zavarba ejtő a koncept mappáját. + +**Löszer:** Beállítsa egy fokozott tanulási területet és egy különleges kiemelési leírást. + +1. Beállítsa a `focusedLearningDomain`-t a `medicine`-re +2. Beállítsa a `customExtractConceptsPrompt`-t: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +Most ha egy klinikai jegyzeten futtatja az "Extract concepts" parancsot, a LLM ezt hozza létre: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +Nem az alapértelmezett viselkedéshez, amely esetleg is olyan nem kívánt, általános kifejezéseket extrahálhat, mint például "hospital" vagy "month". + +## Tippek + +- **Kezdje el a specifikus tanulási területtel**, mielőtt írja egy teljes, személyre szabott parancsot. Egy beállítás alatt ezt tudja megoldani 80%-a a használati esetekből. +- **Tartson meg a kiadási formátumot** – Soha ne távolítsa el a formátumirányítókat, például "one per line" vagy "CONCEPT: prefix" a személyre szabott parancsokból. A Notemd parserja azokról függ. +- **Próbálja el először egyetlen jegyzettel** – A személyre szabott parancsok olyan érvelhetetlen hatásokat is hozhatnak a kivonási mértéknek. Előtt batch feldolgozást végezzen, ellenőrizze egy jegyzettel. +- **Tartson a parancsok összefoglalóként** – Nagyon hosszú személyre szabott parancsok használják fel a tokenokat és lehetővé teszik, hogy a model az érzelmeit elhaladjon. + +--- + +## További lépések + +- [Wiki-Links](/docs/features/wiki-links) – Mi kerül kötésre, amikor személyre szabja a add-links parancsot +- [Concept Notes](/docs/features/concept-notes) – A koncept jellegű jegyzetek szablontai és a `{{concept}}` változó +- [Batch Processing](/docs/advanced/batch-processing) – Használja a személyre szabott parancsokat az összes mappában +- [Troubleshooting](/docs/advanced/troubleshooting) – Előre megoldja a problémákat, amikor a személyre szabott parancsok érvelhetetlen kiadásokat hoznak létre diff --git a/website/i18n/hu/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/hu/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..e563dc50 --- /dev/null +++ b/website/i18n/hu/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "Hibaelhárítás" +description: "Általános problémák és megoldások" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Hibaelhárítás + +<TLDR> +**A legtöbb Notemd probléma négy kategóriába oszul: API kulcsfontosságú problémák, hálózati kapcsolat, autentikációs hibák (401/403) és sebességkorlátok (429).** A belső kapcsolat ellenőrzése és a diagnostikai panel gyorsan az alapvető okot azonosítja. Ez a oldal leírja minden általános hibajelzést, annak okát és a megoldást. Itt nem listált problémák esetén jelentse őket be a GitHub Issuesben a diagnostikai adatokkal. + +Ez része a [Obsidian AI tudományos kezelési útmutatójának](/docs/pillar-ai-knowledge). +</TLDR> + +## Áttekintés + +Notemd függ externi szolgáltatásoktól -- LLM fornalmazóktól és keresési API szolgáltatásoktól -- így a legtöbb probléma az alkalmazás magájából nem származik. A beállításokban található diagnostikai panel struktúrázott formában mutatja be a legutóbbi API kérést, beleértve a kérést URL, a válasz állapotát és a hiba tartalmát. Mindig először ellenőrizze ezt, mielőtt tovább kutasson. + +## Működési módszer: Diagnostika + +### Kapcsolat ellenőrzése + +Minden fornalmazó beállítási részben van egy **"Test Connection"** gomb. A gombra kattintva küldődik egy minimális API kérést (gyakran egy modelllistát vagy egy rövid teljesítést) és jelentkezik a sikerről vagy a konkrét HTTP hibáról. Ez a leggyorsabb módszer arra, hogy ellenőrizze, hogy a sua API kulcs és a alap URL helyesek-e. + +### Diagnostikai panel + +**Beállítások --> Notemd --> Diagnostika** megjeleníti: + +| Feltérváltozó | Tartalom | +|-------|---------| +| Legutóbbi fornalmazó | Mely fornalmazót legutóbb kértek el | +| Legutóbbi modell | Mely modellt legutóbb kértek el | +| Legutóbbi állapot | HTTP státuszkód vagy transzporthiba | +| Az utolsó hiba | Szöveges hibaüzenet a API szólóval | +| Az utolsó kérés URL | A legutóbbi kérés teljes URL-a (redaktált API kulcs) | +| Az utolsó válasz tartalma | Kurczott választest (első 500 karakter) | + +Kopítsd le a teljes diagnostikai kimenetet, ha problémákat jelented be a GitHub-on. + +## Általános hibák + +### API Kulcs nem változó vagy hiányzik + +**Szimptom:** HTTP 401 vagy „Néveltetés nélküli API kulcs” + +**Oka:** A API kulcs hiányzik, tartalmaz üres helyeket, vagy tartozik egy másik fornecedőhez. + +**Megoldás:** +1. Ellenőrizze, hogy a kulcsnél nincs kezdeti/végépi tér. +2. Ellenőrizze, hogy a kulcs megfelel a kiválasztott fornalmazóknak (ein OpenAI-Kulcs funktioniert nicht mit Anthropic). +3. Ellenőrizze, hogy a fiókában kredite vannak vagy aktív abonelés van +4. Kattintson a **"Test Connection"** gombra az ellenőrzéshez + +### Hálózati / Kötési hibák + +**Túljelezés:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**Oka:** A API végpont nem érhető el a gépéből. + +**Megoldás:** +1. Ellenőrizze az internetkapcsolatát +2. Ha proxy vagy tűzvédelmi szolgáltatás mögé van, ellenőrizze, hogy a API domén nem blokkolva van +3. A Ollama esetében: ellenőrizze, hogy a `ollama serve` működik (`ollama list` azonnal modellt válaszolna) +4. A LMStudio esetében: ellenőrizze, hogy a szerver `localhost:1234` címén működik +5. Próbáljon más transzporttartalmat – a mobilhasználók biztosítják kell, hogy a `requestUrl` transzport aktív legyen +6. Hajtson be a `enableStableApiCall` automatikus újraértesítéshez áthajtó hibáknál + +### 403 Kizárás + +**Túljelezés:** HTTP 403 + +**Oka:** A API kulcsa változatlan, de nincs hozzáférése a kérött forráshoz. + +**Megoldás:** +1. Néhány modell különleges hozzáférést igényel (pl. a GPT-4 Azure által használatahoz egy telepítési nev szükséges) +2. Néhány szolgáltató korlátozza a modelleket a tervszint szerint – ellenőrizze az összefüggéseit +3. Regiókéntes korlátok lehetnek (néhány Kína-beli szolgáltató blokkolja a nemzetközi IP-címeket, és vice versa) +4. Ellenőrizze, hogy a modellneve helyesen íródik (pl. `gpt-4o`, nem `gpt-4o-mini`, ha a mini modell azonos a tervében engedettekkel) + +### Háromszázhatodik hibakód (429) + +**Túljelezés:** HTTP 429 vagy "Háromszázhatodik hibakód elérve" + +**Oka:** Túl sok kérést történt egy korotartam alatt. + +**Megoldás:** +1. Kemelje ki a `batchConcurrency`-t a `1`-ra vagy a `2`-ra +2. Várjon néhány percet, majd próbálja újra +3. Ellenőrizze a szolgáltató háromszázhatodik hibakód dokumentációját a saját tervszintéhez +4. Engedélyezze a `enableStableApiCall`-t az automatikus újpróbához velejáráskal +5. Fontosabb lehet átmenni egy magasabb korlátokat adó szolgáltatóra (DeepSeek, Ollama) + +### Modell nem található + +**Túljelezés:** "Modell nem található" vagy HTTP 404 + +**Oka:** A választott szolgáltatón a modellnev nem létezik. + +**Megoldás:** +1. Kattints **"Get Model List"**-re, hogy látogass meg az összes elérhető modellt a szolgáltatódhoz +2. Néhány modellneve idővel változik – ellenőrizd a jelenlegi nevet a szolgáltató dokumentációjában +3. Ollama esetén: futtasson el `ollama list`-t, hogy látogass meg a letöltett modellt; csak azok a modellek vannak elérhetőek, amelyek letöltésre kerültek + +### Nincs hivatkozások / nincs koncepciók készültek + +**Túlzás:** A parancs fut, de nem ad ki semmilyen eredményt + +**Ok:** A LLM egy üres vagy megértési lehetetlenséges választ adott. + +**Megoldás:** +1. Ellenőrizze a diagnostikai panelot a valódi LLM válaszához +2. Próbáljon egy jobb képességű modellt (nagyon kis modellek néha nehezen kezelik a struktúrált eredményt) +3. Biztosítsa, hogy a jegyzet elég tartalmat tartalmazza (>50 szó) +4. Ellenőrizze a saját kifejezését, hogy nincsenek konfliktusos instrukciók +5. Támlódjon az összetett kifejezések elszűrése korlátozását, hogy látogasson meg, hogyan erősen szűrheti az adatokat + +### Doubao végpont ID hiányzik + +**Túlzás:** Hiba a ByteDance Doubao szolgáltató használatakor + +**Ok:** A Doubao egy Ark végpont ID-t (formátum: `ep-xxxxxxxx-xxxx-xxxx`) igényel, nem a modellnevet. + +**Megoldás:** Cserélje ki a helyettesítő modellt a Volcengine konzolon található valós értékelői azonosítójával. + +## Konfiguráció + +| Diagnozis beállítások | Helyezés | Cél | +|--------------------|----------|---------| +| **Kapcsolat ellenőrzése** | Beállítások --> Társító rész | Ellenőrizze a API kulcsot és a kapcsolatot | +| **Módelllista kérése** | Beállítások --> Társító rész | Következőket ellenőrizze: melyik modellek elérhetők. | +| `enableStableApiCall` | Beállítások --> Fejlesztett | Hétfogadásot engedélyezés a visszakövetéskel | +| `batchConcurrency` | Beállítások --> Hromadkezelés | Kontrollálja a paralellizmust, hogy elkerülje a sebességi korlátokat | + +## Hogyan jelenthetem be problémákat? + +Ha a probléma nem kerül fenti részben leírásra: + +1. Nyitja meg a **Beállítások --> Notemd --> Diagnozis** menüt +2. Kopítsa le a teljes diagnozis kimenetét +3. Nyitja egy GitHub Issue-t a címén: [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +4. Beillesse: Obsidian verziót, Notemd verziót, fornítót, modellt, diagnozis kimenetét és a probléma reprodukálásához szükséges lépéseket +5. Törölnie kell a megosztott logokból a API kulcsát + +--- + +## További lépések + +- [LLM Fornítók](/docs/providers/overview) -- Teljes fornítóbeállítások referenciája +- [Hromados feldolgozás](/docs/advanced/batch-processing) -- Nagy mennyiségű munkákhoz szükséges koncurrents és újrapróbálási beállítások +- [Szerkeszthető kérések](/docs/advanced/custom-prompts) -- Kérések módosítása által a valósítmányban jelentkező LLM viselkedés helyreállítása diff --git a/website/i18n/hu/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/hu/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..0b0f651d --- /dev/null +++ b/website/i18n/hu/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "Szeretettel kérdezett kérdések" +description: "Általános kérdések a Notemd telepítésére, funkcióinak és használatára vonatkozóan" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# Szeretettel kérdezett kérdések + +<TLDR> +**Rácsok a leggyakoribb Notemd kérdésekre.** Érinti a telepítést (5 percű beállítás), 30+ LLM fornalmazó támogatást, helyi/mentési modell opciókat, egy kattintással futtató munkafolyamatokat, több nyelvű UI (21 nyelv), wiki-hivatkozások automatizálását, kutatási integrációt, PDF olvasási munkafolyamatokat, diagramok készítését és az open-source licencelést. Minden funkció működik offline-ül Ollama-vel. +</TLDR> + +--- + +## Telepítés & Beállítás + +### Hogyan telepíthetem a Notemd-t a Obsidian-ban? + +Nyitja meg a Obsidian **Beállítások → Közösségi pluginek → Keresés** → keresze **"Notemd"** → **Telepítsen** → **Engedélyezzen**. + +**Elvárások:** +- Obsidian 0.15.0+ +- Támogatott a számítógépen (Windows, macOS, Linux) és mobilon (iOS, Android) + +**Manuális telepítés:** +1. Letöltse a `main.js`, `styles.css`, `manifest.json`-t a [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases)-ből +2. Rakja őket be a `<your-vault>/.obsidian/plugins/notemd/`-ba +3. Uramollítsa a Obsidian-t és engedélyezze a plugint + +**Statistika:** 4k+ letöltés, 44 kiadás, MIT licencelés. + +--- + +## LLM konfiguráció + +### Milyen LLM szolgáltatókat támogat Notemd? + +Notemd **30+ szolgáltatót** támogat: + +**Mégközösségi szolgáltatók:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonnet, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**Kínára kifejezetten:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**Lokális/önmagukat futtatók:** +- Ollama +- LM Studio +- Bármely OpenAI-kompatibilis végpont + +**Gatewekek:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models, Fireworks, LiteLLM, Nebius, Cerebras +- Hugging Face, Vercel AI Gateway, Requesty + +### Hogyan működhet Notemd a helyi LLM-ekkel? + +**Igen, teljesen támogatott.** Notemd működik az alábbiakkal: +- **Ollama** (nativ integráció) +- **LM Studio** (OpenAI-kompatibilis végpont keresztül) +- **vLLM, LocalAI, text-generation-webui** (OpenAI-kompatibilis módban) + +Minden munka helyi modellekkel működik: kötés, koncept generálás, fordítás, kutatás és diagram generálás. + +**Összekeverési példa:** +- Ollama (helyi) kötéshez → gyors, privát, ingyenes +- OpenAI kutatáshoz → magas minőség, webkeresés integrációja +- Gemini fordításhez → multimodális támogatás + +### Hogyan konfigurálom különböző modellt különböző munkákhoz? + +A **Notemd Beállítások**ban minden munkának külön felelősségi területi/modell választói vannak: + +| Munka | Példai beállítások | +|------|----------------------| +| **Összekötés** | DeepSeek (gyors, olcsó) | +| **Koncept kialakítása** | Claude Opus (magas minőség) | +| **Tudományos kutatás** | Perplexity vagy GPT-4o (web-alapú) | +| **Übersetzung** | Gemini Flash (multimodális) | +| **Diagram kialakítása** | Ollama (lokal, privát) | + +Ez a munkaalapú optimalizálás egyenlegeséget teremt a sebesség, a költség és a minőség között. + +--- + +## Fő funkciók + +### Hogy különbözik a Notemd a ChatGPT-tól papírú könyvek olvasásában? + +| Dimenzió | ChatGPT | Notemd | +|-----------|---------|--------| +| **Kielégítés helye** | Chatt-történet (tüntető) | Obsidian tárgyár (továbbítható fájlok) | +| **Eredmény formátuma** | Szöveges válasz | Wiki-hivatkozások, koncepti leírások, diagramok, fordítások | +| **Hosszú távú értéke** | Seszió után eltűnik | Összejön egy tudományos bázisba | +| **Használati lehetőségei** | Először kell kérdezni újra | A fájlok maradnak, a hivatkozások változnak | + +**Használja ChatGPT-t:** Gyors kérdés-összefoglalásokhoz, egyetlen alkalomú leírásokhoz +**Használja Notemd-t:** Hosszú távú, struktúrált tudományos bázis kialakításához hétök/hónapok alatt + +### Hogyan hozzáadja Notemd wiki-hivatkozásokat a jegyeikhez? + +**Proces:** +1. Egy jegyenél futtatja az "Process file (add links)" parancsot +2. Notemd küldi a szöveget a beállított LLM-ébe +3. A LLM az összefüggésekben lévő kulcskoncepteket azonosítja +4. Notemd beilleszi a `[[wiki-links]]`-t minden koncept jelentkezésén +5. Választhatóan automatikusan létrehoz személyre szabott mappában konceptjelöltetéseket + +**Funkciók:** +- Szinonimus elszámolása (kerüli a "transformer" és "transformers" duplikátusait) +- Konceptjelöltetésekből forrásokra vezető hivatkozások +- Hivatkozások intézete újnevezés vagy törléskor +- Tisztas extraction módszer (kivonja a koncepteket, anélkül hogy módosítaná az eredeti anyagot) + +### Mi a Notemd egy kattintással futó munkafolyam? + +**Egy kattintással futó munkafolyamok** több műveletet összeköti egy **egyetlen oldalsávon lévő gombba**. + +**Alapértelmezett munkafolyam:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**Eredmény:** Egy kattintásra megjelenik az alábbiak: +1. Jelölje be wikihivatkozásokat a jelen jelöltetéshez +2. Készítsen ki konceptjelöltetéseket új kifejezéseknek +3. Keressön és adjon hozzá háttérinformációkat +4. Súrjon össze egy Mermaid diagramként + +**Szerkeszthető munkafolyamatok:** A beállításokban a DSL formátumban hozhatsz létre saját munkafolyamatodat. Minden munkafolyamat egy újrahasználható oldalsávon lévő gombként jelenik meg. + +### Mi a különbség Notemd között Copilot vagy Smart Connections és? + +Ezek a pluginek megoldják különböző problémákat: + +- **Copilot** — Beszélgetés előnyben. Az AI-vel beszélhetsz a jegyeidről. Az AI válaszai a beszélgetési panelban maradnak; ők nem módosítják a tárgyaidat. +- **Smart Connections** — Keresés előnyben. A plugin semantikailag hasonló jegyeket az embeddingek segítségével találja ki. Így nem teremt vagy módosít tartalmakat. +- **Notemd** — Irodás előnyben. Az AI feldolgozza a jegyeidet és struktúrált eredményeket (wiki-hivatkozásokat, konceptjelölt jegyeket, kutatási információkat, diagramokat, fordításokat) közvetlenül a tárgyaidba, örökös fájlokként ír be. + +| Mi szükséges neked | Tajározott plugin | +|----------------|-------------------| +| Beszélgetés az AI-vel a jegyeidről | Copilot | +| Hasonló/keresett jegyeek találata | Smart Connections | +| Automatikus wiki-hivatkozások beillesztése és tudományos grafikon kialakítása | **Notemd** | +| Konceptjelölt jegyek készítése visszahivatkozásokkal | **Notemd** | +| Diagramok kialakítása a jegyek tartalmából | **Notemd** | +| Egy téma kutatására és összefoglalások hozzáadására | **Notemd** | + +A három is együtt használható – egymást teljesíti, nem konkurelik. + +--- + +## Kutatás & Übersetzung + +### Mely keresési szolgáltatások működnek Notemd kutatással? + +| Szolgáltatás | API kulcs szükséges | Minőség | Megjegyzések | +|---------|-----------------|---------|-------| +| **Tavily** | Igen | Magas | Tajározott, AI-optimális keresés | +| **DuckDuckGo** | Nem | Kísérleti | Nincs beállítás, alacsonyabb minőség | + +**Hogyan működik a „Tudományos kutatás és összefoglalás“:** +1. Kiválaszol egy témát vagy futtathatsz azt a jelenlegi figyelemen +2. Notemd kérdezi a keresési szolgáltatást +3. Eredmények → LLM összefoglalása +4. Az összefoglalás csatlakozik a figyelemhez forrásokkal együtt + +**Eredmény:** Hosszú távú kutatási követés a tárolódban, nem a böngésző ablakainak benne. + +### Képes-e Notemd kínai vagy más nyelveket támogatni? + +**UI nyelvek:** 21+ támogatott nyelv +- Angol, 中文 (简体), 中文 (繁體), 日本語, 한국어 +- Arabul, németül, franciaul, spanyolul, ruszul, portugálul, italánul +- Hindit, bengáliul, thaít, vietnámít, törökül, polgáriul, csehül és többekkel + +**Feladat kiinduló nyelve:** Független beállítás +- UI kínai nyelven + kiinduló angolul: ✅ +- UI angol nyelven + kiinduló kínaiul: ✅ + +**Használati eset:** Kétnyelvű kutatók lehetővé teszik, hogy UI-t a hivatalos nyelükben tartják, ugyanakkor angol nyelven írják a publikációhoz szóló figyelemeket. + +--- + +## PDF és akadémiai munkafolyamatok + +### Hogyan használhatom Notemd papír/PDF olvasására? + +**Igen.** Munkafolyam: +1. **Átváltson PDF → Markdown** a [MinerU](https://github.com/opendatalab/MinerU) segítségével (ajánlott akadémiai papírokhoz) +2. Nyitja meg a Markdown fájlt Obsidian-ban +3. Hajtson el Notemd munkáit: + - **Hozza létre wiki-hivatkozásokat** a kulcstermekhez + - **Készítse ki konceptleírásokat** az ismeretlen terminológiahoz + - **Kivágtasson a valódi szöveget** különleges kérdésekkel (pl. "Mik vannak a korlátai?") + - **Keressön ki a háttérinformációt** a citált metodák/könyvtákokhoz + - **Ügyelje meg** a nehéz részeket + - **Komprimálja az Mermaid diagramként** a struktúrái megértéshez + +**Verzió 1.9.1+:** Kötetstruktúra kivágtatása TOC támogatással + +**Eredmény:** A papír olvasása egy struktúrizált, hivatkozható tudományi elemként jutszik létre a tárgyárnyaiban. + +--- + +## Diagramok és vizualizálás + +### Milyen típusú grafikonok/diagramokat tud generálni Notemd? + +| Típus | Támogatás | Funkciók | +|------|---------|----------| +| **Mermaid** | Teljes | Flussdiagram, sorrend, osztály, állapot, ER, Gantt, automatikus szintaxis kihirdése, batch valósítási ellenőrzés | +| **JSON Canvas** | Teljes | Obsidian helyi canvas layoutok | +| **Vega-Lite** | Teljes | Adatdiagramok, időszakos sorok, sütők, szórások, szabványozhatóak | +| **HTML** | Választékos megoldás | Nem támogatott diagramtípusoknál | +| **Írható HTML/SVG** | Kifejezett cél | Semleges belső SVG semantikus Draw.io-stílusú figyelemekkel | +| **Draw.io / Drawnix artefektumok** | Eksport szabálya | Deterministikus XML/JSON a `SemanticFigureModel` alapján; nincs editor futtatási függősége | + +**Mermaid automatikus kihelyezés:** Mély debug módban helyreállítások: +- Rombult szívek (`-->`, `-.->`, `==>`) +- Néveltelenség, kommentek +- Alkotógrafikon szintaxis hibái +- Forma jelölése (`[`, `(`, `{`, `((`) +- Szivattyú karakterek a névekben +- Megjegyzés függvények + +**Munkafolyam:** +1. Indítson az "Összefoglalja mint Mermaid diagramot" egy megjegyzésen +2. Előnézet modális ablakban +3. Eksportáljon SVG vagy PNG formátumban +4. Vagy tárolja meg `.mmd` fájlként a tárgyában + +--- + +## Otvorható forráskód és közösség + +### A Notemd ingyenes és otvorható forráskódú? + +**Igen.** +- **Lizens:** MIT (engedélyes, kereskedelmi használás engedélyezett) +- **Forráskód:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **Nem van fizetős szintek, nincs felhőben kötés, nincs telemetriá** +- **Közösség:** 234+ GitHub csillag, aktív Discord + +**Ön tulajdonosa:** +- Adatai (maradnak a tárgyában) +- A munkafolyamai (szabályozható a kérelemek, modellek, sorok) +- A privátossága (lokal LLM támogatás) + +**Közvetkezés:** Elkövethető pull request-k. Lépjen hozzá a [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md)-hez + +--- + +## Hibaelhárítás + +### A LLM kéréseim nem működnek. Mit kell ellenőrizni? + +1. **A API kulcs változatos?** Ellenőrizze a Beállítások → Feltételek konfigurációját +2. **A modell neve helyes?** Használja a beállításokban lévő "获取模型列表" (Get Model List) gombot +3. **Hálózati hozzáférhetőség?** Some providers require VPN +4. **Hárfogáskorlátok?** Check provider dashboard +5. **Diagnozis:** Run "Connection Test" in settings for detailed error logs + +### Notemd is lass. Hogyan lehetővé tenni a gyorsítást? + +1. **Használj gyorsabb modellt:** DeepSeek, Gemini Flash, GPT-4o-mini +2. **Kecselsd le a blokk méretét:** Settings → Smart Chunking → lower word count +3. **Paralel feldolgozás:** Settings → Batch Processing → increase concurrency +4. **Lokális modellt:** Ollama for tasks that don't need web search + +### Can Notemd work 100% offline? + +**Igen, Ollama-vel.** No API key, no internet, no data leaves your machine: + +1. Install [Ollama](https://ollama.com) and run `ollama serve` +2. In Notemd settings, select **Ollama** as your provider +3. Pull a model: `ollama pull llama3` (or qwen2.5, gemma2, etc.) +4. All features work: wiki-links, concept notes, translation, diagrams + +**DuckDuckGo research** also works without an API key (experimental quality). + +With cloud providers (OpenAI, Anthropic, Google, DeepSeek, etc.), your note content is sent as API input. Check each provider's privacy policy for data handling details. + +### A adatomaim az égboltba küldődnek? + +**Ez attól függ, melyt használ:** + +| Társító típusa | Adatomaim az égboltba küldődnek? | Megjegyzések | +|--------------|---------------------|-------| +| **Ollama (lokal)** | Nem | Mind a számítógépeden marad | +| **LMStudio (lokal)** | Nem | Ugyanaz, mint a Ollama | +| **DeepSeek, OpenAI, stb.** | Igen | A megjegyzés tartalmát API beállításaként küldjük a feldolgozásra | +| **OpenRouter, AIHubMix** | Igen | Mégközvetítő, amely irányít a felhőszolgáltatókhoz | + +Notemd maga nem gyűjti **sem telemetriát, sem analitikát, sem használóadatokat**. A plug-in teljesen nyílt forrású (MIT). A legyenek azonban a gépedtől kiszállók azok, amit te szintén küldel a konfigurált LLM szolgáltatódhoz. + +### Mely Obsidian AI plug-in a kutatásokhoz a legjobb? + +Ez attól függ, milyen kutatási munkafolyamatot használod: + +| Szükség van | Plug-in | Miért | +|------|--------|-----| +| Kapcsolódó tanulmányok/figyelemkönyvek találása | Smart Connections | Semantikus hasonlóságok keresése | +| Forrásaidról beszélgetés | Copilot | A tároló kontextusaival való konverszác | +| Konceptek automatikus kötésé + figyelemkönyvek készítése | **Notemd** | A AI azonosítja a koncepteket, beilleszi a hivatkozásokat, készíti fel a figyelemkönyveket | +| Webes kutatás + összefoglalás a figyelemkönyvekben | **Notemd** | Tavily/DuckDuckGo keresés → LLM összefoglalás → a jegyzethez csatlakoztatás | +| Tudományi adatokból diagramok készítése | **Notemd** | Mermaid/Canvas/Vega-Lite a jegyzet tartalmából | + +**Tanácsolt kombináció:** Smart Connections (keresés) + Notemd (struktúrizálás) + Copilot (beszélgetés). + +--- + +## Segítség kérés + +- **Dokumentáció:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **GitHub kérdések:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **Támogatók:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/hu/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/hu/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..b93048d4 --- /dev/null +++ b/website/i18n/hu/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "Konceptleírások" +description: "Készítse és kezelje a konceptleírásokat – külön leírások a fő koncepteknek, amelyek a tárgyáraiból származnak" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# Konceptleírások + +<TLDR> +**Notemd kiválaszol a leíráskokból a fő koncepteket és készít egy külön konceptleírás fájlt őknek.** A LLM az alapvető kifejezéseket azonosítja, egy `.md` fájlt hoz létre minden koncept számára egy beállítható mappában, és lehetőség esetén hozzáad egy visszahívót a forrásleíráshoz. Támogatja a szinonimák elrejtését, a munka alapján való modell választását, a fájlnevek titkosítását és egy 4 lépéses duplikácsok elszűrési motorát. Ez része a [Obsidian AI tudományos kezelési útmutatójának](/docs/pillar-ai-knowledge). +</TLDR> + +## Áttekintés + +A konceptleírások egy összekapcsolódó tudományos bázis alapkövei. Amikor feldolgozza egy leírást, Notemd: + +1. **Írja be a szöveget egy LLM-ba** egy struktúrizált kivonási kérelemmel +2. **Áttekinti a `CONCEPT:` sorokat** a LLM válaszából +3. **Hoz létre egy `.md` fájlt minden koncept számára** egy megadott mappában +4. **Hozzáad visszahívót** a forrásleíráshoz (ha engedélyezve) + +## Hogyan működik + +### Kivonási folyamat + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### A kivonási kérelem + +A LLM kap egy kérelemet, amely megrendeli tőle, hogy: + +- Kivonja a **neveket vagy névmásokat**, amelyek a dokumentum témájának központi részei +- **Prioritásba helyezze a specifikitást** – „Dielectric Relaxation” helyett „Relaxation” +- **Normalizálja a szöveget egyedüli formába** – „models” legyen „model” +- **Elrejtse a mellékkoncepteket** – ha „dielectric relaxation” jelenik meg, ne kivonja azonnal is a „relaxation”-ot +- **Elhagyja** a referenciák/íráslisták részeit, a közös névmutatókat, a cégek/további termékek neveit +- Egy konceptet egy sorban készítse ki az alakulattal `CONCEPT: Term Name` + +**Szóhasonlók elrejtése** (opcionális): a kérelem előtt írja be "Elkerülje a szóhasonlók, semantikailag hasonló alapkonceptek vagy kulcszavak kiválasztását, ha lehet". + +**Fokozott tanulási terület** (opcionális): az előtt írja be `Relevant Fields: [domain]`, hogy a kiválasztás egy konkret tudományterületről legyen. + +**Nyelvi átirányítás** (opcionális): hozzáírja "A kivált konceptek ELTEVENEKENNE [nyelv]ben lenniük." + +### Részekbe osztás + +Hosszú jegyzetek `settings.chunkWordCount`-vel oszlik le. Minden rész külön küldődik. Minden részből származó konceptek egy `Set`-ba gyűjthetők össze – a részek közötti duplikátkok csendesen eltávolítódnak. A egyes részeken lévő LLM hibák nem leállítják a folyamatot. + +## Konceptjelző készítése + +### Fájlnevek szabályai + +| Szabály | Elvényszerűlet | +|------|----------| +| Hátrajzok/alacsonybetűk | Cseréltük ki az üres helyekkel | +| Különleges karakterek | Törölték: hátrajz, alacsonyrajz, kolon, csillag, kérészjelet, szavazatok, szögbetűk, őrnyelv, hash, caret, betűköri zárók | +| Üres helyek | Összevonva és törlve | +| Máximális hosszúság | 100 karakter (korlátozott + újra kiszorítva) | +| Tüzel/összes ponttal teli eredmény | Csendesen elhagyva | + +Példa: `A-B: Key*Term` változik `A B KeyTerm.md`-ra + +### Szablontok + +**Teljes szablon** (visszahivatások engedélyezve, minimális szablon kikapcsolva): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**Minimalis szablon** (amikor `extractConceptsMinimalTemplate: true` van): + +```markdown +# Concept Name +``` + +### Megújítás a már létező figyelemeket + +Ha egy koncept fájl már létezik: + +1. Ha a visszahivatások engedélyezve vannak és a forrás figyelem még nem listázott, hozzáadjuk egy visszahivatást +2. Ha egy `## Linked From` rész létezik, beillesztem azt a következő `##` felső rész előtt +3. Ha nincs `## Linked From`, hozzáadjuk a részt a végére +4. Duplikált visszahivatások ellen ellenőrzés történik és elhagyva vannak + +### Konfiguráció + +| Beállítás | Alapértelmezett | Hatás | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | Fő bekapcsoló. Kikapcsolva = nincs új figyelemek létrehozva | +| `conceptNoteFolder` | `''` (kikapcsolva) | Konceptleírásokhoz szóló mappateja | +| `extractConceptsMinimalTemplate` | `true` | Csak című leírások (nem van „Linked From”-ot) | +| `extractConceptsAddBacklink` | `false` | Stándart kivonási folyamat során visszaadja a hivatkozásokat | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | Konceptkivonáshoz szóló munkavégzési LLM | +| `extractConceptsLanguage` | `'en'` | Konceptneveknek az átmeneti nyelv | +| `replaceSynonymsDuringConceptExtraction` | `false` | A kérésben a szinonimák leírásának engedélyezése | +| `generateConceptLogFile` | `false` | Írja le egy `.log` listát a kialakított konceptekről | + +**Fontos:** A `extractConceptsAddBacklink` és `extractConceptsMinimalTemplate` beállítások csak a **speciális kivonási parancsot** befolyásolják. A „Add Links” parancs mindig hivatkozásokkal rendelkező, teljes szabványú leírásokat készít ki. + +## Duplikátok eltávolítása + +A duplikátok eltávolító parancs (`Notemd: Check & remove duplicate concept notes`) 5 lépéses analízist végez: + +### Lépés 1: Egyszerű fájlnev összevetése + +Konfigurált környezetben betűtípusnemkülönbségtelenségű fájlnevkövetkeztetés. + +### Lépés 2: Nömegformázat megtalálása + +Sorozatok eltávolítása: `-ies`-től `-y`-ig, `-es` eltávolítás, `-s` eltávolítás. A egyenszerű formát a környezeti fájlokval összeveti. Irreguláris nömegeket (children/child) nem kezel. + +### Lépés 3: Symbol normalizálása + +Érvényes: `toLowerCase()`, cserélje el az hátrajzokat/alsóköveket szöveges térként, töröljön a nem alfanumerikus karaktereket, összevonja a tömött szöveget. Azonosan normalizálódó elemek jelöltnek kerülnek. + +### 4. lépés: Egy szóból álló tartalmak ellenőrzése + +Az egy szóból álló konceptjellegű feljegyzések összevetésére használják a több szóból álló környezeti fájlok nevét. Ha a környezet `concept_folder_only`, ezt a lépést nem futtatják. + +### 5. lépés: Bizonyítás és törölés + +Az összes kandidátum megjelenik egy bizonyítási ablakban. Engedélyezett elemek kerülnek a rendszeri tömöbbé. A műveletet bármikor, azonos törölés között, törölhető ki. + +### Környezeti módkok + +| Módszer | Összevetésére használt elemek | +|------|-------------------| +| `vault` (alapértelmezett) | Minden `.md` fájl a tárolóban, kivéve a konceptmappát | +| `concept_folder_only` | A mappában lévő más konceptjellegű feljegyzések | +| `include` | Specifikusan listázott mappákban lévő fájlok | +| `exclude` | Minden `.md` fájl a tárolóban, kivéve a konceptmappát és a listázott mappákat | + +## Használat + +### Konceptek kivonása (képzetlen formában) + +1. Nyitja meg egy feljegyzést +2. Futtassa el **"Notemd: Konceptek kivonása"** parancssorpaletából +3. A konceptjellegű feljegyzések létrejönnek a beállított mappában + +### Tartalmak kiválasztása és készítése + +**"Notemd: Konceptek kiválasztása és címek készítése"** — kiválaszolja a koncepteket, majd futtatja a "Cím alapján készítés" parancsot az összes feljegyzésre a koncept mappában. Ez készíti tartalmat **minden** konceptfeljegyzéshez a mappában, nem csak az újra készülteknek. + +### Választott elemekből wiki hivatkozás készítése + +1. Szöveget az editorben felhajtóként jelölés +2. Futtatja **"Notemd: Választott elemekből wiki hivatkozás készítése"** parancsot +3. A szöveg `[[...]]`-ba kerül és egy konceptfeljegyzés készül + +## Tippek + +- **Először beállítsa a koncept mappát** — без nьjük nincsenek feljegyzések. Ha nem beállított, jelenik meg egy figyelmeztetési ablak. +- **Használjon parancsmentes modellket** — a konceptkiválasztásra jók a olcsóbb modellek (GPT-4o-mini, DeepSeek). A drágább modellket tárgyalásokhoz/übersetésekhez tartson meg. +- **Hajtson végre a szinonimus leírása** a technikai területekben, ahol több kifejezés ugyanazt a konceptet jelzi. +- **Reggeljön ki a duplikátkokat** — futtasson a duplikátok elszűrési parancsot a batch feldolgozás után, hogy az összetett duplikátkokat kiszűrje. +- **A log fájl minden futtatásnál átírásra kerül**, nem hozzáadódik. Ha előző eredményeket szereti, kopícolja azt. + +--- + +## További lépések + +- [Wiki-hivatkozások](./wiki-links) — Hogyan kapcsolódnak a konceptek az inline szöveghez +- [Diagramák](./diagrams) — Konceptek közötti kapcsolatok vizualizálása +- [Munkafolyamok](./workflows) — Kiválasztást más parancsokkal összekötés diff --git a/website/i18n/hu/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/hu/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..fe0680e9 --- /dev/null +++ b/website/i18n/hu/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "Diagramok" +description: "A spec-first architektúra segítségével a figyelmeketből Mermaid, JSON Canvas, Vega-Lite, HTML formátumban működő, szerkeszthető képek, valamint jövőbeli korlátozott circuitikz diagramok készülnek ki." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Diagramok + +<TLDR> +**Notemd a figyelmeketből spec-first folyamatú módon diagramokká alakítja.** A LLM egy renderer-agnostikus `DiagramSpec` JSON-t készít, majd speciális adapterek ezt Mermaid, JSON Canvas, Vega-Lite, HTML formátumba vagy szerkeszthető HTML/SVG formátumba átvitték. 8 intenzitípus támogatása, automatikus fallback folyamatok, live preview valamint SVG/PNG kiszállítás, semantikus ellenőrzés és helyi tudásokkal bővített generálás is lehetőségként létezik. +</TLDR> + +Ez része a [Obsidian AI tudományos kezelési útmutatójának](/docs/pillar-ai-knowledge). + +## Architektúra: Spec-First folyamat + +A Notemd soha nem kér a LLM-ttól, hogy közvetlenül Mermaid/Vega/Canvas szintaxisát készítse ki. Inkább: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**Miért spec-first?** A LLM-ek gyakran nélkülözhetetlen renderer szintaxist készítenek ki (Mermaid különösen). Egy struktúráltott `DiagramSpec` előtt a renderelés előtt ellenőrizhető, és ugyanaz a spec több rendererhez is fallbackként használható. + +## Támogatott diagramtípusok + +| Intenzit | Primáris renderer | Fallbackok | Használati esetek | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | Hierarchikus témák szegésének leírása | +| `flowchart` | Mermaid | HTML | Folyamatok, döntésfátok | +| `sequence` | Mermaid | HTML | Kliens-szerver interakciók, protokollok | +| `classDiagram` | Mermaid | HTML | OOP osztályok közötti kapcsolatok | +| `erDiagram` | Mermaid | HTML | Adatbázis szkémái, entitások közötti kapcsolatok | +| `stateDiagram` | Mermaid | HTML | Állapotmásházak, életciklusmodellek | +| `canvasMap` | JSON Canvas | Mermaid → HTML | Koncepciókártyák, tudományos grafikonok | +| `dataChart` | Vega-Lite | Mermaid → HTML | Sárga, linia, terület, szórás, kör, táblák | + +## Intenciós felismerés + +Notemd az összefoglaló tartalmából kulcszavak értékelésével az optimalabb diagramtípust kiszámol: + +| Intenció | Triggerek | Biztonságosság | +|--------|----------|------------| +| `dataChart` | Táblák, számítási célok, mérték/trend kulcszavak, százalékok | 0.88 | +| `sequence` | Kérés/felelés szókincse (4+ megfelelés) vagy `->`/`=>` jelölők | 0.82 | +| `erDiagram` | Primáris kulcs, külső kulcs, entitás, szkémá (2+ megfelelés) | 0.80 | +| `stateDiagram` | Állapot, átmenet, felfüggesztve, futtatásban, sérült (3+ megfelelés) | 0.76 | +| `flowchart` | Numérozott lépések (2+) vagy if/then/else/workflow szókincse | 0.74 | +| `canvasMap` | Konceptusrajz, tudományos graf, térképes, csoport | 0.72 | +| `mindmap` | Alapértelmezett lehetséges választék | 0.55 | + +Átírjuk a **Előnyös diagramtípus** beállításával, a sárú selektortól vagy egy kifejezett parancssorpaletái opciójával. + +## Renderelési célpont választása + +A kísérleti specifikációk alapú folyamat most két külön kontrollt tartalmaz: + +| Kontroll | Beállítás | Hatás | +|---------|---------|--------| +| Előnyös diagramtípus | `preferredDiagramIntent` | Irányítja a készült `DiagramSpec` semántikai formátumát | +| Előnyös renderelési célpont | `preferredDiagramRenderTarget` | Válaszol a **Diagram készítése** és **Diagram előnézetéhez** szükséges artefakt rendererét | + +Beállítsa a **Előnyös renderelési célpontot** **Auto**-ra az alapértelmezett tervezőhez, vagy válassza kifejezetten Mermaid, JSON Canvas, Vega-Lite, HTML, vagy Editable HTML/SVG-t. Az átírás csak a artefakt- és előnézetparancsokra vonatkozik. A standard **Summarise as Mermaid diagram** parancs továbbra is Mermaid-kompatibilis kimenethez van kötve, így a meglévő Markdown munkafolyamok nem változnak titkosan formátumukat. + +Ez a különbség fontos, mert egy `flowchart` cél most lehet Markdown jegyzetekhez Mermaid formában, biztonságos lehetséges választékhoz HTML formában, vagy további módosításokhoz Editable HTML/SVG formában renderelni. A Draw.io és Drawnix továbbra is CLI artefakt exportálók maradnak, nem plug-in belüli renderelési célpontokká. + +## Használat + +### Diagram készítése + +1. Nyitja meg egy feljegyzést +2. Hajtsa el a parancssorpaletából **"Notemd: Diagram készítése"** parancsot +3. Notemd az intenciót érzékeli, készíti elő a specifikációt, rendereli és menti az artefaktot + +**Célpontok szerinti kimenetfájlok:** + +| Cél | Bővítés | Fájlnev módellje | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| Írható HTML/SVG | `.html` | `{note}_diagram.html` | + +### Diagram előnézetének megtekintése + +1. Indítson **"Notemd: Diagram előnézetének megtekintése"** +2. Egy modál ablak nyílik meg a renderelt diagrammal +3. Exportáljon SVG vagy PNG formátumban a szolgáltatási sor parancsainak használatával + +**Autó-előnézet** beállításokban elérhető – készítés után az előnézet modál ablaka automatikusan nyílik. + +Az előnézet modál ablakán van egy artefakt-diagnozis panel is. A renderelők és a smoke ellenőrzések `RenderArtifact.diagnostics`-t köthetnek hozzá; a modál ablak egy diagnozis összefoglalást mutat beállításokkal az hibák, figyelmeztetések és információk számára, majd a súlyosság, a diagnozis típus, a üzenet és a reparációs tanácsokkal a előnézet mellett. Ugyanaz az összefoglalat jelenik meg a előnézet történeti bejegyeikben is, így az összefüggő circuitikz smoke ellenőrzéseket lehet összevetni, anélkül hogy minden bejegyzést nyitnánk. Azok az artefaktoknál, amelyeknek van forrás tartalma, de nem lehet őket inline formában vagy a HTML iframe útja mellett renderelni, a modál ablak most helyettesítően csak forrásbázisú előnézetet ad, így nincs szükség üres iframe használatára. Ez lehetővé teszi a circuitikz kompilálási/renderelési smoke ellenőrzéseket, a SVG szöveg-tokén ellenőrzéseket, a PNG tömött képernyőkép ellenőrzéseket és a jövőbeli összeütközési jelentéseknek egy látható UI felületet adni, anélkül hogy a TikZJax vagy LaTeX legyenek szigorú plugin futtatási függőségek vagy azonképpen az forrás szövegnek kellene bizonyítva lennie egy ellenőrzött visuális renderelésnek. + +### Örökségű Mermaid módszer + +Amikor a `enableExperimentalDiagramPipeline` kikapcsolva van, a Notemd direktálisan egy Mermaid kérdést küld a LLM-hez. Ez teljesen elkerülje a specifikációs folyamatot. Ha a kísérleti folyamat megszűnik, az ezt a módot használ. + +## Renderelési alapkövek + +### Mermaid + +6 adapter (mindmap, flowchart, sequence, ER, class, state) átváltja a `DiagramSpec`-t a Mermaid szintaxisába. Készítés után a `mermaid.parse()` ellenőrizzi a kimenetet. Ha az ellenőrzés megszűnik: + +1. **LLM újra próbálkozás** – egy kísérlet a Mermaid hibajelzésével tartalmazva +2. **Minimalis helyettesítés** – egy egyszerű Mermaid diagram a specifikációs nodus ID-jeikből + +**Öröklődési Mermaid Repairer** automatikusan helyreállítja a népszerű LLM szintaxis hibáit: a note irányelvek normalizálását, a pipe-label elkerülését, a semicolon helyezésének módosítását, a smart quotes használatát, a kettős törő箭头okat, a formák nem megfelelését és többet. + +### JSON Canvas + +Készít ki Obsidian JSON Canvas formátumot területi elrendezéssel: +- A nodok helyezése a mérték alapján (x = mérték × 420) és az index alapján (y = index × 170) +- A szélesség az irányelvek hosszából kiszámításra kerül +- A csatok `fromSide: 'right'`, `toSide: 'left'`, `toEnd: 'arrow'` jellegűek + +### Vega-Lite + +Készít ki teljes Vega-Lite v5 JSON specifikációkat automatikus kódolással: +- **Kartézsi diagramok** (sütő/liniás/térség/pont/terhelt): x + y csatornák + szín több sorra +- **Kör**: theta = y (kvantitív), szín = x (nominal) +- **Táblázat**: sor = x, tekst = y + oszlop = sorozat + +A sötét és fényes temák összevonódnak elő a kompilálás előtt. + +### HTML + +Üldösi megoldás. Magában tartó HTML dokumentum, amelyben vannak: +- CSP meta fejletek +- Fényes/sötét módszer `prefers-color-scheme` segítségével +- 20 nyelvhez szóló helyi UI irányelvek +- Részek: hero, struktúra (nodok ág), kapcsolatok, figyelmeztetések, adat sorozatok táblái + +### Személyre szabható HTML/SVG + +Kifejezetten megadott figyelmeztetési célpont az szerkeszthető export munkafolyamokhoz. Ez projekciezi a `DiagramSpec` egy deterministikus `SemanticFigureModel`-ba, majd készít ki egy sajtalmatlan HTML dokumentumot, amelyben inline SVG csoportok vannak, amelyek tartalmaznak Draw.io-stílusú figyelmeztetéseket: + +- `data-drawio-type`, `data-drawio-id` és `data-drawio-role` a semantikus nodoknál +- `data-drawio-source` és `data-drawio-target` a semantikus szélképekön +- Stabil nod/szélkép azonosítók a térképezők normalizálásával és összeütközések kezelésével után +- Nem vannak skriptek, külső típusok, sem távoli fájlok + +Ez a célpont intenzíven nem a helyettesítő tervezési útja még. Ez elérhető kifejezetten megadott render célpontként, amíg a termék útra való teszi biztosítva a szerkesztési viselkedést valós eszközökben. + +### Draw.io és Drawnix Export határai + +A jelen implementáció a harmadik fél editor támogatását az artefakt határában tartja: + +| Célpont | Kontraktus | Működési időkéntes függőség | +|--------|----------|--------------------| +| Draw.io | Deterministikus, komprimálhatatlan `mxfile` XML a `SemanticFigureModel`-től | Nem vannak sem a plugin működési időben, sem a CI-ben | +| Drawnix | Minimalista `.drawnix` JSON alamagom, amely használja a `geometry` és `arrow-line` elemeket | Nem vannak sem a plugin működési időben, sem a CI-ben | + +A kiegyensúlyozás intenzíven választott: a Notemd lehetővé teszi a látólagos címkek, stabil azonosítók és támogatott primitívek összefoglalásának ellenőrzését, anélkül hogy beépítené a diagrams.net Desktop, Drawnix, Plait vagy csak böngészőben működő editor állapotot a pluginbe. + +### circuitikz / TikZJax irány + +A szemlényrajzok nem ugyanaz a probléma, mint a generikus folyamatszámlák. A elektrikai szemlényeknek a helyes szintaxis célja általában **circuitikz**, amit Obsidianben olyan pluginek köszönhetően renderelnek, mint például TikZJax. TikZJax képes betölteni olyan paketeket, mint `circuitikz`, `pgfplots`, `tikz-cd` és `chemfig`, ami azt érdemesnek teszi fizika, szemlények, chemia és matematika felvételeihez. + +A kockázat az, hogy a szintén LLM által készített TikZ összetörékeny. + +- A komplexes szemköri topológiák elektrikailag helyesek lehetnek, de kézi olvasásra nehézek. +- Összeeső káblok és jelzők az elemzési jegyzékekhez használható helyes netlistet használatra nem alkalmasnak tesznek. +- Hiányzó paket előírások, hibás ankerpek vagy nem változó komponensek nevei megakadályozhatják a renderelést; +- A renderelőtől származó visszajelzések általában kép-szintűek, míg a LLM készített géoméria szöveg-szintű. + +A jobb architektúra az, hogy a circuitikz-t kezeljük korlátozott diagram cézként, nem szabadságos formátumban létrehozott kérésként. + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +A felső osztályú modellnek kell külön-külön leírni a szemköri topológiát és a tervezést: + +| réteg | Felelősség | példa | +|-------|----------------|---------| +| Topológiá | elektrikai üzlekpontok és komponensek összekötései | `VDD -> RD -> drain(M1)`, `source(M1) -> GND` | +| Layout | réteg elhelyezése, orientáció, útvonalozási sorsok | `M1 at (3,2.2)`, bevitel bal oldalán, kijelzés jobb oldalán | +| Stílus | paket, voltágrendszertartás, jelzők, ankrók | `\begin{circuitikz}[american voltages]` | +| Valósítási ellenőrzés | kötelezési protokoll, hiányzó ankrók, összeütközés/képernyőkép ellenőrzések | TikZJax/LaTeX diagnostikák plusz vizuális elemzés | + +### Jelenlegi circuitikz prototípus + +Notemd tartalmaz now a felszólított tárgykör számára első korlátozott repozitóriumi prototípust. Ez intenzíven offline áll és szabványos szabályok alatt működik: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +A prototípus hozzáad egy külön `CircuitSpec` határt és deterministikus kiszolgálót három aranyreferenciái családhoz: + +| Környezet típu | Aranyreferencia | Folyamennyelv garancia | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | ellenőrizi `VDD -> R_D -> M1.D`, `vin -> M1.G`, `M1.S -> GND` és `M1.D -> vout`-t, mielőtt LaTeX-ként írjon le | +| `cmos-inverter` | `cmos-inverter-v1` | ellenőrizi PMOS-over-NMOS topológiát, összefüggő kapu bevitelt, összefüggő kiszállítást, `VDD -> MP.S`-t és `MN.S -> GND`-t, mielőtt LaTeX-ként írjon le | +| `cmos-buffer` | `cmos-buffer-v1` | ellenőrizi két sorozatos inverter szintjét, közép pontot `vmid`-t, visszaállított `vout`-t és összefüggő VDD/GND folyamatosokat, mielőtt LaTeX-ként írjon le | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | ellenőrizi paralel PMOS/NMOS áramköri eszközeket `vin` és `vout` között, komplementáris `phib` / `phi` vezérlésekkel, mielőtt LaTeX-ként írjon le | +| `cmos-nand2` | `cmos-nand2-v1` | Ellenőrizi a paralel PMOS pull-up, soros NMOS pull-down, két bevezetés `va` / `vb` és `vout` működését, mielőtt LaTeX-ot írjon le | +| `cmos-nor2` | `cmos-nor2-v1` | Ellenőrizi a soros PMOS pull-up, paralel NMOS pull-down, két bevezetés `va` / `vb` és `vout` működését, mielőtt LaTeX-ot írjon le | + +Ez még nem egy általános TikZ generátor. Nem kompilálja a LaTeX-ot, nem hívja fel TikZJax, nem ellenőrizi a képeket, és nem futtat automatikus kép-fejlesztési műveleteket. Ezek a funkciók később kerülnek be. + +A Preview diagram parancsa lehetővé teszi az összeállított circuitikz forrásfájlok újra megnyitását közvetlenül, ha a fájl extenzíja `.tex` vagy `.tikz`, és a forrásban vannak `\usepackage{circuitikz}` vagy `\begin{circuitikz}`. Ez egy circuitikz forráskörű előnézet: a modális ablak mutatja be a forrásot, a diagnostikákat, a kopiálás/megőrzés kezelőket és a históriai adatokat, de nem kompilálja a LaTeX-ot vagy nem hívja fel TikZJax a plug-in működési időszakában. + +A sama forráskörű előnézet now összefogja az összeállított Draw.io és Drawnix fájlokat. `.drawio` fájlok elfogadók, ha azok Draw.io XML (`mxfile` vagy `mxGraphModel`) képességűek, és `.drawnix` fájlok elfogadók, ha azok Drawnix JSON formátumban vannak, valamint `type: "drawnix"` és egy `elements` array-t tartalmaznak. A plug-in még mindig nem bevonja a diagrams.net-et vagy a Drawnix whiteboard hostot; ezek az előnézetek mutatják be a forrásot, a diagnostikákat és a fájl históriáját, de nem biztosítják plug-in belül való vizuális szerkesztést. + +Topológiákatől függő működési javításokhoz, az előjavítási specifikációt kell referenciaként megadni, mielőtt egy javított kandidátumot elfogadjuk: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +A javítási ellenőrző használja `createCircuitTopologySignature` és `assertCircuitTopologyUnchanged`-t, hogy összevetje `circuitKind`, `goldenReferenceId`, hálózatokat, komponensek azonosítóit/típusait/termináljait és iránytalan kapcsolati végpontokat, mielőtt kijelentse a eredményt. A címkeek, a titkoszöveg, a layout sugárzatai, a kapcsolási sorrend és a kapcsolási címkeek intenzíven elhagyódnak. Egy kandidátum, amely hosszabb rendszeret hozzáad vagy egy terminálot újra köt, nem sikerül, mert `Circuit topology drift detected` jelenik meg, mielőtt a `.tex` fájl íródjon le. + +A CLI now lehetővé teszi az már létező LaTeX/TikZJax kompilációs logot olvasását, anélkül hogy egy kompilátor futtatásra kerülne: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +Ez a diagnostikai út jelentkezik a hiányzó paketekről, pl. `circuitikz.sty`, ismeretlen TikZ/circuitikz kulcsokról, TikZ út-szintaxisi hibákról, pl. hiányzó készecskék, egyenletlen zárók vagy nem záró címkek következtében jönnek létre az argumentok, nem definiált kontroll sorokról, általános LaTeX hibákról, hagyományos leállításokról és javaslati overfull `\hbox` figyelmeztetésekről. Ez továbbra is log-bázisú: a helyi LaTeX/TikZJax futtatása és a képminőségű ellenőrzések még mindig későbbi munkákat jelentenek. + +A karbantartók számára létrehozott ellenőrzésekhez, az sama CLI lehetővé teszi egy kifejezetten konfigurált renderer futtatását, anélkül hogy shell parancsok olvasódjanak: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +A kompilációs futó használja `shell: false`, kiterjeszti `{tex}`, `{outputDir}` és `{jobName}` helyettesítőket argumentum-arrázsi értékként, olvasja a készült `{jobName}.log`-t, és adja vissza `compileExecution` plusz `compileDiagnostics` a CLI JSON formátumban. `--compile-executable` csak a renderer bináris fájla vagy wrapper útja; a renderer flagjei tartoznak a repetált `--compile-arg` értékekre. Az üres executable-k nem sikerülnek, mert `compile-executable-invalid`, a hiányzó binárok nem sikerülnek, mert `compile-executable-not-found`, és shell-parancs-formátumban lévő executable szövegeknek javaslat adódik, hogy az argumentumokat oszdják, így a Windows, Linux és macOS egyaránt követi a közvetlen futtatási feltételeket. `--expected-artifact`-vel együtt jelentkezik az `compileExecution.renderSmoke` is, és a CLI nem sikerül, ha a renderer nem létrehoz egy nem üres fájlt. A plug-in még mindig nem bevonja a LaTeX-t, nem teszi TikZJax plug-in működési időszakának függvényének, és nem végzi le képminőségű vizuális javítást. + +Ha az eredeti fájl `.svg` formátumban van, a ellenőrzés egy szint mélyebbre menek: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +SVG ellenőrzés ellenőrizi a `<svg>` kököt, a pozitív dimenziókat vagy `viewBox`-t, legalább egy látható rajz elemet az elrejtett/tönképes elemek kivételével, bármilyen kérésre szóló szöveg tokenokat, az `viewBox` körüli nyílt elemeket, az óvatosan helyezett `<text>` / `<tspan>` címkeket, és az óvatosan helyezett szöveg címkeket, amelyek összeülnek a rajz elemekkel az `render-svg-label-overlap` keresztül. A kívánt szöveg keressége történik a látható szövegben és a decodált hozzáférhetőség adatokban, pl. `aria-label`, `<title>` és `<desc>`, így azek a rendererek, amelyek a semántikai címkeket a látható `<text>` körül is megőrizik, továbbra is teljesíthetik a szöveg-token ellenőrzést, anélkül hogy OCR-re van szükségük. A geometriai ellenőrzés now transform-aware geometriát használ a gyakori csoport- és elem `transform` attribútumainak érdekében, így a vertelt, skálált, szörlött, torzított vagy matrix-transformált SVG boxok ellenőrzése történik a transform kompozíció után. Ez az ellenőrzés tartalmazza az A/a arc extrema pontos arc határait, a C/S/Q/T kurva extrema pontos Bezier kurva határait, a stroke-width-aware SVG határait és a címke összeülnés ellenőrzéseit, a `polyline` / `polygon` rajz geometriáját, illetve megoldja a path-only glyph helyezését a `<use href="#...">` referenciák alapján, így azok a címkek, amelyek újrahasználható glyph útokká konvertálódnak, továbbra is lehetnek nem teljesíti a bounded-canvas ellenőrzést, ha a helyezett glyph geometriája elmenekül a `viewBox`-tól. Kétszörű helyezett `tspan` címkek egy `<text>` parent alatt összevetése külön címke boxokként történik, ami elkapja a LaTeX-stílusú SVG kimenetet, amely otherwise egyes címkeket egyetlen szöveg node-ba csökkentné. A helyezett SVG `text` és `tspan` boxok megfelelnek a `text-anchor` értékekre `start`, `middle` és `end`, így a központosított és jobbra szabályozott címkek lehetővé teszik a szöveg/szöveg és címke-rajz összeülnés diagnostikáját, anélkül hogy browser-grade szöveg layoutot igényeljenek. A definíciókban lévő glyph útok a `<defs>` belül nem számítanak látható rajz elemeknek, de azok saját definíció-körüli `transform` attribútumai alkalmazódnak előtt a `<use>` helyezés előtt, így a skálált vagy mirrókolt glyph definíciók nem kerülnek elszámolásba. A címke-rajz összeülnés ellenőrzése használ egy kis drawing-box toleranciát és a jelölt `stroke-width`-t, így a finom vezetékek, a mély vezetékek és a poligonális komponensek határai is lehetnek címke-légibilitás hibákaként, ha azok látható stroke-ja éri egy címket. A path-only glyph címkek, amelyek `<use href="#...">` alapján megoldódnak, is összevetődnek a drawing boxokkal, és nem sikerülnek, mert `render-svg-path-glyph-overlap`, ha az újrahasználható glyph geometriája összeülni a vezetékekkel vagy komponensekkel. Ha egy renderer konvertálja a címkeket újrahasználható path glyphekké, helyett hogy kereshető `<text>`-ként legyenek, és nem megőrizi a hozzáférhetőség adatokat, a ellenőrzés bejegyezi a `pathOnlyGlyphUseCount`-t, és nem sikerül a kérésre szóló szöveg token, az `render-svg-text-path-only` keresztül, helyett hogy azt ígérelje, mintha a címke egyszerűen nincs. Az other hibák jelentkezik az `render-svg-invalid`, `render-svg-dimension-missing`, `render-svg-no-visible-elements`, `render-svg-text-missing`, `render-svg-out-of-bounds`, `render-svg-text-overlap`, `render-svg-label-overlap` vagy `render-svg-path-glyph-overlap` keresztül. A szöveg-token és összeülnés ellenőrzések csak struktúrálló ellenőrzéseknek kellene tekinteni őket azok a rendererek esetén, amelyek a címkeket kereshető SVG szöveg vagy hozzáférhetőség adatokké megőrizik; a path-only SVG kimeneteknek továbbra is szüksége van a későbbi screenshot/OCR ellenőrzésre, hogy bizonyítja a vizuális címke légibilitását, és ez a ellenőrzés továbbra is nem igényeli teljes SVG út-követését. + +A elrejtett SVG csoportok és elemek egyértelműen elhagyódnak a látható elemek számítása és a geometriai gyűjtés során. Az attribútumok vagy inline-style `display:none`, `visibility:hidden`, `visibility:collapse` és az összes `opacity:0` nem lehetővé teszi, hogy egy másen üres render fájl el tudja teljesíteni a látható kimenet ellenőrzést. + +A path-only glyph definíciók lehetnek közvetlen útként vagy csoportos/symbol konténerekként a `<defs>` belül. A ellenőrzés megoldja a gyermek út geometriáját a `<g id="...">` és `<symbol id="...">` alapján, mielőtt a `<use>` helyezése történjen, így a wrapped glyph kimenet továbbra is fedezi az `pathOnlyGlyphUseCount`, bounded-canvas ellenőrzéseket és a `render-svg-path-glyph-overlap`-t. + +A út parser azonban követi a subpath kezdéseket és reseteli a current point-et a `Z/z`-on, így a zárott subpath után lévő relatív parancsok továbbra is kezdődnek a helyes SVG ponttól, helyett hogy hibás `render-svg-out-of-bounds` diagnostikákat létrehozzanak. + +A sama geometriai folyamat követi a SVG számrendszert az előszörű pontos számok és kifejezett pluszjelek esetében, így a kompaktes dvisvgm koordináták, például `.5`, `-.5` vagy `+.5`, határok elleni ellenőrzések során maradnak százalékként, helyett hogy géomériai hibák legyenek vagy elhagyva maradjanak. + +Ha a renderelő kiadja a `.png`-t, az ugyanaz a várt működési eredmény útváza első képernyőképnek válik: a Notemd dekódolja a nemi-interlaced 1/2/4/8-bit indexelt színű PNG fájlokat, a 1/2/4/8/16-bit szürke-tonságú PNG fájlokat, valamint a 8/16-bit szürke-tonságú-alpha/RGB/RGBA PNG fájlokat. Indexelt színű és sub-byte szürke-tonságú képek támogatják a pakolt próbákat; indexelt színű képek továbbá támogatják a PLTE-t és valamint opcionális tRNS adatokat; szürke-tonságú/RGB képek támogatják a tRNS transzparent próbákat. A 16-bit közvetlen próbák normalizálódnak azonos 8-bit RGBA összevetési területbe, amit használják a „smoke check”-ek. A „smoke check” ellenőrizi a pozitív dimenziókat, rögzíti a háttér határait az `foregroundBounds`-ként, rögzíti az általános sűrűséget ebben a körben az `foregroundDensity`-ként; ha minden látható pixel megfelel a felső-belső háttér színének, hibává válik az `render-png-blank`-vel, ha a háttér tartalma érinti a kép határait, hibává válik az `render-png-content-clipped`-vel, ha egy nagy képernyőképben kevesebb, mint négy háttér pixel van, és hibává válik az `render-png-foreground-dense`-vel, ha a háttér pixelek anélkül, hogy platformspecifikus függőségek legyenek, kiválóan sűrűek egy nem egyszerű határközben. Nem támogatott PNG formátumok esetén hibává válik az `render-png-unsupported`-vel, és adnak létre formátumból függő tanácsok Adam7 interlaced PNG-knél vagy nem támogatott indexelt színű bitméreteknél. Ez felismeri a tömeges képernyőképeket, az évidens canvas kivágásokat, alacsonyabb minőségű háttér elemeket, első pixel-szintű sűrűségi hibákat, valamint hibás renderelő PNG export beállításokat, anélkül, hogy platformspecifikus shell függőségeket hozna létre. Ez még nem OCR-szintű jel felismerés, precíz szöveg összeütközés detekció, vagy topológiát megőrző kép reparáció. + +Ha a diagnostika jelzi, hogy a kompilálás vagy a render-smoke futás nem sikerült, az CLI is lehetőséges, hogy írjon egy topológiátőrőző reparációs leírást: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +A reparációs leírás használja a szkémát `notemd.circuitikz.repair-brief.v1` és tartalmazza a forrást `CircuitSpec`, a topológiai aláírást, a kompilálási/rendelkezésre bocsátási diagnostikákat, engedélyezett módosításokat, tiltott topológiai módosításokat, a következő ellenőrzési lépéseket, valamint egy struktúrált `repairPrompt`. A parancs szerepe `topology-preserving-circuitikz-repair`; annak `diagnosticFocus` lista a kompilálási/rendelkezésre bocsátási diagnostikák alapján készül, és annak `acceptanceCriteria` esetén szükséges a kandidátum ellenőrzése, illetve új kompilálás és rendelkezésre bocsátási ellenőrzések. Ez az alapanyag későbbi reparációs folyamatokhoz szolgál, nem azt jelenti, hogy Notemd már autonóman viszonylagos reparációt végez. + +Amikor készül egy reparációs ajánlat, az ugyanazik a CLI lehetővé teszi, hogy előtt a részletes leírással összevetését végezze, majd írja ki a eredményt: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief` ellenőrizzi a részletes leírásból származó kandidát topológiájának jellegzését, és ez összetett helyzetben van `--topology-reference`-vel. Ezen ellenőrzést támogatni csak a topológiával kapcsolatos változatok megőrzését bizonyítja; a kandidátnak továbbra is kompilációs diagnostikák és render-smoke ellenőrzések szüksége van. + +A `--repair-brief` eredményben vannak is a `repairAcceptance` bizonyítékok a `notemd.circuitikz.repair-acceptance.v1` szkémával. Ez jelenteti be a `topology-signature`, `compile-diagnostics` és `render-smoke` zárókat az `passed`, `failed` vagy `missing` formájában; nyílt meg a `remainingChecks`; és az `readyForVisualAcceptance` állapot továbbra is hamis marad, amíg a kandidát futás nem tartalmazza minden szükséges bizonyítékot. + +Használj `--repair-acceptance-output`-t az `--repair-brief`-vel, ha a CI vagy kiadási bizonyítékoknak szüksége van egy hosszú távú JSON fájlra: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +Kiadási vagy karbantartói bizonyítékokhoz menj el minden támogatott „golden family”-t az aggregate fixture runner által: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +A futó használja `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json` és `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json`-t, elköveti azonos shell-nélküli exportáló útot minden fixture számára, és visszatér egy összefoglaló JSON jelentéssel, amelyben található a megfelelő `compileExecution` és `compileDiagnostics` adatok az egyes fixtureeknek. Ez továbbra is egy üzemeltető parancs, nem egy plugin futási idő alatti függőség. + +Ha egy karbantartó gépen még nincs konfigurált renderelő, futtasson az összegező parancsot `--compile-executable` nélkül és tárolja el kifejezetten a környezeti őrzetet: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +Ez a út továbbra is ír le a deterministikus fixture `.tex` artefaktusait, de visszalapozza `ok: false`-t, ahol `rendererAvailability.status` `missing-configuration`-re állítva van, és létrehoz egy `compile-executable-invalid` diagnostikai információt. Kezelje ezt csak a renderelő elérhetőségének bizonyítékaként; ez nem jelent a kompilálást, a render-smoke tesztet vagy a vizuális elfogadást. + +### Golden Reference Prompt Forma + +Közelben történő használathoz jelentkezés előtt adjon meg egy megjeleníthető, általános referenciát a szkemával kapcsolatban. A korlátozott kérelemben kell megőrizni a bekezdést, koordinátumméretmérnöket, kerékstílust és az útvonalozási szabályokat: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +Egy CMOS invertér esetében a kérésnek egy konkrét topológiát és tervezési korlátozásokat kell kérni, nem csak „írj le egy CMOS invertért”. + +- Tartsd meg a `VDD` felső részben, a `GND` alul, az beolvasást bal oldalon, az kijelzést pedig jobb oldalon; +- Használj `pmos`-t a fenti `nmos` mellett, összefüggő kapuok és összefüggő lebegékekkel; +- Tartd az átfüggetlen pontot a lebegékek összekötésén, és jelöld azt `*-o`-vel; +- Használj nevű ankerpunkteket (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) helyett viszualisan általánosított koordinátákat; +- Képezd el ellenőrizni a diagonal vagy keresztülmenetes vezetékeket, csak ha elektrikailag szükségesek vannak. + +### Jelenlegi előrépülés és következő fázisok + +| Tér | Jelenlegi állapot | Többéjelzés | +|------|----------------|-----------| +| Általános diagramok | Spec-first pipeline implementálva Mermaid, JSON Canvas, Vega-Lite, HTML számára | Folytatjuk a semantikus ellenőrzés körét bővítését | +| Módosítható képek | `editable-html-svg`, Draw.io XML, és Drawnix JSON artefaktus határai implementálva | Hozz létre több információt tartalmazó primitívumokat csak azután, ha a tesztek bizonyítják a módosíthatóságát | +| CLI támogatása | `npm run diagram:export-artifact` exportálja módosítható HTML/SVG, Draw.io, és Drawnix-t egy `DiagramSpec`-ból | Új célok elérkezésekor célként specifikus tárgyfüggő tárgyak hozzáadása | +| circuitikz | `CircuitSpec -> circuitikz` prototípus exportálja közös forrásokat, CMOS invertert, `cmos-buffer` / `cmos-buffer-v1`, `cmos-transmission-gate` / `cmos-transmission-gate-v1`, `cmos-nand2` / `cmos-nand2-v1`, és `cmos-nor2` / `cmos-nor2-v1` aranyos szabályokat, projekteteket `layoutHints.inputSide` és `layoutHints.outputSide` determinisztikus be-/kimeneti port helyezésére, anélkül hogy a topológiá változna, elutasítja a topológiai hibák módosítását `--topology-reference` keresztül, kiadja a topológiát megőrző működési leírásokat `--repair-brief-output` és szkémákkal `notemd.circuitikz.repair-brief.v1`, tartalmaz struktúrált `repairPrompt` átadási tartalmat `diagnosticFocus`, `acceptanceCriteria`, és szerepkeléssel `topology-preserving-circuitikz-repair`, ellenőrizi a működési kandidátumokat `--repair-brief` keresztül, adja vissza `repairAcceptance` kapu bizonyítékait a szkémákkal `notemd.circuitikz.repair-acceptance.v1`, valamint `readyForVisualAcceptance` és `remainingChecks` keresztül, tárolja ezt a bizonyítékot `--repair-acceptance-output` keresztül, elemzéli a kompilálási logokat, lehetőség van futtatni kifejezetten helyi renderereket plusz `--expected-artifact`, SVG `--expected-svg-text`, hozzáférhetőség metaadat ellenőrzéseit `aria-label`, `<title>`, és `<desc>` keresztül, elrejtett/transparent SVG elemek kizárása, `render-svg-text-path-only` / `pathOnlyGlyphUseCount` osztályozás csak út-orientált jelzőknek, út-orientált glifák helyezés ellenőrzései `<use href="#...">` keresztül, út-orientált glifák összeütközés diagnostikája `render-svg-path-glyph-overlap` keresztül, záró út current-point kezelése `Z/z` keresztül, pontos kör határai A/a kör extremumainak érdekében, pontos Bezier kurva határai C/S/Q/T kurva extremumainak érdekében, stroke-width-re szabott SVG határok és jelzők összeütközés ellenőrzései, `polyline` / `polygon` rajz geometriája ellenőrzései, pozicionált `tspan` jelző geometriája, `text-anchor`-re szabott pozicionált szöveg geometriája, transform-re szabott geometria SVG korlátozott canvas/szöveg összeütközés és jelző-kép összeütközés érdekében `render-svg-label-overlap` keresztül, valamint PNG nemtüntető / kizáró / sűrű előnyölt képek ellenőrzései, beleértve indexelt színpaletta alfa-tartalmát, szürke/RGB tRNS transparent példákat, és formátumspecifikus `render-png-unsupported` irányításokat Adam7 interlaced PNG-knek és indexelt bit-dereség hibáinak érdekében, `foregroundBounds`, `foregroundDensity`, `render-png-content-clipped`, és `render-png-foreground-dense` keresztül, anélkül hogy shell elemzés legyen, tartalmaz összefoglaló karbantartó tárgyfüggő tárgyakat `npm run diagram:smoke-circuitikz` keresztül, rögzíti hiányzó renderer konfigurációt `rendererAvailability.status: "missing-configuration"` és `compile-executable-invalid` keresztül, és rendelkezik általános előnézet diagnostikájával, diagnostikai összefoglaló számokkal, diagnostikára alapuló történelmi bejegyzésekkel, és forrás-orientált fallback-kal `RenderArtifact.diagnostics` és a előnézet modálján keresztül | Út-orientált visuális szövegnek OCR-szintű jelzőkigenlét eléréséhez, precíz pixel-szintű összeütközés ellenőrzésekre, szükség esetén szélesbb SVG út lefedésre, automatikus renderer telepítése/keresése csak akkor, ha lehetőségként maradhat, és automatikus topológiát megőrző működési elvégzés | +| TikZJax integráció | Obsidian oldalának megjelenítéséhez kandidát render host | Tartsonk ezt lehetőségként; ne tegyük TikZJax szigorú plugin futászási függőséggé | + +## Konfiguráció + +| Beállítás | Alapértelmezett | Hatás | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | Specifikáció-első és régiódi Mermaid között váltás | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = Mermaid csak; `'best-fit'` = natív célok + fallbackok | +| `preferredDiagramIntent` | `undefined` (auto) | Automatikus célis azonosítás leírásának összeírása | +| `summarizeToMermaidLanguage` | `'en'` | Diagram jelzői számára cél nyelv | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | Munka alapján LLM diagram készítéséhez | +| `autoMermaidFixAfterGenerate` | (konstantákból) | Autómódos régiódi működési elvégzés Mermaid kiindulókön | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | Forrásot helyi vault tudásával bővítés | + +### Helyi tudás bővítése + +Ha aktiválva van, Notemd keresi el a releváns kontextus részleteket a vault helyi tudásbázisából (MiniSearch alapú) és beilleszi őket a forrás markdown-jához. A bővítési leírásban írva: "Kizárólag támogatási referenciák; a primáris struktúra legyen az eredeti feliratnak megfelelően." + +### Összeütközlési módkok + +- **`legacy-mermaid`**: Minden cél az Mermaid-ba irányul. A nem-Mermaid célok (canvasMap, dataChart) kötelezően az `flowchart`-ba vagy `mindmap`-ba kerülnek. Nincs lehetséges visszavonási sorozat. +- **`best-fit`**: Minden cél az összefüggő helyi céjába irányul. Ha a primáris cél nem működik, követi a visszavonási sorozatot (pl. Vega-Lite → Mermaid → HTML). + +## Előnézet & exportálás + +| Ellenőrzés | Métód | +|--------|--------| +| SVG exportálás | `mermaid.render()` / `vega.View.toSVG()` / SVG építő a Canvas számára | +| PNG exportálás | SVG → Image → Canvas (eszköz pixel arány 1x-3x) → PNG ArrayBuffer | +| Forrás mentése | A gyümölcs összetevői mentésre kerülnek a célspecifikus kiterjesztéssel | +| Kizárólag forrás előnézet | A nem-inline gyümölcsök a forrás tartalmával együtt kódként és diagnostikákkel jelennek meg, nincs iframe renderelése | +| Semantikus ellenőrzés | Mermaid, JSON Canvas, Vega-Lite, és módosítható HTML/SVG-t `scripts/diagram-semantic-verification.js` ellenőriz | + +**Caching**: RenderCache használja `{spec, target, theme}` determiniszmusos JSON kulcsát. Az útban történő duplikácsok elszűrése megakadályozza a duplán készített képeket. + +## Tippek + +- **Kezdjük `best-fit` módban** – ez adja a legjobb vizuális eredményt minden céltípusnál +- **Használj erős modellt komplex diagramákhoz** – folyamatszámlák és ER-szémaik előnyben élnek GPT-4o vagy Claude használatával +- **Engedélyezz helyi tudást domain-specifikus szémákhoz** – releváns vault kontextusa növeli a pontoságot +- **Írj be `autoMermaidFixAfterGenerate`** – bezületlenül Mermaid sintaxis hibái gyakran jelentek meg +- **A régiósi fixer komplex** – ha Mermaid előnyelépés nem működik, a fixer parancs manuális futtatása gyakran megoldja a problémát + +--- + +## További lépések + +- 🔗 [Wiki-Links](./wiki-links) – Hogyan kapcsolódnak össze a konceptek inline-ban +- 📝 [Concept Notes](./concept-notes) – Kiválaszd ki a koncepteket a széma forrásanyagához +- 🔍 [Research](./research) – Bővítsd az szémákat web-forrásokból származó adatokkal diff --git a/website/i18n/hu/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/hu/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..129bf570 --- /dev/null +++ b/website/i18n/hu/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "Tudományos kutatás és web keresés" +description: "A web keresést a jegyeidbe integrálj" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Tudományos kutatás és web keresés + +<TLDR> +**Notemd kérdezéseket a weben küld és LLM-összefoglalott eredményeket közvetlenül a jegyeidbe beír.** Tavily API az elsődleges keresési alapközpont; DuckDuckGo egy nulkonfigurációs lehetséges választék. A eredmények forrásokkal együtt összefoglalódnak és egy `## Research` címke alatt kerülnek hozzá. Támogatja a egyetlen jegyben történő kutatást, batch módú mappákban történő kutatást, valamint a összefoglalási lépéshez szóló munkavégzési modellek választását. + +Ez része a [Obsidian AI tudományos kezelési útmutatójának](/docs/pillar-ai-knowledge). +</TLDR> + +## Áttekintés + +A tudományos kutatás az Notemd legerősebb integrációinak egyébé: az összekapcsolja a olvasást, a keresést és az írásot. Neked nem kell más böngészőbe válni, hogy egy ismeretlen termét keresd – eljelöld azt és hagyd, hogy Notemd keresse, összefoglalja és a találatokat hozzáírja – mind az összeállításodban. + +A folyamat teljesen konfigurálható. Te válaszolod ki a keresési szolgáltatót, az LLM-t, amely az összefoglalást írja le, és azt is, hogy a eredmények kerülnek hozzá az aktív jegyhez vagy külön fájlokba íródnak. A batch módban egy kattintással lehet mappában lévő minden jegyet kutatni. + +## Hogyan működik + +### Keresés-után-összefoglalás folyamatára + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **Kérések kiemelése** – Notemd kiemeli a keresési kifejezéseket a választott elemekből vagy a jegy címéből. +2. **Web keresés** – először próbálja meg Tavily. Ha nincs konfigurált API kulcs, automatikusan használja ki DuckDuckGo-t (kulcs nem szükséges). +3. **LLM összefoglalása** – A gyors keresési eredmények küldődnek a konfigurált LLM-ba, amely egy összefoglaló formátumú részletet készít ki, beleértve az inline forrásokat. +4. **Hozzáírás** – A formázott összefoglalás kerül hozzá egy `## Research` címke alatt az aktív jegyhez. + +### Tavily vs. DuckDuckGo + +| Aspektus | Tavily | DuckDuckGo | +|--------|--------|------------| +| API kulcs | Előnyeléges (ingyenes szint is létezik) | Nem elvárható | +| Eredmény minősége | Magasabb (kifejezetten AI-hez készült) | Elég a számos kérdés esetén | +| Háromlás korlátok | Nagyszerű ingyenes szint | Korlátozások vonatkoznak | +| Konfiguráció | `tavilyApiKey` beállításokban | Nulles beállítás – automatikus visszaállás | + +### Halmazmappák kutatása + +Kattints a mappára és válasszd **"Notemd: Kutatási mappa"**. A mappában lévő minden `.md` fájl sorrendben (vagy konfigurált egyidejűségig paralelně) feldolgozódik. Minden jegynek kapcsolódik hozzá saját kutatási összefoglalata. + +## Konfiguráció + +| Beállítás | Alapértelmezett | Hatás | +|---------|---------|--------| +| `tavilyApiKey` | `''` | Tavily API kulcs. Ha üres, kizárólag DuckDuckGo használódik. | +| `researchProvider` / `researchModel` | DeepSeek | Munkaalkalmazásos LLM a keresési eredmények összefoglalásához | +| `maxResearchContentTokens` | `4000` | Token-összege az LLM-ba küldett tartalomhoz. A túlterhelés keveredik le. | +| `researchAppendToNote` | `true` | Összefoglalást adjuk hozzá a forrásjegyhez. Ha false, készül el külön fájl. | +| `researchLanguage` | `'en'` | Összefoglalt kutatásnak használt kiinduló nyelv | + +### Munkaalkalmazásos modellelési ajánlat + +A kutatás előnyeinek eléréséhez szükség van olyan modellre, amely kezelheti a több nyelvű tartalmat és készíthet ki jó struktúrájú beszédből álló részleteket. Figyelembe vételével: + +- **DeepSeek** -- alapértelmezett, olcsó, magas minőségű +- **GPT-4o** -- magasabb minőségű összefoglalások, magasabb ár +- **Gemini Flash** -- gyors és olcsó, jó választás egyszerű kérésekre + +## példa + +Egy tanulmányt olvasol, amely *transformer attention mechanisms* témáját 다룹니다, és egy ismeretlen termést találsz: *relative positional encoding*. Obsidian helyett nem hagyj meg a helyet: + +1. **"relative positional encoding"**-ot jelöld ki +2. Kattints jobb gombbal --> **"Notemd: Kutatás és összefoglalás"** +3. Notemd weben keres, a legjobb eredményeket összefoglalja, és hozzáadja: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +A összefoglalás most része a te tárgyaidadnak, kereshető, kötethető össze és offline is elérhető. + +## Tippek + +- **Legjobb eredményekhez állítj be egy Tavily kulcsot** -- még az ingyenes szint is jobb relevanciát nyújt, mint a szabad DuckDuckGo. +- **Használj egy hatékony összefoglalási modellt** -- olcsó modellek lehetővé teszik, hogy a finomhangos technikai tartalmak elmosolódjanak. +- **Bárkiutatás** tenni kell az első olvasás után, hogy egyaránt több feljegyzésben lévő hiányokat teljesíthessük. +- **Ellenőrizd a hozzáadott összefoglalásokat** -- LLM-ek lehet, hogy kitalálják a forrásinformációkat. ellenőrizd a fontos állításokat. + +--- + +## További lépések + +- [Concept Notes](./concept-notes) -- A kutatási eredményekből a kulcsfontosságú termékeket kivonj és tárolj +- [Wiki-Links](./wiki-links) -- A kutatásból származó koncepteket összekötj a te tárgyaidadban +- [Translation](./translation) -- A kutatási összefoglalásokat más nyelvre fordítsd +- [LLM Társadalmi szolgáltatók](/docs/providers/overview) -- Konfigurálja a összefoglaláshoz használt modellt diff --git a/website/i18n/hu/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/hu/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..8bcee6ac --- /dev/null +++ b/website/i18n/hu/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "Übersetzung" +description: "A jegyeket és választott részeket fordítja le" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# Übersetzung + +<TLDR> +**Notemd a tekstet 21+ nyelv között LLM-al működő fordítási technológiával fordít.** Támogatja a egyes részek fordítását, a teljes jegy fordítását és a batch mappák fordítását. Minden fordítási munkahoz lehet a munkahoz szóló beállítások segítségével speciális fornalmat és modellt használni. A kijelölt nyelv különlegesen beállítható a UI nyelvtől. A eredmények az igényre attól függően hozzáadódnak vagy új fájlba íródnak. + +Ez része a [Obsidian AI tudományos kezelési útmutatójának](/docs/pillar-ai-knowledge). +</TLDR> + +## Áttekintés + +A Notemd-ban történő fordítás nem egy szótárkeresés – ez LLM-al működő, kontextusértékelési fordítás. A modell látja a teljes paragrafot vagy jegyet, így megőrzi a hangulatot, a területi terminológiait és a szavak sorrendjét. Ez lehetővé teszi magasabb minőségű eredményeket, mint a szóképernyőkénti szolgáltatásoknál, különösen technikai, akadémiai és kreatív írásoknál. + +A funkció három területet támogat: választott rész, aktív jegy és teljes mappá. A munkahoz szóló modellválasztásval együtt használható egy gyors modell (Gemini Flash) az egyszerű fordításokhoz, és egy erős modell (Claude Sonnet) a finomhangulatú tartalmakhoz – azonban nincs szükség változtatni a globális fornalmat. + +## Hogyan működik + +### A Fordítási parancs + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **Forrás megtalálása** – A LLM az anyag alapján általában megállapítja a forrásnyelvet. Nincs szükség manuálisan megadni azt. +2. **Leírás kialakítása** – A Notemd kialakít egy leírást, amelybe beleért a célnyelvet, valamint opcionális területi információt és a fordítandó tartalmat. +3. **LLM fordítás** – A beállított `translateProvider` / `translateModel` feldolgozza a kérést. A modell megőrzi a markdown formátumot, a wiki-hivatkozásokat és a kódblokkokat. +4. **Kijelentés** – A fordított tekst az eredeti tartalom alá hozzáadódnak vagy új fájlba íródnak a tárolóba. + +### Nyelvparcelek + +A Notemd támogat bármely olyan nyelvparcst, amit a belső LLM támogat. Gyakori parcelek közé tartoznak: + +| Forrásnyelv | Célpont | Tipikus minőség | +|--------|--------|----------------| +| Angol | Kínai (simplifikált) | Kiváló | +| kínai | angol | kiváló | +| angol | japánzi | teljesen jó | +| angol | német / francia / spanyol | teljesen jó | +| bármely támogatott nyelv | bármely támogatott nyelv | modelltől függően | + +A `translateLanguage` beállítás kontrollálja a **kijelölt nyelvet**. A forrásnyelv automatikusan azonosítódik. + +### Munkaalapú modell választása + +A fordítási minőség erősen függ a modelltől. A Notemd lehetővé teszi, hogy speciális modellt csak a fordításra használhasson az ember. + +| Modell | Hajtássebesség | Minőség | Ár | Legjobb használati esetek | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | Sok sebességű | Jó | Kisebb | Kézi, nagy mennyiségű munka | +| `gpt-4o-mini` | Sok sebességű | Jó | Kisebb | Rákérdezések gyors megválaszolása | +| `deepseek-chat` | Közepes | Jó | Kivéleg alacsony | Összefoglaló több nyelvű verzió | +| `claude-3-5-sonnet` | Közepes | Kiváló | Közepes | Technikai / akadémiai | +| `gpt-4o` | Közepes | Kiváló | Közepes | Nüanszokra érzékes írásstílus | + +### Halmazmappák übersetése + +A mappára jobb kattintson és válassza ki **"Notemd: Mappát übersetni"**, hogy überszóljön minden jegyet abban a mappában. Minden fájl függetlenül kezelődik. A konvergenci beállítás határozza meg, hány fájl überszolódik egyaránt. + +## Konfiguráció + +| Beállítás | Alapértelmezett | Hatás | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | Übersetési munkákokhoz kifejezetten tervezett szolgáltató | +| `translateLanguage` | `'en'` | Célképző nyelv | +| `translationAppendToNote` | `true` | A überszolt szöveget a létrehozott szöveg alá adjon. Ha false, új fájl keletkezik. | +| `batchConcurrency` | `3` | Halmazübersetés során egyaránt kezelődő fájlok száma | + +## példa + +Kínai nyelvű kutatási jegyet olvas, és angol változatot szeretnél kapni: + +1. Jegyet nyitson +2. Jobb kattintás --> **"Notemd: Jelenlegi fájlt übersetni"** +3. Notemd azonosítja a kínai nyelvet, überszólja a beállított célnyelvbe (angolba), és adjon hozzá: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +A valódi kínai szöveg a überszölés felett megmarad. A `## Translation` címzés mindkét verziót egyben tartja a fájlban, hogy könnyen lehetne hivatkozni rá. + +## Tippek + +- **Használja a Gemini Flash-t nagy mennyiségű übersetéshez** -- ez a leggyorsabb és legolcsóbb opció nagy mappák halmazübersetéséhez. +- **A wikilinkek megőrzése** -- Notemd kérelése szerint a LLMnek kell `[[wiki-links]]`-t a fordítás során teljesen megőriznie. Fordítás után ellenőrizze, mert néhány modelle esetleg elszabadítja őket. +- **A kiinduló nyelv beállítása** -- az automatikus azonosítás működik a forrásnyelven, de mindig kell konfigurálni a `translateLanguage`-t, hogy nincs összetevés a célnyelvben. +- **A koncepcióleírások batch-fordítása** -- ha a koncepciómappa egy nyelven van, de más nyelven kellene lennie, a mappaszintű fordítás ezt egy lépésben kezelheti. + +--- + +## További lépések + +- [Research](./research) -- Bármilyen nyelven keresés és összefoglalás, majd a eredmények fordítása +- [Workflows](./workflows) -- Wikilinkelés vagy koncepciók kiemelésevel szereplő fordítási sorozatok +- [Batch Processing](/docs/advanced/batch-processing) -- Mappafolyamatokhoz vonatkozó egybenműködés és felelősségi elhatározások +- [LLM Providers](/docs/providers/overview) -- Válassza ki a legjobb modellet a nyelvpárja számára diff --git a/website/i18n/hu/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/hu/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..7054ad0c --- /dev/null +++ b/website/i18n/hu/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "Wiki-Linkek" +description: "Kluczfontosságú konceptekhez automatikus Wiki-Link készítése" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# Wiki-Linkek + +<TLDR> +**Notemd automatikusan hozzáadja `[[wiki-links]]` a feljegyzésekétekben lévő kluczfontosságú konceptekhez.** A LLM olvasja a tartalmat, azonosítja a kontextusban lévő fontos kifejezéseket, és minden esetben beilleszi Obsidian-stílusú Wiki-Linkeket. Választhatóan készít meg konceptfeljegyzéseket távolhívásokkal. Támogatja a szinonimák leképezését, a nevetsítés/hozzáadáskor a linkek integritását, valamint a teljesen kivonási módot (nem történik fájl módosítása). A Auto Linktől eltérően, amely csak meglévő feljegyzés címeket használ, Notemd az AI-t használ a új konceptek azonosítására és a megfelelő feljegyzések készítésére. Ez része a [Obsidian AI tudományos kezelési útmutatójának](/docs/pillar-ai-knowledge). +</TLDR> + +## Áttekintés + +Wiki-Linkek hozzáadása az Notemd alapvető funkciója. Egy általános szöveget egy összekött kapcsolatokból álló tudományos grafikonként változtatja meg az alábbi módon: + +1. **Az LLM segítségével az feljegyzést analizálja** +2. **Kluczfontosságú koncepteket azonosítja** (kifejezések, személyek, metodák, teoríák) +3. **Minden esetben hozzáadja `[[wiki-links]]`** +4. **Választhatóan készít meg konceptfeljegyzéseket** távolhívásokkal + +## Hogyan működik + +### Folyamat + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### példa + +**Előtt:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**Után:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## Használat + +### Alap: Hozzáadás linkeket a jelenlegi feljegyzéshez + +1. Nyitja meg egy feljegyzést +2. Kattintson kézzel a szerkesztőben → **"Folyamatítja a fájlt (hozzáadja linkeket)"** +3. Várjon néhány másodpercet +4. A konceptek most már összeköttek! + +### Bárcs: Kezelj több figyelmet + +1. Kattints jobb kattintással egy mappára a fájlkeresőben +2. Válassza ki **"Notemd: Process folder (add links)"**-t +3. Konfigurálás: + - Konkurenccs (mennyi fájl paralellegben) + - Átírja a meglévő hivatkozásokat (igen/nem) +4. Kattints **Kezelés**-re + +### Selektív: Hivatkozz specifikus szökekre + +1. Hajtas ki a kezelendő szöveget +2. Kattints jobb kattintással → **"Kezelje a választott részt (hivatkozások hozzáadása)"** +3. Csak a felhajtott rész kerül analízishez + +## Notemd vs Auto Link + +Obsidian két módot biztosít az automatikus wiki-hivatkozásokhoz: + +| | **Auto Link** | **Notemd** | +|--|---------------|-------------| +| Hivatkozás forrása | A tárolóban lévő meglévő figyelmetek címek | A LLM által az anyagban azonosított konceptek | +| Új konceptekkel kötés lehet létrehozni | Nem – a cím már létezni kell | Igen – a AI azonosítja a koncepteket és készít meg a figyelemeket | +| Synonym handling | Nem | Igen – a synonym suppression funkció használata | +| Konceptfigyelemek készítése | Nem | Igen – visszalinkekkel és duplikátok elszűrésével | +| Halmagkezelés | Nem (egy fájl), | Igen (mappatasemén) | +| Munkaalkalmazásokhoz szóló modellek irányítása | Nem | Igen | + +**Auto Link** címekkel összeillik: ha „Machine Learning” nevű egy figyelem létezik, az `[[Machine Learning]]`-ba összefogja a megjelenéseket. Ha a figyelem nincs, semmi nem történik. + +**Notemd** az AI vezeti: a LLM olvasja a tartalmadat, megérti a kontextust, azonosítja a koncepteket, amelyeknek *kötésük* kell lennie – még ha még nincs ilyen figyelem is – és készít meg az összefüggést és a konceptfigyelemet. + +## Funkciók + +### Synonym Suppression + +**Probléma:** „transformer“, „transformers“, „Transformer architecture” → 3 különböző koncept + +**Löszer:** Notemd az egymáshoz hasonló elemeket azonosítja és a kanonikus formát használja. + +**Konfiguráció:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### Link integritása + +**Amikor nevezészi át egy konceptnote-t:** +- Az összes wiki-hivatkozás automatikusan frissül (Obsidian alapfunkció) +- A visszahivatkozások megmaradnak + +**Amikor törljük egy konceptnote-t:** +- A hivatkozások maradnak, de „nem kapcsolódó menetekként” jelennek meg +- Bármilyen helyről lehet újra létrehozni + +### Tisztas kihasználási módszer + +**Kihagyja a koncepteket, anélkül hogy módosítaná az eredeti fájlt:** + +1. Jobb kattintás → **„Kihagyja a koncepteket (nem kapcsolódóként)”** +2. A konceptnote-k létrejönnek +3. Az eredeti fájl megmarad + +Használati eset: Olvasói jogú tartalom vagy végleges verziók kezelése. + +## Konceptnote kialakítása + +### Automatikus kialakítás + +**Ha aktiválva van (alapértelmezett), Notemd készít ki:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### Konfiguráció + +**Kimenet mappája:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Hierarchikus struktúra:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**Szabvány:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## Előre tervezett opciók + +### Kontextus ablaka + +**Mennyi környezeti szöveget küldni:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +Nagyobb érték = jobb pontosítás, magasabb költség. + +### Minimum jelentésesség száma + +**Csak azokat a koncepteket kötjük össze, amelyek többször jelennek meg:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +2 vagy 3-re állítva lehet fókuszolni a gyakori tématákra. + +### Kizárási módulok + +**Elhagyjuk bizonyos szavakat:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +Ez megakadályozza a generikus kifejezések túlzott kötését. + +### Szerkeszthető kérdések + +**Átírjuk az alapértelmezett LLM instrukciókat:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +Módosítsuk a doménai specifikus igényekhez (pl. "Fókuszoljunk a médicai terminológiara"). + +## Tippek és a legjobb praktikák + +### ✅ CSELEKEDJ + +- **Kezelj az értékeléseket 100 szóval több** — Rövid értékelések kevés konceptet adnak létre +- **Használj erős modellt** a jobb konceptidentifikációhoz (GPT-4o, Claude) +- **Ellenőrizd előtt fogadod** — ellenőrizd, hogy a javasolt hivatkozások logikusak legyenek +- **Alakítsd iteratívul** — kezelj 5-10 értékelést, ellenőrizd a grafikonot, módosítsd a beállításokat + +### ❌ NE CSELEKEDJ + +- **Túl sok hivatkozást adj** — nem minden névnek hivatkozás van szüksége +- **Kezelj újra az előszörírást** — a konceptek változhatnak, várj, amíg stabilak lesznek +- **Ignorálj a szinonimákat** — aktiváld a leképezést, hogy elkerüljed a "ML" és a "Machine Learning" különbségét + +## Teljesítmény + +### Hajtássebesség + +| Értékelés mérete | GPT-4o-mini | Claude Sonnet | Ollama (lokal) | +|-----------|-------------|---------------|----------------| +| 500 szó | 2-3 másodpercek | 3-5 másodpercek | 5-10 másodpercek | +| 2000 szó | 5-8 másodpercek | 10-15 másodpercek | 20-40 másodpercek | +| 5000+ szó | Kisebb blokkokban (másik kérések) | Részletes | Részletes | + +### Árértékelés + +**Példa: 1000 szóból álló jegyzet a GPT-4o-minivel** +- Bevétel: ~1500 token +- Kimenet: ~200 token +- Ár: ~ + +**100 jegyzet összekeverésének feldolgozása:** körülbelül $0.10 + +## Hibaelhárítás + +### Nincs hivatkozás megadva + +**Ellenőrzés:** +1. LLM kérések sikerültek (Beállítások → Diagnozis) +2. A figyelemnek elég tartalma van (>50 szó). +3. A koncepciók technikai/specifikusak (nem csak névmutatók). + +**Próbáljuk:** +- Használj egy erősebb modellt +- Növelje a kontextus ablakot +- Ellenőrizz a API kulcs valóságságát + +### Túl sok hivatkozás + +**Lösések:** +1. Növelje a minimális előfordulások számát (2 vagy 3) +2. Hozzáadja a népszerű szavakat az kizárás listaához +3. Használj egy kevésbé agresszív modellt + +### Hibás konceptek kötődtek össze + +**Elrendezések:** +1. Használj személyre szabott kérést a domén specifikusításához +2. Hajtson lépélyezési leképezés be +3. Ellátogasson manuálisan és távolítsa el a kötéseket + +### A hivatkozások megváltoztatás után rosszul működnek + +**Ez normál Obsidian viselkedés.** + +Minden hivatkozást frissítéshez: +1. Nevezz át a konceptleírást +2. Obsidian automatikusan frissíti `[[old]]` → `[[new]]` + +--- + +## További lépések + +- 📖 [Konceptleírások](./concept-notes) — Befejezettséges információk a konceptleírás kialakításáról +- 🔍 [Tudományos integráció](./research) — Összekapcsolja a hivatkozásokat a web-tudományi kutatásokkal +- 🎨 [Diagramok](./diagrams) — Visualizálja a tudományos grafikonját diff --git a/website/i18n/hu/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/hu/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..68bb490b --- /dev/null +++ b/website/i18n/hu/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "Munkafolyamok" +description: "Egy kattintással létrehozható gombokkal több munkát összekötés" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Munkafolyamok + +<TLDR> +**Notemd A munkafolyamok több munkát egyetlen kattintással elvégzhető műveletként összeköti.** `add-links > extract-concepts > research > diagram` használatával egyszerű DSL-vel definiálhatóak a sorrendek. A munkafolyamok táblázatoldal gombokként jelennek meg, amelyek az aktuális feljegyzésen vagy mappában az összes műveletet elvégeznek. Előre beállított munkafolyamok is vannak; a beállításokban lehet személyre szabottakat is készíteni. Minden lépés használja saját, munkánkénti konfigurációs modellét. + +Ez része a [Obsidian AI tudományos kezelési útmutatójának](/docs/pillar-ai-knowledge). +</TLDR> + +## Áttekintés + +Egy munkafolyam elszabadítja a munkákat egy-egyre elvégezési fájdalmat. Helyett abban, hogy négy alkalommal jobb-kattintson az összekötés hozzáadására, a konceptek kihozására, ismeretlen kifejezések kutatására és egy diagram készítésére, csak egy táblázatoldal gombot kell nyomni, és az összes művelet elvégeződik. Notemd kezelje a sorrendet, a hibák terjedését és a fejlépési jelentéseket. + +A munkafolyamok egy légképes DSL-ben (területspecifikus nyelvben) definiálódnak. Ezek a beállításokban találhatók, Obsidian táblázatoldal gombokként jelennek meg, és őket az aktuális feljegyzésre vagy egy teljes mappára is alkalmazhatók. + +## Hogyan működik + +### Munkafolyamok elvégezési folyamatútja + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **Átalakítás** -- A DSL szövege `>` (vagy `>`) alapján az ordinaльis munkaidentifikátorok listájába oszlik. +2. **Megoldás** -- Minden identifikátor egy belső parancshoz kapcsolódik (add-links, extract-concepts, research, translate, diagram stb.). +3. **Elvégezés** -- A lépések sorrendben elvégződnek. Minden lépés használja a konfigurált, munkánkénti fornítót és modellét. +4. **Hibák kezelése** -- Ha egy lépés nem sikerül, a munkafolyam vagy leáll, vagy továbbra is az utóbbi lépésre halad, attól függően, milyen hibavédelemi stratégiát használ. +5. **Befejezés** -- Egy üzenetjelző tájékoztatja a sikerről vagy listázza az érvénytelen lépéseket. + +### DSL formátuma + +A munkafolyamok `>`-kel elválasztott munkaidentifikátorok sorrende olarak definiálódnak: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**Létrehozható munkaidentifikátorok:** + +| Identifikátor | Ellenőrzés | +|------------|--------| +| `process-current-add-links` | Hozz létre wiki-hivatkozásokat a aktív felirathoz | +| `extract-concepts-current` | Kivegyj a koncepteket a aktív feliratból | +| `research-and-summarize` | Keress információt a kiválasztott szöveg vagy felirat címéről | +| `process-current-translate` | Ügyelj át a aktív feliratot | +| `summarize-to-mermaid` | Készíts el egy diagramot a aktív feliratból | +| `generate-from-title` | Készíts el tartalmat a felirat címéről | +| `extract-original-text` | Kivegyj a eredeti szöveget (OCR/skannált tartalomhoz) | + +**Mappataseménki variánsok**: helyettesítsd `current`-t `folder`-vel az azonosító nevben. + +### Elődefinált és kiszolgált munkafolyamatok + +Notemd rendelkezik előkészült munkafolyamatokkal a gyakori szabályzatokhoz: + +| Munkafolyamat | Hálózat | Használati esetek | +|----------|-------|----------| +| **Egy kattintással kivégzés** | add-links > extract-concepts > research | Kezelj egy kutatási tanulmányt egyetlen lépéssel | +| **Teljes folyamatköri rendszer** | add-links > extract-conceptek > kutatás > diagram | Teljes tudalmi extrakció vizualizációs segítségével | +| **Übersetzen + Verlinken** | übersetzen > add-links | A koncepteket az ülendszínbeli nyelven übersetjük és verlinkeljük | + +**Szerkesztési folyamatok** beállításokban készülnek ki: + +1. Nyitja meg a **Beállításokat** --> **Notemd** --> **Folyamatok** +2. Kattintson a **"Folyamat hozzáadása"** gombra +3. Írja be a DSL sorozatot (pl. `process-current-add-links>extract-concepts-current`) +4. Adja nevet a megjelenítési nevekhez (pl. "Szybú verlink + Extrakció") +5. A új gomb azonnal jelentkezik a sávoldalon + +## Konfiguráció + +| Beállítás | Alapértelmezett | Hatás | +|---------|---------|--------| +| `workflows` | Előre meghatározott készlet | Folyamatok definiciói arraya (nev + DSL) | +| `workflowContinueOnError` | `true` | Ha a jelen lépés nem sikerül, folytassa a következő lépésre | +| `workflowShowProgress` | `true` | Mindent megfelelően végezett lépés után jelenik meg egy fejlépési üzenet | + +### Folyamatokban lévő feladatspecifikus modellek + +Egy munkafolyam minden lépése használ saját, szempontos modellkonfigurációját. Néhány modellt nem kell specifikálni a DSL benne. A megoldás sorrende az alábbiak: + +1. Ha `useMultiModelSettings` van, akkor a szempontos fornalmazó/modell használódik +2. Azonkívül globális `activeProvider` használódik + +Ez azt jelenti, hogy `add-links` lehet működni DeepSeek-on, miközben `research` működik a GPT-4o-n – mind azok a folyamatok azonos munkafolyam kattintásával történnek. + +## példa + +Most importáltátok egy PDF-t, amely egy masinlernévelési tanulmányt tartalmaz, és szeretnél teljes tudalmi extrakciót: + +1. Nyitj meg az importált figyelmet +2. Kattints a **"Full Pipeline"** oldalsávon lévő gombra +3. Notemd elindítja a következőket: + - **1. lépés**: Hozz létre wiki-hivatkozásokat – `[[attention mechanism]]`, `[[transformer]]` stb. + - **2. lépés**: Kiválaszd a koncepteket – készít meg konceptfigyelmeteket a konceptmappádban + - **3. lépés**: Kutatás – összefoglalja a webforrásokat a kulcskifejezésekhez + - **4. lépés**: Diagram – készít meg egy Mermaid-os gondolatterületet a tanulmány struktúrájára +4. Körülbelül 30 másodperc után a figyelmeted hivatkozásokkal rendelkezik, konceptfigyelmetek vannak, a kutatás tárgyaként van beleírva, és egy diagramfájl is mentésre kerül + +Mind ezek egyetlen kattintással történnek. + +## Tippek + +- **Kezdj el előredefinált munkafolyamokkal** – ők lefedik a leggyakoribb szabályzatokat. Csak akkor kialakítsd újra, ha egy másik sorrendet szeretnéd. +- **Engedélyezd az `workflowContinueOnError`-t** – egy nem sikerült diagramlépés nem szabad leállítani a teljes folyamatot. +- **Használj mappavéleti munkafolyamatokat** a masszív feldolgozáshoz – kattints jobb billentyűvel egy mappára, válasszd egy munkafolyamot, és minden jegy feldolgozódik. +- **Nevezd a munkafolyamatokat klarán** – a sávszél területe korlátozott. Használj rövid, cselekvésirányú neveket, például "Rágrazás" vagy "Übersetzen + Linken". + +--- + +## További lépések + +- [Research](./research) – Megértsd, mire szolgál a kutatási lépés, mielőtt hozzáadod azt a munkafolyamokhoz +- [Wiki-Links](./wiki-links) – A legtöbb munkafolyamban használt alapvető kötési funkció +- [Concept Notes](./concept-notes) – Konceptek kiemelése mint munkafolyamlépés +- [Batch Processing](/docs/advanced/batch-processing) – Mappavéleti munkafolyamatokhoz szóló egybenműködés és fejlépés jelentése diff --git a/website/i18n/hu/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/hu/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..93838b93 --- /dev/null +++ b/website/i18n/hu/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "Konfiguráció" +description: "Beállítsa az Notemd beállításait és előnyölt értékeit" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Konfiguráció + +<TLDR> +**A Notemd konfiguráció 6 fő területet tartalmaz:** (1) LLM fornalmak és API kulcsok, (2) Munkavégzési alapú modellek választása, (3) Kielégítési útvonalok és szabványok, (4) UI nyelv és kielégítési nyelv, (5) Keresési szolgáltatások (Tavily/DuckDuckGo), (6) Szerkesztett munkafolyamatok. Minden beállítás található a Obsidian Beállítások → Notemd részben. A változások azonnal érvényesek. +</TLDR> + +## Beállítások áttekintése + +Hozzáférés: **Obsidian Beállítások (⚙️) → Notemd** + +### Fő részek + +1. **Fornalmak konfigurációja** — API kulcsok, alap URLs, modellek +2. **Munkavégzési beállítások** — Munkavégzési alapú modellek választása +3. **Kielégítési konfiguráció** — A készült fájlok mentése ahol +4. **Nyelvi beállítások** — UI és kielégítési nyelvek +5. **Keresés integrációja** — Tavily/DuckDuckGo beállítása +6. **Munkafolyamatok** — Szerkesztett gombképzések +7. **Fejlesztett beállítások** — Diagnozis, batch feldolgozás, blokkolás + +--- + +## 1. Fornalmak konfigurációja + +### Fornalmak hozzáadása + +1. **Válassza ki a fornalmat** a lefelépő listából (30+ elérhető) +2. **Írja be az API kulcsot** +3. **Választható**: Beállítsa a saját alapértelmezett URL-t (proxyek/hálózati átmenetekhez) +4. **Kattintson a „Get Model List”-re**, hogy ellenőrizze a kapcsolatot +5. **Válassza ki a alapértelmezett modellt** + +### Általános fornítók + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Local) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### Több fornító + +Más fornítókat is beállíthatja és műveletek között őket váltathatja ki: +- **Fő fornító**: Alapvető megoldásként használódik +- **Műveletspecifikus fornítók**: Speciális műveletekhez változtatásokhoz + +--- + +## 2. Műveletspecifikus modellek + +Különböző műveletekhez különböző modellt beállíthatja, hogy a költséget és a minőséget optimalizálja: + +### Művelet típusai + +| Munka | Alapértelmezett modell | Cél | +|------|--------------|---------| +| **Összekötés** | Fő fornító | Wiki-hivatkozásokhoz szükséges konceptek azonosítása | +| **Koncept kialakítása** | Fő nyújtó | Koncepciók kiolvasása és leírása | +| **Tudományos kutatás** | Fő nyújtó | Web keresési eredmények összefoglalása | +| **Übersetzung** | Fő nyújtó | Szöveg überszólítása | +| **Diagram kialakítása** | Fő nyújtó | Mermaid/Canvas diagramok készítése | + +### Példa: Költségoptimalizált beállítás + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### Hogyan konfigurálni + +1. **Beállítások → Notemd → Feladatbeállítások** +2. Mindentől egy feladatra a következőt válassza: + - ✅ **Fő nyújtót használjuk** (alapértelmezett) + - 🔄 **Személyre szabott nyújtót használjuk** → válassza a nyújtót és a modellt + +--- + +## 3. Kimeneti beállítások + +### Koncepciói figyelemek kimenete + +**Ahol tárolódnak a új konceptleírások:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Szabvány:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### Mappastruktúra opciók + +**Opcion 1: Egyszerű (minden koncept egy mappában)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**Opcion 2: Hierarchikus (forrásmappa alapján)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +Konfigurálás: **Beállítások → Kielégítés → Használj hierarchikus mappákat** + +### Diagramkép kielégítése + +**Ahol tárolódnak a diagramok:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**Formátum:** +- `.mmd` (Mermaid forrás) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. Nyelvi beállítások + +### UI Nyelv + +**Felület nyelve** (gombok, menük, ablakok): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +Támogatott nyelvek: angol, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Русский, العربية és többek. + +### Kielégítés nyelve + +**Generált tartalom nyelve** (konceptleírások, kutatási összefoglalók): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**Használati eset:** Kínai UI + angol kijelzés kétnyelvű kutatásokhoz. + +### Übersetzungsziel + +**Standardzielsprache** für Übersetzungsaufgaben: + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. Suchintegrationsmöglichkeit + +### Tavily (Empfohlen) + +**Von KI optimierter Suchdienst:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +Schlüssel hozzárendelés: [tavily.com](https://tavily.com/) + +**Funkciók:** +- Hochwertige Ergebnisse +- Von KI optimierte Zusammenfassungen +- Quellenzitate + +### DuckDuckGo (Experimentell) + +**Kein API-Schlüssel erforderlich:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**Hinweis:** Geringere Qualität, keine Anpassungsmöglichkeiten. + +--- + +## 6. Arbeitsablaufkonfiguration + +### Eigene Arbeitsabläufe erstellen + +**A munkafolyamok több feladatot egy gombba összeköti.** + +1. **Beállítások → Munkafolyamok → Munkafolyam hozzáadása** +2. **Neve**: "Paper Analysis Flow" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **Megőrzés** + +Új gomb jelentkezik a bal oldalsárban. + +### DSL szintaxisza + +**Formátum:** `action1>action2>action3` + +**Elérhető műveletek:** +- `process-current-add-links` — Jelölt dokumentumba wiki-hivatkozások hozzáadása +- `extract-concepts-current` — Konceptjelölt dokumentumok készítése +- `research-and-summarize` — Web-recherche + összefoglalás +- `translate-current` — Jelölt dokumentum übersetése +- `summarize-as-mermaid` — Mermaid diagram készítése +- `process-folder-add-links` — Mappának batch-kezelése + +** példámfolyamok:** + +**Szybki extrahálás konceptekből:** +``` +process-current-add-links>extract-concepts-current +``` + +**Összetett kutatás:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**Köznyelvi analízis:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. Fejlesztett beállítások + +### Hromados feldolgozás + +**Képes több fájlt egyaránt feldolgozni:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +Magasabb érték = gyorsabb, de több API kérést jelent. + +### Intelligens rögzítés + +**Hosszú jegyzetek esetén rögzítsük a jegyzetet blokkokba:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +Elkereli a token-környezeti hibákat. + +### Diagnostikai panel + +**Detalmas logok megtekintése:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +Megjelenít: +- API kérések/reakciók +- Token-használata +- Feldolgozás idősegek +- Hibák + +### Duplikált konceptek azonosítása + +**Képzelj el közel egyenlő koncepteket:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +Magasabb = agresszívabb összevonás. + +--- + +## Konfigurációs profillak + +### Be-/Kiszállítás beállításai + +**Oszd a konfigurációkat különböző eszközök között:** + +1. **Beállítások → Fejlesztett → Konfigurációt kiszállítás** +2. Szárvál `notemd-config.json` +3. Új eszközön: **Konfigurációt importálás** + +**Mit tartalmaz:** +- Társító API kulcsok (vagyontatlan) +- Modellek választása +- Kielégítési útvonalak +- Szerkeszthető munkafolyamok + +--- + +## Tanácsolt konfigurációk + +### Tanulók számára + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### Tudósok számára + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### Privátisításra gondos felhasználókhoz + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### Kétnyelvű munkához + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## Konfigurációs hibák eloldása + +### Beállítások nem mentésének megoldása +- Ellenőrizze a fájl jogokat a `.obsidian/plugins/notemd/`-ban +- Próbálja: Kikapcsolja a plugint → Újra engedélyezze + +### Névlenes API kulcs +- Nincs extra tér +- Ellenőrizze a megközelülés időtartamát +- Ellenőrizze a krediteket a fornecedő táblalapján + +### Modellek nem töltődnek be +- Kattintson a "Modelllistához lépés" gombra frissítéshez +- Ellenőrizze a hálózati kapcsolatot +- Próbálja más fornecedőt + +--- + +## További lépések + +- 📖 [Funkciók megjelenítése](../features/wiki-links) +- 🔌 [Fornecedő beállítási útmutatók](../providers/overview) +- ❓ [FAQ](../faq) diff --git a/website/i18n/hu/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/hu/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..921c9681 --- /dev/null +++ b/website/i18n/hu/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "Írásbeállítás" +description: "Hogyan írjuk be Notemd-t a Obsidian-ban" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Írásbeállítás + +<TLDR> +**Írjuk be Notemd-t 2 perc alatt.** Két módszer: (1) Obsidian közösségi pluginek (ajánlott, egy kattintással írásbeállítás), vagy (2) manuális írásbeállítás a GitHub Releases által. Elvégzéshez szükség van Obsidian 0.15.0+ verzióra. Működik Windows, macOS, Linux, iOS és Android rendszereken. Nincs külső függőségek. 4k+ letöltés, MIT licenc alatt. +</TLDR> + +## Módszer 1: Közösségi pluginek (ajánlott) + +1. Nyitjuk meg a **Obsidian beállításait** (⚙️ ikon vagy `Ctrl/Cmd + ,`) +2. Menjünk a **Közösségi pluginek** részére +3. Kattintjunk a **Browszolás**-ra +4. Keresjük a **"Notemd"** nevűt +5. Kattintjuk a **Írásbeállítás**-ra +6. Kattintjuk a **Engedélyezés**-re + +**Szia!** A bal oldalsávon látjuk a Notemd ikont. + +## Módszer 2: Manuális írásbeállítás + +### Elvárások +- Obsidian 0.15.0 vagy annál újabb verzió +- Git (opcionális, klónoláshoz) + +### Lépések + +1. **Letöltse a fájlokat** a [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest) számítól: + - `main.js` + - `styles.css` + - `manifest.json` + +2. **Keresse ki a vault-jának plugin mappáját:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +Ha a `plugins` mappa nem létezik, hozz létre azt. + +3. **Hozz létre a Notemd mappát:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **Kopítsa be a három fájlt** a `notemd` mappába. + +5. **Uramollítson a Obsidian-t:** + - Nyomja meg a `Ctrl/Cmd + R`-t, vagy + - Újra indítson a Obsidian-t + +6. **Engedélyezze a plugin-t:** + - Beállítások → Közösségi pluginek + - Keresse ki a „Notemd”-ot a listában + - Nyomja be az engedélyezés gombot + +## Alternatíva: Instáláljon az BRAT útján + +Ha használja a [BRAT plugin](https://github.com/TfTHacker/obsidian42-brat)-t: + +1. Nyitja meg a BRAT beállításait +2. Kattints a "Hozzáadja a Beta-pluginet" gombra +3. Írd be: `Jacobinwwey/obsidian-NotEMD` +4. Kattints a "Hozzáadja a pluginet" gombra +5. Engedélyezze a Notemd-t a Community-pluginekben + +## Ellenőrzés + +Az installáció után ellenőrizze, hogy a Notemd működik-e: + +1. Nyitja bármely jegyet +2. Kattints jobb kattintással a szerkesztőben +3. Létrejönnek az Notemd parancsok, például: + - "Fájl kezelése (hivatkozások hozzáadása)" + - "Konceptek kihozása" + - "Kutatás és összefoglalás" + +## További lépések + +- **Konfigurálja a LLM forrásot:** [Rácsomagolás →](./quick-start) +- **Problémamegoldás:** [Általános problémák →](../advanced/troubleshooting) + +## Szerverteljesítmények + +| Platform | Verzió | Státusz | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | Előírás | +| **Windows** | 7+ | ✅ Támogatott | +| **macOS** | 10.15+ | ✅ Támogatott | +| **Linux** | Bármilyen | ✅ Támogatott | +| **iOS** | 15+ | ✅ Támogatott | +| **Android** | 5+ | ✅ Támogatott | + +## Előreállítás + +Notemd elszüntetéséhez: + +1. Beállítások → Közösségi plug-inek +2. Keressük az "Notemd"-t +3. Kattints a ❌ ikonra +4. Választhatóan törljük a plug-in mappát: `<vault>/.obsidian/plugins/notemd/` + +A adataid (figyelemek, konceptfigyelemek stb.) nem érintetek meg. + +## Frissítés + +### Autófrissítés (tajánlott) +Obsidian automatikusan ellenőrzi a plug-in frissítéseket. Ha új verzió elérhető: +1. Beállítások → Közösségi plug-inek +2. Kattints a "Frissítések ellenőrzése" gombra +3. Kattints a Notemd mellett lévő "Frissíts" gombra + +### Manuális frissítés +Letöltse a legújabb verziót és cserélje ki a három fájlt a plug-in mappájában. + +## Segítség kérés + +- 📖 [Szybki kezdőguida](./quick-start) +- ❓ [FAQ](../faq) +- 💬 [Discord Közössége](https://discord.gg/qnGgsQ9W) +- 🐛 [Problémák jelentése](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/hu/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/hu/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..fcc504ae --- /dev/null +++ b/website/i18n/hu/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "Rácsoló felhasználói útmutató" +description: "5 perc alatt kezdjük el a használatot Notemd-vel" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Rácsolási útmutató + +<TLDR> +**5 perc alatt kezdje használatát a Notemd-vel.** Három lépés: (1) Hozzáfűzzön egy LLM API kulcsot (vagy használja a helyi Ollama-t), (2) Nyitja egy jegyet és futtassa el a „Process file (add links)” parancsot, (3) Az oldalsávon keresse fel az egyszer kattintással futtató munkafolyamatokat. Támogatja 30+ szolgáltatót. Nincs programozás szüksége. Működik offline-ban is a Ollama segítségével. +</TLDR> + +## 1. lépés: Konfigurálja a első LLM fornítóját (2 perc) + +### Opció A: Felhőszolgáltató (OpenAI, Anthropic stb.) + +1. Nyisd meg a **Beállításokat** → **Notemd** +2. **LLM Feltőltő konfigurációja** alatt válassza ki egy feltőltőt a lehulló menüből +3. Írd be a **API kulcsodat** +4. (Vagy) Kattints a **"Get Model List"** gombra, hogy lásd a létrehozható modelleket +5. Válassza ki egy modellt minden munkaterület számára + +**Populáris választások:** +- **OpenAI**: `gpt-4o-mini` (gyors, olcsó) +- **Anthropic**: `claude-sonnet-4-6` (magas minőség) +- **DeepSeek**: `deepseek-chat` (kiválóan olcsó) + +### Opcion B: Lokális Ollama (Nem szükséges API kulcs) + +1. Telepítsük a [Ollama](https://ollama.com/)-t +2. Letöltse egy modellt: `ollama pull llama3.1` +3. A Notemd beállításainál válassza ki **"Ollama"**-t a fornalmaként +4. Modellneve: `llama3.1` (vagy bármely más letöltött modell) + +## 2. lépés: Próbálja el az első munkát (1 perc) + +### Hozzáadja Wiki-hivatkozásokat egy jegyhez + +1. Nyitja bármilyen jelentős tartalmú jegyet +2. Kattints jobb kattintással a szerkesztőben +3. Válassza ki **"Fájlt kezelje (hivatkozások hozzáadása)"** +4. Várjon néhány másodpercet +5. A kulcsfontosságú konceptek most `[[wiki-linked]]`! + +**Példa:** + +**Előtt:** +``` +Machine learning models use neural networks to process data. +``` + +**Után:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## 3. lépés: Felismerje a funkciókat (2 perc) + +### Kiemelje a konceptjelölt jegyeket + +1. Kattintson jobb kattintással → **"Kiemelje a koncepteket a jelen fájlból"** +2. Notemd készít el külön fájlokat minden koncept számára +3. Ellenőrizze a beállított konceptmappát (alapértelmezett: `concepts/`) +4. Minden konceptjelölt jegynek van hivatkozása a következő, eredeti jegyeire + +### Tudományos kutatás és összefoglalás + +1. A jegyzetében egy témát felhívjuk a figyelmet +2. Jobb kattintás → **"Tudományos kutatás és összefoglalás"** +3. Notemd kérel a webes keresést (Tavily vagy DuckDuckGo) +4. A összefoglalás a forrásokkal együtt kerül hozzá a jegyzetedhez + +### Egy kattintással működő munkafolyamatok + +1. A munkafolyamatárgyútó gombokért nézd meg a **bal oldalt** +2. Bármely jegyzeten kattints **"Egy kattintással kihozás"**-ra +3. Ez elindítja: hivatkozások hozzáadása → konceptek kihozása → kutatás → diagram készítése +4. Mind ezt egy kattintással! + +## Általános első munkák + +### Munka 1: Irodalmi munkát/irányítványt kezelés + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### Munka 2: Jegyzetek fordítása + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### Munka 3: Ismeretek térképének készítése + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## Szabályozási tippek + +### Munkaalapú modell választása + +Különböző munkákhoz használhatsz különböző modelleket: + +| Munka | Tajározott modell | Miért | +|------|------------------|-----| +| Hivatkozások hozzáadása | `gpt-4o-mini`, `deepseek-chat` | Gyors, több kérések | +| Konceptek kihozása | `claude-sonnet-4-6`, `gpt-4o` | Magas minőségű kihozás | +| Tudományos kutatás | `perplexity`, `gpt-4o` | Web-re alapuló | +| Übersetzung | `gemini-flash`, `gpt-4o` | Köznyelvi | +| Diagramok | `claude-opus`, helyi modell | Komplexes gondolkodás | + +Beállítások: **Beállítások → Notemd → Feladatspecifikus modellek** + +### Szerkesztett munkafolyamok + +Sa próp gombot létrehozása: + +1. Beállítások → Notemd → Munkafolyamok +2. Kattintsz a "Munkafolyam hozzáadása" gombra +3. Írd be a DSL-t: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. Ne nevezze meg: "My Research Flow" +5. Új gomb jelentkezik meg a sávoldalban + +## Hibaelhárítás + +### "API Key Invalid" +- Ellenőrizze, hogy a kulcs helyes-e (nem legyen extra tér) +- Ellenőrizze, hogy a fióknak krediteje van +- Próbálja az "Connection Test" gombot a beállításokban + +### "Model Not Found" +- Kattintson a "Get Model List" gombra, hogy lássa a létrehozható modelleket +- Neki adókhoz speciális modellnevek szükségesek (pl. `gpt-4o`, nem `gpt-4`) + +### Hivatkozások nem jelennek meg +- Biztosítsa, hogy a figyelemhez elég tartalom van (>50 szó) +- Próbálja egy erősebb modellt +- Ellenőrizze, hogy a LLM kérések sikerültek-e (lássza a diagnostikai panelt) + +### Lentes teljesítmény +- Használja gyorsabb modelleket (`gpt-4o-mini` helyett `gpt-4o`) +- Kecselni a blokk méretét a beállításokban +- Paralel feldolgozást engedélyez a batch munkáknak + +## További lépések + +- 📖 [Mindent megtekinteni](../features/wiki-links) +- ⚙️ [Fejlesztett beállítások](./configuration) +- 🔧 [LLM Társító beállítása](../providers/overview) +- ❓ [FAQ](../faq) + +## Videótanulmány + +Megtekintse a 3 percös gyorsindulási videót (kínai nyelvben): +[【Teljesen nyílt forráskódú, ingyenes! NotEMD 3 percös tanulmány】](https://b23.tv/lqR0RlA) + +## Segítség kérés + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **Problémák**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **Documéntációk**: [Teljes dokumentáció](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/hu/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/hu/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..b7fe67f4 --- /dev/null +++ b/website/i18n/hu/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "Útmutató a Notemd-ra" +description: "AI-támogatott tudalmi bázis készítő Obsidian számára, amely biztonságos jegy transformációkat, munkafolyamatokat és specifikációk alapú diagramokat biztosít" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Útmutató a Notemd-ra + +<TLDR> +**Notemd** (Note + EMD — Enhanced Markdown Documents) egy nyílt forráskódú Obsidian plugín, amely LLM-támogatott olvasást biztonságos tudalmába transformál. A chat-bázisú AI-khoz képest, ahol az információk a szession lezárás után eltűnnek, Notemd a eredményeket **direktan a váltódba** ír be wikilinkként, koncept jegyeiként, kutatási összefoglalásokként, fordításokként, munkafolyamatokként és diagramokként. Ez a megoldás azoknak a kutatóknak, tanulóknak és tudalmi munkavégzőknak szól, akik szeretnék, hogy az olvasásuk, kutatásuk és visuális magyarázataik egy struktúrállt, fejlődő tudalmi grafikonba gyűljönek össze. +</TLDR> + +## Mi a Notemd? + +Notemd **30+ nagy nyelvtan modellét** (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama és többet) az Obsidian munkafolyamodba integrálja, hogy automatikusan tudalmi extrakciót, organizációt, fordítást, kutatást és diagram készítést végezze el. + +### Fő különbség: áthajtó vs. biztonságos tudalom + +| Aspektus | Chat-bázisú AI (ChatGPT stb.) | Notemd | +|--------|-------------------------------|--------| +| **Ahol kerülnek el a eredmények** | Chat-történet (eltűnik) | A Obsidian váltód (marad meg) | +| **Formátum** | Szerkeszthető szövegbeni válaszok | Struktúrállt fájlok: `[[wiki-links]]`, koncept jegyeik, diagramok | +| **Hosszú távú értéke** | Mindenkor újra kell kérni | Gyűjül össze egy tudalmi grafikonba | +| **Offline hozzáférés** | Internet elvégződése szükséges | Teljesen offline működik Ollama-val | + +## Alapvető képességek + +### 1. **Autómatikus Wiki-kötelés** +- LLM az összefoglalóaidban lévő kulcskoncepteket azonosítja +- Ír be `[[wiki-links]]` minden jelentkezésnél +- Választhatóan készíti ki kötött konceptösszefoglalókat +- Központi kifejezések elrejtése duplikátok elkerüléséhez + +### 2. **Konceptösszefoglaló kialakítása** +- Kivágtatja a mértékelések, cikkek és összefoglalókából a kulcskoncepteket +- Készíti ki speciális konceptfájlokat távolszággal kapcsolódó hivatkozásokkal +- Megszabható kijelzőutak és szablontok + +### 3. **Web-recherche integráció** +- Kérdezhető Tavily vagy DuckDuckGo belül a Obsidian-ból +- LLM összefoglalja a eredményeket forrásokkal együtt +- A kutatási eredményeket a jelen lépécbe hozzáadja + +### 4. **Köznyelvi fordítás** +- Választott részeket vagy az összes lépécet fordítsa le +- 21-től több UI nyelvet támogat +- Külön fejleszthető kiinduló nyelv beállítása +- Halmagos fordítás támogatása + +### 5. **Diagramok készítése** +- **Mermaid**: Flussdiagramok, sorrend-, osztály-, állapot-, ER-, Gantt-diagramok +- **JSON Canvas**: Obsidian helyi layoutok +- **Vega-Lite**: Adatdiagramok, időszakos diagramok, szóródiagramok +- **HTML / Redigeálható HTML/SVG**: Semantikus figyelmeztetésekkel rendelkező, sajtalmatlan képalkotások +- **Draw.io / Drawnix alkotás határai**: A karbantarthatóság fenntartóinak számára készült export útjai a sama semantikus képmodellből +- **Circuit diagrams roadmap**: circuitikz/TikZJax támogatása fejlesztése az arany referenciák, korlátozott leírások, renderelési visszajelzések és topológiá/jellegzés ellenőrzése alapján történik, nem a szablonmentes LLM TikZ alapján +- **Előnézeti diagnostika**: A renderelt alkotások lehetővé teszik a kompilálási/renderelési hibák diagnostikáját, és a nélkülöli források ellenőrzésehez nem szükséges plugin-alapú LaTeX futtatása +- Mermaid hibáknak szintaxis automatikus kihirdése + +### 6. **Egy kattintással működő munkafolyamatok** +- Kétszörös műveleteket sorozhatók össze sávoldal gombokká +- DSL-alapú munkafolyam definiálása +- Példa: `add-links > extract-concepts > research > diagram` + +## Ki használja kell Notemd? + +✅ **Tudományosok**, akik olvasnak tanulmányokat és készítik ki irodalmi áttekintéseket +✅ **Összefoglalók**, akik szerveznek tanulási figyelemkönyveket és létrehoznak konceptmapokat +✅ **Igazságos munkások**, akik szeretnék, hogy a olvasási értékeléseik maradjanak +✅ **Kétnyelvű profiok**, akiknek szüksége van fordításra + wiki-hivatkozásokra +✅ **Privátiságot szerető felhasználók**, akik kívánják a helyi LLM támogatást (Ollama) +✅ **Erős felhasználók**, akik szabályozzák a parancsokat és munkafolyamokat + +## Miért Notemd + Obsidian? + +**Obsidian** egy helyi prioritású, markdown-alapú tudományos bázis. **Notemd** hozzáad meg AI-es kiválóságokat: +- A adatokat a saját tárolódban tartja (nem egy felhőszolgáltatásban) +- Helyi modellekkel működik offline +- Inkább és nyílt forráskódú (MIT licenc) +- Összekapcsolható a meglévő Obsidian pluginekkel +- Ezheti a tömegét dzieszközezre ezerek számára jelölt nékerekre + +## Elkezdés + +1. **Írás**: Beállítások → Közösségi plug-inek → Keresés → "Notemd" +2. **Konfigurálás**: Hozzáadja a saját LLM fornalmazó API kulcsát (vagy használja a helyi Ollama-t) +3. **Próbálja ki**: Nyitja egy néket → Kattintson a jobb gombbal → "Fájl feldolgozása (hivatkozások hozzáadása)" +4. **Keresés**: Ellenőrizze a oldalságot egy kattintással elvégzhető munkafolyamatokhoz + +👉 [Írásirányító útmutató](./getting-started/installation) | [Rápid kezdési tanulmány](./getting-started/quick-start) + +## Diagrammok képességei irányája + +Notemd diagrammok kezelése elhagyja a "modellt kérdezve egy szintaxis stringot írására" módot, és érdemelkedik egy szintezett folyamatrendszer felé: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +A jelenlegi implementáció már támogatja Mermaid, JSON Canvas, Vega-Lite, HTML lehetséges alternatívákat, módosítható HTML/SVG-t, Draw.io XML artefaktumokat, egy minimális Drawnix JSON almenyét, előnyugrásdi diagnostikát/közel-kód alapú lehetséges alternatívákat, valamint egy offline `CircuitSpec -> circuitikz` prototípust az általános forráskód és CMOS invertzor gyümölcsmóduláinak számára. A szolgáltatások diagrammai egy kevesebb elérhető kategória: circuitikz képes pontos elektrikai topológiát kifejezni, de korlátlan LLM kimenet gyakran nem olvasható útvonalokat vagy nem renderelhető LaTeX-ket hozhat létre. A következő irány az, hogy circuitikz-t korlátozzuk gyümölcsmódulákkal rendelkező szabványos szablonok, üggetekrényes layout szabályok, renderelési diagnostika és képernyőkép-visszajelzési körzetek segítségével. + +További részleteket olvasson meg a [Diagrammok](./features/diagrams) című dokumentumban. + +## Architektúra + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd vs más Obsidian AI plug-inek + +A legtöbb Obsidian AI plug-in konverzációs alapú (átkérdezés, AI válaszol, a tudnivalók maradnak a chatben). Notemd pedig **írás-alapú**: az AI feldolgozza a nékereit és írja a struktúrált eredményeket közvetlenül a tárolóba. + +| Képességek | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| Autó wiki-hivatkozás beállítása | Igen | Nem | Nem | Nem | +| Konceptleírás készítése | Igen (hivatkozásokkal + duplikátok elszűrésével) | Nem | Nem | Nem | +| Diagramm készítése | Igen (Mermaid, Canvas, Vega-Lite, HTML, szerkeszthető artefektek) | Nem | Nem | Nem | +| Webes kutatás integrációja | Igen (Tavily + DuckDuckGo) | Nem | Nem | Nem | +| Halmazos mappák feldolgozása | Igen | Korlátozott | Nem | Korlátozott | +| Munkaalkalmazásokhoz szóló modellek irányítása | Igen (7 munka, független modellek) | Nem | Nem | Nem | +| Egy kattintással működő munkafolyamok | Igen (DSL) | Nem | Nem | Nem | +| Übersetzung (halmazos) | Igen | Nem | Nem | Nem | +| Chatt a tárolóval | Nem | Igen | Nem | Nem | +| Semantikus hasonlóság keresése | Nem | Nem | Igen | Nem | +| Őrvezeték alapú készítés | Nem | Nem | Nem | Igen | +| LLM biztosítók | 36 (mégköri + átjáró + helyi) | 3-5 | 2-3 | 3-5 | +| Teljesen offline | Igen (Ollama) | Árnyékos | Árnyékos | Árnyékos | + +**Mikor válaszd el Notemd**: Ha szeretnéd, hogy a számítógépintézett intelligencia létrehozza egy tartós tudományos grafot – nem csak beszéljen a te figyelemzedről. + +**Mikor válaszd az Copilot-t**: Ha szeretnéd egy konverzációs AI-asszistentet a Obsidian belül. + +**Mikor válaszd az Smart Connections-t**: Ha szeretnéd semantikus keresés segítségével megtudni a jegyek közötti már létező kapcsolatokat. + +## Filozófia + +**Notemd szerint a számítástechnika az emberi tudományos munkát fejleszteni kell, nem helyettesíteni.** A plug-in: +- Megőrzi a kontrollot az Ön kezében (ellenőrizze előtt, hogy változásokat alkalmazza). +- A kontextust tárolja (minden eredmény visszahívódik a forrásra) +- Tiszteletben tartja a privátosságot (lokális LLM támogatás, nincs telemetria) +- További fejlesztésre alkalmas (nyitott APIs, személyre szabott munkafolyamok) + +## Nyílt forráskód + +- **Licenc**: MIT +- **Forrás**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **Közösség**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **Társulás**: PR-k kiválóan fogadók, nézzük meg a [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md)-t + +--- + +**További lépés**: [Installation →](./getting-started/installation) diff --git a/website/i18n/hu/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/hu/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..38e1825b --- /dev/null +++ b/website/i18n/hu/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Obsidian AI tudományos kezelési útmutató" +description: "Teljes útmutató egy AI-t használó összekapcsolott tudományos bázis kialakítására – wiki-hivatkozásoktól és konceptek kiemelésének át a kutatás, fordítás és diagramok készítéséig" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Obsidian AI tudományos kezelési útmutató + +<TLDR> +**Notemd az LLM-al működő olvasást örökkévaló tudományos információkba változtat: wiki-hivatkozások összekapcsolják a koncepteket, a konceptleírások egy elérhető grafikonot létrehoznak, a kutatás bevonja a web tartalmát a bázisba, a fordítás megszűrje a nyelvi korlátokat, a diagramok megjelenítenek a struktúrat, és a munkafolyamatok összekötik mindent egy kattintással.** Ez a útmutató leírja az összes lépést – a szöveges leírásoktól kezdve egy összekapcsolott, visuális, többnyelvű tudományos bázisig. +</TLDR> + +## Miért használni az AI-t a tudományos kezelésben? + +A hagyományos feljegyzészárás csak egyszerű fájlokat hoz létre. Even with manual wiki-links, most notes stay disconnected. Notemd uses LLMs to automate the connection layer: + +- **LLMs olvasják a tartalmadat** és kiderítsék, mikor fontos – termékek, módszerek, személyek, teorikák +- **A hivatkozások automatikusan kerülnek be** minden koncept jelentkezésén, nem maradnak „lásd még” részében +- **A konceptleírások készülnek** kifejezetten elérhető fájlokká +- **A kutatás bővíti a feljegyzéseket** webből származó kontextussal +- **A diagramok megjelenítenek a struktúrat** – gondolatkönyvek, folyamatszémlák, adatdiagramok a sama tartalomból + +A eredmény: egy tudományos grafikon, amely növekszik azon belül, amikor elkészíted egy új feljegyzést, nem csak akkor, ha emlékszel hivatkozások hozzáadására. + +## A teljes folyamat + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +Minden lépés független. Használhatsz egyet vagy mindent. A leghatékonyabb sorrend: **Hivatkozások hozzáadása → Konceptleírások → Diagramok**. + +--- + +## 1. Wiki-hivatkozások: A kapcsolatok nyilvánosítása + +A wiki-hivatkozások a tudományos grafikon alapja. Notemd uses an LLM to: + +1. Olvasd meg a jegyzeted tartalmát (hosszú dokumentumok esetén részekként oszd ki) +2. Az alapvető konceptek meghatározása – specifikus, technikai kifejezések prioritásba állnak a generikus névmek felett +3. Írd be az `[[wiki-links]]`-t minden esetben +4. Az egyenlők leírásának elrejtése, így a "ML" és a "Machine Learning" külön szövegcsomagokat nem létrehoznak + +### Használati helyzetek + +- **Minden 100 szótól több szót tartó jegyzet** – rövidebb jegyzeteknél kevés koncept van +- **Tudományos tanulmányok, technikai dokumentációk, tárgyalási jegyzetek** – több domén-specifikus kifejezést tartalmaznak +- **Amikor a tartalom stabil lett** – ne folyamatosan feldolgozd a tervezéseket + +### Kluczös beállítások + +| Beállítás | Tajározott választás | Miért | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek vagy GPT-4o-mini | Alacsony költség mellett jó pontosság | +| Egyenlők leírásának elrejtése | Igen | Külön szövegcsomagok létrehozását megakadályozza | +| Kontextus ablaka | Paragraf | Pontosság és költség arányára | + +→ [Wiki-Linkek részletes elemzése](/docs/features/wiki-links) + +--- + +## 2. Konceptleírások: Elérhető tudományos ütközések + +Wiki-linkek összekapcsolják a gondolatokat az oldalon belül, de a konceptleírások lehetővé teszik, hogy minden gondolat különként elérhető legyen. Minden konceptnek van saját `.md` fája: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### Kivonási folyamat + +A LLM parancs nagyon struktúrázott: +- Normalizáljuk a szöveget egyedüli formába +- Kérdjük elő a több szóból álló koncepteket az egy szóból állók helyett ("Dielectric Relaxation", nem "Relaxation") +- Hagyjuk el a referenciák/íráslisták részeit +- Adjuk ki az eredményt `CONCEPT:` sorokként, hogy biztosítva legyen a deterministikus feldolgozás + +A konceptek egyes részek között `Set<string>` segítségével egyértelműsítődnek. Egyik részben lévő LLM hibák nem leállítják a folyamatot. + +### Visszalinkek + +Ha aktiválva van, minden konceptleírás követeli, mely forrásleírások említik azt. A Obsidian natív visszalink panelje is mutatja a kéretlen kapcsolatakat. + +### Duplikátok eltávolítása + +A Notemd 4 lépésű egyértelműsítő motorja felismeri: +1. **Teljesen egyezőek** — betűtípus-mentes fájlnevek összevetése +2. **Nagyszerűsített formák** — "Models.md" és "Model.md" +3. **Symbol normalizálás** — "A-B.md" és "A B.md" +4. **Egy szó tartalmazása** — ha létezik "Machine Learning.md", az "ML.md" jelölik az összetételt + +### Kluczok beállítása + +| Beállítás | Tajározott | Miért | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` vagy `🧠 concepts/` | Megőrzi a tárgyrazdót rendben | +| `extractConceptsAddBacklink` | Igen | Hozzáférhetőségi visszalapulás aktiválása | +| `extractConceptsMinimalTemplate` | Nem | Teljes szabvány, amelyben van a "Linked From"-t | +| Munkaalkalmazásos modell | DeepSeek | A konceptek kivágtatása nem igényel drágak modellt | +| Színonimák leképezése | Igen | Ugyanaz a beállítás hatású a kötésre és a kivágtatásra is | + +→ [Concept Notes mélyebb megismerése](/docs/features/concept-notes) + +--- + +## 3. Kutatás: A Web használata + +Notemd összevonja a web keresést a jegyzetkezelési munkafolyamába: + +1. **Kérés kialakítása** — a jegyzet címé vagy választása keresési kérésnek válik +2. **Web keresés** — Tavily (tanácsolt, API kulcs szükséges) vagy DuckDuckGo (ingyenes, nincs kulcs) +3. **LLM összefoglalás** — a keresési eredmények összevonódnak releváns összefoglalásokká +4. **Jegyzethez hozzáadás** — az összefoglalás a kursor helyén vagy új részeként kerül hozzá + +### Kikorlátlan használata + +- Előtt egy új témának kezeléséhez — először kapja meg a web kontextust +- Amikor egy koncept jelzésnek bővítése szükséges — kutatás után hozza létre hivatkozásokat +- Irodalmi áttekintésekhez — egyszerre kutatja egy jegyzetek mappáját + +### Fontos beállítások + +| Beállítás | Tanácsolt | Miért | +|---------|-----------|-----| +| `researchProvider` | GPT-4o vagy Claude | A kutatásnak magasabb minőségű összefoglalások szükségesek | +| Keresési szolgáltatás | Tavily | Bemutatási relevancia, beállítható mérték | +| `maxResearchContentTokens` | 4000 | Mérték és költség közötti egyenlet | + +→ [Research deep dive](/docs/features/research) + +--- + +## 4. Übersetzung: Sprachbarrieren überwinden + +Notemd übersetzt Notizen működésére beállított LLM használatával — nem egy külön übersetőszolgáltatás API. Ez azt jelenti: + +- **Kontextusvezérelt übersetzések** — a LLM megérti a teljes dokumentumot, nem csak szövegvetően +- **Technikai kifejezések kezelése** — „gradient descent” marad „梯度下降”ként, nem „坡度向下”ként +- **Halmogatási támogatás** — egyetlen műveletben összegezett notízkönyvtár überszólható +- **Munkaalapú modell** — a übersetéshez Gemini Flash használható (gyors, olcsó, több nyelvben) + +### Nyelvtámogatás + +A Notemd maga 21 UI nyelvet támogat. A célnyelv azonban munkaalkalmazásból függően beállítható. Gyakori párok: EN↔ZH, EN↔JA, EN↔KO, EN↔DE, EN↔FR, EN↔ES. + +→ [Translation deep dive](/docs/features/translation) + +--- + +## 5. Diagramok: Struktúrák nyílt vizuális megjelenítése + +Notemd diagramm-kezelési folyamata specifikációk alapján működik: a LLM készít ki egy struktúrált `DiagramSpec` JSON-t, majd az adapterek átvitták ezt a célformátumba. Ez biztonságosabb eredményt ad, mint ha a LLMt kérnénk a szöveges Mermaid szintaxisát. + +### Intenciós felismerés + +A Notemd a tartalmiból az optimalabb diagrammtípust azonosítja: + +- **Számokkal rendelkező táblák** → adatdiagramm (Vega-Lite) +- **Kliens/szerver szókincse** → sorrenddiagramm (Mermaid) +- **Entitás/primáris kulcs** → ER-diagramm (Mermaid) +- **Passzus/procesfolyam** → folyamatszámla (Mermaid) +- **Konceptmapa kifejezései** → JSON Canvas (Obsidian helyi) +- **Alapértelmezett** → gondolatmapa (Mermaid) + +### Renderelési sorozat + +Primáris cél → lehetséges megoldás → lehetséges megoldás → HTML. Ha Mermaid szintaxisz hibás, egyszor újra próbálja a hiba kontextust az LLM-hez küldve, majd válik vissza minimalis diagrammra. + +### Kluczös beállítások + +| Beállítás | Tajározott | Miért | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | Be | Jobb minőség specifikációk alapján | +| `experimentalDiagramCompatibilityMode` | `best-fit` | Helyi cél az érzelmetől függően | +| `summarizeToMermaidProvider` | GPT-4o vagy Claude | A diagramm specifikációknak térképességi gondolkodásra van szüksége | +| `autoMermaidFixAfterGenerate` | Be | Automatikusan felismeri a LLM szintaxisz hibáit | +| Helyi tudás bővítése | Domain-specifikus módban bekapcsolva | A védelmi tároló kontextusaival növeli a pontoságot | + +→ [Diagramák részletes megközelítése](/docs/features/diagrams) + +--- + +## 6. Munkafolyamok: Egyszeri kattintással automatizálás + +A munkafolyamok több feladatot egyetlen oldalsávon lévő gombba összeköti. A DSL formátuma az alábbiakban található: + +``` +task1 | task2 | task3 +``` + +Példa: `addLinks | extractConcepts | generateDiagram` — egyszeri kattintással kezelje egy jegyet a szövegből egy teljesen kapcsolódó, visuális tudású knókba. + +### Tajározott munkafolyamok + +| Munkafolyamat | Hálózat | Használati esetek | +|----------|-------|----------| +| Teljes folyamat | `addLinks \| extractConcepts \| generateDiagram` | Új jegyek | +| Először kutatás | `research \| addLinks` | Nem ismert témák | +| Köznyelvi | `translate \| addLinks` | Köznyelvű jegyek | +| Kép csak | `generateDiagram` | Rápid vizuális megjelenítés | + +→ [Munkafolyamok részletes elemzése](/docs/features/workflows) + +--- + +## 7. LLM Társítók: 36 választék a felhőtől a helyi rendszerig + +Notemd támogatja 36 társítót 4 transzporttípusban. Fő csoportok: + +- **Internacionális felhő**: OpenAI, Anthropic, Google, Mistral, xAI +- **Kínai felhő**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **Gateways**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **Helyi rendszer**: Ollama, LMStudio, OVMS — nincs API kulcs, a adatok nem kerülnek el a gépedtől + +### Munkaalkalmazás alapú stratégiája + +A legolcsóbb beállításban használják olcsó modellt egyszerű munkáknak és erős modellt komplexeknek: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [LLM Társítók áttekintése](/docs/providers/overview) + +--- + +## Elkezdéshez szükséges lépések + +1. **Írd le a Notemd** — [Community Plugins](/docs/getting-started/installation) (ajánlott) vagy manuálisan +2. **Konfigurálj egy társítót** — DeepSeek (legegyszerűbb), OpenAI, vagy Ollama (ingyenes) +3. **Kezeld a első jegyet** — kattints a jobb gombbal → "Kezeld a fájlt (hozz lépéseket)" +4. **Konceptmappának beállítása** — Beállítások → Notemd → Kielégítés → Konceptmappa +5. **Koncepciók kivonása** — futtassuk el a „Koncepciók kivonása” parancsot a sama emlékezettel +6. **Diagramm készítése** — futtassuk el a „Diagramm készítése” parancsot a kapcsolatok vizualizálásához +7. **Munkafolyam létrehozása** — összekötjük a fentieket egy egyszer kattintással működő gombba + +## Tanácsolt konfigurációk + +### Student (Budget) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### Researcher (Quality) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### Privacy-First (Local Only) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### Bilingual (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## Common Patterns + +### Muster: Research Paper kezelése + +1. Import PDF tartalmat (vagy beillesztsük) +2. **Feltételek kutatása** — számláljuk ki a témáról a webből az információkat +3. **Hivatkozások hozzáadása** — az összefüggő koncepciók megtalálata és hivatalása +4. **Koncepciók kivonása** — készítjük létre független emlékezeteket +5. **Diagramm készítése** — vizualizáljuk a tanulmány struktúráját + +### Muster: Naponta történő emlékezetek bővítése + +1. Napi feljegyzést írás +2. **Hivatkozások hozzáadása** — összekapcsolja ma napjú gondolatait a már létező konceptekkel +3. A konceptfeljegyzések automatikusan frissülnek hivatkozásokkal + +### Módszer: Irodalmi áttekintés + +1. Fájlok/feljegyzésekkel egy mappát létrehozás +2. **Hivatkozások batch-módosítása** — feldolgozza az összes mappát +3. **Közel egyező feljegyzések egyesítése** — tisztíti el a közel egyező feljegyzéseket +4. **Diagramm készítése** — az összes irodalmi anyag mindmapja + +--- + +*Notemd nyílt forráskódú (MIT) és működik Obsidian 0.15.0+ verzióval minden platformon. [Most telepítsenek](/docs/getting-started/installation) vagy [GitHub-on nézzék meg](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/hu/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/hu/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..7c841b52 --- /dev/null +++ b/website/i18n/hu/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "Konfigurálja a Anthropic Claude-t" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Anthropic Társító + +<TLDR> +**Anthropic használja a natív Messages API transzportot, nem a OpenAI-kompatibilis transzportot.** A jelen beállítás alapértelmezetten `claude-3-5-sonnet-20240620`, `https://api.anthropic.com` és `temperature: 0.5`-t használ. Hibaelhárítás során tekintse benne egy külön protokollkövetkezetnek. + +Ez része a [Obsidian AI tudományos kezelési útmutatójának](/docs/pillar-ai-knowledge). +</TLDR> + +## Elhajtás + +Írja be egy Anthropic API kulcsot, hozzáadja egy `Anthropic` társító profilot, és hagyja a Base URL-t a natív végponton, esetleg ha nincs összekötés speciális gateway profiljúl. Válassza ki a Claude model ID-t, amit szereti használni a model mezőben; az alapértelmezett változat fenntartja a meglévő termék alapvető állapotát. + +Anthropic jó választás magas minőségű összefoglalásokhoz, kutatási összeállításokhoz és konceptek kiemeléséhez. Ha összekapcsolja azt kevésbé drágább társítókkal, használja csak azok a munkákban, ahol előnyös a számlált eredmény minősége. + +## Végpont és autentikáció + +| Feltérváltozó | Jelen beállítás | +|-------|----------------| +| Transzport | `anthropic` | +| API kulcs | Előírás | +| Base URL | `https://api.anthropic.com` | +| Alapértelmezett model | `claude-3-5-sonnet-20240620` | +| Temperatúra | `0.5` | +| Kapcsolati ellenőrzés | Csatornázás nélkül | + +A futtatási idő kéréseket küld `/v1/messages`-hoz az `x-api-key` és `anthropic-version: 2023-06-01` segítségével. Ne konfigurálja egy OpenAI-stílusú `/v1/chat/completions` végpontot ebben a beállításban; használja helyett egy OpenAI-kompatibilis gateway beállítást. + +## Model felfedezése + +Anthropic használja a `anthropic-models` felfedezési módot a fornincs-eregyszerekben. Ha a kulcsod vagy kontój nem tud modellt listázni, tárold egy ismert modell ID-t a profilban és ellenőrizd az összeköttetés tesztével. + +A transzport nem lehet cserélhető ki a OpenAI-kompatibilis fornincs-eregyszerekkel. Egy Claude modell, amely átmenetül OpenRouter, LiteLLM vagy egy másik átmeneti ponton kerül el, tartozik az illeszkedő átmeneti pont profiljába, nem a natív Anthropic profiljába. + +## Hibaelhárítás + +- `401` vagy `403`: ellenőrizd a kulcs mértékeit, a munkaterületi hozzáférést, a fizetést, és hogy a kulcs a kívánt Anthropic munkaterülethez tartozik-e. +- `404`: A alap URL téves, vagy a kiválasztott modell ID nem áll rendelkezésre a kontónak. +- Átmeneti pont stílusú Claude modell ID-ek nem működnek: helyezd a profilot az illeszkedő átmeneti pont fornincs-eregyszékébe, mert a natív Anthropic elvárja a natív modellneveket. +- Hosszú kérések később失敗olnak: csökkentsd a munkaalkalmazásokhoz szóló modellkimenet méretét, vagy használj olyan modellt, amelynek nagyobb ismert kimenet-token határa van. + +## Kikorlátlan használat + +Használj a Anthropic-t akkor, ha a szintézis, kutatási felvételek vagy struktúrált írás minősége fontosabb, mint a brutt költség. Ne használj azt általános OpenAI-kompatibilis lehetséges megoldásként; a külön transzport az elsődleges, és a protokollok összekeverése megnehezíti a diagnózist. + +--- + +## További lépések + +- [LLM Fornincs-eregyszerek](/docs/providers/overview) -- Teljes konfiguráció, munkaalkalmazásokhoz szóló modellek és újrapróbálási logika +- [Hibakeresés](/docs/advanced/troubleshooting) -- 401/403 hibák és összeköttetési hibák megoldása diff --git a/website/i18n/hu/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/hu/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..b4c419b4 --- /dev/null +++ b/website/i18n/hu/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "Kínábeli szolgáltatók" +description: "Konfiguráljuk a Qwen, DeepSeek, GLM stb.-t." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Kínábeli szolgáltatók + +<TLDR> +**Notemd támogatja a Kína-regió és Kína-beli forrású fornalmakat főleg OpenAI-kompatibilis végpontok keresztül.** A jelenlegi lista be tartalma: DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, MiniMax, Baidu Qianfan, SiliconFlow, Huawei Cloud MaaS és Z AI. A előnye a régios hatékonyság és a költségkezelés; a kockázat pedig a fornalmakhoz specifikus modellnevek és fiókok szabályozása. + +Ez része a [Obsidian AI tudományos kezelési útmutatójának](/docs/pillar-ai-knowledge). +</TLDR> + +## Elhajtás + +Írj le a fornecedési fiókot, készítsen egy API kulcsot, majd válassza ki a megfelelő Notemd fornecedési beállítást, helyett hogy használja egy általános OpenAI profilt. A beállítás tartalmazza a határidős Base URL-t, a modellt, a API tesztmódot, a modellkeresési viselkedést, valamint az összes fornecedés-specifikus UI mezőt. + +Használj ide erősen a munkaalapú modellezés választását. Pl. használj a DeepSeek vagy GLM-t olyan munkafolyamatoknál, amelyekben nagy jelentőségű logikai gondolkodás szükséges; használj a Qwen vagy Moonshot-t az összefogott kínai nyelvű munkáknak, és irányítd a programozási munkákat a Qwen Code-ra, ha az account a programozói modelleket biztosít. + +## Végpont és autentikáció + +| Társító | Alapértelmezett modell | Base URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (endpoint ID szükséges) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**Megjegyzés:** Doubaonek szüksége van egy Ark endpoint ID-re (formátum: `ep-xxxxxxxx-xxxx-xxxx`), nem egy hagyományos modellnevere. + +A legtöbbi szolgáltató ezek közül használja a közös OpenAI-kompatibilis futási környezetet, de azok konténk és modelljük semantikája eltér. Használjuk a konfigurációs beállításokhoz szóló Base URL-t, esetleg ha nem ellenőrizték az account alternatív végpontját. + +## Model felfedezése + +DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan és SiliconFlow használják a OpenAI-kompatibilis modellkeresést, ha a fornecedés támogatja a listázást. Huawei Cloud MaaS használja a `huaweicloud-modelarts-models` módot, mert a ModelArts telepítési metadatái nem egyeznek egy általános `/v1/models` listaival. + +Ne tekintse el a felfedezési hibát az igazságként, hogy a chát nem lehető. Néhány szolgáltató engedi a chát használatát, de korlátozza a modelllistákhoz való hozzáférést. Ebben az esetben tárolja be a profílban egy kifejezetten meghatározott modell ID-t, és ellenőrizze azt a kapcsolati tesztelés által. + +## Hibaelhárítás + +- Az autentikáció sikerült, de a chat nem működik: a modell neve lehet a fiók jogosultságai vagy regiója határai között nélkül. +- Doubao nem működik normál modellnevvel: ha a telepítéséhez szükséges, használja a modell mezőben a Ark végpont ID-t. +- A logikai válaszok rögzítve vannak: ellenőrizze a szolgáltatók specifikus maximális kijelző token-ait és a Notemd modellal kapcsolatos maximális token beállításait. +- A régionalisített hálózati kapcsolatok eltérnek: ha a biztonsági szolgáltató gépe Kínában találódik, használjuk a fornecedéki Kínába szóló végpontot; csak akkor használjuk az internacionális végpontot, ha az account és a hálózati út mindkétük valós. + +## Kikorlátlan használat + +Ha a régionalis azonosítási idő, a fizetési/ügyfélhozzáférés, a kínai nyelvű minőség vagy a költség a fő korlát, használj Kína-beli szolgáltatókat. Ha egy egyszerűbb protokollhatárolást vagy jobb különböző szolgáltatók közötti hibalegésztést szeretnéd, előnyben adj a közvetlen OpenAI, Anthropic, Google vagy helyi szolgáltatókra. + +--- + +## További lépések + +- [LLM Fornincs-eregyszerek](/docs/providers/overview) -- Teljes konfiguráció, munkaalkalmazásokhoz szóló modellek és újrapróbálási logika +- [Hibalegésztés](/docs/advanced/troubleshooting) -- Előreállítja a régionalis kapcsolati és autentikációs hibákat diff --git a/website/i18n/hu/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/hu/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..677c677b --- /dev/null +++ b/website/i18n/hu/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "Konfigurálja a Google Gemini-t" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Google Társító + +<TLDR> +**A Google használja a natív Gemini Generative Language API transzportmódot.** A jelen beállítás alapértelmezeként `gemini-2.0-flash-exp`, `https://generativelanguage.googleapis.com/v1` és `temperature: 0.5`-t használ. Ez nem egy OpenAI-kompatibilis profill. + +Ez része a [Obsidian AI tudományos kezelési útmutatójának](/docs/pillar-ai-knowledge). +</TLDR> + +## Elhajtás + +Írja létre egy Google AI Studio vagy Google Cloud API kulcsot, amelynek van Gemini hozzáférése, adja hozzá egy `Google` fornalmi profilot, és tartson meg a natív Generative Language Base URL-t. Használja a helyettesítő Gemini Flash profillt gyors übersetésekhez és széles körű munkavégzéshez, majd módosítsa a munkától függően a modellt, ha szüksége van nagyobb vagy hatékonyabb Gemini modellre. + +Képzelje el, hogy a Gemini modell ID-t helyezzi egy OpenAI-kompatibilis profillba, csak ha kifejezetten használ egy átmenetet, amely a Gemini-t egy OpenAI-kompatibilis API-ön keresztül nyíltatja. + +## Végpont és autentikáció + +| Feltérváltozó | Jelen beállítás | +|-------|----------------| +| Transzport | `google` | +| API kulcs | Előírás | +| Base URL | `https://generativelanguage.googleapis.com/v1` | +| Alapértelmezett model | `gemini-2.0-flash-exp` | +| Temperatúra | `0.5` | +| Kapcsolati ellenőrzés | Csatornázás nélkül | + +A futás időben hívja fel a `/models/{model}:generateContent?key={apiKey}`-t. A kulcsot kérésparaméntként küldik el, mert így van konfigurált a natív Gemini végpont a pluginek benne. + +## Model felfedezése + +A Google használja a `google-models` felfedezési módot. A felfedezésnek kell visszatérnie a API kulcsra kiszolgálható Gemini modellekkel; ha a választó tömökké van, ellenőrizze a kulcsot a sama Base URL-vel és bizonyítsa meg, hogy a modellfamilia aktív az account számára. + +A ismert kimeneti token korlátok modellezőként működnek a fornalmi regisztrumban. Ha egy hosszú übersetés vagy diagram magyarázata leoml, válassza egy nagyobb kimeneti kapacitással rendelkező Gemini modellt, vagy csökkentse a kérött kimeneti méretet. + +## Hibaelhárítás + +- `400`: a modell ID általában nem illik a natív Gemini útjával, vagy a kérések meghaladják a modell támogatott formátumát. +- `401` vagy `403`: ellenőrizze a kulcs korlátait, a projekt/API aktiválását, és hogy a kulcs képes-e hozzáférni a Gemini-hez. +- `404`: a modell ID nem áll rendelkezésre a konfigurált API verzióban. +- Ez a profill alatt a átmenet példái nem működnek: használja az átmeneti beállítást helyett a natív Google fornalmat. + +## Kikorlátlan használat + +Használja a Google-t gyors übersetésekhez, nagy mennyiségű jegy tisztításához, és olyan munkavégzésekhez, ahol a Gemini költség/tehetségi arány jobb, mint a direkta OpenAI vagy Anthropic használata. Használja más fornalmat azoknak a munkavégzéseknek, amelyeknek szüksége van OpenAI-kompatibilis logikai modell kezelésre. + +--- + +## További lépések + +- [LLM Fornincs-eregyszerek](/docs/providers/overview) -- Teljes konfiguráció, munkaalkalmazásokhoz szóló modellek és újrapróbálási logika +- [Übersetés](/docs/features/translation) -- A nagy mennyiségű übersetési munkákhoz ajánlott a Gemini Flash diff --git a/website/i18n/hu/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/hu/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..9c5dca99 --- /dev/null +++ b/website/i18n/hu/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "Lokális modellek" +description: "Konfiguráljuk a Ollama-t és a helyi LLM-eket" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# Lokális modellek + +<TLDR> +**A helyi fornalmazók nem tárolják a felülvizsgált tartalmat a hosteltetett APIs-ben.** A jelenlegi helyi út kezelje az Ollama-t a natív `ollama` transzporttal, és az LMStudio-t a OpenAI-kompatibilis transzporttal. Két esetben is nincs szükség API kulcsra, de a helyi szerver és a modellnek már el kell futni. + +Ez része a [Obsidian AI tudományos kezelési útmutatójának](/docs/pillar-ai-knowledge). +</TLDR> + +## Elhajtás + +Ollama esetén telepítsenek meg a Ollama-t, hozzák le a kívánt modellt, indítják a szervert, és adják hozzá egy `Ollama` fornalmi profilt a Notemd-ben. LMStudio esetén töltse be egy modellt a LM Studio helyi szerverébe, és adjon hozzá egy `LMStudio` fornalmi profilt. + +A helyi modellek operatív függőségek, nem csupán beállítások. Notemd csak azt lehet hívni, amit a helyi folyamat nyílt meg, így előtt, hogy hibaközvetelje a plugint, ellenőrizze a helyi modellt az Obsidian körül. + +## Végpont és autentikáció + +| Társító | Base URL | Alapértelmezett modell | API kulcs | Megjegyzések | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | Nem elvárható | NDJSON streamelés; modellkeresés `/api/tags` segítségével | +| LMStudio | `localhost:1234/v1` | `local-model` | Nem elvárható | Írja el `"EMPTY"`-t bárrer tokenként; OpenAI-kompatibilis | + +Ollama használja a helyi `/chat` útját a Base URL alatt. LMStudio követi a OpenAI-kompatibilis `chat/completions` útmutatást és oczekli egy a helyi szerverben betöltött modellt. + +## Model felfedezése + +Ollama használja a `ollama-tags` felfedezési módot és listázza a helyi szinten bevonott tagokat. LMStudio használja a OpenAI-kompatibilis modellfelfedezést, ha az ő szervere elérhető a `/v1/models` formájban. + +Ha a keresés semmit nem ad vissza, az általában helyi szerveri állapoti probléma: a modell nem került lekérdezésre, nem töltődött be, vagy a szerver egy másik host/porttal van kötve a profillal. + +## Hibaelhárítás + +- Kapcsolat elutasítva: indítsa el a Ollama vagy a LM Studio-t, és ellenőrizze a konfigurált portot. +- Nem található modell: húzzon le a Ollama tagot vagy töltsön be a LM Studio modellt, mielőtt tesztelje. +- Lentes kiadás: csökkentsd a kontextus méretét, használj kevésbé erős helyi modellt, vagy küldd a súlyos munkákat egy hostelt fornalmazóhoz. +- Türelmes vagy hibás válaszok: ellenőrizze, hogy a kiválasztott fornalmazó profil megfelel a helyi szerver protokollájával; Ollama és LMStudio nem lehetnek cserélhetők. + +## Kikorlátlan használat + +Használj helyi fornítókat privát tárgyárakhoz, offline munkához vagy olcsó, repetitív feladatokhoz. Ne feltételezd, hogy a helyi megoldás automatikusan jobb a kutatási összeállításoknál vagy hosszú távolságú gondolkodásnál; a modellek minősége és a hardver korlátai az átmeneti kockázatok. + +--- + +## További lépések + +- [LLM Fornítók](/docs/providers/overview) -- Teljes konfiguráció és modellek beállítása egyes feladatokhoz +- [Hibaelhárítás](/docs/advanced/troubleshooting) -- Előre megelőzés a connection-refused hibákat, ha a helyi szerver nem fut diff --git a/website/i18n/hu/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/hu/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..d021c084 --- /dev/null +++ b/website/i18n/hu/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "Konfigurálja a OpenAI-t (GPT-4, GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# OpenAI Társító + +<TLDR> +**A OpenAI használja az összefüggő OpenAI-kompatibilis transzportot.** A jelenlegi beállítások alapértelmezettént a `gpt-4o`-, `https://api.openai.com/v1`-, `temperature: 0.5`-t és a `models-then-chat` kapcsolati ellenőrzést használják. Használja ezt a oldalt, ha precíz mezősemantikát szeretne; a kategóriái szintű választásokhoz használja a [LLM Társítók](/docs/providers/overview) áttekintést. + +Ez része a [Obsidian AI tudományos kezelési útmutatójának](/docs/pillar-ai-knowledge). +</TLDR> + +## Elhajtás + +Írjon be egy OpenAI API kulcsot, hozzáadja egy `OpenAI` társító profilt a Notemd beállításokba, és tartson meg a alapértelmezett Base URL-t, amíg nem kívánatosan utal egy OpenAI-kompatibilis kapuhoz. A modellezési mező általában a `gpt-4o`-en marható a hagyományos munkákhoz, vagy helyettesíthető más OpenAI modellezési ID-vel, amit a fiók használhat. + +Használja a feladatspecifikus modelleket költségszerkezés érdekében: használja a erősebb modelleket kutatásokhoz, konceptek kiemeléséhez és hosszabb formájú átalakításokhoz; használja a olcsóbb vagy gyorsabb modelleket fordításokhoz, hivatkozási javaslatokhoz és rövid összefoglalásokhoz. + +## Végpont és autentikáció + +| Feltérváltozó | Jelen beállítás | +|-------|----------------| +| Transzport | `openai-compatible` | +| API kulcs | Előírás | +| Base URL | `https://api.openai.com/v1` | +| Alapértelmezett model | `gpt-4o` | +| Temperatúra | `0.5` | +| Kapcsolati ellenőrzés | `/models`, majd `/chat/completions` | + +A Notemd normalizálja a OpenAI-kompatibilis alap URL-ket, mielőtt hozzáadjon a `chat/completions`-t vagy a `models`-t. Ne tartalmazza egy végén lévő `/chat/completions`-t a Base URL-ban; ez okoz duplikált útvonalot. + +## Model felfedezése + +A OpenAI használja a generikus OpenAI-kompatibilis modellezési felfedezési útvonalat. A beállítások a UI először kérdezik a `/v1/models`-t, majd ellenőrizik a választott modelletet egy légképes chat kéréssel. Ha a felfedezés nem sikerül, de a chat még is működik, ellenőrizze, hogy a kulcsa modellezési listájhoz való hozzáférést tartalmaz-e, vagy hogy egy kapu blokkolja a modellezési listázást. + +A logikai modelleket tekintjük egy protokoll-specifikus kivételnek: a Notemd összevonja a rendszeri és a felhasználói kéreleteket az OpenAI logikai ID-ekhez, amelyek elutasítják egy külön `system` szerepét, és csak akkor nyíltatja meg a `reasoningEffort`-t, ha a társító definició ezet támogatja. + +## Hibaelhárítás + +- `401` vagy `403`: ellenőrizze a kulcsot, a projekt hozzáférését, a fizetési állapotot és azt, hogy a választott modellet engedélyezett-e a kulcsnak. +- A chatben a `404`: az alap Base URL általában hibás vagy már tartalmazza a `/chat/completions`-t. +- A modellek jelenek a dokumentációban, de nem a választóban: a modellezési listájhoz való hozzáférés és a chat hozzáférése külön kockázati pontok; ellenőrizze manuálisan a pontos modellezési ID-t a társító profilban. +- A logikai modellek elutasítják a üzeneteket: használja egy OpenAI logikai kezelési útvonal alatt lévő modellezési ID-t, vagy váltson egy nem-logikai chat modellekre. + +## Kikorlátlan használat + +Használja a OpenAI-t, ha kívánja a leg előrejelzhetőbb alaphelyezkedésű tartalmazást, ha az `/v1/models` felfedezése fontos, vagy ha egy munkafolyam attól függ, hogy a OpenAI logikai modellezési semantika működik-e. Ha a irányítás, a privátosság vagy a költségszerkezés fontosabb, előnyben adjon a kapuhoz vagy helyi társítóhoz, mint az közvetlen OpenAI API viselkedéshez. + +--- + +## További lépések + +- [LLM Fornincs-eregyszerek](/docs/providers/overview) -- Teljes konfiguráció, munkaalkalmazásokhoz szóló modellek és újrapróbálási logika +- [Hibajavítás](/docs/advanced/troubleshooting) -- 401/403 hibák és szabálykorlátok megoldása diff --git a/website/i18n/hu/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/hu/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..4a595691 --- /dev/null +++ b/website/i18n/hu/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "LLM Társítók" +description: "36 LLM társítót konfigurálható – felhő, átjáró és helyi – műveletenkénti modellelem választásával" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# LLM Társítók + +<TLDR> +**Notemd 36 LLM társítót támogat 4 transzporttípusban.** Minden API kérésekhez használódik az összetett HTTP (nem vannak SDK-k), amelyben automatikus újrakövetés, transzportállapító átváltás és 5 percös válaszmezőtárolás van. A műveletenkénti modellelem lehetősége lehetővé teszi, hogy a konceptek kivonásához olcsó modelleket, a kutatásokhoz pedig erős modelleket használjunk. A helyi társítókhoz (Ollama, LMStudio) nincs szükség API kulcsra. +</TLDR> + +Ez része a [Obsidian AI tudományos kezelési útmutatójának](/docs/pillar-ai-knowledge). + +## Társítók kategóriái + +### Felhőtársítók + +| Társító | Alapértelmezett alap URL | Alapértelmezett modell | Temperatúra | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### Átjáró / Proxy társítók + +| Társító | Alapértelmezett alap URL | Alapértelmezett modell | Megjegyzések | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | Hozzáadja a `HTTP-Referer` + `X-Title` fejleteket | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | Hozzáadja a `X-GitHub-Api-Version` fejlet | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | Hozzáadja a `APP-Code` fejlet | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | Választható API kulcs | +| **Új API** | `localhost:3000/v1` | `gpt-4.1` | Választható API kulcs | +| **OpenAI Compatible** | (használó-konfigurált) | `your-model-id` | Szerkeszthető végpont | + +### Kínábeli szolgáltatók + +| Társító | Alapértelmezett bázis URL | Alapértelmezett modell | Megjegyzések | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | Kódoláshoz specializált | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (endpoint ID szükséges) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | Zhipu, Kína végpontja | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | Zhipu, nemzetközi végpontja | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | Modell-hostelési platform | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubaonek egy Ark végpont ID-re van szüksége** (formátum: `ep-xxxxxxxx-xxxx-xxxx`). A alapértelmezett helyettesítőt kell cserélni. + +### Lokális fornítók + +| Társító | Alapértelmezett bázis URL | Alapértelmezett modell | Megjegyzések | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | Nincs API kulcs. NDJSON streamelés. Modellkeresés `/api/tags` keresztül | +| **LMStudio** | `localhost:1234/v1` | `local-model` | Írja el `"EMPTY"`-t bármérő tokenként. OpenAI-kompatibilis keresés | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (használó-konfigurált) | `gpt-4o` | Elhelyezési nevű URL-ban. `api-key` címzete | + +## Munkaalapú modell választása + +Notemd támogatja külön felelőt és modellt minden munkához. Engedélyezze az `useMultiModelSettings: true`-vel. + +### Lelévő munkák + +| Munka | Beállítások kulcsa | Alapfelelő | +|------|-------------|-----------------| +| Hivatkozások hozzáadása (wiki-hivatkozás beillesztése) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| Tudományos kutatás (web-keresés + összefoglalás) | `researchProvider` / `researchModel` | DeepSeek | +| Cím alapján készítés | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| Übersetzung | `translateProvider` / `translateModel` | DeepSeek | +| Diagram készítése | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| Konceptek kiemelése | `extractConceptsProvider` / `Model` | DeepSeek | +| Összességi szöveg kiemelése | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### Löszerőrend + +1. Ha `useMultiModelSettings` aktív → használja a munkához specifikus felelőt és modellt +2. Ha a munka modellének módosítása üres → válassza ki a felelő alapmodellt +3. Ha a munka felelője érvénytelen → válassza ki a globális `activeProvider`-t +4. Ha `useMultiModelSettings` nincs bekapcsolva → az összes munkahasználja a globális `activeProvider`-t + +### Tanácsolt konfigurációk + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## API hívás architektúrája + +### Transzportrétegek + +1. **Obsidian `requestUrl`** — primáris (beépített, működik minden platformon) +2. **Asztali HTTP** — Node.js `http`/`https` modulok (streaming + hosszú kérések) +3. **Web `fetch`** — lehetséges választó, ha a Node.js modulok nem elérhetőek + +A plug-in automatikusan átmeneti hálózati hibák esetén átmeni a transzportrétegek között. + +### Ugyanírás logika + +- **Normál módszer** (`enableStableApiCall: false`): Egy kísérlet. Átmeneti hiba esetén automatikusan emelkedik egy stabilabb ugyanírásra. +- **Stabil ugyanírás módszer** (`enableStableApiCall: true`): Legfeljebb 4 kísérlet (1 + 3 ugyanírás) 5 másodperces intervallumokkal. +- **Átmeneti hibák, amelyek indítják az ugyanírást**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **Nem ugyanírhatók**: HTTP 400, 401, 403, 404 + +### Válasz tárolása + +5 percös memóriában lévő LRU tároló, amely kulcsa a fornító + modell + temperatúra + kérdés + tartalom. A következő egyező kérések 5 perc alatt azonnal adják vissza a tárolt eredményeket. + +### Logikai modell kezelése + +Akik a `system` szerepét (DeepSeek R1, OpenAI o1/o3/o4/gpt-5) nem támogatják, azoknál a rendszeri + felhasználói kérdések automatikusan összevonódnak egyetlen felhasználói üzenettel. + +DeepSeek-specifikus: `thinkingEnabled` hozzáadja `{ thinking: { type: 'enabled' } }` a kéréhez. `reasoningEffort` (alacsony/közepes/felső) kerül át jako `reasoning_effort`. ellenőrizi, hogy a maximális kijelölt token száma ≥ 8000, ha aktiválva a gondolkodás. + +### Token-értékelés + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — 4 karakteres token-heuristikus. Használódik az `maxResearchContentTokens` megkövetésére, mielőtt küldjük az LLM-he. + +Nincs implementált költségkövetés. + +## Model felfedezése + +| Módszer | Társítók | Végpont | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | Modellek listája API | +| `anthropic-models` | Anthropic | Modellek listája API | +| `openai-compatible-models` | DeepSeek, Qwen, Mistral stb. | `/v1/models` | +| `openrouter-models` | OpenRouter | Modellek listája API | +| `github-models` | GitHub Models | Inferenciális folyamat API | +| `none` | Azure OpenAI | Kikapcsolva (kötelező a telepítésnev) | + +## Rágratkozás + +1. **Válassza egy társítót** — DeepSeek (Kína), OpenAI (Internacionális) vagy Ollama (Lokális/Tiszta) +2. **Írja be a API kulcsot** — Beállítások → Notemd → Társító → API Kulcs +3. **Próbálja ki a kapcsolatot** — Kattintson a teszt gombra +4. **Választható: Feladatspecifikus modellek** — Engedélyezze a `useMultiModelSettings`-t és konfigurálja azokat külön-külön + +Ollama esetén: nincs szükség API kulcsra. Csak ellenőrizze, hogy a `ollama serve` működik. + +--- + +## További lépések + +- 📝 [Koncepti leírások](/docs/features/concept-notes) — Használja a feladatspecifikus extrakciós modellt +- 🎨 [Diagramok](/docs/features/diagrams) — Használja a feladatspecifikus diagrammodellt +- 🔍 [Tudományos kutatások](/docs/features/research) — Használja a kutatásspecifikus modellt +- ⚙️ [Konfiguráció](/docs/getting-started/configuration) — Teljes beállítások referenciája diff --git a/website/i18n/hu/docusaurus-theme-classic/footer.json b/website/i18n/hu/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/hu/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/hu/docusaurus-theme-classic/navbar.json b/website/i18n/hu/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/hu/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/id/code.json b/website/i18n/id/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/id/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/id/docusaurus-plugin-content-docs/current.json b/website/i18n/id/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/id/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/id/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/id/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..60af4211 --- /dev/null +++ b/website/i18n/id/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "Pemrosesan Batch" +description: "Memproses beberapa file secara efisien" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# Pemrosesan Batch + +<TLDR> +**Notemd memproses seluruh folder dalam satu tindakan dengan tingkat konkurensi yang dapat dikonfigurasi dan kontrol penggantian.** Klik kanan pada sebuah folder untuk menambahkan tautan wiki secara batch, mengekstrak konsep, melakukan penelitian, atau menerjemahkan semua catatan di dalamnya. Batasan konkurensi mencegah kesalahan batas kecepatan API. Kemajuan dipantau per file. Perilaku penggantian dapat dikonfigurasi: melewatkan yang sudah ada, menambahkan, atau menggantikan. File yang gagal dicatat tanpa menghentikan pemrosesan batch. + +Ini merupakan bagian dari [Obsidian Panduan Manajemen Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Gambaran Umum + +Pemrosesan batch mengubah folder berisi catatan menjadi satu operasi tunggal. Alih-alih membuka setiap catatan dan menjalankan perintah secara terpisah, Anda cukup klik kanan pada folder dan pilih tugasnya. Notemd akan menelusuri setiap file `.md`, menerapkan tindakan yang dipilih, dan melaporkan kemajuan secara real time. + +Fitur ini sangat penting untuk ekstraksi pengetahuan di seluruh vault. Setelah mengimpor puluhan file PDF, misalnya, dengan menambahkan tautan secara batch lalu mengekstrak konsep secara batch, grafik pengetahuan Anda dapat dibangun dalam hitungan menit bukan jam. + +## Cara Kerjanya + +### Model Eksekusi Batch + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **Pengumpulan file** -- Notemd memindai folder target secara rekursif (atau hanya tingkat atas, tergantung pengaturan) dan mengumpulkan semua file `.md`. +2. **Pembagian konkurensi** -- File dibagi menjadi beberapa bagian berdasarkan pengaturan `batchConcurrency`. Setiap bagian dijalankan secara paralel; bagian lain dijalankan secara berurutan. +3. **Eksekusi** -- Setiap file diproses menggunakan logika yang sama seperti perintah untuk file tunggal. Pengaturan penyedia dan model per tugas tetap dihormati. +4. **Laporan kemajuan** -- Pemberitahuan toast diperbarui setelah setiap file selesai, menunjukkan persentase kemajuan `N / Total`. +5. **Penanganan kesalahan** -- Jika suatu file gagal (kesalahan API, waktu tunggu jaringan, dll.), kesalahannya dicatat dan pemrosesan batch tetap berlanjut. Ringkasan akhir mencantumkan file yang gagal. +6. **Penyelesaian** -- Pemberitahuan toast ringkasan melaporkan total file yang diproses, yang berhasil, dan yang gagal. + +### Perilaku Menggantikan + +Saat memproses file yang sudah memiliki tautan wiki, catatan konsep, atau terjemahan, perilaku Notemd bergantung pada pengaturan menggantikan: + +| Mode | Perilaku | +|------|----------| +| **Skip** | Konten yang ada tidak diubah. Hanya file yang belum dimodifikasi yang diproses. | +| **Append** (default) | Konten baru ditambahkan. Tautan wiki, konsep, atau terjemahan yang sudah ada tetap dipertahankan. | +| **Replace** | File diproses ulang sepenuhnya. Semua modifikasi Notemd sebelumnya akan digantikan. | + +Untuk tautan wiki khususnya: jika sebuah catatan sudah berisi `[[wiki-links]]`, mode **skip** akan membiarkannya begitu saja, sementara mode **replace** akan mengirim ulang seluruh catatan ke LLM untuk penyisipan tautan yang baru. Gunakan **skip** untuk pemrosesan bertahap dan **replace** untuk pemrosesan ulang setelah pembaruan model. + +### Kontrol Konkurensi + +Pengaturan `batchConcurrency` membatasi panggilan paralel API. Hal ini mencegah kesalahan batas kecepatan (HTTP 429) saat memproses folder besar pada penyedia dengan kuota yang ketat. + +| Konkurensi | Disarankan Untuk | Dampak Batas Kecepatan yang Umum | +|-------------|----------------|---------------------------| +| `1` | Tingkatan gratis, penyedia yang ketat | Tidak ada (serial) | +| `3` (default) | Sebagian besar penyedia cloud | Rendah | +| `5` | Ollama (local), tingkatan yang murah | Tidak ada / Rendah | +| `10` | Model lokal dengan inferensi cepat | Tidak ada | + +Jika Anda mengalami kesalahan 429 saat pemrosesan batch, kurangi konkurensi menjadi 1 atau 2. + +## Konfigurasi + +| Pengaturan | Default | Efek | +|---------|---------|--------| +| `batchConcurrency` | `3` | Maksimum panggilan API paralel selama operasi folder | +| `batchOverwriteExisting` | `false` | Menulisi ulang konten Notemd yang sudah ada. `false` berarti mode tambahan. | +| `batchSkipProcessed` | `false` | Melewatkan file yang sudah mengandung penanda Notemd (misalnya, tautan wiki) | +| `batchRecursive` | `true` | Memasukkan subdirektori saat memindai folder | +| `enableStableApiCall` | `false` | Mengaktifkan logika percobaan ulang (hingga 4 kali percobaan) per file selama proses batch | + +### Model Per-Tugas dalam Batch + +Setiap operasi batch menggunakan model per-tugas yang sesuai. batch-add-links menggunakan `addLinksProvider`, batch-research menggunakan `researchProvider`, dan seterusnya. Hal ini berarti Anda dapat menugaskan model murah untuk operasi volume besar dan menyisihkan model mahal untuk tugas yang membutuhkan kualitas tinggi. + +## Contoh + +Anda memiliki sebuah folder `papers/` yang berisi 40 catatan penelitian yang diimpor. Anda ingin menambahkan tautan wiki dan mengekstrak konsep dari semuanya: + +1. Klik kanan pada folder `papers/` +2. Pilih **"Notemd: Process folder (add links)"** +3. Notemd memindai folder tersebut, menemukan 40 file `.md`, dan memprosesnya sebanyak 3 file sekaligus (konkurensi default) +4. Tampilan toast progres menunjukkan: `12/40 files processed...` +5. Setelah sekitar 3 menit, toast ringkasan melaporkan: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. Ulangi dengan **"Notemd: Process folder (extract concepts)"** untuk membuat catatan konsep untuk seluruh 40 file tersebut + +File yang gagal akan dicatat. Anda dapat menjalankannya kembali hanya pada file tersebut nantinya. + +## Tips + +- **Mulailah dengan konkurensi rendah** -- Jika Anda tidak yakin dengan batas kecepatan penyedia layanan, mulailah dengan `1` dan tingkatkan secara bertahap. +- **Gunakan mode skip untuk pembaruan bertahap** -- Setelah batch pertama selesai, beralihlah ke `batchSkipProcessed: true` agar hanya catatan baru yang diproses pada eksekusi berikutnya. +- **Aktifkan panggilan API yang stabil** -- `enableStableApiCall: true` menambahkan logika percobaan ulang yang memulihkan diri dari kesalahan jaringan sementara selama batch yang panjang. +- **Jalankan kembali setelah pembaruan model** -- Jika Anda beralih ke model yang lebih baik, atur `batchOverwriteExisting: true` dan jalankan kembali untuk mendapatkan tautan dan konsep yang lebih baik. + +--- + +## Langkah Selanjutnya + +- [Workflows](/docs/features/workflows) -- Menggabungkan tugas batch menjadi tombol samping satu klik +- [Custom Prompts](/docs/advanced/custom-prompts) -- Menyesuaikan prompt untuk ekstraksi batch +- [Troubleshooting](/docs/advanced/troubleshooting) -- Memperbaiki kesalahan batas kecepatan dan kegagalan koneksi selama eksekusi batch +- [LLM Penyedia](/docs/providers/overview) -- Referensi konfigurasi model per tugas diff --git a/website/i18n/id/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/id/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..12c17efe --- /dev/null +++ b/website/i18n/id/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "Prompt Kustom" +description: "Kustomisasi prompt LLM sesuai kebutuhan Anda" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# Prompt Kustom + +<TLDR> +**Notemd memungkinkan Anda menggantikan prompt LLM bawaan untuk setiap jenis tugas.** Prompt kustom memberi Anda kendali atas apa yang menjadi prioritas model: Anda dapat membatasi ekstraksi konsep pada disiplin tertentu, mengubah gaya penghubungan, atau mengarahkan nada terjemahan. Variabel prompt seperti `{{content}}` dan `{{concept}}` akan digantikan saat eksekusi. Fitur domain pembelajaran terfokus menambahkan bidang studi Anda di awal untuk secara otomatis membatasi hasil ekstraksi. + +Ini merupakan bagian dari [Obsidian Panduan Manajemen Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Gambaran Umum + +Prompt bawaan Notemd ditulis untuk pekerjaan pengetahuan umum. Prompt tersebut berfungsi dengan baik di berbagai domain, tetapi masih membutuhkan peningkatan khusus untuk setiap bidang. Prompt kustom memungkinkan Anda memberi petunjuk yang jelas kepada LLM tentang cara bertindak sesuai kasus penggunaan Anda — entah itu hanya mengekstrak terminologi medis, hanya menghubungkan entitas bernama, atau menerjemahkan dalam gaya formal. + +Prompt kustom tidak menggantikan seluruh prompt sistem. Prompt ini menggantikan atau melengkapi bagian instruksi spesifik tugas sambil mempertahankan format output struktural (misalnya baris `CONCEPT:`, sintaks tautan wiki) yang diperlukan Notemd untuk pemrosesan. + +## Cara Kerjanya + +### Arsitektur Prompt + +Setiap tugas Notemd mengikuti struktur prompt yang sama: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **Prompt sistem dasar** -- Menetapkan persona asisten. Tidak dapat digantikan. +2. **Domain pembelajaran terfokus** -- Menambahkan `Relevant Fields: [medicine / law / computer science / ...]` di awal untuk membatasi cakupan. Ini merupakan opsi pengaturan, bukan prompt mentah. +3. **Prompt tugas kustom** -- Menggantikan instruksi tugas bawaan (misalnya jenis konsep yang akan diekstrak, seberapa agresifnya penghubungan dilakukan). +4. **Format output** -- Aturan struktural (baris `CONCEPT:`, format tautan wiki). Selalu ditambahkan oleh Notemd untuk memastikan dapat diproses. +5. **Isi** -- Teks catatan yang sebenarnya, digantikan saat eksekusi melalui `{{content}}`. + +### Variabel Prompt + +Variabel akan digantikan pada saat eksekusi. Variabel yang tersedia berbeda tergantung tugas: + +| Variable | Tugas | Diganti Dengan | +|----------|-------|---------------| +| `{{content}}` | Semua | Teks catatan atau pilihan | +| `{{concept}}` | Template catatan konsep | Nama konsep yang diekstrak | +| `{{description}}` | Template catatan konsep | Deskripsi konsep yang dihasilkan oleh LLM | +| `{{backlinks}}` | Template catatan konsep | Daftar catatan sumber beserta tautannya | +| `{{date}}` | Template catatan konsep | Tanggal saat ini (YYYY-MM-DD) | +| `{{language}}` | Terjemahan | Bahasa output target | +| `{{source}}` | Template catatan konsep | Nama file dasar catatan sumber | + +### Domain Pembelajaran Terfokus + +Fitur pembelajaran terfokus merupakan pintasan untuk membatasi cakupan bidang. Alih-alih menulis prompt khusus yang menyebutkan bidang Anda, Anda atur `focusedLearningDomain` di pengaturan: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +Hal ini akan menambahkan `Relevant Fields: [medicine]` di awal prompt ekstraksi, sehingga LLM akan memprioritaskan konsep yang relevan dengan bidang dan menekan konsep umum. Cara ini lebih ringan dibandingkan prompt khusus penuh dan berfungsi pada semua tugas ekstraksi. + +## Konfigurasi + +| Pengaturan | Default | Efek | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | Gantikan prompt tugas tambah tautan bawaan | +| `customExtractConceptsPrompt` | `''` | Gantikan prompt ekstraksi konsep bawaan | +| `customResearchPrompt` | `''` | Gantikan prompt penelitian + ringkasan bawaan | +| `customTranslatePrompt` | `''` | Gantikan prompt terjemahan bawaan | +| `customDiagramPrompt` | `''` | Gantikan prompt pembuatan diagram bawaan | +| `focusedLearningDomain` | `''` | Tambahkan konteks disiplin di awal prompt ekstraksi dan tautan | +| `extractConceptsMinimalTemplate` | `true` | Gunakan template catatan konsep hanya berupa judul (mempengaruhi cakupan template `{{concept}}`) | +| `customConceptNoteTemplate` | `''` | Gantikan template file catatan konsep dengan dukungan variabel penuh | + +**Jika bidang prompt khusus kosong, maka akan digunakan prompt bawaan yang sudah ada.** + +## Contoh + +Anda adalah peneliti medis yang mengekstrak konsep dari catatan uji klinis. Prompt bawaan mengekstrak kata benda umum bersama istilah medis, yang menyebabkan folder konsep Anda menjadi berantakan. + +**Solusinya:** Atur domain pembelajaran terfokus dan prompt ekstraksi khusus. + +1. Atur `focusedLearningDomain` ke `medicine` +2. Atur `customExtractConceptsPrompt` ke: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +Sekarang ketika Anda menjalankan "Extract concepts" pada catatan klinis, LLM menghasilkan: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +Bukan perilaku bawaan yang mungkin juga mengekstrak istilah umum yang tidak diinginkan seperti "hospital" atau "month". + +## Tips + +- **Mulailah dengan domain pembelajaran yang terfokus** sebelum membuat prompt kustom penuh. Cara ini mencakup 80% kasus penggunaan hanya dengan satu pengaturan. +- **Jaga format output** -- Jangan pernah menghapus instruksi format seperti "one per line" atau "CONCEPT: prefix" dari prompt kustom. Parser Notemd bergantung pada instruksi tersebut. +- **Uji terlebih dahulu pada satu catatan** -- Prompt kustom dapat berdampak tak terduga pada luasnya ekstraksi. Periksa pada satu catatan sebelum memproses secara massal. +- **Jaga prompt tetap ringkas** -- Prompt kustom yang terlalu panjang akan menghabiskan token dan dapat mengurangi fokus model. + +--- + +## Langkah Selanjutnya + +- [Wiki-Links](/docs/features/wiki-links) -- Apa yang akan terhubung ketika Anda mengkustomisasi prompt add-links +- [Concept Notes](/docs/features/concept-notes) -- Template catatan konsep dan variabel `{{concept}}` +- [Batch Processing](/docs/advanced/batch-processing) -- Menerapkan prompt kustom ke seluruh folder +- [Troubleshooting](/docs/advanced/troubleshooting) -- Memperbaiki masalah di mana prompt kustom menghasilkan output yang tidak diharapkan diff --git a/website/i18n/id/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/id/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..e7ab0b04 --- /dev/null +++ b/website/i18n/id/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "Pemecahan Masalah" +description: "Masalah umum dan solusinya" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Pemecahan Masalah + +<TLDR> +**Sebagian besar Notemd masalah tergolong ke dalam empat kategori: masalah kunci API, koneksi jaringan, kesalahan autentikasi (401/403), dan batasan laju (429).** Tes koneksi bawaan serta panel diagnosis dapat mengidentifikasi penyebab utama dengan cepat. Halaman ini membahas setiap pesan kesalahan umum, penyebabnya, serta cara memperbaikinya. Untuk masalah yang tidak tercantum di sini, laporkanlah melalui GitHub Issues beserta hasil diagnosisnya. + +Ini merupakan bagian dari [Obsidian Panduan Manajemen Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Gambaran Umum + +Notemd bergantung pada layanan eksternal -- penyedia LLM dan mesin pencari API -- sehingga sebagian besar masalah berasal dari luar plugin itu sendiri. Panel diagnosis di pengaturan menyediakan tampilan terstruktur dari panggilan terakhir API, termasuk permintaan URL, status respons, dan isi kesalahan. Selalu periksa panel ini terlebih dahulu sebelum melakukan penyelidikan lebih lanjut. + +## Cara Kerjanya: Diagnosis + +### Tes Koneksi + +Setiap bagian pengaturan penyedia memiliki tombol **"Uji Koneksi"**. Dengan mengkliknya, akan dikirim permintaan API yang sederhana (biasanya daftar model atau hasil kompletasi singkat) dan dilaporkan apakah berhasil atau terdapat kesalahan HTTP tertentu. Ini merupakan cara tercepat untuk memverifikasi bahwa kunci API dan basis URL Anda benar. + +### Panel Diagnosis + +**Pengaturan --> Notemd --> Diagnosis** menampilkan: + +| Field | Content | +|-------|---------| +| Penyedia Terakhir | Penyedia mana yang terakhir dipanggil | +| Model Terakhir | Model mana yang terakhir dipanggil | +| Status terakhir | Kode status HTTP atau kesalahan transportasi | +| Kesalahan terakhir | Pesan kesalahan mentah dari API | +| Permintaan terakhir URL | Seluruh URL dari permintaan terakhir (kunci API dirahasiakan) | +| Isi respons terakhir | Isi respons yang dipotong (500 karakter pertama) | + +Salin keluaran diagnosis lengkap saat melaporkan masalah di GitHub. + +## Kesalahan Umum + +### Kunci API tidak valid atau hilang + +**Gejala:** HTTP 401 atau "Kunci API yang diberikan salah" + +**Penyebab:** Kunci API hilang, berisi spasi, atau berasal dari penyedia yang berbeda. + +**Pemecahan:** +1. Periksa bahwa kunci tidak memiliki spasi di awal/akhir +2. Pastikan kunci sesuai dengan penyedia yang dipilih (kunci OpenAI tidak akan berfungsi dengan Anthropic) +3. Periksa apakah akun Anda memiliki kredit atau berlangganan yang aktif +4. Klik **"Test Connection"** untuk memverifikasi + +### Kesalahan Jaringan / Koneksi + +**Gejala:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**Penyebab:** Endpoint API tidak dapat diakses dari mesin Anda. + +**Pemecahan:** +1. Periksa koneksi internet Anda +2. Jika berada di balik proxy atau firewall, pastikan domain API tidak terblokir +3. Untuk Ollama: pastikan `ollama serve` sedang berjalan (`ollama list` seharusnya mengembalikan model) +4. Untuk LMStudio: pastikan server sedang berjalan di `localhost:1234` +5. Coba transportasi yang berbeda -- pengguna ponsel harus memastikan transportasi `requestUrl` aktif +6. Aktifkan `enableStableApiCall` untuk percobaan ulang otomatis pada kesalahan sementara + +### 403 Forbidden + +**Gejala:** HTTP 403 + +**Penyebab:** Kunci API Anda valid tetapi tidak memiliki izin untuk sumber daya yang diminta. + +**Pemecahan:** +1. Beberapa model memerlukan akses khusus (misalnya, GPT-4 melalui Azure memerlukan nama penyebaran) +2. Beberapa penyedia membatasi model berdasarkan tingkatan paket -- periksa akun Anda +3. Mungkin ada pembatasan regional (beberapa penyedia di Cina memblokir IP internasional dan sebaliknya) +4. Pastikan nama model ditulis dengan benar (misalnya, `gpt-4o` bukan `gpt-4o-mini` ketika model mini adalah satu-satunya yang diizinkan oleh paket Anda) + +### Rate Limit (429) + +**Gejala:** HTTP 429 atau "Rate limit exceeded" + +**Penyebab:** Terlalu banyak permintaan dalam jendela waktu singkat. + +**Solusi:** +1. Kurangi `batchConcurrency` menjadi `1` atau `2` +2. Tunggu beberapa menit sebelum mencoba lagi +3. Periksa dokumentasi batas kecepatan penyedia untuk tingkatan paket Anda +4. Aktifkan `enableStableApiCall` untuk percobaan ulang otomatis dengan backoff +5. Pertimbangkan beralih ke penyedia dengan batas yang lebih tinggi (DeepSeek, Ollama) + +### Model Tidak Ditemukan + +**Gejala:** "Model not found" atau HTTP 404 + +**Penyebab:** Nama model tidak ada di penyedia yang dipilih. + +**Perbaikan:** +1. Klik **"Get Model List"** untuk melihat semua model yang tersedia untuk penyedia Anda +2. Nama beberapa model berubah seiring waktu -- periksa nama terkini di dokumentasi penyedia +3. Untuk Ollama: jalankan `ollama list` untuk melihat model yang diunduh; hanya model yang sudah diunduh yang tersedia + +### Tidak ada Tautan / Tidak ada Konsep yang Dihasilkan + +**Gejala:** Perintah berjalan tetapi tidak menghasilkan keluaran + +**Penyebab:** LLM mengembalikan respons kosong atau tidak dapat diproses. + +**Perbaikan:** +1. Periksa panel diagnostik untuk melihat respons LLM yang sebenarnya +2. Coba model yang lebih kuat (beberapa model kecil kesulitan menghasilkan output terstruktur) +3. Pastikan catatan memiliki konten yang cukup (>50 kata) +4. Periksa prompt kustom Anda untuk instruksi yang bertentangan +5. Nonaktifkan penekanan sinonim sementara untuk melihat apakah hal itu memfilter terlalu ketat + +### ID Endpoint Doubao Tidak Ada + +**Gejala:** Kesalahan saat menggunakan penyedia ByteDance Doubao + +**Penyebab:** Doubao memerlukan ID endpoint Ark (format: `ep-xxxxxxxx-xxxx-xxxx`) bukan nama model. + +**Perbaikan:** Gantilah model placeholder default dengan ID endpoint asli Anda dari konsol Volcengine. + +## Konfigurasi + +| Pengaturan Diagnostik | Lokasi | Tujuan | +|--------------------|----------|---------| +| **Uji Koneksi** | Bagian Provider di Pengaturan | Periksa kunci API dan ketersambungan | +| **Dapatkan Daftar Model** | Bagian Provider di Pengaturan | Pastikan model mana yang dapat diakses | +| `enableStableApiCall` | Pengaturan --> Lanjutan | Aktifkan pengulangan dengan mekanisme backoff | +| `batchConcurrency` | Pengaturan --> Batch | Kontrol paralelisme untuk menghindari batasan kecepatan | + +## Cara Melaporkan Masalah + +Jika masalah Anda tidak tercakup di atas: + +1. Buka **Pengaturan --> Notemd --> Diagnostik** +2. Salin seluruh keluaran diagnostik +3. Buka masalah GitHub di [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +4. Sertakan: versi Obsidian, versi Notemd, penyedia, model, keluaran diagnostik, dan langkah-langkah untuk mereproduksi +5. Sembunyikan kunci API Anda dari log yang dibagikan + +--- + +## Langkah Selanjutnya + +- [LLM Penyedia](/docs/providers/overview) -- Referensi lengkap konfigurasi penyedia +- [Pemrosesan Batch](/docs/advanced/batch-processing) -- Pengaturan konkurensi dan pengulangan untuk operasi besar +- [Prompt Kustom](/docs/advanced/custom-prompts) -- Perbaiki perilaku LLM yang tidak terduga dengan menyesuaikan prompt diff --git a/website/i18n/id/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/id/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..fe6cbb6c --- /dev/null +++ b/website/i18n/id/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "Pertanyaan yang Sering Diajukan" +description: "Pertanyaan umum mengenai instalasi, fitur, dan penggunaan Notemd" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# Pertanyaan yang Sering Diajukan + +<TLDR> +**Jawaban cepat untuk pertanyaan Notemd yang paling umum.** Meliputi instalasi (pengaturan 5 menit), dukungan lebih dari 30 provider LLM, opsi model lokal/cloud, alur kerja satu klik, UI berbahasa banyak (21 bahasa), otomatisasi pemberian tautan wiki, integrasi penelitian, alur kerja pembacaan PDF, pembuatan diagram, dan lisensi sumber terbuka. Semua fitur dapat berfungsi offline dengan Ollama. +</TLDR> + +--- + +## Instalasi & Pengaturan + +### Bagaimana cara menginstal Notemd di Obsidian? + +Buka Obsidian **Settings → Community Plugins → Browse** → cari **"Notemd"** → **Install** → **Enable**. + +**Persyaratan:** +- Obsidian 0.15.0+ +- Didukung di Desktop (Windows, macOS, Linux) dan Mobile (iOS, Android) + +**Instalasi manual:** +1. Unduh `main.js`, `styles.css`, `manifest.json` dari [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) +2. Letakkan file‑file tersebut di dalam `<your-vault>/.obsidian/plugins/notemd/` +3. Muat ulang Obsidian dan aktifkan plugin tersebut + +**Statistik:** lebih dari 4k unduhan, 44 rilis, berlisensi MIT. + +--- + +## Konfigurasi LLM + +### Apa penyedia LLM yang didukung oleh Notemd? + +Notemd mendukung **lebih dari 30 penyedia**: + +**Penyedia cloud:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonnet, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**Fokus di Cina:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**Lokal/ter-hosting sendiri:** +- Ollama +- LM Studio +- Setiap endpoint yang kompatibel dengan OpenAI + +**Gateway:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models, Fireworks, LiteLLM, Nebius, Cerebras +- Hugging Face, Vercel AI Gateway, Requesty + +### Bisakah Notemd bekerja dengan LLM lokal? + +**Ya, sepenuhnya didukung.** Notemd dapat digunakan dengan: +- **Ollama** (integrasi bawaan) +- **LM Studio** (melalui endpoint yang kompatibel dengan OpenAI) +- **vLLM, LocalAI, text-generation-webui** (dalam mode yang kompatibel dengan OpenAI) + +Semua tugas dapat menggunakan model lokal: penghubungan, pembuatan konsep, penerjemahan, penelitian, dan pembuatan diagram. + +**Contoh campuran:** +- Ollama (lokal) untuk penghubungan → cepat, pribadi, tanpa biaya +- OpenAI untuk penelitian → kualitas tinggi, integrasi pencarian web +- Gemini untuk penerjemahan → dukungan multimodal + +### Bagaimana cara mengonfigurasi model yang berbeda untuk tugas yang berbeda? + +Di **Pengaturan Notemd**, setiap tugas memiliki pilihan penyedia/model yang terpisah: + +| Tugas | Konfigurasi Contoh | +|------|----------------------| +| **Penghubungan** | DeepSeek (cepat, murah) | +| **Pembuatan Konsep** | Claude Opus (kualitas tinggi) | +| **Penelitian** | Perplexity atau GPT-4o (berbasis web) | +| **Penerjemahan** | Gemini Flash (multimodal) | +| **Pembuatan Diagram** | Ollama (lokal, pribadi) | + +Optimisasi per tugas ini menyeimbangkan kecepatan, biaya, dan kualitas. + +--- + +## Fitur Utama + +### Bagaimana Notemd berbeda dari ChatGPT untuk membaca dokumen? + +| Dimensi | ChatGPT | Notemd | +|-----------|---------|--------| +| **Lokasi keluaran** | Sejarah obrolan (sementara) | Obsidian vault (berkas persisten) | +| **Format hasil** | Jawaban teks | Tautan wiki, catatan konsep, diagram, terjemahan | +| **Nilai jangka panjang** | Hilang setelah sesi berakhir | Terakumulasi menjadi basis pengetahuan | +| **Kemampuan digunakan kembali** | Harus diminta ulang | Berkas tetap ada, tautan berubah, berkembang | + +**Gunakan ChatGPT untuk:** Pertanyaan dan jawaban cepat, penjelasan sekali pakai +**Gunakan Notemd untuk:** Membangun basis pengetahuan yang persisten dan terstruktur selama berminggu-minggu/bulanan + +### Bagaimana Notemd menambahkan tautan wiki ke catatan? + +**Prosesnya:** +1. Anda menjalankan "Process file (add links)" pada sebuah catatan +2. Notemd mengirim teks tersebut ke LLM yang telah dikonfigurasi +3. LLM menandai konsep utama dalam konteks +4. Notemd memasukkan `[[wiki-links]]` di setiap kemunculan konsep +5. Secara opsional, alat ini membuat catatan konsep secara otomatis di folder yang ditentukan + +**Fitur:** +- Penekanan sinonim (menghindari duplikasi antara "transformer" dan "transformers") +- Tautan balik dari catatan konsep ke sumber asal +- Integritas tautan saat mengganti nama atau menghapus +- Mode ekstraksi murni (mengekstrak konsep tanpa mengubah yang asli) + +### Apa itu alur kerja satu klik Notemd? + +**Alur kerja satu klik** menggabungkan beberapa tindakan ke dalam **satu tombol sidebar**. + +**Alur kerja default:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**Hasilnya:** Satu klik akan melakukan hal berikut: +1. Menambahkan tautan wiki ke catatan saat ini +2. Membuat catatan konsep untuk istilah baru +3. Mencari dan menambahkan latar belakang +4. Mengompres menjadi diagram Mermaid + +**Alur kerja kustom:** Definisikan alur kerja Anda sendiri di Pengaturan menggunakan format DSL. Setiap alur kerja menjadi tombol sidebar yang dapat digunakan kembali. + +### Bagaimana perbandingan Notemd dengan Copilot atau Smart Connections? + +Plugin-plugin ini menyelesaikan masalah yang berbeda: + +- **Copilot** — Berfokus pada percakapan. Anda berbicara dengan AI tentang catatan Anda. Jawaban AI tetap ada di panel percakapan; jawaban tersebut tidak mengubah vault Anda. +- **Smart Connections** — Berfokus pada penemuan. Plugin ini menemukan catatan yang semantiknya mirip menggunakan embedding. Plugin ini tidak membuat atau mengubah konten. +- **Notemd** — Berfokus pada penulisan. AI memproses catatan Anda dan menulis hasil berstruktur (tautan wiki, catatan konsep, penelitian, diagram, terjemahan) langsung ke vault Anda sebagai file permanen. + +| Yang diperlukan | Plugin yang direkomendasikan | +|----------------|-------------------| +| Berbicara dengan AI tentang catatan | Copilot | +| Menemukan catatan yang serupa/terkait | Smart Connections | +| Memasukkan tautan wiki secara otomatis dan membangun grafik pengetahuan | **Notemd** | +| Menghasilkan catatan konsep dengan tautan balik | **Notemd** | +| Membuat diagram dari konten catatan | **Notemd** | +| Meneliti suatu topik dan menambahkan ringkasan | **Notemd** | + +Ketiganya dapat digunakan bersama — mereka saling melengkapi bukan bersaing. + +--- + +## Penelitian & Penerjemahan + +### Layanan pencarian mana yang bekerja dengan penelitian Notemd? + +| Layanan | Diperlukan Kunci API | Kualitas | Catatan | +|---------|-----------------|---------|-------| +| **Tavily** | Ya | Tinggi | Pencarian yang direkomendasikan, dioptimalkan AI | +| **DuckDuckGo** | Tidak | Eksperimental | Tidak perlu pengaturan, kualitas lebih rendah | + +**Cara kerja "Research & summarize":** +1. Anda memilih topik atau menjalankannya pada catatan saat ini +2. Notemd memanggil layanan pencarian +3. Hasil → LLM penyimpulan +4. Penyimpulan ditambahkan ke catatan Anda beserta kutipan sumber + +**Hasilnya:** Jejak penelitian yang tetap ada di vault Anda, bukan tab browser. + +### Apakah Notemd mendukung bahasa Mandarin atau bahasa lain? + +**Bahasa yang didukung oleh UI:** Lebih dari 21 bahasa +- Inggris, 中文 (简体), 中文 (繁體), 日本語, 한국어 +- Arab, Jerman, Prancis, Spanyol, Rusia, Portugis, Italia +- Hindi, Bengali, Thai, Vietnam, Turki, Polandia, Ceko, dan lainnya + +**Bahasa keluaran tugas:** Pengaturan mandiri +- UI dalam bahasa Mandarin + keluaran dalam bahasa Inggris: ✅ +- UI dalam bahasa Inggris + keluaran dalam bahasa Mandarin: ✅ + +**Contoh penggunaan:** Peneliti bilingual dapat menggunakan UI dalam bahasa asli mereka sambil membuat catatan dalam bahasa Inggris untuk publikasi. + +--- + +## PDF dan Alur Kerja Akademis + +### Bolehkah saya menggunakan Notemd untuk membaca makalah/PDF? + +**Ya.** Alurnya adalah sebagai berikut: +1. **Konversi PDF menjadi Markdown** menggunakan [MinerU](https://github.com/opendatalab/MinerU) (disarankan untuk makalah akademis) +2. Buka file Markdown di Obsidian +3. Eksekusi tugas-tugas Notemd: + - **Tambahkan tautan wiki** ke istilah-istilah penting + - **Buat catatan konsep** untuk terminologi yang tidak dikenal + - **Ekstrak teks asli** melalui pertanyaan khusus (misalnya, "Apa batasannya?") + - **Cari latar belakang penelitian** untuk metode/dataset yang dikutip + - **Terjemahkan** bagian-bagian yang sulit + - **Kompresi menjadi diagram Mermaid** untuk pemahaman struktural + +**Versi 1.9.1+:** Ekstraksi struktur bab dengan dukungan TOC + +**Hasilnya:** Proses membaca makalah Anda berubah menjadi artefak pengetahuan yang terstruktur dan dapat dihubungkan di vault Anda. + +--- + +## Diagram & Visualisasi + +### Jenis graf/diagram apa saja yang dapat dihasilkan oleh Notemd? + +| Tipe | Dukungan | Fitur | +|------|---------|----------| +| **Mermaid** | Penuh | Diagram alir, urutan, kelas, keadaan, ER, Gantt, perbaikan sintaks otomatis, validasi batch | +| **JSON Canvas** | Penuh | Tata letak kanvas bawaan Obsidian | +| **Vega-Lite** | Penuh | Grafik data, seri waktu, batang, scatter, dapat disesuaikan | +| **HTML** | Alternatif | Untuk tipe diagram yang tidak didukung | +| **Bisa diedit HTML/SVG** | Target eksplisit | Inline mandiri SVG dengan anotasi bergaya Draw.io semantik | +| **Draw.io / artefak Drawnix** | Batas ekspor | XML/JSON yang deterministik dari `SemanticFigureModel`; tidak memerlukan ketergantungan runtime editor | + +**Perbaikan otomatis Mermaid:** Mode debug mendalam untuk perbaikan: +- Anak panah rusak (`-->`, `-.->`, `==>`) +- Label dan komentar yang tidak valid +- Kesalahan sintaks subgraf +- Notasi bentuk (`[`, `(`, `{`, `((`) +- Karakter pipa dalam label +- Lampiran catatan + +**Alur kerja:** +1. Jalankan "Ringkas sebagai diagram Mermaid" pada sebuah catatan +2. Pratinjau dalam modal +3. Ekspor sebagai SVG atau PNG +4. Atau simpan sebagai file `.mmd` di vault + +--- + +## Sumber Terbuka & Komunitas + +### Apakah Notemd gratis dan berbasis sumber terbuka? + +**Ya.** +- **Lisensi:** MIT (longgar, penggunaan komersial diperbolehkan) +- **Kode sumber:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **Tidak ada tingkatan berbayar, tidak ada keterikatan cloud, tidak ada telemetri** +- **Komunitas:** 234+ bintang di GitHub, Discord yang aktif + +**Yang Anda miliki:** +- Data Anda (tetap berada di vault Anda) +- Alur kerja Anda (sesuaikan prompt, model, rantai) +- Privasi Anda (dukungan LLM lokal) + +**Berkontribusi:** Pull request diterima. Lihat [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +## Pemecahan Masalah + +### Panggilan LLM saya gagal. Apa yang harus saya periksa? + +1. **Apakah kunci API valid?** Periksa Settings → Provider Configuration +2. **Nama model benar?** Gunakan tombol "获取模型列表" (Get Model List) di pengaturan +3. **Apakah dapat diakses melalui jaringan?** Beberapa penyedia memerlukan VPN +4. **Batasan kecepatan?** Periksa panel kontrol penyedia +5. **Diagnostik:** Jalankan "Connection Test" di pengaturan untuk mendapatkan log kesalahan yang rinci + +### Notemd lambat. Bagaimana cara mempercepatnya? + +1. **Gunakan model yang lebih cepat:** DeepSeek, Gemini Flash, GPT-4o-mini +2. **Kurangi ukuran chunk:** Pengaturan → Smart Chunking → turunkan jumlah kata +3. **Pemrosesan paralel:** Pengaturan → Batch Processing → tingkatkan konkurenansi +4. **Model lokal:** Ollama untuk tugas yang tidak memerlukan pencarian web + +### Apakah Notemd dapat berfungsi 100% offline? + +**Ya, dengan Ollama.** Tanpa kunci API, tanpa internet, data tidak keluar dari mesin Anda: + +1. Instal [Ollama](https://ollama.com) lalu jalankan `ollama serve` +2. Di pengaturan Notemd, pilih **Ollama** sebagai penyedia Anda +3. Unduh model: `ollama pull llama3` (atau qwen2.5, gemma2, dll.) +4. Semua fitur berfungsi: tautan wiki, catatan konsep, terjemahan, diagram + +**Penelitian DuckDuckGo** juga berjalan tanpa kunci API (kualitas eksperimental). + +Dengan penyedia cloud (OpenAI, Anthropic, Google, DeepSeek, dll.), konten catatan Anda dikirim sebagai masukan API. Periksa kebijakan privasi masing‑masing penyedia untuk detail penanganan data. + +### Apakah data saya dikirim ke cloud? + +**Itu tergantung pada penyedia Anda:** + +| Tipe penyedia | Data dikirim ke cloud? | Catatan | +|--------------|---------------------|-------| +| **Ollama (lokal)** | Tidak | Semua tetap berada di mesin Anda | +| **LMStudio (lokal)** | Tidak | Sama seperti Ollama | +| **DeepSeek, OpenAI, dll.** | Ya | Isi catatan dikirim sebagai input API untuk diproses | +| **OpenRouter, AIHubMix** | Ya | Gateway yang merutekan ke penyedia cloud | + +Notemd sendiri tidak mengumpulkan **telemetri, analitik, atau data pengguna**. Plugin ini sepenuhnya berbasis sumber terbuka (MIT). Satu-satunya data yang keluar dari mesin Anda adalah apa yang Anda kirim secara eksplisit ke penyedia LLM yang telah dikonfigurasi. + +### Plugin AI Obsidian mana yang paling baik untuk penelitian? + +Tergantung pada alur kerja penelitian Anda: + +| Diperlukan | Plugin | Alasan | +|------|--------|-----| +| Menemukan makalah/catatan terkait | Smart Connections | Penemuan kemiripan semantik | +| Berbicara tentang sumber Anda | Copilot | Percakapan dengan konteks vault | +| Menghubungkan konsep secara otomatis + membuat catatan | **Notemd** | AI mengidentifikasi konsep, memasukkan tautan, dan membuat catatan | +| Penelitian di web + merangkum menjadi catatan | **Notemd** | Tavily/DuckDuckGo mencari → LLM ringkasan → ditambahkan ke catatan | +| Membuat diagram dari hasil penelitian | **Notemd** | Mermaid/Canvas/Vega-Lite dari isi catatan | + +**Kombinasi yang direkomendasikan:** Smart Connections (penemuan) + Notemd (pembingkaian) + Copilot (diskusi). + +--- + +## Mendapatkan bantuan + +- **Dokumentasi:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **GitHub Issues:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **Sponsor:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/id/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/id/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..9d0f965a --- /dev/null +++ b/website/i18n/id/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "Catatan Konsep" +description: "Membuat dan mengelola catatan konsep — catatan mandiri untuk konsep-konsep utama yang diekstrak dari vault Anda" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# Catatan Konsep + +<TLDR> +**Notemd** mengekstrak konsep-konsep utama dari catatan Anda dan membuat berkas catatan konsep yang terpisah. LLM mengidentifikasi istilah-istilah inti, menghasilkan satu berkas `.md` per konsep di folder yang dapat dikonfigurasi, dan secara opsional menambahkan tautan balik ke catatan asal. Fitur ini mendukung penekanan sinonim, pemilihan model per tugas, pembersihan nama berkas, serta mesin deduplikasi berlangkah 4. Ini merupakan bagian dari [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Gambaran Umum + +Catatan konsep merupakan elemen dasar dari basis pengetahuan yang terhubung. Saat Anda memproses sebuah catatan, Notemd: + +1. **Mengirim teks Anda ke LLM** dengan prompt ekstraksi yang terstruktur +2. **Menguraikan baris `CONCEPT:`** dari respons LLM +3. **Membuat satu file `.md` per konsep** di folder yang ditentukan +4. **Menambahkan backlink** ke catatan sumber (jika diaktifkan) + +## Cara Kerjanya + +### Saluran Pipa Ekstraksi + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### Prompt Ekstraksi + +LLM menerima perintah yang menginstruksikannya untuk: + +- Ekstrak **kata benda atau frasa kata benda** yang menjadi inti topik dokumen +- **Utamakan spesifikasinya** — "Dielectric Relaxation" daripada "Relaxation" +- **Normalisasi ke bentuk tunggal** — "models" berubah menjadi "model" +- **Menekan konsep turunan** — jika muncul “dielectric relaxation”, jangan ekstrak juga “relaxation” +- **Lompati** bagian referensi/bibliografi, kata benda umum, nama perusahaan/produk +- Keluarkan satu konsep per baris sebagai `CONCEPT: Term Name` + +**Penekanan sinonim** (opsional): tambahkan di awal prompt "Hindari mengekstrak sinonim, konsep inti yang semantiknya mirip, atau kata kunci selama memungkinkan". + +**Domain pembelajaran terfokus** (opsional): tambahkan `Relevant Fields: [domain]` di awal untuk membatasi ekstraksi pada suatu disiplin. + +**Penggantian bahasa** (opsional): tambahkan di akhir "Konsep hasil HARUS berbahasa [language]." + +### Pemecahan menjadi bagian + +Catatan panjang dipisah oleh `settings.chunkWordCount`. Setiap bagian dikirim secara terpisah. Konsep dari semua bagian dikumpulkan dalam `Set` — duplikat antar bagian dihilangkan secara diam-diam. Kesalahan LLM pada bagian tertentu tidak menghentikan proses. + +## Pembuatan Catatan Konsep + +### Aturan Nama Berkas + +| Aturan | Perilaku | +|------|----------| +| Tanda hubung/tanda bawah | Diganti dengan spasi | +| Karakter khusus | Dihapus: backslash, forward slash, colon, asterisk, question mark, quotes, angle brackets, pipe, hash, caret, brackets | +| Spasi | Dikompresi dan dipangkas | +| Panjang maksimum | 100 karakter (dipotong + dipangkas kembali) | +| Hasil kosong/semua titik | Dihapus secara diam-diam | + +Contoh: `A-B: Key*Term` berubah menjadi `A B KeyTerm.md` + +### Template + +**Template lengkap** (tautan balik diaktifkan, template minimal dimatikan): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**Template minimal** (ketika `extractConceptsMinimalTemplate: true`): + +```markdown +# Concept Name +``` + +### Memperbarui Catatan yang Sudah Ada + +Ketika file konsep sudah ada: + +1. Jika tautan balik diaktifkan dan catatan sumber belum terdaftar, tambahkan tautan balik +2. Jika bagian `## Linked From` ada, sisipkan sebelum header `##` berikutnya +3. Jika tidak ada `## Linked From`, tambahkan bagian di akhir +4. Tautan balik yang duplikat diperiksa dan diabaikan + +### Konfigurasi + +| Pengaturan | Default | Efek | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | Switch utama. Dimatikan = tidak ada catatan yang dibuat | +| `conceptNoteFolder` | `''` (disonaktifkan) | Rute folder untuk catatan konsep | +| `extractConceptsMinimalTemplate` | `true` | Catatan hanya judul (tanpa Linked From) | +| `extractConceptsAddBacklink` | `false` | Tambahkan backlink saat ekstraksi mandiri | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | LLM per tugas untuk ekstraksi konsep | +| `extractConceptsLanguage` | `'en'` | Bahasa keluaran untuk nama konsep | +| `replaceSynonymsDuringConceptExtraction` | `false` | Aktifkan penekanan sinonim dalam prompt | +| `generateConceptLogFile` | `false` | Tulis daftar `.log` konsep yang dibuat | + +**Penting:** Pengaturan `extractConceptsAddBacklink` dan `extractConceptsMinimalTemplate` hanya mempengaruhi **perintah ekstraksi khusus**. Perintah "Add Links" selalu membuat catatan template lengkap dengan backlink. + +## Penghapusan duplikat + +Perintah dedup (`Notemd: Check & remove duplicate concept notes`) menjalankan analisis 5 langkah: + +### Langkah 1: Persamaan nama file yang tepat + +Perbandingan nama berbasis nama file tanpa memperhatikan huruf besar/kecil di seluruh cakupan yang dikonfigurasi. + +### Langkah 2: Deteksi bentuk jamak + +Menghilangkan akhiran: `-ies` hingga `-y`, `-es` dihilangkan, `-s` dihilangkan. Membandingkan bentuk tunggal dengan file dalam cakupan. Tidak menangani bentuk jamak yang tidak teratur (children/child). + +### Langkah 3: Normalisasi simbol + +Diterapkan pada: `toLowerCase()`, ganti tanda hubung/titik bawah dengan spasi, hapus karakter non-alfanumerik, padatkan ruang putih. Item yang dinormalisasi secara identik akan ditandai. + +### Langkah 4: Pengelompokan Kata Tunggal + +Catatan konsep berupa kata tunggal diperiksa terhadap nama berkas skop yang berisi beberapa kata. Proses ini tidak dijalankan ketika skopnya adalah `concept_folder_only`. + +### Langkah 5: Konfirmasi dan Penghapusan + +Semua kandidat ditampilkan dalam modal konfirmasi. Item yang disetujui dipindahkan ke tempat sampah sistem. Operasi dapat dibatalkan setiap kali sebelum penghapusan dilakukan. + +### Mode Skop + +| Mode | Dibandingkan Dengan | +|------|-------------------| +| `vault` (default) | Semua berkas vault `.md` kecuali folder konsep | +| `concept_folder_only` | Catatan konsep lain di dalam folder tersebut | +| `include` | Berkas di folder yang terdaftar secara spesifik | +| `exclude` | Semua berkas vault kecuali folder konsep + folder yang terdaftar | + +## Penggunaan + +### Ekstrak Konsep (Standalone) + +1. Buka sebuah catatan +2. Jalankan **"Notemd: Ekstrak konsep"** dari panel perintah +3. Catatan konsep dibuat di folder yang telah dikonfigurasi + +### Ekstrak + Buat Konten + +**"Notemd: Ekstrak konsep dan buat judul"** — mengekstrak konsep, lalu menjalankan "Buat dari Judul" pada setiap catatan di folder konsep. Hal ini menghasilkan konten untuk **semua** catatan konsep di folder tersebut, bukan hanya yang baru dibuat. + +### Buat Tautan Wiki dari Pemilihan + +1. Sorot teks di editor +2. Jalankan **"Notemd: Buat tautan wiki dari pemilihan"** +3. Teks dibungkus dalam `[[...]]` dan sebuah catatan konsep dibuat + +## Tips + +- **Atur folder konsep terlebih dahulu** — tanpa itu, tidak akan ada catatan yang dibuat. Modal peringatan akan muncul jika belum diatur. +- **Gunakan model per-tugas** — ekstraksi konsep lebih efektif menggunakan model yang lebih murah (GPT-4o-mini, DeepSeek). Simpan model yang mahal untuk penelitian/terjemahan. +- **Aktifkan penekanan sinonim** untuk domain teknis di mana beberapa istilah merujuk pada konsep yang sama. +- **Hapus duplikat secara rutin** — jalankan perintah dedup setelah pemrosesan batch untuk mendeteksi duplikat yang hampir sama. +- **File log ditulis ulang** setiap kali dijalankan, bukan ditambahkan. Salin file tersebut jika Anda membutuhkan hasil sebelumnya. + +--- + +## Langkah Selanjutnya + +- [Wiki-Links](./wiki-links) — Cara konsep dihubungkan secara inline +- [Diagrams](./diagrams) — Visualisasi hubungan konsep +- [Workflows](./workflows) — Menggabungkan ekstraksi dengan tugas lain diff --git a/website/i18n/id/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/id/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..630818ff --- /dev/null +++ b/website/i18n/id/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "Diagram" +description: "Menghasilkan Mermaid, JSON Canvas, Vega-Lite, HTML, artefak gambar yang dapat diedit, serta diagram circuitikz terbatas di masa depan dari catatan Anda menggunakan arsitektur berbasis spesifikasi terlebih dahulu" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Diagram + +<TLDR> +**Notemd membuat diagram dari catatan Anda melalui pipeline berbasis spesifikasi terlebih dahulu.** LLM menghasilkan `DiagramSpec` JSON yang tidak bergantung pada renderer, lalu adapter khusus menerjemahkannya menjadi Mermaid, JSON Canvas, Vega-Lite, HTML, atau output HTML/SVG yang dapat diedit. Dukungan untuk 8 tipe intent, rantai fallback otomatis, pratinjau langsung dengan ekspor SVG/PNG, verifikasi semantik, dan generasi yang diperkuat pengetahuan lokal. +</TLDR> + +Ini merupakan bagian dari [Obsidian Panduan Manajemen Pengetahuan AI](/docs/pillar-ai-knowledge). + +## Arsitektur: Pipeline Berbasis Spesifikasi Terlebih Dahulu + +Notemd tidak pernah meminta LLM untuk menghasilkan sintaks Mermaid/Vega/Canvas secara langsung. Sebaliknya: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**Mengapa berbasis spesifikasi terlebih dahulu?** LLM sering menghasilkan sintaks renderer yang tidak valid (terutama Mermaid). `DiagramSpec` yang terstruktur dapat diverifikasi sebelum rendering, dan spesifikasi yang sama dapat digunakan untuk beberapa renderer sebagai fallback. + +## Tipe Diagram yang Didukung + +| Intent | Renderer Utama | Fallbacks | Kasus Penggunaan | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | Pembagian topik hierarkis | +| `flowchart` | Mermaid | HTML | Alur proses, pohon keputusan | +| `sequence` | Mermaid | HTML | Interaksi klien-server, protokol | +| `classDiagram` | Mermaid | HTML | Hubungan kelas OOP | +| `erDiagram` | Mermaid | HTML | Skema basis data, hubungan entitas | +| `stateDiagram` | Mermaid | HTML | Mesin keadaan, model siklus hidup | +| `canvasMap` | JSON Canvas | Mermaid → HTML | Peta konsep, graf pengetahuan | +| `dataChart` | Vega-Lite | Mermaid → HTML | Graf batang, garis, area, scatter, pie, tabel | + +## Deteksi niat + +Notemd menentukan jenis diagram terbaik dari konten catatan Anda menggunakan skoring kata kunci: + +| Niat | Pemicu | Kepercayaan | +|--------|----------|------------| +| `dataChart` | Tabel, sel numerik, kata kunci metrik/tren, persentase | 0.88 | +| `sequence` | Kosakata permintaan/respons (4+ kesesuaian) atau penanda `->`/`=>` | 0.82 | +| `erDiagram` | Kunci utama, kunci asing, entitas, skema (2+ kesesuaian) | 0.80 | +| `stateDiagram` | Keadaan, transisi, dalam proses, sedang berjalan, gagal (3+ kesesuaian) | 0.76 | +| `flowchart` | Langkah bernomor (2+) atau kosakata if/then/else/workflow | 0.74 | +| `canvasMap` | Peta konsep, graf pengetahuan, spasial, kluster | 0.72 | +| `mindmap` | Nilai default sebagai pengganti | 0.55 | + +Atur ulang menggunakan pengaturan **Tipe diagram yang diinginkan**, pilihan di sidebar, atau opsi panel perintah yang eksplisit. + +## Pemilihan Target Render + +Pipeline berbasis spesifikasi eksperimental kini memiliki dua kontrol terpisah: + +| Kontrol | Pengaturan | Efek | +|---------|---------|--------| +| Tipe diagram yang diinginkan | `preferredDiagramIntent` | Membimbing bentuk semantik dari `DiagramSpec` yang dihasilkan | +| Target render yang diinginkan | `preferredDiagramRenderTarget` | Memilih renderer artefak untuk **Menghasilkan diagram** dan **Pratinjau diagram** | + +Atur **Target render yang diinginkan** menjadi **Auto** sebagai default untuk perencana, atau pilih secara eksplisit Mermaid, JSON Canvas, Vega-Lite, HTML, atau Editable HTML/SVG. Pengaturan ulang hanya berlaku untuk perintah artefak dan pratinjau. Perintah standar **Merangkum sebagai diagram Mermaid** tetap menggunakan output yang kompatibel dengan Mermaid sehingga alur kerja Markdown yang ada tidak secara diam-diam mengubah formatnya. + +Pemisahan ini penting karena niat `flowchart` kini dapat dirender sebagai Mermaid untuk catatan Markdown, HTML sebagai pengganti yang andal, atau Editable HTML/SVG untuk penyuntingan selanjutnya. Draw.io dan Drawnix tetap merupakan ekspor artefak jenis CLI, bukan target render di dalam plugin. + +## Penggunaan + +### Menghasilkan Diagram + +1. Buka sebuah catatan +2. Jalankan **"Notemd: Menghasilkan diagram"** dari panel perintah +3. Notemd mendeteksi niat, menghasilkan spesifikasi, merender, dan menyimpan artefaknya + +**File output berdasarkan target:** + +| Target | Ekstensi | Pola Nama Berkas | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| Dapat Diubah HTML/SVG | `.html` | `{note}_diagram.html` | + +### Pratinjau Diagram + +1. Jalankan **"Notemd: Pratinjau diagram"** +2. Sebuah modal terbuka dengan diagram yang telah dirender +3. Ekspor sebagai SVG atau PNG menggunakan tombol toolbar + +**Buka pratinjau otomatis** tersedia di pengaturan — setelah generasi, modal pratinjau akan dibuka secara otomatis. + +Modal pratinjau juga memiliki panel diagnosis artefak. Renderer dan pemeriksaan smoke dapat menambahkan `RenderArtifact.diagnostics`; modal tersebut menampilkan ringkasan diagnosis dengan jumlah kesalahan/peringatan/informasi, lalu tingkat keparahan, jenis diagnosis, pesan, dan saran perbaikan di samping pratinjau. Ringkasan yang sama ditampilkan dalam entri sejarah pratinjau, sehingga percobaan smoke circuitikz yang berulang dapat dibandingkan tanpa membuka setiap entri. Untuk artefak yang memiliki konten sumber tetapi tidak dapat dirender secara inline atau melalui jalur iframe HTML, modal kini beralih ke pratinjau hanya berbasis sumber alih-alih memaksakan iframe kosong. Hal ini memberikan permukaan visual UI yang jelas untuk pemeriksaan compile/render smoke circuitikz, pemeriksaan token teks SVG, pemeriksaan screenshot PNG kosong, dan laporan tumpang tindih di masa depan, tanpa menjadikan TikZJax atau LaTeX sebagai ketergantungan runtime plugin yang wajib atau berpura-pura bahwa teks sumber merupakan render visual yang telah diverifikasi. + +### Mode Mermaid Lama + +Ketika `enableExperimentalDiagramPipeline` dimatikan, Notemd mengirimkan permintaan langsung Mermaid ke LLM. Hal ini mengabaikan seluruh pipeline spesifikasi. Jika pipeline eksperimental gagal, sistem akan beralih ke mode ini. + +## Backend Rendering + +### Mermaid + +6 adapter (mindmap, flowchart, sequence, ER, class, state) menerjemahkan `DiagramSpec` menjadi sintaks Mermaid. Setelah generasi, `mermaid.parse()` memvalidasi hasilnya. Jika validasi gagal: + +1. **Coba lagi LLM** — satu percobaan dengan pesan kesalahan Mermaid sebagai konteks +2. **Fallback minimal** — diagram Mermaid yang sederhana berdasarkan ID node spesifikasi + +**Legacy Mermaid Fixer** secara otomatis memperbaiki kesalahan sintaks LLM yang umum: normalisasi direktif note, eksploitasi label pipa, reposisi tanda koma, kutipan cerdas, panah ganda tanda hubung, ketidaksesuaian bentuk, dan lainnya. + +### JSON Canvas + +Menghasilkan format Obsidian JSON Canvas dengan tata letak spasial: +- Node ditempatkan berdasarkan kedalaman (x = kedalaman × 420) dan indeks (y = indeks × 170) +- Lebar diperkirakan dari panjang label +- Ekor dengan `fromSide: 'right'`, `toSide: 'left'`, `toEnd: 'arrow'` + +### Vega-Lite + +Membuat spesifikasi Vega-Lite v5 JSON yang lengkap dengan enkoding otomatis: +- **Grafik Kartesian** (batang/garis/area/titik/scatter): saluran x + y ditambah warna untuk beberapa seri +- **Pie**: theta = y (kuantitatif), warna = x (nominal) +- **Tabel**: baris = x, teks = y + kolom = seri + +Patch tema gelap dan terang digabungkan secara mendalam sebelum kompilasi. + +### HTML + +Solusi cadangan universal. Dokumen HTML yang mandiri dengan: +- Header meta CSP +- Mode terang/gelap melalui `prefers-color-scheme` +- Label UI yang diterjemahkan untuk 20 lokasi +- Bagian: hero, struktur (pohon node), hubungan, penjelasan tambahan, tabel seri data + +### HTML/SVG yang dapat diedit + +Target angka eksplisit untuk alur kerja ekspor yang dapat diedit. Alat ini memproyeksikan `DiagramSpec` ke dalam `SemanticFigureModel` yang deterministik, lalu menghasilkan dokumen HTML yang mandiri dengan kelompok SVG inline yang membawa anotasi bergaya Draw.io: + +- `data-drawio-type`, `data-drawio-id`, dan `data-drawio-role` pada node semantik +- `data-drawio-source` dan `data-drawio-target` pada edge semantik +- identifikasi node/edge yang stabil setelah normalisasi spasi putih dan penanganan tabrakan +- tanpa skrip, tanpa font eksternal, dan tanpa aset jarak jauh + +Target ini sengaja belum menjadi rute perencanaan default. Target ini tersedia sebagai target render eksplisit selama jalur produk membuktikan perilaku editing di berbagai alat nyata. + +### Draw.io dan Drawnix Batas Ekspor + +Implementasi saat ini mempertahankan dukungan editor pihak ketiga di batas artefak: + +| Target | Kontrak | Ketergantungan Runtime | +|--------|----------|--------------------| +| Draw.io | `mxfile` XML yang tidak dikompresi secara deterministik dari `SemanticFigureModel` | tidak ada di runtime plugin atau CI | +| Drawnix | subset minimal `.drawnix` JSON menggunakan elemen `geometry` dan `arrow-line` | tidak ada di runtime plugin atau CI | + +Kompromi ini disengaja: Notemd dapat memverifikasi label yang terlihat, ID yang stabil, dan cakupan primitif yang didukung tanpa memasukkan diagram.net Desktop, Drawnix, Plait, atau keadaan editor khusus browser ke dalam plugin. + +### circuitikz / TikZJax Arah + +Diagram sirkuit bukanlah masalah yang sama dengan flowchart umum. Sintaks target yang tepat untuk sirkuit listrik biasanya adalah **circuitikz**, yang ditampilkan dalam Obsidian melalui plugin seperti TikZJax. TikZJax dapat memuat paket seperti `circuitikz`, `pgfplots`, `tikz-cd`, dan `chemfig`, sehingga cocok untuk catatan fisika, sirkuit, kimia, dan matematika. + +Risikonya adalah TikZ yang dihasilkan langsung dari LLM bersifat rapuh: + +- topologi sirkuit yang kompleks bisa benar secara listrik tetapi sulit dibaca secara visual; +- kabel dan label yang tumpang tindih dapat membuat netlist yang benar tidak dapat digunakan untuk catatan studi; +- kurangnya bagian pembuka paket, titik jepit yang salah, atau nama komponen yang tidak valid dapat menghambat proses rendering; +- umpan balik dari alat rendering biasanya berupa gambar, sedangkan LLM menghasilkan geometri tingkat teks. + +Arsitektur yang lebih baik adalah memperlakukan circuitikz sebagai target diagram yang terbatas, bukan sebagai prompt bebas bentuk: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +Model kelas satu seharusnya mendeskripsikan topologi dan tata letak sirkuit secara terpisah: + +| Lapisan | Tanggung jawab | Contoh | +|-------|----------------|---------| +| Topologi | node listrik dan koneksi komponen | `VDD -> RD -> drain(M1)`, `source(M1) -> GND` | +| Tata letak | penempatan grid, orientasi, jalur routing | `M1 at (3,2.2)`, masukan kiri, keluaran kanan | +| Gaya | paket, konvensi tegangan, label, titik jangkar | `\begin{circuitikz}[american voltages]` | +| Validasi | log kompilasi, titik jangkar yang hilang, pemeriksaan tumpang tindih/skrin tangkapan | TikZJax/Diagnostik LaTeX ditambah tinjauan visual | + +### Prototipe circuitikz saat ini + +Notemd kini mencakup prototipe repositori terbatas pertama untuk arah ini. Prototipe tersebut sengaja berada dalam mode offline dan terikat pada template: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +Prototipe ini menambahkan batas `CircuitSpec` yang terpisah serta ekspor deterministik untuk enam keluarga referensi emas: + +| Jenis rangkaian | Referensi emas | Jaminan arus | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | memvalidasi `VDD -> R_D -> M1.D`, `vin -> M1.G`, `M1.S -> GND`, dan `M1.D -> vout` sebelum menulis LaTeX | +| `cmos-inverter` | `cmos-inverter-v1` | memvalidasi topologi PMOS-over-NMOS, masukan gerbang bersama, keluaran drain bersama, `VDD -> MP.S`, dan `MN.S -> GND` sebelum menulis LaTeX | +| `cmos-buffer` | `cmos-buffer-v1` | memvalidasi dua tahap inverter bertingkat, node tengah `vmid`, `vout` yang dipulihkan, serta jalur VDD/GND bersama sebelum menulis LaTeX | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | memvalidasi perangkat pas paralel PMOS/NMOS antara `vin` dan `vout` dengan kontrol komplementer `phib` / `phi` sebelum menulis LaTeX | +| `cmos-nand2` | `cmos-nand2-v1` | Memvalidasi pull-up PMOS paralel, pull-down NMOS seri, dua masukan `va` / `vb`, dan `vout` sebelum menulis LaTeX | +| `cmos-nor2` | `cmos-nor2-v1` | Memvalidasi pull-up PMOS seri, pull-down NMOS paralel, dua masukan `va` / `vb`, dan `vout` sebelum menulis LaTeX | + +Ini belum merupakan generator TikZ umum. Alat ini tidak mengkompilasi LaTeX, memanggil TikZJax, memeriksa tangkapan layar, atau menjalankan perbaikan otomatis berbasis gambar. Fitur-fitur tersebut masih menjadi bagian tahap selanjutnya. + +Perintah Diagram Pratinjau dapat membuka kembali artefak sumber circuitikz yang disimpan langsung bila ekstensi file adalah `.tex` atau `.tikz` dan sumbernya mengandung `\usepackage{circuitikz}` atau `\begin{circuitikz}`. Jalur ini merupakan pratinjau berbasis sumber saja: tampilan modal menampilkan sumber, diagnosis, kontrol salin/simpan, serta metadata sejarah, tetapi tidak mengkompilasi LaTeX atau memanggil TikZJax selama runtime plugin. + +Batas pratinjau berbasis sumber yang sama kini mencakup artefak Draw.io dan Drawnix yang disimpan. File `.drawio` diterima bila bentuknya seperti Draw.io XML (`mxfile` atau `mxGraphModel`), sedangkan file `.drawnix` diterima bila berbentuk Drawnix JSON dengan `type: "drawnix"` dan array `elements`. Plugin ini masih belum memasukkan diagram.net atau host papan tulis Drawnix; pratinjau-pratinjau ini menampilkan sumber, diagnosis, dan sejarah artefak tanpa menyertakan editor visual di dalam plugin. + +Untuk perbaikan yang mempertahankan topologi, serahkan spesifikasi pra-perbaikan sebagai referensi sebelum menerima kandidat yang telah diperbaiki: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +Penjaga perbaikan menggunakan `createCircuitTopologySignature` dan `assertCircuitTopologyUnchanged` untuk membandingkan `circuitKind`, `goldenReferenceId`, jaringan, ID/tipe/terminal komponen, serta ujung sambungan tak berarah sebelum menghasilkan output. Label, teks judul, petunjuk tata letak, urutan sambungan, dan label sambungan sengaja diabaikan. Kandidat yang menambahkan terminal pendek atau merombak kabelnya gagal dengan `Circuit topology drift detected` sebelum file `.tex` ditulis. + +CLI kini dapat menganalisis log kompilasi LaTeX/TikZJax yang sudah ada tanpa menjalankan kompiler: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +Rute diagnosis ini melaporkan paket yang hilang seperti `circuitikz.sty`, kunci TikZ/circuitikz yang tidak dikenal, kesalahan sintaks jalur TikZ seperti kurangnya tanda koma, argumen berlebih dari kurung yang tidak seimbang atau label yang tidak ditutup, urutan kontrol yang belum didefinisikan, kesalahan umum LaTeX, penghentian darurat, serta peringatan kelebihan `\hbox`. Metodenya masih berbasis log: eksekusi lokal LaTeX/TikZJax dan mekanisme kualitas tangkapan layar masih merupakan pekerjaan di masa depan. + +Untuk pemeriksaan awal oleh pemelihara, CLI yang sama dapat secara opsional menjalankan renderer yang dikonfigurasi secara eksplisit tanpa harus menganalisis perintah shell: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Penggerak kompilasi menggunakan `shell: false`, mengembangkan placeholder `{tex}`, `{outputDir}`, dan `{jobName}` menjadi nilai array argumen, membaca hasil `{jobName}.log` yang dihasilkan, lalu mengembalikan `compileExecution` beserta `compileDiagnostics` dalam format CLI JSON. `--compile-executable` hanyalah jalur binary atau wrapper renderer; flag renderer berada dalam nilai `--compile-arg` yang diulang. Eksekusi kosong gagal sebagai `compile-executable-invalid`, binary yang hilang gagal sebagai `compile-executable-not-found`, dan string eksekusi berbentuk perintah shell diberi saran untuk membagi argumen agar Windows, Linux, dan macOS mengikuti kontrak eksekusi langsung yang sama. Dengan `--expected-artifact`, alat ini juga melaporkan `compileExecution.renderSmoke` dan gagal pada CLI bila renderer tidak membuat artefak yang tidak kosong. Plugin ini masih belum memasukkan LaTeX, menjadikan TikZJax sebagai dependensi runtime plugin, atau melakukan perbaikan visual tingkat tangkapan layar. + +Jika artefak yang diharapkan adalah `.svg`, pemeriksaan awal ini dilakukan lebih dalam lagi: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +Pemeriksaan asap SVG memverifikasi akar `<svg>`, dimensi positif atau `viewBox`, setidaknya satu elemen gambar yang terlihat setelah elemen tersembunyi/transparan dihilangkan, token teks yang diminta, elemen yang jelas berada di luar `viewBox`, label `<text>` / `<tspan>` yang bertumpuk dan jelas, serta label teks yang bertumpuk dengan elemen gambar melalui `render-svg-label-overlap`. Teks yang diharapkan dicari dalam teks yang terlihat dan metadata aksesibilitas yang didekode seperti `aria-label`, `<title>`, dan `<desc>`, sehingga renderer yang mempertahankan label semantik di luar `<text>` tetap dapat memenuhi pemeriksaan token teks tanpa memerlukan OCR. Proses geometri kini menggunakan geometri yang peka terhadap transformasi untuk atribut grup dan elemen umum `transform`, sehingga kotak SVG yang diterjemahkan, diperbesar, diputar, miring, atau diubah dengan matriks diperiksa setelah komposisi transformasi. Proses ini mencakup batas lengkung yang tepat untuk ekstrem A/a, batas lengkung Bezier yang tepat untuk ekstrem C/S/Q/T, batas SVG yang peka terhadap lebar garis dan pemeriksaan tumpang tindih label, geometri gambar `polyline` / `polygon`, serta penyelesaian penempatan glyph hanya berbasis jalur dari referensi `<use href="#...">` sehingga label yang diubah menjadi path glyph yang dapat digunakan kembali tetap dapat gagal dalam pemeriksaan kanvas terbatas bila geometri glyph yang ditempatkan melampaui `viewBox`. Beberapa label `tspan` yang berada di bawah satu induk `<text>` dibandingkan sebagai kotak label terpisah, yang memungkinkan mendeteksi output bergaya LaTeX SVG yang sebaliknya akan menggabungkan label yang berbeda menjadi satu node teks. Kotak SVG `text` dan `tspan` yang ditempatkan mengikuti nilai `start`, `middle`, dan `end`, sehingga label yang terpusat dan sejajar ke kanan dapat memicu diagnosis tumpang tindih teks/label tanpa harus menggunakan tata letak teks tingkat browser. Path glyph yang hanya berupa definisi di dalam `<defs>` tidak dihitung sebagai elemen gambar yang terlihat, tetapi atribut lokal `transform` mereka diterapkan sebelum penempatan `<use>` sehingga definisi glyph yang diperbesar atau dipantulkan tidak kurang dihitung. Pemeriksaan label-vs-gambar menggunakan toleransi kotak gambar yang kecil dan nilai `stroke-width` yang dideklarasikan, sehingga kabel tipis, kabel tebal, dan garis kontur komponen poligon dapat dianggap sebagai potensi kegagalan keterbacaan label bila stroke yang terlihat mencapai label. Label glyph hanya berbasis jalur yang diselesaikan dari `<use href="#...">` juga dibandingkan dengan kotak gambar dan gagal dengan `render-svg-path-glyph-overlap` bila geometri glyph yang dapat digunakan kembali bertumpang tindih dengan kabel atau komponen. Jika renderer mengubah label menjadi path glyph yang dapat digunakan kembali alih-alih `<text>` yang dapat dicari, dan tidak mempertahankan metadata aksesibilitas, laporan asap mencatat `pathOnlyGlyphUseCount` dan gagal pada token teks yang diminta melalui `render-svg-text-path-only` alih-alih menganggap label tersebut benar-benar tidak ada. Kegagalan lain dilaporkan melalui `render-svg-invalid`, `render-svg-dimension-missing`, `render-svg-no-visible-elements`, `render-svg-text-missing`, `render-svg-out-of-bounds`, `render-svg-text-overlap`, `render-svg-label-overlap`, atau `render-svg-path-glyph-overlap`. Pemeriksaan token teks dan tumpang tindih hanya seharusnya dianggap sebagai pemeriksaan struktural untuk renderer yang mempertahankan label sebagai teks SVG yang dapat dicari atau metadata aksesibilitas; output hanya berbasis jalur SVG masih memerlukan tahap tangkapan layar/OCR selanjutnya untuk membuktikan keterbacaan visual label, dan pemeriksaan asap ini masih belum menjamin cakupan jalur yang lengkap SVG. + +Kelompok dan elemen tersembunyi SVG secara konsisten diabaikan selama penghitungan elemen terlihat dan pengumpulan geometri. Atribut atau gaya inline `display:none`, `visibility:hidden`, `visibility:collapse`, serta keseluruhan `opacity:0` tidak dapat membuat artefak render yang sebenarnya kosong lulus pemeriksaan output terlihat. + +Definisi glyph hanya berbasis jalur dapat berupa jalur langsung atau kontainer grup/simbol di dalam `<defs>`. Pemeriksaan asap menyelesaikan geometri path anak dari `<g id="...">` dan `<symbol id="...">` sebelum penempatan `<use>`, sehingga output glyph yang dibungkus tetap masuk ke dalam `pathOnlyGlyphUseCount`, pemeriksaan kanvas terbatas, dan `render-svg-path-glyph-overlap`. + +Parser jalur juga melacak awal subpath dan mengatur ulang titik saat ini di `Z/z`, sehingga perintah relatif setelah subpath tertutup melanjutkan dari titik SVG yang benar alih-alih menciptakan diagnosis `render-svg-out-of-bounds` yang salah. + +Proses geometri yang sama mengikuti aturan SVG untuk desimal dengan titik di depan dan tanda plus eksplisit, sehingga koordinat dvisvgm yang kompak seperti `.5`, `-.5`, atau `+.5` tetap berbentuk pecahan selama pemeriksaan batas, alih-alih menjadi geometri yang salah karena keluar batas atau diabaikan. + +Jika renderer menghasilkan `.png`, jalur artefak yang diharapkan akan menjadi tangkapan layar pertama: Notemd mendekode file PNG berwarna indeks 1/2/4/8-bit yang tidak interlaced, file PNG abu-abu 1/2/4/8/16-bit, serta file PNG abu-abu-alpha/RGB/RGBA 8/16-bit. Gambar berwarna indeks dan abu-abu sub-byte mendukung sampel terkompresi; gambar berwarna indeks juga mendukung data PLTE dan tRNS opsional; gambar abu-abu/RGB mendukung sampel transparan tRNS. Sampel langsung 16-bit dinormalisasi ke ruang perbandingan RGBA 8-bit yang sama yang digunakan oleh pemeriksaan smoke. Pemeriksaan smoke memverifikasi dimensi positif, mencatat batas latar depan sebagai `foregroundBounds`, mencatat kepadatan latar depan di dalam kotak tersebut sebagai `foregroundDensity`, gagal dengan `render-png-blank` ketika setiap piksel yang terlihat sama dengan warna latar kiri atas, gagal dengan `render-png-content-clipped` ketika konten latar depan menyentuh batas gambar, gagal dengan `render-png-foreground-too-small` ketika tangkapan layar besar memiliki kurang dari empat piksel latar depan, dan gagal dengan `render-png-foreground-dense` ketika piksel latar depan sangat padat di dalam kotak batas yang tidak sederhana. Format PNG yang tidak didukung gagal dengan `render-png-unsupported` beserta petunjuk khusus untuk format Adam7 interlaced PNG atau kedalaman bit warna indeks yang tidak didukung. Hal ini dapat mendeteksi tangkapan layar kosong, pemotongan kanvas yang jelas, jejak latar depan yang kurang render, kegagalan kepadatan pada tingkat piksel pertama, serta pengaturan ekspor PNG renderer yang salah, tanpa memerlukan ketergantungan shell khusus platform. Ini bukan pengenalan label tingkat OCR, deteksi tumpang tindih teks yang presisi, atau perbaikan gambar yang mempertahankan topologi. + +Ketika diagnosis menunjukkan kompilasi gagal atau run render-smoke gagal, CLI juga dapat membuat ringkasan perbaikan yang mempertahankan topologi: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +Ringkasan perbaikan menggunakan skema `notemd.circuitikz.repair-brief.v1` dan membawa sumber `CircuitSpec`, tanda tangan topologi, diagnosis kompilasi/render, edit yang diizinkan, edit topologi yang dilarang, langkah verifikasi berikutnya, serta `repairPrompt` yang terstruktur. Peran prompt adalah `topology-preserving-circuitikz-repair`; daftar `diagnosticFocus`-nya berasal dari diagnosis kompilasi/render, dan `acceptanceCriteria`-nya memerlukan validasi kandidat beserta kompilasi dan pemeriksaan render-smoke yang baru. Ini merupakan format penyerahan untuk siklus perbaikan selanjutnya, bukan klaim bahwa Notemd sudah melakukan perbaikan visual secara otomatis. + +Setelah kandidat perbaikan dihasilkan, CLI yang sama dapat memvalidasinya terhadap ringkasan sebelum menulis output: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief` memeriksa tanda tangan topologi kandidat dari ringkasan dan hal ini saling eksklusif dengan `--topology-reference`. Lulusnya gate ini hanya membuktikan pemeliharaan topologi; kandidat masih perlu diagnosis kompilasi dan pemeriksaan render-smoke. + +Hasil `--repair-brief` juga mencakup bukti `repairAcceptance` dengan skema `notemd.circuitikz.repair-acceptance.v1`. Hasilnya melaporkan gate `topology-signature`, `compile-diagnostics`, dan `render-smoke` sebagai `passed`, `failed`, atau `missing`; mengungkapkan `remainingChecks`; dan menjaga `readyForVisualAcceptance` tetap false sampai kandidat tersebut memiliki semua bukti yang diperlukan. + +Gunakan `--repair-acceptance-output` bersama `--repair-brief` ketika bukti CI atau rilis memerlukan file JSON yang tahan lama: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +Untuk bukti rilis atau pemeliharaan, jalankan setiap keluarga golden yang didukung melalui runner fixture agregat: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Runner tersebut menggunakan `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json`, dan `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json`, memanggil jalur ekspor tanpa shell yang sama untuk setiap fixture, dan mengembalikan laporan agregat JSON dengan `compileExecution` dan `compileDiagnostics` per fixture. Ini masih merupakan perintah pemeliharaan, bukan ketergantungan runtime plugin. + +Ketika mesin pemeliharaan belum memiliki renderer yang dikonfigurasi, jalankan perintah fixture yang sama tanpa `--compile-executable` dan simpan gate lingkungan secara eksplisit: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +Jalur tersebut tetap menulis artefak fixture yang deterministik `.tex`, namun mengembalikan `ok: false` dengan `rendererAvailability.status` diatur ke `missing-configuration` dan diagnosis `compile-executable-invalid`. Anggap saja ini hanya bukti ketersediaan renderer; bukan hasil kompilasi, render-smoke, atau penerimaan visual. + +### Bentuk Prompt Referensi Golden + +Untuk penggunaan jangka pendek, sediakan referensi golden yang dapat dirender sebelum meminta varian sirkuit. Prompt yang terbatas harus mempertahankan bagian pembuka, skala koordinat, gaya anchor, dan konvensi routing: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +Untuk inverter CMOS, prompt seharusnya meminta topologi eksplisit beserta batasan tata letak, bukan hanya “gambar inverter CMOS”: + +- pertahankan `VDD` di bagian atas, `GND` di bagian bawah, input di sebelah kiri, output di sebelah kanan; +- Gunakan `pmos` di atas `nmos`, dengan gerbang bersama dan drain bersama; +- Pertahankan node keluaran di persimpangan drain dan tandai dengan `*-o`; +- Gunakan anchor bernama (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) alih-alih koordinat yang diperkirakan secara visual; +- Hindari kabel diagonal atau saling bersilangan kecuali diperlukan secara listrik. + +### Progres Saat Ini dan Tahap Selanjutnya + +| Area | Status saat ini | Langkah selanjutnya | +|------|----------------|-----------| +| Diagram umum | Pipeline berbasis spesifikasi telah diimplementasikan untuk Mermaid, JSON Canvas, Vega-Lite, HTML | Terus perluas cakupan verifikasi semantik | +| Gambar yang dapat diedit | Batas artefak `editable-html-svg`, Draw.io XML, dan Drawnix JSON telah diimplementasikan | Tambahkan primitif yang lebih kompleks hanya setelah tes membuktikan kemampuan edisi | +| Dukungan CLI | `npm run diagram:export-artifact` mengekspor HTML/SVG, Draw.io, dan Drawnix yang dapat diedit dari satu `DiagramSpec` | Menambahkan perangkat asap khusus target saat target baru dikirim | +| circuitikz | `CircuitSpec -> circuitikz` prototipe mengekspor sumber umum, inverter CMOS, `cmos-buffer` / `cmos-buffer-v1`, `cmos-transmission-gate` / `cmos-transmission-gate-v1`, `cmos-nand2` / `cmos-nand2-v1`, dan `cmos-nor2` / `cmos-nor2-v1` template emas, proyek `layoutHints.inputSide` dan `layoutHints.outputSide` ke penempatan port input/output yang deterministik tanpa mengubah topologi, menolak penyimpangan topologi perbaikan melalui `--topology-reference`, mengeluarkan ringkasan perbaikan yang mempertahankan topologi melalui `--repair-brief-output` dan skema `notemd.circuitikz.repair-brief.v1`, mencakup konten penyerahan terstruktur `repairPrompt` dengan `diagnosticFocus`, `acceptanceCriteria`, dan peran `topology-preserving-circuitikz-repair`, memvalidasi kandidat perbaikan melalui `--repair-brief`, mengembalikan bukti gerbang `repairAcceptance` melalui skema `notemd.circuitikz.repair-acceptance.v1` dengan `readyForVisualAcceptance` dan `remainingChecks`, menyimpan bukti tersebut melalui `--repair-acceptance-output`, menganalisis log kompilasi, dapat menjalankan renderer lokal eksplisit ditambah `--expected-artifact`, SVG `--expected-svg-text`, pemeriksaan metadata aksesibilitas melalui `aria-label`, `<title>`, dan `<desc>`, pengecualian elemen SVG tersembunyi/transparan, klasifikasi `render-svg-text-path-only` / `pathOnlyGlyphUseCount` untuk label hanya jalur, pemeriksaan penempatan glyph hanya jalur untuk `<use href="#...">`, diagnosis tumpang tindih glyph hanya jalur melalui `render-svg-path-glyph-overlap`, penanganan titik arus jalur tertutup untuk `Z/z`, batas lengkung tepat untuk ekstrem A/a, batas kurva Bezier tepat untuk ekstrem C/S/Q/T, pemeriksaan tumpang tindih label dengan batas lebar garis yang disadari SVG, pemeriksaan geometri gambar `polyline` / `polygon`, geometri label yang diposisikan `tspan`, geometri teks yang diposisikan dengan memperhatikan `text-anchor`, geometri yang memperhatikan transformasi untuk SVG bounded-canvas/text-overlap dan label-vs-drawing asap melalui `render-svg-label-overlap`, serta pemeriksaan screenshot PNG nonblank / terpotong / foreground padat, termasuk palet warna indeks dengan alpha, sampel transparan grayscale/RGB tRNS, dan panduan spesifik format `render-png-unsupported` untuk PNG Adam7 interlaced dan kegagalan kedalaman bit indeks, melalui `foregroundBounds`, `foregroundDensity`, `render-png-content-clipped`, dan `render-png-foreground-dense` tanpa parsing shell, mencakup perangkat asap pemeliharaan agregat melalui `npm run diagram:smoke-circuitikz`, mencatat konfigurasi renderer yang hilang melalui `rendererAvailability.status: "missing-configuration"` dan `compile-executable-invalid`, serta memiliki diagnosis pratinjau umum, hitungan ringkasan diagnosis, entri sejarah yang memperhatikan diagnosis, dan fallback hanya sumber melalui `RenderArtifact.diagnostics` dan modal pratinjau | Menambahkan pengenalan label tingkat OCR untuk teks visual hanya jalur, pemeriksaan tumpang tindih tingkat piksel yang akurat, cakupan jalur SVG yang lebih luas bila diperlukan, instalasi/deteksi renderer otomatis hanya jika tetap opsional, dan eksekusi perbaikan yang mempertahankan topologi secara otomatis | +| Integrasi TikZJax | Host render kandidat untuk tampilan sisi Obsidian | Jadikannya opsional; jangan jadikan TikZJax sebagai ketergantungan runtime plugin yang wajib | + +## Konfigurasi + +| Pengaturan | Default | Efek | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | Beralih antara versi berbasis spesifikasi dan versi lama Mermaid | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = Mermaid saja; `'best-fit'` = target native + fallback | +| `preferredDiagramIntent` | `undefined` (otomatis) | Mengganti deteksi intent otomatis | +| `summarizeToMermaidLanguage` | `'en'` | Bahasa target untuk label diagram | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | LLM per tugas untuk pembuatan diagram | +| `autoMermaidFixAfterGenerate` | (Dari konstanta) | Menjalankan perbaiki lama secara otomatis pada output Mermaid | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | Memperkaya sumber dengan pengetahuan vault lokal | + +### Peningkatan Pengetahuan Lokal + +Ketika diaktifkan, Notemd mengambil potongan konteks yang relevan dari basis pengetahuan lokal vault Anda (berbasis MiniSearch) dan menempatkannya di awal markdown sumber. Petunjuk augmentasi menyatakan: "hanya sebagai referensi pendukung; pertahankan struktur utama sesuai dengan catatan sumber." + +### Mode Kompatibilitas + +- **`legacy-mermaid`**: Semua intent dialihkan ke Mermaid. Intent yang bukan Mermaid (canvasMap, dataChart) dipaksa ke `flowchart` atau `mindmap`. Tidak ada rantai fallback. +- **`best-fit`**: Setiap intent dialihkan ke target aslinya. Jika yang utama gagal, dilakukan traversal rantai fallback (misalnya, Vega-Lite → Mermaid → HTML). + +## Pratinjau & Ekspor + +| Aksi | Metode | +|--------|--------| +| Ekspor SVG | Pembangun `mermaid.render()` / `vega.View.toSVG()` / SVG untuk Canvas | +| Ekspor PNG | SVG → Image → Canvas (rasio piksel perangkat 1x-3x) → PNG ArrayBuffer | +| Simpan Sumber | Konten artefak mentah disimpan dengan ekstensi khusus target | +| Pratinjau Hanya Sumber | Artefak non-inline dengan konten sumber ditampilkan sebagai kode beserta diagnosis, tanpa rendering iframe | +| Audit Semantik | Mermaid, JSON Canvas, Vega-Lite, dan HTML/SVG yang dapat diedit telah diperiksa oleh `scripts/diagram-semantic-verification.js` | + +**Penyimpanan dalam cache**: RenderCache menggunakan kunci JSON yang deterministik dari `{spec, target, theme}`. Proses penghapusan duplikat saat rendering mencegah hasil rendering yang sama berulang. + +## Tips + +- **Mulai dengan mode `best-fit`** — mode ini menghasilkan tampilan visual terbaik untuk setiap jenis intent +- **Gunakan model yang kuat untuk diagram yang kompleks** — flowchart dan ER diagram mendapat manfaat dari GPT-4o atau Claude +- **Aktifkan pengetahuan lokal** untuk diagram khusus domain — konteks vault yang relevan meningkatkan akurasi +- **Atur `autoMermaidFixAfterGenerate`** — kesalahan sintaks Mermaid sering terjadi jika pengaturan ini tidak ada +- **Alat perbaiki lama sangat komprehensif** — jika pratinjau Mermaid gagal, menjalankan perintah perbaiki secara manual biasanya dapat menyelesaikannya + +--- + +## Langkah Selanjutnya + +- 🔗 [Wiki-Links](./wiki-links) — Cara konsep dikaitkan secara inline +- 📝 [Concept Notes](./concept-notes) — Ekstrak konsep untuk bahan sumber diagram +- 🔍 [Research](./research) — Perkaya diagram dengan data dari sumber web diff --git a/website/i18n/id/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/id/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..ad8743ee --- /dev/null +++ b/website/i18n/id/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "Penelitian & Pencarian Web" +description: "Integrasikan pencarian web ke dalam catatan Anda" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Penelitian & Pencarian Web + +<TLDR> +**Notemd mencari di web dan menyisipkan hasil yang diringkas LLM langsung ke dalam catatan Anda.** Tavily API merupakan backend pencarian utama; DuckDuckGo berfungsi sebagai alternatif tanpa konfigurasi. Hasilnya diringkas dengan kutipan sumber dan ditambahkan di bawah judul `## Research`. Dukung penelitian pada satu catatan, penelitian pada folder secara batch, serta pemilihan model per tugas untuk langkah ringkasan. + +Ini merupakan bagian dari [Obsidian Panduan Manajemen Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Gambaran Umum + +Penelitian merupakan salah satu integrasi paling kuat dari Notemd: integrasi ini menghubungkan proses membaca, mencari, dan menulis. Alih-alih beralih ke browser untuk mencari istilah yang tidak dikenal, Anda cukup menyorotnya dan membiarkan Notemd melakukan pencarian, merangkum, serta menambahkan temuan — semuanya di dalam vault Anda. + +Proses ini sepenuhnya dapat dikonfigurasi. Anda dapat memilih penyedia pencarian, LLM yang akan menulis ringkasan, serta apakah hasilnya ditambahkan ke catatan aktif atau ditulis ke file terpisah. Mode batch memungkinkan Anda meneliti setiap catatan di sebuah folder hanya dengan satu klik. + +## Cara Kerjanya + +### Pipeline Cari-Lalu-Ringkas + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **Ekstraksi kueri** -- Notemd mengambil istilah pencarian dari pilihan Anda atau judul catatan. +2. **Pencarian web** -- Tavily dicoba terlebih dahulu. Jika kunci API tidak dikonfigurasi, DuckDuckGo akan digunakan secara otomatis (tidak memerlukan kunci). +3. **Ringkasan LLM** -- Hasil pencarian mentah dikirim ke LLM yang telah dikonfigurasi, yang kemudian menghasilkan ringkasan singkat dengan kutipan sumber di dalamnya. +4. **Menambahkan** -- Ringkasan yang sudah diformat ditambahkan di bawah judul `## Research` dalam catatan aktif. + +### Tavily vs. DuckDuckGo + +| Aspek | Tavily | DuckDuckGo | +|--------|--------|------------| +| Kunci API | Diperlukan (ada versi gratis) | Tidak diperlukan | +| Kualitas hasil | Lebih tinggi (dirancang khusus untuk AI) | Cukup untuk pertanyaan umum | +| Batas kecepatan pengiriman | Tingkat gratis yang melimpah | Tergantung pada pembatasan kecepatan | +| Konfigurasi | `tavilyApiKey` di pengaturan | Tanpa konfigurasi -- beralih otomatis | + +### Penelitian Folder Batch + +Klik kanan folder dan pilih **"Notemd: Folder penelitian"**. Setiap file `.md` di folder tersebut diproses secara berurutan (atau secara paralel hingga tingkat konkuren yang dikonfigurasi). Setiap catatan menerima ringkasan penelitiannya sendiri. + +## Konfigurasi + +| Pengaturan | Default | Efek | +|---------|---------|--------| +| `tavilyApiKey` | `''` | Kunci Tavily API. Jika kosong, hanya DuckDuckGo yang digunakan. | +| `researchProvider` / `researchModel` | DeepSeek | LLM per tugas untuk merangkum hasil pencarian | +| `maxResearchContentTokens` | `4000` | Anggaran token untuk konten yang dikirim ke LLM. Bagian yang berlebih akan dipotong. | +| `researchAppendToNote` | `true` | Menyertakan ringkasan ke catatan sumber. Jika bernilai false, membuat file terpisah. | +| `researchLanguage` | `'en'` | Bahasa keluaran untuk ringkasan penelitian | + +### Rekomendasi model per tugas + +Penelitian mendapat manfaat dari model yang mampu menangani konten berbahasa ganda dan menghasilkan teks yang terstruktur dengan baik. Pertimbangkan: + +- **DeepSeek** -- versi default, terjangkau, kualitas bagus +- **GPT-4o** -- ringkasan berkualitas lebih tinggi, biaya lebih mahal +- **Gemini Flash** -- cepat dan murah, cocok untuk pertanyaan sederhana + +## Contoh + +Anda sedang membaca makalah tentang *mekanisme perhatian transformer* dan menemukan istilah yang tidak dikenal: *relative positional encoding*. Alih-alih meninggalkan Obsidian: + +1. Beri penekanan pada **"relative positional encoding"** +2. Klik kanan --> **"Notemd: Penelitian dan ringkasan"** +3. Notemd mencari di internet, merangkum hasil teratas, lalu menambahkan: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +Ringkasan tersebut kini menjadi bagian dari arsip Anda, dapat dicari, dihubungkan, dan diakses tanpa internet. + +## Tips + +- **Atur kunci Tavily untuk hasil terbaik** -- bahkan versi gratis pun memberikan relevansi yang lebih baik daripada DuckDuckGo murni. +- **Gunakan model ringkasan yang andal** -- model murah bisa menyederhanakan konten teknis yang kompleks. +- **Lakukan penelitian secara batch** setelah membaca sekilas untuk mengisi celah di berbagai catatan sekaligus. +- **Periksa ringkasan yang ditambahkan** -- LLM bisa menghasilkan detail sumber yang salah. Periksa klaim utama. + +--- + +## Langkah Selanjutnya + +- [Concept Notes](./concept-notes) -- Ekstrak dan simpan istilah penting dari hasil penelitian +- [Wiki-Links](./wiki-links) -- Hubungkan konsep yang berasal dari penelitian di seluruh arsip Anda +- [Translation](./translation) -- Terjemahkan ringkasan penelitian ke bahasa lain +- [LLM Penyedia](/docs/providers/overview) -- Konfigurasi model yang digunakan untuk penyimpulan diff --git a/website/i18n/id/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/id/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..506f7d61 --- /dev/null +++ b/website/i18n/id/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "Terjemahan" +description: "Menerjemahkan catatan dan pilihan" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# Terjemahan + +<TLDR> +**Notemd menerjemahkan teks antara 21+ bahasa menggunakan teknologi penerjemahan dari LLM.** Dukung penerjemahan pilihan tunggal, penerjemahan seluruh catatan, dan penerjemahan folder secara batch. Setiap tugas penerjemahan dapat menggunakan penyedia dan model khusus melalui pengaturan per-tugas. Bahasa keluaran dapat dikonfigurasi secara terpisah dari bahasa UI. Hasilnya ditambahkan di bawah teks asli atau ditulis ke file baru sesuai pilihan Anda. + +Ini merupakan bagian dari [Obsidian Panduan Manajemen Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Gambaran Umum + +Penerjemahan dalam Notemd bukanlah pencarian kamus — melainkan penerjemahan yang didorong oleh LLM dan memperhatikan konteks. Model melihat paragraf atau catatan lengkap, sehingga tetap mempertahankan nada, istilah khusus bidang, dan struktur kalimat. Hal ini menghasilkan hasil yang lebih berkualitas dibanding layanan penerjemahan kata demi kata, terutama untuk tulisan teknis, akademis, dan kreatif. + +Fitur ini mendukung tiga skop: pilihan, catatan aktif, dan seluruh folder. Dengan kombinasi pemilihan model per-tugas, Anda dapat menggunakan model cepat (Gemini Flash) untuk penerjemahan sehari-hari dan model kuat (Claude Sonnet) untuk konten yang membutuhkan nuansa — tanpa mengubah penyedia global Anda. + +## Cara Kerjanya + +### Perintah Translate + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **Deteksi sumber** -- LLM menduga bahasa sumber dari isi teks. Anda tidak perlu menentukannya secara manual. +2. **Pembuatan prompt** -- Notemd membuat prompt yang mencakup bahasa tujuan, petunjuk bidang opsional, dan konten yang akan diterjemahkan. +3. **Penerjemahan LLM** -- `translateProvider` / `translateModel` yang telah dikonfigurasi memproses permintaan. Model mempertahankan format markdown, tautan wiki, dan blok kode. +4. **Keluaran** -- Teks yang telah diterjemahkan ditambahkan di bawah teks asli atau ditulis ke file baru di vault. + +### Pasangan Bahasa + +Notemd mendukung setiap pasangan bahasa yang didukung oleh LLM di baliknya. Pasangan umum meliputi: + +| Sumber | Target | Kualitas Umum | +|--------|--------|----------------| +| Inggris | Bahasa Mandarin (Sederhana) | Ekstrem | +| Bahasa Cina | Bahasa Inggris | Bagus sekali | +| Bahasa Inggris | Bahasa Jepang | Sangat baik | +| Bahasa Inggris | Jerman / Prancis / Spanyol | Sangat baik | +| Semua yang didukung | Semua yang didukung | Tergantung model | + +Pengaturan `translateLanguage` mengendalikan **bahasa keluaran**. Bahasa sumber dideteksi secara otomatis. + +### Pemilihan Model Per Tugas + +Kualitas terjemahan sangat bervariasi antar model. Notemd memungkinkan Anda menentukan model khusus hanya untuk proses penerjemahan: + +| Model | Kecepatan | Kualitas | Biaya | Untuk Siapa | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | Cepat | Bagus | Rendah | Untuk penggunaan santai dengan volume tinggi | +| `gpt-4o-mini` | Cepat | Bagus | Rendah | Pencarian cepat | +| `deepseek-chat` | Sedang | Bagus | Sangat rendah | Untuk aplikasi berbahasa banyak dengan anggaran terbatas | +| `claude-3-5-sonnet` | Sedang | Luar biasa | Sedang | Teknis / akademis | +| `gpt-4o` | Sedang | Bagus | Sedang | Prosa yang peka terhadap nuansa | + +### Penerjemahan Folder Berkelompok + +Klik kanan folder lalu pilih **"Notemd: Translate folder"** untuk menerjemahkan setiap catatan di dalam folder tersebut. Setiap file diproses secara terpisah. Pengaturan konkurenensi mengontrol berapa banyak file yang diterjemahkan secara paralel. + +## Konfigurasi + +| Pengaturan | Default | Efek | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | Penyedia khusus untuk tugas penerjemahan | +| `translateLanguage` | `'en'` | Bahasa output target | +| `translationAppendToNote` | `true` | Tambahkan teks terjemahan di bawah teks asli. Jika bernilai false, akan dibuat file baru. | +| `batchConcurrency` | `3` | Jumlah file yang diproses secara paralel selama penerjemahan berkelompok | + +## Contoh + +Anda sedang membaca catatan penelitian berbahasa Mandarin dan menginginkan versi bahasa Inggrisnya: + +1. Buka catatan tersebut +2. Klik kanan --> **"Notemd: Translate current file"** +3. Notemd mendeteksi bahasa Mandarin, menerjemahkannya ke bahasa sasaran yang telah dikonfigurasi (bahasa Inggris), lalu menambahkan teks terjemahan di bawahnya: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +Teks Mandarin asli tetap ada di atas teks terjemahan. Judul `## Translation` mempertahankan kedua versi dalam satu file agar mudah diakses. + +## Tips + +- **Gunakan Gemini Flash untuk jumlah yang banyak** -- ini adalah opsi tercepat dan termurah untuk penerjemahan berkelompok folder besar. +- **Mempertahankan tautan wiki** -- instruksi dari Notemd menyuruh LLM untuk mempertahankan `[[wiki-links]]` tetap utuh dalam terjemahan. Periksa setelah terjemahan, karena beberapa model kadang menghilangkan tautan tersebut. +- **Menetapkan bahasa keluaran secara eksplisit** -- deteksi otomatis berfungsi untuk sumber teks, tetapi selalu atur `translateLanguage` agar tidak ada kebingungan mengenai bahasa tujuan. +- **Menerjemahkan catatan konsep secara batch** -- jika folder konsep Anda dalam satu bahasa dan Anda membutuhkannya dalam bahasa lain, terjemahan di tingkat folder dapat menangani hal ini dalam satu langkah. + +--- + +## Langkah Selanjutnya + +- [Penelitian](./research) -- Cari dan ringkas dalam bahasa apa pun, lalu terjemahkan hasilnya +- [Alur Kerja](./workflows) -- Gabungkan proses terjemahan dengan tautan wiki atau ekstraksi konsep +- [Pemrosesan Batch](/docs/advanced/batch-processing) -- perilaku konkurensi dan penggantian file untuk operasi folder +- [LLM Penyedia](/docs/providers/overview) -- Pilih model terbaik untuk pasangan bahasa Anda diff --git a/website/i18n/id/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/id/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..81f949bf --- /dev/null +++ b/website/i18n/id/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "Wiki-Links" +description: "Pembuatan tautan wiki otomatis untuk konsep kunci" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# Wiki-Links + +<TLDR> +**Notemd secara otomatis menambahkan `[[wiki-links]]` ke konsep kunci dalam catatan Anda.** LLM membaca konten Anda, mengidentifikasi istilah penting dalam konteks, dan memasukkan tautan wiki bergaya Obsidian di setiap kemunculannya. Secara opsional membuat file catatan konsep dengan tautan balik. Dukung penekanan sinonim, integritas tautan saat diubah nama atau dihapus, serta mode ekstraksi murni (tanpa modifikasi file). Berbeda dengan Auto Link yang hanya mencocokkan judul catatan yang sudah ada, Notemd menggunakan AI untuk mengidentifikasi konsep baru dan membuat catatan yang sesuai. Ini merupakan bagian dari [Obsidian Panduan Manajemen Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Gambaran Umum + +Pembuatan tautan wiki adalah fitur inti dari Notemd. Fitur ini mengubah teks biasa menjadi grafik pengetahuan yang terhubung dengan cara berikut: + +1. **Menganalisis catatan Anda** menggunakan LLM +2. **Mengidentifikasi konsep kunci** (istilah, orang, metode, teori) +3. **Memasukkan `[[wiki-links]]`** di setiap kemunculannya +4. **Membuat catatan konsep** (opsional) dengan tautan balik + +## Cara Kerjanya + +### Proses + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### Contoh + +**Sebelumnya:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**Setelahnya:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## Penggunaan + +### Dasar: Tambahkan Tautan ke Catatan Saat Ini + +1. Buka sebuah catatan +2. Klik kanan di editor → **"Proses file (tambahkan tautan)"** +3. Tunggu beberapa detik +4. Konsep-konsep kini terhubung! + +### Batch: Memproses Beberapa Catatan + +1. Klik kanan pada folder di File Explorer +2. Pilih **"Notemd: Process folder (add links)"** +3. Konfigurasi: + - Kerja paralel (banyaknya file yang diproses secara bersamaan) + - Menulisi ulang tautan yang sudah ada (ya/tidak) +4. Klik **Proses** + +### Selektif: Menghubungkan Teks Spesifik + +1. Menyoroti teks yang akan diproses +2. Klik kanan → **"Memproses pilihan (tambahkan tautan)"** +3. Hanya bagian yang disoroti yang dianalisis + +## Notemd vs Auto Link + +Obsidian memiliki dua pendekatan untuk penghubungan wiki otomatis: + +| | **Auto Link** | **Notemd** | +|--|---------------|-------------| +| Sumber tautan | Judul catatan yang sudah ada di vault | Konsep yang diidentifikasi oleh LLM dalam konten | +| Bisa menghubungkan konsep baru | Tidak — judul harus sudah ada | Ya — AI mengidentifikasi konsep dan membuat catatan | +| Penanganan sinonim | Tidak | Ya — penekanan sinonim | +| Pembuatan catatan konsep | Tidak | Ya — dengan tautan balik dan penghapusan duplikat | +| Pemrosesan batch | Tidak (satu file) | Ya (tingkat folder) | +| Rute model per tugas | Tidak | Ya | + +**Auto Link** melakukan pencocokan judul: jika ada catatan bernama "Machine Learning", maka ia akan membungkus kemunculannya dalam `[[Machine Learning]]`. Jika catatan tersebut tidak ada, tidak ada yang terjadi. + +**Notemd** dijalankan oleh AI: LLM membaca konten Anda, memahami konteksnya, mengidentifikasi konsep yang *seharusnya* dihubungkan — bahkan jika belum ada catatan — lalu membuat tautan dan catatan konsepnya. + +## Fitur + +### Penekanan Sinonim + +**Masalah:** "transformer", "transformers", "Transformer architecture" → 3 konsep terpisah + +**Solusi:** Notemd mendeteksi duplikat yang hampir sama dan menggunakan bentuk kanoniknya. + +**Konfigurasi:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### Integritas Tautan + +**Saat Anda mengganti nama catatan konsep:** +- Semua tautan wiki akan diperbarui secara otomatis (Obsidian fitur inti) +- Tautan balik tetap utuh + +**Saat Anda menghapus catatan konsep:** +- Tautan tetap ada namun ditampilkan sebagai "penyebutan yang tidak terhubung" +- Anda dapat membuatnya kembali dari setiap kemunculannya + +### Mode Ekstraksi Murni + +**Ekstrak konsep tanpa mengubah yang asli:** + +1. Klik kanan → **"Ekstrak konsep (tanpa tautan)"** +2. Catatan konsep dibuat +3. File asli tidak berubah + +Kasus penggunaan: Memproses konten hanya baca atau draf akhir. + +## Pembuatan Catatan Konsep + +### Pembuatan Otomatis + +**Ketika diaktifkan (default), Notemd membuat:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### Konfigurasi + +**Folder keluaran:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Struktur hierarkis:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**Template:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## Opsi Lanjutan + +### Jendela Konteks + +**Berapa banyak teks sekitar yang akan dikirim:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +Semakin besar = akurasi lebih baik, biaya lebih tinggi. + +### Kemunculan Minimum + +**Hanya tautkan konsep yang muncul berkali-kali:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +Atur ke 2 atau 3 untuk fokus pada tema yang berulang. + +### Pola yang Dikecualikan + +** abaikan kata tertentu:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +Mencegah terlalu banyak tautan pada istilah umum. + +### Prompt Kustom + +**Gantikan instruksi default LLM:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +Ubah sesuai kebutuhan spesifik domain (misalnya, "Fokus pada terminologi medis"). + +## Tips & Praktik Terbaik + +### ✅ Lakukan + +- **Proses catatan dengan >100 kata** — Catatan singkat menghasilkan sedikit konsep +- **Gunakan model yang kuat** untuk identifikasi konsep yang lebih baik (GPT-4o, Claude) +- **Periksa sebelum menerima** — Pastikan tautan yang disarankan masuk akal +- **Buat secara iteratif** — Proses 5-10 catatan, periksa grafik, sesuaikan pengaturan + +### ❌ Jangan + +- **Terlalu banyak tautan** — Tidak setiap kata benda memerlukan tautan +- **Proses draf berulang kali** — Konsep bisa berubah, tunggu hingga stabil +- **Abaikan sinonim** — Aktifkan penekanan untuk menghindari "ML" vs "Machine Learning" + +## Kinerja + +### Kecepatan + +| Ukuran Catatan | GPT-4o-mini | Claude Sonnet | Ollama (lokal) | +|-----------|-------------|---------------|----------------| +| 500 kata | 2-3 detik | 3-5 detik | 5-10 detik | +| 2000 kata | 5-8 detik | 10-15 detik | 20-40 detik | +| 5000+ kata | Dibagi dalam bagian (panggilan ganda) | Dibagi menjadi bagian-bagian | Dibagi menjadi bagian-bagian | + +### Perkiraan Biaya + +**Contoh: Catatan 1000 kata menggunakan GPT-4o-mini** +- Masukan: ~1500 token +- Keluaran: ~200 token +- Biaya: ~ + +**Pemrosesan batch 100 catatan:** ~ + +## Pemecahan Masalah + +### Tidak ada tautan yang ditambahkan + +**Periksa:** +1. LLM pemanggilan berhasil (Settings → Diagnostics) +2. Catatan tersebut memiliki konten yang cukup (lebih dari 50 kata). +3. Konsep-konsep bersifat teknis/spesifik (bukan hanya kata ganti). + +**Coba:** +- Gunakan model yang lebih kuat +- Meningkatkan jendela konteks +- Periksa validitas kunci API + +### Terlalu Banyak Tautan + +**Solusi:** +1. Tingkatkan jumlah kemunculan minimum (2 atau 3) +2. Tambahkan kata-kata umum ke daftar yang akan dikecualikan +3. Gunakan model yang kurang agresif + +### Konsep yang Salah Terhubung + +**Perbaikan:** +1. Gunakan prompt khusus untuk spesifisitas domain +2. Aktifkan penekanan sinonim +3. Teliti secara manual dan lepaskan tautan + +### Tautan rusak setelah diubah nama + +**Ini merupakan perilaku normal Obsidian.** + +Untuk memperbarui semua tautan: +1. Ganti nama catatan konsep +2. Obsidian akan secara otomatis memperbarui `[[old]]` menjadi `[[new]]` + +--- + +## Langkah Selanjutnya + +- 📖 [Catatan Konsep](./concept-notes) — Penjelasan mendalam tentang pembuatan catatan konsep +- 🔍 [Integrasi Penelitian](./research) — Menggabungkan penautan dengan penelitian daring +- 🎨 [Diagram](./diagrams) — Visualisasi grafik pengetahuan Anda diff --git a/website/i18n/id/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/id/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..79f4420b --- /dev/null +++ b/website/i18n/id/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "Alur Kerja" +description: "Menggabungkan beberapa tugas menggunakan tombol satu klik" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Alur Kerja + +<TLDR> +**Notemd Alur kerja menggabungkan beberapa tugas menjadi satu tindakan satu klik.** Tentukan urutan seperti `add-links > extract-concepts > research > diagram` menggunakan DSL sederhana. Alur kerja muncul sebagai tombol di sidebar yang menjalankan seluruh rangkaian pada catatan atau folder saat ini. Dilengkapi dengan alur kerja bawaan; buat alur kerja khusus di pengaturan. Setiap langkah menggunakan konfigurasi model per-tugasnya sendiri. + +Ini merupakan bagian dari [Obsidian Panduan Manajemen Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Gambaran Umum + +Sebuah alur kerja menghilangkan hambatan dalam menjalankan tugas satu per satu. Alih-alih mengklik kanan empat kali untuk menambahkan tautan, mengekstrak konsep, mencari istilah yang tidak dikenal, dan membuat diagram, Anda hanya perlu menekan satu tombol di sidebar dan seluruh rangkaian akan dieksekusi. Notemd menangani urutan eksekusi, penyebaran kesalahan, dan pelaporan kemajuan. + +Alur kerja didefinisikan dalam DSL ringan (bahasa khusus domain). Alur kerja tersebut berada di pengaturan, muncul sebagai tombol yang dapat diklik di sidebar Obsidian, dan dapat diterapkan pada catatan saat ini atau seluruh folder. + +## Cara Kerjanya + +### Saluran Eksekusi Alur Kerja + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **Menguraikan** -- String DSL dipisahkan menggunakan `>` (atau `>`) menjadi daftar terurut dari identifikasi tugas. +2. **Menyelesaikan** -- Setiap identifikasi dipetakan ke perintah internal (add-links, extract-concepts, research, translate, diagram, dll.). +3. **Menjalankan** -- Langkah-langkah dijalankan secara berurutan. Setiap langkah menggunakan penyedia dan model per-tugas yang telah dikonfigurasi. +4. **Penanganan kesalahan** -- Jika suatu langkah gagal, alur kerja akan berhenti atau melanjutkan ke langkah berikutnya, tergantung pada kebijakan kesalahan Anda. +5. **Selesai** -- Pemberitahuan toast melaporkan keberhasilan atau mencantumkan langkah-langkah yang gagal. + +### Format DSL + +Alur kerja didefinisikan sebagai urutan identifikasi tugas yang dipisahkan dengan `>`: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**Identifikasi tugas yang tersedia:** + +| Identifikasi | Aksi | +|------------|--------| +| `process-current-add-links` | Menambahkan tautan wiki ke catatan yang aktif | +| `extract-concepts-current` | Mengeluarkan konsep dari catatan yang aktif | +| `research-and-summarize` | Meneliti teks yang dipilih atau judul catatan | +| `process-current-translate` | Menerjemahkan catatan yang aktif | +| `summarize-to-mermaid` | Membuat diagram dari catatan yang aktif | +| `generate-from-title` | Menghasilkan konten dari judul catatan | +| `extract-original-text` | Mengeluarkan teks asli (untuk OCR/konten yang dipindai) | + +**Varian tingkat folder** mengganti `current` dengan `folder` dalam nama identifikator. + +### Alur kerja yang sudah ditentukan vs. Alur kerja kustom + +Notemd disertai alur kerja siap pakai untuk pola umum: + +| Alur kerja | Rantai | Kasus Penggunaan | +|----------|-------|----------| +| **Ekstrak Sekali Klik** | tambah-tautan > ekstrak-konsep > teliti | Memproses makalah penelitian dalam satu langkah | +| **Saluran Kerja Lengkap** | add-links > extract-concepts > research > diagram | Ekstraksi pengetahuan lengkap dengan visualisasi | +| **Menerjemahkan + Menghubungkan** | translate > add-links | Menerjemahkan lalu menghubungkan konsep dalam bahasa sasaran | + +**Alur kerja khusus** dibuat di pengaturan: + +1. Buka **Settings** --> **Notemd** --> **Workflows** +2. Klik **"Add Workflow"** +3. Masukkan rantai DSL (misalnya, `process-current-add-links>extract-concepts-current`) +4. Berikan nama tampilan (misalnya, "Quick Link + Extract") +5. Button baru akan muncul di sidebar segera + +## Konfigurasi + +| Pengaturan | Default | Efek | +|---------|---------|--------| +| `workflows` | Kumpulan predefinisi | Array definisi alur kerja (nama + DSL) | +| `workflowContinueOnError` | `true` | Lanjut ke langkah berikutnya jika langkah saat ini gagal | +| `workflowShowProgress` | `true` | Tampilkan notifikasi progres setelah setiap langkah selesai | + +### Model per-tugas dalam Alur Kerja + +Setiap langkah dalam alur kerja menggunakan konfigurasi model per-tugas **sendiri**. Anda tidak perlu menentukan model di dalam DSL itu sendiri. Urutan penyelesaian adalah: + +1. Provider/model per-tugas jika `useMultiModelSettings` ada di sana +2. `activeProvider` global jika tidak + +Ini berarti `add-links` dapat dijalankan di DeepSeek sementara `research` dijalankan di GPT-4o -- semuanya dalam satu klik alur kerja yang sama. + +## Contoh + +Anda baru saja mengimpor PDF dari sebuah makalah machine learning ke vault Anda dan ingin melakukan ekstraksi pengetahuan secara penuh: + +1. Buka catatan yang diimpor +2. Klik tombol sidebar **"Full Pipeline"** +3. Notemd dieksekusi sebagai berikut: + - **Langkah 1**: Tambahkan tautan wiki -- `[[attention mechanism]]`, `[[transformer]]`, dll. + - **Langkah 2**: Ekstrak konsep -- membuat catatan konsep di folder konsep Anda + - **Langkah 3**: Lakukan penelitian -- merangkum sumber web untuk istilah kunci + - **Langkah 4**: Buat diagram -- menghasilkan peta pikiran Mermaid dari struktur makalah tersebut +4. Setelah sekitar 30 detik, catatan Anda akan memiliki tautan, catatan konsep sudah ada, hasil penelitian ditambahkan, dan berkas diagram disimpan + +Semuanya hanya dengan satu klik. + +## Tips + +- **Mulai dengan alur kerja yang sudah ditentukan** -- alur kerja ini mencakup pola-pola yang paling umum. Sesuaikan hanya bila Anda membutuhkan urutan yang berbeda. +- **Aktifkan `workflowContinueOnError`** -- kegagalan pada langkah diagram tidak boleh menghentikan seluruh pipeline. +- **Gunakan alur kerja folder** untuk pemrosesan massal -- klik kanan pada folder, pilih alur kerja, dan setiap catatan akan diproses. +- **Berikan nama alur kerja yang jelas** -- ruang di sidebar terbatas. Gunakan nama yang singkat dan berorientasi tindakan seperti "Quick Extract" atau "Translate + Link". + +--- + +## Langkah Selanjutnya + +- [Research](./research) -- Pahami apa fungsi langkah penelitian sebelum menambahkannya ke alur kerja +- [Wiki-Links](./wiki-links) -- Fitur pemberian tautan inti yang digunakan di sebagian besar alur kerja +- [Concept Notes](./concept-notes) -- Ekstraksi konsep sebagai langkah dalam alur kerja +- [Batch Processing](/docs/advanced/batch-processing) -- Konkurensi dan laporan kemajuan untuk alur kerja folder diff --git a/website/i18n/id/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/id/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..0f37c722 --- /dev/null +++ b/website/i18n/id/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "Konfigurasi" +description: "Mengonfigurasi pengaturan dan preferensi Notemd" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Konfigurasi + +<TLDR> +**Konfigurasi Notemd mencakup 6 area utama:** (1) penyedia LLM dan kunci API, (2) pemilihan model per tugas, (3) jalur keluaran dan template, (4) bahasa UI dan bahasa keluaran, (5) layanan pencarian (Tavily/DuckDuckGo), (6) alur kerja khusus. Semua pengaturan berada di Obsidian Settings → Notemd. Perubahan langsung berlaku. +</TLDR> + +## Gambaran Umum Pengaturan + +Akses: **Obsidian Settings (⚙️) → Notemd** + +### Bagian Utama + +1. **Konfigurasi Penyedia** — kunci API, URL dasar, model-model +2. **Pengaturan Tugas** — pemilihan model per tugas +3. **Konfigurasi Keluaran** — tempat menyimpan file yang dihasilkan +4. **Pengaturan Bahasa** — UI dan bahasa keluaran +5. **Integrasi Pencarian** — pengaturan Tavily/DuckDuckGo +6. **Alur Kerja** — rantai tombol khusus +7. **Lanjutan** — diagnosis, pemrosesan batch, pembagian data + +--- + +## 1. Konfigurasi Penyedia + +### Menambahkan Penyedia + +1. **Pilih penyedia** dari daftar turun (lebih dari 30 tersedia) +2. **Masukkan Kunci API** +3. **Opsi**: Atur base URL khusus (untuk proxy/gateway) +4. **Klik "Get Model List"** untuk memverifikasi koneksi +5. **Pilih model default** + +### Penyedia Umum + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Local) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### Penyedia Ganda + +Anda dapat mengonfigurasi beberapa penyedia dan beralih di antara mereka per tugas: +- **Penyedia utama**: Digunakan sebagai cadangan +- **Penyedia khusus tugas**: Menggantikan untuk tugas tertentu + +--- + +## 2. Model Khusus Tugas + +Konfigurasikan model yang berbeda untuk tugas yang berbeda guna mengoptimalkan biaya/kualitas: + +### Jenis Tugas + +| Tugas | Model Default | Tujuan | +|------|--------------|---------| +| **Penghubungan** | Penyedia Utama | Identifikasi konsep untuk tautan wiki | +| **Pembuatan Konsep** | Penyedia utama | Ekstrak dan jelaskan konsep | +| **Penelitian** | Penyedia utama | Ringkas hasil pencarian web | +| **Penerjemahan** | Penyedia utama | Terjemahkan teks | +| **Pembuatan Diagram** | Penyedia utama | Buat diagram Mermaid/Canvas | + +### Contoh: Pengaturan yang Optimal dari Segi Biaya + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### Cara mengonfigurasi + +1. **Pengaturan → Notemd → Pengaturan Tugas** +2. Untuk setiap tugas, pilih: + - ✅ **Gunakan penyedia utama** (default) + - 🔄 **Gunakan penyedia kustom** → pilih penyedia + model + +--- + +## 3. Konfigurasi Output + +### Output Catatan Konsep + +**Di mana catatan konsep baru disimpan:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Template:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### Opsi Struktur Folder + +**Opsi 1: Flat (semua konsep dalam satu folder)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**Opsi 2: Hierarkis (berdasarkan folder sumber)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +Konfigurasi: **Settings → Output → Use Hierarchical Folders** + +### Output Diagram + +**Di mana diagram disimpan:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**Format:** +- `.mmd` (Mermaid sumber) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. Pengaturan Bahasa + +### UI Bahasa + +**Bahasa antarmuka** ( tombol, menu, dialog ): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +Dukungan: Inggris, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Русский, العربية, dan lainnya. + +### Bahasa Output + +**Bahasa konten yang dihasilkan** (catatan konsep, ringkasan penelitian): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**Kasus penggunaan:** Bahasa Mandarin UI + hasil dalam bahasa Inggris untuk penelitian bilingual. + +### Tujuan penerjemahan + +**Bahasa sasaran default** untuk tugas penerjemahan: + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. Integrasi Pencarian + +### Tavily (Disarankan) + +**Layanan pencarian yang dioptimalkan oleh AI:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +Mendapatkan kunci: [tavily.com](https://tavily.com/) + +**Fitur:** +- Hasil berkualitas tinggi +- Ringkasan yang dioptimalkan oleh AI +- Referensi sumber + +### DuckDuckGo (Eksperimental) + +**Tidak diperlukan kunci API:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**Catatan:** Kualitas lebih rendah, tanpa kemampuan kustomisasi. + +--- + +## 6. Konfigurasi Alur Kerja + +### Membuat Alur Kerja Khusus + +**Alur kerja menggabungkan beberapa tugas ke dalam satu tombol.** + +1. **Pengaturan → Alur Kerja → Tambah Alur Kerja** +2. **Nama**: "Alur Analisis Kertas" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **Simpan** + +Tombol baru muncul di sidebar kiri. + +### Sintaks DSL + +**Format:** `action1>action2>action3` + +**Aksi yang Tersedia:** +- `process-current-add-links` — Menambahkan tautan wiki ke catatan saat ini +- `extract-concepts-current` — Membuat catatan konsep +- `research-and-summarize` — Penelitian web + ringkasan +- `translate-current` — Menerjemahkan catatan saat ini +- `summarize-as-mermaid` — Membuat diagram Mermaid +- `process-folder-add-links` — Memproses folder secara berkelompok + +**Contoh Alur Kerja:** + +**Ekstraksi Konsep Cepat:** +``` +process-current-add-links>extract-concepts-current +``` + +**Penelitian Mendalam:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**Analisis Multibahasa:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. Pengaturan Lanjutan + +### Pemrosesan Batch + +**Memproses beberapa file secara paralel:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +Semakin tinggi = semakin cepat tetapi lebih banyak panggilan API. + +### Pemotongan Cerdas + +**Untuk catatan panjang, pisahkan menjadi bagian-bagian:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +Mencegah kesalahan batas token. + +### Panel Diagnosis + +**Lihat log rinci:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +Menampilkan: +- API permintaan/respons +- Penggunaan token +- Waktu pemrosesan +- Kesalahan + +### Deteksi Konsep Duplikat + +**Hindari konsep yang hampir sama:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +Semakin tinggi = penggabungan yang lebih agresif. + +--- + +## Profil Konfigurasi + +### Ekspor/Impor Pengaturan + +**Bagikan konfigurasi di berbagai perangkat:** + +1. **Pengaturan → Lanjutan → Ekspor Konfigurasi** +2. Menyimpan `notemd-config.json` +3. Di perangkat baru: **Impor Konfigurasi** + +**Apa yang termasuk:** +- Kunci Provider API (opsional) +- Pilihan model +- Rute keluaran +- Alur kerja khusus + +--- + +## Konfigurasi yang direkomendasikan + +### Untuk Mahasiswa + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### Untuk Peneliti + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### Untuk Pengguna yang Peduli Privasi + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### Untuk Pekerjaan Bilingual + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## Pemecahan Masalah Konfigurasi + +### Pengaturan Tidak Disimpan +- Periksa izin file di `.obsidian/plugins/notemd/` +- Coba: Nonaktifkan plugin → Aktifkan kembali + +### Kunci API tidak valid +- Tidak ada spasi tambahan +- Periksa masa berlaku +- Verifikasi kredit di dashboard penyedia + +### Model Tidak Dimuat +- Klik "Get Model List" untuk memperbarui +- Periksa koneksi jaringan +- Coba penyedia yang berbeda + +--- + +## Langkah Selanjutnya + +- 📖 [Jelajahi Fitur](../features/wiki-links) +- 🔌 [Panduan Pengaturan Penyedia](../providers/overview) +- ❓ [FAQ](../faq) diff --git a/website/i18n/id/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/id/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..61582712 --- /dev/null +++ b/website/i18n/id/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "Penginstalan" +description: "Cara menginstal Notemd di Obsidian" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Penginstalan + +<TLDR> +**Instal Notemd dalam waktu kurang dari 2 menit.** Ada dua metode: (1) Plugin Komunitas Obsidian (disarankan, instalasi satu klik), atau (2) Instalasi manual melalui GitHub Releases. Memerlukan Obsidian versi 0.15.0+. Bekerja di Windows, macOS, Linux, iOS, dan Android. Tidak memerlukan dependensi eksternal. Lebih dari 4k unduhan, berlisensi MIT. +</TLDR> + +## Metode 1: Plugin Komunitas (Disarankan) + +1. Buka **Pengaturan Obsidian** (ikon ⚙️ atau `Ctrl/Cmd + ,`) +2. Pergi ke **Plugin Komunitas** +3. Klik **Telusuri** +4. Cari **"Notemd"** +5. Klik **Instal** +6. Klik **Aktifkan** + +**Selesai!** Anda akan melihat ikon Notemd di sidebar kiri Anda. + +## Metode 2: Instalasi Manual + +### Prasyarat +- Obsidian versi 0.15.0 atau lebih tinggi +- Git (opsional, untuk mengkloning) + +### Langkah-langkah + +1. **Unduh file** dari [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest): + - `main.js` + - `styles.css` + - `manifest.json` + +2. **Temukan folder plugin vault Anda:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +Jika folder `plugins` belum ada, buatlah. + +3. **Buat folder Notemd:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **Salin ketiga file** ke dalam folder `notemd`. + +5. **Muat ulang Obsidian:** + - Tekan `Ctrl/Cmd + R`, atau + - Mulai ulang Obsidian + +6. **Aktifkan plugin:** + - Pengaturan → Plugin komunitas + - Cari "Notemd" di daftar + - Nyalakan fitur tersebut + +## Alternatif: Instal melalui BRAT + +Jika Anda menggunakan [BRAT plugin](https://github.com/TfTHacker/obsidian42-brat): + +1. Buka pengaturan BRAT +2. Klik "Tambah Plugin Beta" +3. Masukkan: `Jacobinwwey/obsidian-NotEMD` +4. Klik "Tambah Plugin" +5. Aktifkan Notemd di plugin Komunitas + +## Verifikasi + +Setelah instalasi, periksa apakah Notemd berfungsi: + +1. Buka catatan apa saja +2. Klik kanan di editor +3. Anda seharusnya melihat perintah Notemd seperti: + - "Memproses file (tambahkan tautan)" + - "Mengekstrak konsep" + - "Mencari dan merangkum" + +## Langkah Selanjutnya + +- **Konfigurasi penyedia LLM:** [Quick Start →](./quick-start) +- **Pemecahan masalah:** [Common Issues →](../advanced/troubleshooting) + +## Persyaratan Sistem + +| Platform | Versi | Status | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | Diperlukan | +| **Windows** | 7+ | ✅ Didukung | +| **macOS** | 10.15+ | ✅ Didukung | +| **Linux** | Apapun | ✅ Didukung | +| **iOS** | 15+ | ✅ Didukung | +| **Android** | 5+ | ✅ Didukung | + +## Penghapusan + +Untuk menghapus Notemd: + +1. Pengaturan → Plugin Komunitas +2. Cari "Notemd" +3. Klik ikon ❌ +4. Secara opsional, hapus folder plugin: `<vault>/.obsidian/plugins/notemd/` + +Data Anda (catatan, catatan konsep, dll.) tetap tidak terganggu. + +## Memperbarui + +### Perbarui Otomatis (Disarankan) +Obsidian secara otomatis memeriksa adanya pembaruan plugin. Ketika versi baru tersedia: +1. Pengaturan → Plugin Komunitas +2. Klik "Periksa Pembaruan" +3. Klik "Perbarui" di samping Notemd + +### Perbaruan Manual +Unduh rilis terbaru dan gantikan tiga file di folder plugin Anda. + +## Mendapatkan bantuan + +- 📖 [Panduan Cepat](./quick-start) +- ❓ [FAQ](../faq) +- 💬 [Komunitas Discord](https://discord.gg/qnGgsQ9W) +- 🐛 [Laporkan Masalah](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/id/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/id/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..d00346f2 --- /dev/null +++ b/website/i18n/id/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "Panduan Cepat Mulai" +description: "Mulai menggunakan Notemd dalam 5 menit" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Panduan Cepat Mulai + +<TLDR> +**Mulailah menggunakan Notemd dalam 5 menit.** Ada tiga langkah: (1) Tambahkan kunci LLM API (atau gunakan Ollama lokal), (2) Buka catatan dan jalankan "Process file (add links)", (3) Eksplorasi alur kerja satu klik di sidebar. Dukung lebih dari 30 penyedia. Tidak perlu pemrograman. Bisa berjalan offline dengan Ollama. +</TLDR> + +## Langkah 1: Konfigurasikan Penyedia LLM Pertama Anda (2 menit) + +### Opsi A: Penyedia Cloud (OpenAI, Anthropic, dll.) + +1. Buka **Settings** → **Notemd** +2. Di bawah **LLM Provider Configuration**, pilih penyedia dari daftar turun +3. Masukkan **API Key** Anda +4. (Opsional) Klik **"Get Model List"** untuk melihat model yang tersedia +5. Pilih model untuk setiap jenis tugas + +**Pilihan populer:** +- **OpenAI**: `gpt-4o-mini` (cepat, terjangkau) +- **Anthropic**: `claude-sonnet-4-6` (kualitas tinggi) +- **DeepSeek**: `deepseek-chat` (sangat terjangkau) + +### Opsi B: Ollama Lokal (Tidak perlu kunci API) + +1. Instal [Ollama](https://ollama.com/) +2. Unduh model: `ollama pull llama3.1` +3. Di pengaturan Notemd, pilih **"Ollama"** sebagai penyedia +4. Nama model: `llama3.1` (atau model apa pun yang telah Anda unduh) + +## Langkah 2: Coba Tugas Pertama Anda (1 menit) + +### Tambahkan Tautan Wiki ke Catatan + +1. Buka catatan apa pun yang berisi konten bermakna +2. Klik kanan di editor +3. Pilih **"Proses file (tambahkan tautan)"** +4. Tunggu beberapa detik +5. Konsep utama kini berada di `[[wiki-linked]]`! + +**Contoh:** + +**Sebelumnya:** +``` +Machine learning models use neural networks to process data. +``` + +**Setelahnya:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## Langkah 3: Jelajahi Fitur (2 menit) + +### Ekstrak Catatan Konsep + +1. Klik kanan → **"Ekstrak konsep dari file saat ini"** +2. Notemd membuat file terpisah untuk setiap konsep +3. Periksa folder konsep yang telah Anda atur (default: `concepts/`) +4. Setiap catatan konsep memiliki tautan balik ke catatan asli Anda + +### Penelitian & Ringkasan + +1. Menyoroti topik dalam catatan Anda +2. Klik kanan → **"Penelitian dan ringkasan"** +3. Notemd melakukan pencarian di web (Tavily atau DuckDuckGo) +4. Ringkasan ditambahkan ke catatan Anda beserta sumbernya + +### Alur Kerja Satu Klik + +1. Periksa **sidebar kiri** untuk tombol alur kerja +2. Klik **"Ekstrak Satu Klik"** pada catatan mana pun +3. Prosesnya: tambahkan tautan → ekstrak konsep → lakukan penelitian → buat diagram +4. Semua dalam satu klik! + +## Tugas Umum Pertama + +### Tugas 1: Memproses Makalah/Artikel + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### Tugas 2: Menerjemahkan Catatan + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### Tugas 3: Membuat Peta Pengetahuan + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## Tips Personalisasi + +### Pemilihan Model Per Tugas + +Anda dapat menggunakan model yang berbeda untuk tugas yang berbeda: + +| Tugas | Model yang Direkomendasikan | Alasan | +|------|------------------|-----| +| Tambahkan Tautan | `gpt-4o-mini`, `deepseek-chat` | Cepat, banyak panggilan | +| Ekstrak Konsep | `claude-sonnet-4-6`, `gpt-4o` | Ekstraksi Berkualitas | +| Penelitian | `perplexity`, `gpt-4o` | Berbasis Web | +| Terjemahan | `gemini-flash`, `gpt-4o` | Bersifat Multibahasa | +| Diagram | `claude-opus`, model lokal | Penalaran yang Rumit | + +Konfigurasikan di: **Pengaturan → Notemd → Model Spesifik Tugas** + +### Alur Kerja Kustom + +Buat tombol Anda sendiri: + +1. Pengaturan → Notemd → Alur Kerja +2. Klik "Tambah Alur Kerja" +3. Masukkan DSL: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. Berilah nama: "Alur Penelitian Saya" +5. Tombol baru muncul di sidebar + +## Pemecahan Masalah + +### "Kunci API tidak valid" +- Periksa apakah kuncinya benar (tanpa spasi tambahan) +- Pastikan akun memiliki kredit +- Uji dengan tombol "Connection Test" di pengaturan + +### "Model tidak ditemukan" +- Klik "Get Model List" untuk melihat model yang tersedia +- Beberapa penyedia memerlukan nama model tertentu (misalnya, `gpt-4o` bukan `gpt-4`) + +### Tautan tidak muncul +- Pastikan catatan memiliki konten yang cukup (>50 kata) +- Coba model yang lebih kuat +- Periksa apakah panggilan LLM berhasil (lihat panel diagnosis) + +### Kinerja lambat +- Gunakan model yang lebih cepat (`gpt-4o-mini` daripada `gpt-4o`) +- Kurangi ukuran chunk di pengaturan +- Aktifkan pemrosesan paralel untuk tugas batch + +## Langkah Selanjutnya + +- 📖 [Jelajahi Semua Fitur](../features/wiki-links) +- ⚙️ [Konfigurasi Lanjutan](./configuration) +- 🔧 [Pengaturan Provider LLM](../providers/overview) +- ❓ [FAQ](../faq) + +## Tutorial Video + +Tonton video panduan cepat 3 menit (Bahasa Mandarin): +[【Seluruhnya Open Source dan Gratis! Panduan Cepat NotEMD 3 Menit】](https://b23.tv/lqR0RlA) + +## Mendapatkan bantuan + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **Masalah**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **Dokumen**: [Dokumentasi Lengkap](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/id/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/id/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..26d10ce1 --- /dev/null +++ b/website/i18n/id/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "Pengenalan Notemd" +description: "Pembangun basis pengetahuan berbasis AI untuk Obsidian dengan transformasi catatan yang persisten, alur kerja, dan diagram berbasis spesifikasi" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Pengenalan Notemd + +<TLDR> +**Notemd** (Note + EMD — Enhanced Markdown Documents) adalah plugin berbasis sumber terbuka untuk Obsidian yang mengubah pembacaan yang didorong oleh LLM menjadi pengetahuan yang persisten. Berbeda dengan AI berbasis chat di mana wawasan hilang setelah sesi selesai, Notemd menulis hasil **langsung ke vault Anda** dalam bentuk tautan wiki, catatan konsep, ringkasan penelitian, terjemahan, alur kerja, dan diagram. Alat ini dirancang untuk peneliti, mahasiswa, dan pekerja pengetahuan yang ingin agar pembacaan, penelitian, dan penjelasan visual terakumulasi menjadi graf pengetahuan yang terstruktur dan terus berkembang. +</TLDR> + +## Apa itu Notemd? + +Notemd mengintegrasikan **lebih dari 30 Model Bahasa Besar** (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, dan lainnya) ke dalam alur kerja Obsidian Anda untuk mengotomatisasi ekstraksi pengetahuan, pengorganisasian, penerjemahan, penelitian, dan pembuatan diagram. + +### Perbedaan Utama: Pengetahuan Sementara vs. Pengetahuan Persisten + +| Aspek | AI berbasis chat (ChatGPT, dll.) | Notemd | +|--------|-------------------------------|--------| +| **Ke mana hasilnya pergi** | Sejarah chat (hilang) | Vault Obsidian Anda (tetap ada) | +| **Format** | Jawaban teks biasa | File terstruktur: `[[wiki-links]]`, catatan konsep, diagram | +| **Nilai jangka panjang** | Harus ditanyakan ulang setiap kali | Terakumulasi menjadi graf pengetahuan | +| **Akses Offline** | Memerlukan koneksi internet | Bekerja sepenuhnya offline dengan Ollama | + +## Kemampuan Inti + +### 1. **Penghubungan Wiki Otomatis** +- LLM mengidentifikasi konsep kunci dalam catatan Anda +- Menyisipkan `[[wiki-links]]` di setiap kemunculannya +- Secara opsional membuat catatan konsep yang terhubung +- Penekanan sinonim untuk menghindari duplikat + +### 2. **Pembuatan Catatan Konsep** +- Mengeluarkan konsep inti dari makalah, artikel, dan catatan +- Menghasilkan file konsep khusus dengan tautan balik +- Rute keluaran dan template yang dapat disesuaikan + +### 3. **Integrasi Penelitian Web** +- Mencari Tavily atau DuckDuckGo dari dalam Obsidian +- LLM merangkum hasil beserta kutipan sumbernya +- Menyisipkan temuan penelitian ke catatan saat ini + +### 4. **Terjemahan Multibahasa** +- Menerjemahkan bagian tertentu atau seluruh catatan +- Dukung lebih dari 21 bahasa UI +- Konfigurasi bahasa keluaran secara mandiri +- Dukungan terjemahan batch + +### 5. **Pembuatan Diagram** +- **Mermaid**: Diagram alir, urutan, kelas, keadaan, ER, Gantt +- **JSON Canvas**: Tata letak asli Obsidian +- **Vega-Lite**: Grafik data, seri waktu, plot scatter +- **HTML / HTML yang dapat diedit/SVG**: Artefak gambar mandiri dengan anotasi semantik +- **Draw.io / batas artefak Drawnix**: Rute ekspor untuk pemelihara dari model gambar semantik yang sama +- **Rencana jalan cerita diagram sirkuit**: Dukungan circuitikz/TikZJax sedang dirancang berdasarkan referensi emas, prompt terbatas, umpan balik render, serta validasi topologi/layout alih-alih TikZ LLM yang tidak terbatas secara mentah +- **Diagnostik pratinjau**: Artefak render dapat menampilkan diagnosis kompilasi/rendering, dan sumber non-inline dapat diperiksa tanpa memerlukan runtime LaTeX di sisi plugin +- Perbaikan otomatis sintaks untuk kesalahan Mermaid + +### 6. **Alur Kerja Sekali Klik** +- Menggabungkan beberapa tindakan menjadi tombol di sidebar +- Definisi alur kerja berbasis DSL +- Contoh: `add-links > extract-concepts > research > diagram` + +## Siapa yang Harus Menggunakannya Notemd? + +✅ **Peneliti** yang membaca makalah dan membuat tinjauan literatur +✅ **Mahasiswa** yang mengorganisir catatan belajar dan membuat peta konsep +✅ **Pekerja pengetahuan** yang ingin wawasan bacaan tetap tersimpan +✅ **Profesional bilingual** yang membutuhkan terjemahan + tautan wiki +✅ **Pengguna yang peduli privasi** yang menginginkan dukungan LLM lokal (Ollama) +✅ **Pengguna tingkat lanjut** yang menyesuaikan prompt dan alur kerja + +## Mengapa Notemd + Obsidian? + +**Obsidian** adalah basis pengetahuan berbasis markdown yang mengutamakan lokal. **Notemd** menambah kekuatan AI: +- Data Anda tetap ada di vault Anda (bukan layanan cloud) +- Bekerja offline dengan model lokal +- Gratis dan berbasis sumber terbuka (lisensi MIT) +- Terintegrasi dengan plugin Obsidian yang sudah ada +- Dapat menangani puluhan ribu catatan + +## Panduan Penggunaan + +1. **Instalasi**: Pengaturan → Plugin Komunitas → Cari → "Notemd" +2. **Konfigurasi**: Tambahkan kunci penyedia LLM API Anda (atau gunakan Ollama lokal) +3. **Coba sekarang**: Buka sebuah catatan → Klik kanan → "Proses file (tambahkan tautan)" +4. **Jelajahi**: Periksa panel samping untuk alur kerja satu klik + +👉 [Panduan Instalasi](./getting-started/installation) | [Tutorial Cepat](./getting-started/quick-start) + +## Arah Kemampuan Diagram + +Pekerjaan diagram Notemd sedang beralih dari "meminta model menulis satu string sintaks" menjadi pipeline bertingkat: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +Implementasi saat ini sudah mendukung Mermaid, JSON Canvas, Vega-Lite, fallback HTML, HTML/SVG yang dapat diedit, artefak Draw.io XML, subset minimal Drawnix JSON, diagnosis pratinjau/fallback hanya sumber kode, serta prototipe offline `CircuitSpec -> circuitikz` untuk template emas sumber umum dan inverter CMOS. Diagram rangkaian merupakan kategori yang lebih sulit: circuitikz dapat mengekspresikan topologi listrik yang akurat, tetapi output LLM yang tidak dibatasi sering menghasilkan rute yang tidak dapat dibaca atau LaTeX yang tidak terrender. Arah selanjutnya adalah membatasi circuitikz dengan template referensi emas, aturan tata letak grid node, diagnosis render, dan loop umpan balik tangkapan layar. + +Baca detailnya di [Diagram](./features/diagrams). + +## Arsitektur + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd vs Plugin AI Obsidian Lainnya + +Sebagian besar plugin AI Obsidian berfokus pada percakapan (Anda bertanya, AI menjawab, wawasan tetap di chat). Notemd adalah **penulisan terlebih dahulu**: AI memproses catatan Anda dan menulis hasil terstruktur langsung ke vault Anda. + +| Kemampuan | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| Pengisian tautan wiki otomatis | Ya | Tidak | Tidak | Tidak | +| Pembuatan nota konsep | Ya (dengan tautan balik + penghapusan duplikat) | Tidak | Tidak | Tidak | +| Pembuatan diagram | Ya (Mermaid, Canvas, Vega-Lite, HTML, artefak yang dapat diedit) | Tidak | Tidak | Tidak | +| Integrasi penelitian web | Ya (Tavily + DuckDuckGo) | Tidak | Tidak | Tidak | +| Pemrosesan folder secara batch | Ya | Terbatas | Tidak | Terbatas | +| Rute model per tugas | Ya (7 tugas, model independen) | Tidak | Tidak | Tidak | +| Rantai alur kerja satu klik | Ya (DSL) | Tidak | Tidak | Tidak | +| Penerjemahan (batch) | Ya | Tidak | Tidak | Tidak | +| Chating dengan vault | Tidak | Ya | Tidak | Tidak | +| Pencarian kemiripan semantik | Tidak | Tidak | Ya | Tidak | +| Pembuatan berbasis template | Tidak | Tidak | Tidak | Ya | +| Penyedia LLM | 36 (cloud + gateway + lokal) | 3-5 | 2-3 | 3-5 | +| Sepenuhnya offline | Ya (Ollama) | Sebagian | Sebagian | Sebagian | + +**Kapan memilih Notemd**: Anda ingin AI membuat grafik pengetahuan yang persisten — bukan hanya berbicara tentang catatan Anda. + +**Kapan memilih Copilot**: Anda menginginkan asisten AI konversasional di dalam Obsidian. + +**Kapan memilih Smart Connections**: Anda ingin menemukan hubungan yang sudah ada antar catatan melalui pencarian semantik. + +## Filosofi + +**Notemd percaya bahwa AI seharusnya melengkapi pekerjaan pengetahuan manusia, bukan menggantikannya.** Plugin ini: +- Membuat Anda tetap mengendalikan (ulas terlebih dahulu sebelum menerapkan perubahan) +- Mempertahankan konteks (semua hasil mengarah kembali ke sumber) +- Menghormati privasi (dukungan LLM lokal, tanpa telemetri) +- Tetap dapat diperluas (pembukaan APIs, alur kerja khusus) + +## Sumber terbuka + +- **Lisensi**: MIT +- **Sumber**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **Komunitas**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **Berkontribusi**: PR diterima, lihat [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +**Selanjutnya**: [Installation →](./getting-started/installation) diff --git a/website/i18n/id/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/id/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..35f95067 --- /dev/null +++ b/website/i18n/id/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Obsidian Panduan Manajemen Pengetahuan AI" +description: "Panduan lengkap untuk membangun basis pengetahuan terhubung dengan AI — mulai dari tautan wiki dan ekstraksi konsep hingga penelitian, penerjemahan, dan pembuatan diagram" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Obsidian Panduan Manajemen Pengetahuan AI + +<TLDR> +**Notemd mengubah pembacaan yang ditenagai LLM menjadi pengetahuan yang persisten: tautan wiki menghubungkan konsep, catatan konsep membuat graf yang dapat diakses, penelitian membawa konten web ke dalam arsip Anda, penerjemahan menghilangkan hambatan bahasa, diagram membuat struktur terlihat jelas, dan alur kerja menggabungkannya semua dengan satu klik.** Panduan ini mencakup seluruh proses — dari catatan mentah hingga basis pengetahuan yang terhubung, visual, dan multibahasa. +</TLDR> + +## Mengapa Manajemen Pengetahuan AI? + +Pencatatan konvensional menghasilkan file datar. Bahkan dengan tautan wiki manual, sebagian besar catatan tetap terpisah. Notemd menggunakan LLM untuk mengotomatisasi lapisan koneksi: + +- **LLM membaca konten Anda** dan mengidentifikasi hal-hal yang penting — istilah, metode, orang, teori +- **Tautan ditambahkan secara otomatis** di setiap kemunculan konsep, bukan tersembunyi dalam bagian "lihat juga" +- **Catatan konsep dihasilkan** sebagai file yang dapat diakses secara mandiri +- **Penelitian memperkaya catatan** dengan konteks dari sumber web +- **Diagram membuat struktur terlihat jelas** — peta pikiran, alur kerja, grafik data dari konten yang sama + +Hasilnya: graf pengetahuan yang terus tumbuh seiring setiap catatan yang Anda proses, bukan hanya saat Anda ingat untuk menambahkan tautan. + +## Seluruh Prosesnya + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +Setiap langkah bersifat independen. Gunakan satu atau semuanya. Urutan yang paling efektif: **Tambahkan Tautan → Catatan Konsep → Diagram**. + +--- + +## 1. Tautan Wiki: Menjadikan Koneksi Jelas + +Tautan wiki merupakan tulang punggung graf pengetahuan. Notemd menggunakan LLM untuk: + +1. Baca isi catatan Anda (bagi menjadi beberapa bagian untuk dokumen yang panjang) +2. Identifikasi konsep inti — utamakan istilah teknis tertentu daripada kata benda umum +3. Masukkan `[[wiki-links]]` di setiap kemunculannya +4. Hapus sinonim sehingga "ML" dan "Machine Learning" tidak menghasilkan node terpisah + +### Kapan Digunakan + +- **Setiap catatan >100 kata** — catatan yang lebih pendek menghasilkan sedikit konsep +- **Makalah penelitian, dokumen teknis, catatan rapat** — kaya akan istilah spesifik bidang +- **Setelah kontennya stabil** — jangan memproses draf berulang kali + +### Pengaturan Utama + +| Pengaturan | Disarankan | Alasan | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek atau GPT-4o-mini | Akurasi yang baik dengan biaya rendah | +| Penghapusan sinonim | Aktif | Mencegah node duplikat | +| Jendela konteks | Paragraf | Keseimbangan antara akurasi dan biaya | + +→ [Wiki-Links deep dive](/docs/features/wiki-links) + +--- + +## 2. Catatan Konsep: Node Pengetahuan yang Dapat Ditarik + +Tautan wiki menghubungkan ide-ide secara langsung, namun catatan konsep memungkinkan setiap ide diakses secara mandiri. Setiap konsep memiliki file `.md`nya sendiri: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### Proses Ekstraksi + +Prompt LLM memiliki struktur yang sangat teratur: +- Normalisasi ke bentuk tunggal +- Lebih prefer konsep berupa beberapa kata daripada kata tunggal (“Dielectric Relaxation” bukan “Relaxation”) +- abaikan bagian referensi/bibliografi +- Keluaran dalam bentuk baris `CONCEPT:` untuk parsing yang dapat diprediksi + +Konsep-konsep dideduplikasikan di antara berbagai bagian melalui `Set<string>`. Kesalahan LLM pada bagian tertentu tidak menghentikan proses. + +### Tautan Balik + +Jika diaktifkan, setiap catatan konsep mencatat nota sumber mana yang menyebutkannya. Panel tautan balik bawaan Obsidian juga menampilkan koneksi terbalik. + +### Penghapusan duplikat + +Mesin deduplikasi 4 langkah Notemd dapat mendeteksi: +1. **Persamaan persis** — perbandingan nama file yang tidak sensitif terhadap huruf besar kecil +2. **Bentuk jamak** — "Models.md" vs "Model.md" +3. **Normalisasi simbol** — "A-B.md" vs "A B.md" +4. **Penyimpanan kata tunggal** — "ML.md" ditandai ketika "Machine Learning.md" ada + +### Pengaturan Kunci + +| Pengaturan | Disarankan | Alasan | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` atau `🧠 concepts/` | Mempertahankan tata letak vault | +| `extractConceptsAddBacklink` | On | Mengaktifkan pencarian terbalik | +| `extractConceptsMinimalTemplate` | Off | Template lengkap dengan Linked From | +| Model per tugas | DeepSeek | Ekstraksi konsep tidak memerlukan model yang mahal | +| Penekanan sinonim | On | Pengaturan yang sama mempengaruhi pemberian tautan dan ekstraksi | + +→ [Penjelasan mendalam tentang Catatan Konsep](/docs/features/concept-notes) + +--- + +## 3. Penelitian: Mengintegrasikan Web + +Notemd menggabungkan pencarian web ke dalam alur kerja pembuatan catatan Anda: + +1. **Pembuatan kueri** — judul atau pilihan catatan Anda menjadi kueri pencarian +2. **Pencarian web** — Tavily (direkomendasikan, memerlukan kunci API) atau DuckDuckGo (gratis, tanpa kunci) +3. ****LLM** ringkasan** — hasil pencarian diringkas menjadi ringkasan yang relevan +4. **Menambahkan ke catatan** — ringkasan ditambahkan di posisi kursor atau sebagai bagian baru + +### Kapan Digunakan + +- Sebelum memproses topik baru — dapatkan konteks web terlebih dahulu +- Ketika catatan konsep perlu diperkaya — lakukan penelitian lalu tambahkan tautan +- Untuk tinjauan literatur — lakukan penelitian secara massal pada folder catatan + +### Pengaturan Utama + +| Pengaturan | Direkomendasikan | Alasan | +|---------|-----------|-----| +| `researchProvider` | GPT-4o atau Claude | Penelitian memerlukan ringkasan dengan kualitas lebih tinggi | +| Layanan pencarian | Tavily | Relevansi yang lebih baik, kedalaman yang dapat dikonfigurasi | +| `maxResearchContentTokens` | 4000 | Keseimbangan antara kedalaman dan biaya | + +→ [Penelitian mendalam tentang deep dive](/docs/features/research) + +--- + +## 4. Penerjemahan: Menghilangkan Hambatan Bahasa + +Notemd menerjemahkan catatan menggunakan LLM yang telah dikonfigurasi oleh Anda — bukan penerjemah khusus API. Artinya adalah. + +- **Penerjemahan berbasis konteks** — LLM memahami seluruh dokumen, bukan hanya kalimat demi kalimat +- **Penanganan istilah teknis** — "gradient descent" tetap menjadi "梯度下降" dan bukan "坡度向下" +- **Dukungan batch** — menerjemahkan seluruh folder catatan sekaligus dalam satu operasi +- **Model per tugas** — gunakan Gemini Flash untuk penerjemahan (cepat, murah, multibahasa) + +### Dukungan Bahasa + +Notemd sendiri mendukung 21 bahasa UI. Bahasa tujuan penerjemahan dapat dikonfigurasi per tugas. Pasangan umum: EN↔ZH, EN↔JA, EN↔KO, EN↔DE, EN↔FR, EN↔ES. + +→ [Penelitian mendalam tentang penerjemahan](/docs/features/translation) + +--- + +## 5. Diagram: Menampilkan Struktur + +Pipeline diagram Notemd berbasis spesifikasi terlebih dahulu: LLM menghasilkan `DiagramSpec` JSON yang terstruktur, lalu adapter menerjemahkannya ke format tujuan. Cara ini menghasilkan output yang lebih dapat diandalkan dibandingkan meminta LLM untuk sintaks Mermaid mentah. + +### Deteksi niat + +Notemd menyimpulkan jenis diagram terbaik dari kontennya: + +- **Tabel dengan angka** → grafik data (Vega-Lite) +- **Kosakata klien/server** → diagram urutan (Mermaid) +- **Entitas/kunci utama** → diagram ER (Mermaid) +- **Langkah/alur proses** → diagram alir (Mermaid) +- **Kata kunci peta konsep** → JSON Canvas (Obsidian native) +- **Default** → peta pikiran (Mermaid) + +### Rantai Rendering + +Target utama → cadangan → cadangan → HTML. Jika sintaks Mermaid gagal, sistem mencoba sekali lagi dengan konteks kesalahan ke LLM, lalu beralih ke diagram minimal. + +### Pengaturan Kunci + +| Pengaturan | Disarankan | Alasan | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | On | Kualitas yang lebih baik melalui pendekatan berbasis spesifikasi | +| `experimentalDiagramCompatibilityMode` | `best-fit` | Target native sesuai intent | +| `summarizeToMermaidProvider` | GPT-4o atau Claude | Spesifikasi diagram memerlukan penalaran spasial | +| `autoMermaidFixAfterGenerate` | On | Menangkap kesalahan sintaks LLM secara otomatis | +| Peningkatan pengetahuan lokal | Diaktifkan untuk konteks spesifik domain | Meningkatkan akurasi dengan konteks vault | + +→ [Penjelasan mendalam tentang diagram](/docs/features/diagrams) + +--- + +## 6. Alur kerja: Otomatisasi satu klik + +Alur kerja menggabungkan beberapa tugas ke dalam satu tombol di sidebar. Format DSL-nya adalah: + +``` +task1 | task2 | task3 +``` + +Contoh: `addLinks | extractConcepts | generateDiagram` — memproses catatan dari teks mentah menjadi node pengetahuan visual yang terhubung sepenuhnya dengan satu klik. + +### Alur kerja yang direkomendasikan + +| Alur kerja | Rantai | Kasus Penggunaan | +|----------|-------|----------| +| Proses lengkap | `addLinks \| extractConcepts \| generateDiagram` | Catatan baru | +| Penelitian terlebih dahulu | `research \| addLinks` | Topik yang tidak dikenal | +| Polyglot | `translate \| addLinks` | Catatan berbahasa ganda | +| Hanya Diagram | `generateDiagram` | Visualisasi Cepat | + +→ [Pengenalan Mendalam Mengenai Alur Kerja](/docs/features/workflows) + +--- + +## 7. LLM Provider: 36 Opsi dari Cloud hingga Lokal + +Notemd mendukung 36 provider di 4 jenis transportasi. Kelompok utama: + +- **Cloud Internasional**: OpenAI, Anthropic, Google, Mistral, xAI +- **Cloud China**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **Gateway**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **Lokal**: Ollama, LMStudio, OVMS — tidak ada kunci API, data tidak keluar dari mesin Anda + +### Strategi Model Per-Tugas + +Pengaturan yang paling hemat biaya menggunakan model murah untuk tugas sederhana dan model kuat untuk tugas yang kompleks: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [Gambaran Umum Provider LLM](/docs/providers/overview) + +--- + +## Daftar Periksa Untuk Memulai + +1. **Instal Notemd** — [Community Plugins](/docs/getting-started/installation) (disarankan) atau secara manual +2. **Konfigurasi provider** — DeepSeek (paling mudah), OpenAI, atau Ollama (gratis) +3. **Proses catatan pertama Anda** — klik kanan → "Proses file (tambahkan tautan)" +4. **Menetapkan folder konsep** — Pengaturan → Notemd → Keluaran → Folder Konsep +5. **Mengekstrak konsep** — jalankan "Mengekstrak konsep" pada catatan yang sama +6. **Menghasilkan diagram** — jalankan "Menghasilkan diagram" untuk memvisualisasikan koneksi +7. **Membuat alur kerja** — menggabungkan langkah di atas menjadi tombol satu klik + +## Konfigurasi yang direkomendasikan + +### Siswa (Anggaran) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### Peneliti (Kualitas) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### Privasi Terutama (Hanya Lokal) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### Bilingual (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## Pola Umum + +### Pola: Memproses Makalah Penelitian + +1. Impor konten PDF (atau tempel) +2. **Meneliti** — dapatkan konteks web tentang topik +3. **Menambahkan Tautan** — identifikasi dan hubungkan konsep kunci +4. **Mengekstrak Konsep** — buat catatan terpisah +5. **Menghasilkan Diagram** — visualisasikan struktur makalah + +### Pola: Pemperkayaan Catatan Harian + +1. Menulis catatan harian +2. **Tambahkan Tautan** — menghubungkan ide-ide hari ini dengan konsep yang sudah ada +3. Catatan konsep diperbarui otomatis dengan tautan balik + +### Pola: Ulasan Literatur + +1. Buat folder untuk menyimpan makalah/catatan +2. **Tambahkan Tautan Secara Massal** — memproses seluruh folder +3. **Hapus Duplikat Konsep** — membersihkan catatan yang hampir sama +4. **Buat Diagram** — peta pikiran dari seluruh literatur tersebut + +--- + +*Notemd merupakan perangkat lunak sumber terbuka (MIT) dan berfungsi dengan Obsidian 0.15.0+ di semua platform. [Instal sekarang](/docs/getting-started/installation) atau [lihat di GitHub](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/id/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/id/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..6903287a --- /dev/null +++ b/website/i18n/id/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "Mengonfigurasi Anthropic Claude" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Provider Anthropic + +<TLDR> +**Anthropic menggunakan transportasi Messages API bawaan, bukan transportasi yang kompatibel dengan OpenAI.** Preset saat ini menggunakan `claude-3-5-sonnet-20240620`, `https://api.anthropic.com`, dan `temperature: 0.5` sebagai default. Anggaplah ini sebagai lapisan protokol terpisah saat melakukan debugging. + +Ini merupakan bagian dari [Obsidian Panduan Manajemen Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Pengaturan + +Buat kunci Anthropic API, tambahkan profil provider `Anthropic`, dan biarkan Base URL berada di endpoint bawaan kecuali Anda merutekannya melalui profil gateway khusus. Pilih ID model Claude yang ingin digunakan di field model; defaultnya menjaga baseline produk yang ada tetap stabil. + +Anthropic merupakan pilihan yang baik untuk sintesis ringkasan berkualitas tinggi, sintesis penelitian, dan ekstraksi konsep. Jika Anda menggabungkannya dengan provider yang lebih murah, gunakanlah hanya pada tugas-tugas yang membutuhkan kualitas outputnya. + +## Endpoint dan Autentikasi + +| Field | Preset saat ini | +|-------|----------------| +| Transportasi | `anthropic` | +| Kunci API | Diperlukan | +| Base URL | `https://api.anthropic.com` | +| Model default | `claude-3-5-sonnet-20240620` | +| Temperature | `0.5` | +| Uji koneksi | Hanya chat | + +Runtime mengirim permintaan ke `/v1/messages` menggunakan `x-api-key` dan `anthropic-version: 2023-06-01`. Jangan konfigurasi endpoint `/v1/chat/completions` bergaya OpenAI di bawah preset ini; gunakan preset gateway yang kompatibel dengan OpenAI sebagai gantinya. + +## Penemuan Model + +Anthropic menggunakan mode penemuan `anthropic-models` di registry penyedia. Jika kunci atau akun Anda tidak dapat mencantumkan model, simpan ID model yang sudah diketahui di profil dan validasikan melalui tes koneksi. + +Transportasi ini tidak dapat diganti dengan penyedia yang kompatibel dengan OpenAI. Model Claude yang dialirkan melalui OpenRouter, LiteLLM, atau gateway lain harus berada di profil gateway tersebut, bukan di profil Anthropic asli. + +## Pemecahan Masalah + +- `401` atau `403`: periksa cakupan kunci, akses workspace, billing, dan apakah kunci tersebut termasuk dalam workspace Anthropic yang diharapkan. +- `404`: Base URL salah atau ID model yang dipilih tidak tersedia untuk akun tersebut. +- ID model Claude bergaya gateway gagal: pindahkan profil ke penyedia gateway yang sesuai karena Anthropic asli mengharuskan nama model asli. +- Permintaan panjang gagal di tahap akhir: kurangi ukuran output model per tugas atau gunakan model dengan batas token output yang lebih besar. + +## Kapan Digunakan + +Gunakan Anthropic ketika kualitas sintesis, catatan penelitian, atau penulisan terstruktur lebih penting daripada biaya dasar. Jangan gunakannya sebagai alternatif umum yang kompatibel dengan OpenAI; transportasi terpisah itulah intinya, dan mencampur protokol membuat diagnosis menjadi lebih sulit. + +--- + +## Langkah Selanjutnya + +- [LLM Providers](/docs/providers/overview) -- Konfigurasi lengkap, model per tugas, dan logika pengulangan +- [Troubleshooting](/docs/advanced/troubleshooting) -- Perbaiki kesalahan 401/403 dan masalah koneksi diff --git a/website/i18n/id/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/id/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..65271122 --- /dev/null +++ b/website/i18n/id/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "Penyedia di Cina" +description: "Konfigurasi Qwen, DeepSeek, GLM, dan seterusnya." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Penyedia di Cina + +<TLDR> +**Notemd mendukung penyedia dari wilayah Cina dan asal Cina melalui endpoint yang sebagian besar kompatibel dengan OpenAI.** Daftar saat ini mencakup DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, MiniMax, Baidu Qianfan, SiliconFlow, Huawei Cloud MaaS, dan Z AI. Manfaatnya adalah jangkauan regional dan pengendalian biaya; risikonya adalah penamaan model khusus penyedia serta pembatasan akun. + +Ini merupakan bagian dari [Obsidian Panduan Manajemen Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Pengaturan + +Buat akun penyedia, hasilkan kunci API, lalu pilih preset penyedia Notemd yang sesuai alih-alih menggunakan profil umum OpenAI. Preset tersebut memiliki Base URL default, mode uji API, perilaku penemuan model, serta field UI khusus penyedia. + +Gunakan pemilihan model per-tugas secara agresif di sini. Misalnya, gunakan DeepSeek atau GLM untuk pekerjaan yang membutuhkan penalaran intensif, gunakan Qwen atau Moonshot untuk pekerjaan berbahasa Cina yang luas, dan arahkan tugas pemrograman ke Qwen Code bila akun tersebut menyediakan model pemrograman. + +## Endpoint dan Autentikasi + +| Penyedia | Model Default | Base URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (ID endpoint diperlukan) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**Catatan:** Doubao memerlukan ID endpoint Ark (format: `ep-xxxxxxxx-xxxx-xxxx`) bukan nama model standar. + +Sebagian besar penyedia ini menggunakan runtime yang kompatibel dengan OpenAI, tetapi semantik akun dan model mereka berbeda. Pertahankan Base URL khusus preset kecuali Anda telah memverifikasi endpoint alternatif akun tersebut. + +## Penemuan Model + +DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan, dan SiliconFlow menggunakan penemuan model yang kompatibel dengan OpenAI bila penyedia mendukung daftar. Huawei Cloud MaaS menggunakan mode `huaweicloud-modelarts-models` karena metadata penyebaran ModelArts tidak sama dengan daftar umum `/v1/models`. + +Jangan anggap kegagalan penemuan sebagai bukti bahwa chat tidak mungkin dilakukan. Beberapa penyedia memungkinkan chat sambil membatasi hak akses daftar model. Dalam kasus itu, simpan ID model yang eksplisit di profil dan verifikasi dengan tes koneksi. + +## Pemecahan Masalah + +- Autentikasi berhasil tetapi chat gagal: nama model mungkin berada di luar hak atau wilayah akun. +- Doubao gagal dengan nama model biasa: gunakan ID endpoint Ark di field model bila penyebaran Anda memerlukannya. +- Respons penalaran terpotong: periksa batas token keluaran khusus penyedia dan pengaturan batas token berbasis model dari Notemd. +- Jaringan regional bervariasi: gunakan endpoint wilayah Cina penyedia bila mesin vault berada di Cina; gunakan endpoint internasional hanya bila akun dan jalur jaringan keduanya valid. + +## Kapan Digunakan + +Gunakan penyedia di Tiongkok ketika latensi regional, akses pembayaran/akun, kualitas bahasa Mandarin, atau biaya merupakan batasan utama. Pilih OpenAI, Anthropic, Google, atau penyedia lokal secara langsung bila Anda membutuhkan batas protokol yang lebih sederhana atau konsistensi debugging antar penyedia yang lebih baik. + +--- + +## Langkah Selanjutnya + +- [LLM Providers](/docs/providers/overview) -- Konfigurasi lengkap, model per tugas, dan logika pengulangan +- [Pemecahan Masalah](/docs/advanced/troubleshooting) -- Perbaiki masalah koneksi regional dan kesalahan autentikasi diff --git a/website/i18n/id/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/id/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..031fc4c2 --- /dev/null +++ b/website/i18n/id/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "Konfigurasi Google Gemini" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Provider Google + +<TLDR> +**Google menggunakan transportasi bahasa generatif bawaan Gemini API.** Preset saat ini menggunakan `gemini-2.0-flash-exp`, `https://generativelanguage.googleapis.com/v1`, dan `temperature: 0.5` sebagai default. Ini bukan profil yang kompatibel dengan OpenAI. + +Ini merupakan bagian dari [Obsidian Panduan Manajemen Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Pengaturan + +Buat kunci Cloud API tipe Google AI Studio atau Google dengan akses Gemini, tambahkan profil penyedia `Google`, dan pertahankan Base URL bahasa generatif bawaan. Gunakan profil Gemini Flash default untuk penerjemahan cepat dan alur kerja catatan yang luas, lalu gantikan model per tugas bila diperlukan model Gemini yang lebih besar atau lebih kuat. + +Hindari meletakkan ID model Gemini dalam profil yang kompatibel dengan OpenAI kecuali Anda secara eksplisit menggunakan gateway yang mengekspos Gemini melalui API yang kompatibel dengan OpenAI. + +## Endpoint dan Autentikasi + +| Field | Preset saat ini | +|-------|----------------| +| Transportasi | `google` | +| Kunci API | Diperlukan | +| Base URL | `https://generativelanguage.googleapis.com/v1` | +| Model default | `gemini-2.0-flash-exp` | +| Temperature | `0.5` | +| Uji koneksi | Hanya chat | + +Saat menjalankan, dipanggil `/models/{model}:generateContent?key={apiKey}`. Kunci dikirim sebagai parameter query karena itulah cara endpoint Gemini bawaan terhubung di plugin. + +## Penemuan Model + +Google menggunakan mode penemuan `google-models`. Penemuan seharusnya mengembalikan model Gemini yang tersedia untuk kunci API; jika selector kosong, uji kunci terhadap Base URL yang sama dan pastikan keluarga model diaktifkan untuk akun tersebut. + +Batas token keluaran yang diketahui dipengaruhi oleh model di registry penyedia. Jika penerjemahan atau penjelasan diagram yang panjang terpotong, pilih model Gemini dengan kapasitas keluaran yang lebih besar atau kurangi ukuran keluaran yang diminta. + +## Pemecahan Masalah + +- `400`: ID model biasanya tidak sesuai dengan rute Gemini bawaan atau permintaan melebihi bentuk yang didukung oleh model. +- `401` atau `403`: periksa pembatasan kunci, aktivasi proyek/API, dan apakah kunci dapat mengakses Gemini. +- `404`: ID model tidak tersedia pada versi API yang dikonfigurasi. +- Contoh gateway gagal dalam profil ini: gunakan preset gateway alih-alih penyedia bawaan Google. + +## Kapan Digunakan + +Gunakan Google untuk penerjemahan cepat, pembersihan catatan dalam volume besar, dan alur kerja di mana keseimbangan biaya/performance Gemini lebih baik daripada menggunakan OpenAI atau Anthropic langsung. Pilih penyedia lain untuk alur kerja yang memerlukan penanganan model penalaran yang kompatibel dengan OpenAI. + +--- + +## Langkah Selanjutnya + +- [LLM Providers](/docs/providers/overview) -- Konfigurasi lengkap, model per tugas, dan logika pengulangan +- [Penerjemahan](/docs/features/translation) -- Gemini Flash direkomendasikan untuk tugas penerjemahan volume besar diff --git a/website/i18n/id/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/id/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..1cb3dd88 --- /dev/null +++ b/website/i18n/id/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "Model Lokal" +description: "Konfigurasi Ollama dan LLM lokal" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# Model Lokal + +<TLDR> +**Pemasok lokal menyimpan konten catatan di luar API yang terhosting.** Jalur lokal saat ini mencakup Ollama menggunakan transportasi bawaan `ollama` dan LMStudio melalui transportasi yang kompatibel dengan OpenAI. Tidak diperlukan kunci API untuk kedua jalur tersebut, tetapi server lokal dan model harus sudah berjalan terlebih dahulu. + +Ini merupakan bagian dari [Obsidian Panduan Manajemen Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Pengaturan + +Untuk Ollama, instal Ollama, unduh model yang diinginkan, mulai server, lalu tambahkan profil pemasok `Ollama` di Notemd. Untuk LMStudio, muat model di server lokal LM Studio dan tambahkan profil pemasok `LMStudio`. + +Model lokal merupakan ketergantungan operasional, bukan sekadar pengaturan. Notemd hanya dapat memanggil fungsi yang ditawarkan oleh proses lokal, jadi periksa model lokal di luar Obsidian sebelum mendebag plugin. + +## Endpoint dan Autentikasi + +| Penyedia | Base URL | Model Default | Kunci API | Catatan | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | Tidak diperlukan | Streaming NDJSON; penemuan model melalui `/api/tags` | +| LMStudio | `localhost:1234/v1` | `local-model` | Tidak diperlukan | Mengirim `"EMPTY"` sebagai token pembawa; kompatibel dengan OpenAI | + +Ollama menggunakan jalur bawaan `/chat` di bawah Base URL-nya. LMStudio mengikuti rute `chat/completions` yang kompatibel dengan OpenAI dan mengharuskan model yang sudah dimuat di server lokal. + +## Penemuan Model + +Ollama menggunakan mode penemuan `ollama-tags` dan menampilkan tag yang diunduh secara lokal. LMStudio menggunakan penemuan model yang kompatibel dengan OpenAI ketika servernya menawarkan `/v1/models`. + +Jika penemuan tidak menghasilkan apa pun, biasanya itu merupakan masalah kondisi server lokal: model belum diunduh, belum dimuat, atau server terhubung ke host/port yang berbeda dari profilnya. + +## Pemecahan Masalah + +- Connection refused: mulai Ollama atau LM Studio dan pastikan port yang dikonfigurasi sudah benar. +- Model tidak ditemukan: unduh tag Ollama atau muat model LM Studio sebelum menguji. +- Keluaran lambat: kurangi ukuran konteks, gunakan model lokal yang lebih kecil, atau arahkan tugas berat ke pemasok yang terhosting. +- Respons kosong atau tidak valid: pastikan profil pemasok yang dipilih sesuai dengan protokol server lokal; Ollama dan LMStudio tidak dapat saling digantikan. + +## Kapan Digunakan + +Gunakan penyedia lokal untuk vault pribadi, pekerjaan offline, atau tugas berulang yang murah. Jangan berasumsi bahwa penggunaan lokal secara otomatis lebih baik untuk sintesis penelitian atau penalaran jangka panjang; kualitas model dan batasan perangkat keras merupakan faktor yang harus dipertimbangkan. + +--- + +## Langkah Selanjutnya + +- [LLM Penyedia](/docs/providers/overview) -- Konfigurasi lengkap dan pengaturan model per tugas +- [Pemecahan masalah](/docs/advanced/troubleshooting) -- Perbaiki kesalahan connection-refused ketika server lokal tidak berjalan diff --git a/website/i18n/id/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/id/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..f46b8eed --- /dev/null +++ b/website/i18n/id/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "Konfigurasi OpenAI (GPT-4, GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# Provider OpenAI + +<TLDR> +**OpenAI menggunakan transportasi yang kompatibel dengan OpenAI.** Preset saat ini menggunakan `gpt-4o`, `https://api.openai.com/v1`, `temperature: 0.5`, dan pengujian koneksi `models-then-chat` secara default. Gunakan halaman ini bila Anda membutuhkan semantik field yang tepat; gunakan tinjauan [LLM Providers](/docs/providers/overview) untuk pemilihan tingkat kategori. + +Ini merupakan bagian dari [Obsidian Panduan Manajemen Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Pengaturan + +Buat kunci OpenAI API, tambahkan profil penyedia `OpenAI` di pengaturan Notemd, dan pertahankan Base URL default kecuali Anda sengaja mengarahkan ke gateway yang kompatibel dengan OpenAI. Field model dapat tetap di `gpt-4o` untuk pekerjaan umum atau diganti dengan ID model OpenAI lain yang dapat dipanggil oleh akun Anda. + +Gunakan model khusus tugas untuk pengendalian biaya: simpan model yang lebih kuat untuk penelitian, ekstraksi konsep, dan restrukturisasi teks panjang; gunakan model yang lebih murah atau lebih cepat untuk penerjemahan, saran tautan, dan ringkasan singkat. + +## Endpoint dan Autentikasi + +| Field | Preset saat ini | +|-------|----------------| +| Transportasi | `openai-compatible` | +| Kunci API | Diperlukan | +| Base URL | `https://api.openai.com/v1` | +| Model default | `gpt-4o` | +| Temperature | `0.5` | +| Uji koneksi | `/models`, lalu `/chat/completions` | + +Notemd menormalisasi base URL yang kompatibel dengan OpenAI sebelum menambahkan `chat/completions` atau `models`. Jangan tambahkan `/chat/completions` di akhir Base URL; hal itu akan membuat path menjadi duplikat. + +## Penemuan Model + +OpenAI menggunakan jalur penemuan model umum yang kompatibel dengan OpenAI. Pengaturan UI pertama kali menanyakan `/v1/models`, lalu memverifikasi model yang dipilih dengan permintaan chat ringan. Jika penemuan gagal tetapi chat masih berfungsi, periksa apakah kunci Anda memiliki izin model-list atau apakah gateway memblokir daftar model. + +Model reasoning diperlakukan sebagai kasus ekstrem protokol: Notemd menggabungkan konten prompt sistem dan pengguna untuk ID reasoning OpenAI yang menolak peran `system` terpisah, dan hanya menampilkan `reasoningEffort` bila definisi penyedia mendukungnya. + +## Pemecahan Masalah + +- `401` atau `403`: periksa kunci, akses proyek, status billing, dan apakah model yang dipilih diaktifkan untuk kunci tersebut. +- `404` pada chat: Base URL biasanya salah atau sudah mencakup `/chat/completions`. +- Model muncul di dokumen tetapi tidak di selector: akses model-list dan akses chat merupakan titik kegagalan yang terpisah; uji ID model yang tepat secara manual di profil penyedia. +- Model reasoning menolak pesan: gunakan ID model yang termasuk dalam jalur penanganan reasoning OpenAI atau beralih ke model chat non-reasoning. + +## Kapan Digunakan + +Gunakan OpenAI bila Anda menginginkan path default yang paling dapat diprediksi, ketika penemuan `/v1/models` penting, atau ketika alur kerja bergantung pada semantik model reasoning OpenAI. Pilih gateway atau penyedia lokal bila routing, privasi, atau pengendalian biaya lebih penting daripada perilaku langsung OpenAI API. + +--- + +## Langkah Selanjutnya + +- [LLM Providers](/docs/providers/overview) -- Konfigurasi lengkap, model per tugas, dan logika pengulangan +- [Troubleshooting](/docs/advanced/troubleshooting) -- Perbaiki kesalahan 401/403 dan batasan kecepatan diff --git a/website/i18n/id/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/id/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..8f441669 --- /dev/null +++ b/website/i18n/id/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "Penyedia LLM" +description: "Konfigurasi 36 penyedia LLM — cloud, gateway, dan lokal — dengan pemilihan model per tugas" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Penyedia LLM + +<TLDR> +**Notemd mendukung 36 penyedia LLM di 4 jenis transportasi.** Semua panggilan API menggunakan HTTP mentah (tanpa SDK) dengan retry otomatis, fallback transportasi, dan caching respons selama 5 menit. Pemilihan model per tugas memungkinkan Anda menggunakan model murah untuk ekstraksi konsep dan model kuat untuk penelitian. Tidak diperlukan kunci API untuk penyedia lokal (Ollama, LMStudio). +</TLDR> + +Ini merupakan bagian dari [Obsidian Panduan Manajemen Pengetahuan AI](/docs/pillar-ai-knowledge). + +## Kategori Penyedia + +### Penyedia Cloud + +| Penyedia | Dasar URL default | Model Default | Temperature | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### Penyedia Gateway / Proxy + +| Penyedia | Dasar URL default | Model Default | Catatan | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | Menambahkan header `HTTP-Referer` + `X-Title` | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | Menambahkan header `X-GitHub-Api-Version` | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | Menambahkan header `APP-Code` | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | Kunci API opsional | +| **API baru** | `localhost:3000/v1` | `gpt-4.1` | Kunci API opsional | +| **OpenAI Compatible** | (diatur oleh pengguna) | `your-model-id` | Titik akhir khusus | + +### Penyedia di Cina + +| Penyedia | Dasar default URL | Model Default | Catatan | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | Berfokus pada pemrograman | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (ID endpoint diperlukan) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | Titik akhir Zhipu, Tiongkok | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | Titik akhir internasional Zhipu | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | Platform penampungan model | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao memerlukan ID titik akhir Ark** (format: `ep-xxxxxxxx-xxxx-xxxx`). Placeholder default harus diganti. + +### Penyedia lokal + +| Penyedia | Dasar default URL | Model Default | Catatan | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | Tidak ada kunci API. Streaming NDJSON. Penemuan model melalui `/api/tags` | +| **LMStudio** | `localhost:1234/v1` | `local-model` | Mengirim `"EMPTY"` sebagai token bearer. Penemuan yang kompatibel dengan OpenAI | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (diatur oleh pengguna) | `gpt-4o` | Nama penyebaran di URL. Header `api-key` | + +## Pemilihan Model Per Tugas + +Notemd mendukung penyedia dan model yang terpisah untuk setiap tugas. Aktifkan dengan `useMultiModelSettings: true`. + +### Tugas yang Tersedia + +| Tugas | Kunci Pengaturan | Penyedia Default | +|------|-------------|-----------------| +| Menambahkan Tautan (penyisipan tautan wiki) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| Penelitian (pencarian web + ringkasan) | `researchProvider` / `researchModel` | DeepSeek | +| Menghasilkan dari Judul | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| Terjemahan | `translateProvider` / `translateModel` | DeepSeek | +| Pembuatan Diagram | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| Ekstraksi Konsep | `extractConceptsProvider` / `Model` | DeepSeek | +| Ekstraksi Teks Asli | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### Urutan Resolusi + +1. Jika `useMultiModelSettings` aktif → gunakan penyedia + model khusus tugas +2. Jika pengganti model tugas kosong → gunakan model default penyedia +3. Jika penyedia tugas tidak valid → gunakan `activeProvider` global +4. Jika `useMultiModelSettings` dimatikan → semua tugas menggunakan `activeProvider` global + +### Konfigurasi yang direkomendasikan + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## Arsitektur Panggilan API + +### Lapisan Transportasi + +1. **Obsidian `requestUrl`** — utama (bawaan, berfungsi di semua platform) +2. **Desktop HTTP** — modul Node.js `http`/`https` (streaming + permintaan panjang) +3. **Web `fetch`** — alternatif bila modul Node.js tidak tersedia + +Plugin ini secara otomatis beralih antar lapisan transportasi saat terjadi kesalahan jaringan sementara. + +### Logika Ulang + +- **Mode normal** (`enableStableApiCall: false`): Satu percobaan. Jika gagal sementara, otomatis naik tingkat ke ulangan yang stabil. +- **Mode ulangan stabil** (`enableStableApiCall: true`): Hingga 4 percobaan (1 + 3 ulangan) dengan interval 5 detik. +- **Kesalahan sementara yang memicu ulangan**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **Yang tidak dapat diulang**: HTTP 400, 401, 403, 404 + +### Pengarsipan Respons + +Cache LRU dalam memori selama 5 menit yang diberi kunci berdasarkan penyedia + model + suhu + prompt + konten. Permintaan serupa setelahnya dalam 5 menit akan langsung mengembalikan hasil yang sudah dikasihkan. + +### Penanganan Model Penalaran + +Model yang tidak mendukung peran `system` (DeepSeek R1, OpenAI o1/o3/o4/gpt-5) secara otomatis menggabungkan prompt sistem dan pengguna menjadi satu pesan pengguna tunggal. + +DeepSeek-specific: `thinkingEnabled` menambahkan `{ thinking: { type: 'enabled' } }` ke dalam permintaan. `reasoningEffort` (rendah/tengah/tinggi) dikirim sebagai `reasoning_effort`. Memverifikasi bahwa batas maksimum token keluaran ≥ 8000 saat mode berpikir diaktifkan. + +### Perkiraan Token + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — heuristik 4 karakter per token. Digunakan untuk menerapkan `maxResearchContentTokens` sebelum dikirim ke LLM. + +Tidak ada pelacakan biaya yang diimplementasikan. + +## Penemuan Model + +| Mode | Penyedia | Titik Akhir | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | Daftar Model API | +| `anthropic-models` | Anthropic | Daftar Model API | +| `openai-compatible-models` | DeepSeek, Qwen, Mistral, dll. | `/v1/models` | +| `openrouter-models` | OpenRouter | Daftar Model API | +| `github-models` | GitHub Models | Inferensi API | +| `none` | Azure OpenAI | Disonaktifkan (memerlukan nama penyebaran) | + +## Mulai Cepat + +1. **Pilih penyedia** — DeepSeek (Tiongkok), OpenAI (Internasional), atau Ollama (Lokal/Bebas) +2. **Masukkan kunci API** — Pengaturan → Notemd → Penyedia → Kunci API +3. **Uji koneksi** — Klik tombol uji +4. **Opsi: Model per tugas** — Aktifkan `useMultiModelSettings` dan atur secara terpisah + +Untuk Ollama: tidak diperlukan kunci API. Pastikan saja `ollama serve` sedang berjalan. + +--- + +## Langkah Selanjutnya + +- 📝 [Catatan Konsep](/docs/features/concept-notes) — Menggunakan model ekstraksi per tugas +- 🎨 [Diagram](/docs/features/diagrams) — Menggunakan model diagram per tugas +- 🔍 [Penelitian](/docs/features/research) — Menggunakan model khusus penelitian +- ⚙️ [Konfigurasi](/docs/getting-started/configuration) — Referensi pengaturan lengkap diff --git a/website/i18n/id/docusaurus-theme-classic/footer.json b/website/i18n/id/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/id/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/id/docusaurus-theme-classic/navbar.json b/website/i18n/id/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/id/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/it/code.json b/website/i18n/it/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/it/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/it/docusaurus-plugin-content-docs/current.json b/website/i18n/it/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/it/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/it/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/it/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..38228291 --- /dev/null +++ b/website/i18n/it/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "Elaborazione batch" +description: "Elabora più file in modo efficiente" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# Elaborazione batch + +<TLDR> +**Notemd elabora intere cartelle in un’unica operazione, con concorrenza configurabile e controllo sulla sovrascrittura.** Fai clic con il tasto destro su una cartella per aggiungere in batch link wiki, estrarre concetti, effettuare ricerche o tradurre tutte le note al suo interno. I limiti di concorrenza prevengono gli errori legati ai limiti di velocità di API. Viene riportato il progresso per file. Il comportamento di sovrascrittura è configurabile: saltare i file esistenti, aggiungerli o sostituirli. I file che falliscono vengono registrati senza interrompere l’elaborazione batch. + +Questo fa parte della [Obsidian Guida alla gestione delle conoscenze AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Panoramica + +Il processing batch converte una cartella di note in un’unica operazione. Invece di aprire ciascuna nota e eseguire i comandi separatamente, basta fare clic con il tasto destro sulla cartella e selezionare il compito. Notemd scorre ogni file `.md`, applica l’azione scelta e riporta i progressi in tempo reale. + +Questa funzionalità è essenziale per l’estrazione delle conoscenze in tutto il vault. Dopo aver importato decine di PDF, ad esempio, utilizzando prima l’operazione batch-add-links e poi batch-extract-concepts, è possibile creare il proprio grafo delle conoscenze in pochi minuti anziché in ore. + +## Come funziona + +### Modello di Esecuzione Batch + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **Raccolta file** -- Notemd esamina la cartella di destinazione in modo ricorsivo (o solo a livello superiore, a seconda delle impostazioni) e raccoglie tutti i file `.md`. +2. **Partizionamento per concorrenza** -- I file vengono divisi in blocchi in base alla impostazione `batchConcurrency`. Ogni blocco viene eseguito in parallelo; i blocchi vengono invece eseguiti in sequenza. +3. **Esecuzione** -- Ogni file viene elaborato utilizzando la stessa logica del comando per un singolo file. Vengono rispettate le impostazioni del fornitore e del modello per ogni task. +4. **Rapporto di avanzamento** -- Una notifica tipo toast viene aggiornata dopo il completamento di ciascun file, mostrando l’ avanzamento di `N / Total`. +5. **Gestione degli errori** -- Se un file fallisce (errore API, timeout di rete, ecc.), l’errore viene registrato e il batch prosegue. La sintesi finale elenca tutti i file che hanno fallito. +6. **Completamento** -- Un messaggio di riepilogo indica il totale elaborato, i successi e i fallimenti. + +### Comportamento di sovrascrittura + +Quando si elabora un file che già contiene link wiki, note concettuali o traduzioni, il comportamento di Notemd dipende dall’impostazione di sovrascrittura: + +| Modalità | Comportamento | +|------|----------| +| **Saltare** | Il contenuto esistente rimane invariato. Vengono elaborati solo i file non modificati. | +| **Append** (predefinito) | Viene aggiunto nuovo contenuto. I link wiki, i concetti o le traduzioni esistenti vengono mantenuti. | +| **Sostituisci** | Il file è stato completamente riprocessato. Tutte le modifiche precedenti di Notemd vengono sovrascritte. | + +Per i collegamenti wiki in particolare: se una nota contiene già `[[wiki-links]]`, il modalità **skip** la lascia intatta, mentre **replace** invia nuovamente l’intera nota a LLM per inserire un link aggiornato. Utilizza **skip** per un elaborazione incrementale e **replace** per una riprocesso dopo un aggiornamento del modello. + +### Controllo della concorrenza + +La configurazione `batchConcurrency` limita le chiamate parallele API. Ciò previene errori di limitazione della velocità (HTTP 429) durante l’elaborazione di cartelle grandi con fornitori che hanno quote molto restrittive. + +| Concorrenza | Consigliato per | Impatto tipico del limite di velocità | +|-------------|----------------|---------------------------| +| `1` | Livelli gratuiti, fornitori rigorosi | Nessuno (seriale) | +| `3` (predefinito) | La maggior parte dei fornitori di servizi cloud | Basso | +| `5` | Ollama (locale), livelli generosi | Nessuno / Basso | +| `10` | Modelli locali con inferenza rapida | Nessuno | + +Se si verificano errori 429 durante l’elaborazione batch, riducete la concorrenza a 1 o 2. + +## Configurazione + +| Impostazioni | Predefinito | Effetto | +|---------|---------|--------| +| `batchConcurrency` | `3` | Numero massimo di chiamate parallele API durante le operazioni sulle cartelle | +| `batchOverwriteExisting` | `false` | Sovrascrivere il contenuto esistente di Notemd. `false` = modalità append. | +| `batchSkipProcessed` | `false` | Ssalta i file che contengono già i marcatori Notemd (ad esempio, link wiki) | +| `batchRecursive` | `true` | Includi i sottodirectory durante la scansione della cartella | +| `enableStableApiCall` | `false` | Abilita la logica di riprova (fino a 4 tentativi) per file durante il batch | + +### Modelli per-task in batch + +Ogni operazione di batch utilizza il modello corrispondente per task. batch-add-links utilizza `addLinksProvider`, batch-research utilizza `researchProvider`, e così via. Ciò significa che è possibile assegnare modelli economici alle operazioni ad alto volume e riservare modelli costosi ai task sensibili alla qualità. + +## Esempio + +Hai una cartella `papers/` che contiene 40 note di ricerca importate. Vuoi aggiungere link wiki ed estrarre i concetti da tutte di esse: + +1. Fai clic con il tasto destro sul folder `papers/` +2. Seleziona **"Notemd: Processare cartella (aggiungere link)"** +3. Notemd esamina la cartella, trova 40 file `.md` e ne elabora 3 alla volta (concorrenza predefinita) +4. Un messaggio di avanzamento mostra: `12/40 files processed...` +5. Dopo circa 3 minuti, un messaggio di riepilogo riporta: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. Ripeti con **"Notemd: Process folder (extract concepts)"** per creare note sui concetti per tutti i 40 + +Il file che ha fallito è stato registrato. Potete eseguire di nuovo l’operazione solo su quel file in seguito. + +## Consigli + +- **Inizia con una bassa concorrenza** -- Se non sei sicuro dei limiti di velocità del tuo fornitore, inizia con `1` e aumentali gradualmente. +- **Utilizza il modalità di salto per aggiornamenti incrementali** -- Dopo il primo lotto completo, passa a `batchSkipProcessed: true` in modo che vengano elaborate solo le nuove note nelle esecuzioni successive. +- **Abilita le chiamate stabili API** -- `enableStableApiCall: true` aggiunge una logica di riprova che permette di recuperare da errori di rete temporanei durante l’elaborazione di batch lunghi. +- **Esegui nuovamente dopo gli aggiornamenti del modello** -- Se passi a un modello migliore, imposta `batchOverwriteExisting: true` ed esegui di nuovo per ottenere link e concetti migliorati. + +--- + +## Prossimi passi + +- [Workflows](/docs/features/workflows) -- Collega i task in batch in pulsanti sul lato sinistro con un solo clic +- [Custom Prompts](/docs/advanced/custom-prompts) -- Personalizza i prompt per l’estrazione in batch +- [Resoluzione dei problemi](/docs/advanced/troubleshooting) -- Correggi gli errori di limitazione della velocità e i fallimenti di connessione durante le esecuzioni batch +- [LLM Fornitori](/docs/providers/overview) -- Riferimento alla configurazione del modello per task diff --git a/website/i18n/it/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/it/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..ce0d423a --- /dev/null +++ b/website/i18n/it/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "Prompt personalizzati" +description: "Personalizza i prompt di LLM in base alle tue esigenze" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# Prompt personalizzati + +<TLDR> +**Notemd ti permette di sovrascrivere il prompt predefinito LLM per ogni tipo di task.** I prompt personalizzati ti danno il controllo su ciò che il modello priorizza: puoi limitare l’estrazione dei concetti a una disciplina specifica, modificare lo stile di collegamento o reindirizzare il tono della traduzione. Le variabili del prompt come `{{content}}` e `{{concept}}` vengono sostituite in tempo di esecuzione. La funzionalità relativa al dominio di apprendimento mirato aggiunge automaticamente il tuo campo di studio ai risultati dell’estrazione. + +Questo fa parte della [Obsidian Guida alla gestione delle conoscenze AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Panoramica + +I prompt integrati di Notemd sono stati creati per attività di conoscenza a scopo generale. Funzionano bene in diversi ambiti, ma lasciano comunque spazio per miglioramenti specifici per ciascun dominio. I prompt personalizzati permettono di indicare esattamente a LLM come comportarsi nel proprio caso d’uso: che si tratti di estrarre soltanto terminologia medica, di collegare soltanto entità denominate o di tradurre in un registro formale. + +I prompt personalizzati non sostituiscono l’intero prompt di sistema. Essi sovrappongono o integrano la **parte delle istruzioni specifiche per il compito**, mantenendo al contempo il formato strutturale dell’output (ad esempio le righe `CONCEPT:`, la sintassi dei link wiki) di cui Notemd ha bisogno per l’elaborazione. + +## Come funziona + +### Architettura del Prompt + +Ogni task Notemd segue la stessa struttura di prompt: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **Prompt di sistema di base** -- Imposta la personalità dell’assistente. Non può essere sovrascritto. +2. **Dominio di apprendimento mirato** -- Aggiunge `Relevant Fields: [medicine / law / computer science / ...]` all’inizio per limitare l’ambito. Si tratta di un interruttore di impostazioni, non di un prompt grezzo. +3. **Prompt personalizzato per il compito** -- Sostituisce le istruzioni di default del compito (ad esempio, quali tipi di concetti estrarre, con quanta aggressività effettuare i collegamenti). +4. **Formato di output** -- Regole strutturali (linee `CONCEPT:`, formato link wiki). Viene sempre aggiunto Notemd per garantire la parzializzabilità. +5. **Contenuto** -- Il testo effettivo della nota, sostituito in tempo di esecuzione tramite `{{content}}`. + +### Variabili del prompt + +Le variabili vengono sostituite al momento dell’esecuzione. Le variabili disponibili variano in base al compito: + +| Variabile | Compiti | Sostituito con | +|----------|-------|---------------| +| `{{content}}` | Tutto | Il testo della nota o della selezione | +| `{{concept}}` | Modello di nota concettuale | Il nome del concetto estratto | +| `{{description}}` | Modello di nota concettuale | Descrizione del concetto generata da LLM | +| `{{backlinks}}` | Modello di nota concettuale | Elenco delle note di origine con link | +| `{{date}}` | Modello di nota concettuale | Data attuale (YYYY-MM-DD) | +| `{{language}}` | Traduzione | Lingua di output target | +| `{{source}}` | Modello di nota concettuale | Nota di origine nome del file | + +### Dominio di apprendimento mirato + +La funzione di apprendimento mirato è un’abbreviazione per la definizione dell’ambito di applicazione. Invece di scrivere un prompt personalizzato che menzioni il proprio campo, basta impostare `focusedLearningDomain` nelle impostazioni: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +Questo aggiunge `Relevant Fields: [medicine]` all’inizio della richiesta di estrazione, facendo sì che LLM dia priorità ai concetti rilevanti per il dominio e ne sopprima quelli generici. È più leggero di una richiesta personalizzata completa e funziona in tutti i compiti di estrazione. + +## Configurazione + +| Impostazioni | Predefinito | Effetto | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | Sovrascrivere la richiesta predefinita del compito add-links | +| `customExtractConceptsPrompt` | `''` | Sovrascrivere la richiesta predefinita per l’estrazione dei concetti | +| `customResearchPrompt` | `''` | Sovrascrivere la richiesta di ricerca predefinita + riassumere | +| `customTranslatePrompt` | `''` | Sovrascrivere la richiesta di traduzione predefinita | +| `customDiagramPrompt` | `''` | Sovrascrivere la richiesta predefinita per la generazione del diagramma | +| `focusedLearningDomain` | `''` | Aggiungi il contesto della disciplina alle istruzioni di estrazione e collegamento | +| `extractConceptsMinimalTemplate` | `true` | Utilizza il modello di nota concettuale con solo il titolo (influenza l’ambito del modello `{{concept}}`) | +| `customConceptNoteTemplate` | `''` | Sovrascrivere il modello del file di nota concettuale con pieno supporto per le variabili | + +**Quando un campo di prompt personalizzato è vuoto, viene utilizzato il prompt predefinito integrato.** + +## Esempio + +Sei un ricercatore medico che estrae concetti dalle note di studi clinici. Il prompt predefinito estrae sostantivi generici insieme ai termini medici, il che appesantisce la tua cartella dei concetti. + +**Soluzione:** Impostare un dominio di apprendimento specifico e una richiesta di estrazione personalizzata. + +1. Imposta `focusedLearningDomain` su `medicine` +2. Imposta `customExtractConceptsPrompt` su: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +Ora, quando si esegue “Extract concepts” su una nota clinica, il LLM produce: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +Invece del comportamento predefinito che potrebbe estrarre anche termini generici indesiderati come “ospedale” o “mese”. + +## Consigli + +- Inizia con il dominio di apprendimento specificato prima di scrivere una richiesta personalizzata completa. Con una sola impostazione è sufficiente per coprire l’80% dei casi d’uso. +- **Mantieni il formato di output** -- Non rimuovere mai le istruzioni di formattazione come "uno per riga" o "CONCEPT: prefix" dalle richieste personalizzate. Il parser di Notemd dipende da esse. +- **Testare prima con un’unica nota** -- I prompt personalizzati possono avere effetti inaspettati sull’ampiezza dell’estrazione. Verificare su una nota prima del processing batch. +- **Mantieni i prompt concisi** -- I prompt personalizzati eccessivamente lunghi consumano token e possono ridurre la concentrazione del modello. + +--- + +## Prossimi passi + +- [Wiki-Links](/docs/features/wiki-links) -- Cosa viene collegato quando si personalizza la richiesta di aggiunta dei link +- [Note di concetto](/docs/features/concept-notes) -- Modelli di nota di concetto e la variabile `{{concept}}` +- [Elaborazione batch](/docs/advanced/batch-processing) -- Applicare prompt personalizzati a intere cartelle +- [Resoluzione dei problemi](/docs/advanced/troubleshooting) -- Correggi i problemi in cui le istruzioni personalizzate producono output inaspettato diff --git a/website/i18n/it/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/it/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..a9594898 --- /dev/null +++ b/website/i18n/it/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "Risoluzione dei problemi" +description: "Problemi comuni e soluzioni" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Risoluzione dei problemi + +<TLDR> +**La maggior parte dei problemi Notemd rientra in quattro categorie: problemi principali con API, connettività di rete, errori di autenticazione (401/403) e limiti di frequenza (429).** Il test di connessione integrato e il pannello di diagnosi permettono di individuare rapidamente la causa radice. Questa pagina tratta ogni messaggio di errore comune, la sua causa e la soluzione. Per i problemi non elencati qui, segnalateli su GitHub Issues insieme ai risultati delle diagnosi. + +Questo fa parte della [Obsidian Guida alla gestione delle conoscenze AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Panoramica + +Notemd dipende da servizi esterni -- fornitori LLM e motori di ricerca API -- pertanto la maggior parte dei problemi ha origine al di fuori dello stesso plugin. Il pannello diagnostico nelle impostazioni fornisce una visione strutturata dell’ultima chiamata API, inclusa la richiesta URL, lo stato della risposta e il corpo dell’errore. Verificatelo sempre per primo prima di procedere con ulteriori indagini. + +## Come funziona: Diagnostica + +### Test di connessione + +Ogni sezione di configurazione del fornitore dispone di un pulsante **"Test Connection"**. Cliccandolo viene inviata una richiesta minima API (di solito un elenco di modelli o una breve completamento) e viene indicato se l’operazione è riuscita oppure se si verifica l’errore specifico HTTP. Questo è il modo più veloce per verificare che la chiave API e la base URL siano corrette. + +### Pannello di Diagnostica + +**Impostazioni --> Notemd --> Diagnostica** mostra: + +| Campo | Contenuto | +|-------|---------| +| Ultimo fornitore | Quale fornitore è stato chiamato per ultimo | +| Ultimo modello | Quale modello è stato chiamato per ultimo | +| Ultimo stato | Codice di stato HTTP o errore di trasporto | +| Ultimo errore | Messaggio di errore grezzo da API | +| Ultima richiesta URL | Contenuto completo URL della richiesta precedente (chiave API modificata) | +| Corpo dell’ultima risposta | Corpo della risposta troncato (primi 500 caratteri) | + +Copia l’intero output dei diagnostiche quando segnali problemi su GitHub. + +## Errori comuni + +### API Chiave non valida o assente + +**Sintomo:** HTTP 401 o "Chiave API fornita errata" + +**Causa:** La chiave API è mancante, contiene spazi bianchi o appartiene a un fornitore diverso. + +**Correzione:** +1. Verifica che la chiave non abbia spazi iniziali o finali +2. Conferma che la chiave corrisponda al fornitore selezionato (una chiave OpenAI non funzionerà con Anthropic) +3. Verifica se il tuo account dispone di crediti o di un abbonamento attivo +4. Clicca su **"Test Connection"** per verificare + +### Errori di rete/connettività + +**Sintomo:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**Causa:** L’endpoint API non è raggiungibile dalla tua macchina. + +**Correzione:** +1. Verifica la tua connessione a Internet +2. Se si è dietro un proxy o un firewall, verificare che il dominio API non sia bloccato +3. Per Ollama: confermare che `ollama serve` è in esecuzione (`ollama list` dovrebbe restituire i modelli) +4. Per LMStudio: confermare che il server è in esecuzione su `localhost:1234` +5. Prova un trasporto diverso: gli utenti mobili devono assicurarsi che il trasporto `requestUrl` sia attivo +6. Abilita `enableStableApiCall` per il riprovo automatico in caso di errori transitori + +### 403 Proibito + +**Sintomo:** HTTP 403 + +**Causa:** La tua chiave API è valida, ma non dispone delle autorizzazioni necessarie per accedere al risorsa richiesta. + +**Correzione:** +1. Alcuni modelli richiedono un accesso speciale (ad esempio, GPT-4 tramite Azure necessita di un nome di distribuzione). +2. Alcuni fornitori limitano i modelli in base al livello del piano: verifica il tuo account +3. Potrebbero essere applicate restrizioni regionali (alcuni fornitori cinesi bloccano gli IP internazionali e viceversa). +4. Verifica che il nome del modello sia scritto correttamente (ad esempio, `gpt-4o` e non `gpt-4o-mini` quando il mini modello è l’unico consentito dal tuo piano). + +### Limitazione della velocità di richiesta (429) + +**Sintomo:** HTTP 429 o “Limite di velocità superato” + +**Causa:** Troppe richieste in un breve lasso di tempo. + +**Correzione:** +1. Riduci `batchConcurrency` in `1` o `2` +2. Aspetta alcuni minuti prima di riprovare. +3. Controlla la documentazione relativa ai limiti di velocità del tuo fornitore per il tuo livello di abbonamento +4. Abilita `enableStableApiCall` per il riprovo automatico con backoff +5. Valutate di passare a un fornitore con limiti più alti (DeepSeek, Ollama) + +### Modello non trovato + +**Sintomo:** "Modello non trovato" o HTTP 404 + +**Causa:** Il nome del modello non esiste sul fornitore selezionato. + +**Correzione:** +1. Clicca su **"Otteni elenco modelli"** per visualizzare tutti i modelli disponibili per il tuo fornitore +2. Alcuni nomi di modello cambiano nel tempo: verificare il nome attuale nella documentazione del fornitore +3. Per Ollama: esegui `ollama list` per visualizzare i modelli scaricati; sono disponibili solo i modelli effettivamente downloadati + +### Nessun link / Nessun concetto generato + +**Sintomo:** Il comando viene eseguito ma non produce alcuna uscita + +**Causa:** Il LLM ha restituito una risposta vuota o non interpretabile. + +**Correzione:** +1. Controlla il pannello diagnostico per verificare la risposta effettiva di LLM +2. Prova un modello più potente (alcuni modelli piccoli hanno difficoltà con l’output strutturato). +3. Assicurati che la nota contenga un contenuto sufficiente (oltre 50 parole). +4. Controlla il tuo prompt personalizzato per verificare eventuali istruzioni in conflitto +5. Disabilita temporaneamente la soppressione dei sinonimi per verificare se sta filtrando in modo eccessivamente aggressivo + +### Doubao Mancante l’ID dell’endpoint + +**Sintomo:** Errore nell’utilizzo del provider ByteDance Doubao + +**Causa:** Doubao richiede un ID di endpoint Ark (formato: `ep-xxxxxxxx-xxxx-xxxx`) invece di un nome del modello. + +**Correzione:** Sostituisci il modello di placeholder predefinito con il tuo vero ID di endpoint estratto dalla console di Volcengine. + +## Configurazione + +| Impostazioni di Diagnosi | Posizione | Scopo | +|--------------------|----------|---------| +| **Test Connessione** | Impostazioni --> Sezione Fornitore | Verifica la chiave API e la connettività | +| **Ottenere elenco modelli** | Impostazioni --> Sezione Fornitore | Conferma quali modelli sono accessibili | +| `enableStableApiCall` | Impostazioni --> Avanzate | Abilita il riprovo con backoff | +| `batchConcurrency` | Impostazioni --> Lavorazione batch | Controlla il parallelismo per evitare i limiti di velocità | + +## Come segnalare problemi + +Se il tuo problema non è coperto sopra: + +1. Apri **Impostazioni --> Notemd --> Diagnostica** +2. Copia l’intero output dei diagnostiche +3. Apri un issue su GitHub all’indirizzo [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +4. Includi: versione Obsidian, versione Notemd, fornitore, modello, output diagnostico e passaggi per riprodurre il problema +5. Censura la tua chiave API da eventuali log condivisi + +--- + +## Prossimi passi + +- [LLM Fornitori](/docs/providers/overview) -- Riferimento completo alla configurazione dei fornitori +- [Elaborazione batch](/docs/advanced/batch-processing) -- Impostazioni di concorrenza e riprova per operazioni di grandi dimensioni +- [Custom Prompts](/docs/advanced/custom-prompts) -- Correggi il comportamento inaspettato di LLM regolando i prompt diff --git a/website/i18n/it/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/it/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..51c46f77 --- /dev/null +++ b/website/i18n/it/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "Domande frequenti" +description: "Domande frequenti sull’installazione, le funzionalità e l’uso di Notemd" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# Domande frequenti + +<TLDR> +**Risposte rapide alle domande più comuni su Notemd.** Copre l’installazione (impostazione in 5 minuti), il supporto per oltre 30 provider LLM, opzioni di modello locale/cloud, flussi di lavoro con un clic, UI multilingue (21 lingue), automazione dei collegamenti wiki, integrazione con strumenti di ricerca, flussi di lettura PDF, generazione di diagrammi e licenze open source. Tutte le funzionalità funzionano offline con Ollama. +</TLDR> + +--- + +## Installazione e configurazione + +### Come posso installare Notemd su Obsidian? + +Apri Obsidian **Impostazioni → Plugin della comunità → Esplora** → cerca **"Notemd"** → **Installa** → **Attiva**. + +**Requisiti:** +- Obsidian 0.15.0+ +- Compatibile su desktop (Windows, macOS, Linux) e dispositivi mobili (iOS, Android) + +**Installazione manuale:** +1. Scarica `main.js`, `styles.css`, `manifest.json` da [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) +2. Mettili in `<your-vault>/.obsidian/plugins/notemd/` +3. Ricarica Obsidian e abilita il plugin + +**Statistiche:** oltre 4.000 download, 44 versioni rilasciate, licenza MIT. + +--- + +## LLM Configurazione + +### Quali provider LLM supporta Notemd? + +Notemd supporta **oltre 30 fornitori**: + +**Fornitori cloud:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonetto, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**Focus sulla Cina:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**Local/auto-hostato:** +- Ollama +- LM Studio +- Qualsiasi endpoint compatibile con OpenAI + +**Gateway:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models, Fireworks, LiteLLM, Nebius, Cerebras +- Hugging Face, Vercel AI Gateway, Requesty + +### Può Notemd funzionare con i LLM locali? + +**Sì, completamente supportato.** Notemd funziona con: +- **Ollama** (integrazione nativa) +- **LM Studio** (tramite endpoint compatibile con OpenAI) +- **vLLM, LocalAI, text-generation-webui** (tramite modalità compatibile con OpenAI) + +Tutte le attività funzionano con modelli locali: collegamento, generazione di concetti, traduzione, ricerca e generazione di diagrammi. + +**Esempio di mix & match:** +- Ollama (locale) per il collegamento → veloce, privato, senza costi +- OpenAI per la ricerca → alta qualità, integrazione con la ricerca su web +- Gemini per la traduzione → supporto multimodale + +### Come posso configurare modelli diversi per compiti diversi? + +Nelle **Notemd Impostazioni**, ogni task dispone di selezionatori di fornitore/modello indipendenti: + +| Compito | Configurazione di esempio | +|------|----------------------| +| **Collegamento** | DeepSeek (veloce, economico) | +| **Generazione di concetti** | Claude Opus (alta qualità) | +| **Ricerca** | Perplexity o GPT-4o (web-grounded) | +| **Traduzione** | Gemini Flash (multimodale) | +| **Generazione di diagrammi** | Ollama (locale, privato) | + +Questa ottimizzazione per task bilancia velocità, costo e qualità. + +--- + +## Funzionalità principali + +### In che modo Notemd si differenzia da ChatGPT per la lettura di documenti cartacei? + +| Dimensioni | ChatGPT | Notemd | +|-----------|---------|--------| +| **Posizione di output** | Storia della chat (effimera) | Obsidian vault (file persistenti) | +| **Formato del risultato** | Risposta di testo | Link wiki, note di concetto, diagrammi, traduzioni | +| **Valore a lungo termine** | Scompare dopo la sessione | Viene accumulato nella base di conoscenza | +| **Riusabilità** | Devo effettuare un nuovo query | I file rimangono, il link si evolve | + +**Usa ChatGPT per:** Domande e risposte rapide, spiegazioni occasionali +**Utilizzare Notemd per:** Creare una base di conoscenza persistente e strutturata nel corso di settimane/mesi + +### Come fa Notemd ad aggiungere link wiki alle note? + +**Processo:** +1. Esegui "Process file (add links)" su una nota +2. Notemd invia il testo al tuo LLM configurato +3. Il LLM identifica i concetti chiave nel contesto +4. Notemd inserisce `[[wiki-links]]` in ogni occorrenza di concetto +5. Opzionalmente, crea automaticamente le note di concetto in una cartella da te specificata + +**Caratteristiche:** +- Suppressione dei sinonimi (evita duplicati tra “transformer” e “transformers”) +- Backlink dalle note di concetto alla fonte +- Integrità del link durante il rinominamento/cancellazione +- Modalità di estrazione pura (estrarre concetti senza modificare il testo originale) + +### Cos’è il flusso di lavoro one-click di Notemd? + +I **flussi di lavoro con un clic** collegano più azioni in un **unico pulsante nella barra laterale**. + +**Flusso di lavoro predefinito:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**Risultato:** Un clic avvia: +1. Aggiungi link wiki alla nota attuale +2. Genera note di concetto per nuovi termini +3. Ricerca e aggiunta di informazioni di contesto +4. Comprimi in un diagramma Mermaid + +**Flussi di lavoro personalizzati:** Definisci i tuoi con le Impostazioni utilizzando il formato DSL. Ogni flusso di lavoro diventa un pulsante nella barra laterale riutilizzabile. + +### In che modo Notemd si confronta con Copilot o Smart Connections? + +Questi plugin risolvono problemi diversi: + +- **Copilot** — Prima di tutto la conversazione. Chatti con un’IA riguardo alle tue note. Le risposte dell’IA rimangono nel pannello di chat; non modificano il tuo archivio. +- **Smart Connections** — Prima di tutto la scoperta. Trova note semanticamente simili utilizzando embedding. Non crea né modifica contenuti. +- **Notemd** — Scrivi prima. L’AI elabora le tue note e genera risultati strutturati (link wiki, note concettuali, ricerche, diagrammi, traduzioni) direttamente nel tuo archivio come file persistenti. + +| Cosa ti serve | Plugin consigliato | +|----------------|-------------------| +| Chatta con l'AI riguardo alle note | Copilot | +| Trovare note simili/ correlate | Smart Connections | +| Inserisci automaticamente link wiki e crea un grafo di conoscenza | **Notemd** | +| Genera note di concetto con backlink | **Notemd** | +| Crea diagrammi a partire dal contenuto delle note | **Notemd** | +| Ricerca un argomento e aggiungi riassunti | **Notemd** | + +I tre possono essere utilizzati insieme: si completano a vicenda invece di competere tra loro. + +--- + +## Ricerca e Traduzione + +### Quali servizi di ricerca funzionano con la ricerca Notemd? + +| Servizio | API Chiave richiesta | Qualità | Note | +|---------|-----------------|---------|-------| +| **Tavily** | Sì | Alto | Ricerca consigliata, ottimizzata per l’AI | +| **DuckDuckGo** | No | Sperimentale | Nessuna configurazione, qualità inferiore | + +**Come funziona “Ricerca e riassunto”:** +1. Selezioni un argomento o eseguilo sulla nota attuale +2. Notemd richiede informazioni al servizio di ricerca +3. Risultati → riassunto di LLM +4. Riepilogo aggiunto alla tua nota con citazioni delle fonti + +**Risultato:** Traccia di ricerca persistente nel tuo vault, non nelle schede del browser. + +### Notemd supporta il cinese o altri linguaggi? + +**UI lingue:** supportate 21+ +- Inglese, Cinese semplificato, Cinese tradizionale, Giapponese, Coreano +- Arabo, Tedesco, Francese, Spagnolo, Russo, Portoghese, Italiano +- No, bengalese, thailandese, vietnamita, turco, polacco, ceco e molto altro + +**Lingua di output del compito:** Configurazione indipendente +- UI in cinese + output in inglese: ✅ +- UI in inglese + output in cinese: ✅ + +**Caso d’uso:** I ricercatori bilingui possono mantenere UI nella lingua madre mentre generano note in inglese per la pubblicazione. + +--- + +## PDF e flussi di lavoro accademici + +### Posso utilizzare Notemd per la lettura su carta/PDF? + +**Sì.** Flusso di lavoro: +1. **Converte PDF in Markdown** utilizzando [MinerU](https://github.com/opendatalab/MinerU) (consigliato per articoli accademici) +2. Apri il file Markdown in Obsidian +3. Esegui le attività di Notemd: + - **Aggiungi link wiki** ai termini chiave + - **Genera note di concetto** per terminologia sconosciuta + - **Estrai il testo originale** tramite domande personalizzate (ad esempio, "Quali sono i limiti?") + - **Contesto di ricerca** per i metodi/set di dati citati + - **Traduci** le sezioni difficili + - **Comprimi in diagramma Mermaid** per una comprensione strutturale + +**Versione 1.9.1+:** Estrazione della struttura dei capitoli con supporto per il sommario + +**Risultato:** La lettura del tuo articolo diventa un artefatto di conoscenza strutturato e collegabile all’interno del tuo archivio. + +--- + +## Diagrammi e visualizzazione + +### Quali tipi di grafici/diagrammi può generare Notemd? + +| Digitare | Assistenza | Funzionalità | +|------|---------|----------| +| **Mermaid** | Completo | Flusso di lavoro, sequenza, classe, stato, ER, Gantt, correzione automatica della sintassi, validazione batch | +| **JSON Canvas** | Completo | Layout nativi del canvas di Obsidian | +| **Vega-Lite** | Completo | Grafici di dati, serie temporali, a barre, a dispersione, personalizzabili | +| **HTML** | Soluzione di fallback | Per tipi di diagramma non supportati | +| **Modificabile HTML/SVG** | Target esplicito | Inline autocontenuto SVG con annotazioni semantiche nello stile di Draw.io | +| **Draw.io / Drawnix artefatti** | Esporta confine | Deterministico XML/JSON da `SemanticFigureModel`; nessuna dipendenza dal runtime dell’editor | + +**Mermaid auto-fix:** Modalità di debug avanzata per le riparazioni: +- Frecce rotte (`-->`, `-.->`, `==>`) +- Etichette non valide, commenti +- Errori di sintassi del sottografo +- Notazione delle forme (`[`, `(`, `{`, `((`) +- Caratteri di pipe nelle etichette +- Allegati delle note + +**Flusso di lavoro:** +1. Esegui "Summarize as Mermaid diagram" su una nota +2. Anteprima in modal +3. Esporta come SVG o PNG +4. Salva come file `.mmd` nel vault + +--- + +## Software open source e community + +### Notemd è gratuito e open source? + +**Sì.** +- **Licenza:** MIT (permissiva, utilizzo commerciale consentito) +- **Codice sorgente:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **Nessun piano a pagamento, nessun vincolo al cloud, nessuna telemetria** +- **Comunità:** 234+ stelle su GitHub, Discord attivo + +**Di tua proprietà:** +- I tuoi dati (rimangono nel tuo caveau) +- I tuoi flussi di lavoro (personalizza prompt, modelli, catene) +- La tua privacy (supporto locale LLM) + +**Contribuisci:** Sono benvenute le richieste pull request. Vedi [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +## Risoluzione dei problemi + +### Le mie chiamate LLM non funzionano. Cosa dovrei controllare? + +1. **API chiave valida?** Verifica Impostazioni → Configurazione fornitore +2. **Il nome del modello è corretto?** Utilizzare il pulsante "获取模型列表" (Get Model List) nelle impostazioni +3. **Rete accessibile?** Alcuni fornitori richiedono una VPN +4. **Limiti di velocità?** Controlla il pannello di controllo del fornitore +5. **Diagnostica:** Esegui “Test di connessione” nelle impostazioni per ottenere registri degli errori dettagliati + +### Notemd è lento. Come posso accelerarlo? + +1. **Utilizza modelli più veloci:** DeepSeek, Gemini Flash, GPT-4o-mini +2. **Riduci la dimensione del blocco:** Impostazioni → Frammentazione intelligente → riduci il conteggio delle parole +3. **Elaborazione parallela:** Impostazioni → Elaborazione batch → aumentare la concorrenza +4. **Modelli locali:** Ollama per attività che non richiedono ricerche su Internet + +### Può Notemd funzionare al 100% in modalità offline? + +**Sì, con Ollama.** Nessuna chiave API, nessuna connessione a Internet, nessun dato esce dalla tua macchina: + +1. Installa [Ollama](https://ollama.com) e esegui `ollama serve` +2. Nelle impostazioni di Notemd, seleziona **Ollama** come tuo fornitore +3. Carica un modello: `ollama pull llama3` (o qwen2.5, gemma2, ecc.) +4. Tutte le funzionalità funzionano: collegamenti wiki, note concettuali, traduzione, diagrammi + +**DuckDuckGo research** funziona anche senza una chiave API (qualità sperimentale). + +Con i fornitori di cloud (OpenAI, Anthropic, Google, DeepSeek, ecc.), il contenuto della tua nota viene inviato come input API. Controlla la politica di privacy di ciascun fornitore per conoscere i dettagli sulla gestione dei dati. + +### I miei dati vengono inviati sul cloud? + +**Dipende dal tuo fornitore:** + +| Tipo fornitore | Data inviata al cloud? | Note | +|--------------|---------------------|-------| +| **Ollama (locale)** | No | Tutto rimane sul tuo computer. | +| **LMStudio (locale)** | No | Lo stesso di Ollama | +| **DeepSeek, OpenAI, ecc.** | Sì | Il contenuto delle note inviato come input API per l’elaborazione | +| **OpenRouter, AIHubMix** | Sì | Gateway che instrada verso i fornitori cloud | + +Notemd stesso non raccoglie **nessuna telemetria, nessuna analisi, nessun dato utente**. Il plugin è interamente open source (MIT). Gli unici dati che lasciano il tuo dispositivo sono quelli che invii esplicitamente al provider LLM configurato. + +### Quale plugin AI Obsidian è il migliore per la ricerca? + +Dipende dal tuo flusso di lavoro di ricerca: + +| Ho bisogno | Plugin | Perché | +|------|--------|-----| +| Trovare articoli/note correlati | Smart Connections | Scoperta della similarità semantica | +| Chatta delle tue fonti | Copilot | Conversazione nel contesto del vault | +| Collegamenti automatici ai concetti + generazione di note | **Notemd** | L'IA identifica i concetti, inserisce link e crea note | +| Ricerca su Internet + riassunto in note | **Notemd** | Tavily/DuckDuckGo ricerca → LLM riassunto → aggiunto alla nota | +| Genera diagrammi a partire da ricerche | **Notemd** | Mermaid/Canvas/Vega-Lite dal contenuto della nota | + +**Combinazione consigliata:** Smart Connections (scoperta) + Notemd (strutturazione) + Copilot (discussione). + +--- + +## Ottenere assistenza + +- **Documentazione:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **Problemi di GitHub:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **Sponsor:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/it/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/it/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..7cf5099a --- /dev/null +++ b/website/i18n/it/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "Note di concetto" +description: "Genera e gestisci note concettuali: note autonome per i concetti chiave estratti dal tuo archivio" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# Note di concetto + +<TLDR> +**Notemd estrae i concetti chiave dalle tue note e crea file di nota concettuale autonomi.** Il LLM identifica i termini principali, genera un file `.md` per concetto in una cartella configurabile e, opzionalmente, aggiunge collegamenti di ritorno alla nota di origine. Supporta la soppressione dei sinonimi, la selezione del modello per task, la sanificazione dei nomi dei file e un motore di deduplicazione a 4 passaggi. Questo fa parte della [Obsidian Guida alla Gestione delle Conoscenze AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Panoramica + +Le note concettuali sono i mattoni fondamentali di una base di conoscenza interconnessa. Quando si elabora una nota, Notemd: + +1. **Invia il tuo testo a un LLM** con una richiesta di estrazione strutturata +2. **Analizza le righe `CONCEPT:`** della risposta LLM +3. **Crea un file `.md` per concetto** in una cartella specificata +4. **Aggiunge backlink** alla nota di origine (quando abilitato) + +## Come funziona + +### Pipeline di estrazione + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### Il prompt di estrazione + +Il LLM riceve un comando che gli indica di: + +- Estrai **sostantivi o frasi nominali** centrali per l’argomento del documento +- **Dare priorità alla specificità** — "Relassazione dielettrica" invece di "Relassazione" +- **Normalizza al singolare** — "models" diventa "model" +- **Supprimi i sott concetti** — se compare “rilassamento dielettrico”, non estrarre anche “rilassamento” +- Ometti le sezioni di riferimenti/bibliografia, i sostantivi comuni, i nomi di aziende/prodotti +- Esegui un concetto per riga come `CONCEPT: Term Name` + +**Suppressione dei sinonimi** (opzionale): aggiunge all’inizio della richiesta “Evitare di estrarre sinonimi, concetti principali semanticamente simili o parole chiave ogni volta che possibile”. + +**Dominio di apprendimento mirato** (opzionale): aggiunge `Relevant Fields: [domain]` all’inizio per limitare l’estrazione a una specifica disciplina. + +**Sovrascrittura della lingua** (opzionale): aggiunge "I concetti di output DEVONO essere in [language]." + +### Chunking + +Le note lunghe vengono suddivise da `settings.chunkWordCount`. Ogni frammento viene inviato separatamente. I concetti di tutti i frammenti vengono accumulati in un `Set` — le duplicati tra i frammenti vengono rimossi silenziosamente. Gli errori LLM su singoli frammenti non interrompono l’operazione. + +## Creazione della nota concettuale + +### Regole per i nomi dei file + +| Regola | Comportamento | +|------|----------| +| Tratti bassi/_ | Sostituito con spazi | +| Caratteri speciali | Strappato: barra inversa, barra orizzontale, due punti, asterisco, punto di domanda, virgolette, parentesi angolari, pipe, hash, caret, parentesi quadre | +| Spazi bianchi | Contratto e ritagliato | +| Lunghezza massima | 100 caratteri (troncati + rifiniti) | +| Risultato vuoto/tutti punti | Ssaltato in silenzio | + +Esempio: `A-B: Key*Term` diventa `A B KeyTerm.md` + +### Template + +**Template completo** (backlink abilitati, template minimo disattivato): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**Template minimo** (quando `extractConceptsMinimalTemplate: true`): + +```markdown +# Concept Name +``` + +### Aggiornamento delle note esistenti + +Quando un file di concetto esiste già: + +1. Se i backlink sono abilitati e la nota di origine non è ancora elencata, aggiungi un backlink +2. Se esiste una sezione `## Linked From`, inseriscila prima del prossimo intestazione `##` +3. Se non esiste alcun `## Linked From`, aggiungi una sezione alla fine +4. I backlink duplicati vengono controllati e ignorati + +### Configurazione + +| Impostazioni | Predefinito | Effetto | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | Interruttore principale. Spento = nessuna nota creata | +| `conceptNoteFolder` | `''` (disabilitato) | Percorso della cartella per le note di concetto | +| `extractConceptsMinimalTemplate` | `true` | Note solo con titolo (nessun collegamento esterno) | +| `extractConceptsAddBacklink` | `false` | Aggiungere backlink durante l’estrazione autonoma | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | Per-task LLM per l'estrazione di concetti | +| `extractConceptsLanguage` | `'en'` | Lingua di output per i nomi dei concetti | +| `replaceSynonymsDuringConceptExtraction` | `false` | Abilita la soppressione dei sinonimi nel prompt | +| `generateConceptLogFile` | `false` | Scrivi un elenco `.log` con i concetti creati | + +**Importante:** Le impostazioni `extractConceptsAddBacklink` e `extractConceptsMinimalTemplate` influenzano soltanto il **comando di estrazione dedicato**. Il comando “Aggiungi link” crea sempre note con template completo e collegamenti indietro. + +## Eliminazione delle duplicati + +Il comando dedup (`Notemd: Check & remove duplicate concept notes`) esegue un’analisi in 5 passaggi: + +### Passo 1: Corrispondenza esatta del nome del file + +Confronto del nome di base insensibile a maiuscole e minuscole nell’ambito configurato. + +### Passo 2: Rilevamento della forma plurale + +Rimuove i suffissi: da `-ies` a `-y`, `-es` rimosso, `-s` rimosso. Confronta la forma singolare con i file di scope. Non gestisce i plurali irregolari (children/child). + +### Passo 3: Normalizzazione dei simboli + +Applica: `toLowerCase()`, sostituisci trattini e underscore con spazi, rimuovi caratteri non alfanumerici, unifica gli spazi bianchi. Vengono segnalati quelli che si normalizzano in modo identico. + +### Passo 4: Contenimento a singola parola + +Le note concettuali monosillabiche vengono controllate rispetto ai nomi dei file di scope multisillabici. Non viene eseguito quando lo scope è `concept_folder_only`. + +### Passo 5: Conferma e cancellazione + +Tutti i candidati vengono visualizzati in un modulo di conferma. Gli elementi approvati vengono spostati nella cartella della spazzatura del sistema. L’operazione può essere annullata tra ciascuna eliminazione. + +### Modalità di raggio d’azione + +| Modalità | Rispetto a | +|------|-------------------| +| `vault` (predefinito) | Tutti i file del vault `.md` escludendo la cartella concept | +| `concept_folder_only` | Altre note di concetto all’interno della cartella | +| `include` | File nelle cartelle elencate specifiche | +| `exclude` | Tutti i file del vault esclusi la cartella concept e le cartelle elencate | + +## Uso + +### Estrai Concetti (Standalone) + +1. Apri una nota +2. Esegui **"Notemd: Estrai concetti"** dal pannello dei comandi +3. Le note concettuali vengono create nella cartella configurata + +### Estrai + Genera Contenuto + +**"Notemd: Estrai concetti e genera titoli"** — estrae i concetti, poi esegue "Genera dal Titolo" su ogni nota nella cartella dei concetti. Questo genera contenuto per **tutte** le note concettuali nella cartella, non solo quelle appena create. + +### Crea un collegamento Wiki dalla selezione + +1. Evidenzia il testo nell’editor +2. Esegui **"Notemd: Crea collegamento Wiki dalla selezione"** +3. Il testo viene racchiuso in `[[...]]` e viene creata una nota concettuale + +## Consigli + +- **Imposta prima la cartella dei concetti** — senza di essa non vengono create note. Appare un modulo di avviso se non è impostata. +- **Utilizza modelli per task** — l’estrazione dei concetti funziona bene con modelli più economici (GPT-4o-mini, DeepSeek). Riserva i modelli costosi per ricerche/traduzioni. +- **Abilita la soppressione dei sinonimi** nei domini tecnici dove più termini si riferiscono allo stesso concetto. +- **Esegui la deduplicazione regolarmente** — avvia il comando dedup dopo l’elaborazione batch per individuare i casi quasi duplicati. +- **Il file di log viene sovrascritto** ad ogni esecuzione, non aggiunto. Copialo se hai bisogno dei risultati precedenti. + +--- + +## Prossimi passi + +- [Wiki-Links](./wiki-links) — Come i concetti vengono collegati inline +- [Diagrams](./diagrams) — Visualizza le relazioni tra i concetti +- [Workflows](./workflows) — Collega l’estrazione ad altre attività diff --git a/website/i18n/it/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/it/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..c252ec40 --- /dev/null +++ b/website/i18n/it/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "Diagrammi" +description: "Genera Mermaid, JSON Canvas, Vega-Lite, HTML, artefatti di figure editabili e diagrammi futuri con vincoli circuitikz direttamente dalle tue note, utilizzando un’architettura basata su specifiche." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Diagrammi + +<TLDR> +**Notemd genera diagrammi dalle tue note attraverso un pipeline basato su specifiche.** Il LLM produce un formato `DiagramSpec` JSON indipendente dal renderer, dopodiché adattatori dedicati lo convertono in Mermaid, JSON Canvas, Vega-Lite, HTML o output editabile HTML/SVG. Supporta 8 tipi di intent, catene di fallback automatiche, anteprima in tempo reale con esportazione in SVG/PNG, verifica semantica e generazione arricchita da conoscenze locali. +</TLDR> + +Questo fa parte della [Obsidian Guida alla gestione delle conoscenze AI](/docs/pillar-ai-knowledge). + +## Architettura: Pipeline basato su specifiche + +Notemd non chiede mai al LLM di produrre direttamente sintassi Mermaid/Vega/Canvas. Invece: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**Perché basarsi sulle specifiche?** I LLM producono spesso sintassi di renderer non valide (in particolare Mermaid). Un formato `DiagramSpec` strutturato può essere validato prima della rendering, e la stessa specifica può alimentare più renderer come fallback. + +## Tipi di diagrammi supportati + +| Intent | Renderer principale | Fallback | Caso d’uso | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | Scomposizione dei temi gerarchici | +| `flowchart` | Mermaid | HTML | Flussi di processo, alberi decisionali | +| `sequence` | Mermaid | HTML | Interazioni client-server, protocolli | +| `classDiagram` | Mermaid | HTML | Relazioni tra classi OOP | +| `erDiagram` | Mermaid | HTML | Schema di database, relazioni tra entità | +| `stateDiagram` | Mermaid | HTML | Macchine a stati, modelli di ciclo di vita | +| `canvasMap` | JSON Canvas | Mermaid → HTML | Mappe concettuali, grafi di conoscenza | +| `dataChart` | Vega-Lite | Mermaid → HTML | Barre, linee, aree, dispersioni, torte, tabelle | + +## Rilevamento delle intenzioni + +Notemd determina il tipo di diagramma più adatto dal contenuto della nota utilizzando la valutazione delle parole chiave: + +| Intento | Attivatori | Confidenza | +|--------|----------|------------| +| `dataChart` | Tabelle, celle numeriche, parole chiave relative a metriche/trend, percentuali | 0.88 | +| `sequence` | Vocabolario richiesta/risposta (4+ corrispondenze) o marcatori `->`/`=>` | 0.82 | +| `erDiagram` | Chiave primaria, chiave esterna, entità, schema (2+ corrispondenze) | 0.80 | +| `stateDiagram` | Stato, transizione, in attesa, in esecuzione, fallito (3+ corrispondenze) | 0.76 | +| `flowchart` | Passaggi numerati (2+) o vocabolario if/then/else/workflow | 0.74 | +| `canvasMap` | Mappa concettuale, grafo di conoscenza, spaziale, cluster | 0.72 | +| `mindmap` | Ripiego predefinito | 0.55 | + +Sovrascrivere con la impostazione **Tipo di diagramma preferito**, il selezionatore nella barra laterale o un’opzione esplicita della palette dei comandi. + +## Selezione del bersaglio di rendering + +Il pipeline sperimentale basato sulle specifiche ora dispone di due controlli indipendenti: + +| Controllo | Impostazioni | Effetto | +|---------|---------|--------| +| Tipo di diagramma preferito | `preferredDiagramIntent` | Guida la forma semantica del `DiagramSpec` generato | +| Target di rendering preferito | `preferredDiagramRenderTarget` | Sceglie il renderer per gli artefatti nelle operazioni **Genera diagramma** e **Anteprima diagramma** | + +Imposta **Target di rendering preferito** su **Auto** come valore predefinito per il pianificatore, oppure scegli esplicitamente Mermaid, JSON Canvas, Vega-Lite, HTML o Editable HTML/SVG. La sovrascrittura è valida solo per i comandi di generazione di artefatti e anteprime. Il comando standard **Riassumi come diagramma Mermaid** rimane legato a un output compatibile con Mermaid, così da evitare che i flussi di lavoro Markdown cambino silenziosamente formato. + +Questa separazione è importante perché un’intenzione `flowchart` può ora essere visualizzata come Mermaid per le note Markdown, come HTML come fallback affidabile, o come Editable HTML/SVG per modifiche successive. Draw.io e Drawnix rimangono esportatori di artefatti CLI anziché target di rendering all’interno dell’plugin. + +## Uso + +### Genera un diagramma + +1. Apri una nota +2. Esegui **"Notemd: Genera diagramma"** dal pannello dei comandi +3. Notemd rileva l’intenzione, genera le specifiche, esegue la visualizzazione e salva l’artefatto + +**File di output per target:** + +| Target | Estensione | Modello di nome del file | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| Editable HTML/SVG | `.html` | `{note}_diagram.html` | + +### Visualizza una diagramma + +1. Esegui **"Notemd: Visualizza diagramma"** +2. Si apre un modulo modale con il diagramma visualizzato +3. Esporta come SVG o PNG utilizzando i pulsanti della barra degli strumenti + +**Apri automaticamente la visualizzazione** è disponibile nelle impostazioni — dopo la generazione, il modulo modale di anteprima si avvia automaticamente. + +Il modulo modale di anteprima dispone anche di un pannello di diagnosi degli artefatti. I renderizzatori e i controlli di smoke possono aggiungere `RenderArtifact.diagnostics`; il modulo mostra un riepilogo delle diagnosi con i conteggi di errori/allarmi/informazioni, poi la gravità, il tipo di diagnosi, il messaggio e i suggerimenti per la riparazione accanto all’anteprima. Lo stesso riepilogo viene visualizzato nelle voci della cronologia delle anteprime, quindi è possibile confrontare tentativi ripetuti di smoke circuitikz senza aprire ogni voce. Per gli artefatti che hanno contenuto sorgente ma non possono essere renderizzati inline o tramite il percorso iframe HTML, il modulo ora passa a un’anteprima basata esclusivamente sulla sorgente invece di forzare un iframe vuoto. Questo consente ai controlli di smoke di compilazione/rendering circuitikz, alle verifiche dei token di testo SVG, alle verifiche dello screenshot PNG vuoto e ai futuri report di sovrapposizione di avere una superficie visibile UI senza rendere TikZJax o LaTeX una dipendenza obbligatoria in tempo di esecuzione del plugin o fingendo che il testo sorgente sia un rendering visivo verificato. + +### Modalità Mermaid legacy + +Quando `enableExperimentalDiagramPipeline` è disattivato, Notemd invia direttamente una richiesta Mermaid al LLM. Questo bypassa completamente il flusso di lavoro definito dalle specifiche. Se il flusso di lavoro sperimentale fallisce, si torna a questa modalità. + +## Backend di rendering + +### Mermaid + +6 adattatori (mindmap, flusso di lavoro, sequenza, ER, classe, stato) traducono `DiagramSpec` nella sintassi Mermaid. Dopo la generazione, `mermaid.parse()` verifica l’output. In caso di fallimento della validazione: + +1. **LLM retry** — un tentativo con il messaggio di errore Mermaid come contesto +2. **Fallback minimo** — un diagramma essenziale Mermaid basato sugli ID dei nodi della specifica + +**Legacy Mermaid Fixer** ripara automaticamente i comuni errori di sintassi LLM: normalizzazione delle direttive note, escape delle etichette pipe, riposizionamento dei punti e virgola, citazioni intelligenti, frecce con doppio trattino, incoerenze nelle forme, e molto altro. + +### JSON Canvas + +Produce formato Obsidian JSON Canvas con disposizione spaziale: +- Node posizionati in base alla profondità (x = profondità × 420) e all’indice (y = indice × 170) +- Larghezza stimata in base alla lunghezza dell’etichetta +- Bordi con `fromSide: 'right'`, `toSide: 'left'`, `toEnd: 'arrow'` + +### Vega-Lite + +Crea specifiche complete per Vega-Lite v5 JSON con codifica automatica: +- **Grafici cartesiani** (a barre/linee/aree/punti/scatter): canali x + y + colore per più serie +- **Pie**: theta = y (quantitativo), colore = x (nominale) +- **Tabella**: riga = x, testo = y + colonna = serie + +I patch per tema scuro e chiaro vengono fusi in profondità prima della compilazione. + +### HTML + +Fallback universale. Documento autocontenuto HTML con: +- Intestazioni meta CSP +- Modalità chiaro/scuro tramite `prefers-color-scheme` +- Etichette UI localizzate per 20 lingue +- Sezioni: hero, struttura (albero nodi), relazioni, note, tabelle di serie dati + +### Editabile HTML/SVG + +Target esplicito per figure nei flussi di esportazione editabili. Proietta `DiagramSpec` in un `SemanticFigureModel` deterministico, poi genera un documento autocontenuto HTML con gruppi inline SVG che contengono annotazioni in stile Draw.io: + +- `data-drawio-type`, `data-drawio-id` e `data-drawio-role` sui nodi semantici +- `data-drawio-source` e `data-drawio-target` sugli spigoli semantici +- identificatori stabili di nodi/spigoli dopo normalizzazione degli spazi bianchi e gestione delle collisioni +- Nessun script, nessuna font esterna e nessun asset remoto + +Questo obiettivo non è intenzionalmente la rotta predefinita del pianificatore. È disponibile come target di rendering esplicito mentre il percorso del prodotto dimostra il comportamento di modifica negli strumenti reali. + +### Draw.io e Drawnix Limiti di esportazione + +L’implementazione attuale mantiene il supporto degli editor di terze parti al confine dell’artefatto: + +| Obiettivo | Contratto | Dipendenza in tempo di esecuzione | +|--------|----------|--------------------| +| Draw.io | `mxfile` XML decompresso in modo deterministico da `SemanticFigureModel` | nessuno nel runtime del plugin o nel CI | +| Drawnix | sottoset minimo di `.drawnix` JSON che utilizza elementi `geometry` e `arrow-line` | nessuno nel runtime del plugin o nel CI | + +Il compromesso è intenzionale: Notemd può verificare etichette visibili, ID stabili e copertura delle primitive supportate senza incorporare diagram.net Desktop, Drawnix, Plait o lo stato dell’editor disponibile solo nei browser nel plugin. + +### circuitikz / TikZJax Direzione + +I diagrammi di circuito non rappresentano lo stesso tipo di problema dei flussogrammi generici. Il target sintattico corretto per i circuiti elettrici è solitamente **circuitikz**, visualizzato in Obsidian tramite plugin come TikZJax. TikZJax può caricare pacchetti come `circuitikz`, `pgfplots`, `tikz-cd` e `chemfig`, il che lo rende utile per appunti di fisica, circuiti, chimica e matematica. + +Il rischio è che il TikZ generato direttamente da LLM sia fragile: + +- una topologia di circuito complessa può essere corretta dal punto di vista elettrico ma illeggibile visivamente; +- cavi e etichette sovrapposti possono rendere inutilizzabile un netlist corretto per gli appunti di studio; +- assenza di prefazioni dei pacchetti, ancoraggi errati o nomi di componenti non validi possono impedire la visualizzazione; +- il feedback fornito dal renderer è solitamente a livello di immagine, mentre LLM genera geometria a livello di testo. + +L’architettura migliore consiste nel trattare circuitikz come un target di diagramma vincolato, e non come una prompt libera: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +Il modello di prima classe dovrebbe descrivere separatamente la topologia del circuito e la sua disposizione: + +| Strato | Responsabilità | Esempio | +|-------|----------------|---------| +| Topologia | nodi elettrici e connessioni dei componenti | `VDD -> RD -> drain(M1)`, `source(M1) -> GND` | +| Layout | posizionamento a griglia, orientamento, corsie di routing | `M1 at (3,2.2)`, ingresso a sinistra, uscita a destra | +| Stile | confezione, convenzione di tensione, etichette, ancoraggi | `\begin{circuitikz}[american voltages]` | +| Validazione | registro di compilazione, ancoraggi mancanti, controlli di sovrapposizione/scrino | TikZJax/Diagnostica LaTeX più revisione visiva | + +### Prototipo attuale circuitikz + +Notemd include ora il primo prototipo di repository vincolato per questa direzione. È intenzionalmente offline e vincolato a un modello: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +Il prototipo aggiunge un confine separato `CircuitSpec` e un esportatore deterministico per sei famiglie di riferimento d’oro: + +| Tipo di circuito | Riferimento d’oro | Garanzia di corrente | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | valida `VDD -> R_D -> M1.D`, `vin -> M1.G`, `M1.S -> GND` e `M1.D -> vout` prima di scrivere LaTeX | +| `cmos-inverter` | `cmos-inverter-v1` | valida la topologia PMOS-over-NMOS, l’ingresso gate condiviso, l’uscita drain condivisa, `VDD -> MP.S` e `MN.S -> GND` prima di scrivere LaTeX | +| `cmos-buffer` | `cmos-buffer-v1` | valida due stadi di inverter a cascata, il nodo intermedio `vmid`, il valore ripristinato `vout` e i binari VDD/GND condivisi prima di scrivere LaTeX | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | valida dispositivi passivi paralleli PMOS/NMOS tra `vin` e `vout` con controlli complementari `phib` / `phi` prima di scrivere LaTeX | +| `cmos-nand2` | `cmos-nand2-v1` | valida un pull-up PMOS in serie, un pull-down NMOS in parallelo, ingressi duali `va` / `vb` e `vout` prima di scrivere LaTeX | +| `cmos-nor2` | `cmos-nor2-v1` | valida un pull-up PMOS in serie, un pull-down NMOS in parallelo, ingressi duali `va` / `vb` e `vout` prima di scrivere LaTeX | + +Questo non è ancora un generatore TikZ generico. Non compila LaTeX, non chiama TikZJax, non esamina le schermate né esegue riparazioni automatiche tramite feedback visivo. Queste funzionalità rimangono fasi successive. + +Il comando Diagramma di anteprima può riaprire direttamente gli artefatti di sorgente salvati circuitikz quando l’estensione del file è `.tex` o `.tikz` e la sorgente contiene `\usepackage{circuitikz}` o `\begin{circuitikz}`. Quel percorso è un’anteprima basata esclusivamente sulla sorgente circuitikz: il modulo mostra la sorgente, le diagnosi, i controlli di copia/ salvataggio e i metadati della cronologia, ma non compila LaTeX né chiama TikZJax durante l’esecuzione del plugin. + +Il limite di anteprima basato esclusivamente sulla sorgente copre ora anche gli artefatti salvati Draw.io e Drawnix. I file `.drawio` vengono accettati se assomigliano a Draw.io XML (`mxfile` o `mxGraphModel`), mentre i file `.drawnix` vengono accettati se sono Drawnix JSON con `type: "drawnix"` e un array `elements`. Il plugin non incorpora ancora diagram.net né il host della lavagna bianca Drawnix; queste anteprime mostrano la sorgente, le diagnosi e la cronologia degli artefatti senza richiedere un editor visivo integrato. + +Per la riparazione che preserva la topologia, passare lo spec di pre‑riparazione come riferimento prima di accettare un candidato riparato: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +La protezione di riparazione utilizza `createCircuitTopologySignature` e `assertCircuitTopologyUnchanged` per confrontare `circuitKind`, `goldenReferenceId`, reti, ID/tipi/terminali dei componenti e estremi delle connessioni non direzionali prima dell’output. Etichette, testo del titolo, suggerimenti di layout, ordine di connessione e etichette di connessione vengono intenzionalmente ignorati. Un candidato che aggiunge un elemento breve o ridisegna un terminale fallisce con `Circuit topology drift detected` prima che il file `.tex` venga scritto. + +Il CLI può ora analizzare un log di compilazione esistente di LaTeX/TikZJax senza eseguire un compilatore: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +Questo percorso di diagnosi segnala pacchetti mancanti come `circuitikz.sty`, chiavi TikZ/circuitikz sconosciute, errori di sintassi del percorso TikZ come assenza di punti e virgola, argomenti fuori controllo da parentesi sbilanciate o etichette non chiuse, sequenze di controllo non definite, errori generici di LaTeX, arresti di emergenza e avvisi di sovraccarico del `\hbox`. Rimane basato sui log: l’esecuzione locale di LaTeX/TikZJax e i controlli di qualità simili a screenshot sono ancora lavoro futuro. + +Per i controlli di funzionamento per gli amministratori, lo stesso CLI può opzionalmente eseguire un renderer configurato esplicitamente senza analizzare comandi shell: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Il runner di compilazione utilizza `shell: false`, espande i placeholder `{tex}`, `{outputDir}` e `{jobName}` in valori di array di argomenti, legge il generato `{jobName}.log` e restituisce `compileExecution` più `compileDiagnostics` nell’output CLI JSON. `--compile-executable` indica soltanto il percorso del file binario del renderer; le flag del renderer appartengono ai valori ripetuti `--compile-arg`. Gli eseguibili vuoti falliscono come `compile-executable-invalid`, quelli mancanti falliscono come `compile-executable-not-found`, e le stringhe di eseguibile a forma di comando shell ricevono indicazioni per dividere gli argomenti in modo che Windows, Linux e macOS seguano lo stesso contratto di esecuzione diretta. Con `--expected-artifact`, viene anche segnalato `compileExecution.renderSmoke` e il CLI fallisce se il renderer non crea un artefatto non vuoto. Il plugin non include ancora LaTeX, non rende TikZJax una dipendenza in tempo di esecuzione né esegue riparazioni visive a livello di screenshot. + +Se l’artefatto atteso è `.svg`, il controllo di funzionamento va un livello più in profondità: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +Il controllo di fumo SVG verifica la radice `<svg>`, le dimensioni positive o `viewBox`, almeno un elemento grafico visibile dopo l’esclusione degli elementi nascosti/trasparenti, eventuali token di testo richiesti, elementi evidenti al di fuori del `viewBox`, etichette `<text>` / `<tspan>` posizionate sovrapposte in modo evidente e etichette di testo evidenti che sovrappongono gli elementi grafici tramite `render-svg-label-overlap`. Il testo atteso viene cercato nel testo visibile e decodificato dai metadati di accessibilità come `aria-label`, `<title>` e `<desc>`, così i renderer che conservano etichette semantiche al di fuori del `<text>` visibile possono comunque soddisfare il controllo dei token di testo senza necessità di OCR. La fase geometrica è ora una geometria consapevole delle trasformazioni per gli attributi comuni di gruppo ed elemento `transform`, quindi le caselle SVG tradotte, scalate, ruotate, inclinate o trasformate con matrici vengono controllate dopo la composizione delle trasformazioni. Copre i limiti esatti degli archi per gli estremi A/a, i limiti esatti delle curve Bézier per gli estremi C/S/Q/T, i limiti SVG consapevoli dello spessore del tratto e i controlli di sovrapposizione delle etichette, la geometria di disegno `polyline` / `polygon`, e risolve anche la posizionazione dei glifi basati solo su percorso da riferimenti `<use href="#...">`, così che le etichette convertite in percorsi di glifo riutilizzabili possano comunque fallire i controlli del canvas limitato quando la geometria del glifo posizionato escende dal `viewBox`. Diverse etichette `tspan` posizionate sotto un genitore `<text>` vengono confrontate come caselle di etichetta separate, il che permette di individuare output di tipo LaTeX SVG che altrimenti combinerebbero etichette distinte in un unico nodo di testo. Le caselle SVG `text` e `tspan` posizionate rispettano i valori `start`, `middle` e `end`, quindi le etichette centrate e allineate a destra possono generare diagnosi di sovrapposizione tra testo/testo e etichetta‑vs‑disegno senza richiedere un layout di testo di livello browser. I percorsi di glifo definitivi solo a livello di definizione all’interno di `<defs>` non vengono conteggiati come elementi grafici visibili, ma i loro attributi locali alla definizione `transform` vengono applicati prima della posizionazione `<use>`, così che le definizioni di glifo scalate o riflesse non vengano sottostimate. Il controllo etichetta‑vs‑disegno utilizza una piccola tolleranza per le caselle di disegno e il valore dichiarato `stroke-width`, quindi fili sottili, fili spessi e contorni di componenti poligonali possono essere considerati potenziali fallimenti di leggibilità delle etichette quando il loro tratto visibile raggiunge un’etichetta. Le etichette di glifo basate solo su percorso risolte da `<use href="#...">` vengono anch’esse confrontate con le caselle di disegno e falliscono con `render-svg-path-glyph-overlap` quando la geometria del glifo riutilizzabile sovrapponga fili o componenti. Se un renderer converte le etichette in glifi di percorso riutilizzabili invece che in `<text>` cercabili e non conserva i metadati di accessibilità, il rapporto di fumo registra `pathOnlyGlyphUseCount` e fallisce il token di testo richiesto tramite `render-svg-text-path-only` invece di fingere che l’etichetta sia semplicemente assente. Altri fallimenti vengono segnalati tramite `render-svg-invalid`, `render-svg-dimension-missing`, `render-svg-no-visible-elements`, `render-svg-text-missing`, `render-svg-out-of-bounds`, `render-svg-text-overlap`, `render-svg-label-overlap` o `render-svg-path-glyph-overlap`. I controlli dei token di testo e delle sovrapposizioni dovrebbero essere considerati solo come controllo strutturale per i renderer che conservano le etichette come testo SVG cercabile o metadati di accessibilità; l’output basato solo su percorso SVG richiede comunque il successivo controllo screenshot/OCR per dimostrare la leggibilità visiva delle etichette, e questo controllo di fumo non garantisce ancora una copertura completa del SVG percorso. + +I gruppi e gli elementi nascosti SVG vengono sempre saltati durante il conteggio degli elementi visibili e la raccolta della geometria. Gli attributi o gli stili inline `display:none`, `visibility:hidden`, `visibility:collapse` e l’aspetto generale `opacity:0` non possono far sì che un artefatto di rendering altrimenti vuoto superi il controllo di output visibile. + +Le definizioni di glifo basate solo su percorso possono essere percorsi diretti o contenitori di gruppo/simbolo all’interno di `<defs>`. Il controllo di fumo risolve la geometria dei percorsi figli da `<g id="...">` e `<symbol id="...">` prima della posizionazione `<use>`, quindi l’output di glifo incapsulato alimenta comunque `pathOnlyGlyphUseCount`, i controlli del canvas limitato e `render-svg-path-glyph-overlap`. + +Il parser di percorso traccia anche gli inizi dei sottopercorsi e resetta il punto corrente su `Z/z`, così che i comandi relativi dopo un sottopercorso chiuso continuino dal punto corretto SVG invece di generare false diagnosi `render-svg-out-of-bounds`. + +Lo stesso passaggio di geometria segue la grammatica SVG per i decimali con punto iniziale e i segni più espliciti, quindi le coordinate dvisvgm compatte come `.5`, `-.5` o `+.5` rimangono frazionali durante i controlli dei limiti anziché diventare geometrie fuori limite false o essere ignorate. + +Se il renderer emette `.png`, lo stesso percorso previsto per gli artefatti diventa una prima schermata di smoke: Notemd decodifica file PNG a colori indexati a 1/2/4/8 bit non interlacciati, file PNG in grigio a 1/2/4/8/16 bit e file PNG in grigio‑alpha/RGB/RGBA a 8/16 bit. Le immagini a colori indexati e in grigio sub‑byte supportano campioni compressi; le immagini a colori indexati supportano anche dati PLTE e opzionali tRNS; le immagini in grigio/RGB supportano campioni trasparenti tRNS. I campioni diretti a 16 bit vengono normalizzati nello stesso spazio di confronto RGBA a 8 bit utilizzato dai controlli smoke. Il controllo smoke verifica le dimensioni positive, registra i limiti del primo piano come `foregroundBounds`, registra la densità del primo piano all’interno di quella scatola come `foregroundDensity`, fallisce con `render-png-blank` quando ogni pixel visibile corrisponde al colore di sfondo in alto a sinistra, fallisce con `render-png-content-clipped` quando il contenuto del primo piano tocca i bordi dell’immagine, fallisce con `render-png-foreground-too-small` quando una grande schermata ha meno di quattro pixel del primo piano, e fallisce con `render-png-foreground-dense` quando i pixel del primo piano sono insolitamente densi all’interno di una scatola di delimitazione non banale. I formati PNG non supportati falliscono con `render-png-unsupported` e vengono fornite indicazioni specifiche per i PNG interlacciati Adam7 o le profondità di colore indexate non supportate. Questo permette di rilevare schermate vuote, tagli evidenti del canvas, impronte del primo piano sottorendute, fallimenti di sovrapposizione a livello di pixel e impostazioni errate di esportazione PNG del renderer, senza aggiungere dipendenze da shell specifiche per piattaforma. Non si tratta ancora di riconoscimento di etichette a livello OCR, di rilevamento preciso di sovrapposizione di testo o di riparazione delle immagini che preserva la topologia. + +Quando i diagnostichi mostrano un compilazione fallita o un’esecuzione render‑smoke fallita, il CLI può anche scrivere un breve di riparazione che preserva la topologia: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +Il breve di riparazione utilizza lo schema `notemd.circuitikz.repair-brief.v1` e contiene la sorgente `CircuitSpec`, la firma topologica, i diagnostichi di compilazione/render, le modifiche consentite, le modifiche topologiche vietate, i prossimi passi di verifica e un `repairPrompt` strutturato. Il ruolo del prompt è `topology-preserving-circuitikz-repair`; la sua lista `diagnosticFocus` deriva dai diagnostichi di compilazione/render, e i suoi `acceptanceCriteria` richiedono validazione del candidato oltre a nuove compilazioni ed esecuzioni render‑smoke. È il formato di passaggio per un ciclo di riparazione successivo, non l’affermazione che Notemd esegua già una riparazione visiva autonoma. + +Dopo che è stato prodotto un candidato di riparazione, lo stesso CLI può validarlo rispetto al breve prima di scrivere l’output: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief` verifica la firma topologica del candidato tratta dal breve ed è esclusiva con `--topology-reference`. Superare questa fase dimostra solo la preservazione della topologia; il candidato richiede ancora i diagnostichi di compilazione e le verifiche render‑smoke. + +Il risultato del `--repair-brief` include anche prove `repairAcceptance` con lo schema `notemd.circuitikz.repair-acceptance.v1`. Riporta le porte `topology-signature`, `compile-diagnostics` e `render-smoke` come `passed`, `failed` o `missing`; espone `remainingChecks`; e mantiene `readyForVisualAcceptance` falso fino a quando l’esecuzione del candidato non includa tutte le prove richieste. + +Utilizzare `--repair-acceptance-output` con `--repair-brief` quando le prove di CI o di rilascio necessitano di un file JSON duraturo: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +Per le prove di rilascio o di manutenzione, eseguire ogni famiglia gold supportata tramite il runner dei fixture aggregati: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Il runner utilizza `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json` e `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json`, chiama lo stesso percorso di esportazione senza shell per ciascun fixture e restituisce un rapporto aggregato JSON con `compileExecution` e `compileDiagnostics` per ogni fixture. Rimane comunque un comando per il manutentore, non una dipendenza runtime di plugin. + +Quando la macchina del manutentore non ha ancora un renderer configurato, eseguire lo stesso comando del fixture senza `--compile-executable` e persistere esplicitamente la porta dell’ambiente: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +Quel percorso scrive comunque gli artefatti deterministici del fixture `.tex`, ma restituisce `ok: false` con `rendererAvailability.status` impostato su `missing-configuration` e un diagnostico `compile-executable-invalid`. Trattarlo solo come prova di disponibilità del renderer; non si tratta di compilazione, render‑smoke o accettazione visiva. + +### Forma di prompt di riferimento dorato + +Per un utilizzo a breve termine, fornire un riferimento dorato renderizzabile prima di richiedere una variante del circuito. Un prompt vincolato deve mantenere l’introduzione, la scala delle coordinate, lo stile degli ancoraggi e le convenzioni di routing: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +Per un inverter CMOS, il prompt deve richiedere esplicitamente la topologia e i vincoli di layout, e non semplicemente "disegna un inverter CMOS": + +- mantenere `VDD` in cima, `GND` in fondo, l’ingresso a sinistra e l’uscita a destra; +- utilizzare `pmos` sopra `nmos`, con porte e drenaggi condivisi; +- mantenere il nodo di uscita alla giunzione del drenaggio e contrassegnarlo con `*-o`; +- utilizzare ancoraggi nominati (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) invece di coordinate dedotte visivamente; +- evitare cavi diagonali o incrociati a meno che non sia strettamente necessario dal punto di vista elettrico. + +### Progresso attuale e fasi successive + +| Area | Stato attuale | Prossimo passo | +|------|----------------|-----------| +| Diagrammi generali | Pipeline basata sulle specifiche implementata per Mermaid, JSON Canvas, Vega-Lite, HTML | Continuare ad ampliare la copertura della verifica semantica | +| Figure editabili | Sono state implementate le barriere tra gli artefatti di `editable-html-svg`, Draw.io XML e Drawnix JSON | Aggiungere primitive più ricche solo dopo che i test avranno dimostrato l’editabilità | +| Supporto per CLI | `npm run diagram:export-artifact` esporta HTML/SVG, Draw.io e Drawnix editabili da un singolo `DiagramSpec` | Aggiungere fixture di smoke specifici per ogni target non appena vengono rilasciati nuovi target | +| circuitikz | Il prototipo di `CircuitSpec -> circuitikz` esporta template d’oro con codice sorgente comune, invertitore CMOS, `cmos-buffer` / `cmos-buffer-v1`, `cmos-transmission-gate` / `cmos-transmission-gate-v1`, `cmos-nand2` / `cmos-nand2-v1` e `cmos-nor2` / `cmos-nor2-v1`, progetti `layoutHints.inputSide` e `layoutHints.outputSide` per una disposizione deterministica delle porte di input/output senza modificare la topologia, rifiuta le deviazioni della topologia di riparazione tramite `--topology-reference`, emette briefing di riparazione che preservano la topologia tramite `--repair-brief-output` e lo schema `notemd.circuitikz.repair-brief.v1`, include contenuti strutturati di handoff con `diagnosticFocus`, `acceptanceCriteria` e il ruolo `topology-preserving-circuitikz-repair`, verifica i candidati per la riparazione tramite `--repair-brief`, restituisce prove delle porte `repairAcceptance` tramite lo schema `notemd.circuitikz.repair-acceptance.v1` insieme a `readyForVisualAcceptance` e `remainingChecks`, mantiene tali prove tramite `--repair-acceptance-output`, analizza i log di compilazione, può eseguire render locali espliciti oltre a `--expected-artifact`, SVG `--expected-svg-text`, controlli dei metadati di accessibilità tramite `aria-label`, `<title>` e `<desc>`, esclusione degli elementi SVG nascosti/trasparenti, classificazione `render-svg-text-path-only` / `pathOnlyGlyphUseCount` per etichette a percorsi soltanto, controlli di posizionamento dei glyph a percorsi soltanto per `<use href="#...">`, diagnosi di sovrapposizione dei glyph a percorsi soltanto tramite `render-svg-path-glyph-overlap`, gestione del punto corrente per percorsi chiusi per `Z/z`, limiti esatti degli archi A/a agli estremi, limiti esatti delle curve Bézier C/S/Q/T agli estremi, controlli di sovrapposizione tra bordi sensibili alla larghezza del tratto e etichette, controlli geometrici di disegno `polyline` / `polygon`, geometria delle etichette posizionate `tspan`, geometria del testo posizionato consapevole di `text-anchor`, geometria consapevole di trasformazioni per SVG bounded-canvas/text-overlap e smoke di etichetta contro disegno tramite `render-svg-label-overlap`, nonché controlli di screenshot PNG non vuoti / recisi / a primo piano denso, inclusa l’alpha della palette a colori indexati, campioni trasparenti in grigio/scuro/RGB tRNS e linee guida specifiche per il formato `render-png-unsupported` per PNG interlacciati Adam7 e errori di profondità bit indexata, tramite `foregroundBounds`, `foregroundDensity`, `render-png-content-clipped` e `render-png-foreground-dense` senza analisi della shell, include fixture di smoke aggregati per i mantentori tramite `npm run diagram:smoke-circuitikz`, registra la configurazione del renderer mancante tramite `rendererAvailability.status: "missing-configuration"` e `compile-executable-invalid`, e dispone di diagnosi di anteprima generiche, conteggi di riepilogo delle diagnosi, voci di storia consapevoli delle diagnosi e fallback basato solo sul codice sorgente tramite `RenderArtifact.diagnostics` e il modal di anteprima | Aggiungere riconoscimento delle etichette a livello OCR per testo visivo a percorsi soltanto, controlli di sovrapposizione precisi a livello di pixel, una copertura più ampia dei percorsi SVG dove necessario, installazione/discovery automatica del renderer solo se può rimanere opzionale, e esecuzione automatizzata di riparazioni che preservano la topologia | +| Integrazione con TikZJax | Scegliere il host di rendering per la visualizzazione sul lato Obsidian | Rimandarlo opzionale; non rendere TikZJax una dipendenza obbligatoria al runtime del plugin | + +## Configurazione + +| Impostazioni | Predefinito | Effetto | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | Passare tra modalità basata sulle specifiche e modalità legacy Mermaid | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = Mermaid solo; `'best-fit'` = target nativi + soluzioni di fallback | +| `preferredDiagramIntent` | `undefined` (automatico) | Sovrascrivere la rilevazione automatica delle intenzioni | +| `summarizeToMermaidLanguage` | `'en'` | Lingua di destinazione per le etichette del diagramma | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | LLM per task specifici per la generazione del diagramma | +| `autoMermaidFixAfterGenerate` | (da costanti) | Eseguire automaticamente il correttore legacy sugli output di Mermaid | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | Arricchire il codice sorgente con conoscenze locali del vault | + +### Arricchimento delle conoscenze locali + +Quando abilitato, Notemd recupera frammenti di contesto rilevanti dalla base di conoscenza locale del tuo vault (basata su MiniSearch) e li aggiunge all’inizio del markdown di origine. La nota di integrazione indica: "solo riferimento di supporto; mantenere la struttura principale fedele alla nota di origine." + +### Modalità di compatibilità + +- **`legacy-mermaid`**: Tutte le intenzioni vengono indirizzate a Mermaid. Le intenzioni non Mermaid (canvasMap, dataChart) vengono costrette a `flowchart` o `mindmap`. Nessuna catena di fallback. +- **`best-fit`**: Ogni intenzione viene indirizzata al suo target nativo. Se il primo fallisce, si percorre la catena di fallback (ad esempio, Vega-Lite → Mermaid → HTML). + +## Anteprima ed esportazione + +| Azione | Metodo | +|--------|--------| +| Esportazione SVG | Costruttore `mermaid.render()` / `vega.View.toSVG()` / SVG per Canvas | +| Esportazione PNG | SVG → Immagine → Canvas (rapporto pixel del dispositivo 1x-3x) → ArrayBuffer PNG | +| Salvataggio della fonte | Contenuto dell'artefatto grezzo salvato con estensione specifica per il target | +| Anteprima solo della sorgente | Artefatti non inline con il contenuto della sorgente visualizzato come codice più diagnosi, senza rendering tramite iframe | +| Audit semantico | Mermaid, JSON Canvas, Vega-Lite e HTML/SVG modificabili controllati da `scripts/diagram-semantic-verification.js` | + +**Caching**: RenderCache utilizza una chiave deterministica JSON di `{spec, target, theme}`. La deduplicazione in tempo reale impedisce rendering duplicati. + +## Consigli + +- **Inizia con il modo `best-fit`** — produce il miglior output visivo per ogni tipo di intent +- **Utilizza modelli potenti per diagrammi complessi** — i diagrammi a flusso e i diagrammi ER traggono vantaggio da GPT-4o o Claude +- **Abilita la conoscenza locale** per diagrammi specifici del dominio — il contesto del vault rilevante migliora l'accuratezza +- **Imposta `autoMermaidFixAfterGenerate`** — gli errori di sintassi Mermaid sono comuni senza di esso +- **Il correttore legacy è completo** — se l'anteprima Mermaid fallisce, eseguire manualmente il comando del correttore spesso risolve il problema + +--- + +## Prossimi passi + +- 🔗 [Wiki-Links](./wiki-links) — Come i concetti vengono collegati inline +- 📝 [Note di concetto](./concept-notes) — Estrarre concetti per il materiale di partenza dei diagrammi +- 🔍 [Ricerca](./research) — Arricchire i diagrammi con dati provenienti da Internet diff --git a/website/i18n/it/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/it/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..21f0633d --- /dev/null +++ b/website/i18n/it/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "Ricerca e ricerca su web" +description: "Integrare la ricerca su web nelle proprie note" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Ricerca e ricerca su web + +<TLDR> +**Notemd cerca su web e inserisce direttamente nelle note i risultati LLM riassunti.** Tavily API è il backend di ricerca principale; DuckDuckGo funge da soluzione di fallback senza configurazione. I risultati vengono riassunti con citazioni delle fonti e aggiunti sotto un’intestazione `## Research`. Supporta la ricerca in una singola nota, la ricerca su più note di una cartella e la selezione del modello per la fase di riassunto per ogni task. + +Questo fa parte della [Obsidian Guida alla gestione delle conoscenze AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Panoramica + +La ricerca è una delle integrazioni più potenti di Notemd: chiude il ciclo tra lettura, ricerca e scrittura. Invece di passare a un browser per cercare un termine sconosciuto, basta evidenziarlo e lasciare che Notemd effettui la ricerca, riassuma e aggiunga i risultati -- tutto all’interno del proprio vault. + +Il processo è completamente configurabile. Si può scegliere il provider di ricerca, il LLM che scrive il riassunto e se i risultati vengano aggiunti alla nota attiva o salvati in file separati. Il modalità batch permette di cercare in tutte le note di una cartella con un solo clic. + +## Come funziona + +### Pipeline Ricerca‑poi‑Riassunto + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **Estrazione della query** -- Notemd estrae i termini di ricerca dalla selezione o dal titolo della nota. +2. **Ricerca su web** -- Viene prima provato Tavily. Se non è configurata alcuna chiave API, viene utilizzato automaticamente DuckDuckGo (non è necessaria alcuna chiave). +3. **Riassunto con LLM** -- I risultati grezzi della ricerca vengono inviati al LLM configurato, che produce un riassunto conciso con citazioni delle fonti inline. +4. **Aggiunta** -- Il riassunto formattato viene aggiunto sotto un’intestazione `## Research` nella nota attiva. + +### Tavily contro DuckDuckGo + +| Aspetto | Tavily | DuckDuckGo | +|--------|--------|------------| +| Chiave API | Richiesto (fase gratuita disponibile) | Non richiesto | +| Qualità del risultato | Superiore (progettato appositamente per l'AI) | Adeguato per query generali | +| Limiti di velocità | Fase gratuita generosa | Soggetto a throttling | +| Configurazione | `tavilyApiKey` nelle impostazioni | Nessuna configurazione -- fallback automatico | + +### Ricerca nella cartella di batch + +Fare clic con il tasto destro su una cartella e selezionare **"Notemd: Cartella di ricerca"**. Ogni file `.md` presente nella cartella viene elaborato in sequenza (o in parallelo fino alla concorrenza configurata). Ogni nota riceve il proprio riassunto della ricerca. + +## Configurazione + +| Impostazioni | Predefinito | Effetto | +|---------|---------|--------| +| `tavilyApiKey` | `''` | Chiave Tavily API. Quando è vuota, viene utilizzato esclusivamente DuckDuckGo. | +| `researchProvider` / `researchModel` | DeepSeek | LLM per task per riassumere i risultati della ricerca | +| `maxResearchContentTokens` | `4000` | Budget di token per il contenuto inviato al LLM. L’eccesso viene troncato. | +| `researchAppendToNote` | `true` | Aggiungere il riassunto alla nota di origine. Se impostato su false, viene creato un file separato. | +| `researchLanguage` | `'en'` | Lingua di output per la ricerca riassunta | + +### Raccomandazione del modello per task + +La ricerca trae vantaggio da un modello in grado di gestire contenuti multilingue e di produrre prosa ben strutturata. Si considerino i seguenti modelli: + +- **DeepSeek** -- predefinito, economico, buona qualità +- **GPT-4o** -- riassunto di qualità superiore, costo più elevato +- **Gemini Flash** -- veloce ed economico, adatto per query semplici + +## Esempio + +Stai leggendo un articolo sui *transformer attention mechanisms* e incontri un termine sconosciuto: *relative positional encoding*. Invece di lasciare Obsidian: + +1. Evidenzia **"relative positional encoding"** +2. Clic con il tasto destro --> **"Notemd: Ricerca e riassunto"** +3. Notemd cerca su Internet, riassume i risultati principali e aggiunge: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +Il riassunto fa ora parte del tuo archivio, è cercabile, linkabile e accessibile offline. + +## Consigli + +- **Imposta una chiave Tavily per ottenere i migliori risultati** -- anche il piano gratuito fornisce una rilevanza migliore rispetto a DuckDuckGo grezzo. +- **Utilizza un modello di riassunto efficace** -- i modelli economici possono semplificare troppo contenuti tecnici sofisticati. +- **Effettua una ricerca in batch** dopo una prima lettura per colmare le lacune in molte note contemporaneamente. +- **Rivedi i riassunti aggiunti** -- LLM può inventare dettagli sulle fonti. Verifica le affermazioni principali. + +--- + +## Prossimi passi + +- [Concept Notes](./concept-notes) -- Estrai e conserva i termini chiave dai risultati della ricerca +- [Wiki-Links](./wiki-links) -- Collega i concetti derivati dalla ricerca all’interno del tuo archivio +- [Translation](./translation) -- Traduci i riassunti della ricerca in un’altra lingua +- [Fornitori](/docs/providers/overview) -- Configurare il modello utilizzato per la sintesi diff --git a/website/i18n/it/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/it/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..a605b372 --- /dev/null +++ b/website/i18n/it/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "Traduzione" +description: "Traduci note e selezioni" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# Traduzione + +<TLDR> +**Notemd traduce testi tra più di 21 lingue grazie alla traduzione alimentata da LLM.** Supporta la traduzione di singole selezioni, di intere note e di cartelle in batch. Ogni task di traduzione può utilizzare un provider e un modello dedicati tramite le impostazioni per task. La lingua di output può essere configurata separatamente rispetto alla lingua UI. I risultati vengono aggiunti o scritti in un nuovo file a seconda delle tue preferenze. + +Questo fa parte della [Obsidian Guida alla gestione delle conoscenze AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Panoramica + +La traduzione in Notemd non è una ricerca in dizionario -- è una traduzione consapevole del contesto, alimentata da LLM. Il modello analizza l’intero paragrafo o nota, preservando tono, terminologia di settore e struttura delle frasi. Ciò produce risultati di qualità superiore rispetto ai servizi basati su traduzione frase per frase, soprattutto per testi tecnici, accademici e creativi. + +La funzionalità supporta tre ambiti: selezione, nota attiva e intera cartella. In combinazione con la selezione del modello per task, è possibile utilizzare un modello veloce (Gemini Flash) per traduzioni casuali e un modello potente (Claude Sonnet) per contenuti sensibili alle sfumature -- senza modificare il provider globale. + +## Come funziona + +### Il Comando Traduci + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **Rilevamento della lingua di partenza** -- LLM deduce la lingua di partenza dal contenuto. Non è necessario specificarla manualmente. +2. **Costruzione del prompt** -- Notemd crea un prompt che include la lingua di destinazione, un suggerimento opzionale di settore e il contenuto da tradurre. +3. **Traduzione LLM** -- Il `translateProvider` / `translateModel` configurato elabora la richiesta. Il modello preserva la formattazione markdown, i link wiki e i blocchi di codice. +4. **Output** -- Il testo tradotto viene aggiunto sotto il testo originale o scritto in un nuovo file all’interno del vault. + +### Coppie di lingue + +Notemd supporta qualsiasi coppia di lingue supportata dal LLM sottostante. Le coppie più comuni includono: + +| Fonte | Target | Qualità tipica | +|--------|--------|----------------| +| Inglese | Cinese semplificato | Eccellente | +| Cinese | Inglese | Eccellente | +| Inglese | Giapponese | Molto buono | +| Inglese | Tedesco / Francese / Spagnolo | Molto buono | +| Qualsiasi supportato | Qualsiasi supportato | Dipende dal modello | + +La configurazione `translateLanguage` controlla il **linguaggio di output**. Il linguaggio di partenza viene rilevato automaticamente. + +### Selezione del modello per attività + +La qualità della traduzione varia notevolmente a seconda del modello. Notemd consente di assegnare un modello dedicato esclusivamente alla traduzione: + +| Modello | Velocità | Qualità | Costo | Ideale per | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | Veloce | Bene | Basso | Casuale, alto volume | +| `gpt-4o-mini` | Veloce | Bene | Basso | Ricerche rapide | +| `deepseek-chat` | Medio | Bene | Molto basso | Multilingue a budget | +| `claude-3-5-sonnet` | Medio | Eccellente | Medio | Tecnico / accademico | +| `gpt-4o` | Medio | Eccellente | Medio | Prosa sensibile alle sfumature | + +### Traduzione della cartella in lotti + +Fare clic con il tasto destro su una cartella e selezionare **"Notemd: Traduci cartella"** per tradurre ogni nota presente in quella cartella. Ogni file viene elaborato in modo indipendente. La impostazione di concorrenza controlla quanti file vengono tradotti in parallelo. + +## Configurazione + +| Impostazioni | Predefinito | Effetto | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | Fornitore dedicato per attività di traduzione | +| `translateLanguage` | `'en'` | Lingua di output target | +| `translationAppendToNote` | `true` | Aggiungere il testo tradotto sotto il testo originale. Se impostato su false, viene creato un nuovo file. | +| `batchConcurrency` | `3` | Numero di file elaborati in parallelo durante la traduzione in lotti | + +## Esempio + +Stai leggendo una nota di ricerca cinese e desideri una versione in inglese: + +1. Apri la nota +2. Clic destro --> **"Notemd: Traduci il file attuale"** +3. Notemd rileva il cinese, lo traduce nella lingua di destinazione configurata (inglese) e aggiunge: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +Il testo originale in cinese rimane invariato sopra la traduzione. L’intestazione `## Translation` mantiene entrambe le versioni nello stesso file per una facile consultazione. + +## Consigli + +- **Utilizza Gemini Flash per grandi quantità** -- è l’opzione più veloce e economica per la traduzione batch di cartelle grandi. +- **Mantieni i link wiki** -- l’istruzione di Notemd indica a LLM di lasciare `[[wiki-links]]` intatto nella traduzione. Verifica dopo la traduzione, poiché alcuni modelli a volte li smontano. +- **Imposta esplicitamente la lingua di output** -- il rilevamento automatico funziona per la sorgente, ma configura sempre `translateLanguage` per evitare ambiguità sulla lingua di destinazione. +- **Traduci in batch le note di concetto** -- se la tua cartella di concetti è in una lingua e ne hai bisogno in un’altra, la traduzione a livello di cartella la gestisce in un’unica operazione. + +--- + +## Prossimi passi + +- [Ricerca](./research) -- Cerca e riassumi in qualsiasi lingua, poi traduci i risultati +- [Flussi di lavoro](./workflows) -- Collega le traduzioni con link wiki o estrai concetti +- [Elaborazione batch](/docs/advanced/batch-processing) -- Comportamenti di concorrenza e sovrascrittura per le operazioni su cartelle +- [LLM Fornitori](/docs/providers/overview) -- Scegli il miglior modello per la tua coppia di lingue diff --git a/website/i18n/it/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/it/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..b255412d --- /dev/null +++ b/website/i18n/it/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "Wiki-Link" +description: "Generazione automatica di link wiki per concetti chiave" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# Wiki-Link + +<TLDR> +**Notemd aggiunge automaticamente `[[wiki-links]]` ai concetti chiave nelle tue note.** Il LLM legge il tuo contenuto, identifica i termini importanti nel contesto e inserisce link wiki in stile Obsidian ad ogni occorrenza. Opzionalmente crea file di note sui concetti con backlink. Supporta la soppressione dei sinonimi, l’integrità dei link in caso di rinomina o eliminazione e il modalità di estrazione pura (senza modifiche ai file). A differenza di Auto Link che riconosce solo i titoli delle note esistenti, Notemd utilizza l’AI per identificare nuovi concetti e creare le note corrispondenti. Questo fa parte della [Obsidian Guida all’Gestione della Conoscenza tramite AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Panoramica + +La creazione di link wiki è la funzionalità principale di Notemd. Essa trasforma il testo semplice in una rete di conoscenza collegata attraverso: + +1. **Analizzare la tua nota** con un LLM +2. **Identificare i concetti chiave** (termini, persone, metodi, teorie) +3. **Inserire `[[wiki-links]]`** ad ogni occorrenza +4. **Creare note sui concetti** (opzionale) con backlink + +## Come funziona + +### Processo + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### Esempio + +**Prima:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**Dopo:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## Uso + +### Base: Aggiungere link alla nota attuale + +1. Apri una nota +2. Fare clic con il tasto destro nell'editor → **"Elabora file (aggiungi link)"** +3. Aspettare alcuni secondi +4. I concetti sono ora collegati! + +### Lote: Elaborare più note + +1. Fare clic con il tasto destro su una cartella nell'esplorafile +2. Seleziona **"Notemd: Processare cartella (aggiungere link)"** +3. Configurazione: + - Concorrenza (quanti file in parallelo) + - Sovrascrivere i link esistenti (sì/no) +4. Cliccare su **Elabora** + +### Selettivo: Collegare testo specifico + +1. Evidenziare il testo da elaborare +2. Clic destro → **"Processo di selezione (aggiungi collegamenti)"** +3. Viene analizzata solo la parte evidenziata + +## Notemd contro Auto Link + +Obsidian dispone di due metodi per il collegamento automatico al wiki: + +| | **Auto Link** | **Notemd** | +|--|---------------|-------------| +| Fonte del collegamento | Titoli delle note esistenti nel vault | Concetti identificati da LLM nel contenuto | +| È possibile collegare nuovi concetti | No — il titolo deve già esistere | Sì — l’AI identifica i concetti e crea le note | +| Gestione dei sinonimi | No | Sì — soppressione dei sinonimi | +| Creazione della nota concettuale | No | Sì — con backlink e deduplica | +| Elaborazione batch | No (unico file) | Sì (a livello di cartella) | +| Inoltro del modello per task | No | Sì | + +**Auto Link** effettua una corrispondenza basata sul titolo: se esiste una nota chiamata "Machine Learning", avvolge le occorrenze in `[[Machine Learning]]`. Se la nota non esiste, non accade nulla. + +**Notemd** è guidato dall’AI: il LLM legge il tuo contenuto, comprende il contesto, identifica i concetti che *dovrebbero* essere collegati — anche se ancora non esiste una nota — e crea sia il link che la nota concettuale. + +## Funzionalità + +### Soppressione dei sinonimi + +**Problema:** "transformer", "transformers", "Transformer architecture" → 3 concetti separati + +**Soluzione:** Notemd rileva i casi quasi duplicati e utilizza la forma canonica. + +**Configurazione:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### Integrità dei link + +**Quando si rinomina una nota concettuale:** +- Tutti i link wiki vengono aggiornati automaticamente (Obsidian funzionalità principale) +- I backlink rimangono intatti + +**Quando si elimina una nota concettuale:** +- I link rimangono ma appaiono come "menzioni non collegate" +- È possibile ricrearla da qualsiasi occorrenza + +### Modalità di estrazione pura + +**Estrai concetti senza modificare il originale:** + +1. Clic destro → **"Estrai concetti (nessun collegamento)"** +2. Vengono create le note concettuali +3. File originale invariato + +Caso d'uso: elaborazione di contenuti solo lettura o bozze finali. + +## Generazione della nota concettuale + +### Creazione automatica + +**Quando abilitato (predefinito), Notemd crea:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### Configurazione + +**Cartella di output:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Struttura gerarchica:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**Modello:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## Opzioni avanzate + +### Finestra di contesto + +**Quanta testo circostante inviare:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +Più grande = maggiore accuratezza, costo più elevato. + +### Occorrenze Minime + +**Collega solo i concetti che compaiono più volte:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +Impostalo su 2 o 3 per concentrarsi sui temi ricorrenti. + +### Escludere Pattern + +**Omettere certe parole:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +Impedisce il collegamento eccessivo di termini generici. + +### Prompt personalizzati + +**Sovrascrivere le istruzioni predefinite LLM:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +Modificalo per esigenze specifiche del dominio (ad esempio, "Concentrarsi sulla terminologia medica"). + +## Consigli e Best Practice + +### ✅ DA FARE + +- **Eseguire il trattamento delle note con >100 parole** — Le note brevi producono pochi concetti +- **Utilizzare modelli potenti** per un migliore riconoscimento dei concetti (GPT-4o, Claude) +- **Revisione prima dell'accettazione** — Verifica che i link suggeriti siano coerenti +- **Costruisci in modo iterativo** — Elabora da 5 a 10 note, esamina il grafo, regola le impostazioni + +### ❌ NON FARLO + +- **Eccesso di link** — Non ogni sostantivo richiede un link +- **Elabora i bozze più volte** — I concetti possono cambiare, attendi fino a quando non saranno stabili +- **Ignora i sinonimi** — Abilita la soppressione per evitare "ML" e "Machine Learning" + +## Performance + +### Velocità + +| Dimensione della nota | GPT-4o-mini | Claude Sonnet | Ollama (locale) | +|-----------|-------------|---------------|----------------| +| 500 parole | 2-3 secondi | 3-5 secondi | 5-10 secondi | +| 2000 parole | 5-8 secondi | 10-15 secondi | 20-40 secondi | +| 5000+ parole | Chunked (più chiamate) | Chunked | Chunked | + +### Stima dei costi + +**Esempio: nota di 1000 parole con GPT-4o-mini** +- Input: ~1500 tokeni +- Output: ~200 tokeni +- Costo: ~ + +**Elaborazione batch di 100 note:** ~ + +## Risoluzione dei problemi + +### Nessun link aggiunto + +**Verifica:** +1. LLM La chiamata è riuscita (Impostazioni → Diagnostica) +2. La nota contiene abbastanza contenuto (oltre 50 parole). +3. I concetti sono tecnici/specifici (non solo pronomi) + +**Prova:** +- Utilizza un modello più potente +- Aumentare la finestra di contesto +- Verificare la validità della chiave API + +### Troppi link + +**Soluzioni:** +1. Aumentare il numero minimo di occorrenze (2 o 3) +2. Aggiungere parole comuni alla lista da escludere +3. Utilizzare un modello meno aggressivo + +### Concetti errati collegati + +**Correzioni:** +1. Utilizzare un prompt personalizzato per la specificità del dominio +2. Abilitare la soppressione dei sinonimi +3. Revisionare manualmente e disconnettere + +### I link si rompono dopo il rinominamento + +**Questo è un comportamento normale Obsidian.** + +Per aggiornare tutti i link: +1. Rinomina la nota concettuale +2. Obsidian aggiorna automaticamente `[[old]]` → `[[new]]` + +--- + +## Prossimi passi + +- 📖 [Note Concettuali](./concept-notes) — Approfondimento sulla generazione delle note concettuali +- 🔍 [Integrazione della Ricerca](./research) — Combinare i link con la ricerca web +- 🎨 [Diagrammi](./diagrams) — Visualizzare il tuo grafo di conoscenza diff --git a/website/i18n/it/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/it/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..d121bd4c --- /dev/null +++ b/website/i18n/it/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "Flussi di lavoro" +description: "Collega più attività con pulsanti con un clic" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Flussi di lavoro + +<TLDR> +**Notemd i flussi di lavoro collegano più attività in un’unica azione con un clic.** Definisci sequenze come `add-links > extract-concepts > research > diagram` utilizzando un semplice DSL. I flussi di lavoro appaiono come pulsanti nel pannello laterale che eseguono l’intera catena sulla nota o cartella corrente. Vengono forniti con flussi di lavoro predefiniti; è possibile crearne di personalizzati nelle impostazioni. Ogni passaggio utilizza la propria configurazione di modello specifica per attività. + +Questo fa parte della [Obsidian Guida alla gestione delle conoscenze AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Panoramica + +Un flusso di lavoro elimina la fatica di eseguire le attività una alla volta. Invece di fare clic con il tasto destro quattro volte per aggiungere collegamenti, estrarre concetti, cercare termini sconosciuti e generare un diagramma, basta premere un pulsante nel pannello laterale e l’intera catena viene eseguita. Notemd si occupa della sequenziazione, della propagazione degli errori e della segnalazione dello stato di avanzamento. + +I flussi di lavoro vengono definiti in un DSL leggero (linguaggio specifico del dominio). Si trovano nelle impostazioni, appaiono come pulsanti cliccabili nel pannello laterale di Obsidian e possono essere applicati sia alla nota corrente che a un’intera cartella. + +## Come funziona + +### Pipeline di esecuzione dei flussi di lavoro + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **Analisi** -- La stringa DSL viene suddivisa in `>` (o `>`) per ottenere un elenco ordinato degli identificatori delle attività. +2. **Risoluzione** -- Ogni identificatore corrisponde a un comando interno (add-links, extract-concepts, research, translate, diagram, ecc.). +3. **Esecuzione** -- I passaggi vengono eseguiti in sequenza. Ogni passaggio utilizza il fornitore e il modello configurati specifici per attività. +4. **Gestione degli errori** -- Se un passaggio fallisce, il flusso di lavoro può interrompersi o continuare al passaggio successivo, a seconda della politica di gestione degli errori impostata. +5. **Fine** -- Una notifica toast segnala il successo o elenca i passaggi falliti. + +### Formato DSL + +I flussi di lavoro sono definiti come una sequenza separata da `>` di identificatori di task: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**Identificatori di task disponibili:** + +| Identificatore | Azione | +|------------|--------| +| `process-current-add-links` | Aggiungere link wiki alla nota attiva | +| `extract-concepts-current` | Estrai concetti dalla nota attiva | +| `research-and-summarize` | Ricerchare il testo selezionato o il titolo della nota | +| `process-current-translate` | Traduci la nota attiva | +| `summarize-to-mermaid` | Genera un diagramma dalla nota attiva | +| `generate-from-title` | Genera contenuto dal titolo della nota | +| `extract-original-text` | Estrai il testo originale (per OCR / contenuti scansionati) | + +**Varianti a livello di cartella** sostituiscono `current` con `folder` nel nome dell’identificatore. + +### Flussi di lavoro predefiniti vs. personalizzati + +Notemd include flussi di lavoro pronti per schemi comuni: + +| Flusso di lavoro | Catena | Caso d’uso | +|----------|-------|----------| +| **Estrazione con un clic** | aggiungi-link > estrai-concetti > ricerca | Elabora un articolo di ricerca in un’unica passata | +| **Pipeline completo** | aggiungi-link > estrai-concetti > ricerca > diagramma | Estrai completamente le conoscenze con visualizzazione | +| **Traduci + Collega** | traduci > aggiungi-link | Traduci poi collega i concetti nella lingua di destinazione | + +Vengono creati **flussi di lavoro personalizzati** nelle impostazioni: + +1. Apri **Impostazioni** --> **Notemd** --> **Flussi di lavoro +2. Clicca su **"Aggiungi flusso di lavoro"** +3. Inserisci la catena DSL (ad esempio, `process-current-add-links>extract-concepts-current`) +4. Assegna un nome visivo (ad esempio, "Collegamento rapido + Estrazione") +5. Il nuovo pulsante appare immediatamente nella barra laterale + +## Configurazione + +| Impostazioni | Predefinito | Effetto | +|---------|---------|--------| +| `workflows` | Set predefinito | Array di definizioni di flusso di lavoro (nome + DSL) | +| `workflowContinueOnError` | `true` | Procedi al passo successivo se il passo attuale fallisce | +| `workflowShowProgress` | `true` | Mostra una notifica di avanzamento dopo il completamento di ogni passo | + +### Modelli per task nei flussi di lavoro + +Ogni passo in un flusso di lavoro utilizza la propria configurazione di modello per task. Non è necessario specificare modelli direttamente nel DSL stesso. L’ordine di risoluzione è: + +1. Il provider/modello per task se `useMultiModelSettings` è disponibile +2. Il `activeProvider` globale in caso contrario + +Ciò significa che `add-links` può essere eseguito su DeepSeek mentre `research` viene eseguito su GPT-4o -- tutto all’interno dello stesso flusso di lavoro. + +## Esempio + +Hai appena importato un PDF di un articolo di machine learning nel tuo vault e desideri un’estrazione completa delle conoscenze: + +1. Apri la nota importata +2. Clicca sul pulsante della barra laterale **"Full Pipeline"** +3. Notemd esegue: + - **Passo 1**: Aggiungi link wiki -- `[[attention mechanism]]`, `[[transformer]]`, ecc. + - **Passo 2**: Estrai i concetti -- crea note di concetto nella tua cartella dei concetti + - **Passo 3**: Ricerca -- riassume le fonti web per i termini chiave + - **Passo 4**: Diagramma -- genera una mappa mentale Mermaid della struttura dell’articolo +4. Dopo circa 30 secondi, la tua nota contiene link, esistono note di concetto, viene aggiunta la ricerca e viene salvato un file di diagramma + +Tutto questo con un solo clic. + +## Consigli + +- **Inizia con flussi di lavoro predefiniti** -- coprono i pattern più comuni. Personalizzali solo quando è necessario un ordine diverso. +- **Abilita `workflowContinueOnError`** -- un passaggio del diagramma fallito non deve interrompere l’intero pipeline. +- **Utilizza flussi di lavoro per cartelle** per il trattamento in batch -- fai clic con il tasto destro su una cartella, seleziona un flusso di lavoro e ogni nota verrà elaborata. +- **Dà un nome chiaro ai flussi di lavoro** -- lo spazio nella barra laterale è limitato. Usa nomi brevi e orientati all’azione come "Estrai rapidamente" o "Traduci + Collega". + +--- + +## Prossimi passi + +- [Ricerca](./research) -- Capisci cosa fa il passaggio di ricerca prima di aggiungerlo ai flussi di lavoro +- [Collegamenti Wiki](./wiki-links) -- Funzionalità di collegamento fondamentale utilizzata nella maggior parte dei flussi di lavoro +- [Note di concetto](./concept-notes) -- Estrazione dei concetti come passaggio di un flusso di lavoro +- [Elaborazione batch](/docs/advanced/batch-processing) -- Concorrenza e report sullo stato per i flussi di lavoro per cartelle diff --git a/website/i18n/it/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/it/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..17693e2f --- /dev/null +++ b/website/i18n/it/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "Configurazione" +description: "Configurare le impostazioni e le preferenze di Notemd" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Configurazione + +<TLDR> +**La configurazione Notemd copre 6 aree principali:** (1) fornitori LLM e chiavi API, (2) selezione del modello per task, (3) percorsi di output e template, (4) lingua UI e lingua di output, (5) servizi di ricerca (Tavily/DuckDuckGo), (6) flussi di lavoro personalizzati. Tutte le impostazioni si trovano in Obsidian Impostazioni → Notemd. I cambiamenti entrano in vigore immediatamente. +</TLDR> + +## Panoramica delle impostazioni + +Accesso: **Obsidian Impostazioni (⚙️) → Notemd** + +### Sezioni principali + +1. **Configurazione del fornitore** — chiavi API, URL di base, modelli +2. **Impostazioni del task** — selezione del modello per task +3. **Configurazione dell’output** — dove salvare i file generati +4. **Impostazioni linguistiche** — UI e lingue di output +5. **Integrazione di ricerca** — configurazione Tavily/DuckDuckGo +6. **Flussi di lavoro** — catene di pulsanti personalizzate +7. **Avanzate** — diagnosi, elaborazione batch, chunking + +--- + +## 1. Configurazione del fornitore + +### Aggiungere un fornitore + +1. **Scegli il fornitore** dal menu a discesa (più di 30 disponibili) +2. **Inserisci la chiave API** +3. **Opzionale**: Imposta una base URL personalizzata (per proxy/gateway) +4. **Clicca su "Otteni elenco modelli"** per verificare la connessione +5. **Scegli il modello predefinito** + +### Fornitori comuni + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Local) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### Molti fornitori + +È possibile configurare più fornitori e passare da uno all’altro a seconda del compito: +- **Fornitore principale**: utilizzato come fallback +- **Fornitori specifici per attività**: da sovrascrivere per attività specifiche + +--- + +## 2. Modelli specifici per attività + +Configurare modelli diversi per attività diverse per ottimizzare costo/qualità: + +### Tipi di attività + +| Compito | Modello predefinito | Scopo | +|------|--------------|---------| +| **Collegamento** | Fornitore principale | Identificare concetti per collegamenti wiki | +| **Generazione di concetti** | Fornitore principale | Estrarre e descrivere concetti | +| **Ricerca** | Fornitore principale | Riepilogare i risultati di ricerca web | +| **Traduzione** | Fornitore principale | Traduci testo | +| **Generazione di diagrammi** | Fornitore principale | Genera diagrammi Mermaid/Canvas | + +### Esempio: Configurazione ottimizzata per i costi + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### Come configurare + +1. **Impostazioni → Notemd → Impostazioni task** +2. Per ogni task, scegli: + - ✅ **Usare il fornitore principale** (predefinito) + - 🔄 **Usare un fornitore personalizzato** → seleziona fornitore + modello + +--- + +## 3. Configurazione di output + +### Output delle note concettuali + +**Dove vengono salvate le note di concetto nuove:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Modello:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### Opzioni di struttura della cartella + +**Opzione 1: Piana (tutti i concetti in una sola cartella)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**Opzione 2: Gerarchica (per cartella di origine)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +Configurazione: **Impostazioni → Output → Utilizzare cartelle gerarchiche** + +### Output del diagramma + +**Dove vengono salvati i diagrammi:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**Formato:** +- `.mmd` (Mermaid origine) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. Impostazioni di lingua + +### UI Lingua + +**Lingua dell'interfaccia** (pulsanti, menu, finestre di dialogo): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +Supportato: inglese, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Русский, العربية e altre. + +### Lingua di output + +**Lingua del contenuto generato** (note concettuali, riassunti di ricerca): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**Caso d'uso:** UI cinese + output in inglese per ricerche bilingue. + +### Destinazione della traduzione + +**Lingua di destinazione predefinita** per le attività di traduzione: + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. Integrazione con la ricerca + +### Tavily (Consigliato) + +**Servizio di ricerca ottimizzato per l'AI:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +Chiave di accesso: [tavily.com](https://tavily.com/) + +**Caratteristiche:** +- Risultati di alta qualità +- Riepiloghi ottimizzati per l'AI +- Citazioni delle fonti + +### DuckDuckGo (Sperimentale) + +**Non è necessaria alcuna chiave API:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**Nota:** Qualità inferiore, nessuna personalizzazione. + +--- + +## 6. Configurazione del flusso di lavoro + +### Creazione di flussi di lavoro personalizzati + +**I flussi di lavoro collegano più attività in un unico pulsante.** + +1. **Impostazioni → Flussi di lavoro → Aggiungi flusso di lavoro** +2. **Nome**: "Flusso di analisi del paper" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **Salva** + +Appare un nuovo pulsante nella barra laterale sinistra. + +### Sintassi DSL + +**Formato:** `action1>action2>action3` + +**Azioni disponibili:** +- `process-current-add-links` — Aggiungere link wiki alla nota attuale +- `extract-concepts-current` — Generare note concettuali +- `research-and-summarize` — Ricerca web + riassunto +- `translate-current` — Traduci la nota attuale +- `summarize-as-mermaid` — Generare diagramma Mermaid +- `process-folder-add-links` — Elaborazione batch della cartella + +**Flussi di lavoro di esempio:** + +**Estrazione rapida dei concetti:** +``` +process-current-add-links>extract-concepts-current +``` + +**Ricerca approfondita:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**Analisi multilingue:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. Impostazioni avanzate + +### Elaborazione batch + +**Elaborare più file in parallelo:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +Valori più alti = velocità maggiore ma più chiamate API. + +### Chunking intelligente + +**Per note lunghe, suddividere in blocchi:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +Previene errori legati al limite dei token. + +### Pannello di Diagnostica + +**Visualizzare log dettagliati:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +Mostra: +- API richieste/risposte +- Utilizzo del token +- Tempi di elaborazione +- Errori + +### Rilevamento di concetti duplicati + +**Evitare concetti quasi duplicati:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +Valore più alto = fusione più aggressiva. + +--- + +## Profili di configurazione + +### Impostazioni di esportazione/importazione + +**Condividere le configurazioni tra dispositivi:** + +1. **Impostazioni → Avanzate → Esporta configurazione** +2. Salva `notemd-config.json` +3. Su nuovo dispositivo: **Importa configurazione** + +**Cosa è incluso:** +- Chiavi del fornitore API (opzionali) +- Selezione dei modelli +- Percorsi di output +- Flussi di lavoro personalizzati + +--- + +## Configurazioni consigliate + +### Per studenti + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### Per ricercatori + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### Per utenti attenti alla privacy + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### Per il lavoro bilingue + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## Risoluzione dei problemi di configurazione + +### Impostazioni non salvate +- Verifica i permessi del file in `.obsidian/plugins/notemd/` +- Prova: Disattiva il plugin → Riattivalo + +### Chiave API non valida +- Nessun spazio aggiuntivo +- Verifica la scadenza +- Verifica i crediti nel pannello di controllo del fornitore + +### I modelli non vengono caricati +- Clicca su "Otteni elenco modelli" per aggiornare +- Verifica la connettività di rete +- Prova con un altro fornitore + +--- + +## Prossimi passi + +- 📖 [Esplora le funzionalità](../features/wiki-links) +- 🔌 [Guida all'impostazione del fornitore](../providers/overview) +- ❓ [FAQ](../faq) diff --git a/website/i18n/it/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/it/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..c8fe1f5c --- /dev/null +++ b/website/i18n/it/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "Installazione" +description: "Come installare Notemd su Obsidian" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Installazione + +<TLDR> +**Installa Notemd in meno di 2 minuti.** Due metodi: (1) Plugin della comunità di Obsidian (consigliato, installazione con un clic), oppure (2) Installazione manuale tramite GitHub Releases. Richiede Obsidian 0.15.0+. Funziona su Windows, macOS, Linux, iOS e Android. Nessuna dipendenza esterna. Più di 4k download, licenza MIT. +</TLDR> + +## Metodo 1: Plugin della comunità (Consigliato) + +1. Apri le **Impostazioni di Obsidian** (icona ⚙️ o `Ctrl/Cmd + ,`) +2. Vai su **Plugin della comunità** +3. Clicca su **Esplora** +4. Cerca **"Notemd"** +5. Clicca su **Installa** +6. Clicca su **Abilita** + +**Fatto!** Vedrai l'icona di Notemd nel tuo bar laterale sinistro. + +## Metodo 2: Installazione manuale + +### Prerequisiti +- Obsidian 0.15.0 o versione successiva +- Git (opzionale, per il clonaggio) + +### Passaggi + +1. **Scarica i file** da [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest): + - `main.js` + - `styles.css` + - `manifest.json` + +2. **Trova la cartella dei plugin del tuo vault:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +Se la cartella `plugins` non esiste, crearla. + +3. **Crea la cartella Notemd:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **Copia i tre file** nella cartella `notemd`. + +5. **Ricarica Obsidian:** + - Premi `Ctrl/Cmd + R`, oppure + - Riavvia Obsidian + +6. **Abilita il plugin:** + - Impostazioni → Plugin della comunità + - Cerca "Notemd" nell’elenco + - Attivalo + +## Alternativa: Installa tramite BRAT + +Se utilizzi il plugin [BRAT](https://github.com/TfTHacker/obsidian42-brat): + +1. Apri le impostazioni di BRAT +2. Clicca su "Aggiungi plugin beta" +3. Inserisci: `Jacobinwwey/obsidian-NotEMD` +4. Clicca su "Aggiungi plugin" +5. Abilita Notemd nei plugin della comunità + +## Verifica + +Dopo l'installazione, verificare che Notemd funzioni correttamente: + +1. Aprire qualsiasi nota +2. Clic destro nell'editor +3. Dovreste vedere comandi Notemd come: + - "Elabora file (aggiungi link)" + - "Estrai concetti" + - "Ricerca e riassumi" + +## Prossimi passi + +- **Configura il fornitore LLM:** [Quick Start →](./quick-start) +- **Risoluzione dei problemi:** [Common Issues →](../advanced/troubleshooting) + +## Requisiti di sistema + +| Piattaforma | Versione | Stato | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | Richiesto | +| **Windows** | 7+ | ✅ Supportato | +| **macOS** | 10.15+ | ✅ Supportato | +| **Linux** | Qualsiasi | ✅ Supportato | +| **iOS** | 15+ | ✅ Supportato | +| **Android** | 5+ | ✅ Supportato | + +## Disinstallazione + +Per rimuovere Notemd: + +1. Impostazioni → Plugin della comunità +2. Cerca "Notemd" +3. Clicca sull'icona ❌ +4. Opzionalmente, elimina la cartella del plugin: `<vault>/.obsidian/plugins/notemd/` + +I tuoi dati (note, note di concetto, ecc.) rimangono invariati. + +## Aggiornamento + +### Aggiornamento automatico (Consigliato) +Obsidian verifica automaticamente le aggiornamenti dei plugin. Quando è disponibile una nuova versione: +1. Impostazioni → Plugin della comunità +2. Clicca su "Verifica aggiornamenti" +3. Clicca su "Aggiorna" accanto a Notemd + +### Aggiornamento manuale +Scarica l’ultima versione e sostituisci i tre file nella cartella del tuo plugin. + +## Ottenere assistenza + +- 📖 [Guida rapida all’avvio](./quick-start) +- ❓ [FAQ](../faq) +- 💬 [Comunità Discord](https://discord.gg/qnGgsQ9W) +- 🐛 [Segnala problemi](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/it/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/it/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..f18b17ae --- /dev/null +++ b/website/i18n/it/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "Guida di avvio rapido" +description: "Inizia a utilizzare Notemd in 5 minuti" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Guida di avvio rapido + +<TLDR> +**Inizia a usare Notemd in 5 minuti.** Tre passaggi: (1) Aggiungi una chiave LLM API (oppure usa Ollama locale), (2) Apri una nota e esegui "Process file (add links)", (3) Esplora i flussi di lavoro con un clic nel pannello laterale. Supporta più di 30 fornitori. Nessuna conoscenza di programmazione richiesta. Funziona offline con Ollama. +</TLDR> + +## Passo 1: Configura il tuo primo fornitore LLM (2 min) + +### Opzione A: Fornitore cloud (OpenAI, Anthropic, ecc.) + +1. Apri **Impostazioni** → **Notemd** +2. Nella sezione **Configurazione del fornitore LLM**, seleziona un fornitore dal menu a tendina +3. Inserisci la tua **Chiave API** +4. (Opzionale) Clicca su **"Otteni elenco modelli"** per visualizzare i modelli disponibili +5. Scegli un modello per ogni tipo di attività + +**Scelte popolari:** +- **OpenAI**: `gpt-4o-mini` (veloce, economico) +- **Anthropic**: `claude-sonnet-4-6` (alta qualità) +- **DeepSeek**: `deepseek-chat` (molto economico) + +### Opzione B: Ollama locale (non è necessaria la chiave API) + +1. Installare [Ollama](https://ollama.com/) +2. Scaricare un modello: `ollama pull llama3.1` +3. Nelle impostazioni di Notemd, selezionare **"Ollama"** come fornitore +4. Nome del modello: `llama3.1` (o qualsiasi modello scaricato) + +## Passo 2: Provare il primo compito (1 minuto) + +### Aggiungere link Wiki a una nota + +1. Aprire qualsiasi nota con contenuto significativo +2. Clic destro nell'editor +3. Selezionare **"Elabora file (aggiungi link)"** +4. Aspettare alcuni secondi +5. I concetti chiave sono ora `[[wiki-linked]]`! + +**Esempio:** + +**Prima:** +``` +Machine learning models use neural networks to process data. +``` + +**Dopo:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## Passo 3: Esplorare le funzionalità (2 min) + +### Estrai note sui concetti + +1. Clic destro → **"Estrai concetti dal file attuale"** +2. Notemd crea file separati per ciascun concetto +3. Verifica la cartella dei concetti configurata (predefinita: `concepts/`) +4. Ogni nota sui concetti contiene un link di ritorno alla nota originale + +### Ricerca e riassunto + +1. Seleziona un argomento nella tua nota +2. Clic destro → **"Ricerca e riassumi"** +3. Notemd effettua ricerche sul web (Tavily o DuckDuckGo) +4. Riepilogo aggiunto alla tua nota con le fonti + +### Flussi di lavoro con un clic + +1. Controlla la **barra laterale sinistra** per i pulsanti dei flussi di lavoro +2. Clicca su **"Estrai con un clic"** su qualsiasi nota +3. Esegue: aggiungi link → estrai concetti → fai ricerche → genera un diagramma +4. Tutto in un solo clic! + +## Compiti principali comuni + +### Compito 1: Elaborare un articolo/saggio + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### Compito 2: Tradurre le note + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### Compito 3: Creare una mappa delle conoscenze + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## Consigli per la personalizzazione + +### Selezione del modello per attività + +Puoi utilizzare modelli diversi per compiti diversi: + +| Compito | Modello consigliato | Perché | +|------|------------------|-----| +| Aggiungi link | `gpt-4o-mini`, `deepseek-chat` | Velocità, molte chiamate | +| Estrai concetti | `claude-sonnet-4-6`, `gpt-4o` | Estrazione di qualità | +| Ricerca | `perplexity`, `gpt-4o` | Basato sul web | +| Traduzione | `gemini-flash`, `gpt-4o` | Multilingue | +| Diagrammi | `claude-opus`, modello locale | Ragionamento complesso | + +Configura in: **Impostazioni → Notemd → Modelli specifici per attività** + +### Flussi di lavoro personalizzati + +Crea il tuo pulsante personalizzato: + +1. Impostazioni → Notemd → Flussi di lavoro +2. Clicca su "Aggiungi flusso di lavoro" +3. Inserisci DSL: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. Dagli un nome: "My Research Flow" +5. Un nuovo pulsante appare nella barra laterale + +## Risoluzione dei problemi + +### "Chiave API non valida" +- Verifica che la chiave sia corretta (nessun spazio in più) +- Assicurati che il conto abbia crediti +- Testa con il pulsante "Test di connessione" nelle impostazioni + +### "Modello non trovato" +- Clicca su "Elenco modelli" per visualizzare i modelli disponibili +- Alcuni fornitori richiedono nomi di modello specifici (ad esempio, `gpt-4o` e non `gpt-4`) + +### I link non appaiono +- Assicurarsi che la nota contenga abbastanza contenuto (>50 parole) +- Provare un modello più potente +- Verificare se la chiamata a LLM è riuscita (vedi pannello diagnostico) + +### Performance lenta +- Utilizzare modelli più veloci (`gpt-4o-mini` invece di `gpt-4o`) +- Ridurre le dimensioni del blocco nelle impostazioni +- Abilitare il processing parallelo per i task in batch + +## Prossimi passi + +- 📖 [Esplorare tutte le funzionalità](../features/wiki-links) +- ⚙️ [Configurazione avanzata](./configuration) +- 🔧 [Impostazione del fornitore LLM](../providers/overview) +- ❓ [FAQ](../faq) + +## Video Tutorial + +Guarda il video introduttivo di 3 minuti (cinese): +[【Completamente open source e gratuito! NotEMD guida rapida in 3 minuti】](https://b23.tv/lqR0RlA) + +## Ottenere assistenza + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **Problemi**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **Documentazione**: [Full Documentation](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/it/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/it/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..ab2c847b --- /dev/null +++ b/website/i18n/it/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "Introduzione a Notemd" +description: "Strumento per la creazione di basi di conoscenza alimentate da AI per Obsidian con trasformazioni di note persistenti, flussi di lavoro e diagrammi basati su specifiche" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Introduzione a Notemd + +<TLDR> +**Notemd** (Note + EMD — Documenti Markdown migliorati) è un plugin open source per Obsidian che trasforma la lettura supportata da LLM in conoscenza persistente. A differenza dell’AI basato su chat, dove le informazioni scompaiono dopo la sessione, Notemd scrive i risultati **direttamente nel tuo vault** sotto forma di link wiki, note concettuali, riassunti di ricerca, traduzioni, flussi di lavoro e diagrammi. È progettato per ricercatori, studenti e professionisti della conoscenza che desiderano che la lettura, la ricerca e le spiegazioni visive si accumulino in un grafo di conoscenza strutturato ed evolutivo. +</TLDR> + +## Cos’è Notemd? + +Notemd integra **oltre 30 modelli linguistici di grandi dimensioni** (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama e molti altri) nel tuo flusso di lavoro Obsidian per automatizzare l’estrazione della conoscenza, la sua organizzazione, la traduzione, la ricerca e la generazione di diagrammi. + +### Differenza chiave: conoscenza effimera vs. conoscenza persistente + +| Aspetto | AI basato su chat (ChatGPT, ecc.) | Notemd | +|--------|-------------------------------|--------| +| **Dove vanno i risultati** | Storia della chat (scompare) | Il tuo vault Obsidian (rimane) | +| **Formato** | Risposte in testo semplice | File strutturati: `[[wiki-links]]`, note concettuali, diagrammi | +| **Valore a lungo termine** | È necessario ripetere la domanda ogni volta | Si accumula in un grafo di conoscenza | +| **Accesso offline** | Richiede Internet | Funziona completamente offline con Ollama | + +## Capacità principali + +### 1. **Collegamento automatico al Wiki** +- LLM identifica i concetti chiave nelle tue note +- Inserisce `[[wiki-links]]` in ogni occorrenza +- Opzionalmente crea note concettuali collegate +- Suppressione dei sinonimi per evitare duplicati + +### 2. **Generazione della nota concettuale** +- Estrae i concetti principali da articoli, paper e note +- Crea file dedicati ai concetti con collegamenti inversi +- Percorso di output e template personalizzabili + +### 3. **Integrazione della ricerca web** +- Esegue ricerche su Tavily o DuckDuckGo all’interno di Obsidian +- LLM riassume i risultati con citazioni delle fonti +- Aggiunge i risultati della ricerca alla nota corrente + +### 4. **Traduzione multilingue** +- Traduce selezioni o intere note +- Supporta più di 21 lingue UI +- Configurazione linguistica di output indipendente +- Supporto per la traduzione batch + +### 5. **Generazione di diagrammi** +- **Mermaid**: Flussi, sequenza, classe, stato, ER, Gantt +- **JSON Canvas**: layout nativi Obsidian +- **Vega-Lite**: grafici dei dati, serie temporali, grafici a dispersione +- **HTML / HTML editabile / SVG**: artefatti di figura autonomi con annotazioni semantiche +- **Draw.io / confini dell’artefatto Drawnix**: percorsi di esportazione per gli amministratori basati sullo stesso modello di figura semantica +- **Roadmap per i diagrammi elettrici**: il supporto circuitikz/TikZJax viene progettato intorno a riferimenti d’oro, prompt vincolati, feedback di rendering e validazione di topologia/layout, piuttosto che a TikZ grezzo e non vincolato +- **Diagnostica della anteprima**: gli artefatti di rendering possono mostrare diagnosi di compilazione/rendering, e le fonti non inline possono essere esaminate senza richiedere un ambiente LaTeX sul lato del plugin +- Correzione automatica della sintassi per errori Mermaid + +### 6. **Flussi operativi con un clic** +- Collegare più azioni in pulsanti del bar laterale +- Definizione di flussi di lavoro basati su DSL +- Esempio: `add-links > extract-concepts > research > diagram` + +## Chi dovrebbe utilizzare Notemd? + +✅ **Ricercatori** che leggono articoli e creano rassegne bibliografiche +✅ **Studenti** che organizzano appunti di studio e creano mappe concettuali +✅ **Lavoratori del settore della conoscenza** che desiderano che le intuizioni di lettura persistano +✅ **Professionisti bilingui** che hanno bisogno di traduzione + collegamenti wiki +✅ **Utenti attenti alla privacy** che vogliono supporto locale LLM (Ollama) +✅ **Utenti avanzati** che personalizzano prompt e flussi di lavoro + +## Perché Notemd + Obsidian? + +**Obsidian** è una base di conoscenza basata su markdown, orientata al locale. **Notemd** aggiunge potenzialità AI avanzate: +- I tuoi dati rimangono nel tuo vault (non in un servizio cloud) +- Funziona offline con modelli locali +- Gratuito e open source (licenza MIT) +- Si integra con i plugin Obsidian esistenti +- Si scalano fino a decine di migliaia di note + +## Introduzione + +1. **Installazione**: Impostazioni → Plugin della comunità → Esplora → "Notemd" +2. **Configurazione**: Aggiungi la chiave del provider LLM API (oppure utilizza il Ollama locale) +3. **Provalo**: Apri una nota → Clic destro → "Elabora file (aggiungi link)" +4. **Esplora**: Controlla la barra laterale per flussi di lavoro con un clic + +👉 [Guida all’installazione](./getting-started/installation) | [Tutorial di avvio rapido](./getting-started/quick-start) + +## Direzione delle capacità dei diagrammi + +Il lavoro sui diagrammi di Notemd sta passando da "chiedere al modello di scrivere una stringa di sintassi" a un pipeline stratificato: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +L’implementazione attuale supporta già Mermaid, JSON Canvas, Vega-Lite, fallback HTML, HTML/SVG editabili, artefatti Draw.io XML, un sottoinsieme minimo di Drawnix JSON, diagnosi di anteprima/fallback solo su fonte, e un prototipo offline `CircuitSpec -> circuitikz` per template golden di common-source e inverter CMOS. I diagrammi di circuito sono una categoria più difficile: circuitikz può esprimere una topologia elettrica precisa, ma l’output non vincolato di LLM produce spesso percorsi di cablaggio illeggibili o LaTeX che non viene visualizzato. La prossima direzione è mantenere circuitikz vincolato tramite template di riferimento golden, regole di layout a griglia dei nodi, diagnosi di rendering e cicli di feedback tramite screenshot. + +Leggi i dettagli in [Diagrams](./features/diagrams). + +## Architettura + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd contro altri plugin AI Obsidian + +La maggior parte dei plugin AI Obsidian è basata sulla conversazione (tu chiedi, l’AI risponde, le informazioni rimangono nella chat). Notemd è **basato sulla scrittura**: l’AI elabora le tue note e scrive direttamente i risultati strutturati nel tuo vault. + +| Capacità | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| Inserimento automatico di link wiki | Sì | No | No | No | +| Generazione di note concettuali | Sì (con backlink + deduplicazione) | No | No | No | +| Generazione di diagrammi | Sì (Mermaid, Canvas, Vega-Lite, HTML, artefatti editabili) | No | No | No | +| Integrazione con la ricerca web | Sì (Tavily + DuckDuckGo) | No | No | No | +| Elaborazione delle cartelle in batch | Sì | Limitato | No | Limitato | +| Inoltro del modello per task | Sì (7 task, modelli indipendenti) | No | No | No | +| Catene di flussi di lavoro con un clic | Sì (DSL) | No | No | No | +| Traduzione (batch) | Sì | No | No | No | +| Chat con il vault | No | Sì | No | No | +| Ricerca di similarità semantica | No | No | Sì | No | +| Generazione basata su template | No | No | No | Sì | +| Fornitori LLM | 36 (cloud + gateway + locale) | 3-5 | 2-3 | 3-5 | +| Completamente offline | Sì (Ollama) | Parziale | Parziale | Parziale | + +**Quando scegliere Notemd**: desideri che l’AI crei un grafo di conoscenza persistente — non solo chattare sulle tue note. + +**Quando scegliere Copilot**: desideri un assistente AI conversazionale all’interno di Obsidian. + +**Quando scegliere Smart Connections**: desideri scoprire relazioni esistenti tra le note tramite ricerca semantica. + +## Filosofia + +**Notemd ritiene che l’IA dovrebbe potenziare il lavoro di conoscenza umana, non sostituirlo.** Il plugin: +- Ti mantiene sotto controllo (revisione prima dell’applicazione delle modifiche) +- Conserva il contesto (tutti i risultati rimandano alla fonte) +- Rispetta la privacy (supporto locale LLM, nessuna telemetria) +- Rimane estensibile (API aperte API, flussi di lavoro personalizzati) + +## Open Source + +- **Licenza**: MIT +- **Fonte**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **Comunità**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **Contribuisci**: sono benvenuti i PR, consulta [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +**Prossimo passo**: [Installation →](./getting-started/installation) diff --git a/website/i18n/it/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/it/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..14357b87 --- /dev/null +++ b/website/i18n/it/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Obsidian Guida alla gestione della conoscenza con l'AI" +description: "Guida completa per creare una base di conoscenza connessa tramite l'AI — dalle collegamenti wiki e dall'estrazione dei concetti fino alla ricerca, alla traduzione e alla generazione di diagrammi" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Obsidian Guida alla gestione della conoscenza con l'AI + +<TLDR> +**Notemd trasforma la lettura alimentata da LLM in conoscenza persistente: i collegamenti wiki collegano i concetti, le note dei concetti creano un grafo recuperabile, la ricerca porta il web nel tuo archivio, la traduzione elimina le barriere linguistiche, i diagrammi rendono visibile la struttura e i flussi di lavoro collegano tutto con un solo clic.** Questa guida copre l'intero processo — dalle note grezze a una base di conoscenza connessa, visiva e multilingue. +</TLDR> + +## Perché la gestione della conoscenza con l'AI? + +La tradizionale annotazione produce file piatti. Anche con collegamenti wiki manuali, la maggior parte delle note rimane disconnessa. Notemd utilizza LLM per automatizzare lo strato di connessione: + +- **LLM leggono il tuo contenuto** e identificano ciò che è importante — termini, metodi, persone, teorie +- **I collegamenti vengono inseriti automaticamente** ad ogni occorrenza di un concetto, senza essere nascosti in sezioni "vedi anche" +- **Le note dei concetti vengono generate** come file recuperabili autonomi +- **La ricerca arricchisce le note** con contesto proveniente dal web +- **I diagrammi rendono visibile la struttura** — mappe mentali, flussi di lavoro, grafici dei dati basati sullo stesso contenuto + +Il risultato: un grafo di conoscenza che cresce con ogni nota che elabori, non solo quando ti ricordi di aggiungere collegamenti. + +## Il flusso di lavoro completo + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +Ogni passaggio è indipendente. Si può utilizzare uno o tutti. La sequenza più efficace: **Aggiungi link → Note concettuali → Diagrammi**. + +--- + +## 1. Link wiki: rendere esplicite le connessioni + +I link wiki costituiscono la struttura di base di un grafo di conoscenza. Notemd utilizza un LLM per: + +1. Leggere il contenuto della nota (dividendolo in parti per documenti lunghi) +2. Identificare i concetti chiave — dando priorità a termini tecnici specifici rispetto a sostantivi generici +3. Inserire `[[wiki-links]]` in ogni occorrenza +4. Sopprimere i sinonimi affinché "ML" e "Machine Learning" non creino nodi separati + +### Quando utilizzarlo + +- **Ogni nota >100 parole** — le note più brevi forniscono pochi concetti +- **Articoli di ricerca, documentazione tecnica, note di riunione** — ricche di termini specifici del settore +- **Dopo che il contenuto è stabile** — non elaborare ripetutamente bozze + +### Impostazioni chiave + +| Impostazioni | Consigliato | Perché | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek o GPT-4o-mini | Buona accuratezza a basso costo | +| Soppressione dei sinonimi | Attivo | Impedisce nodi duplicati | +| Finestra di contesto | Paragrafo | Equilibrio tra accuratezza e costo | + +→ [Wiki-Links deep dive](/docs/features/wiki-links) + +--- + +## 2. Note concettuali: Nodi di conoscenza recuperabili + +I collegamenti wiki uniscono le idee in modo inline, ma le note di concetto permettono di recuperare ogni idea in modo indipendente. Ogni concetto ha il proprio file `.md`: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### Il processo di estrazione + +La richiesta LLM è fortemente strutturata: +- Normalizzare alla forma singolare +- Preferire concetti multi-parola rispetto a parole singole ("Dielectric Relaxation" invece di "Relaxation") +- Omettere le sezioni di riferimenti/bibliografia +- Eseguire l’output come righe `CONCEPT:` per una parsing deterministica + +I concetti vengono de duplicati tra i vari blocchi tramite `Set<string>`. Gli errori LLM presenti in singoli blocchi non interrompono l’operazione. + +### Backlink + +Quando abilitato, ogni nota di concetto registra quali note di fonte la menzionano. Il pannello di backlink nativo di Obsidian mostra anche le connessioni inverse. + +### Eliminazione delle duplicati + +Il motore di de duplicazione a 4 passaggi di Notemd individua: +1. **Corrispondenze esatte** — confronto dei nomi dei file insensibile alla casistica +2. **Forme plurali** — "Models.md" contro "Model.md" +3. **Normalizzazione dei simboli** — "A-B.md" contro "A B.md" +4. **Contenimento di una singola parola** — "ML.md" segnalato quando esiste "Machine Learning.md" + +### Impostazioni chiave + +| Impostazioni | Consigliato | Perché | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` o `🧠 concepts/` | Mantiene il vault organizzato | +| `extractConceptsAddBacklink` | Attivo | Abilita la ricerca inversa | +| `extractConceptsMinimalTemplate` | Disattivato | Template completo con Linked From | +| Modello per task | DeepSeek | L'estrazione di concetti non richiede modelli costosi | +| Soppressione dei sinonimi | Attivo | La stessa impostazione influisce sia sull'elaborazione dei collegamenti che sull'estrazione | + +→ [Approfondimento su Concept Notes](/docs/features/concept-notes) + +--- + +## 3. Ricerca: Integrare il Web + +Notemd integra la ricerca web nel tuo flusso di lavoro di annotazione: + +1. **Costruzione della query** — il titolo o la selezione della nota diventa una query di ricerca +2. **Ricerca web** — Tavily (consigliato, richiesta della chiave API) oppure DuckDuckGo (gratuito, nessuna chiave) +3. **LLM riassunto** — i risultati della ricerca vengono condensati in un riassunto rilevante +4. **Aggiungere alla nota** — il riassunto viene inserito nella posizione del cursore o come nuova sezione + +### Quando utilizzarlo + +- Prima di elaborare un nuovo argomento — ottenere prima il contesto web +- Quando una nota concettuale richiede arricchimento — effettuare ricerche e poi aggiungere link +- Per le rassegne bibliografiche — effettuare ricerche in batch su una cartella di note + +### Impostazioni principali + +| Impostazioni | Consigliate | Perché | +|---------|-----------|-----| +| `researchProvider` | GPT-4o o Claude | Le ricerche richiedono una sintesi di qualità superiore | +| Servizio di ricerca | Tavily | Maggiore rilevanza, profondità configurabile | +| `maxResearchContentTokens` | 4000 | Equilibrio tra profondità e costo | + +→ [Research deep dive](/docs/features/research) + +--- + +## 4. Traduzione: Superare le barriere linguistiche + +Notemd traduce le note utilizzando il LLM configurato — non è una traduzione dedicata API. Ciò significa: + +- **Traduzioni consapevoli del contesto** — il LLM comprende l’intero documento, non frase per frase +- **Gestione dei termini tecnici** — "gradient descent" rimane "梯度下降" e non "坡度向下" +- **Supporto batch** — traduci un intero folder di note in un’unica operazione +- **Modello per task** — utilizza Gemini Flash per la traduzione (veloce, economico, multilingue) + +### Supporto linguistico + +Il Notemd stesso supporta 21 lingue UI. La lingua di destinazione della traduzione è configurabile per task. Coppie comuni: EN↔ZH, EN↔JA, EN↔KO, EN↔DE, EN↔FR, EN↔ES. + +→ [Approfondimento sulla traduzione](/docs/features/translation) + +--- + +## 5. Diagrammi: rendere visibile la struttura + +Il pipeline di diagrammi di Notemd parte dalle specifiche: il LLM genera un `DiagramSpec` JSON strutturato, dopodiché gli adattatori lo traducono nel formato di destinazione. Questo produce un output più affidabile rispetto a chiedere al LLM la sintassi Mermaid grezza. + +### Rilevamento delle intenzioni + +Il Notemd deduce il tipo di diagramma più adatto dal contenuto: + +- **Tabelle con numeri** → grafico dei dati (Vega-Lite) +- **Vocabolario client/server** → diagramma di sequenza (Mermaid) +- **Entità/chiave primaria** → diagramma ER (Mermaid) +- **Passo/flusso di processo** → flusso di lavoro (Mermaid) +- **Parole chiave della mappa concettuale** → JSON Canvas (Obsidian nativo) +- **Predefinito** → mappa mentale (Mermaid) + +### Catena di rendering + +Obiettivo principale → fallback → fallback → HTML. Se la sintassi di Mermaid fallisce, viene riprovato una volta con il contesto dell’errore inviato a LLM, dopodiché si ricorre a un diagramma minimo. + +### Impostazioni chiave + +| Impostazioni | Consigliato | Perché | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | Attivo | Maggiore qualità grazie al metodo basato sulle specifiche | +| `experimentalDiagramCompatibilityMode` | `best-fit` | Obiettivo nativo per intento | +| `summarizeToMermaidProvider` | GPT-4o o Claude | Le specifiche dei diagrammi richiedono ragionamento spaziale | +| `autoMermaidFixAfterGenerate` | Attivo | Cattura automaticamente gli errori di sintassi LLM | +| Aumento della conoscenza locale | Attivo per ambiti specifici | Migliora l'accuratezza con il contesto del vault | + +→ [Approfondimento sui diagrammi](/docs/features/diagrams) + +--- + +## 6. Flussi di lavoro: Automazione con un clic + +I flussi di lavoro collegano più attività in un singolo pulsante nella barra laterale. Il formato DSL è: + +``` +task1 | task2 | task3 +``` + +Esempio: `addLinks | extractConcepts | generateDiagram` — trasforma una nota dal testo grezzo in un nodo di conoscenza visivo completamente connesso con un solo clic. + +### Flussi di lavoro consigliati + +| Flusso di lavoro | Catena | Caso d’uso | +|----------|-------|----------| +| Processo completo | `addLinks \| extractConcepts \| generateDiagram` | Nuove note | +| Ricerca preliminare | `research \| addLinks` | Argomenti sconosciuti | +| Polyglot | `translate \| addLinks` | Note multilingue | +| Solo diagramma | `generateDiagram` | Visualizzazione rapida | + +→ [Approfondimento sui flussi di lavoro](/docs/features/workflows) + +--- + +## 7. LLM Fornitori: 36 opzioni da cloud a locale + +Notemd supporta 36 fornitori su 4 tipi di trasporto. Gruppi chiave: + +- **Cloud internazionale**: OpenAI, Anthropic, Google, Mistral, xAI +- **Cloud cinese**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **Gateway**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **Locale**: Ollama, LMStudio, OVMS — nessuna chiave API, nessun dato lascia il tuo dispositivo + +### Strategia di modello per task + +La configurazione più economica utilizza modelli economici per compiti semplici e modelli potenti per quelli complessi: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [LLM Panoramica fornitori](/docs/providers/overview) + +--- + +## Elenco controllo per iniziare + +1. **Installare Notemd** — [Community Plugins](/docs/getting-started/installation) (consigliato) o manualmente +2. **Configurare un fornitore** — DeepSeek (più semplice), OpenAI, o Ollama (gratuito) +3. **Elaborare la prima nota** — clic destro → "Elabora file (aggiungi link)" +4. **Impostare cartella del concetto** — Impostazioni → Notemd → Output → Cartella del concetto +5. **Estrai i concetti** — esegui "Estrai i concetti" sulla stessa nota +6. **Genera un diagramma** — esegui "Genera diagramma" per visualizzare le connessioni +7. **Crea un flusso di lavoro** — collega gli step precedenti in un pulsante con un clic + +## Configurazioni consigliate + +### Studente (Budget) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### Ricercatore (Qualità) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### Privacy-First (Solo locale) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### Bilingue (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## Modelli comuni + +### Modello: Elaborare un articolo di ricerca + +1. Importa contenuti PDF (oppure incolla) +2. **Ricerca** — ottieni contesto web sull’argomento +3. **Aggiungi Link** — identifica e collega i concetti chiave +4. **Estrai Concetti** — crea note autonome +5. **Genera Diagramma** — visualizza la struttura del documento + +### Modello: Arricchimento della nota giornaliera + +1. Scrivi la nota giornaliera +2. **Aggiungi Link** — collega le idee di oggi ai concetti esistenti +3. Le note dei concetti vengono aggiornate automaticamente con i backlink + +### Modello: Rassegna della letteratura + +1. Crea una cartella con articoli/note +2. **Aggiungi Link in Batch** — elabora l'intera cartella +3. **Deduplica Concetti** — pulisce le note quasi duplicate +4. **Genera Diagramma** — mappa mentale dell'intera letteratura + +--- + +*Notemd è open source (MIT) e funziona con Obsidian 0.15.0+ su tutte le piattaforme. [Installa ora](/docs/getting-started/installation) oppure [visualizza su GitHub](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/it/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/it/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..694ae550 --- /dev/null +++ b/website/i18n/it/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "Configurare Anthropic Claude" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Provider Anthropic + +<TLDR> +**Anthropic utilizza il trasporto nativo Messages API, non il trasporto compatibile con OpenAI.** La configurazione predefinita attuale è `claude-3-5-sonnet-20240620`, `https://api.anthropic.com` e `temperature: 0.5`. Trattatela come una superficie di protocollo separata durante la debugging. + +Questo fa parte della [Obsidian Guida alla gestione delle conoscenze AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Impostazioni + +Creare una chiave Anthropic API, aggiungere un profilo provider `Anthropic` e lasciare il Base URL sull’endpoint nativo a meno che non si stia instradando tramite un profilo gateway dedicato. Scegliere l’ID del modello Claude da utilizzare nel campo modello; la configurazione predefinita mantiene stabile la baseline del prodotto esistente. + +Anthropic è un candidato ideale per la sintesi di alta qualità, la sintesi di ricerche e l’estrazione di concetti. Se lo si combina con provider più economici, utilizzarlo solo per i compiti che traggono vantaggio dalla qualità delle sue uscite. + +## Endpoint e autenticazione + +| Campo | Configurazione predefinita attuale | +|-------|----------------| +| Trasporto | `anthropic` | +| Chiave API | Richiesto | +| Base URL | `https://api.anthropic.com` | +| Modello predefinito | `claude-3-5-sonnet-20240620` | +| Temperature | `0.5` | +| Test di connessione | Solo chat | + +Il runtime invia richieste a `/v1/messages` con `x-api-key` e `anthropic-version: 2023-06-01`. Non configurare un endpoint `/v1/chat/completions` di tipo OpenAI in questa impostazione predefinita; utilizzare invece un preset di gateway compatibile con OpenAI. + +## Scoperta dei modelli + +Anthropic utilizza il modo di scoperta `anthropic-models` nel registro dei fornitori. Se la tua chiave o account non riesce a elencare i modelli, conserva un ID di modello noto nel profilo e verifica tramite il test di connessione. + +Il trasporto non è intercambiabile con i fornitori compatibili con OpenAI. Un modello Claude instradato tramite OpenRouter, LiteLLM o un altro gateway appartiene a quel profilo di gateway, non al profilo nativo Anthropic. + +## Risoluzione dei problemi + +- `401` o `403`: verificare l’ambito della chiave, l’accesso allo spazio di lavoro, la fatturazione e se la chiave appartiene allo spazio di lavoro Anthropic previsto. +- `404`: il Base URL è errato oppure l’ID del modello selezionato non è disponibile per l’account. +- Gli ID dei modelli Claude in stile gateway falliscono: spostare il profilo al fornitore di gateway corrispondente, poiché il Anthropic nativo richiede nomi di modello nativi. +- Le richieste lunghe falliscono in fase finale: ridurre la dimensione dell’output del modello per task o utilizzare un modello con un limite superiore noto di token di output. + +## Quando utilizzarlo + +Utilizzare Anthropic quando la qualità nella sintesi, nelle note di ricerca o nella scrittura strutturata è più importante del costo grezzo. Non utilizzarlo come fallback generico compatibile con OpenAI; il trasporto separato è l’aspetto fondamentale, e mescolare i protocolli rende più difficile la diagnosi. + +--- + +## Prossimi passi + +- [LLM Fornitori](/docs/providers/overview) -- Configurazione completa, modelli per task e logica di riprova +- [Risoluzione dei problemi](/docs/advanced/troubleshooting) -- Correzione degli errori 401/403 e dei problemi di connessione diff --git a/website/i18n/it/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/it/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..c83e888b --- /dev/null +++ b/website/i18n/it/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "Fornitori Cina" +description: "Configurare Qwen, DeepSeek, GLM, ecc." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Fornitori Cina + +<TLDR> +**Notemd supporta i fornitori della regione Cina e di origine Cina tramite endpoint per lo più compatibili con OpenAI.** L’elenco attuale include DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, MiniMax, Baidu Qianfan, SiliconFlow, Huawei Cloud MaaS e Z AI. Il vantaggio è l’accesso regionale e il controllo dei costi; il rischio riguarda i nomi dei modelli specifici per fornitore e le restrizioni di account. + +Questo fa parte della [Obsidian Guida alla gestione delle conoscenze AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Impostazioni + +Creare l’account del fornitore, generare una chiave API e poi selezionare la preimpostazione del fornitore Notemd corrispondente invece di utilizzare un profilo generico OpenAI. La preimpostazione include il Base URL predefinito, il modello, il modo di test API, il comportamento di scoperta dei modelli e qualsiasi campo UI specifico per il fornitore. + +Utilizzare qui una selezione aggressiva del modello per task. Ad esempio, mantenere DeepSeek o GLM nei flussi di lavoro che richiedono molto ragionamento, utilizzare Qwen o Moonshot per lavori ampi in lingua cinese e indirizzare i compiti di programmazione a Qwen Code quando quell’account espone i modelli per programmatori. + +## Endpoint e autenticazione + +| Fornitore | Modello predefinito | Base URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (richiesto ID endpoint) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**Nota:** Doubao richiede un ID endpoint Ark (formato: `ep-xxxxxxxx-xxxx-xxxx`) invece di un nome di modello standard. + +La maggior parte di questi fornitori utilizza l’ambiente di esecuzione condiviso compatibile con OpenAI, ma le semantiche degli account e dei modelli sono diverse. Mantenere il Base URL specifico per la preimpostazione a meno che non si sia verificato l’endpoint alternativo dell’account. + +## Scoperta dei modelli + +DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan e SiliconFlow utilizzano la scoperta dei modelli compatibile con OpenAI quando il fornitore supporta l’elenco. Huawei Cloud MaaS utilizza il modo `huaweicloud-modelarts-models` perché i metadati di deployment di ModelArts non sono identici a un elenco generico `/v1/models`. + +Non considerare un fallimento nella scoperta come prova che la chat sia impossibile. Alcuni fornitori consentono la chat limitando però i permessi sull’elenco dei modelli. In tal caso, mantenere un ID di modello esplicito nel profilo e verificare con il test di connessione. + +## Risoluzione dei problemi + +- L'autenticazione ha successo ma la chat fallisce: il nome del modello potrebbe essere al di fuori dei diritti o della regione dell'account. +- Doubao fallisce con un nome di modello normale: utilizzare l'ID dell'endpoint Ark nel campo modello quando la distribuzione lo richiede. +- Le risposte di ragionamento vengono troncate: verificare i token massimi di output specifici del fornitore e le impostazioni di token massimo basate sul modello di Notemd. +- La rete regionale varia: utilizzare l'endpoint della regione Cina del fornitore quando la macchina vault si trova in Cina; utilizzare l'endpoint internazionale solo quando sia l'account che il percorso di rete sono validi. + +## Quando utilizzarlo + +Utilizzare i fornitori cinesi quando la latenza regionale, l'accesso al pagamento/conto, la qualità del linguaggio cinese o i costi rappresentano la principale limitazione. Preferire i fornitori diretti OpenAI, Anthropic, Google o locali quando si necessita di un confine di protocollo più semplice o di una maggiore coerenza nella debug tra fornitori. + +--- + +## Prossimi passi + +- [LLM Fornitori](/docs/providers/overview) -- Configurazione completa, modelli per task e logica di riprova +- [Risoluzione dei problemi](/docs/advanced/troubleshooting) -- Correggere gli errori di connettività regionale e di autenticazione diff --git a/website/i18n/it/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/it/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..19629705 --- /dev/null +++ b/website/i18n/it/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "Configurare Google Gemini" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Provider Google + +<TLDR> +**Google utilizza il trasporto nativo del linguaggio generativo Gemini API.** La configurazione predefinita attuale è `gemini-2.0-flash-exp`, `https://generativelanguage.googleapis.com/v1` e `temperature: 0.5`. Non si tratta di un profilo compatibile con OpenAI. + +Questo fa parte della [Obsidian Guida alla gestione delle conoscenze AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Impostazioni + +Creare una chiave Cloud API di tipo Google AI Studio o Google con accesso a Gemini, aggiungere un profilo fornitore `Google` e mantenere la base del linguaggio generativo nativo URL. Utilizzare il profilo predefinito Gemini Flash per traduzioni rapide e flussi di lavoro di note ampi, poi sovrascrivere i modelli per task specifici quando si ha bisogno di un modello Gemini più grande o potente. + +Evitare di inserire gli ID dei modelli Gemini in un profilo compatibile con OpenAI a meno che non si stia utilizzando esplicitamente un gateway che esponga Gemini tramite un API compatibile con OpenAI. + +## Endpoint e autenticazione + +| Campo | Configurazione predefinita attuale | +|-------|----------------| +| Trasporto | `google` | +| Chiave API | Richiesto | +| Base URL | `https://generativelanguage.googleapis.com/v1` | +| Modello predefinito | `gemini-2.0-flash-exp` | +| Temperature | `0.5` | +| Test di connessione | Solo chat | + +Il runtime chiama `/models/{model}:generateContent?key={apiKey}`. La chiave viene passata come parametro di query poiché è così che l’endpoint nativo di Gemini è collegato nel plugin. + +## Scoperta dei modelli + +Google utilizza il modalità di scoperta `google-models`. La scoperta dovrebbe restituire i modelli Gemini disponibili per la chiave API; se il selezionatore è vuoto, verificare la chiave contro la stessa base URL e confermare che la famiglia di modelli sia abilitata per quell’account. + +I limiti noti dei token di output sono riconosciuti dal modello nel registro dei fornitori. Se una traduzione lunga o una spiegazione di diagramma viene troncata, selezionare un modello Gemini con una capacità di output maggiore o ridurre la dimensione dell’output richiesta. + +## Risoluzione dei problemi + +- `400`: l’ID del modello di solito non corrisponde alla rotta nativa di Gemini oppure la richiesta supera la forma supportata dal modello. +- `401` o `403`: verificare le restrizioni della chiave, l’abilitazione del progetto/API e se la chiave può accedere a Gemini. +- `404`: l’ID del modello non è disponibile nella versione API configurata. +- Gli esempi di gateway falliscono in questo profilo: utilizzare invece la configurazione predefinita del gateway anziché il fornitore nativo Google. + +## Quando utilizzarlo + +Utilizzare Google per traduzioni rapide, pulizia di grandi volumi di note e flussi di lavoro in cui il rapporto costo/performance di Gemini è migliore rispetto a OpenAI o Anthropic diretti. Preferire un altro fornitore per flussi di lavoro che richiedono l’elaborazione di modelli di ragionamento compatibili con OpenAI. + +--- + +## Prossimi passi + +- [LLM Fornitori](/docs/providers/overview) -- Configurazione completa, modelli per task e logica di riprova +- [Traduzione](/docs/features/translation) -- Gemini Flash è consigliato per i compiti di traduzione ad alto volume diff --git a/website/i18n/it/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/it/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..5d44d9f9 --- /dev/null +++ b/website/i18n/it/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "Modelli locali" +description: "Configura Ollama e i LLM locali" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# Modelli locali + +<TLDR> +**I fornitori locali mantengono il contenuto delle note lontano dai API ospitati.** La strada locale attuale copre Ollama con il trasporto nativo `ollama` e LMStudio tramite il trasporto compatibile con OpenAI. Non è necessaria alcuna chiave API per nessuna delle due strade, ma il server locale e il modello devono già essere in esecuzione. + +Questo fa parte della [Obsidian Guida alla gestione delle conoscenze AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Impostazioni + +Per Ollama, installa Ollama, scarica il modello desiderato, avvia il server e aggiungi un profilo di fornitore `Ollama` in Notemd. Per LMStudio, carica un modello nel server locale di LM Studio e aggiungi un profilo di fornitore `LMStudio`. + +I modelli locali sono dipendenze operative, non solo impostazioni. Notemd può chiamare soltanto ciò che il processo locale espone, quindi verifica il modello locale al di fuori di Obsidian prima di debuggare il plugin. + +## Endpoint e autenticazione + +| Fornitore | Base URL | Modello predefinito | Chiave API | Note | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | Non richiesto | Streaming NDJSON; scoperta dei modelli tramite `/api/tags` | +| LMStudio | `localhost:1234/v1` | `local-model` | Non richiesto | Invia `"EMPTY"` come token di autenticazione; compatibile con OpenAI | + +Ollama utilizza la strada nativa `/chat` sotto la sua Base URL. LMStudio segue la rotta compatibile con OpenAI di `chat/completions` e richiede un modello caricato nel server locale. + +## Scoperta dei modelli + +Ollama utilizza il modo di scoperta `ollama-tags` e elenca le etichette scaricate localmente. LMStudio utilizza la scoperta dei modelli compatibile con OpenAI quando il suo server espone `/v1/models`. + +Se la scoperta non restituisce nulla, di solito si tratta di un problema di stato del server locale: il modello non è stato scaricato, non caricato, o il server è collegato a un host/port diverso da quello indicato nel profilo. + +## Risoluzione dei problemi + +- Connessione rifiutata: avviare Ollama o LM Studio e verificare il porto configurato. +- Modello non trovato: recuperare l’etichetta Ollama o caricare il modello LM Studio prima di effettuare i test. +- Output lento: ridurre la dimensione del contesto, utilizzare un modello locale più piccolo o inviare le attività pesanti a un provider ospitato. +- Risposte vuote o malformate: assicurarsi che il profilo del provider selezionato sia compatibile con il protocollo del server locale; Ollama e LMStudio non sono intercambiabili. + +## Quando utilizzarlo + +Utilizzare provider locali per vault privati, lavoro offline o attività ripetitive a basso costo. Non si deve dare per scontato che il locale sia automaticamente migliore per la sintesi di ricerca o il ragionamento prolungato; la qualità del modello e i limiti hardware rappresentano il compromesso. + +--- + +## Prossimi passi + +- [LLM Provider](/docs/providers/overview) -- Configurazione completa e impostazione del modello per ogni task +- [Risoluzione dei problemi](/docs/advanced/troubleshooting) -- Correggere gli errori di connessione rifiutata quando il server locale non è in esecuzione diff --git a/website/i18n/it/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/it/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..796462dc --- /dev/null +++ b/website/i18n/it/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "Configura OpenAI (GPT-4, GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# Provider OpenAI + +<TLDR> +**OpenAI utilizza il trasporto compatibile con OpenAI condiviso.** La impostazione predefinita attuale è `gpt-4o`, `https://api.openai.com/v1`, `temperature: 0.5` e il test di connessione `models-then-chat`. Utilizza questa pagina quando hai bisogno di una semantica dei campi precisa; utilizza la panoramica [LLM Provider](/docs/providers/overview) per la selezione a livello di categoria. + +Questo fa parte della [Obsidian Guida alla gestione delle conoscenze AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Impostazioni + +Crea una chiave OpenAI API, aggiungi un profilo provider `OpenAI` nelle impostazioni Notemd e mantieni il Base URL predefinito a meno che non tu intenda puntare intenzionalmente a un gateway compatibile con OpenAI. Il campo del modello può rimanere su `gpt-4o` per lavori generali oppure essere sostituito da un altro ID di modello OpenAI che il tuo account può chiamare. + +Utilizza modelli specifici per la gestione dei costi: conserva modelli più potenti per la ricerca, l’estrazione di concetti e la ristrutturazione di testi lunghi; utilizza modelli più economici o più veloci per la traduzione, le suggerimenti di link e i riassunti brevi. + +## Endpoint e autenticazione + +| Campo | Configurazione predefinita attuale | +|-------|----------------| +| Trasporto | `openai-compatible` | +| Chiave API | Richiesto | +| Base URL | `https://api.openai.com/v1` | +| Modello predefinito | `gpt-4o` | +| Temperature | `0.5` | +| Test di connessione | `/models`, poi `/chat/completions` | + +Notemd normalizza i Base URL compatibili con OpenAI prima di aggiungere `chat/completions` o `models`. Non includere un `/chat/completions` finale nel Base URL; ciò crea un percorso duplicato. + +## Scoperta dei modelli + +OpenAI utilizza il percorso generico di scoperta dei modelli compatibile con OpenAI. Le impostazioni UI chiedono prima `/v1/models`, poi verificano il modello selezionato con una richiesta di chat leggera. Se la scoperta fallisce ma la chat funziona comunque, verifica se la tua chiave ha l’autorizzazione model-list o se un gateway blocca l’elenco dei modelli. + +I modelli di ragionamento vengono trattati come un caso limite del protocollo: Notemd fonde il contenuto della prompt del sistema e dell’utente per generare ID di ragionamento OpenAI che rifiutano un ruolo separato `system`, e ne espongono `reasoningEffort` solo laddove la definizione del provider lo supporta. + +## Risoluzione dei problemi + +- `401` o `403`: verifica la chiave, l’accesso al progetto, lo stato di fatturazione e se il modello selezionato è abilitato per la chiave. +- `404` nella chat: il Base URL è solitamente errato o include già `/chat/completions`. +- Il modello appare nelle documentazioni ma non nel selettore: l’accesso model-list e l’accesso chat sono punti di fallimento separati; verifica manualmente l’ID esatto del modello nel profilo del provider. +- Il modello di ragionamento rifiuta i messaggi: utilizza un ID di modello coperto dal percorso di gestione della ragionamento OpenAI oppure passa a un modello di chat non basato sulla ragionamento. + +## Quando utilizzarlo + +Utilizza OpenAI quando si desidera il percorso predefinito ospitato più prevedibile, quando la scoperta di `/v1/models` è importante, o quando un flusso di lavoro dipende dalle semantiche del modello di ragionamento OpenAI. Preferisci un gateway o un provider locale quando la routing, la privacy o i controlli dei costi sono più importanti rispetto al comportamento diretto di OpenAI API. + +--- + +## Prossimi passi + +- [LLM Fornitori](/docs/providers/overview) -- Configurazione completa, modelli per task e logica di riprova +- [Risoluzione dei problemi](/docs/advanced/troubleshooting) -- Correggi gli errori 401/403 e i limiti di frequenza diff --git a/website/i18n/it/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/it/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..f65426c4 --- /dev/null +++ b/website/i18n/it/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "Fornitori LLM" +description: "Configura 36 fornitori LLM — cloud, gateway e local — con selezione del modello per task" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Fornitori LLM + +<TLDR> +**Notemd supporta 36 fornitori LLM su 4 tipi di trasporto.** Tutte le chiamate API utilizzano il formato grezzo HTTP (senza SDK) con riprovazione automatica, fallback di trasporto e caching delle risposte per 5 minuti. La selezione del modello per task permette di utilizzare modelli economici per l’estrazione dei concetti e modelli potenti per la ricerca. Non è necessaria alcuna chiave API per i fornitori locali (Ollama, LMStudio). +</TLDR> + +Questo fa parte della [Obsidian Guida alla gestione delle conoscenze AI](/docs/pillar-ai-knowledge). + +## Categorie di fornitore + +### Fornitori cloud + +| Fornitore | Base predefinita URL | Modello predefinito | Temperature | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### Fornitori gateway/proxy + +| Fornitore | Base predefinita URL | Modello predefinito | Note | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | Aggiunge intestazioni `HTTP-Referer` + `X-Title` | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | Aggiunge intestazione `X-GitHub-Api-Version` | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | Aggiunge intestazione `APP-Code` | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | Chiave opzionale API | +| **Nuovo API** | `localhost:3000/v1` | `gpt-4.1` | Chiave opzionale API | +| **OpenAI Compatible** | (configurato dall'utente) | `your-model-id` | Endpoint personalizzato | + +### Fornitori Cina + +| Fornitore | Base predefinita URL | Modello predefinito | Note | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | Orientato alla programmazione | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (richiesto ID endpoint) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | Endpoint di Zhipu, Cina | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | Zhipu, endpoint internazionale | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | Piattaforma di hosting per modelli | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao richiede un ID di endpoint Ark** (formato: `ep-xxxxxxxx-xxxx-xxxx`). Il placeholder predefinito deve essere sostituito. + +### Fornitori locali + +| Fornitore | Base predefinita URL | Modello predefinito | Note | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | Nessuna chiave API. Streaming NDJSON. Scoperta dei modelli tramite `/api/tags` | +| **LMStudio** | `localhost:1234/v1` | `local-model` | Invia `"EMPTY"` come token di autenticazione. Scoperta compatibile con OpenAI | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (configurato dall'utente) | `gpt-4o` | Nome della distribuzione in URL. Intestazione `api-key` | + +## Selezione del modello per attività + +Notemd supporta fornitori e modelli indipendenti per ogni task. Abilitare con `useMultiModelSettings: true`. + +### Task disponibili + +| Compito | Chiave delle Impostazioni | Fornitore Predefinito | +|------|-------------|-----------------| +| Aggiungere Link (inserimento di link wiki) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| Ricerca (ricerca web + riassunto) | `researchProvider` / `researchModel` | DeepSeek | +| Generare dal Titolo | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| Traduzione | `translateProvider` / `translateModel` | DeepSeek | +| Generazione di Diagrammi | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| Estrazione dei Concetti | `extractConceptsProvider` / `Model` | DeepSeek | +| Estrazione del Testo Originale | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### Ordine di Risoluzione + +1. Se `useMultiModelSettings` è attivo → utilizzare il fornitore e il modello specifici per il compito +2. Se l’override del modello del compito è vuoto → tornare al modello predefinito del fornitore +3. Se il fornitore del compito è invalido → tornare al `activeProvider` globale +4. Se `useMultiModelSettings` è disattivato → tutti i task utilizzano il globale `activeProvider` + +### Configurazioni consigliate + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## Architettura di chiamata di API + +### Strati di trasporto + +1. **Obsidian `requestUrl`** — primario (integrato, funziona su tutte le piattaforme) +2. **Desktop HTTP** — moduli Node.js `http`/`https` (streaming + richieste lunghe) +3. **Web `fetch`** — soluzione di fallback quando i moduli Node.js non sono disponibili + +Il plugin passa automaticamente da un trasporto all’altro in caso di errori temporanei di rete. + +### Logica di ripetizione + +- **Modalità normale** (`enableStableApiCall: false`): Un’unica tentativa. In caso di fallimento temporaneo, si passa automaticamente a una ripetizione stabile. +- **Modalità di ripetizione stabile** (`enableStableApiCall: true`): Fino a 4 tentativi (1 + 3 ripetizioni) con intervalli di 5 secondi. +- **Errori temporanei che attivano la ripetizione**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **Non ripetibili**: HTTP 400, 401, 403, 404 + +### Caching delle risposte + +Cache in memoria LRU da 5 minuti, chiaviata da provider + modello + temperatura + prompt + contenuto. Le richieste identiche successive entro 5 minuti restituiscono immediatamente i risultati memorizzati. + +### Gestione del modello di ragionamento + +I modelli che non supportano il ruolo `system` (DeepSeek R1, OpenAI o1/o3/o4/gpt-5) combinano automaticamente le istanze di sistema e utente in un unico messaggio utente. + +Specifico per DeepSeek: `thinkingEnabled` aggiunge `{ thinking: { type: 'enabled' } }` alla richiesta. `reasoningEffort` (basso/medio/alto) viene passato come `reasoning_effort`. Verifica che i token massimi di output siano ≥ 8000 quando è attiva la funzione di riflessione. + +### Stima dei token + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — euristica di 4 caratteri per token. Utilizzata per applicare la regola `maxResearchContentTokens` prima dell’invio a LLM. + +Non è implementato il tracciamento dei costi. + +## Scoperta dei modelli + +| Modalità | Fornitori | Endpoint | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | Elenco modelli API | +| `anthropic-models` | Anthropic | Elenco modelli API | +| `openai-compatible-models` | DeepSeek, Qwen, Mistral, ecc. | `/v1/models` | +| `openrouter-models` | OpenRouter | Elenco modelli API | +| `github-models` | GitHub Models | Inferenza API | +| `none` | Azure OpenAI | Disattivato (richiede nome di deployment) | + +## Avvio rapido + +1. **Scegli un fornitore** — DeepSeek (Cina), OpenAI (Internazionale) o Ollama (Locale/Gratuito) +2. **Inserisci la chiave API** — Impostazioni → Notemd → Fornitore → Chiave API +3. **Testa la connessione** — Clicca sul pulsante di test +4. **Opzionale: modelli per task** — Abilita `useMultiModelSettings` e configurali individualmente + +Per Ollama: non è necessaria alcuna chiave API. Assicurati solo che `ollama serve` sia in esecuzione. + +--- + +## Prossimi passi + +- 📝 [Note concettuali](/docs/features/concept-notes) — Utilizza il modello di estrazione per task +- 🎨 [Diagrammi](/docs/features/diagrams) — Utilizza il modello di diagramma per task +- 🔍 [Ricerca](/docs/features/research) — Utilizza il modello specifico per la ricerca +- ⚙️ [Configurazione](/docs/getting-started/configuration) — Riferimento completo alle impostazioni diff --git a/website/i18n/it/docusaurus-theme-classic/footer.json b/website/i18n/it/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/it/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/it/docusaurus-theme-classic/navbar.json b/website/i18n/it/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/it/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/ms/code.json b/website/i18n/ms/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/ms/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/ms/docusaurus-plugin-content-docs/current.json b/website/i18n/ms/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/ms/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/ms/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/ms/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..41d6c277 --- /dev/null +++ b/website/i18n/ms/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "Pemprosesan Secara Pukal" +description: "Memproses berbilang fail dengan cekap" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# Pemprosesan Secara Pukal + +<TLDR> +**Notemd memproses folder keseluruhan dalam satu tindakan dengan kekonduksian yang boleh dikonfigurasi dan kawalan penggantian.** Klik kanan pada folder untuk menambah pautan wiki secara pukal, mengekstrak konsep, menjalankan penyelidikan, atau menterjemahkan semua nota di dalamnya. Had kekonduksian mengelakkan ralat had kelajuan API. Kemajuan dilaporkan untuk setiap fail. Tingkah laku penggantian boleh dikonfigurasi: abaikan yang sedia ada, tambah, atau gantikan. Fail yang gagal akan direkodkan tanpa menghentikan pemprosesan pukal. + +Ini merupakan sebahagian daripada [Obsidian Panduan Pengurusan Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Gambaran Keseluruhan + +Pemprosesan secara pukal menukar folder nota menjadi satu operasi tunggal. Daripada membuka setiap nota dan menjalankan arahan secara berasingan, anda hanya perlu klik kanan pada folder dan pilih tugas yang diinginkan. Notemd akan melalui setiap fail `.md`, melaksanakan tindakan yang dipilih, dan melaporkan kemajuan dalam masa nyata. + +Ciri ini sangat penting untuk pengekstrakan pengetahuan di seluruh vault. Selepas mengimport puluhan fail PDF, contohnya, dengan menambah pautan secara pukal diikuti oleh pengekstrakan konsep secara pukal, graf pengetahuan anda dapat dibina dalam masa beberapa minit sahaja, bukan jam. + +## Cara Ia Berfungsi + +### Model Pelaksanaan Secara Pukal + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **Pengumpulan fail** -- Notemd akan menyemak folder sasaran secara rekursif (atau hanya pada tahap atasan, bergantung pada tetapan) dan mengumpulkan semua fail `.md`. +2. **Pembahagian kekonduksian** -- Fail-fail dibahagikan kepada kumpulan kecil berdasarkan tetapan `batchConcurrency`. Setiap kumpulan dijalankan secara selari; kumpulan lain pula dijalankan secara berurutan. +3. **Pelaksanaan** -- Setiap fail diproses menggunakan logik yang sama seperti arahan untuk fail tunggal. Tetapan penyedia dan model untuk setiap tugas akan dihormati. +4. **Laporan kemajuan** -- Pemberitahuan toast akan dikemaskini selepas setiap fail selesai, menunjukkan kadar kemajuan `N / Total`. +5. **Pengendalian ralat** -- Jika sesuatu fail gagal (ralat API, masa tamat sambungan rangkaian, dan sebagainya), ralat tersebut akan direkodkan dan pemprosesan pukal akan diteruskan. Ringkasan akhir akan menyenaraikan semua fail yang gagal. +6. **Penyelesaian** -- Pemberitahuan toast ringkasan akan melaporkan jumlah keseluruhan yang diproses, kejayaan, dan kegagalan. + +### Kelakuan Menulis Semula + +Apabila memproses fail yang sudah mengandungi pautan wiki, nota konsep, atau terjemahan, kelakuan Notemd bergantung pada tetapan penulisan semula: + +| Mod | Kelakuan | +|------|----------| +| **Lompat** | Kandungan sedia ada tidak diubah. Hanya fail yang belum diubah sahaja diproses. | +| **Tambah** (lazim) | Kandungan baru ditambahkan. Pautan wiki, konsep, atau terjemahan sedia ada akan dipelihara. | +| **Gantikan** | Fail diproses sepenuhnya semula. Semua pengubahsuaian Notemd sebelum ini akan ditulis semula. | + +Untuk pautan wiki khususnya: jika sebuah nota sudah mengandungi `[[wiki-links]]`, mod **Lompat** akan membiarkannya begitu sahaja, manakala mod **Gantikan** akan menghantar semula keseluruhan nota ke LLM untuk penyisipan pautan yang baru. Gunakan **Lompat** untuk pemprosesan berperingkat dan **Gantikan** untuk pemprosesan semula selepas kemas kini model. + +### Kawalan Serentak + +Tetapan `batchConcurrency` mengehadkan panggilan API secara serentak. Ini mengelakkan ralat had kelajuan (HTTP 429) semasa memproses folder besar pada penyedia dengan kuota yang ketat. + +| Serentak | Disyorkan Untuk | Kesan Had Kelajuan Biasa | +|-------------|----------------|---------------------------| +| `1` | Tahap percuma, penyedia yang ketat | Tiada (siri) | +| `3` (lalai) | Kebanyakan penyedia awan | Rendah | +| `5` | Ollama (setempat), tahap yang murah hati | Tiada / Rendah | +| `10` | Model setempat dengan inferensi yang cepat | Tiada | + +Jika anda menghadapi ralat 429 semasa pemprosesan berkumpulan, kurangkan kekonduksian kepada 1 atau 2. + +## Konfigurasi + +| Pengaturan | Lalai | Kesan | +|---------|---------|--------| +| `batchConcurrency` | `3` | Jumlah panggilan API selari maksimum semasa operasi folder | +| `batchOverwriteExisting` | `false` | Gantikan kandungan Notemd yang sedia ada. `false` bermaksud mod tambahan. | +| `batchSkipProcessed` | `false` | Langkau fail yang sudah mengandungi penanda Notemd (contohnya, pautan wiki) | +| `batchRecursive` | `true` | Sertakan subdirektori semasa memindai folder | +| `enableStableApiCall` | `false` | Aktifkan logik percubaan semula (sehingga 4 percubaan) untuk setiap fail dalam kumpulan | + +### Model Mengikut Tugas dalam Kumpulan + +Setiap operasi kumpulan menggunakan model yang sesuai mengikut tugas. batch-add-links menggunakan `addLinksProvider`, batch-research menggunakan `researchProvider`, dan sebagainya. Ini bermakna anda boleh gunakan model murah untuk operasi berskala besar dan simpan model mahal untuk tugas yang memerlukan kualiti tinggi. + +## Contoh + +Anda mempunyai sebuah folder `papers/` yang mengandungi 40 nota penyelidikan yang diimport. Anda ingin menambah pautan wiki dan mengekstrak konsep daripada kesemuanya: + +1. Klik kanan pada folder `papers/` +2. Pilih **"Notemd: Process folder (add links)"** +3. Notemd akan menyemak folder tersebut, mencari 40 fail `.md`, dan memproses 3 fail setiap kali (konvergensi lalai) +4. Tetingkap kemajuan akan menunjukkan: `12/40 files processed...` +5. Selepas kira-kira 3 minit, tetingkap ringkasan akan melaporkan: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. Ulangi dengan **"Notemd: Process folder (extract concepts)"** untuk membuat nota konsep bagi kesemua 40 fail tersebut + +Fail yang gagal akan direkodkan. Anda boleh menjalankannya semula hanya pada fail tersebut kemudian. + +## Tips + +- **Mulakan dengan konvergensi yang rendah** -- Jika anda tidak pasti tentang had kelajuan penyedia perkhidmatan, mulakan dengan `1` dan tingkatkan secara beransur-ansur. +- **Gunakan mod lompat untuk kemas kini berperingkat** -- Selepas kumpulan penuh pertama, tukar kepada `batchSkipProcessed: true` supaya hanya nota baru yang diproses pada jalan-jalan seterusnya. +- **Aktifkan panggilan API yang stabil** -- `enableStableApiCall: true` menambah logik percubaan semula yang memulihkan diri daripada ralat rangkaian sementara semasa kumpulan yang panjang. +- **Jalankan semula selepas kemas kini model** -- Jika anda beralih ke model yang lebih baik, tetapkan `batchOverwriteExisting: true` dan jalankan semula untuk mendapatkan pautan dan konsep yang lebih baik. + +--- + +## Langkah Seterusnya + +- [Workflows](/docs/features/workflows) -- Susun tugas kumpulan menjadi butang sidebar satu klik +- [Custom Prompts](/docs/advanced/custom-prompts) -- Sesuaikan promp untuk pengekstrakan kumpulan +- [Troubleshooting](/docs/advanced/troubleshooting) -- Perbaiki ralat had kelajuan dan kegagalan sambungan semasa jalan-jalan kumpulan +- [Pembekal LLM](/docs/providers/overview) -- Rujukan konfigurasi model mengikut tugas diff --git a/website/i18n/ms/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/ms/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..d6816efc --- /dev/null +++ b/website/i18n/ms/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "Prompt Khas" +description: "Sesuaikan prompt LLM mengikut keperluan anda" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# Prompt Khas + +<TLDR> +**Notemd membolehkan anda menggantikan prompt LLM lalai untuk setiap jenis tugas.** Prompt khas memberi anda kawalan ke atas apa yang akan diberi keutamaan oleh model: anda boleh mengehadkan pengeluaran konsep kepada disiplin tertentu, mengubah gaya pautan, atau mengarahkan nada terjemahan. Pembolehubah prompt seperti `{{content}}` dan `{{concept}}` akan digantikan semasa pelaksanaan. Ciri domain pembelajaran yang ditumpukan akan menambah awalan bidang kajian anda untuk membataskan hasil pengeluaran secara automatik. + +Ini merupakan sebahagian daripada [Obsidian Panduan Pengurusan Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Gambaran Keseluruhan + +Prompt lalai Notemd ditulis untuk kerja pengetahuan guna umum. Ia berfungsi dengan baik merentas pelbagai domain, tetapi masih memerlukan penambahbaikan khusus untuk setiap domain. Prompt khas membolehkan anda memberitahu LLM secara tepat bagaimana ia harus berkelakuan untuk kes penggunaan anda — sama ada untuk mengekstrak hanya istilah perubatan, menghubungkan hanya entiti bernama, atau menterjemahkan dalam gaya rasmi. + +Prompt khas tidak menggantikan keseluruhan prompt sistem. Ia menggantikan atau menambah bahagian arahan khusus tugas sambil mengekalkan format output struktur (contohnya baris `CONCEPT:`, sintaks pautan wiki) yang diperlukan oleh Notemd untuk pemprosesan. + +## Cara Ia Berfungsi + +### Arkitektur Prompt + +Setiap tugas Notemd mengikut struktur prompt yang sama: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **Prompt sistem asas** -- Menetapkan personaliti pembantu. Tidak boleh digantikan. +2. **Domain pembelajaran yang ditumpukan** -- Menambah awalan `Relevant Fields: [medicine / law / computer science / ...]` untuk membataskan skop. Ini merupakan suis tetapan, bukan prompt mentah. +3. **Prompt tugas khas** -- Menggantikan arahan tugas lalai (contohnya jenis konsep yang perlu diekstrak, sejauh mana pautan perlu dibuat). +4. **Format output** -- Peraturan struktur (baris `CONCEPT:`, format pautan wiki). Sentiasa ditambah oleh Notemd untuk memastikan ia boleh diproses. +5. **Kandungan** -- Teks nota sebenar, yang digantikan semasa pelaksanaan melalui `{{content}}`. + +### Pembolehubah Prompt + +Pembolehubah akan digantikan semasa masa pelaksanaan. Pembolehubah yang tersedia berbeza mengikut tugas: + +| Pembolehubah | Tugas | Digantikan Dengan | +|----------|-------|---------------| +| `{{content}}` | Semua | Teks nota atau pilihan | +| `{{concept}}` | Templat nota konsep | Nama konsep yang diekstrak | +| `{{description}}` | Templat nota konsep | Penerangan konsep yang dijana oleh LLM | +| `{{backlinks}}` | Templat nota konsep | Senarai nota sumber dengan pautan | +| `{{date}}` | Templat nota konsep | Tarikh semasa (YYYY-MM-DD) | +| `{{language}}` | Terjemahan | Bahasa output sasaran | +| `{{source}}` | Templat nota konsep | Nama fail asal nota | + +### Domain Pembelajaran Terfokus + +Ciri pembelajaran terfokus merupakan pintasan untuk menentukan skop domain. Daripada menulis promp yang khusus yang menyebut bidang anda, anda tetapkan `focusedLearningDomain` dalam tetapan: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +Ini akan menambahkan `Relevant Fields: [medicine]` di hadapan promp pengeluaran, menyebabkan LLM mengutamakan konsep yang berkaitan dengan domain dan menekan konsep umum. Ia lebih ringan berbanding promp khusus sepenuhnya dan berfungsi untuk semua tugas pengeluaran. + +## Konfigurasi + +| Pengaturan | Lalai | Kesan | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | Atur semula promp tugas tambah pautan lalai | +| `customExtractConceptsPrompt` | `''` | Atur semula promp pengeluaran konsep lalai | +| `customResearchPrompt` | `''` | Atur semula promp penyelidikan + ringkasan lalai | +| `customTranslatePrompt` | `''` | Atur semula promp terjemahan lalai | +| `customDiagramPrompt` | `''` | Atur semula promp penjanaan diagram lalai | +| `focusedLearningDomain` | `''` | Tambahkan konteks disiplin di hadapan promp pengeluaran dan pautan | +| `extractConceptsMinimalTemplate` | `true` | Guna templat nota konsep hanya tajuk (mempengaruhi skop templat `{{concept}}`) | +| `customConceptNoteTemplate` | `''` | Atur semula templat fail nota konsep dengan sokongan pembolehubah penuh | + +**Apabila medan promp khusus kosong, promp lalai yang sedia ada akan digunakan.** + +## Contoh + +Anda ialah penyelidik perubatan yang mengeluarkan konsep daripada nota ujian klinikal. Promp lalai mengeluarkan kata nama umum bersama istilah perubatan, yang menyebabkan folder konsep anda menjadi kacau. + +**Penyelesaian:** Tetapkan domain pembelajaran terfokus dan promp pengeluaran khusus. + +1. Tetapkan `focusedLearningDomain` kepada `medicine` +2. Tetapkan `customExtractConceptsPrompt` kepada: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +Sekarang apabila anda menjalankan "Extract concepts" pada nota klinikal, LLM menghasilkan: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +Bukan seperti tingkah laku lalai yang mungkin juga mengekstrak istilah umum yang tidak diingini seperti "hospital" atau "month". + +## Tips + +- **Mulakan dengan domain pembelajaran yang ditumpukan** sebelum menulis prompt khas sepenuhnya. Ia meliputi 80% kes penggunaan dengan satu tetapan sahaja. +- **Pertahankan format output** -- Jangan pernah padam arahan format seperti "satu per baris" atau "CONCEPT: prefix" daripada prompt khas. Pemproses Notemd bergantung pada arahan tersebut. +- **Uji dengan satu nota terlebih dahulu** -- Prompt khas boleh memberi kesan yang tidak dijangka terhadap keluasan ekstraksi. Sahkan pada satu nota sebelum pemprosesan berkumpulan. +- **Jadikan prompt ringkas** -- Prompt khas yang terlalu panjang akan menggunakan lebih banyak token dan boleh mengurangkan fokus model. + +--- + +## Langkah Seterusnya + +- [Wiki-Links](/docs/features/wiki-links) -- Apa yang akan dipautkan apabila anda menyesuaikan prompt add-links +- [Concept Notes](/docs/features/concept-notes) -- Templat nota konsep dan pembolehubah `{{concept}}` +- [Batch Processing](/docs/advanced/batch-processing) -- Terapkan prompt khas ke seluruh folder +- [Troubleshooting](/docs/advanced/troubleshooting) -- Perbaiki masalah di mana prompt khas menghasilkan output yang tidak dijangka diff --git a/website/i18n/ms/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/ms/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..580d3f85 --- /dev/null +++ b/website/i18n/ms/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "Pemecahan masalah" +description: "Isu biasa dan penyelesaiannya" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Pemecahan masalah + +<TLDR> +**Kebanyakan Notemd isu tergolong dalam empat kategori: masalah utama API, sambungan rangkaian, ralat pengesahan (401/403), dan had kelajuan (429).** Ujian sambungan terbina dalam serta panel diagnostik dapat mengenal pasti punca asal dengan cepat. Halaman ini merangkumi setiap mesej ralat biasa, punca ia berlaku, dan cara memperbaikinya. Untuk isu yang tidak disenaraikan di sini, laporkannya di GitHub Issues bersama output diagnostik. + +Ini merupakan sebahagian daripada [Obsidian Panduan Pengurusan Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Gambaran Keseluruhan + +Notemd bergantung pada perkhidmatan luaran -- penyedia LLM dan alat carian API -- jadi kebanyakan masalah berpunca dari luar plugin itu sendiri. Panel diagnostik dalam tetapan menyediakan pandangan terstruktur bagi panggilan terakhir API, termasuk permintaan URL, status respons, dan badan ralat. Sentiasa periksa ia terlebih dahulu sebelum menyiasat lebih lanjut. + +## Cara Ia Berfungsi: Diagnostik + +### Ujian Sambungan + +Setiap bahagian konfigurasi penyedia mempunyai butang **“Uji Sambungan”**. Dengan mengkliknya, permintaan API yang minimum dihantar (biasanya senarai model atau penyelesaian ringkas) dan laporan kejayaan atau ralat HTTP tertentu akan diberikan. Ini merupakan cara paling cepat untuk memastikan kunci API dan asas URL anda betul. + +### Panel Diagnostik + +**Tetapan --> Notemd --> Diagnostik** menunjukkan: + +| Medan | Kandungan | +|-------|---------| +| Penyedia Terakhir | Penyedia mana yang dipanggil terakhir | +| Model Terakhir | Model mana yang dipanggil terakhir | +| Status terakhir | Kod status HTTP atau ralat penghantaran | +| Ralat terakhir | Mesej ralat asli daripada API | +| Permintaan terakhir URL | Seluruh URL permintaan terakhir (kunci API dipadamkan) | +| Kandungan respons terakhir | Kandungan respons yang dipotong (500 aksara pertama) | + +Salin output diagnostik penuh semasa melaporkan masalah di GitHub. + +## Ralat biasa + +### Kunci API tidak sah atau hilang + +**Simptom:** HTTP 401 atau "Kunci API yang diberikan tidak betul" + +**Punca:** Kunci API hilang, mengandungi ruang kosong, atau milik penyedia yang berbeza. + +**Penyelesaian:** +1. Semak bahawa kunci tiada ruang di awal/akhir +2. Pastikan kunci sepadan dengan penyedia yang dipilih (kunci OpenAI tidak akan berfungsi dengan Anthropic) +3. Semak sama ada akaun anda mempunyai kredit atau langganan yang aktif +4. Klik **"Test Connection"** untuk mengesahkan + +### Ralat Rangkaian / Sambungan + +**Gejala:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**Punca:** Titik hujung API tidak dapat diakses dari mesin anda. + +**Penyelesaian:** +1. Semak sambungan internet anda +2. Jika berada di belakang proxy atau firewall, pastikan domain API tidak disekat +3. Untuk Ollama: sahkan `ollama serve` sedang berjalan (`ollama list` sepatutnya mengembalikan model) +4. Untuk LMStudio: sahkan pelayan sedang berjalan pada `localhost:1234` +5. Cuba kaedah penghantaran yang berbeza -- pengguna mudah alih harus pastikan kaedah penghantaran `requestUrl` aktif +6. Aktifkan `enableStableApiCall` untuk percubaan semula automatik bagi ralat sementara + +### 403 Dilarang + +**Gejala:** HTTP 403 + +**Punca:** Kunci API anda sah tetapi tidak mempunyai kebenaran untuk sumber yang diminta. + +**Penyelesaian:** +1. Beberapa model memerlukan akses khas (contohnya, GPT-4 melalui Azure memerlukan nama penempatan) +2. Beberapa penyedia mengehadkan model mengikut tahap pelan -- semak akaun anda +3. Had serantau mungkin dikenakan (beberapa penyedia di China menyekat IP antarabangsa dan sebaliknya) +4. Sahkan nama model ditulis dengan betul (contohnya, `gpt-4o` bukan `gpt-4o-mini` apabila model mini adalah satu-satunya yang dibenarkan oleh pelan anda) + +### Had kelajuan (429) + +**Gejala:** HTTP 429 atau “Had kelajuan telah melebihi” + +**Punca:** Terlalu banyak permintaan dalam tempoh masa yang singkat. + +**Penyelesaian:** +1. Kurangkan `batchConcurrency` kepada `1` atau `2` +2. Tunggu beberapa minit sebelum mencuba semula +3. Semak dokumentasi had kelajuan penyedia anda untuk tahap pelan anda +4. Aktifkan `enableStableApiCall` untuk percubaan semula automatik dengan penundaan +5. Pertimbangkan untuk beralih ke penyedia dengan had yang lebih tinggi (DeepSeek, Ollama) + +### Model Tidak Ditemui + +**Gejala:** “Model tidak ditemui” atau HTTP 404 + +**Punca:** Nama model tidak wujud pada penyedia yang dipilih. + +**Penyelesaian:** +1. Klik **"Get Model List"** untuk melihat semua model yang tersedia untuk penyedia anda +2. Nama beberapa model berubah dari semasa ke semasa -- sahkan nama terkini dalam dokumentasi penyedia +3. Untuk Ollama: jalankan `ollama list` untuk melihat model yang telah dipanggil; hanya model yang telah dimuat turun sahaja yang tersedia + +### Tiada Pautan / Tiada Konsep Dijana + +**Gejala:** Arahan berjalan tetapi tidak menghasilkan sebarang output + +**Punca:** LLM mengembalikan respons kosong atau tidak boleh diproses. + +**Penyelesaian:** +1. Semak panel diagnostik untuk melihat respons LLM yang sebenar +2. Cuba gunakan model yang lebih berkuasa (beberapa model kecil sukar menghasilkan output terstruktur) +3. Pastikan nota mempunyai kandungan yang mencukupi (>50 perkataan) +4. Semak prompt khas anda untuk arahan yang bercanggah +5. Matikan penindasan sinonim sementara waktu untuk melihat sama ada ia menapis terlalu ketat + +### ID Titik Akhir Doubao Tidak Ada + +**Gejala:** Ralat apabila menggunakan penyedia ByteDance Doubao + +**Punca:** Doubao memerlukan ID titik akhir Ark (format: `ep-xxxxxxxx-xxxx-xxxx`) bukannya nama model. + +**Pembaikan:** Gantikan model penanda tempat lalai dengan ID titik hujung sebenar anda daripada konsol Volcengine. + +## Konfigurasi + +| Tetapan Diagnostik | Lokasi | Tujuan | +|--------------------|----------|---------| +| **Uji Sambungan** | Bahagian Provider dalam Tetapan | Semak kunci API dan sambungan | +| **Dapatkan Senarai Model** | Bahagian Provider dalam Tetapan | Pastikan model mana yang boleh diakses | +| `enableStableApiCall` | Tetapan --> Lanjutan | Aktifkan percubaan semula dengan backoff | +| `batchConcurrency` | Tetapan --> Batch | Kawal keserentakan untuk elakkan had kelajuan | + +## Cara Melaporkan Isu + +Jika isu anda tidak disenaraikan di atas: + +1. Buka **Tetapan --> Notemd --> Diagnostik** +2. Salin hasil diagnostik sepenuhnya +3. Buka isu GitHub di [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +4. Sertakan: versi Obsidian, versi Notemd, penyedia, model, hasil diagnostik, dan langkah-langkah untuk mengulangi masalah +5. Padamkan kunci API anda daripada sebarang log yang dikongsi + +--- + +## Langkah Seterusnya + +- [LLM Penyedia](/docs/providers/overview) -- Rujukan penuh konfigurasi penyedia +- [Pemprosesan Berkumpulan](/docs/advanced/batch-processing) -- Tetapan serentak dan percubaan semula untuk operasi berskala besar +- [Prompt Khas](/docs/advanced/custom-prompts) -- Perbaiki tingkah laku LLM yang tidak dijangka dengan menyesuaikan prompt diff --git a/website/i18n/ms/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/ms/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..6fdbd7f8 --- /dev/null +++ b/website/i18n/ms/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "Soalan Lazim" +description: "Soalan biasa mengenai pemasangan, ciri serta cara penggunaan Notemd" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# Soalan Lazim + +<TLDR> +**Jawapan pantas untuk soalan Notemd yang paling kerap.** Merangkumi pemasangan (sedia dalam 5 minit), sokongan lebih daripada 30 penyedia LLM, pilihan model setempat/awan, aliran kerja satu klik, UI berbilang bahasa (21 bahasa), automasi pautan wiki, integrasi penyelidikan, aliran kerja pembacaan PDF, penjanaan diagram, serta lesen sumber terbuka. Semua ciri berfungsi tanpa sambungan internet dengan Ollama. +</TLDR> + +--- + +## Pemasangan & Penyediaan + +### Bagaimanakah cara memasang Notemd dalam Obsidian? + +Buka Obsidian → **Settings → Community Plugins → Browse** → cari **"Notemd"** → **Install** → **Enable**. + +**Keperluan:** +- Obsidian 0.15.0+ +- Disokong pada Desktop (Windows, macOS, Linux) dan Mobile (iOS, Android) + +**Pemasangan manual:** +1. Muat turun `main.js`, `styles.css`, `manifest.json` daripada [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) +2. Letakkan ia di dalam `<your-vault>/.obsidian/plugins/notemd/` +3. Muat semula Obsidian dan aktifkan plugin tersebut + +**Statistik:** Lebih 4k muat turun, 44 versi dikeluarkan, dilisensikan MIT. + +--- + +## Konfigurasi LLM + +### Apa penyedia LLM yang disokong oleh Notemd? + +Notemd menyokong **lebih daripada 30 penyedia**: + +**Penyedia awan:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonnet, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**Fokus China:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**Tempatan/terhoskan sendiri:** +- Ollama +- LM Studio +- Sebarang titik hujung yang serasi dengan OpenAI + +**Pintu gerbang:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models, Fireworks, LiteLLM, Nebius, Cerebras +- Hugging Face, Vercel AI Gateway, Requesty + +### Bolehkah Notemd berfungsi dengan LLM tempatan? + +**Ya, disokong sepenuhnya.** Notemd berfungsi dengan: +- **Ollama** (integrasi asli) +- **LM Studio** (melalui titik hujung yang serasi dengan OpenAI) +- **vLLM, LocalAI, text-generation-webui** (melalui mod yang serasi dengan OpenAI) + +Semua tugas berfungsi dengan model tempatan: penghubungan, penjanaan konsep, terjemahan, penyelidikan, dan penjanaan diagram. + +**Contoh gabungan:** +- Ollama (tempatan) untuk penghubungan → cepat, peribadi, tanpa kos +- OpenAI untuk penyelidikan → kualiti tinggi, integrasi carian web +- Gemini untuk terjemahan → sokongan multimodal + +### Bagaimanakah saya konfigurasi model yang berbeza untuk tugas yang berbeza? + +Dalam **Pengaturan Notemd**, setiap tugas mempunyai pemilih penyedia/model yang berasingan: + +| Tugas | Konfigurasi Contoh | +|------|----------------------| +| **Penghubungan** | DeepSeek (cepat, murah) | +| **Penghasilan Konsep** | Claude Opus (kualiti tinggi) | +| **Penyelidikan** | Perplexity atau GPT-4o (berasaskan web) | +| **Terjemahan** | Gemini Flash (multimodal) | +| **Penghasilan Diagram** | Ollama (lokal, peribadi) | + +Optimumisasi untuk setiap tugas ini seimbangkan kelajuan, kos, dan kualiti. + +--- + +## Ciri Utama + +### Bagaimanakah Notemd berbeza daripada ChatGPT untuk membaca dokumen? + +| Dimensi | ChatGPT | Notemd | +|-----------|---------|--------| +| **Lokasi Output** | Sejarah Perbualan (sementara) | Obsidian vault (fail berterusan) | +| **Format hasil** | Jawapan teks | Pautan wiki, nota konsep, diagram, terjemahan | +| **Nilai jangka panjang** | Hilang selepas sesi | Terkumpul dalam pangkalan pengetahuan | +| **Kemampuan guna semula** | Perlu tanya semula | Fail kekal, pautan berubah | + +**Guna ChatGPT untuk:** Soalan jawapan pantas, penjelasan sekali sahaja +**Guna Notemd untuk:** Membina pangkalan pengetahuan yang berterusan dan terstruktur selama berminggu/minggu + +### Bagaimana Notemd menambah pautan wiki ke nota? + +**Proses:** +1. Anda jalankan “Process file (add links)” pada sebuah nota +2. Notemd hantar teks tersebut ke LLM yang telah dikonfigurasikan +3. LLM menentukan konsep utama dalam konteks +4. Notemd memasukkan `[[wiki-links]]` pada setiap kejadian konsep +5. Secara pilihan, ia akan mencipta nota konsep secara automatik di folder yang ditetapkan + +**Ciri-ciri:** +- Penindasan sinonim (mengelakkan duplikasi antara "transformer" dan "transformers") +- Pautan balik dari nota konsep ke sumber +- Integriti pautan semasa menukar nama atau memadam +- Mod pengekstrakan tulen (mengekstrak konsep tanpa mengubah asal) + +### Apa itu aliran kerja satu klik Notemd? + +**Aliran kerja satu klik** menggabungkan beberapa tindakan ke dalam **butang sidebar tunggal**. + +**Aliran kerja lalai:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**Hasilnya:** Satu klik akan melaksanakan: +1. Menambah pautan wiki ke nota semasa +2. Menghasilkan nota konsep untuk istilah baru +3. Mencari maklumat tambahan dan menambahkannya +4. Menyusun semula menjadi diagram Mermaid + +**Aliran kerja khusus:** Tentukan aliran kerja anda sendiri dalam Tetapan menggunakan format DSL. Setiap aliran kerja akan menjadi butang sidebar yang boleh digunakan semula. + +### Bagaimanakah Notemd berbanding dengan Copilot atau Smart Connections? + +Plugin-plugin ini menyelesaikan masalah yang berbeza: + +- **Copilot** — Fokus perbualan. Anda berbual dengan AI tentang nota anda. Jawapan AI kekal dalam panel perbualan; ia tidak mengubah fail vault anda. +- **Smart Connections** — Fokus penemuan. Ia mencari nota yang serupa secara semantik menggunakan embedding. Ia tidak mencipta atau mengubah kandungan. +- **Notemd** — Fokus penulisan. AI memproses nota anda dan menulis hasil berstruktur (pautan wiki, nota konsep, penyelidikan, diagram, terjemahan) secara langsung ke dalam vault anda sebagai fail yang kekal. + +| Apa yang diperlukan | Plugin yang disyorkan | +|----------------|-------------------| +| Berbual dengan AI tentang nota | Copilot | +| Cari nota yang serupa/berkaitan | Smart Connections | +| Sisipkan pautan wiki secara automatik dan bina graf pengetahuan | **Notemd** | +| Jana nota konsep dengan pautan balik | **Notemd** | +| Buat diagram daripada kandungan nota | **Notemd** | +| Menyelidik topik dan menambah ringkasan | **Notemd** | + +Ketiga-tiganya boleh digunakan bersama — ia saling melengkapi bukan bersaing. + +--- + +## Penyelidikan & Terjemahan + +### Perkhidmatan carian manakah yang berfungsi dengan penyelidikan Notemd? + +| Perkhidmatan | Memerlukan Kunci API | Kualiti | Nota | +|---------|-----------------|---------|-------| +| **Tavily** | Ya | Tinggi | Disyorkan, carian yang dioptimumkan AI | +| **DuckDuckGo** | Tidak | Eksperimen | Tiada tetapan, kualiti rendah | + +**Cara “Research & summarize” berfungsi:** +1. Anda memilih topik atau menjalankannya pada nota semasa +2. Notemd membuat permintaan ke perkhidmatan carian +3. Hasil → LLM penjanaan ringkasan +4. Ringkasan ditambahkan ke nota anda bersama rujukan sumber + +**Hasilnya:** Jejak penyelidikan yang kekal dalam peti simpanan anda, bukan tab pelayar. + +### Adakah Notemd menyokong bahasa Cina atau bahasa lain? + +**Bahasa UI:** Lebih daripada 21 bahasa disokong +- English, 中文 (简体), 中文 (繁體), 日本語, 한국어 +- Arabic, German, French, Spanish, Russian, Portuguese, Italian +- Hindi, Bengali, Thai, Vietnamese, Turkish, Polish, Czech, dan lain-lain + +**Bahasa output tugas:** Tetapan bebas +- UI dalam bahasa Cina + output dalam bahasa Inggeris: ✅ +- UI dalam bahasa Inggeris + output dalam bahasa Cina: ✅ + +**Kes penggunaan:** Para penyelidik dwibahasa boleh mengekalkan UI dalam bahasa ibunda sambil menjana nota dalam bahasa Inggeris untuk penerbitan. + +--- + +## PDF dan Aliran Kerja Akademik + +### Bolehkah saya gunakan Notemd untuk membaca kertas/PDF? + +**Ya.** Alir kerjanya adalah seperti berikut: +1. **Tukar PDF ke Markdown** menggunakan [MinerU](https://github.com/opendatalab/MinerU) (disyorkan untuk kertas akademik) +2. Buka fail Markdown dalam Obsidian +3. Laksanakan tugas-tugas Notemd: + - **Tambah pautan wiki** pada istilah penting + - **Jana nota konsep** untuk istilah yang tidak dikenali + - **Ekstrak teks asal** melalui soalan khusus (contohnya, "Apakah kekangan?") + - **Kaji latar belakang** bagi kaedah/dataset yang dirujuk + - **Terjemahkan** bahagian yang sukar + - **Kompres menjadi diagram Mermaid** untuk pemahaman struktur + +**Versi 1.9.1+:** Ekstraksi struktur bab dengan sokongan TOC + +**Hasilnya:** Proses membaca kertas anda akan menjadi artifak pengetahuan yang terstruktur dan boleh dipautkan dalam vault anda. + +--- + +## Diagram & Visualisasi + +### Apakah jenis graf/diagram yang boleh dijana oleh Notemd? + +| Jenis | Sokongan | Ciri-ciri | +|------|---------|----------| +| **Mermaid** | Penuh | Aliran, urutan, kelas, keadaan, ER, Gantt, pembetulan sintaks automatik, pengesahan berkumpulan | +| **JSON Canvas** | Penuh | Susun atur kanvas asli Obsidian | +| **Vega-Lite** | Penuh | Carta data, siri masa, batang, serakan, boleh disesuaikan | +| **HTML** | Alternatif | Untuk jenis diagram yang tidak disokong | +| **Bahan editable HTML/SVG** | Sasaran eksplisit | Inline yang berdikari SVG dengan anotasi gaya Draw.io semantik | +| **Artifak Draw.io / Drawnix** | Sempadan eksport | XML/JSON yang ditentukan secara pasti daripada `SemanticFigureModel`; tiada kebergantungan masa jalankan editor | + +**Pembaikan automatik Mermaid:** Mod debug mendalam untuk memperbaiki: +- Anak panah yang rosak (`-->`, `-.->`, `==>`) +- Label dan komen yang tidak sah +- Ralat sintaks subgraf +- Notasi bentuk (`[`, `(`, `{`, `((`) +- Akar paip dalam label +- Lampiran nota + +**Aliran kerja:** +1. Jalankan “Ringkaskan sebagai diagram Mermaid” pada nota +2. Tonton pratonton dalam mod modal +3. Eksport sebagai SVG atau PNG +4. Atau simpan sebagai fail `.mmd` dalam vault + +--- + +## Sumber Terbuka & Komuniti + +### Adakah Notemd percuma dan sumber terbuka? + +**Ya.** +- **Lesen:** MIT (longgar, boleh digunakan untuk tujuan komersial) +- **Kod sumber:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **Tiada tahap berbayar, tiada keterikatan awan, tiada telemetri** +- **Komuniti:** 234+ bintang GitHub, Discord yang aktif + +**Anda miliki:** +- Data anda (tinggal dalam vault anda) +- Aliran kerja anda (sesuaikan promp, model, rantai) +- Privasi anda (sokongan LLM setempat) + +**Sumbang:** Permintaan pull request dialu-alukan. Lihat [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +## Pemecahan masalah + +### Panggilan LLM saya gagal. Apa yang perlu saya semak? + +1. **Adakah kunci API sah?** Semak Settings → Provider Configuration +2. **Nama model betul?** Gunakan butang “获取模型列表” (Get Model List) dalam tetapan +3. **Boleh diakses melalui rangkaian?** Sesetengah penyedia memerlukan VPN +4. **Had kelajuan?** Semak papan pemuka penyedia +5. **Diagnostik:** Jalankan "Connection Test" dalam tetapan untuk log ralat terperinci + +### Notemd adalah perlahan. Bagaimana saya boleh mempercepatkannya? + +1. **Gunakan model yang lebih pantas:** DeepSeek, Gemini Flash, GPT-4o-mini +2. **Kurangkan saiz chunk:** Tetapan → Smart Chunking → kurangkan jumlah perkataan +3. **Pemprosesan selari:** Tetapan → Batch Processing → tingkatkan kekonduksian +4. **Model tempatan:** Ollama untuk tugas yang tidak memerlukan carian web + +### Bolehkah Notemd berfungsi 100% tanpa sambungan internet? + +**Ya, dengan Ollama.** Tanpa kunci API, tanpa internet, tiada data yang keluar dari komputer anda: + +1. Pasang [Ollama](https://ollama.com) dan jalankan `ollama serve` +2. Dalam tetapan Notemd, pilih **Ollama** sebagai penyedia anda +3. Muat turun model: `ollama pull llama3` (atau qwen2.5, gemma2, dll.) +4. Semua ciri berfungsi: pautan wiki, nota konsep, terjemahan, diagram + +**Penyelidikan DuckDuckGo** juga berfungsi tanpa kunci API (kualiti eksperimen). + +Dengan penyedia awan (OpenAI, Anthropic, Google, DeepSeek, dll.), kandungan nota anda dihantar sebagai input API. Semak dasar privasi setiap penyedia untuk butiran pengendalian data. + +### Adakah data saya dihantar ke awan? + +**Ia bergantung pada penyedia anda:** + +| Jenis penyedia | Data dihantar ke awan? | Nota | +|--------------|---------------------|-------| +| **Ollama (lokal)** | Tidak | Semua tetap berada di komputer anda | +| **LMStudio (lokal)** | Tidak | Sama seperti Ollama | +| **DeepSeek, OpenAI, dll.** | Ya | Kandungan nota dihantar sebagai input API untuk diproses | +| **OpenRouter, AIHubMix** | Ya | Pintu gerbang yang menghala ke penyedia awan | + +Notemd sendiri tidak mengumpul **tiada telemetri, tiada analitik, tiada data pengguna**. Plugin ini adalah sumber terbuka sepenuhnya (MIT). Satu-satunya data yang keluar dari mesin anda ialah apa yang anda hantar secara eksplisit ke penyedia LLM yang telah dikonfigurasikan. + +### Plugin AI Obsidian manakah yang paling sesuai untuk penyelidikan? + +Ia bergantung pada aliran kerja penyelidikan anda: + +| Diperlukan | Plugin | Sebab | +|------|--------|-----| +| Cari kertas kerja/nota berkaitan | Smart Connections | Penemuan persamaan semantik | +| Berbual tentang sumber anda | Copilot | Perbualan dengan konteks peti simpanan | +| Pautan konsep secara automatik + hasilkan nota | **Notemd** | AI mengenal pasti konsep, memasukkan pautan, mencipta nota | +| Penyelidikan web + ringkaskan menjadi nota | **Notemd** | Tavily/DuckDuckGo carian → LLM ringkasan → ditambah ke nota | +| Jana diagram daripada kajian | **Notemd** | Mermaid/Canvas/Vega-Lite daripada kandungan nota | + +**Gabungan yang disyorkan:** Smart Connections (penemuan) + Notemd (pengstrukturan) + Copilot (perbincangan). + +--- + +## Dapatkan Bantuan + +- **Dokumentasi:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **Isu GitHub:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **Penaja:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/ms/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/ms/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..5e266ed1 --- /dev/null +++ b/website/i18n/ms/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "Nota Konsep" +description: "Jana dan urus nota konsep — nota berdiri sendiri untuk konsep utama yang diekstrak daripada peti simpanan anda" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# Nota Konsep + +<TLDR> +**Notemd mengekstrak konsep utama daripada nota anda dan mencipta fail nota konsep yang berdiri sendiri.** LLM mengenal pasti istilah utama, menjana satu fail `.md` untuk setiap konsep dalam folder yang boleh dikonfigurasikan, dan secara pilihan menambah pautan balik ke nota sumber. Ia menyokong penindasan sinonim, pemilihan model mengikut tugas, penyucian nama fail, dan enjin penghapusan duplikasi 4 langkah. Ini merupakan sebahagian daripada [Obsidian Panduan Pengurusan Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Gambaran Keseluruhan + +Nota konsep merupakan blok asas bagi pangkalan pengetahuan yang bersambung. Apabila anda memproses sebuah nota, Notemd: + +1. **Menghantar teks anda ke LLM** dengan arahan ekstraksi yang terstruktur +2. **Menganalisis baris `CONCEPT:`** daripada respons LLM +3. **Mencipta satu fail `.md` untuk setiap konsep** dalam folder yang ditetapkan +4. **Menambah pautan balik** ke nota sumber (jika diaktifkan) + +## Cara Ia Berfungsi + +### Pipelajn Ekstraksi + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### Arahan Ekstraksi + +LLM menerima arahan yang menyuruhnya untuk: + +- Ekstrak **kata nama atau frasa kata nama** yang menjadi inti topik dokumen +- **Utamakan kekhususan** — “Dielectric Relaxation” berbanding “Relaxation”, +- **Normalisasi kepada bentuk tunggal** — “models” menjadi “model”, +- **Menindas konsep subordinat** — jika “dielectric relaxation” muncul, jangan ekstrak “relaxation” juga +- **Lompat** bahagian rujukan/katalog, kata nama umum, nama syarikat/produk +- Keluarkan satu konsep setiap baris sebagai `CONCEPT: Term Name` + +**Penindasan sinonim** (pilihan): tambahkan “Elakkan mengeluarkan sinonim, konsep asas yang serupa dari segi semantik, atau kata kunci setiap kali boleh” di hadapan gesaan. + +**Domain pembelajaran yang ditumpukan** (pilihan): menambahkan `Relevant Fields: [domain]` di hadapan untuk membataskan pengeluaran kepada satu bidang khusus. + +**Tetapan bahasa gantian** (pilihan): menambahkan “Konsep keluaran MESTI berada dalam [bahasa].” + +### Pemecahan kepada bahagian + +Nota yang panjang akan dipisahkan oleh `settings.chunkWordCount`. Setiap bahagian dihantar secara berasingan. Konsep daripada semua bahagian akan dikumpulkan dalam `Set` — duplikasi antara bahagian akan dibuang tanpa notis. Ralat LLM pada setiap bahagian tidak akan menghentikan operasi tersebut. + +## Penciptaan Nota Konsep + +### Peraturan Nama Fail + +| Peraturan | Kelakuan | +|------|----------| +| Tanda garis bawah/tanda garis sempang | Digantikan dengan ruang | +| Akar aksara khas | Dibuang: backslash, forward slash, colon, asterisk, tanda soal, tanda petik, kurungan sudut, pipe, hash, caret, kurungan | +| Ruang kosong | Runtuh dan dipotong | +| Panjang maksimum | 100 aksara (dipotong + dipadatkan semula) | +| Hasil kosong/semua titik | Dihabaikan secara senyap | + +Contoh: `A-B: Key*Term` menjadi `A B KeyTerm.md` + +### Templat + +**Templat penuh** (pautan balik diaktifkan, templat minimum dimatikan): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**Templat minimum** (apabila `extractConceptsMinimalTemplate: true`): + +```markdown +# Concept Name +``` + +### Memperbaharui Nota Sedia Ada + +Apabila fail konsep sudah wujud: + +1. Jika pautan balik diaktifkan dan nota sumber belum disenaraikan, tambahkan pautan balik +2. Jika terdapat bahagian `## Linked From`, masukkan sebelum tajuk `##` seterusnya +3. Jika tiada `## Linked From`, tambahkan bahagian di akhir +4. Pautan balik yang berulang akan diperiksa dan diabaikan + +### Konfigurasi + +| Pengaturan | Lalai | Kesan | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | Tombol utama. Dimatikan = tiada nota dibuat | +| `conceptNoteFolder` | `''` (dihentikan) | Laluan folder untuk nota konsep | +| `extractConceptsMinimalTemplate` | `true` | Nota hanya tajuk (tanpa Linked From) | +| `extractConceptsAddBacklink` | `false` | Tambahkan pautan balik semasa pengekstrakan berdiri sendiri | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | LLM setiap tugas untuk pengekstrakan konsep | +| `extractConceptsLanguage` | `'en'` | Bahasa keluaran untuk nama konsep | +| `replaceSynonymsDuringConceptExtraction` | `false` | Aktifkan penindasan sinonim dalam promp | +| `generateConceptLogFile` | `false` | Tulis senarai `.log` konsep yang dihasilkan | + +**Penting:** Tetapan `extractConceptsAddBacklink` dan `extractConceptsMinimalTemplate` hanya mempengaruhi **arahan pengekstrakan khusus**. Arahan "Add Links" sentiasa menghasilkan nota templat penuh dengan pautan balik. + +## Penghapusan duplikasi + +Arahan dedup (`Notemd: Check & remove duplicate concept notes`) menjalankan analisis 5 langkah: + +### Langkah 1: Padanan nama fail yang tepat + +Perbandingan nama fail tanpa mengira huruf besar/kecil dalam skop yang ditetapkan. + +### Langkah 2: Pengesanan bentuk jamak + +Menghilangkan akhiran: `-ies` hingga `-y`, `-es` dihapuskan, `-s` dihapuskan. Membandingkan bentuk tunggal dengan fail skop. Tidak mengendalikan bentuk jamak yang tidak teratur (children/child). + +### Langkah 3: Normalisasi simbol + +Digunakan pada: `toLowerCase()`, gantikan tanda hubung/tanda bawah dengan ruang, padamkan aksara bukan alfanumerik, padatkan ruang kosong. Entri yang dinormalisasi secara serupa akan ditandakan. + +### Langkah 4: Pengasingan Perkataan Tunggal + +Nota konsep perkataan tunggal diperiksa berbanding nama fail skop berbilang perkataan. Tidak dijalankan apabila skopnya ialah `concept_folder_only`. + +### Langkah 5: Pengesahan dan Pemadaman + +Semua calon dipaparkan dalam modul pengesahan. Item yang diluluskan dipindahkan ke tong sampah sistem. Operasi boleh dibatalkan antara setiap pemadaman. + +### Mod Skop + +| Mod | Dibandingkan Dengan | +|------|-------------------| +| `vault` (lalai) | Semua fail vault `.md` kecuali folder konsep | +| `concept_folder_only` | Nota konsep lain dalam folder tersebut | +| `include` | Fail dalam folder yang disenaraikan secara khusus | +| `exclude` | Semua fail vault kecuali folder konsep + folder yang disenaraikan | + +## Penggunaan + +### Ekstrak Konsep (Berdiri Sendiri) + +1. Buka sebuah nota +2. Jalankan **"Notemd: Ekstrak konsep"** daripada panel arahan +3. Nota konsep diwujudkan dalam folder yang telah dikonfigurasikan + +### Ekstrak + Jana Kandungan + +**"Notemd: Ekstrak konsep dan jana tajuk"** — ekstrak konsep, kemudian jalankan "Jana daripada Tajuk" pada setiap nota dalam folder konsep. Ini menjana kandungan untuk **semua** nota konsep dalam folder, bukan hanya yang baru dibuat. + +### Cipta Pautan Wiki daripada Pemilihan + +1. Sorot teks dalam editor +2. Jalankan **"Notemd: Cipta pautan wiki daripada pemilihan"** +3. Teks dibalut dengan `[[...]]` dan sebuah nota konsep akan dihasilkan + +## Tips + +- **Sediakan folder konsep terlebih dahulu** — tanpanya, tiada nota yang dihasilkan. Tetingkap amaran akan muncul jika ia tidak ditetapkan. +- **Guna model mengikut tugas** — ekstrak konsep berfungsi dengan baik menggunakan model yang lebih murah (GPT-4o-mini, DeepSeek). Simpan model yang mahal untuk tujuan penyelidikan/terjemahan. +- **Aktifkan penindasan sinonim** untuk domain teknikal di mana beberapa istilah merujuk kepada konsep yang sama. +- **Padamkan duplikasi secara berkala** — jalankan arahan padam duplikasi selepas pemprosesan berkelompok untuk mengesan duplikasi hampir sama. +- **Fail log akan ditulis semula** setiap kali dijalankan, bukan ditambah. Salininya jika anda memerlukan hasil sebelumnya. + +--- + +## Langkah Seterusnya + +- [Wiki-Links](./wiki-links) — Cara konsep dipautkan secara dalam talian +- [Diagrams](./diagrams) — Visualisasikan hubungan antara konsep +- [Workflows](./workflows) — Gabungkan ekstrak dengan tugas lain diff --git a/website/i18n/ms/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/ms/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..2ffbc0b5 --- /dev/null +++ b/website/i18n/ms/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "Diagram" +description: "Jana Mermaid, JSON Canvas, Vega-Lite, HTML, artifak rajah yang boleh diubah suai, serta diagram circuitikz yang terhad pada masa depan daripada nota anda menggunakan seni bina berdasarkan spesifikasi terlebih dahulu" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Diagram + +<TLDR> +**Notemd menjana diagram daripada nota anda melalui saluran kerja berdasarkan spesifikasi terlebih dahulu.** LLM menghasilkan `DiagramSpec` JSON yang tidak bergantung pada penghasilan, kemudian penyesuai khusus menukarkannya kepada Mermaid, JSON Canvas, Vega-Lite, HTML, atau output HTML/SVG yang boleh diubah suai. Ia menyokong 8 jenis niat, rantaian penggantian automatik, pratonton masa nyata dengan eksport SVG/PNG, pengesahan semantik, dan penjanaan yang diperkukuh dengan pengetahuan tempatan. +</TLDR> + +Ini merupakan sebahagian daripada [Obsidian Panduan Pengurusan Pengetahuan AI](/docs/pillar-ai-knowledge). + +## Seni Bina: Saluran Kerja Berdasarkan Spesifikasi Terlebih Dahulu + +Notemd tidak pernah meminta LLM untuk menghasilkan sintaks Mermaid/Vega/Canvas secara langsung. Sebaliknya: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**Mengapa berdasarkan spesifikasi terlebih dahulu?** LLM sering menghasilkan sintaks penghasilan yang tidak sah (terutamanya Mermaid). `DiagramSpec` yang terstruktur boleh disahkan sebelum diproses, dan spesifikasi yang sama boleh digunakan untuk beberapa penghasilan sebagai pilihan penggantian. + +## Jenis Diagram yang Disokong + +| Niat | Penghasil Utama | Pilihan Penggantian | Kes Penggunaan | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | Pembahagian topik hierarki | +| `flowchart` | Mermaid | HTML | Aliran proses, pokok keputusan | +| `sequence` | Mermaid | HTML | Interaksi klien-pelayan, protokol | +| `classDiagram` | Mermaid | HTML | Hubungan kelas OOP | +| `erDiagram` | Mermaid | HTML | Skema pangkalan data, hubungan entiti | +| `stateDiagram` | Mermaid | HTML | Mesin keadaan, model kitaran hayat | +| `canvasMap` | JSON Canvas | Mermaid → HTML | Peta konsep, graf pengetahuan | +| `dataChart` | Vega-Lite | Mermaid → HTML | Bar, garis, kawasan, serakan, pai, jadual | + +## Pengesanan niat + +Notemd menentukan jenis diagram terbaik berdasarkan kandungan nota anda menggunakan penilaian kata kunci: + +| Niat | Pemicu | Keyakinan | +|--------|----------|------------| +| `dataChart` | Jadual, sel numerik, kata kunci metrik/trend, peratusan | 0.88 | +| `sequence` | Perbendaharaan istilah permintaan/respon (4+ padanan) atau penanda `->`/`=>` | 0.82 | +| `erDiagram` | Kunci utama, kunci asing, entiti, skema (2+ padanan) | 0.80 | +| `stateDiagram` | Keadaan, peralihan, menunggu, sedang berjalan, gagal (3+ padanan) | 0.76 | +| `flowchart` | Langkah bernombor (2+) atau perbendaharaan istilah if/then/else/workflow | 0.74 | +| `canvasMap` | Peta konsep, graf pengetahuan, ruang, kluster | 0.72 | +| `mindmap` | Pilihan lalai | 0.55 | + +Gantikan dengan tetapan **Jenis diagram yang diutamakan**, pemilih di sidebar, atau pilihan palet arahan yang jelas. + +## Pemilihan Sasaran Render + +Pipelajn eksperimen berasaskan spesifikasi kini mempunyai dua kawalan bebas: + +| Kawalan | Pengaturan | Kesan | +|---------|---------|--------| +| Jenis diagram yang diutamakan | `preferredDiagramIntent` | Membimbing bentuk semantik `DiagramSpec` yang dihasilkan | +| Sasaran render yang diutamakan | `preferredDiagramRenderTarget` | Memilih penghasil artefak untuk **Jana diagram** dan **Pratonton diagram** | + +Tetapkan **Sasaran render yang diutamakan** kepada **Auto** untuk lalai perancang, atau pilih Mermaid, JSON Canvas, Vega-Lite, HTML, atau Editable HTML/SVG secara eksplisit. Penggantian ini hanya berkuat kuasa untuk arahan artefak dan pratonton. Arahan standard **Ringkaskan sebagai diagram Mermaid** kekal dipautkan pada output yang serasi dengan Mermaid supaya aliran kerja Markdown sedia ada tidak menukar format secara senyap. + +Pemisahan ini penting kerana niat `flowchart` kini boleh direnderkan sebagai Mermaid untuk nota Markdown, HTML untuk pilihan lalai yang mantap, atau Editable HTML/SVG untuk penyuntingan seterusnya. Draw.io dan Drawnix kekal sebagai pengeksport artefak CLI dan bukannya sasaran render dalam plugin. + +## Penggunaan + +### Jana Diagram + +1. Buka sebuah nota +2. Laksanakan **"Notemd: Jana diagram"** daripada palet arahan +3. Notemd mengesan niat, menjana spesifikasi, merender, dan menyimpan artefak + +**Fail keluaran mengikut sasaran:** + +| Sasaran | Panjang | Corak Nama Fail | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| Boleh Diubah HTML/SVG | `.html` | `{note}_diagram.html` | + +### Tunjuk Pratonton Diagram + +1. Jalankan **"Notemd: Tunjuk Pratonton Diagram"** +2. Tetingkap modal terbuka dengan diagram yang telah diproses +3. Eksport sebagai SVG atau PNG menggunakan butang pada toolbar + +**Buka pratonton secara automatik** tersedia dalam tetapan — selepas dihasilkan, tetingkap modal pratonton akan dibuka secara automatik. + +Tetingkap modal pratonton juga mempunyai panel diagnosis artefak. Pemproses dan pemeriksa asap boleh lampirkan `RenderArtifact.diagnostics`; tetingkap tersebut menunjukkan ringkasan diagnosis dengan jumlah ralat/amaran/maklumat, diikuti tahap keparahan, jenis diagnosis, mesej, dan cadangan pembaikan di sebelah pratonton. Ringkasan yang sama dipaparkan dalam entri sejarah pratonton, jadi percubaan asap circuitikz yang berulang boleh dibandingkan tanpa perlu membuka setiap entri. Untuk artefak yang mempunyai kandungan sumber tetapi tidak dapat diproses secara dalam baris atau melalui laluan iframe HTML, tetingkap modal kini beralih kepada pratonton hanya sumber daripada menggunakan iframe kosong. Ini membolehkan pemeriksaan asap kompilasi/pemprosesan circuitikz, pemeriksaan token teks SVG, pemeriksaan skrin tangkapan PNG kosong, dan laporan pertindihan masa depan mempunyai paparan yang jelas UI tanpa menjadikan TikZJax atau LaTeX sebagai kebergantungan masa jalankan plugin yang wajib atau berpura-pura teks sumber ialah hasil visual yang telah disahkan. + +### Mod Mermaid Lama + +Apabila `enableExperimentalDiagramPipeline` dimatikan, Notemd menghantar arahan Mermaid secara langsung kepada LLM. Ini mengelakkan keseluruhan saluran kerja spesifikasi. Jika saluran kerja eksperimen gagal, ia akan beralih ke mod ini. + +## Pemprosesan Di Belakang Tabir + +### Mermaid + +6 penyesuai (mindmap, aliran kerja, urutan, ER, kelas, keadaan) menukar `DiagramSpec` kepada sintaks Mermaid. Selepas dihasilkan, `mermaid.parse()` mengesahkan hasilnya. Jika pengesahan gagal: + +1. **Cuba Semula LLM** — satu percubaan dengan mesej ralat Mermaid sebagai konteks +2. **Pilihan Gantian Minimum** — diagram Mermaid yang ringkas berdasarkan ID nod spesifikasi + +**Legacy Mermaid Fixer** memperbaiki secara automatik ralat sintaks LLM yang biasa ditemui: penormalan arahan note, penyelamatan label pipe, penempatan semula tanda titik koma, petikan pintar, anak panah berganda tanda hubung, ketidaksesuaian bentuk, dan banyak lagi. + +### JSON Canvas + +Menghasilkan format Obsidian JSON Canvas dengan susunan ruang: +- Node diletakkan mengikut kedalaman (x = kedalaman × 420) dan indeks (y = indeks × 170) +- Lebar dianggarkan berdasarkan panjang label +- Garis dengan `fromSide: 'right'`, `toSide: 'left'`, `toEnd: 'arrow'` + +### Vega-Lite + +Membina spesifikasi Vega-Lite v5 JSON yang lengkap dengan pengkodan automatik: +- **Cartesian charts** (bar/line/area/point/scatter): saluran x + y ditambah warna untuk pelbagai siri +- **Pie**: theta = y (kuantitatif), warna = x (nominal) +- **Table**: baris = x, teks = y + lajur = siri + +Patch tema gelap dan terang digabungkan sepenuhnya sebelum kompilasi. + +### HTML + +Penyelesaian alternatif universal. Dokumen HTML yang berdiri sendiri dengan: +- Meta header CSP +- Mod terang/gelap melalui `prefers-color-scheme` +- Label UI yang disesuaikan untuk 20 lokasi +- Bahagian: hero, struktur (pokok node), hubungan, penjelasan tambahan, jadual siri data + +### Boleh diedit HTML/SVG + +Sasaran angka yang jelas untuk aliran kerja eksport yang boleh diubah suai. Ia memproyeksikan `DiagramSpec` ke dalam `SemanticFigureModel` yang ditentukan secara pasti, kemudian menjana dokumen HTML yang berdiri sendiri dengan kumpulan SVG terbina dalam yang membawa anotasi gaya Draw.io: + +- `data-drawio-type`, `data-drawio-id`, dan `data-drawio-role` pada nod semantik +- `data-drawio-source` dan `data-drawio-target` pada tepi semantik +- pengecam nod/tepi yang stabil selepas normalisasi ruang putih dan pengendalian pertembungan +- tiada skrip, tiada fon luaran, dan tiada aset jarak jauh + +Sasaran ini sengaja bukan laluan perancang lalai buat masa ini. Ia tersedia sebagai sasaran render yang jelas sementara laluan produk membuktikan tingkah laku penyuntingan merentasi alat sebenar. + +### Draw.io dan Drawnix Sempadan Eksport + +Pelaksanaan semasa mengekalkan sokongan editor pihak ketiga pada sempadan artefak: + +| Sasaran | Kontrak | Ketergantungan Masa Jalankan | +|--------|----------|--------------------| +| Draw.io | `mxfile` XML yang tidak dikompres dan ditentukan secara pasti daripada `SemanticFigureModel` | tiada dalam masa jalankan plugin atau CI | +| Drawnix | subset `.drawnix` JSON yang minimum menggunakan unsur `geometry` dan `arrow-line` | tiada dalam masa jalankan plugin atau CI | + +Kompromi ini adalah disengajakan: Notemd boleh sahkan label yang kelihatan, ID yang stabil, dan liputan primitif yang disokong tanpa memasukkan diagram.net Desktop, Drawnix, Plait, atau keadaan editor khusus pelayar ke dalam plugin. + +### circuitikz / TikZJax Arah + +Diagram litar bukanlah masalah yang sama seperti aliran umum. Sintaks yang betul untuk litar elektrik biasanya ialah **circuitikz**, yang dipaparkan dalam Obsidian melalui plugin seperti TikZJax. TikZJax boleh memuatkan pakej seperti `circuitikz`, `pgfplots`, `tikz-cd`, dan `chemfig`, menjadikannya menarik untuk nota fizik, litar, kimia, dan matematik. + +Risikonya ialah TikZ yang dihasilkan secara mentah oleh LLM adalah rapuh: + +- topologi litar yang kompleks mungkin betul dari segi elektrik tetapi sukar dibaca secara visual; +- wayar dan label yang bertindih boleh menjadikan senarai rangkaian yang betul tidak boleh digunakan untuk nota pembelajaran; +- ketiadaan prambel pakej, titik jangkar yang salah, atau nama komponen yang tidak sah boleh menghalang proses paparan; +- maklum balas daripada alat paparan biasanya pada tahap imej, manakala LLM menghasilkan geometri pada tahap teks. + +Arkitektur yang lebih baik ialah menganggap circuitikz sebagai sasaran diagram yang terhad, bukan sebagai arahan bentuk bebas: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +Model kelas pertama sepatutnya menerangkan topologi litar dan susun atur secara berasingan: + +| Lapisan | Tanggungjawab | Contoh | +|-------|----------------|---------| +| Topologi | nod elektrik dan sambungan komponen | `VDD -> RD -> drain(M1)`, `source(M1) -> GND` | +| Susun Atur | penempatan grid, orientasi, laluan penghantaran | `M1 at (3,2.2)`, masukan kiri, keluaran kanan | +| Gaya | pakej, konvensyen voltan, label, penyangkut | `\begin{circuitikz}[american voltages]` | +| Pengesahan | log kompilasi, penyangkut yang hilang, pemeriksaan pertindihan/skrin tangkapan | TikZJax/Diagnostik LaTeX ditambah semakan visual | + +### Prototaip circuitikz Semasa + +Notemd kini merangkumi prototaip repositori terhad pertama untuk arah ini. Ia sengaja berada dalam mod offline dan terikat dengan templat: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +Prototaip ini menambah sempadan `CircuitSpec` yang berasingan serta pengeksport yang ditentukan secara deterministik untuk enam keluarga rujukan emas: + +| Jenis litar | Rujukan emas | Jaminan arus | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | mengesahkan `VDD -> R_D -> M1.D`, `vin -> M1.G`, `M1.S -> GND`, dan `M1.D -> vout` sebelum menulis LaTeX | +| `cmos-inverter` | `cmos-inverter-v1` | mengesahkan topologi PMOS-over-NMOS, input pintu bersama, keluaran drain bersama, `VDD -> MP.S`, dan `MN.S -> GND` sebelum menulis LaTeX | +| `cmos-buffer` | `cmos-buffer-v1` | mengesahkan dua peringkat inverter bertindan, nod antara `vmid`, `vout` yang dipulihkan, serta landasan VDD/GND bersama sebelum menulis LaTeX | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | mengesahkan peranti laluan PMOS/NMOS selari antara `vin` dan `vout` dengan kawalan `phib` / `phi` yang saling melengkapi sebelum menulis LaTeX | +| `cmos-nand2` | `cmos-nand2-v1` | Memeriksa daya tarik ke atas PMOS selari, daya tarik ke bawah NMOS bersiri, input berganda `va` / `vb`, dan `vout` sebelum menulis LaTeX | +| `cmos-nor2` | `cmos-nor2-v1` | Memeriksa daya tarik ke atas PMOS bersiri, daya tarik ke bawah NMOS selari, input berganda `va` / `vb`, dan `vout` sebelum menulis LaTeX | + +Ini bukan penjana TikZ umum lagi. Ia tidak mengkompilasi LaTeX, memanggil TikZJax, memeriksa tangkapan skrin, atau menjalankan pembaikan imej automatik. Fungsi tersebut masih menjadi langkah seterusnya. + +Arahan Diagram Pratonton boleh membuka semula artifak sumber circuitikz yang disimpan secara langsung apabila lanjutan fail ialah `.tex` atau `.tikz` dan sumber mengandungi `\usepackage{circuitikz}` atau `\begin{circuitikz}`. Laluan ini ialah pratonton hanya sumber circuitikz: tetingkap modal menunjukkan sumber, diagnostik, kawalan salin/simpan, dan metadata sejarah, tetapi ia tidak mengkompilasi LaTeX atau memanggil TikZJax semasa masa jalanan plugin. + +Sekarang sempadan pratonton hanya sumber yang sama meliputi artifak Draw.io dan Drawnix yang disimpan. Fail `.drawio` diterima apabila ia kelihatan seperti Draw.io XML (`mxfile` atau `mxGraphModel`), dan fail `.drawnix` diterima apabila ia ialah Drawnix JSON dengan `type: "drawnix"` dan satu array `elements`. Plugin masih tidak menyertakan diagrams.net atau hos papan putih Drawnix; pratonton ini memaparkan sumber, diagnostik, dan sejarah artifak tanpa menggunakan editor visual dalam plugin. + +Untuk pembaikan yang mengekalkan topologi, hantar spesifikasi pra-pembaikan sebagai rujukan sebelum menerima calon yang telah dibaiki: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +Penjaga pembaikan menggunakan `createCircuitTopologySignature` dan `assertCircuitTopologyUnchanged` untuk membandingkan `circuitKind`, `goldenReferenceId`, rangkaian, ID/jenis/terminal komponen, dan hujung sambungan tak berarah sebelum menghasilkan keluaran. Label, teks tajuk, petunjuk susun atur, urutan sambungan, dan label sambungan sengaja diabaikan. Calon yang menambah terminal pendek atau menyambung semula terminal gagal dengan `Circuit topology drift detected` sebelum fail `.tex` ditulis. + +Sekarang CLI boleh menganalisis log kompilasi LaTeX/TikZJax yang sedia ada tanpa menjalankan kompiler: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +Laluan diagnostik ini melaporkan pakej yang hilang seperti `circuitikz.sty`, kunci TikZ/circuitikz yang tidak diketahui, ralat sintaks laluan TikZ seperti kurangnya tanda titik koma, hujah berlebihan daripada kurungan yang tidak seimbang atau label yang tidak ditutup, urutan kawalan yang tidak ditakrifkan, ralat LaTeX umum, henti kecemasan, dan amaran penuh `\hbox`. Ia masih berbentuk log: pelaksanaan lokal LaTeX/TikZJax dan langkah kualiti tangkapan skrin masih merupakan kerja masa depan yang berasingan. + +Untuk pemeriksaan asap penjaga, CLI yang sama boleh secara pilihan menjalankan pemproses yang dikonfigurasikan secara eksplisit tanpa analisis arahan shell: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Pemangkin kompilasi menggunakan `shell: false`, mengembangkan placeholder `{tex}`, `{outputDir}`, dan `{jobName}` menjadi nilai array argumen, membaca `{jobName}.log` yang dihasilkan, dan mengembalikan `compileExecution` serta `compileDiagnostics` dalam output CLI JSON. `--compile-executable` hanyalah laluan binari pemproses atau pembungkus; flag pemproses terletak dalam nilai berulang `--compile-arg`. Fail eksekusi kosong gagal sebagai `compile-executable-invalid`, fail binari yang hilang gagal sebagai `compile-executable-not-found`, dan rentetan eksekusi berbentuk arahan shell menerima nasihat untuk memisahkan argumen supaya Windows, Linux, dan macOS mengikut kontrak pelaksanaan langsung yang sama. Dengan `--expected-artifact`, ia juga melaporkan `compileExecution.renderSmoke` dan gagal pada CLI jika pemproses tidak mencipta artifak yang bukan kosong. Ia masih tidak menyertakan LaTeX, menjadikan TikZJax sebagai kebergantungan masa jalanan plugin, atau melakukan pembaikan visual peringkat tangkapan skrin. + +Jika artifak yang dijangka ialah `.svg`, pemeriksaan asap akan masuk lebih dalam satu lapisan: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +Pemeriksaan asap SVG mengesahkan akar `<svg>`, dimensi positif atau `viewBox`, sekurang-kurangnya satu unsur lukisan yang kelihatan selepas pengecualian unsur tersembunyi/transparent, sebarang token teks yang diminta, unsur yang jelas di luar `viewBox`, label `<text>` / `<tspan>` yang bertindih dan jelas yang diletakkan, serta label teks yang jelas bertindih dengan unsur lukisan melalui `render-svg-label-overlap`. Teks yang dijangka dicari dalam teks yang kelihatan dan metadata aksesibiliti yang didekod seperti `aria-label`, `<title>`, dan `<desc>`, supaya pemproses yang mengekalkan label semantik di luar `<text>` yang kelihatan masih boleh memenuhi pemeriksaan token teks asap tanpa memerlukan OCR. Langkah geometri kini ialah geometri yang peka terhadap transformasi untuk atribut kumpulan dan unsur biasa `transform`, jadi kotak SVG yang diterjemahkan, berskala, diputar, dimiringkan, atau diubah suai melalui matriks diperiksa selepas komposisi transformasi. Ia meliputi sempadan lengkung tepat untuk ekstrem A/a, sempadan lengkung Bezier tepat untuk ekstrem C/S/Q/T, sempadan SVG yang peka terhadap ketebalan garisan dan pemeriksaan pertindihan label, geometri lukisan `polyline` / `polygon`, serta menyelesaikan penempatan glyph hanya laluan daripada rujukan `<use href="#...">` supaya label yang ditukar kepada laluan glyph yang boleh digunakan masih boleh gagal dalam pemeriksaan kanvas terbatas apabila geometri glyph yang diletakkan melampaui `viewBox`. Beberapa label `tspan` yang diletakkan di bawah satu ibu bapa `<text>` dibandingkan sebagai kotak label berasingan, yang dapat mengesan output gaya LaTeX SVG yang sebaliknya akan menggabungkan label yang berbeza menjadi satu nod teks. Kotak SVG `text` dan `tspan` yang diletakkan menghormati nilai `text-anchor` `start`, `middle`, dan `end`, jadi label yang terpusat dan sejajar ke kanan boleh mencetuskan diagnostik pertindihan teks/label dan label berbanding lukisan tanpa memerlukan susun atur teks tahap pelayar. Laluan glyph hanya definisi di dalam `<defs>` tidak dianggap sebagai unsur lukisan yang kelihatan, tetapi atribut `transform` yang bersifat lokal definisi mereka diterapkan sebelum penempatan `<use>` supaya definisi glyph yang berskala atau dipantulkan tidak dikira kurang. Pemeriksaan label berbanding lukisan menggunakan toleransi kotak lukisan yang kecil dan `stroke-width` yang dinyatakan, jadi wayar yang nipis, wayar yang tebal, dan garis luar komponen poligon semuanya boleh dianggap sebagai kegagalan kebolehbacaan label apabila garisan yang kelihatan mencapai label. Label glyph hanya laluan yang diselesaikan daripada `<use href="#...">` juga dibandingkan dengan kotak lukisan dan gagal dengan `render-svg-path-glyph-overlap` apabila geometri glyph yang boleh digunakan bertindih dengan wayar atau komponen. Jika pemproses menukar label kepada glyph laluan yang boleh digunakan bukannya `<text>` yang boleh dicari dan tidak mengekalkan metadata aksesibiliti, laporan asap merekodkan `pathOnlyGlyphUseCount` dan gagal token teks yang diminta melalui `render-svg-text-path-only` daripada berpura-pura label itu tidak wujud. Kegagalan lain dilaporkan melalui `render-svg-invalid`, `render-svg-dimension-missing`, `render-svg-no-visible-elements`, `render-svg-text-missing`, `render-svg-out-of-bounds`, `render-svg-text-overlap`, `render-svg-label-overlap`, atau `render-svg-path-glyph-overlap`. Pemeriksaan token teks dan pertindihan hanya harus dianggap sebagai asap struktur untuk pemproses yang mengekalkan label sebagai teks SVG yang boleh dicari atau metadata aksesibiliti; output hanya laluan SVG masih memerlukan langkah tangkapan skrin/OCR yang seterusnya untuk membuktikan kebolehbacaan visual label, dan pemeriksaan asap ini masih tidak mendakwa liputan laluan SVG yang lengkap. + +Kumpulan dan unsur SVG yang tersembunyi sentiasa diabaikan semasa pengiraan unsur yang kelihatan dan pengumpulan geometri. Atribut atau gaya inline `display:none`, `visibility:hidden`, `visibility:collapse`, dan keseluruhan `opacity:0` tidak dapat membuat artifak render yang kosong lulus pemeriksaan output yang kelihatan. + +Definisi glyph hanya laluan boleh jadi laluan langsung atau kontainer kumpulan/simbol di dalam `<defs>`. Pemeriksaan asap menyelesaikan geometri laluan anak daripada `<g id="...">` dan `<symbol id="...">` sebelum penempatan `<use>`, jadi output glyph yang dibalut masih memberi maklumat kepada `pathOnlyGlyphUseCount`, pemeriksaan kanvas terbatas, dan `render-svg-path-glyph-overlap`. + +Pemproses laluan juga menjejak permulaan sublaluan dan menetapkan semula titik semasa pada `Z/z`, jadi arahan relatif selepas sublaluan yang tertutup diteruskan dari titik SVG yang betul dan bukannya mencipta diagnostik `render-svg-out-of-bounds` yang palsu. + +Langkah geometri yang sama mengikut peraturan SVG untuk nombor perpuluhan dengan titik di hadapan dan tanda plus yang jelas, jadi koordinat dvisvgm yang padat seperti `.5`, `-.5`, atau `+.5` kekal dalam bentuk pecahan semasa pemeriksaan sempadan, bukannya menjadi geometri yang salah di luar sempadan atau diabaikan. + +Jika pemproses grafik menghasilkan `.png`, laluan artefak yang dijangka akan menjadi tangkapan skrin pertama: Notemd mentafsir fail PNG berwarna indeks 1/2/4/8-bit yang bukan interlaced, fail PNG kelabu 1/2/4/8/16-bit, dan fail PNG kelabu-alpha/RGB/RGBA 8/16-bit. Imej berwarna indeks dan kelabu sub-byte menyokong sampel yang dipadatkan; imej berwarna indeks juga menyokong PLTE dan data tRNS pilihan; imej kelabu/RGB menyokong sampel telus tRNS. Sampel langsung 16-bit dinormalisasi ke ruang perbandingan RGBA 8-bit yang sama yang digunakan oleh pemeriksaan asap. Pemeriksaan asap memeriksa dimensi positif, merekodkan sempadan latar depan sebagai `foregroundBounds`, merekodkan ketumpatan latar depan di dalam kotak tersebut sebagai `foregroundDensity`, gagal dengan `render-png-blank` apabila setiap piksel yang kelihatan sepadan dengan warna latar belakang di sudut kiri atas, gagal dengan `render-png-content-clipped` apabila kandungan latar depan menyentuh sempadan imej, gagal dengan `render-png-foreground-too-small` apabila tangkapan skrin yang besar mempunyai kurang daripada empat piksel latar depan, dan gagal dengan `render-png-foreground-dense` apabila piksel latar depan sangat padat di dalam kotak sempadan yang kompleks. Format PNG yang tidak disokong gagal dengan `render-png-unsupported` serta panduan khusus untuk PNG interlaced Adam7 atau kedalaman bit berwarna indeks yang tidak disokong. Ini dapat mengesan tangkapan skrin kosong, pemotongan kanvas yang jelas, jejak latar depan yang kurang dikerjakan, kegagalan kesesakan pada tahap piksel pertama, dan tetapan eksport PNG pemproses grafik yang salah tanpa memerlukan kebergantungan shell khusus platform. Ia bukan pengenalan label pada tahap OCR, pengesanan pertindihan teks yang tepat, atau pembaikan imej yang mengekalkan topologi. + +Apabila diagnosis menunjukkan kompilasi yang gagal atau pelaksanaan render-smoke yang gagal, CLI juga boleh menulis ringkasan pembaikan yang mengekalkan topologi: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +Ringkasan pembaikan menggunakan skema `notemd.circuitikz.repair-brief.v1` dan membawa sumber `CircuitSpec`, tandatangan topologi, diagnosis kompilasi/render, edit yang dibenarkan, edit topologi yang dilarang, langkah pengesahan seterusnya, serta `repairPrompt` yang terstruktur. Peranan promptn ialah `topology-preserving-circuitikz-repair`; senarai `diagnosticFocus`nya diambil daripada diagnosis kompilasi/render, dan `acceptanceCriteria` memerlukan pengesahan calon serta ujian kompilasi dan render-smoke yang baru. Ia merupakan format pemindahan untuk kitaran pembaikan seterusnya, bukan tuntutan bahawa Notemd sudah menjalankan pembaikan visual secara autonomi. + +Selepas calon pembaikan dihasilkan, CLI yang sama boleh mengesahkannya berbanding dengan ringkasan sebelum menulis output: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief` memeriksa tandatangan topologi calon daripada ringkasan dan ia bersifat eksklusif dengan `--topology-reference`. Lulus ujian ini hanya membuktikan pengekalan topologi; calon masih memerlukan diagnosis kompilasi dan ujian render-smoke. + +Hasil `--repair-brief` juga termasuk bukti `repairAcceptance` dengan skema `notemd.circuitikz.repair-acceptance.v1`. Ia melaporkan pintu gerbang `topology-signature`, `compile-diagnostics`, dan `render-smoke` sebagai `passed`, `failed`, atau `missing`; mendedahkan `remainingChecks`; dan mengekalkan `readyForVisualAcceptance` sebagai palsu sehingga pelaksanaan calon merangkumi semua bukti yang diperlukan. + +Guna `--repair-acceptance-output` bersama `--repair-brief` apabila bukti CI atau pelepasan memerlukan fail JSON yang tahan lama: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +Untuk bukti pelepasan atau penyelenggara, jalankan setiap keluarga emas yang disokong melalui pelaksana fixture agregat: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Pelaksana tersebut menggunakan `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json`, dan `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json`, memanggil laluan eksport tanpa shell yang sama untuk setiap fixture, dan mengembalikan laporan agregat JSON dengan `compileExecution` dan `compileDiagnostics` untuk setiap fixture. Ia masih merupakan arahan penyelenggara, bukan kebergantungan masa jalankan plugin. + +Apabila mesin penyelenggara belum mempunyai pemproses grafik yang dikonfigurasi, jalankan arahan fixture yang sama tanpa `--compile-executable` dan simpan pintu gerbang persekitaran secara eksplisit: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +Laluan tersebut masih menulis artefak fixture yang ditentukan secara deterministik `.tex`, tetapi mengembalikan `ok: false` dengan `rendererAvailability.status` ditetapkan kepada `missing-configuration` dan diagnosis `compile-executable-invalid`. Anggap ia hanya sebagai bukti ketersediaan pemproses grafik; ia bukan kompilasi, render-smoke, atau penerimaan visual. + +### Bentuk Promptn Rujukan Emas + +Untuk penggunaan jangka pendek, sediakan rujukan emas yang boleh dirender sebelum meminta varian litar. Promptn yang terhad harus mengekalkan prakata, skala koordinat, gaya titik rujukan, dan konvensyen laluan: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +Untuk inverter CMOS, promptn harus meminta topologi yang jelas serta kekangan susun atur, bukan sekadar “lukis inverter CMOS”: + +- kekalkan `VDD` di bahagian atas, `GND` di bahagian bawah, input di sebelah kiri, output di sebelah kanan; +- Guna `pmos` di atas `nmos`, dengan pintu bersama dan saluran pembuangan bersama; +- Pertahankan nod keluaran di persimpangan saluran pembuangan dan tandakan ia dengan `*-o`; +- Gunakan penanda ber nama (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) daripada koordinat yang disimpulkan secara visual; +- Elakkan wayar bersudut atau bersilang kecuali diperlukan dari segi elektrik. + +### Progres Semasa dan Fasa Seterusnya + +| Kawasan | Status semasa | Langkah seterusnya | +|------|----------------|-----------| +| Diagram umum | Pipelajn berdasarkan spesifikasi telah dilaksanakan untuk Mermaid, JSON Canvas, Vega-Lite, HTML | Terus luaskan liputan pengesahan semantik | +| Rajah yang boleh diubah suai | Sempadan artifak `editable-html-svg`, Draw.io XML, dan Drawnix JSON telah dilaksanakan | Tambah primitif yang lebih kaya hanya selepas ujian membuktikan kebolehan pengubahsuaian | +| Sokongan CLI | `npm run diagram:export-artifact` mengeksport HTML/SVG, Draw.io, dan Drawnix yang boleh diubah suai daripada satu `DiagramSpec` | Tambah peranti asap khusus sasaran apabila sasaran baru dihantar | +| circuitikz | `CircuitSpec -> circuitikz` prototaip mengeksport sumber biasa, inverter CMOS, `cmos-buffer` / `cmos-buffer-v1`, `cmos-transmission-gate` / `cmos-transmission-gate-v1`, `cmos-nand2` / `cmos-nand2-v1`, dan `cmos-nor2` / `cmos-nor2-v1` templat emas, projek `layoutHints.inputSide` dan `layoutHints.outputSide` ke penempatan port input/output yang pasti tanpa mengubah topologi, menolak perubahan topologi pembaikan melalui `--topology-reference`, mengeluarkan ringkasan pembaikan yang memelihara topologi melalui `--repair-brief-output` dan skema `notemd.circuitikz.repair-brief.v1`, termasuk kandungan penyerahan berstruktur `repairPrompt` dengan `diagnosticFocus`, `acceptanceCriteria`, dan peranan `topology-preserving-circuitikz-repair`, mengesahkan calon pembaikan melalui `--repair-brief`, mengembalikan bukti pintu `repairAcceptance` melalui skema `notemd.circuitikz.repair-acceptance.v1` dengan `readyForVisualAcceptance` dan `remainingChecks`, menyimpan bukti tersebut melalui `--repair-acceptance-output`, menganalisis log kompilasi, boleh menjalankan pemproses tempatan eksplisit serta `--expected-artifact`, SVG `--expected-svg-text`, pemeriksaan metadata kebolehaksesan melalui `aria-label`, `<title>`, dan `<desc>`, pengecualian elemen SVG tersembunyi/transparent, klasifikasi `render-svg-text-path-only` / `pathOnlyGlyphUseCount` untuk label hanya laluan, pemeriksaan penempatan glyph hanya laluan untuk `<use href="#...">`, diagnosis pertindihan glyph hanya laluan melalui `render-svg-path-glyph-overlap`, pengendalian titik arus laluan tertutup untuk `Z/z`, sempadan lengkung tepat untuk ekstrem A/a, sempadan lengkung Bezier tepat untuk ekstrem C/S/Q/T, pemeriksaan pertindihan label dengan sempadan yang mengambil kira ketebalan garisan SVG, pemeriksaan geometri lukisan `polyline` / `polygon`, geometri label yang diletakkan `tspan`, geometri teks yang diletakkan dengan mengambil kira `text-anchor`, geometri yang mengambil kira transformasi untuk SVG bounded-canvas/text-overlap dan label-vs-drawing asap melalui `render-svg-label-overlap`, serta pemeriksaan skrin tangkapan PNG bukan kosong / dipotong / latar tebal, termasuk palet warna berindeks dengan alpha, sampel transparan grayscale/RGB tRNS, dan panduan khusus format `render-png-unsupported` untuk PNG Adam7 interlaced dan kegagalan kedalaman bit berindeks, melalui `foregroundBounds`, `foregroundDensity`, `render-png-content-clipped`, dan `render-png-foreground-dense` tanpa analisis shell, termasuk peranti asap penyelenggaraan agregat melalui `npm run diagram:smoke-circuitikz`, merekod konfigurasi pemproses yang hilang melalui `rendererAvailability.status: "missing-configuration"` dan `compile-executable-invalid`, serta mempunyai diagnosis pratonton umum, kiraan ringkasan diagnosis, entri sejarah yang mengambil kira diagnosis, dan alternatif hanya sumber melalui `RenderArtifact.diagnostics` dan mod pratonton | Tambah pengenalan label pada tahap OCR untuk teks visual hanya laluan, pemeriksaan pertindihan pada tahap piksel yang tepat, liputan laluan SVG yang lebih luas apabila diperlukan, pemasangan/pengesanan pemproses secara automatik hanya jika ia boleh kekal sebagai pilihan, dan pelaksanaan pembaikan yang memelihara topologi secara automatik | +| Pengintegrasian TikZJax | Pemacu render calon untuk paparan sisi Obsidian | Biarkan ia sebagai pilihan; jangan jadikan TikZJax sebagai kebergantungan masa jalankan plugin yang wajib | + +## Konfigurasi + +| Pengaturan | Lalai | Kesan | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | Tukar antara pendekatan berdasarkan spesifikasi dan Mermaid lama | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = Mermaid sahaja; `'best-fit'` = sasaran asli + alternatif | +| `preferredDiagramIntent` | `undefined` (auto) | Atur semula pengesanan niat automatik | +| `summarizeToMermaidLanguage` | `'en'` | Bahasa sasaran untuk label diagram | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | LLM setiap tugas untuk penjanaan diagram | +| `autoMermaidFixAfterGenerate` | (daripada pemalar) | Jalankan pembaiki lama secara automatik pada output Mermaid | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | Lengkapi sumber dengan pengetahuan vault tempatan | + +### Peningkatan Pengetahuan Tempatan + +Apabila diaktifkan, Notemd akan mendapatkan petikan konteks yang relevan daripada pangkalan pengetahuan tempatan vault anda (berasaskan MiniSearch) dan menambahkannya di hadapan markdown sumber. Nota promosi pengayaan menyatakan: "hanya rujukan sokongan; kekalkan struktur utama setia kepada nota sumber." + +### Mod Keserasian + +- **`legacy-mermaid`**: Semua niat diarahkan ke Mermaid. Niat bukan-Mermaid (canvasMap, dataChart) dipaksa ke `flowchart` atau `mindmap`. Tiada rantaian sandaran. +- **`best-fit`**: Setiap niat diarahkan ke sasaran asalnya. Jika yang utama gagal, ia akan melalui rantaian sandaran (contohnya, Vega-Lite → Mermaid → HTML). + +## Pratonton & Eksport + +| Tindakan | Kaedah | +|--------|--------| +| Eksport SVG | Pembina `mermaid.render()` / `vega.View.toSVG()` / SVG untuk Canvas | +| Eksport PNG | SVG → Imej → Canvas (nisbah piksel peranti 1x-3x) → ArrayBuffer PNG | +| Simpan Sumber | Kandungan artifak mentah disimpan dengan lanjutan khusus sasaran | +| Pratonton Hanya Sumber | Artifak bukan inline dengan kandungan sumber dipaparkan sebagai kod bersama diagnosis, tanpa rendering iframe | +| Pemeriksaan Semantik | Mermaid, JSON Canvas, Vega-Lite, dan HTML/SVG yang boleh diubah suai telah diperiksa oleh `scripts/diagram-semantic-verification.js` | + +**Caching**: RenderCache menggunakan kunci JSON yang tetap daripada `{spec, target, theme}`. Penghapusan duplikasi semasa proses mengelakkan paparan berulang. + +## Tips + +- **Mulakan dengan mod `best-fit`** — ia menghasilkan output visual terbaik untuk setiap jenis niat +- **Gunakan model yang berkuasa untuk diagram yang kompleks** — carta alir dan diagram ER mendapat manfaat daripada GPT-4o atau Claude +- **Aktifkan pengetahuan tempatan** untuk diagram khusus domain — konteks vault yang relevan meningkatkan ketepatan +- **Seterakan `autoMermaidFixAfterGenerate`** — ralat sintaks Mermaid sering berlaku tanpanya +- **Alat pembaiki warisan adalah menyeluruh** — jika pratonton Mermaid gagal, menjalankan arahan pembaiki secara manual biasanya dapat menyelesaikannya + +--- + +## Langkah Seterusnya + +- 🔗 [Wiki-Links](./wiki-links) — Cara konsep dikaitkan secara dalam talian +- 📝 [Concept Notes](./concept-notes) — Ekstrak konsep untuk bahan sumber diagram +- 🔍 [Research](./research) — Tambah data daripada web ke dalam diagram diff --git a/website/i18n/ms/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/ms/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..6a8fd257 --- /dev/null +++ b/website/i18n/ms/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "Penyelidikan & Pencarian Web" +description: "Integrasikan pencarian web ke dalam nota anda" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Penyelidikan & Pencarian Web + +<TLDR> +**Notemd akan mencari di web dan menyuntik hasil yang diringkaskan LLM terus ke dalam nota anda.** Tavily API merupakan backend pencarian utama; DuckDuckGo berfungsi sebagai alternatif tanpa tetapan. Hasilnya diringkaskan dengan rujukan sumber dan ditambah di bawah tajuk `## Research`. Ia menyokong penyelidikan nota tunggal, penyelidikan folder secara berkumpulan, serta pemilihan model untuk langkah ringkasan mengikut tugas. + +Ini merupakan sebahagian daripada [Obsidian Panduan Pengurusan Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Gambaran Keseluruhan + +Penyelidikan merupakan salah satu integrasi paling berkuasa Notemd: ia menghubungkan proses membaca, mencari, dan menulis. Daripada beralih ke pelayar untuk mencari istilah yang tidak dikenali, anda hanya perlu menandakan istilah tersebut dan biarkan Notemd mencari, meringkaskan, serta menambah hasilnya — semuanya dalam vault anda. + +Proses ini boleh dikonfigurasikan sepenuhnya. Anda boleh memilih penyedia pencarian, LLM yang akan menulis ringkasan, serta sama ada hasilnya ditambah ke nota aktif atau ditulis ke fail berasingan. Mod berkumpulan membolehkan anda menyelidik setiap nota dalam sebuah folder dengan satu klik. + +## Cara Ia Berfungsi + +### Pipelai Cari-Kemudian-Ringkaskan + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **Pengambilan pertanyaan** -- Notemd mengambil istilah carian daripada pilihan anda atau tajuk nota. +2. **Pencarian web** -- Tavily dicuba terlebih dahulu. Jika kunci API tidak dikonfigurasikan, DuckDuckGo akan digunakan secara automatik (tiada kunci diperlukan). +3. **Ringkasan LLM** -- Hasil carian mentah dihantar ke LLM yang telah dikonfigurasikan, yang kemudian menghasilkan ringkasan ringkas dengan rujukan sumber secara terus. +4. **Menambah** -- Ringkasan yang telah diformat akan ditambah di bawah tajuk `## Research` dalam nota aktif. + +### Tavily berbanding DuckDuckGo + +| Aspek | Tavily | DuckDuckGo | +|--------|--------|------------| +| Kunci API | Diperlukan (tahap percuma tersedia) | Tidak diperlukan | +| Kualiti hasil | Lebih tinggi (direka khusus untuk AI) | Cukup untuk pertanyaan umum | +| Had kelajuan | Tahap percuma yang banyak | Tergantung pada pengurangan kelajuan | +| Konfigurasi | `tavilyApiKey` dalam tetapan | Tiada konfigurasi -- beralih automatik | + +### Penyelidikan Folder Berkumpulan + +Klik kanan pada folder dan pilih **"Notemd: Folder penyelidikan"**. Setiap fail `.md` dalam folder diproses secara berurutan (atau secara selari mengikut kekonduksian yang ditetapkan). Setiap nota menerima ringkasan penyelidikan tersendiri. + +## Konfigurasi + +| Pengaturan | Lalai | Kesan | +|---------|---------|--------| +| `tavilyApiKey` | `''` | Kunci Tavily API. Apabila kosong, DuckDuckGo digunakan sepenuhnya. | +| `researchProvider` / `researchModel` | DeepSeek | LLM setiap tugas untuk meringkaskan hasil carian | +| `maxResearchContentTokens` | `4000` | Bajet token untuk kandungan yang dihantar ke LLM. Yang berlebihan akan dipotong. | +| `researchAppendToNote` | `true` | Tambahkan ringkasan pada nota asal. Jika palsu, buat fail berasingan. | +| `researchLanguage` | `'en'` | Bahasa keluaran untuk penyelidikan yang diringkaskan | + +### Saranan model setiap tugas + +Penyelidikan mendapat manfaat daripada model yang mampu mengendalikan kandungan pelbagai bahasa dan menghasilkan teks yang terstruktur dengan baik. Pertimbangkan: + +- **DeepSeek** -- lalai, berpatutan, kualiti tinggi +- **GPT-4o** -- ringkasan berkualiti lebih tinggi, kos lebih mahal +- **Gemini Flash** -- cepat dan murah, sesuai untuk pertanyaan biasa + +## Contoh + +Anda sedang membaca kertas kerja mengenai *mekanisme perhatian transformer* dan menemui istilah yang tidak dikenali: *relative positional encoding*. Daripada membiarkan Obsidian: + +1. Sila highlight **"relative positional encoding"** +2. Klik kanan --> **"Notemd: Penyelidikan dan ringkasan"** +3. Notemd akan mencari di web, meringkaskan hasil teratas, dan menambahkan: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +Ringkasan tersebut kini menjadi sebahagian daripada fail anda, boleh dicari, boleh dipautkan, dan boleh diakses tanpa sambungan internet. + +## Tips + +- **Tetapkan kunci Tavily untuk hasil terbaik** -- walaupun versi percuma juga memberikan ke relevanan yang lebih baik berbanding DuckDuckGo secara langsung. +- **Gunakan model ringkasan yang berkebolehan** -- model murah mungkin merendahkan kandungan teknikal yang halus. +- **Lakukan penyelidikan secara berkumpulan** selepas membaca sekali untuk mengisi kekosongan dalam banyak nota pada masa yang sama. +- **Semak ringkasan yang ditambahkan** -- LLM boleh menghasilkan butiran sumber yang salah. Sahkan dakwaan utama. + +--- + +## Langkah Seterusnya + +- [Concept Notes](./concept-notes) -- Ekstrak dan simpan istilah penting daripada hasil penyelidikan +- [Wiki-Links](./wiki-links) -- Pautkan konsep yang diperoleh daripada penyelidikan di seluruh fail anda +- [Translation](./translation) -- Terjemahkan ringkasan penyelidikan ke dalam bahasa lain +- [Pembekal LLM](/docs/providers/overview) -- Konfigurasikan model yang digunakan untuk ringkasan diff --git a/website/i18n/ms/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/ms/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..0abac24a --- /dev/null +++ b/website/i18n/ms/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "Terjemahan" +description: "Terjemahkan nota dan pilihan" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# Terjemahan + +<TLDR> +**Notemd menterjemah teks antara 21+ bahasa menggunakan terjemahan yang dikuasakan oleh LLM.** Ia menyokong terjemahan pilihan tunggal, terjemahan nota sepenuhnya, dan terjemahan folder secara berkumpulan. Setiap tugas terjemahan boleh menggunakan penyedia dan model khusus melalui tetapan setiap tugas. Bahasa keluaran boleh dikonfigurasikan secara berasingan daripada bahasa UI. Hasilnya akan ditambahkan atau ditulis ke dalam fail baru mengikut pilihan anda. + +Ini merupakan sebahagian daripada [Obsidian Panduan Pengurusan Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Gambaran Keseluruhan + +Terjemahan dalam Notemd bukanlah carian kamus -- ia merupakan terjemahan yang dikuasakan oleh LLM dan memahami konteks. Model tersebut melihat keseluruhan perenggan atau nota, sekaligus mengekalkan nada, istilah khusus bidang, dan struktur ayat. Ini menghasilkan hasil yang lebih berkualiti berbanding perkhidmatan terjemahan frasa demi frasa, terutamanya untuk penulisan teknikal, akademik, dan kreatif. + +Ciri ini menyokong tiga skop: pilihan, nota aktif, dan folder keseluruhan. Dengan gabungan pemilihan model setiap tugas, anda boleh menggunakan model yang pantas (Gemini Flash) untuk terjemahan biasa dan model yang berkuasa (Claude Sonnet) untuk kandungan yang memerlukan nuansa -- tanpa perlu mengubah penyedia global anda. + +## Cara Ia Berfungsi + +### Arahan Terjemahkan + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **Pengesanan sumber** -- LLM menentukan bahasa sumber daripada kandungan. Anda tidak perlu menentukannya secara manual. +2. **Pembinaan promp** -- Notemd membina promp yang merangkumi bahasa sasaran, petunjuk bidang pilihan, dan kandungan yang perlu diterjemahkan. +3. **Terjemahan LLM** -- `translateProvider` / `translateModel` yang telah dikonfigurasikan memproses permintaan. Model tersebut mengekalkan format markdown, pautan wiki, dan blok kod. +4. **Keluaran** -- Teks yang telah diterjemahkan akan ditambahkan di bawah teks asal atau ditulis ke dalam fail baru dalam vault. + +### Pasangan Bahasa + +Notemd menyokong mana-mana pasangan bahasa yang disokong oleh LLM di sebaliknya. Pasangan yang biasa termasuk: + +| Sumber | Sasaran | Kualiti Biasa | +|--------|--------|----------------| +| Bahasa Inggeris | Bahasa Cina (Ringkas) | Cemerlang | +| Cina | Inggeris | Cemerlang | +| Inggeris | Jepun | Sangat baik | +| Inggeris | Jerman / Perancis / Sepanyol | Sangat baik | +| Mana-mana yang disokong | Mana-mana yang disokong | Tergantung pada model | + +Pengaturan `translateLanguage` mengawal **bahasa keluaran**. Bahasa sumber dikenal pasti secara automatik. + +### Pemilihan Model Mengikut Tugas + +Kualiti terjemahan berbeza dengan ketara mengikut model. Notemd membolehkan anda menetapkan model khusus untuk tujuan terjemahan sahaja: + +| Model | Kelajuan | Kualiti | Kos | Paling Sesuai Untuk | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | Cepat | Baik | Rendah | Gunaan harian, jumlah besar | +| `gpt-4o-mini` | Cepat | Baik | Rendah | Pencarian pantas | +| `deepseek-chat` | Sederhana | Baik | Sangat rendah | Bajet pelbagai bahasa | +| `claude-3-5-sonnet` | Sederhana | Cemerlang | Sederhana | Teknikal / akademik | +| `gpt-4o` | Sederhana | Cemerlang | Sederhana | Prosa yang sensitif terhadap nuansa | + +### Terjemahan Folder Berkumpulan + +Klik kanan pada folder dan pilih **"Notemd: Terjemahkan folder"** untuk menterjemahkan setiap nota dalam folder tersebut. Setiap fail diproses secara berasingan. Tetapan serentak mengawal berapa banyak fail yang diterjemahkan secara serentak. + +## Konfigurasi + +| Pengaturan | Lalai | Kesan | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | Penyedia khusus untuk tugas terjemahan | +| `translateLanguage` | `'en'` | Bahasa output sasaran | +| `translationAppendToNote` | `true` | Tambahkan teks yang telah diterjemahkan di bawah teks asal. Jika bernilai palsu, fail baru akan dibuat. | +| `batchConcurrency` | `3` | Bilangan fail yang diproses secara serentak semasa terjemahan berkumpulan | + +## Contoh + +Anda sedang membaca nota penyelidikan dalam bahasa Cina dan ingin versi dalam bahasa Inggeris: + +1. Buka nota tersebut +2. Klik kanan --> **"Notemd: Terjemahkan fail semasa"** +3. Notemd mengesan bahasa Cina, menterjemahkannya ke bahasa sasaran yang telah dikonfigurasikan (Bahasa Inggeris), dan menambahkan teks terjemahan di bawahnya: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +Teks Cina asal kekal tidak berubah di atas teks terjemahan. Tajuk `## Translation` memastikan kedua-dua versi berada dalam fail yang sama untuk rujukan yang mudah. + +## Tips + +- **Gunakan Gemini Flash untuk jumlah yang banyak** -- ia merupakan pilihan paling cepat dan murah untuk terjemahan berkumpulan folder yang besar. +- **Pelihara pautan wiki** -- arahan Notemd menyuruh LLM untuk mengekalkan `[[wiki-links]]` tanpa diubah dalam terjemahan. Semak semula selepas terjemahan, kerana sesetengah model kadangkala membuka pautan tersebut. +- **Tetapkan bahasa keluaran secara eksplisit** -- pengesanan automatik berfungsi untuk sumber, tetapi sentiasa konfigurasikan `translateLanguage` untuk mengelakkan kekeliruan mengenai sasaran. +- **Terjemah nota konsep secara berkumpulan** -- jika folder konsep anda dalam satu bahasa dan anda memerlukannya dalam bahasa lain, terjemahan pada peringkat folder akan melakukannya dalam satu langkah. + +--- + +## Langkah Seterusnya + +- [Penyelidikan](./research) -- Cari dan ringkaskan dalam mana-mana bahasa, kemudian terjemahkan hasilnya +- [Aliran kerja](./workflows) -- Gabungkan terjemahan dengan pautan wiki atau pengekstrakan konsep +- [Pemprosesan berkumpulan](/docs/advanced/batch-processing) -- Tingkah laku serentak dan menulis semula untuk operasi folder +- [Penyedia LLM](/docs/providers/overview) -- Pilih model terbaik untuk pasangan bahasa anda diff --git a/website/i18n/ms/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/ms/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..2f87b8f2 --- /dev/null +++ b/website/i18n/ms/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "Wiki-Links" +description: "Penghasilan pautan wiki automatik untuk konsep utama" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# Wiki-Links + +<TLDR> +**Notemd akan menambah `[[wiki-links]]` secara automatik ke dalam konsep utama dalam nota anda.** LLM akan membaca kandungan anda, mengenal pasti istilah penting dalam konteks, dan memasukkan pautan wiki gaya Obsidian pada setiap kemunculan. Secara pilihan, ia boleh membuat fail nota konsep dengan pautan balik. Ia menyokong penindasan sinonim, integriti pautan apabila nama ditukar atau dipadam, dan mod pengeluaran tulen (tanpa pengubahsuaian fail). Berbeza dengan Auto Link yang hanya memadankan tajuk nota sedia ada, Notemd menggunakan AI untuk mengenal pasti konsep baru dan membuat nota yang bersesuaian. Ini merupakan sebahagian daripada [Obsidian Panduan Pengurusan Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Gambaran Keseluruhan + +Penggabungan pautan wiki merupakan ciri utama Notemd. Ia menukar teks biasa kepada graf pengetahuan yang bersambung dengan cara berikut: + +1. **Menganalisis nota anda** menggunakan LLM +2. **Mengenal pasti konsep utama** (istilah, orang, kaedah, teori) +3. **Memasukkan `[[wiki-links]]`** pada setiap kemunculan +4. **Membuat nota konsep** (pilihan) dengan pautan balik + +## Cara Ia Berfungsi + +### Proses + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### Contoh + +**Sebelum:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**Selepas:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## Penggunaan + +### Asas: Tambah Pautan ke Nota Semasa + +1. Buka sebuah nota +2. Klik kanan dalam editor → **"Proses fail (tambah pautan)"** +3. Tunggu beberapa saat +4. Konsep kini telah dipautkan! + +### Bilangan Kumpulan: Proses Beberapa Nota + +1. Klik kanan pada folder dalam File Explorer +2. Pilih **"Notemd: Process folder (add links)"** +3. Konfigurasi: + - Kerjasama Serentak (bilangan fail secara serentak) + - Gantikan Pautan Sedia Ada (ya/tidak) +4. Klik **Proses** + +### Pemilihan: Pautkan Teks Spesifik + +1. Sorot teks yang akan diproses +2. Klik kanan → **"Proses Pemilihan (Tambah Pautan)"** +3. Hanya bahagian yang disorot sahaja dianalisis + +## Notemd berbanding Auto Link + +Obsidian mempunyai dua kaedah untuk pautan wiki automatik: + +| | **Auto Link** | **Notemd** | +|--|---------------|-------------| +| Sumber pautan | Tajuk nota sedia ada dalam vault | Konsep yang dikenal pasti oleh LLM dalam kandungan | +| Boleh sambung konsep baru | Tidak — tajuk mesti sudah wujud | Ya — AI mengenal pasti konsep dan mencipta nota | +| Pengendalian sinonim | Tidak | Ya — penindasan sinonim | +| Penciptaan nota konsep | Tidak | Ya — dengan pautan balik dan penghapusan duplikasi | +| Pemprosesan secara berkumpulan | Tidak (fail tunggal) | Ya (tahap folder) | +| Laluan model mengikut tugas | Tidak | Ya | + +**Auto Link** adalah padanan tajuk: jika terdapat nota bernama "Machine Learning", ia akan membungkus kejadian dalam `[[Machine Learning]]`. Jika nota itu tidak wujud, tiada apa yang berlaku. + +**Notemd** dikendalikan oleh AI: LLM membaca kandungan anda, memahami konteks, mengenal pasti konsep yang *sepatutnya* disambungkan — walaupun tiada nota yang wujud lagi — dan mencipta pautan serta nota konsep. + +## Ciri-ciri + +### Penindasan Sinonim + +**Masalah:** "transformer", "transformers", "Transformer architecture" → 3 konsep berasingan + +**Penyelesaian:** Notemd mengesan duplikasi hampir sama dan menggunakan bentuk kanonik. + +**Konfigurasi:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### Integriti Pautan + +**Apabila anda menukar nama nota konsep:** +- Semua pautan wiki akan dikemaskini secara automatik (Obsidian ciri utama) +- Pautan balik kekal utuh + +**Apabila anda memadam nota konsep:** +- Pautan tetap ada tetapi dipaparkan sebagai "sebutan yang tidak terpaut" +- Anda boleh menciptanya semula daripada sebarang rujukan + +### Mod Ekstraksi Murni + +**Ekstrak konsep tanpa mengubah yang asal:** + +1. Klik kanan → **"Ekstrak konsep (tanpa pautan)"** +2. Nota konsep akan dihasilkan +3. Fail asal tidak terjejas + +Kes penggunaan: Memproses kandungan baca sahaja atau draf akhir. + +## Penghasilan Nota Konsep + +### Penciptaan automatik + +**Apabila diaktifkan (lazim), Notemd akan mencipta:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### Konfigurasi + +**Folder keluaran:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Struktur hierarki:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**Templat:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## Pilihan Lanjutan + +### Tetingkap Konteks + +**Berapa banyak teks sekeliling yang perlu dihantar:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +Lebih besar = ketepatan yang lebih baik, kos yang lebih tinggi. + +### Kekerapan Minimum + +**Hanya sambungkan konsep yang muncul berkali-kali:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +Aturkan kepada 2 atau 3 untuk memberi tumpuan pada tema yang berulang. + +### Pola yang Dikecualikan + +**Lompatkan perkataan tertentu:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +Mengelakkan pautan berlebihan pada istilah umum. + +### Prompt Khas + +**Tukar arahan LLM lalai:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +Ubah mengikut keperluan khusus domain (contohnya, "Fokus pada terminologi perubatan"). + +## Tips & Amalan Terbaik + +### ✅ LAKUKAN + +- **Proses nota dengan lebih daripada 100 perkataan** — Nota yang pendek menghasilkan sedikit konsep +- **Gunakan model yang berkuasa** untuk pengenalpastian konsep yang lebih baik (GPT-4o, Claude) +- **Semak sebelum menerima** — Pastikan pautan yang dicadangkan masuk akal +- **Bina secara berulang** — Proses 5-10 nota, semak graf, laraskan tetapan + +### ❌ JANGAN + +- **Terlalu banyak pautan** — Bukan setiap kata nama memerlukan pautan +- **Proses draf berulang kali** — Konsep mungkin berubah, tunggu sehingga stabil +- **Abaikan sinonim** — Aktifkan penindasan untuk elakkan "ML" berbanding "Machine Learning" + +## Prestasi + +### Kelajuan + +| Saiz Nota | GPT-4o-mini | Claude Sonnet | Ollama (lokal) | +|-----------|-------------|---------------|----------------| +| 500 perkataan | 2-3 saat | 3-5 saat | 5-10 saat | +| 2000 perkataan | 5-8 saat | 10-15 saat | 20-40 saat | +| 5000+ perkataan | Dibahagikan kepada bahagian (panggilan berbilang kali) | Dibahagikan kepada bahagian-bahagian | Dibahagikan kepada bahagian-bahagian | + +### Anggaran Kos + +**Contoh: Nota 1000 perkataan menggunakan GPT-4o-mini** +- Masukan: ~1500 token +- Keluaran: ~200 token +- Kos: ~ + +**Pemprosesan pukal 100 nota:** ~ + +## Pemecahan masalah + +### Tiada pautan ditambah. + +**Semak:** +1. LLM panggilan berjaya (Settings → Diagnostics) +2. Nota tersebut mempunyai kandungan yang mencukupi (>50 perkataan) +3. Konsep adalah teknikal/khusus (bukan sekadar kata ganti nama) + +**Cuba:** +- Gunakan model yang lebih berkuasa +- Tingkatkan tetingkap konteks +- Periksa kesahan kunci API + +### Terlalu Banyak Pautan + +**Penyelesaian:** +1. Tingkatkan kejadian minimum (2 atau 3) +2. Tambahkan perkataan biasa ke dalam senarai pengecualian +3. Gunakan model yang kurang agresif + +### Konsep yang Salah Disambungkan + +**Pembaikan:** +1. Guna prompt khas untuk kekhususan domain +2. Aktifkan penindasan sinonim +3. Semak secara manual dan buka ikatan + +### Pautan rosak selepas menukar nama + +**Ini merupakan tingkah laku normal Obsidian.** + +Untuk mengemaskini semua pautan: +1. Tukar nama nota konsep +2. Obsidian akan mengemaskini `[[old]]` secara automatik menjadi `[[new]]` + +--- + +## Langkah Seterusnya + +- 📖 [Nota Konsep](./concept-notes) — Kajian mendalam tentang penghasilan nota konsep +- 🔍 [Penggabungan Penyelidikan](./research) — Gabungkan pautan dengan penyelidikan web +- 🎨 [Diagram](./diagrams) — Visualisasikan graf pengetahuan anda diff --git a/website/i18n/ms/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/ms/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..4c1a0dd8 --- /dev/null +++ b/website/i18n/ms/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "Aliran Kerja" +description: "Rantaikan beberapa tugas menggunakan butang satu klik" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Aliran Kerja + +<TLDR> +**Notemd aliran kerja merantaikan beberapa tugas menjadi satu tindakan satu klik.** Tentukan urutan seperti `add-links > extract-concepts > research > diagram` menggunakan DSL yang mudah. Aliran kerja muncul sebagai butang di sidebar yang menjalankan keseluruhan rantai pada nota atau folder semasa. Ia disertakan dengan aliran kerja yang telah ditetapkan terlebih dahulu; cipta aliran kerja tersendiri dalam tetapan. Setiap langkah menggunakan konfigurasi model khusus tugas masing‑masing. + +Ini merupakan sebahagian daripada [Obsidian Panduan Pengurusan Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Gambaran Keseluruhan + +Aliran kerja menghapuskan kesukaran menjalankan tugas satu demi satu. Daripada perlu klik kanan sebanyak empat kali untuk menambah pautan, mengekstrak konsep, menyelidik istilah yang tidak dikenali, dan menjana diagram, anda hanya perlu tekan satu butang di sidebar dan keseluruhan rantai akan dijalankan. Notemd menguruskan urutan, penyebaran ralat, dan laporan kemajuan. + +Aliran kerja ditakrifkan dalam DSL ringan (bahasa khusus domain). Ia berada dalam tetapan, muncul sebagai butang yang boleh diklik di sidebar Obsidian, dan boleh digunakan pada nota semasa atau keseluruhan folder. + +## Cara Ia Berfungsi + +### Pipali Pelaksanaan Aliran Kerja + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **Parse** -- Rentetan DSL dipisahkan pada `>` (atau `>`) menjadi senarai berurutan pengenal pasti tugas. +2. **Resolve** -- Setiap pengenal pasti dipetakan kepada arahan dalaman (add-links, extract-concepts, research, translate, diagram, dll.). +3. **Execute** -- Langkah‑langkah dijalankan secara berurutan. Setiap langkah menggunakan penyedia dan model khusus tugas yang telah dikonfigurasikan. +4. **Error handling** -- Jika sesuatu langkah gagal, aliran kerja akan berhenti atau meneruskan ke langkah seterusnya, bergantung pada dasar ralat anda. +5. **Done** -- Pemberitahuan toast melaporkan kejayaan atau menyenaraikan langkah yang gagal. + +### Format DSL + +Aliran kerja ditakrifkan sebagai urutan pengenal pasti tugas yang dipisahkan oleh `>`: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**Pengenal pasti tugas yang tersedia:** + +| Pengenal pasti | Tindakan | +|------------|--------| +| `process-current-add-links` | Tambah pautan wiki ke nota aktif | +| `extract-concepts-current` | Keluarkan konsep daripada nota aktif | +| `research-and-summarize` | Menyelidik teks yang dipilih atau tajuk nota | +| `process-current-translate` | Menterjemah nota aktif | +| `summarize-to-mermaid` | Jana diagram daripada nota aktif | +| `generate-from-title` | Jana kandungan daripada tajuk nota | +| `extract-original-text` | Keluarkan teks asal (untuk OCR/kandungan yang discan) | + +**Variasi peringkat folder** gantikan `current` dengan `folder` dalam nama pengecam. + +### Aliran kerja pratetap berbanding Aliran kerja khusus + +Notemd disertakan dengan aliran kerja siap sedia untuk corak biasa: + +| Aliran kerja | Rantaian | Kes Penggunaan | +|----------|-------|----------| +| **Keluarkan Dengan Satu Klik** | tambah-pautan > keluarkan-konsep > menyelidik | Proses kertas penyelidikan dalam satu langkah | +| **Pipelin Penuh** | tambah-pautan > ekstrak-consep > kajian > diagram | Ekstraksi pengetahuan sepenuhnya dengan visualisasi | +| **Terjemah + Pautan** | terjemah > tambah-pautan | Terjemah kemudian pautkan konsep dalam bahasa sasaran | + +**Aliran kerja khusus** dibuat dalam tetapan: + +1. Buka **Tetapan** --> **Notemd** --> **Aliran Kerja** +2. Klik **"Tambah Aliran Kerja"** +3. Masukkan rantaian DSL (contohnya, `process-current-add-links>extract-concepts-current`) +4. Berikan nama paparan (contohnya, "Pautan Cepat + Ekstrak") +5. Butang baru akan muncul dalam sidebar dengan segera + +## Konfigurasi + +| Pengaturan | Lalai | Kesan | +|---------|---------|--------| +| `workflows` | Set prapentukan | Senarai definisi aliran kerja (nama + DSL) | +| `workflowContinueOnError` | `true` | Teruskan ke langkah seterusnya jika langkah semasa gagal | +| `workflowShowProgress` | `true` | Tunjukkan notifikasi kemajuan selepas setiap langkah selesai | + +### Model Setiap Tugas dalam Aliran Kerja + +Setiap langkah dalam aliran kerja menggunakan konfigurasi model khusus untuk setiap tugas. Anda tidak perlu menentukan model dalam DSL itu sendiri. Urutan penyelesaian adalah: + +1. Pembekal/model khusus tugas sekiranya `useMultiModelSettings` ada di sana +2. `activeProvider` global jika sebaliknya + +Ini bermakna `add-links` boleh berjalan pada DeepSeek sementara `research` berjalan pada GPT-4o -- semuanya dalam satu klik aliran kerja yang sama. + +## Contoh + +Anda baru sahaja mengimport PDF daripada sebuah kertas penyelidikan pembelajaran mesin ke dalam peti simpanan anda dan ingin pemungutan pengetahuan sepenuhnya: + +1. Buka nota yang diimport +2. Klik butang sidebar **"Full Pipeline"** +3. Notemd akan menjalankan: + - **Langkah 1**: Tambah pautan wiki -- `[[attention mechanism]]`, `[[transformer]]`, dan sebagainya. + - **Langkah 2**: Keluarkan konsep -- cipta nota konsep dalam folder konsep anda + - **Langkah 3**: Penyelidikan -- ringkaskan sumber web untuk istilah utama + - **Langkah 4**: Diagram -- hasilkan mindmap Mermaid bagi struktur kertas tersebut +4. Selepas kira-kira 30 saat, nota anda akan mempunyai pautan, nota konsep wujud, hasil penyelidikan ditambah, dan fail diagram disimpan + +Semuanya dengan satu klik sahaja. + +## Tips + +- **Mulakan dengan aliran kerja yang telah ditetapkan terlebih dahulu** -- ia meliputi corak yang paling biasa. Sesuaikan hanya apabila anda memerlukan urutan yang berbeza. +- **Aktifkan `workflowContinueOnError`** -- langkah diagram yang gagal tidak sepatutnya menghentikan keseluruhan saluran paip. +- **Guna aliran kerja folder** untuk pemprosesan pukal -- klik kanan pada folder, pilih aliran kerja, dan setiap nota akan diproses. +- **Berikan nama aliran kerja yang jelas** -- ruang di sidebar adalah terhad. Gunakan nama yang pendek dan berorientasikan tindakan seperti "Quick Extract" atau "Translate + Link". + +--- + +## Langkah Seterusnya + +- [Research](./research) -- Fahami apa yang dilakukan oleh langkah penyelidikan sebelum menambahkannya ke dalam aliran kerja +- [Wiki-Links](./wiki-links) -- Ciri pautan asas yang digunakan dalam kebanyakan aliran kerja +- [Concept Notes](./concept-notes) -- Pengeluaran konsep sebagai langkah dalam aliran kerja +- [Batch Processing](/docs/advanced/batch-processing) -- Kerjasama serentak dan laporan kemajuan untuk aliran kerja folder diff --git a/website/i18n/ms/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/ms/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..7fdc1466 --- /dev/null +++ b/website/i18n/ms/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "Konfigurasi" +description: "Konfigurasikan tetapan dan pilihan Notemd" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Konfigurasi + +<TLDR> +**Konfigurasi Notemd meliputi 6 kawasan utama:** (1) penyedia LLM dan kunci API, (2) pemilihan model mengikut tugas, (3) laluan keluaran dan templat, (4) bahasa UI dan bahasa keluaran, (5) perkhidmatan carian (Tavily/DuckDuckGo), (6) aliran kerja khusus. Semua tetapan berada di Obsidian Settings → Notemd. Perubahan akan berkuat kuasa serta-merta. +</TLDR> + +## Gambaran Keseluruhan Tetapan + +Akses: **Obsidian Settings (⚙️) → Notemd** + +### Bahagian Utama + +1. **Konfigurasi Penyedia** — kunci API, URL asas, model +2. **Tetapan Tugas** — pemilihan model mengikut tugas +3. **Konfigurasi Keluaran** — tempat menyimpan fail yang dijana +4. **Tetapan Bahasa** — UI dan bahasa keluaran +5. **Penggabungan Carian** — tetapan Tavily/DuckDuckGo +6. **Aliran Kerja** — rantaian butang khusus +7. **Tingkat Lanjut** — diagnostik, pemprosesan berkumpulan, penggolongan + +--- + +## 1. Konfigurasi Penyedia + +### Menambah Penyedia + +1. **Pilih penyedia** daripada senarai turun (lebih 30 tersedia) +2. **Masukkan kunci API** +3. **Pilihan**: Tetapkan asas khusus URL (untuk proksi/pintu gerbang) +4. **Klik "Dapatkan Senarai Model"** untuk sahkan sambungan +5. **Pilih model lalai** + +### Penyedia Biasa + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Lokal) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### Penyedia Pelbagai + +Anda boleh konfigurasi beberapa penyedia dan tukar di antara mereka mengikut tugas: +- **Penyedia utama**: Digunakan sebagai alternatif +- **Penyedia khusus tugas**: Gantikan untuk tugas tertentu + +--- + +## 2. Model Khusus Tugas + +Konfigurasi model yang berbeza untuk tugas yang berbeza untuk optimumkan kos/kualiti: + +### Jenis Tugas + +| Tugas | Model Lalai | Tujuan | +|------|--------------|---------| +| **Penghubungan** | Penyedia Utama | Kenal pasti konsep untuk pautan wiki | +| **Penghasilan Konsep** | Penyedia utama | Keluarkan dan terangkan konsep | +| **Penyelidikan** | Penyedia utama | Ringkaskan hasil carian web | +| **Terjemahan** | Penyedia utama | Terjemahkan teks | +| **Penghasilan Diagram** | Penyedia utama | Jana diagram Mermaid/Canvas | + +### Contoh: Tetapan yang Optimum dari Segi Kos + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### Cara untuk Mengkonfigurasi + +1. **Tetapan → Notemd → Tetapan Tugas** +2. Untuk setiap tugas, pilih: + - ✅ **Gunakan penyedia utama** (lazim) + - 🔄 **Gunakan penyedia khusus** → pilih penyedia + model + +--- + +## 3. Konfigurasi Keluaran + +### Keluaran Nota Konsep + +**Tempat nota konsep baru disimpan:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Templat:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### Pilihan Struktur Folder + +**Pilihan 1: Rata (semua konsep dalam satu folder)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**Pilihan 2: Hierarki (menurut folder sumber)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +Konfigurasikan: **Settings → Output → Use Hierarchical Folders** + +### Keluaran Diagram + +**Tempat diagram disimpan:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**Format:** +- `.mmd` (Mermaid sumber) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. Tetapan Bahasa + +### UI Bahasa + +**Bahasa antaramuka** (butang, menu, dialog): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +Ditokok: English, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Русский, العربية, dan lain-lain. + +### Bahasa Keluaran + +**Bahasa kandungan yang dijana** (nota konsep, ringkasan penyelidikan): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**Kes penggunaan:** Cina UI + hasil dalam Bahasa Inggeris untuk penyelidikan dwibahasa. + +### Sasaran Terjemahan + +**Bahasa sasaran lalai** untuk tugas terjemahan: + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. Penyepaduan Pencarian + +### Tavily (Disyorkan) + +**Perkhidmatan pencarian yang dioptimumkan oleh AI:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +Dapatkan kunci: [tavily.com](https://tavily.com/) + +**Ciri-ciri:** +- Hasil berkualiti tinggi +- Ringkasan yang dioptimumkan oleh AI +- Rujukan sumber + +### DuckDuckGo (Eksperimen) + +**Tiada kunci API diperlukan:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**Nota:** Kualiti lebih rendah, tiada penyesuaian. + +--- + +## 6. Konfigurasi Aliran Kerja + +### Mencipta Aliran Kerja Khas + +**Aliran kerja menggabungkan beberapa tugas ke dalam satu butang.** + +1. **Tetapan → Aliran Kerja → Tambah Aliran Kerja** +2. **Nama**: "Aliran Analisis Kertas" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **Simpan** + +Butang baru muncul di sidebar kiri. + +### Sintaks DSL + +**Format:** `action1>action2>action3` + +**Tindakan yang tersedia:** +- `process-current-add-links` — Tambah pautan wiki ke nota semasa +- `extract-concepts-current` — Jana nota konsep +- `research-and-summarize` — Penyelidikan web + ringkasan +- `translate-current` — Terjemahkan nota semasa +- `summarize-as-mermaid` — Jana diagram Mermaid +- `process-folder-add-links` — Proses folder secara berkumpulan + +**Contoh Aliran Kerja:** + +**Pengeluaran Konsep Cepat:** +``` +process-current-add-links>extract-concepts-current +``` + +**Penyelidikan Mendalam:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**Analisis Pelbagai Bahasa:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. Tetapan Lanjutan + +### Pemprosesan Secara Pukal + +**Proses berbilang fail secara serentak:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +Lebih tinggi = lebih cepat tetapi lebih banyak panggilan API. + +### Pembahagian Bijak + +**Untuk nota yang panjang, bahagikan kepada bahagian:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +Mengelakkan ralat had token. + +### Panel Diagnostik + +**Tonton log terperinci:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +Menunjukkan: +- API permintaan/jawapan +- Penggunaan token +- Masa pemprosesan +- Ralat + +### Pengesanan Konsep Berulang + +**Elakkan konsep yang hampir serupa:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +Lebih tinggi = penggabungan yang lebih agresif. + +--- + +## Profil Konfigurasi + +### Tetapan Eksport/Import + +**Kongsi konfigurasi antara peranti:** + +1. **Tetapan → Lanjutan → Eksport Konfigurasi** +2. Menyimpan `notemd-config.json` +3. Pada peranti baru: **Import Konfigurasi** + +**Apa yang termasuk:** +- Kunci Penyedia API (pilihan) +- Pemilihan model +- Laluan keluaran +- Aliran kerja khusus + +--- + +## Konfigurasi yang disyorkan + +### Untuk Pelajar + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### Untuk Penyelidik + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### Untuk Pengguna yang Mengutamakan Privasi + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### Untuk Kerja Dua Bahasa + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## Penyelesaian Masalah Konfigurasi + +### Tetapan Tidak Disimpan +- Semak kebenaran fail di `.obsidian/plugins/notemd/` +- Cuba: Nonaktifkan plugin → Aktifkan semula + +### Kunci API Tidak Sah +- Tiada Ruang Tambahan +- Semak Tempoh Tamat +- Sahkan Kredit dalam Papan Pemuka Penyedia + +### Model Tidak Dimuat +- Klik "Dapatkan Senarai Model" untuk Memperbaharui +- Semak Sambungan Rangkaian +- Cuba Penyedia yang Berbeza + +--- + +## Langkah Seterusnya + +- 📖 [Terokai Ciri-ciri](../features/wiki-links) +- 🔌 [Panduan Tetapan Penyedia](../providers/overview) +- ❓ [FAQ](../faq) diff --git a/website/i18n/ms/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/ms/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..e0f8c0a1 --- /dev/null +++ b/website/i18n/ms/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "Pemasangan" +description: "Cara memasang Notemd dalam Obsidian" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Pemasangan + +<TLDR> +**Pasang Notemd dalam masa kurang dari 2 minit.** Terdapat dua kaedah: (1) Plugin Komuniti Obsidian (disyorkan, pemasangan satu klik), atau (2) Pemasangan manual melalui GitHub Releases. Memerlukan Obsidian versi 0.15.0+ atau lebih tinggi. Berfungsi pada Windows, macOS, Linux, iOS, dan Android. Tiada kebergantungan luaran. Lebih daripada 4k muat turun, dilisensikan di bawah MIT. +</TLDR> + +## Kaedah 1: Plugin Komuniti (Disyorkan) + +1. Buka **Tetapan Obsidian** (ikon ⚙️ atau `Ctrl/Cmd + ,`) +2. Pergi ke **Plugin Komuniti** +3. Klik **Cari** +4. Cari **"Notemd"** +5. Klik **Pasang** +6. Klik **Aktifkan** + +**Selesai!** Anda akan melihat ikon Notemd di bar sisi kiri anda. + +## Kaedah 2: Pemasangan Manual + +### Prasyarat +- Obsidian versi 0.15.0 atau lebih tinggi +- Git (pilihan, untuk menyalin repositori) + +### Langkah-langkah + +1. **Muat turun fail-fail** dari [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest): + - `main.js` + - `styles.css` + - `manifest.json` + +2. **Cari folder plugin vault anda:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +Jika folder `plugins` tidak wujud, buatlah ia. + +3. **Buat folder Notemd:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **Salin ketiga-tiga fail** ke dalam folder `notemd`. + +5. **Muat semula Obsidian:** + - Tekan `Ctrl/Cmd + R`, atau + - Mulakan semula Obsidian + +6. **Aktifkan plugin tersebut:** + - Tetapan → Plugin komuniti + - Cari "Notemd" dalam senarai + - Nyalakan ia + +## Pilihan lain: Pasang melalui BRAT + +Jika anda menggunakan [BRAT plugin](https://github.com/TfTHacker/obsidian42-brat): + +1. Buka tetapan BRAT +2. Klik "Tambah plugin Beta" +3. Masukkan: `Jacobinwwey/obsidian-NotEMD` +4. Klik "Tambah Plugin" +5. Aktifkan Notemd dalam plugin Komuniti + +## Pengesahan + +Selepas pemasangan, sahkan Notemd berfungsi: + +1. Buka sebarang nota +2. Klik kanan di editor +3. Anda sepatutnya nampak arahan Notemd seperti: + - "Proses fail (tambah pautan)" + - "Ekstrak konsep" + - "Kaji dan ringkaskan" + +## Langkah Seterusnya + +- **Konfigurasikan penyedia LLM:** [Quick Start →](./quick-start) +- **Penyelesaian masalah:** [Common Issues →](../advanced/troubleshooting) + +## Keperluan sistem + +| Platform | Versi | Status | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | Diperlukan | +| **Windows** | 7+ | ✅ Disokong | +| **macOS** | 10.15+ | ✅ Disokong | +| **Linux** | Bila-bila | ✅ Disokong | +| **iOS** | 15+ | ✅ Disokong | +| **Android** | 5+ | ✅ Disokong | + +## Pemadaman + +Untuk memadam Notemd: + +1. Tetapan → Plugin Komuniti +2. Cari "Notemd" +3. Klik ikon ❌ +4. Secara pilihan, padam folder plugin: `<vault>/.obsidian/plugins/notemd/` + +Data anda (nota, nota konsep, dll.) kekal tidak terganggu. + +## Memperbaharui + +### Pembaruan automatik (Disyorkan) +Obsidian akan memeriksa pembaruan plugin secara automatik. Apabila versi baru tersedia: +1. Tetapan → Plugin Komuniti +2. Klik "Periksa Pembaruan" +3. Klik "Pembaruan" di sebelah Notemd + +### Pembaruan manual +Muat turun versi terkini dan gantikan tiga fail dalam folder plugin anda. + +## Dapatkan Bantuan + +- 📖 [Panduan Permulaan Cepat](./quick-start) +- ❓ [FAQ](../faq) +- 💬 [Komuniti Discord](https://discord.gg/qnGgsQ9W) +- 🐛 [Laporkan Isu](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/ms/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/ms/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..037a0e3b --- /dev/null +++ b/website/i18n/ms/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "Panduan Permulaan Cepat" +description: "Mulakan dengan Notemd dalam masa 5 minit" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Panduan Permulaan Cepat + +<TLDR> +**Mula gunakan Notemd dalam masa 5 minit.** Tiga langkah: (1) Tambah kunci LLM API (atau gunakan Ollama tempatan), (2) Buka nota dan jalankan “Process file (add links)”, (3) Terokai aliran kerja satu klik di sidebar. Menyokong lebih daripada 30 penyedia. Tiada keperluan untuk menulis kod. Berfungsi tanpa sambungan internet dengan Ollama. +</TLDR> + +## Langkah 1: Konfigurasikan Penyedia LLM Pertama Anda (2 min) + +### Pilihan A: Penyedia Awan (OpenAI, Anthropic, dll.) + +1. Buka **Settings** → **Notemd** +2. Di bawah **LLM Provider Configuration**, pilih penyedia daripada senarai turun +3. Masukkan **API Key** anda +4. (Pilihan) Klik **“Get Model List”** untuk lihat model yang tersedia +5. Pilih model untuk setiap jenis tugas + +**Pilihan popular:** +- **OpenAI**: `gpt-4o-mini` (cepat, berpatutan) +- **Anthropic**: `claude-sonnet-4-6` (kualiti tinggi) +- **DeepSeek**: `deepseek-chat` (sangat berpatutan) + +### Pilihan B: Ollama Tempatan (Tiada kunci API diperlukan) + +1. Pasang [Ollama](https://ollama.com/) +2. Muat turun model: `ollama pull llama3.1` +3. Dalam tetapan Notemd, pilih **"Ollama"** sebagai penyedia +4. Nama model: `llama3.1` (atau mana-mana model yang telah dimuat turun) + +## Langkah 2: Cuba Tugas Pertama Anda (1 minit) + +### Tambah Pautan Wiki ke Nota + +1. Buka sebarang nota yang mengandungi kandungan bermakna +2. Klik kanan di editor +3. Pilih **"Proses fail (tambah pautan)"** +4. Tunggu beberapa saat +5. Konsep utama kini berada di `[[wiki-linked]]`! + +**Contoh:** + +**Sebelum:** +``` +Machine learning models use neural networks to process data. +``` + +**Selepas:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## Langkah 3: Terokai Ciri-ciri (2 minit) + +### Keluarkan Nota Konsep + +1. Klik kanan → **"Keluarkan konsep daripada fail semasa"** +2. Notemd akan mencipta fail berasingan untuk setiap konsep +3. Semak folder konsep yang telah dikonfigurasikan (lazimnya: `concepts/`) +4. Setiap nota konsep mempunyai pautan balik ke nota asal anda + +### Penyelidikan & Ringkasan + +1. Menyorot topik dalam nota anda +2. Klik kanan → **"Penyelidikan dan ringkasan"** +3. Notemd mencari di web (Tavily atau DuckDuckGo) +4. Ringkasan ditambahkan ke nota anda bersama sumbernya + +### Aliran Kerja Satu Klik + +1. Semak **bar sisi kiri** untuk butang aliran kerja +2. Klik **"Ekstrak Satu Klik"** pada mana-mana nota +3. Ia berjalan: tambah pautan → ekstrak konsep → penyelidikan → hasilkan diagram +4. Semua dalam satu klik! + +## Tugas Pertama yang Biasa + +### Tugas 1: Memproses Kertas/Artikel + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### Tugas 2: Menterjemah Nota + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### Tugas 3: Cipta Peta Pengetahuan + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## Petua Penyesuaian + +### Pemilihan Model Mengikut Tugas + +Anda boleh menggunakan model yang berbeza untuk tugas yang berbeza: + +| Tugas | Model yang Disyorkan | Sebab | +|------|------------------|-----| +| Tambah Pautan | `gpt-4o-mini`, `deepseek-chat` | Cepat, banyak panggilan | +| Keluarkan Konsep | `claude-sonnet-4-6`, `gpt-4o` | Pengeluaran Kualiti Tinggi | +| Penyelidikan | `perplexity`, `gpt-4o` | Berdasarkan Web | +| Terjemahan | `gemini-flash`, `gpt-4o` | Berbilang Bahasa | +| Diagram | `claude-opus`, model tempatan | Penalaran yang Kompleks | + +Konfigurasikan di: **Tetapan → Notemd → Model Khusus Tugas** + +### Aliran Kerja Buatan + +Buat butang anda sendiri: + +1. Tetapan → Notemd → Aliran Kerja +2. Klik "Tambah Aliran Kerja" +3. Masukkan DSL: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. Namakan ia: "Aliran Penyelidikan Saya" +5. Butang baru muncul di sidebar + +## Pemecahan masalah + +### "Kunci API Tidak Sah" +- Semak sama ada kunci itu betul (tiada ruang tambahan) +- Pastikan akaun mempunyai kredit +- Uji dengan butang "Ujian Sambungan" dalam tetapan + +### "Model Tidak Ditemui" +- Klik "Dapatkan Senarai Model" untuk lihat model yang tersedia +- Beberapa penyedia memerlukan nama model tertentu (contohnya, `gpt-4o` bukan `gpt-4`) + +### Pautan Tidak Muncul +- Pastikan nota mengandungi kandungan yang mencukupi (>50 perkataan) +- Cuba model yang lebih berkuasa +- Semak sama ada panggilan LLM berjaya (lihat panel diagnostik) + +### Prestasi Perlahan +- Gunakan model yang lebih cepat (`gpt-4o-mini` bukannya `gpt-4o`) +- Kurangkan saiz segmen dalam tetapan +- Aktifkan pemprosesan selari untuk tugas berkumpulan + +## Langkah Seterusnya + +- 📖 [Terokai Semua Ciri](../features/wiki-links) +- ⚙️ [Konfigurasi Lanjutan](./configuration) +- 🔧 [Pengaturan Penyedia LLM](../providers/overview) +- ❓ [FAQ](../faq) + +## Tutorial Video + +Tonton video panduan cepat 3 minit (Bahasa Cina): +[【Sumber Terbuka Percuma! Panduan Cepat NotEMD 3 Minit】](https://b23.tv/lqR0RlA) + +## Dapatkan Bantuan + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **Isu**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **Dokumen**: [Dokumentasi Penuh](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/ms/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/ms/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..67d5f0f9 --- /dev/null +++ b/website/i18n/ms/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "Pengenalan kepada Notemd" +description: "Pembina pangkalan pengetahuan berasaskan AI untuk Obsidian dengan transformasi nota yang kekal, aliran kerja, dan diagram berdasarkan spesifikasi" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Pengenalan kepada Notemd + +<TLDR> +**Notemd** (Nota + EMD — Dokumen Markdown Diperbaiki) ialah plugin sumber terbuka untuk Obsidian yang menukar bacaan yang dikuasakan oleh LLM menjadi pengetahuan yang kekal. Berbeza dengan AI berasaskan sembang di mana pandangan hilang selepas sesi, Notemd menulis hasil **terus ke dalam vault anda** sebagai pautan wiki, nota konsep, ringkasan penyelidikan, terjemahan, aliran kerja, dan diagram. Ia dibina untuk penyelidik, pelajar, dan pekerja pengetahuan yang ingin bacaan, penyelidikan, dan penjelasan visual dikumpulkan menjadi graf pengetahuan yang terstruktur dan berkembang. +</TLDR> + +## Apa itu Notemd? + +Notemd menggabungkan **lebih daripada 30 Model Bahasa Besar** (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, dan lain-lain) ke dalam aliran kerja Obsidian anda untuk mengautomasikan pengeluaran pengetahuan, pengorganisasian, terjemahan, penyelidikan, dan pembuatan diagram. + +### Perbezaan utama: Pengetahuan sementara berbanding pengetahuan kekal + +| Aspek | AI berasaskan sembang (ChatGPT, dll.) | Notemd | +|--------|-------------------------------|--------| +| **Ke mana hasil pergi** | Sejarah sembang (hilang) | Vault Obsidian anda (kekal) | +| **Format** | Jawapan teks biasa | Fail terstruktur: `[[wiki-links]]`, nota konsep, diagram | +| **Nilai jangka panjang** | Perlu tanya semula setiap kali | Terkumpul menjadi graf pengetahuan | +| **Akses luar talian** | Memerlukan internet | Bekerja sepenuhnya tanpa internet dengan Ollama | + +## Keupayaan utama + +### 1. **Penghubungan Wiki automatik** +- LLM mengenal pasti konsep utama dalam nota anda +- Menyisipkan `[[wiki-links]]` pada setiap kejadian +- Secara pilihan, mencipta nota konsep yang berhubung +- Penindasan sinonim untuk elakkan duplikasi + +### 2. **Penghasilan nota konsep** +- Mengeluarkan konsep utama daripada kertas kerja, artikel, nota +- Menghasilkan fail konsep khusus dengan pautan balik +- Laluan keluaran dan templat yang boleh disesuaikan + +### 3. **Penggabungan penyelidikan web** +- Menyemak Tavily atau DuckDuckGo daripada dalam Obsidian +- LLM merumuskan hasil dengan rujukan sumber +- Menambah hasil kajian ke nota semasa + +### 4. **Terjemahan Pelbagai Bahasa** +- Menterjemah bahagian tertentu atau keseluruhan nota +- menyokong lebih daripada 21+ UI bahasa +- Konfigurasi bahasa keluaran secara berasingan +- Sokongan terjemahan berkumpulan + +### 5. **Penghasilan Diagram** +- **Mermaid**: Aliran, urutan, kelas, keadaan, ER, Gantt +- **JSON Canvas**: Susun atur asli Obsidian +- **Vega-Lite**: Carta data, siri masa, plot serakan +- **HTML / HTML yang boleh diubah suai/SVG**: Artefak rajah berdikari dengan anotasi semantik +- **Draw.io / sempadan artefak Drawnix**: Laluan eksport untuk pentadbir daripada model rajah semantik yang sama +- **Rancangan jalan cerita diagram litar**: Sokongan circuitikz/TikZJax sedang direka berdasarkan rujukan emas, arahan terhad, maklum balas rendering, dan pengesahan topologi/susun atur berbanding TikZ LLM yang tidak terhad secara mentah +- **Diagnostik pratonton**: Artefak rendering boleh menunjukkan diagnosis kompilasi/rendering, dan sumber bukan inline boleh diperiksa tanpa memerlukan persekitaran LaTeX di pihak plugin +- Pembaikan sintaks automatik untuk ralat Mermaid + +### 6. **Aliran Kerja Satu Klik** +- Gabungkan beberapa tindakan ke dalam butang sidebar +- Definisi aliran kerja berasaskan DSL +- Contoh: `add-links > extract-concepts > research > diagram` + +## Siapa yang patut gunakan Notemd? + +✅ **Penyelidik** yang membaca kertas kerja dan membina ulasan literatur +✅ **Pelajar** yang mengatur nota belajar dan mencipta peta konsep +✅ **Pekerja pengetahuan** yang mahu pandangan bacaan disimpan secara kekal +✅ **Profesional dwibahasa** yang memerlukan terjemahan + pautan wiki +✅ **Pengguna yang mementingkan privasi** yang mahu sokongan LLM tempatan (Ollama) +✅ **Pengguna berkuasa** yang menyesuaikan promp dan aliran kerja + +## Mengapa Notemd + Obsidian? + +**Obsidian** ialah pangkalan pengetahuan berasaskan markdown yang mengutamakan penggunaan tempatan. **Notemd** menambah keupayaan AI yang luar biasa: +- Data anda kekal di dalam peti simpanan anda (bukan perkhidmatan awan) +- Bekerja tanpa sambungan internet dengan model tempatan +- Bebas dan sumber terbuka (lesen MIT) +- Berpasangan dengan plugin Obsidian yang sedia ada +- Boleh diperluas hingga puluhan ribu nota + +## Pengenalan + +1. **Pasang**: Tetapan → Plugin Komuniti → Cari → "Notemd" +2. **Konfigurasikan**: Tambah penyedia LLM dan kunci API anda (atau gunakan Ollama tempatan) +3. **Cubalah**: Buka sebuah nota → Klik kanan → "Proses fail (tambah pautan)" +4. **Terokai**: Semak bar sisi untuk aliran kerja satu klik + +👉 [Panduan Pasang](./getting-started/installation) | [Tutorial Permulaan Cepat](./getting-started/quick-start) + +## Arah Keupayaan Diagram + +Kerja diagram Notemd kini beralih daripada "meminta model menulis satu rentetan sintaks" kepada paip berlapis: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +Pelaksanaan semasa sudah menyokong Mermaid, JSON Canvas, Vega-Lite, fallback HTML, HTML/SVG yang boleh diubah suai, artifak Draw.io XML, subset minimum Drawnix JSON, diagnosis pratonton/fallback hanya sumber, serta prototaip offline `CircuitSpec -> circuitikz` untuk templat emas sumber biasa dan inverter CMOS. Diagram litar merupakan kelas yang lebih sukar: circuitikz boleh nyatakan topologi elektrik yang tepat, tetapi output LLM tanpa sekatan sering menghasilkan laluan yang tidak dapat dibaca atau LaTeX yang tidak dapat dipaparkan. Arah seterusnya ialah mengekalkan circuitikz terhad dengan templat rujukan emas, peraturan susunan grid nod, diagnosis paparan, dan kitaran maklum balas tangkapan skrin. + +Baca butiran lanjut di [Diagram](./features/diagrams). + +## Arkitektur + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd berbanding Plugin AI Obsidian yang Lain + +Kebanyakan plugin AI Obsidian adalah berbentuk perbualan terlebih dahulu (anda tanya, AI jawab, pandangan kekal dalam sembang). Notemd pula ialah **penulisan terlebih dahulu**: AI memproses nota anda dan menulis hasil berstruktur terus ke dalam peti simpanan anda. + +| Keupayaan | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| Pengisian pautan wiki automatik | Ya | Tidak | Tidak | Tidak | +| Penghasilan nota konsep | Ya (dengan pautan balik + penghapusan duplikat) | Tidak | Tidak | Tidak | +| Penghasilan diagram | Ya (Mermaid, Canvas, Vega-Lite, HTML, artifak boleh diubah) | Tidak | Tidak | Tidak | +| Penyepaduan penyelidikan web | Ya (Tavily + DuckDuckGo) | Tidak | Tidak | Tidak | +| Pemprosesan folder secara berkumpulan | Ya | Terhad | Tidak | Terhad | +| Laluan model mengikut tugas | Ya (7 tugas, model bebas) | Tidak | Tidak | Tidak | +| Rantaian kerja satu klik | Ya (DSL) | Tidak | Tidak | Tidak | +| Terjemahan (secara berkumpulan) | Ya | Tidak | Tidak | Tidak | +| Berbual dengan vault | Tidak | Ya | Tidak | Tidak | +| Pencarian persamaan semantik | Tidak | Tidak | Ya | Tidak | +| Penghasilan berasaskan templat | Tidak | Tidak | Tidak | Ya | +| Penyedia LLM | 36 (awan + pintu gerbang + tempatan) | 3-5 | 2-3 | 3-5 | +| Sepenuhnya luar talian | Ya (Ollama) | Sebahagian | Sebahagian | Sebahagian | + +**Bila memilih Notemd**: Anda mahu AI membina graf pengetahuan yang kekal — bukan sekadar berbual tentang nota anda. + +**Bila memilih Copilot**: Anda mahu pembantu AI berbual di dalam Obsidian. + +**Bila memilih Smart Connections**: Anda mahu menemui hubungan sedia ada antara nota melalui carian semantik. + +## Falsafah + +**Notemd percaya bahawa AI sepatutnya melengkapi kerja pengetahuan manusia, bukan menggantikannya.** Plugin ini: +- Menjaga kawalan anda (semak sebelum melaksanakan perubahan) +- Menjaga konteks (semua hasil merujuk kembali ke sumber) +- Menghormati privasi (sokongan LLM tempatan, tiada telemetri) +- Keupayaan untuk diperluas (antaramuka terbuka APIs, aliran kerja tersuai) + +## Sumber Terbuka + +- **Lesen**: MIT +- **Sumber**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **Komuniti**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **Menyumbang**: Permohonan PR dialu-alukan, rujuk [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +**Seterusnya**: [Pemasangan →](./getting-started/installation) diff --git a/website/i18n/ms/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/ms/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..73054014 --- /dev/null +++ b/website/i18n/ms/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Panduan Pengurusan Pengetahuan AI Obsidian" +description: "Panduan lengkap untuk membina pangkalan pengetahuan yang bersambung menggunakan AI — daripada pautan wiki dan pengeluaran konsep hingga penyelidikan, terjemahan, dan penghasilan diagram" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Panduan Pengurusan Pengetahuan AI Obsidian + +<TLDR> +**Notemd menukar pembacaan yang dikuasakan oleh LLM menjadi pengetahuan yang kekal: pautan wiki menghubungkan konsep, nota konsep mencipta graf yang boleh dicari, penyelidikan membawa kandungan web ke dalam peti simpanan anda, terjemahan memecahkan halangan bahasa, diagram menjadikan struktur kelihatan, dan aliran kerja menggabungkan semuanya dengan satu klik.** Panduan ini meliputi keseluruhan proses — daripada nota mentah hingga pangkalan pengetahuan yang bersambung, visual, dan berbilang bahasa. +</TLDR> + +## Mengapa Pengurusan Pengetahuan AI? + +Penulisan nota tradisional menghasilkan fail rata. Walaupun dengan pautan wiki secara manual, kebanyakan nota tetap tidak bersambung. Notemd menggunakan LLM untuk mengautomatikan lapisan penghubung: + +- **LLM membaca kandungan anda** dan mengenal pasti apa yang penting — istilah, kaedah, orang, teori +- **Pautan dimasukkan secara automatik** pada setiap kemunculan konsep, bukan tersembunyi dalam “lihat juga” +- **Nota konsep dijana** sebagai fail yang boleh dicari secara berasingan +- **Penyelidikan memperkaya nota** dengan konteks daripada sumber web +- **Diagram menjadikan struktur kelihatan** — peta minda, aliran kerja, carta data daripada kandungan yang sama + +Hasilnya: graf pengetahuan yang berkembang setiap kali anda memproses nota, bukan hanya apabila anda ingat untuk menambah pautan. + +## Proses Keseluruhan + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +Setiap langkah adalah bebas. Gunakan satu atau semua. Urutan yang paling berkesan: **Tambah Pautan → Nota Konsep → Diagram**. + +--- + +## 1. Pautan Wiki: Membuat Penghubungan Jelas + +Pautan wiki merupakan tulang belakang graf pengetahuan. Notemd menggunakan LLM untuk: + +1. Baca kandungan nota anda (pisahkan kepada bahagian kecil untuk dokumen yang panjang) +2. Kenal pasti konsep utama — utamakan istilah teknikal tertentu berbanding kata nama umum +3. Masukkan `[[wiki-links]]` pada setiap kemunculan +4. Hapuskan sinonim supaya "ML" dan "Machine Learning" tidak menghasilkan nod berasingan + +### Bila Perlu Digunakan + +- **Setiap nota >100 perkataan** — nota yang lebih pendek menghasilkan sedikit konsep +- **Kertas penyelidikan, dokumen teknikal, nota mesyuarat** — kaya dengan istilah khusus bidang +- **Selepas kandungan menjadi stabil** — jangan proses draf berulang kali + +### Tetapan Utama + +| Pengaturan | Disyorkan | Sebab | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek atau GPT-4o-mini | Ketepatan yang baik pada kos rendah | +| Penghapusan sinonim | Dihidupkan | Mencegah nod berulang | +| Tetingkap konteks | Perenggan | Keseimbangan antara ketepatan dan kos | + +→ [Wiki-Links deep dive](/docs/features/wiki-links) + +--- + +## 2. Nota Konsep: Node Pengetahuan yang Boleh Dicapai + +Pautan wiki menghubungkan idea secara dalam baris, tetapi nota konsep membolehkan setiap idea dicapai secara berasingan. Setiap konsep mempunyai fail `.md`nya sendiri: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### Proses Pengekstrakan + +Prompt LLM adalah sangat terstruktur: +- Normalisasi kepada bentuk tunggal +- Utamakan konsep berbilang perkataan berbanding perkataan tunggal (“Dielectric Relaxation” bukan “Relaxation”) +- Langkau bahagian rujukan/bibliografi +- Keluarkan sebagai baris `CONCEPT:` untuk pemprosesan yang pasti + +Konsep dikurangkan pengulangan merentas segmen melalui `Set<string>`. Ralat LLM pada segmen individu tidak akan menghentikan operasi. + +### Pautan Balik + +Apabila diaktifkan, setiap nota konsep mencatat nota sumber yang menyebutnya. Panel pautan balik terbina dalam Obsidian juga menunjukkan sambungan balik. + +### Penghapusan duplikasi + +Enjin pengurangan pengulangan 4 langkah Notemd dapat mengesan: +1. **Padanan tepat** — perbandingan nama fail tanpa mengira huruf besar dan kecil +2. **Bentuk jamak** — "Models.md" berbanding "Model.md" +3. **Pemnormalan simbol** — "A-B.md" berbanding "A B.md" +4. **Pengandungan perkataan tunggal** — "ML.md" ditandakan apabila "Machine Learning.md" wujud + +### Tetapan Utama + +| Pengaturan | Disyorkan | Sebab | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` atau `🧠 concepts/` | Menjaga peti besi tetap teratur | +| `extractConceptsAddBacklink` | Dinyalakan | Mengaktifkan carian terbalik | +| `extractConceptsMinimalTemplate` | Tutup | Templat penuh dengan Linked From | +| Model mengikut tugas | DeepSeek | Pengeluaran konsep tidak memerlukan model yang mahal. | +| Penghapusan sinonim | Dinyalakan | Pengaturan yang sama mempengaruhi proses pautan dan pengeluaran. | + +→ [Notis Konsep: Penyelidikan Mendalam](/docs/features/concept-notes) + +--- + +## 3. Penyelidikan: Memasukkan Web + +Notemd menggabungkan carian web ke dalam aliran kerja penulisan nota anda: + +1. **Pembinaan pertanyaan** — tajuk nota atau pilihan anda menjadi pertanyaan carian +2. **Carian web** — Tavily (disyorkan, kunci API diperlukan) atau DuckDuckGo (percuma, tiada kunci) +3. ****LLM** ringkasan** — hasil carian diringkaskan menjadi ringkasan yang relevan +4. **Menambah ke nota** — ringkasan ditambah di kedudukan kursor atau sebagai bahagian baru + +### Bila Perlu Digunakan + +- Sebelum memproses topik baru — dapatkan konteks web terlebih dahulu +- Apabila notis konsep memerlukan penambahan maklumat — lakukan penyelidikan kemudian tambah pautan +- Untuk ulasan literatur — lakukan penyelidikan secara berkumpulan ke atas folder nota + +### Tetapan Utama + +| Pengaturan | Disyorkan | Sebab | +|---------|-----------|-----| +| `researchProvider` | GPT-4o atau Claude | Penyelidikan memerlukan ringkasan yang lebih berkualiti | +| Perkhidmatan carian | Tavily | Relevansi yang lebih baik, kedalaman yang boleh dikonfigurasi | +| `maxResearchContentTokens` | 4000 | Keseimbangan antara kedalaman dan kos | + +→ [Penyelidikan mendalam](/docs/features/research) + +--- + +## 4. Terjemahan: Memecahkan halangan bahasa + +Notemd menterjemah nota menggunakan LLM yang telah dikonfigurasi oleh anda — bukan alat terjemahan khusus API. Ini bermakna: + +- **Terjemahan berdasarkan konteks** — LLM memahami keseluruhan dokumen, bukan ayat demi ayat +- **Pengendalian istilah teknikal** — “gradient descent” kekal sebagai “梯度下降” dan bukan “坡度向下 +- **Sokongan kumpulan** — terjemahkan seluruh folder nota dalam satu operasi +- **Model mengikut tugas** — gunakan Gemini Flash untuk terjemahan (cepat, murah, pelbagai bahasa) + +### Sokongan Bahasa + +Notemd sendiri menyokong 21 bahasa UI. Bahasa sasaran terjemahan boleh dikonfigurasi mengikut setiap tugas. Pasangan biasa: EN↔ZH, EN↔JA, EN↔KO, EN↔DE, EN↔FR, EN↔ES. + +→ [Penyelidikan mendalam tentang terjemahan](/docs/features/translation) + +--- + +## 5. Diagram: Menjadikan struktur kelihatan + +Pipelain diagram Notemd bermula dengan spesifikasi: LLM menghasilkan `DiagramSpec` JSON yang berstruktur, kemudian penyesuai menukarnya ke format sasaran. Ini menghasilkan output yang lebih boleh dipercayai berbanding meminta LLM untuk sintaks Mermaid mentah. + +### Pengesanan niat + +Notemd menentukan jenis diagram yang terbaik berdasarkan kandungan: + +- **Jadual dengan nombor** → carta data (Vega-Lite) +- **Kosakata klien/pelayan** → diagram urutan (Mermaid) +- **Entiti/kunci utama** → diagram ER (Mermaid) +- **Langkah/aliran proses** → carta alir (Mermaid) +- **Kata kunci peta konsep** → JSON Canvas (Obsidian asli) +- **Lazim** → peta minda (Mermaid) + +### Rantaian Penjanaan + +Sasaran utama → alternatif → alternatif → HTML. Jika sintaks Mermaid gagal, ia akan mencuba sekali lagi dengan konteks ralat ke LLM, kemudian beralih ke diagram minimum. + +### Tetapan Utama + +| Pengaturan | Disyorkan | Sebab | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | Dinyalakan | Kualiti yang lebih baik melalui spesifikasi terlebih dahulu | +| `experimentalDiagramCompatibilityMode` | `best-fit` | Sasaran asli mengikut niat | +| `summarizeToMermaidProvider` | GPT-4o atau Claude | Spesifikasi diagram memerlukan penaakulan ruang | +| `autoMermaidFixAfterGenerate` | Dinyalakan | Menangkap ralat sintaks LLM secara automatik | +| Peningkatan pengetahuan tempatan | Dihidupkan untuk khusus domain | Meningkatkan ketepatan dengan konteks vault | + +→ [Analisis mendalam diagram](/docs/features/diagrams) + +--- + +## 6. Aliran kerja: Automasi satu klik + +Aliran kerja menggabungkan beberapa tugas ke dalam satu butang sidebar. Format DSL ialah: + +``` +task1 | task2 | task3 +``` + +Contoh: `addLinks | extractConcepts | generateDiagram` — memproses nota daripada teks mentah kepada nod pengetahuan visual yang sepenuhnya bersambung dengan satu klik. + +### Aliran kerja yang disyorkan + +| Aliran kerja | Rantaian | Kes Penggunaan | +|----------|-------|----------| +| Proses penuh | `addLinks \| extractConcepts \| generateDiagram` | Nota baru | +| Kajian terlebih dahulu | `research \| addLinks` | Topik yang tidak dikenali | +| Polyglot | `translate \| addLinks` | Nota berbilang bahasa | +| Hanya Diagram | `generateDiagram` | Visualisasi Cepat | + +→ [Penerokaan Terperinci Aliran Kerja](/docs/features/workflows) + +--- + +## 7. LLM Penyedia: 36 Pilihan Dari Cloud ke Lokal + +Notemd menyokong 36 penyedia merentasi 4 jenis pengangkutan. Kumpulan utama: + +- **Cloud Antarabangsa**: OpenAI, Anthropic, Google, Mistral, xAI +- **Cloud China**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **Pintu Gerbang**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **Lokal**: Ollama, LMStudio, OVMS — tiada kunci API, tiada data yang keluar dari mesin anda + +### Strategi Model Mengikut Tugas + +Pengaturan paling menjimatkan kos menggunakan model murah untuk tugas mudah dan model berkuasa untuk tugas yang kompleks: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [Gambaran Keseluruhan LLM Penyedia](/docs/providers/overview) + +--- + +## Senarai Semak Permulaan + +1. **Pasang Notemd** — [Plugin Komuniti](/docs/getting-started/installation) (disyorkan) atau secara manual +2. **Konfigurasikan penyedia** — DeepSeek (paling mudah), OpenAI, atau Ollama (percuma) +3. **Proses nota pertama anda** — klik kanan → “Proses fail (tambah pautan)” +4. **Tetapkan folder konsep** — Tetapan → Notemd → Keluaran → Folder Konsep +5. **Ekstrak konsep** — jalankan “Ekstrak konsep” pada nota yang sama +6. **Jana diagram** — jalankan “Jana diagram” untuk visualisasikan sambungan +7. **Buat aliran kerja** — gabungkan langkah di atas menjadi butang satu klik + +## Konfigurasi yang disyorkan + +### Pelajar (Anggaran) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### Penyelidik (Kualiti) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### Privasi Terutama (Hanya Lokal) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### Dua Bahasa (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## Corak Biasa + +### Corak: Proses kertas penyelidikan + +1. Import kandungan PDF (atau tampal) +2. **Menyelidik** — dapatkan konteks web mengenai topik +3. **Tambah Pautan** — kenal pasti dan sambungkan konsep utama +4. **Ekstrak Konsep** — cipta nota berdiri sendiri +5. **Jana Diagram** — visualisasikan struktur kertas kerja + +### Corak: Pemperkayaan nota harian + +1. Menulis nota harian +2. **Tambah Pautan** — menghubungkan idea hari ini dengan konsep sedia ada +3. Nota konsep dikemaskini secara automatik dengan pautan balik + +### Pola: Kajian Literatur + +1. Buat folder untuk kertas kerja/nota +2. **Tambah Pautan Secara Pukal** — memproses seluruh folder +3. **Padamkan Konsep Yang Serupa** — membersihkan nota yang hampir serupa +4. **Jana Diagram** — peta minda bagi keseluruhan literatur + +--- + +*Notemd ialah sumber terbuka (MIT) dan berfungsi dengan Obsidian 0.15.0+ pada semua platform. [Pasang sekarang](/docs/getting-started/installation) atau [lihat di GitHub](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/ms/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/ms/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..cb13c3aa --- /dev/null +++ b/website/i18n/ms/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "Konfigurasikan Anthropic Claude" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Pembekal Anthropic + +<TLDR> +**Anthropic menggunakan pengangkutan Messages API asli, bukan pengangkutan yang serasi dengan OpenAI.** Tetapan pra‑tetap semasa menggunakan `claude-3-5-sonnet-20240620`, `https://api.anthropic.com`, dan `temperature: 0.5`. Anggap ia sebagai antaramuka protokol berasingan semasa menyahpepijat. + +Ini merupakan sebahagian daripada [Obsidian Panduan Pengurusan Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Pengaturan + +Buat kunci Anthropic API, tambah profil pembekal `Anthropic`, dan biarkan Base URL pada titik hujung asli kecuali anda menghala melalui profil gateway khusus. Pilih ID model Claude yang ingin digunakan dalam medan model; tetapan lalai mengekalkan asas produk sedia ada stabil. + +Anthropic merupakan pilihan yang baik untuk ringkasan berkualiti tinggi, sintesis penyelidikan, dan pengekstrakan konsep. Jika anda menggabungkannya dengan pembekal yang lebih murah, gunakannya hanya pada tugas yang mendapat manfaat daripada kualiti outputnya. + +## Titik Hujung Dan Pengesahan + +| Medan | Tetapan pra‑tetap semasa | +|-------|----------------| +| Pengangkutan | `anthropic` | +| Kunci API | Diperlukan | +| Base URL | `https://api.anthropic.com` | +| Model lalai | `claude-3-5-sonnet-20240620` | +| Suhu | `0.5` | +| Ujian sambungan | Hanya sembang | + +Runtimes menghantar permintaan ke `/v1/messages` dengan `x-api-key` dan `anthropic-version: 2023-06-01`. Jangan konfigurasikan titik hujung `/v1/chat/completions` gaya OpenAI di bawah tetapan pra‑tetap ini; gunakan tetapan gateway yang serasi dengan OpenAI sebaliknya. + +## Penemuan Model + +Anthropic menggunakan mod penemuan `anthropic-models` dalam daftar penyedia. Jika kunci atau akaun anda tidak dapat senaraikan model, simpan ID model yang diketahui dalam profil dan sahkan melalui ujian sambungan. + +Pengangkutan ini tidak boleh digantikan dengan penyedia yang serasi dengan OpenAI. Model Claude yang diarahkan melalui OpenRouter, LiteLLM, atau pintu gerbang lain harus berada dalam profil pintu gerbang tersebut, bukan dalam profil Anthropic asli. + +## Pemecahan masalah + +- `401` atau `403`: periksa skop kunci, akses ruang kerja, bilangan, dan sama ada kunci itu milik ruang kerja Anthropic yang dijangkakan. +- `404`: Base URL adalah salah atau ID model yang dipilih tidak tersedia untuk akaun tersebut. +- ID model Claude gaya pintu gerbang gagal: pindahkan profil ke penyedia pintu gerbang yang sesuai kerana Anthropic asli mengharapkan nama model asli. +- Permintaan yang panjang gagal pada akhir: kurangkan saiz output model setiap tugas atau gunakan model dengan had token output yang lebih tinggi. + +## Bila Perlu Digunakan + +Guna Anthropic apabila kualiti sintesis, nota penyelidikan, atau penulisan berstruktur lebih penting daripada kos asas. Jangan gunakannya sebagai alternatif umum yang serasi dengan OpenAI; pengangkutan yang berasingan itulah tujuannya, dan mencampurkan protokol menjadikan diagnosis lebih sukar. + +--- + +## Langkah Seterusnya + +- [LLM Providers](/docs/providers/overview) -- Konfigurasi penuh, model setiap tugas, dan logik percubaan semula +- [Troubleshooting](/docs/advanced/troubleshooting) -- Perbaiki ralat 401/403 dan masalah sambungan diff --git a/website/i18n/ms/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/ms/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..4ff4742b --- /dev/null +++ b/website/i18n/ms/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "Penyedia di China" +description: "Sila konfigurasi Qwen, DeepSeek, GLM, dan sebagainya." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Penyedia di China + +<TLDR> +**Notemd menyokong penyedia dari kawasan China serta yang berasal dari China melalui titik hujung yang kebanyakannya serasi dengan OpenAI.** Senarai semasa termasuk DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, MiniMax, Baidu Qianfan, SiliconFlow, Huawei Cloud MaaS, dan Z AI. Kelebihannya ialah jangkauan serantau serta kawalan kos; risikonya pula ialah penamaan model yang berbeza mengikut penyedia serta sekatan akaun. + +Ini merupakan sebahagian daripada [Obsidian Panduan Pengurusan Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Pengaturan + +Buat akaun penyedia, hasilkan kunci API, kemudian pilih tetapan awal Notemd yang sesuai daripada menggunakan profil OpenAI umum. Tetapan awal tersebut mempunyai Base URL lalai, model, mod ujian API, tingkah laku penemuan model, serta sebarang medan UI khusus penyedia. + +Gunakan pemilihan model mengikut tugas dengan agresif di sini. Sebagai contoh, gunakan DeepSeek atau GLM untuk kerja yang memerlukan penaakulan yang banyak, gunakan Qwen atau Moonshot untuk kerja bahasa Cina yang meluas, dan hantar tugas pengaturcaraan ke Qwen Code apabila akaun tersebut menyokong model pengaturcaraan. + +## Titik Hujung Dan Pengesahan + +| Penyedia | Model Lalai | Base URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (ID titik hujung diperlukan) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**Nota:** Doubao memerlukan ID titik hujung Ark (format: `ep-xxxxxxxx-xxxx-xxxx`) dan bukannya nama model standard. + +Kebanyakan penyedia ini menggunakan runtime yang serasi dengan OpenAI, tetapi semantik akaun serta model mereka berbeza. Gunakan Base URL khusus untuk setiap tetapan awal kecuali jika anda telah sahkan titik hujung alternatif akaun tersebut. + +## Penemuan Model + +DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan, dan SiliconFlow menggunakan penemuan model yang serasi dengan OpenAI apabila penyedia menyokong senarai. Huawei Cloud MaaS menggunakan mod `huaweicloud-modelarts-models` kerana metadata pelaksanaan ModelArts tidak sama dengan senarai `/v1/models` umum. + +Jangan anggap kegagalan penemuan sebagai bukti bahawa perbualan tidak boleh dilakukan. Beberapa penyedia membenarkan perbualan sambil membataskan kebenaran senarai model. Dalam kes itu, simpan ID model yang jelas dalam profil dan sahkan dengan ujian sambungan. + +## Pemecahan masalah + +- Autentikasi berjaya tetapi perbualan gagal: nama model mungkin berada di luar hak atau kawasan akaun. +- Doubao gagal dengan nama model biasa: gunakan ID titik hujung Ark dalam medan model apabila pelaksanaan anda memerlukannya. +- Jawapan penaakulan dipotong: periksa had token keluaran khusus penyedia serta tetapan had token berdasarkan model milik Notemd. +- Rangkaian serantau berbeza: gunakan titik hujung kawasan China penyedia apabila mesin vault berada di dalam China; gunakan titik hujung antarabangsa hanya apabila akaun serta laluan rangkaian kedua-duanya sah. + +## Bila Perlu Digunakan + +Gunakan penyedia di China apabila kelewatan serantau, akses pembayaran/akaun, kualiti bahasa Cina, atau kos merupakan kekangan utama. Pilih OpenAI, Anthropic, Google, atau penyedia tempatan secara langsung apabila anda memerlukan sempadan protokol yang lebih mudah atau konsistensi penyelidikan ralat antara penyedia yang lebih baik. + +--- + +## Langkah Seterusnya + +- [LLM Providers](/docs/providers/overview) -- Konfigurasi penuh, model setiap tugas, dan logik percubaan semula +- [Penyelesaian Masalah](/docs/advanced/troubleshooting) -- Perbaiki masalah sambungan serantau dan ralat pengesahan diff --git a/website/i18n/ms/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/ms/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..c8171437 --- /dev/null +++ b/website/i18n/ms/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "Konfigurasikan Google Gemini" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Pembekal Google + +<TLDR> +**Google menggunakan kaedah penghantaran Bahasa Generatif Gemini API yang asli.** Tetapan lalai semasa ialah `gemini-2.0-flash-exp`, `https://generativelanguage.googleapis.com/v1`, dan `temperature: 0.5`. Ia bukan profil yang serasi dengan OpenAI. + +Ini merupakan sebahagian daripada [Obsidian Panduan Pengurusan Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Pengaturan + +Buat kunci Cloud API jenis Google AI Studio atau Google dengan akses Gemini, tambah profil penyedia `Google`, dan kekalkan Base Bahasa Generatif yang asli URL. Gunakan profil Gemini Flash lalai untuk terjemahan pantas dan kerja aliran nota yang luas, kemudian gantikan model mengikut tugas apabila anda memerlukan model Gemini yang lebih besar atau berkeupayaan tinggi. + +Elakkan meletakkan ID model Gemini dalam profil yang serasi dengan OpenAI kecuali jika anda menggunakan gateway secara eksplisit yang memaparkan Gemini melalui API yang serasi dengan OpenAI. + +## Titik Hujung Dan Pengesahan + +| Medan | Tetapan pra‑tetap semasa | +|-------|----------------| +| Pengangkutan | `google` | +| Kunci API | Diperlukan | +| Base URL | `https://generativelanguage.googleapis.com/v1` | +| Model lalai | `gemini-2.0-flash-exp` | +| Suhu | `0.5` | +| Ujian sambungan | Hanya sembang | + +Masa jalankan memanggil `/models/{model}:generateContent?key={apiKey}`. Kunci dihantar sebagai parameter pertanyaan kerana itulah cara titik hujung Gemini asli disambungkan dalam plugin. + +## Penemuan Model + +Google menggunakan mod penemuan `google-models`. Penemuan sepatutnya mengembalikan model Gemini yang tersedia untuk kunci API; jika pemilih kosong, uji kunci terhadap Base URL yang sama dan sahkan keluarga model diaktifkan untuk akaun tersebut. + +Had token output yang diketahui adalah berdasarkan model dalam daftar penyedia. Jika terjemahan panjang atau penjelasan diagram dipotong, pilih model Gemini dengan had output yang lebih besar atau kurangkan saiz output yang diminta. + +## Pemecahan masalah + +- `400`: ID model biasanya tidak sepadan dengan laluan Gemini asli atau permintaan melebihi bentuk yang disokong oleh model. +- `401` atau `403`: semak sekatan kunci, pengaktifan projek/API, dan sama ada kunci boleh mengakses Gemini. +- `404`: ID model tidak tersedia pada versi API yang dikonfigurasikan. +- Contoh gateway gagal di bawah profil ini: gunakan tetapan gateway sebaliknya daripada penyedia Google yang asli. + +## Bila Perlu Digunakan + +Gunakan Google untuk terjemahan pantas, pembersihan nota dalam kuantiti besar, dan kerja aliran di mana pertukaran kos/performance Gemini lebih baik berbanding OpenAI atau Anthropic secara langsung. Pilih penyedia lain untuk kerja aliran yang memerlukan pengendalian model penalaran yang serasi dengan OpenAI. + +--- + +## Langkah Seterusnya + +- [LLM Providers](/docs/providers/overview) -- Konfigurasi penuh, model setiap tugas, dan logik percubaan semula +- [Terjemahan](/docs/features/translation) -- Gemini Flash disyorkan untuk tugas terjemahan dalam kuantiti besar diff --git a/website/i18n/ms/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/ms/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..1a7caec2 --- /dev/null +++ b/website/i18n/ms/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "Model Tempatan" +description: "Konfigurasikan Ollama dan LLM tempatan" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# Model Tempatan + +<TLDR> +**Pembekal tempatan menyimpan kandungan nota di luar API yang dihoskan.** Laluan tempatan semasa meliputi Ollama menggunakan pengangkutan natif `ollama` dan LMStudio melalui pengangkutan yang serasi dengan OpenAI. Tiada kunci API diperlukan untuk mana-mana laluan, tetapi pelayan tempatan dan model mesti sudah berjalan. + +Ini merupakan sebahagian daripada [Obsidian Panduan Pengurusan Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Pengaturan + +Untuk Ollama, pasang Ollama, tarik model yang diinginkan, mulakan pelayan, dan tambah profil pembekal `Ollama` dalam Notemd. Untuk LMStudio, muatkan model dalam pelayan tempatan LM Studio dan tambah profil pembekal `LMStudio`. + +Model tempatan merupakan kebergantungan operasi, bukan sekadar tetapan. Notemd hanya boleh memanggil apa yang dipaparkan oleh proses tempatan, jadi sahkan model tempatan di luar Obsidian sebelum menyahpepijat plugin. + +## Titik Hujung Dan Pengesahan + +| Penyedia | Base URL | Model Lalai | Kunci API | Nota | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | Tidak diperlukan | Penstriman NDJSON; penemuan model melalui `/api/tags` | +| LMStudio | `localhost:1234/v1` | `local-model` | Tidak diperlukan | Menghantar `"EMPTY"` sebagai token pembawa; serasi dengan OpenAI | + +Ollama menggunakan laluan natif `/chat` di bawah Base URLnya. LMStudio mengikuti laluan `chat/completions` yang serasi dengan OpenAI dan mengharapkan model yang dimuatkan dalam pelayan tempatan. + +## Penemuan Model + +Ollama menggunakan mod penemuan `ollama-tags` dan menyenaraikan tag yang ditarik secara tempatan. LMStudio menggunakan penemuan model yang serasi dengan OpenAI apabila pelayannya memaparkan `/v1/models`. + +Jika penemuan tidak menghasilkan apa-apa, biasanya ia disebabkan masalah keadaan pelayan tempatan: model belum ditarik, belum dimuatkan, atau pelayan terikat pada hos/port yang berbeza daripada profil. + +## Pemecahan masalah + +- Sambungan ditolak: mulakan Ollama atau LM Studio dan sahkan port yang dikonfigurasikan. +- Model tidak ditemui: tarik tag Ollama atau muatkan model LM Studio sebelum menguji. +- Keluaran perlahan: kurangkan saiz konteks, gunakan model tempatan yang lebih kecil, atau hantar tugas berat kepada pembekal yang dihoskan. +- Jawapan kosong atau rosak: sahkan profil pembekal yang dipilih sepadan dengan protokol pelayan tempatan; Ollama dan LMStudio tidak boleh ditukar ganti. + +## Bila Perlu Digunakan + +Guna penyedia tempatan untuk peti simpanan peribadi, kerja luar talian, atau tugas berulang yang murah. Jangan anggap bahawa penggunaan tempatan sentiasa lebih baik untuk sintesis penyelidikan atau penaakulan jangka panjang; kualiti model dan had perkakasan merupakan pertukaran yang perlu dipertimbangkan. + +--- + +## Langkah Seterusnya + +- [LLM Penyedia](/docs/providers/overview) -- Tetapan penuh dan konfigurasi model untuk setiap tugas +- [Penyelesaian masalah](/docs/advanced/troubleshooting) -- Perbaiki ralat connection-refused apabila pelayan tempatan tidak berjalan diff --git a/website/i18n/ms/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/ms/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..ef92948f --- /dev/null +++ b/website/i18n/ms/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "Konfigurasikan OpenAI (GPT-4, GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# Pembekal OpenAI + +<TLDR> +**OpenAI menggunakan pengangkutan yang serasi dengan OpenAI.** Tetapan pra‑tetap semasa adalah `gpt-4o`, `https://api.openai.com/v1`, `temperature: 0.5`, dan ujian sambungan `models-then-chat`. Gunakan halaman ini apabila anda memerlukan semantik medan yang tepat; gunakan gambaran keseluruhan [LLM Providers](/docs/providers/overview) untuk pemilihan pada tahap kategori. + +Ini merupakan sebahagian daripada [Obsidian Panduan Pengurusan Pengetahuan AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Pengaturan + +Buat kunci OpenAI API, tambah profil penyedia `OpenAI` dalam tetapan Notemd, dan kekalkan Base URL lalai kecuali jika anda sengaja merujuk kepada gateway yang serasi dengan OpenAI. Medan model boleh kekal pada `gpt-4o` untuk kerja umum atau digantikan dengan ID model OpenAI lain yang boleh dipanggil oleh akaun anda. + +Gunakan model khusus tugas untuk kawalan kos: simpan model yang lebih kuat untuk penyelidikan, pengekstrakan konsep, dan penyusunan bentuk panjang; gunakan model yang lebih murah atau lebih cepat untuk terjemahan, cadangan pautan, dan ringkasan pendek. + +## Titik Hujung Dan Pengesahan + +| Medan | Tetapan pra‑tetap semasa | +|-------|----------------| +| Pengangkutan | `openai-compatible` | +| Kunci API | Diperlukan | +| Base URL | `https://api.openai.com/v1` | +| Model lalai | `gpt-4o` | +| Suhu | `0.5` | +| Ujian sambungan | `/models`, kemudian `/chat/completions` | + +Notemd menormalkan base URL yang serasi dengan OpenAI sebelum menambah `chat/completions` atau `models`. Jangan masukkan `/chat/completions` di hujung Base URL; ia akan mencipta laluan yang berulang. + +## Penemuan Model + +OpenAI menggunakan laluan penemuan model yang serasi dengan OpenAI secara umum. Tetapan UI pertama kali bertanya kepada `/v1/models`, kemudian mengesahkan model yang dipilih dengan permintaan sembang ringan. Jika penemuan gagal tetapi sembang masih berfungsi, periksa sama ada kunci anda mempunyai kebenaran model‑list atau adakah gateway menghalang senarai model. + +Model penalaran dianggap sebagai kes tepi protokol: Notemd menggabungkan kandungan promp sistem dan pengguna untuk ID penalaran OpenAI yang menolak peranan `system` yang berasingan, dan ia hanya mendedahkan `reasoningEffort` apabila definisi penyedia menyokongnya. + +## Pemecahan masalah + +- `401` atau `403`: sahkan kunci, akses projek, keadaan bil, dan sama ada model yang dipilih diaktifkan untuk kunci tersebut. +- `404` pada sembang: Base URL biasanya salah atau sudah termasuk `/chat/completions`. +- Model muncul dalam dokumen tetapi tidak dalam pemilih: akses model‑list dan akses sembang adalah titik kegagalan yang berbeza; uji ID model yang tepat secara manual dalam profil penyedia. +- Model penalaran menolak mesej: gunakan ID model yang dilindungi oleh laluan pengendalian penalaran OpenAI atau tukar kepada model sembang bukan penalaran. + +## Bila Perlu Digunakan + +Gunakan OpenAI apabila anda mahu laluan hos lalai yang paling boleh diramal, apabila penemuan `/v1/models` penting, atau apabila aliran kerja bergantung pada semantik model penalaran OpenAI. Pilih gateway atau penyedia tempatan apabila penghalaan, privasi, atau kawalan kos lebih penting daripada tingkah laku langsung OpenAI API. + +--- + +## Langkah Seterusnya + +- [LLM Providers](/docs/providers/overview) -- Konfigurasi penuh, model setiap tugas, dan logik percubaan semula +- [Troubleshooting](/docs/advanced/troubleshooting) -- Perbaiki ralat 401/403 dan had kelajuan diff --git a/website/i18n/ms/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/ms/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..64dad8ce --- /dev/null +++ b/website/i18n/ms/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "Penyedia LLM" +description: "Konfigurasikan 36 penyedia LLM — awan, pintu gerbang, dan tempatan — dengan pemilihan model mengikut tugas" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Penyedia LLM + +<TLDR> +**Notemd menyokong 36 penyedia LLM merentasi 4 jenis pengangkutan.** Semua panggilan API menggunakan HTTP mentah (tanpa SDK) dengan percubaan semula automatik, alternatif pengangkutan, dan pengecapan respons selama 5 minit. Pemilihan model mengikut tugas membolehkan anda menggunakan model murah untuk pengekstrakan konsep dan model berkuasa untuk penyelidikan. Tiada kunci API diperlukan untuk penyedia tempatan (Ollama, LMStudio). +</TLDR> + +Ini merupakan sebahagian daripada [Obsidian Panduan Pengurusan Pengetahuan AI](/docs/pillar-ai-knowledge). + +## Kategori Penyedia + +### Penyedia Awan + +| Penyedia | Asas URL lalai | Model Lalai | Suhu | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### Penyedia Pintu Gerbang / Proksi + +| Penyedia | Asas URL lalai | Model Lalai | Nota | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | Menambah header `HTTP-Referer` + `X-Title` | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | Menambah header `X-GitHub-Api-Version` | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | Menambah header `APP-Code` | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | Kunci API pilihan | +| **API baru** | `localhost:3000/v1` | `gpt-4.1` | Kunci API pilihan | +| **OpenAI Compatible** | (disusun oleh pengguna) | `your-model-id` | Titik hujung khusus | + +### Penyedia di China + +| Penyedia | Asas lalai URL | Model Lalai | Nota | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | Fokus pada pengaturcaraan | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (ID titik hujung diperlukan) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | Titik hujung Zhipu, China | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | Titik hujung antarabangsa Zhipu | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | Platform hos model | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao memerlukan ID titik hujung Ark** (format: `ep-xxxxxxxx-xxxx-xxxx`). Tempat letak lalai mesti digantikan. + +### Penyedia tempatan + +| Penyedia | Asas lalai URL | Model Lalai | Nota | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | Tiada kunci API. Penstriman NDJSON. Penemuan model melalui `/api/tags` | +| **LMStudio** | `localhost:1234/v1` | `local-model` | Menghantar `"EMPTY"` sebagai token pembawa. Penemuan yang serasi dengan OpenAI | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (dikonfigurasikan oleh pengguna) | `gpt-4o` | Nama penempatan dalam URL. Tajuk `api-key` | + +## Pemilihan Model Mengikut Tugas + +Notemd menyokong penyedia dan model yang berasingan untuk setiap tugas. Aktifkan dengan `useMultiModelSettings: true`. + +### Tugas yang tersedia + +| Tugas | Kunci tetapan | Penyedia lalai | +|------|-------------|-----------------| +| Tambah pautan (penyisipan pautan wiki) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| Penyelidikan (carian web + ringkasan) | `researchProvider` / `researchModel` | DeepSeek | +| Jana daripada tajuk | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| Terjemahan | `translateProvider` / `translateModel` | DeepSeek | +| Penghasilan diagram | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| Pengeluaran konsep | `extractConceptsProvider` / `Model` | DeepSeek | +| Pengeluaran teks asal | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### Urutan penyelesaian + +1. Jika `useMultiModelSettings` diaktifkan → gunakan penyedia dan model khusus tugas +2. Jika penggantian model tugas kosong → gunakan model lalai penyedia +3. Jika penyedia tugas tidak sah → gunakan `activeProvider` global +4. Jika `useMultiModelSettings` dimatikan → semua tugas menggunakan `activeProvider` global + +### Konfigurasi yang disyorkan + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## Arsitektur Panggilan API + +### Lapisan Pengangkutan + +1. **Obsidian `requestUrl`** — utama (terbina dalam, berfungsi pada semua platform) +2. **Desktop HTTP** — modul Node.js `http`/`https` (penstriman + permintaan panjang) +3. **Web `fetch`** — alternatif apabila modul Node.js tidak tersedia + +Plug-in ini secara automatik beralih antara lapisan pengangkutan sekiranya berlaku ralat rangkaian sementara. + +### Logik Ulang Cuba + +- **Mod biasa** (`enableStableApiCall: false`): Satu percubaan. Jika gagal sementara, ia akan dinaik taraf secara automatik ke ulangan yang stabil. +- **Mod ulangan stabil** (`enableStableApiCall: true`): Sehingga 4 percubaan (1 + 3 ulangan) dengan selang masa 5 saat. +- **Ralat sementara yang mencetuskan ulangan**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **Yang tidak boleh diulang cuba**: HTTP 400, 401, 403, 404 + +### Penyimpanan Cache Respons + +Cache LRU dalam memori selama 5 minit yang dikunci mengikut penyedia + model + suhu + gesaan + kandungan. Permintaan yang serupa selepas 5 minit akan mendapat hasil cache dengan segera. + +### Pengendalian Model Penalaran + +Model yang tidak menyokong peranan `system` (DeepSeek R1, OpenAI o1/o3/o4/gpt-5) secara automatik menggabungkan gesaan sistem dan pengguna menjadi satu mesej pengguna sahaja. + +DeepSeek-specific: `thinkingEnabled` menambah `{ thinking: { type: 'enabled' } }` ke dalam permintaan. `reasoningEffort` (rendah/medium/tinggi) dihantar sebagai `reasoning_effort`. Memastikan bahawa maksimum token keluaran ≥ 8000 apabila mod pemikiran diaktifkan. + +### Anggaran Token + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — heuristik 4 aksara setiap token. Digunakan untuk mematuhi `maxResearchContentTokens` sebelum dihantar ke LLM. + +Tiada penjejak kos yang dilaksanakan. + +## Penemuan Model + +| Mod | Penyedia | Titik Akhir | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | Senarai Model API | +| `anthropic-models` | Anthropic | Senarai Model API | +| `openai-compatible-models` | DeepSeek, Qwen, Mistral, dan sebagainya. | `/v1/models` | +| `openrouter-models` | OpenRouter | Senarai Model API | +| `github-models` | GitHub Models | Inferensi API | +| `none` | Azure OpenAI | Dihentikan (memerlukan nama penempatan) | + +## Permulaan Cepat + +1. **Pilih penyedia** — DeepSeek (China), OpenAI (Antarabangsa), atau Ollama (Tempatan/Bebas) +2. **Masukkan kunci API** — Tetapan → Notemd → Penyedia → Kunci API +3. **Uji sambungan** — Klik butang ujian +4. **Pilihan: Model mengikut tugas** — Aktifkan `useMultiModelSettings` dan tetapkan secara berasingan + +Untuk Ollama: tiada kunci API diperlukan. Pastikan `ollama serve` sedang berjalan. + +--- + +## Langkah Seterusnya + +- 📝 [Nota Konsep](/docs/features/concept-notes) — Menggunakan model pengekstrakan mengikut tugas +- 🎨 [Diagram](/docs/features/diagrams) — Menggunakan model diagram mengikut tugas +- 🔍 [Penyelidikan](/docs/features/research) — Menggunakan model khusus penyelidikan +- ⚙️ [Konfigurasi](/docs/getting-started/configuration) — Rujukan tetapan penuh diff --git a/website/i18n/ms/docusaurus-theme-classic/footer.json b/website/i18n/ms/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/ms/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/ms/docusaurus-theme-classic/navbar.json b/website/i18n/ms/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/ms/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/nl/code.json b/website/i18n/nl/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/nl/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/nl/docusaurus-plugin-content-docs/current.json b/website/i18n/nl/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/nl/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/nl/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/nl/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..e1d20003 --- /dev/null +++ b/website/i18n/nl/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "Batchverwerking" +description: "Meerdere bestanden efficiënt verwerken" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# Batchverwerking + +<TLDR> +**Notemd verwerkt hele mappen in één actie met instelbare paralleliteit en controle over overschrijven.** Klik met de rechtermuisknop op een map om wiki-links in bulk toe te voegen, concepten te extraheren, onderzoek uit te voeren of alle notities binnenin te vertalen. Paralleliteitsbeperkingen voorkomen API fouten door snelheidsbeperkingen. Er wordt verslag gedaan van de voortgang per bestand. Het gedrag bij overschrijven is instelbaar: bestaande bestanden negeren, toevoegen of vervangen. Foutieve bestanden worden geregistreerd zonder dat de batch wordt afgebroken. + +Dit maakt deel uit van de [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Overzicht + +Batchverwerking zet een map met notities om in één enkele actie. In plaats van elke notitie apart te openen en commando’s uit te voeren, klikt u met de rechtermuisknop op de map en kiest u de taak. Notemd loopt door elk `.md` bestand, past de gekozen actie toe en rapporteert de voortgang in real time. + +Deze functie is essentieel voor het extraheren van kennis in een hele vault. Na het importeren van tientallen PDFs, bijvoorbeeld door eerst links in bulk toe te voegen en daarna concepten in bulk te extraheren, wordt uw kennisgrafiek binnen minuten opgebouwd in plaats van uren. + +## Hoe het werkt + +### Batchuitvoermodel + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **Bestandverzameling** -- Notemd scannt de doelmap recursief (of alleen op topniveau, afhankelijk van de instellingen) en verzamelt alle `.md` bestanden. +2. **Paralleliteitsindeling** -- Bestanden worden in groepen verdeeld op basis van de `batchConcurrency` instelling. Elke groep wordt parallel uitgevoerd; groepen worden sequentieel uitgevoerd. +3. **Uitvoering** -- Elk bestand wordt verwerkt met dezelfde logica als het commando voor één bestand. De instellingen van de provider en het model per taak worden gerespecteerd. +4. **Voortgangsrapportage** -- Na elke voltooide bestand wordt een toastnotificatie bijgewerkt die de `N / Total` voortgang weergeeft. +5. **Foutbeheer** -- Als een bestand faalt (API fout, netwerkvertraging, etc.), wordt de fout geregistreerd en gaat de batch door. De eindsamenvatting geeft een lijst van alle gefaalde bestanden. +6. **Afsluiting** -- Een samenvattende toastnotificatie rapporteert het totale aantal verwerkte bestanden, successen en fouten. + +### Overgietgedrag + +Bij het verwerken van een bestand dat al wiki-links, conceptnotities of vertalingen bevat, hangt het gedrag van Notemd af van de overgietinstelling: + +| Modus | Gedrag | +|------|----------| +| **Sla over** | De bestaande inhoud blijft onveranderd. Alleen ongewijzigde bestanden worden verwerkt. | +| **Voeg toe** (standaard) | Nieuwe inhoud wordt toegevoegd. Bestaande wiki-links, concepten of vertalingen blijven behouden. | +| **Vervang** | Het bestand wordt volledig opnieuw verwerkt. Alle eerdere Notemd wijzigingen worden overgeschreven. | + +Voor wiki-linking in het bijzonder: als een notitie al `[[wiki-links]]` bevat, laat de **sla over**-modus deze ongemoeid, terwijl **vervang** de hele notitie naar LLM stuurt voor een nieuwe linkinvoeging. Gebruik **sla over** voor incrementele verwerking en **vervang** voor opnieuw verwerken na een modelupdate. + +### Concurrentiekontrol + +De `batchConcurrency` instelling beperkt de parallelle API oproepen. Dit voorkomt rate-limit fouten (HTTP 429) bij het verwerken van grote mappen bij providers met strenge quotumgrenzen. + +| Concurrentie | Aanbevolen voor | Typische impact op rate-limiting | +|-------------|----------------|---------------------------| +| `1` | Gratis niveaus, strenge aanbieders | Geen (serieel) | +| `3` (standaard) | De meeste cloudaanbieders | Laag | +| `5` | Ollama (lokaal), ruime niveaus | Geen / Laag | +| `10` | Lokale modellen met snelle inferentie | Geen | + +Als u tijdens batchverwerking 429-fouten tegenkomt, verlaag de paralleliteit tot 1 of 2. + +## Configuratie + +| Instelling | Standaard | Effect | +|---------|---------|--------| +| `batchConcurrency` | `3` | Maximaal parallelle API oproepen tijdens mapoperaties | +| `batchOverwriteExisting` | `false` | Bestaande Notemd inhoud overschrijven. `false` = toevoegingsmodus. | +| `batchSkipProcessed` | `false` | Bestanden negeren die al Notemd markers bevatten (bijv. wiki-links) | +| `batchRecursive` | `true` | Ondermappen meenemen bij het scannen van de map | +| `enableStableApiCall` | `false` | Herprobeerlogica inschakelen (tot 4 pogingen) per bestand tijdens batchverwerking | + +### Per-Task Modellen in Batch + +Elke batchoperatie maakt gebruik van het overeenkomstige per-task model. Batch-add-links gebruikt `addLinksProvider`, batch-research gebruikt `researchProvider`, enzovoort. Dit betekent dat u goedkope modellen kunt toewijzen voor grote volumes en dure modellen kunt reserveren voor taakken waar kwaliteit belangrijk is. + +## Voorbeeld + +U heeft een map `papers/` met 40 geïmporteerde onderzoeksnotities. U wilt wiki-links toevoegen en concepten uit al deze notities extraheren: + +1. Rechtsklik op de `papers/` map +2. Kies **"Notemd: Map verwerken (links toevoegen)"** +3. Notemd scannen de map, vindt 40 `.md` bestanden en verwerkt er 3 tegelijk (standaard paralleliteit) +4. Een voortgangstoast toont: `12/40 files processed...` +5. Na ongeveer 3 minuten rapporteert een samenvattende toast: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. Herhaal dit met **"Notemd: Map verwerken (concepten extraheren)"** om conceptnotities voor alle 40 te maken + +Het enige mislukte bestand wordt geregistreerd. U kunt later op dat ene bestand alleen opnieuw uitvoeren. + +## Tips + +- **Begin met lage paralleliteit** -- Als u niet zeker bent van de snelheidsbeperkingen van uw provider, begin dan met `1` en verhoog deze geleidelijk. +- **Gebruik skip-modus voor incrementele updates** -- Na de eerste volledige batch schakel u over op `batchSkipProcessed: true` zodat alleen nieuwe notities bij volgende uitvoeringen worden verwerkt. +- **Activeer stabiele API oproepen** -- `enableStableApiCall: true` voegt herhalingslogica toe die herstelt van tijdelijke netwerkfouten tijdens lange batches. +- **Uitvoer opnieuw na modelupdates** -- Als u overstapt op een beter model, stel `batchOverwriteExisting: true` in en uitvoer opnieuw om verbeterde links en concepten te verkrijgen. + +--- + +## Volgende stappen + +- [Workflows](/docs/features/workflows) -- Combineer batchtaken tot één-klikknoppen in de zijbalk +- [Custom Prompts](/docs/advanced/custom-prompts) -- Pas prompts aan voor batchextractie +- [Troubleshooting](/docs/advanced/troubleshooting) -- Verhelp snelheidsbeperkingsfouten en verbindingproblemen tijdens batchuitvoeringen +- [LLM Providers](/docs/providers/overview) -- Referentie voor configuratie van het per-taakmodel diff --git a/website/i18n/nl/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/nl/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..1e896adb --- /dev/null +++ b/website/i18n/nl/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "Aanpasbare prompts" +description: "Pas de LLM prompts aan op uw behoeften" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# Aanpasbare prompts + +<TLDR> +**Notemd stelt u in staat om de standaard LLM prompt voor elk taaktype te overschrijven.** Aanpasbare prompts geven u controle over wat het model prioriteert: u kunt conceptuitwinning beperken tot een specifieke discipline, de linkstijl wijzigen of de toon van de vertaling sturen. Promptvariabelen zoals `{{content}}` en `{{concept}}` worden op runtime vervangen. De functie ‘gerichte leerdomen’ voegt uw studierichting toe om de resultaten van de uitwinning automatisch te beperken. + +Dit maakt deel uit van de [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Overzicht + +De ingebouwde prompts van Notemd zijn geschreven voor algemeen gebruik in kenniswerk. Ze werken goed in verschillende domeinen, maar laten ook ruimte voor verbeteringen die specifiek zijn voor een bepaald domein. Aanpasbare prompts stellen u in staat om aan LLM precies te vertellen hoe het zich moet gedragen voor uw gebruikssituatie – of dat nu betekent dat alleen medische terminologie wordt uitgewerkt, alleen genoemde entiteiten worden gelinkt of er in een formeel register wordt vertaald. + +Aanpasbare prompts vervangen de volledige systeemprompt niet. Ze overschrijven of versterken het **taakspecifieke instructiegedeelte** terwijl ze het structurele uitvoerformaat (bijv. `CONCEPT:`-regels, wiki-link-syntaxis) behouden dat Notemd nodig heeft voor parsing. + +## Hoe het werkt + +### Promptarchitectuur + +Elke Notemd taak volgt dezelfde promptstructuur: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **Basis systeemprompt** -- Stelt de assistentenpersoon vast. Niet overschrijfbaar. +2. **Gerichte leerdomen** -- Voegt `Relevant Fields: [medicine / law / computer science / ...]` toe om het bereik te beperken. Dit is een instellingstoets, geen brute prompt. +3. **Aanpasbare taakprompt** -- Vervangt de standaard taakinstructies (bijv. welke soorten concepten er uitgewerkt moeten worden, hoe agressief er gelinkt moet worden). +4. **Uitvoerformat** -- Structuurregels (`CONCEPT:`-regels, wiki-link-formaat). Wordt altijd door Notemd toegevoegd om parseerbaarheid te garanderen. +5. **Inhoud** -- De daadwerkelijke notetekst, die op runtime wordt vervangen via `{{content}}`. + +### Promptvariabelen + +Variabelen worden bij uitvoering vervangen. De beschikbare variabelen verschillen per taak: + +| Variable | Taakken | Vervangen door | +|----------|-------|---------------| +| `{{content}}` | Alle | Het notitie- of selectietekst | +| `{{concept}}` | Template voor conceptnotitie | De geëxtraheerde conceptnaam | +| `{{description}}` | Template voor conceptnotitie | Beschrijving van het concept gegenereerd door LLM | +| `{{backlinks}}` | Template voor conceptnotitie | Lijst van bronnotities met links | +| `{{date}}` | Template voor conceptnotitie | Huidige datum (YYYY-MM-DD) | +| `{{language}}` | Vertaling | Doeltaal voor de uitvoer | +| `{{source}}` | Template voor conceptnotitie | Basisnaam van de bronnotitie | + +### Gefocust leergebied + +De gefocuste leerfunctie is een snelkoppeling voor het beperken van het leergebied. In plaats van een aangepaste prompt te schrijven waarin uw vakgebied wordt genoemd, stelt u `focusedLearningDomain` in de instellingen in: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +Dit voegt `Relevant Fields: [medicine]` toe aan de extractieprompt, waardoor de LLM prioriteit geeft aan concepten die relevant zijn voor het gebied en generieke concepten onderdrukt. Het is lichter dan een volledig aangepaste prompt en werkt bij alle extractietaken. + +## Configuratie + +| Instelling | Standaard | Effect | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | De standaard prompt voor het toevoegen van links overschrijven | +| `customExtractConceptsPrompt` | `''` | De standaard prompt voor conceptextractie overschrijven | +| `customResearchPrompt` | `''` | De standaard prompt voor onderzoek + samenvatting overschrijven | +| `customTranslatePrompt` | `''` | De standaard prompt voor vertaling overschrijven | +| `customDiagramPrompt` | `''` | De standaard prompt voor diagramgeneratie overschrijven | +| `focusedLearningDomain` | `''` | Disciplinaire context toevoegen aan extractie- en linkerprompten | +| `extractConceptsMinimalTemplate` | `true` | Gebruik het conceptnotitietemplate met alleen de titel (beïnvloedt het bereik van het `{{concept}}` template) | +| `customConceptNoteTemplate` | `''` | Het conceptnotitiefilamentemplate overschrijven met volledige variabelenondersteuning | + +**Wanneer een veld van de aangepaste prompt leeg is, wordt de ingebouwde standaardprompt gebruikt.** + +## Voorbeeld + +U bent een medisch onderzoeker die concepten uit klinische proefnotities extrahiert. De standaardprompt haalt zowel generieke zelfstandige naamwoorden als medische termen op, waardoor uw conceptmap overvol raakt. + +**Oplossing:** Stel een gefocust leergebied in en gebruik een aangepaste extractieprompt. + +1. Stel `focusedLearningDomain` in op `medicine` +2. Stel `customExtractConceptsPrompt` in op: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +Nu wanneer je "Extract concepts" uitvoert op een klinisch verslag, genereert de LLM: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +In plaats van het standaardgedrag dat ook ongewenste algemene termen zoals "hospital" of "month" kan extraheren. + +## Tips + +- **Begin met het gefocuste leergebied** voordat je een volledige aangepaste prompt schrijft. Dit dekt 80% van de gebruiksscenario’s met één instelling. +- **Behoud de uitvoerformat** -- Verwijder nooit instructies over het formaat zoals "one per line" of "CONCEPT: prefix" uit aangepaste prompts. De parser van Notemd is hiervan afhankelijk. +- **Test eerst met één verslag** -- Aangepaste prompts kunnen onverwachte effecten hebben op de breedte van de extractie. Controleer dit op één verslag voordat je in batch verwerkt. +- **Houd prompts beknopt** -- Te lange aangepaste prompts verbruiken tokens en kunnen de focus van het model verminderen. + +--- + +## Volgende stappen + +- [Wiki-Links](/docs/features/wiki-links) -- Wat wordt gelinkt wanneer je de add-links prompt aanpast +- [Concept Notes](/docs/features/concept-notes) -- Templates voor conceptnotities en de `{{concept}}` variabele +- [Batch Processing](/docs/advanced/batch-processing) -- Pas aangepaste prompts toe op hele mappen +- [Troubleshooting](/docs/advanced/troubleshooting) -- Oplossingen voor problemen waarbij aangepaste prompts onverwachte uitvoer geven diff --git a/website/i18n/nl/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/nl/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..33acf5a0 --- /dev/null +++ b/website/i18n/nl/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "Probleemoplossing" +description: "Veelvoorkomende problemen en oplossingen" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Probleemoplossing + +<TLDR> +**De meeste Notemd problemen vallen onder vier categorieën: API kernproblemen, netwerkverbinding, authenticatiefouten (401/403) en snelheidsbeperkingen (429).** De ingebouwde verbindingstest en het diagnostische paneel helpen snel de oorzaak te vinden. Op deze pagina staan alle veelvoorkomende foutmeldingen, hun oorzaak en de oplossing. Voor problemen die hier niet staan, rapporteer ze dan op GitHub Issues met de diagnostische uitvoer. + +Dit maakt deel uit van de [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Overzicht + +Notemd is afhankelijk van externe diensten -- LLM providers en zoek APIs -- waardoor de meeste problemen zich buiten de plugin zelf voordoen. Het diagnostische paneel in de instellingen geeft een gestructureerd overzicht van de laatste API oproep, inclusief de verzoek URL, status van het antwoord en de foutinhoud. Controleer dit altijd eerst voordat je verder onderzoekt. + +## Hoe het werkt: Diagnostiek + +### Verbindingstest + +Elke configuratiesectie voor providers heeft een **"Test Connection"**-knop. Door erop te klikken wordt een minimale API aanvraag gestuurd (meestal een lijst met modellen of een korte voltooiing) en wordt aangegeven of het succesvol was of dat er een specifieke HTTP fout optreedt. Dit is de snelste manier om te controleren of je API sleutel en basis URL correct zijn. + +### Diagnostisch paneel + +**Instellingen --> Notemd --> Diagnostiek** toont: + +| Veld | Inhoud | +|-------|---------| +| Laatste provider | Welke provider werd het laatst aangeroepen | +| Laatste model | Welk model werd het laatst aangeroepen | +| Laatste status | Statuscode HTTP of transportfout | +| Laatste fout | Ruwe foutmelding van de API | +| Laatste verzoek URL | Volledige URL van het laatste verzoek (vertrouwelijke API sleutel gecensureerd) | +| Lichaam van de laatste reactie | Gekortwiekt lichaam van de reactie (eerste 500 tekens) | + +Kopieer de volledige diagnostische uitvoer wanneer je problemen rapporteert op GitHub. + +## Veelvoorkomende fouten + +### Sleutel API is ongeldig of ontbreekt + +**Symptoom:** HTTP 401 of "Onjuiste API sleutel verstrekt" + +**Oorzaak:** De API sleutel ontbreekt, bevat witruimte of behoort tot een andere provider. + +**Oplossing:** +1. Controleer of de sleutel geen voor- of achterwaartse ruimtes heeft +2. Zorg dat de sleutel overeenkomt met de geselecteerde provider (een OpenAI sleutel werkt niet met Anthropic) +3. Controleer of uw account credits heeft of een actieve abonnement is +4. Klik op **"Test Connection"** om dit te verifiëren + +### Netwerk-/verbindingsschade + +**Symptomen:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**Oorzaak:** Het API-eindepunt is vanaf uw apparaat niet bereikbaar. + +**Oplossing:** +1. Controleer uw internetverbinding +2. Als u zich achter een proxy of firewall bevindt, controleer of de API-domain niet geblokkeerd is +3. Voor Ollama: controleer of `ollama serve` draait (`ollama list` moet modellen teruggeven) +4. Voor LMStudio: controleer of de server op `localhost:1234` draait +5. Probeer een andere transportmethode – mobiele gebruikers moeten ervoor zorgen dat de `requestUrl`-transportmethode actief is +6. Activeer `enableStableApiCall` voor automatische herproberingen bij tijdelijke fouten + +### 403 Verboden + +**Symptomen:** HTTP 403 + +**Oorzaak:** Uw API-sleutel is geldig, maar heeft geen toestemming voor de opgevraagde resource. + +**Oplossing:** +1. Sommige modellen vereisen speciale toegang (bijv. GPT-4 via Azure heeft een benodigde deploynaam) +2. Sommige aanbieders beperken modellen op basis van planniveau – controleer uw account +3. Regionale beperkingen kunnen van toepassing zijn (sommige Chinese aanbieders blokkeren internationale IP’s en omgekeerd) +4. Controleer of de naam van het model correct gespeld is (bijv. `gpt-4o` in plaats van `gpt-4o-mini` wanneer het mini-model alles is wat uw plan toestaat) + +### Rate Limit (429) + +**Symptoom:** HTTP 429 of "Rate limit exceeded" + +**Oorzaak:** Te veel verzoeken in een korte tijdspanne. + +**Oplossing:** +1. Verlaag `batchConcurrency` naar `1` of `2` +2. Wacht enkele minuten voordat u opnieuw probeert +3. Bekijk de documentatie van uw aanbieder over de rate limit voor uw planniveau +4. Activeer `enableStableApiCall` voor automatische herprobering met backoff +5. Overweeg om over te stappen naar een aanbieder met hogere limieten (DeepSeek, Ollama) + +### Model Not Found + +**Symptoom:** "Model not found" of HTTP 404 + +**Oorzaak:** De naam van het model bestaat niet bij de geselecteerde aanbieder. + +**Oplossing:** +1. Klik op **"Get Model List"** om alle beschikbare modellen voor uw provider te zien +2. Sommige modelnamen veranderen in de loop der tijd -- controleer de huidige naam in de documentatie van de provider +3. Voor Ollama: voer `ollama list` uit om de opgehaalde modellen te bekijken; alleen gedownloade modellen zijn beschikbaar + +### Geen links / Geen concepten gegenereerd + +**Symptoom:** Het commando wordt uitgevoerd maar er wordt geen output gegenereerd + +**Oorzaak:** De LLM heeft een lege of onleesbare respons teruggegeven. + +**Oplossing:** +1. Controleer het diagnostische paneel voor de werkelijke LLM-respons +2. Probeer een krachtiger model (sommige kleine modellen hebben moeite met gestructureerde output) +3. Zorg ervoor dat de notitie voldoende inhoud bevat (>50 woorden) +4. Bekijk uw aangepaste prompt op conflicterende instructies +5. Schakel tijdelijk de synoniemsuppressie uit om te zien of deze te agressief filtert + +### Doubao Endpoint ID ontbreekt + +**Symptoom:** Fout wanneer de ByteDance Doubao provider wordt gebruikt + +**Oorzaak:** Doubao vereist een Ark endpoint ID (formaat: `ep-xxxxxxxx-xxxx-xxxx`) in plaats van een modelnaam. + +**Oplossing:** Vervang het standaard placeholder-model door je eigen endpoint-ID uit de Volcengine-console. + +## Configuratie + +| Diagnostische instellingen | Locatie | Doel | +|--------------------|----------|---------| +| **Verbindingstest** | Instellingen --> Provider-sectie | Controleer de API-sleutel en de verbinding | +| **Modellijst opvragen** | Instellingen --> Provider-sectie | Bevestig welke modellen toegankelijk zijn | +| `enableStableApiCall` | Instellingen --> Geavanceerd | Activeer herproberen met backoff | +| `batchConcurrency` | Instellingen --> Batch | Stuur paralleliteit aan om rate limits te vermijden | + +## Hoe problemen te melden + +Als je probleem hierboven niet wordt behandeld: + +1. Open **Instellingen --> Notemd --> Diagnostics** +2. Kopieer de volledige diagnostische uitvoer +3. Open een GitHub Issue op [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +4. Inclusief: Obsidian versie, Notemd versie, provider, model, diagnostische uitvoer en stappen om het probleem na te bootsen +5. Verberg je API sleutel uit alle gedeelde logs + +--- + +## Volgende stappen + +- [LLM Providers](/docs/providers/overview) -- Volledige referentie voor providerconfiguratie +- [Batch Processing](/docs/advanced/batch-processing) -- Configuratie voor gelijktijdigheid en herproberingen bij grote operaties +- [Custom Prompts](/docs/advanced/custom-prompts) -- Verwijder onverwacht LLM gedrag door prompts aan te passen diff --git a/website/i18n/nl/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/nl/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..9d7837df --- /dev/null +++ b/website/i18n/nl/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "Vraag en antwoord over veelvoorkomende onderwerpen" +description: "Algemene vragen over de installatie, functies en gebruik van Notemd" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# Vraag en antwoord over veelvoorkomende onderwerpen + +<TLDR> +**Snelle antwoorden op de meest voorkomende Notemd vragen.** Hierin wordt aandacht besteed aan installatie (5 minuten instellen), ondersteuning voor 30+ LLM providers, opties voor lokale/cloud model, workflow’s met één klik, meertalige UI (21 talen), automatisering van wiki-linking, integratie met onderzoek, PDF leesworkflows, diagramgeneratie en open-source licentie. Alle functies werken offline met Ollama. +</TLDR> + +--- + +## Installatie en opzet + +### Hoe installeer ik Notemd in Obsidian? + +Open Obsidian **Instellingen → Community Plugins → Zoeken** → zoek op **"Notemd"** → **Installeer** → **Activeren**. + +**Eisen:** +- Obsidian 0.15.0+ +- Wordt ondersteund op desktop (Windows, macOS, Linux) en mobiel (iOS, Android) + +**Handmatige installatie:** +1. Download `main.js`, `styles.css`, `manifest.json` van [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) +2. Plaats ze in `<your-vault>/.obsidian/plugins/notemd/` +3. Laad Obsidian opnieuw op en activeer de plugin + +**Statistieken:** 4k+ downloads, 44 releases, onder licentie MIT. + +--- + +## LLM Configuratie + +### Welke LLM providers ondersteunt Notemd? + +Notemd ondersteunt **30+ providers**: + +**Cloudproviders:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonnet, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**Gericht op China:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**Lokal/zelf gehost:** +- Ollama +- LM Studio +- Elke OpenAI-compatibele endpoint + +**Gateways:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models, Fireworks, LiteLLM, Nebius, Cerebras +- Hugging Face, Vercel AI Gateway, Requesty + +### Kan Notemd werken met lokale LLMs? + +**Ja, volledig ondersteund.** Notemd werkt met: +- **Ollama** (native integratie) +- **LM Studio** (via OpenAI-compatible endpoint) +- **vLLM, LocalAI, text-generation-webui** (via OpenAI-compatible mode) + +Alle taken werken met lokale modellen: linken, conceptgeneratie, vertaling, onderzoek en diagramgeneratie. + +**Voorbeeld van mix & match:** +- Ollama (lokaal) voor linken → snel, privé, gratis +- OpenAI voor onderzoek → hoge kwaliteit, integratie met webzoekmachine +- Gemini voor vertaling → multimodale ondersteuning + +### Hoe configureer ik verschillende modellen voor verschillende taken? + +In **Notemd Settings** heeft elke taak onafhankelijke selectoren voor provider/modelen: + +| Taak | Voorbeeldconfiguratie | +|------|----------------------| +| **Linken** | DeepSeek (snel, goedkoop) | +| **Conceptgeneratie** | Claude Opus (hoge kwaliteit) | +| **Onderzoek** | Perplexity of GPT-4o (webgebaseerd) | +| **Vertaling** | Gemini Flash (multimodaal) | +| **Diagramgeneratie** | Ollama (lokaal, privé) | + +Deze optimalisatie per taak brengt snelheid, kosten en kwaliteit in balans. + +--- + +## Core Features + +### Hoe verschilt Notemd van ChatGPT bij het lezen van artikelen? + +| Dimensie | ChatGPT | Notemd | +|-----------|---------|--------| +| **Outputlocatie** | Chatgeschiedenis (tijdelijk) | Obsidian vault (persistent bestanden) | +| **Resultaatformaat** | Tekstantwoord | Wiki-links, conceptnotities, diagrammen, vertalingen | +| **Langdurige waarde** | Verdwijnt na sessie | Wordt opgeslagen in een kennisbase | +| **Herbruikbaarheid** | Moet opnieuw worden opgevraagd | Bestanden blijven bestaan, link blijft, ontwikkelt zich verder | + +**Gebruik ChatGPT voor:** Snelle vragen en antwoorden, éénmalige uitleggingen +**Gebruik Notemd voor:** Het opbouwen van een persistente, gestructureerde kennisbase gedurende weken/manden + +### Hoe voegt Notemd wiki-links toe aan notities? + +**Proces:** +1. U voert "Process file (add links)" uit op een notitie +2. Notemd stuurt de tekst naar uw gedefinieerde LLM +3. De LLM identificeert belangrijke concepten in de context +4. Notemd voegt `[[wiki-links]]` toe bij elke voorkomst van een concept +5. Optioneel worden automatisch conceptnotities gemaakt in een door u aangewezen map + +**Kenmerken:** +- Synoniemsuppressie (vermijdt duplicaten zoals "transformer" vs "transformers") +- Backlinks van conceptnotities naar de bron +- Linkintegriteit bij hernoemen of verwijderen +- Pure extractiemodus (haalt concepten eruit zonder het origineel te wijzigen) + +### Wat is het Notemd één-klikwerkflow? + +**Één-klikwerkflows** koppelen meerdere acties aan een **enkele zijbalkknop**. + +**Standaardwerkflow:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**Resultaat:** Met één klik worden uitgevoerd: +1. Wiki-links toevoegen aan de huidige notitie +2. Conceptnotities genereren voor nieuwe termen +3. Onderzoek doen en achtergrondinformatie toevoegen +4. Comprimeren tot een Mermaid diagram + +**Aanpasbare workflows:** Definieer de uwe in Instellingen met het DSL-formaat. Elke workflow wordt een herbruikbare knop in de zijbalk. + +### Hoe vergelijkt Notemd zich met Copilot of Smart Connections? + +Deze plugins lossen verschillende problemen op: + +- **Copilot** — Conversatiegericht. U chatten met een AI over uw notities. De antwoorden van de AI blijven in het chatvenster; ze wijzigen uw vault niet. +- **Smart Connections** — Ontdekkinggericht. Het vindt semantisch vergelijkbare notities met behulp van embeddings. Het creëert of wijzigt geen inhoud. +- **Notemd** — Schrijfgereicht. De AI verwerkt uw notities en genereert gestructureerde resultaten (wiki-links, conceptnotities, onderzoek, diagrammen, vertalingen) rechtstreeks in uw vault als permanente bestanden. + +| Wat u nodig heeft | Aanbevolen plugin | +|----------------|-------------------| +| Chatten met AI over notities | Copilot | +| Vind vergelijkbare/gerelateerde notities | Smart Connections | +| Automatisch wiki-links invoegen en een kennisgraaf opbouwen | **Notemd** | +| Conceptnotities genereren met backlinks | **Notemd** | +| Diagrammen maken van notitieinhoud | **Notemd** | +| Onderzoek een onderwerp en voeg samenvattingen toe | **Notemd** | + +Alle drie kunnen samen worden gebruikt — ze vullen elkaar aan in plaats van met elkaar te concurreren. + +--- + +## Onderzoek & Vertaling + +### Welke zoekdiensten werken met Notemd onderzoek? + +| Dienst | API Sleutel vereist | Kwaliteit | Opmerkingen | +|---------|-----------------|---------|-------| +| **Tavily** | Ja | Hoog | Aanbevolen, AI-geoptimaliseerde zoekopdracht | +| **DuckDuckGo** | Nee | Experimenteel | Geen instellingen nodig, lagere kwaliteit | + +**Hoe "Onderzoek en samenvatten" werkt:** +1. U kiest een onderwerp of voert het uit op de huidige notitie +2. Notemd vraagt de zoekservice om gegevens +3. Resultaten → LLM samenvatting +4. Samenvatting wordt toegevoegd aan uw notitie met bronverwijzingen + +**Resultaat:** Een permanente onderzoekslijn in uw opslag, geen browsertabbladen. + +### Steunt Notemd het Chinees of andere talen? + +**UI talen:** 21+ ondersteund +- Engels, 中文 (简体), 中文 (繁體), 日本語, 한국어 +- Arabisch, Duits, Frans, Spaans, Russisch, Portugees, Italiaans +- Hindi, Bengaals, Thais, Vietnamees, Turks, Pools, Tsjechisch en nog veel meer + +**Taal van de taakuitvoer:** Onafhankelijke instelling +- UI in het Chinees + uitvoer in het Engels: ✅ +- UI in het Engels + uitvoer in het Chinees: ✅ + +**Toepassingsgeval:** Bilingual onderzoekers kunnen UI in hun moedertaal houden terwijl ze Engelse notities genereren voor publicatie. + +--- + +## PDF en academische workflows + +### Kan ik Notemd gebruiken voor het lezen van artikelen/PDF? + +**Ja.** Workflow: +1. **Converteer PDF naar Markdown** met [MinerU](https://github.com/opendatalab/MinerU) (aanbevolen voor academische artikelen) +2. Open de Markdown-bestand in Obsidian +3. Voer Notemd-taken uit: + - **Voeg wiki-links toe** aan belangrijke termen + - **Genereer conceptnotities** voor onbekende terminologie + - **Haal het originele tekst** op via aangepaste vragen (bijv. "Wat zijn de beperkingen?") + - **Onderzoek de achtergrond** van geciteerde methoden/datasets + - **Vertaal** moeilijke delen + - **Comprimeer tot Mermaid**-diagram voor structureel begrip + +**Versie 1.9.1+:** Extractie van hoofdstukstructuur met TOC-ondersteuning + +**Resultaat:** Het lezen van uw artikel wordt een gestructureerd, linkbaar kennisobject in uw vault. + +--- + +## Diagrammen en visualisatie + +### Welke grafiek/diagramtypen kan Notemd genereren? + +| Type | Ondersteuning | Kenmerken | +|------|---------|----------| +| **Mermaid** | Volledig | Stroomdiagram, sequentie, klasse, staat, ER, Gantt, automatische syntaxiscorrectie, batchvalidatie | +| **JSON Canvas** | Volledig | Obsidian-native canvas-indelingen | +| **Vega-Lite** | Volledig | Gegevensgrafieken, tijdsreeksen, staafdiagrammen, verspreidingsdiagrammen, aanpasbaar | +| **HTML** | Fallback | Voor onondersteunde diagramtypen | +| **Editable HTML/SVG** | Expliciet doelwit | Zelfstandige inline SVG met semantische Draw.io-stijl annotaties | +| **Draw.io / Drawnix artefacten** | Exportgrens | Deterministisch XML/JSON uit `SemanticFigureModel`; geen afhankelijkheid van editor-runtime | + +**Mermaid automatische correctie:** Herstel in diepe debugmodus: +- Broken pijlen (`-->`, `-.->`, `==>`) +- Ongeldige labels, opmerkingen +- Syntaxfouten in subgraphen +- Vormnotatie (`[`, `(`, `{`, `((`) +- Pijtkarakters in labels +- Opmerkingen als bijlage + +**Workflow:** +1. Voer "Samenvatten als Mermaid diagram" uit op een notitie +2. Vooraf bekijken in modalvenster +3. Exporteren als SVG of PNG +4. Of sla het op als `.mmd` bestand in de kluis + +--- + +## Open Source & Community + +### Is Notemd gratis en open source? + +**Ja.** +- **Licentie:** MIT (permissief, commercieel gebruik toegestaan) +- **Broncode:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **Geen betaalde niveaus, geen cloud-lock-in, geen telemetry** +- **Community:** 234+ GitHub sterren, actieve Discord + +**U bezit:** +- Uw gegevens (blijven in uw kluis) +- Uw workflows (aanpassen van prompts, modellen, chains) +- Uw privacy (lokale LLM ondersteuning) + +**Bijdragen:** Pull requests zijn welkom. Zie [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +## Probleemoplossing + +### Mijn LLM oproepen falen. Wat moet ik controleren? + +1. **Is de API sleutel geldig?** Controleer Settings → Provider Configuration +2. **Is de modelnaam correct?** Gebruik de knop "获取模型列表" (Get Model List) in de instellingen +3. **Is het netwerk toegankelijk?** Sommige aanbieders vereisen een VPN +4. **Snelheidsbeperkingen?** Controleer het dashboard van de aanbieder +5. **Diagnostiek:** Voer "Connection Test" uit in de instellingen voor gedetailleerde foutlogboeken + +### Notemd is traag. Hoe kan ik de snelheid verhogen? + +1. **Gebruik snelere modellen:** DeepSeek, Gemini Flash, GPT-4o-mini +2. **Verklein de chunk-grootte:** Instellingen → Smart Chunking → verlaag het woordtal +3. **Parallelle verwerking:** Instellingen → Batch Processing → verhoog de paralleliteit +4. **Lokale modellen:** Ollama voor taken die geen webzoekopdrachten nodig hebben + +### Kan Notemd 100% offline werken? + +**Ja, met Ollama.** Zonder API sleutel, zonder internet, gaan er geen gegevens van uw apparaat weg: + +1. Installeer [Ollama](https://ollama.com) en start `ollama serve` +2. In de Notemd instellingen selecteert u **Ollama** als uw aanbieder +3. Laad een model op: `ollama pull llama3` (of qwen2.5, gemma2, enz.) +4. Alle functies werken: wiki-links, conceptnotities, vertaling, diagrammen + +**DuckDuckGo onderzoek** werkt ook zonder een API sleutel (experimentele kwaliteit). + +Bij cloudaanbieders (OpenAI, Anthropic, Google, DeepSeek, enz.) wordt de inhoud van uw notities als API invoer verzonden. Controleer de privacyverklaring van elke aanbieder voor details over gegevensverwerking. + +### Worden mijn gegevens naar de cloud gestuurd? + +**Het hangt af van uw provider:** + +| Type provider | Worden gegevens naar de cloud gestuurd? | Opmerkingen | +|--------------|---------------------|-------| +| **Ollama (lokaal)** | Nee | Alles blijft op uw apparaat | +| **LMStudio (lokaal)** | Nee | Hetzelfde als Ollama | +| **DeepSeek, OpenAI, etc.** | Ja | Let op: de inhoud wordt als API-invoer verstuurd voor verwerking | +| **OpenRouter, AIHubMix** | Ja | Poort die naar cloudproviders leidt | + +Notemd verzamelt zelf **geen telemetry, geen analytics, geen gebruikersgegevens**. Het plugin is volledig open source (MIT). De enige gegevens die uw machine verlaten zijn die u expliciet naar uw geconfigureerde LLM provider stuurt. + +### Welk Obsidian AI-plugin is het beste voor onderzoek? + +Dat hangt af van uw onderzoeksworkflow: + +| Nodig | Plugin | Waarom | +|------|--------|-----| +| Gerelateerde artikelen/notities vinden | Smart Connections | Ontdekking van semantische gelijkenis | +| Chatten over uw bronnen | Copilot | Conversatie met vault-context | +| Automatisch concepten linken + notities genereren | **Notemd** | AI identificeert concepten, voegt links toe en maakt notities aan | +| Webonderzoek + samenvatten in notities | **Notemd** | Tavily/DuckDuckGo zoeken → LLM samenvatting → toegevoegd aan notitie | +| Diagrammen genereren op basis van onderzoek | **Notemd** | Mermaid/Canvas/Vega-Lite uit inhoud van notitie | + +**Aanbevolen combinatie:** Smart Connections (ontdekking) + Notemd (structureren) + Copilot (discussie). + +--- + +## Hulp krijgen + +- **Documentatie:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **GitHub Issues:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **Sponsor:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/nl/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/nl/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..a67f06e8 --- /dev/null +++ b/website/i18n/nl/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "Conceptnotities" +description: "Conceptnotities genereren en beheren — zelfstandige notities voor belangrijke concepten die uit uw vault zijn gehaald" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# Conceptnotities + +<TLDR> +**Notemd haalt de belangrijkste concepten uit uw notities en maakt zelfstandige conceptnotitiefailen aan.** LLM identificeert de kerntermen, genereert één `.md` bestand per concept in een instelbare map en voegt optioneel backlinks naar de oorspronkelijke notitie toe. Het ondersteunt het weghalen van synoniemen, selectie van een model per taak, zuivering van bestandsnamen en een 4-stappen-deduplicatieengine. Dit maakt deel uit van de [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Overzicht + +Conceptnotities vormen de bouwstenen van een verbonden kennisbase. Wanneer je een notitie verwerkt, Notemd: + +1. **Stuurt je tekst naar een LLM** met een gestructureerd extractieopdracht +2. **Pareert `CONCEPT:` regels** uit het LLM-antwoord +3. **Maakt één `.md` bestand per concept** aan in een aangewezen map +4. **Voegt backlinks toe** aan de bronnotitie (wanneer geactiveerd) + +## Hoe het werkt + +### Extractiepijplijn + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### De extractieprompt + +De LLM ontvangt een opdracht die hem instrueert om: + +- Haal de **zelfstandige naamwoorden of zelfstandig naamwoordelijke zinsdelen** die centraal staan voor het onderwerp van het document. +- **Geef voorkeur aan specificiteit** — "Dielectrische relaxatie" in plaats van "Relaxatie" +- **Normaliseren naar enkelvoud** — "models" wordt "model" +- **Subconcepten onderdrukken** — als “dielektrische relaxatie” voorkomt, moet “relaxatie” niet ook worden geëxtraheerd +- **Sla** referenties/bibliografie‑secties, algemene zelfstandige naamwoorden en bedrijfs/productnamen over +- Geef één concept per regel weer als `CONCEPT: Term Name` + +**Suppressie van synoniemen** (optioneel): voeg "Vermeed het extraheren van synoniemen, semantisch vergelijkbare kernconcepten of sleutelwoorden wanneer mogelijk" toe aan de prompt. + +**Gefocust leergebied** (optioneel): voeg `Relevant Fields: [domain]` toe om de extractie te beperken tot een specifieke discipline. + +**Taaloverstijging** (optioneel): voeg "De uitvoerconcepten MOETEN in [taal] zijn." toe. + +### Chunking + +Lange notities worden opgedeeld door `settings.chunkWordCount`. Elke chunk wordt apart verstuurd. Concepten uit alle chunks worden verzameld in een `Set` — duplicaten tussen chunks worden stilzwijgend verwijderd. LLM fouten in individuele chunks stoppen de operatie niet. + +## Concept Note Creation + +### Regels voor bestandsnamen + +| Regel | Gedrag | +|------|----------| +| Kleuren/onderstrepingen | Vervangen door spaties | +| Speciale tekens | Verwijderd: backslash, forward slash, kolon, sterretje, vraagteken, aanhalingstekens, hoekige haken, pijp, hash, caret, haken | +| Lege ruimte | Gecomprimeerd en afgesneden | +| Maximale lengte | 100 tekens (afgesneden + opnieuw bijgesneden) | +| Leeg/alles-punten resultaat | Stilweg overgeslagen | + +Voorbeeld: `A-B: Key*Term` wordt `A B KeyTerm.md` + +### Templates + +**Volledige template** (backlinks geactiveerd, minimale template uit): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**Minimale template** (wanneer `extractConceptsMinimalTemplate: true`): + +```markdown +# Concept Name +``` + +### Bestaande notities bijwerken + +Wanneer er al een conceptbestand bestaat: + +1. Als backlinks zijn geactiveerd en de bronnotitie nog niet is opgenomen, voeg dan een backlink toe +2. Als er een `## Linked From`-sectie bestaat, voeg deze in vóór de volgende `##`-kop +3. Als er geen `## Linked From` bestaat, voeg de sectie aan het einde toe +4. Dubbele backlinks worden gecontroleerd en overgeslagen + +### Configuratie + +| Instelling | Standaard | Effect | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | Master-schakelaar. Uit = geen notities gemaakt | +| `conceptNoteFolder` | `''` (uitgeschakeld) | Pad naar map voor conceptnotities | +| `extractConceptsMinimalTemplate` | `true` | Notities alleen met titel (geen Linked From) | +| `extractConceptsAddBacklink` | `false` | Backlinks toevoegen tijdens standaardextractie | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | Per taak LLM voor conceptextractie | +| `extractConceptsLanguage` | `'en'` | Uitvoerstaal voor conceptnamen | +| `replaceSynonymsDuringConceptExtraction` | `false` | Synoniemsuppressie in de prompt inschakelen | +| `generateConceptLogFile` | `false` | Een `.log`-lijst met gecreëerde concepten schrijven | + +**Belangrijk:** De `extractConceptsAddBacklink` en `extractConceptsMinimalTemplate` instellingen beïnvloeden alleen de **speciale extractiecommando’s**. Het commando "Add Links" maakt altijd notities volgens het volledige template met backlinks. + +## Deduplicatie + +Het dedup-commando (`Notemd: Check & remove duplicate concept notes`) voert een 5-stappenanalyse uit: + +### Stap 1: Exacte bestandsnaamovereenkomst + +Vergelijking van de bestandsnaam zonder rekening te houden met hoofdletters binnen het gedefinieerde bereik. + +### Stap 2: Detectie van meervoudsvormen + +Suffixen verwijderen: `-ies` tot `-y`, `-es` verwijderd, `-s` verwijderd. Vergelijking van de enkelvoudsvorm met bestanden uit het bereik. Onregelmatige meervoudsvormen (children/child) worden niet verwerkt. + +### Stap 3: Normalisatie van symbolen + +Geldt voor: `toLowerCase()`, vervang hyphens/underscores door een ruimte, verwijder niet-alfanumerieke tekens, samenvoeg witruimte. Elementen die op dezelfde manier worden genormaliseerd, krijgen een label. + +### Stap 4: Enkelvoudig woord + +Enkelvoudige conceptnotities worden vergeleken met bestandsnamen uit de meervoudige scope-bestanden. Wordt niet uitgevoerd wanneer de scope `concept_folder_only` is. + +### Stap 5: Bevestiging en verwijdering + +Alle kandidaten worden weergegeven in een bevestigingsmodal. Goedgekeurde items worden naar de systeemprullenbak verplaatst. De operatie kan tussen elke verwijdering worden geannuleerd. + +### Scope-modi + +| Modus | Vergeleken met | +|------|-------------------| +| `vault` (standaard) | Alle `.md`-bestanden in de kluis, exclusief de conceptmap | +| `concept_folder_only` | Andere conceptnotities binnen de map | +| `include` | Bestanden in specifiek opgenoemde mappen | +| `exclude` | Alle `.md`-bestanden in de kluis, exclusief de conceptmap + opgenoemde mappen | + +## Gebruik + +### Concepten extraheren (standaard) + +1. Een notitie openen +2. Voer **"Notemd: Concepten extraheren"** in uit het commandopalette +3. Conceptnotities worden gecreëerd in de gedefinieerde map + +### Inhoud extraheren en genereren + +**"Notemd: Concepten extraheren en titels genereren"** — het extrahiert concepten en voert vervolgens "Genereren vanuit titel" uit op elke notitie in de conceptmap. Hierdoor wordt inhoud gegenereerd voor **alle** conceptnotities in de map, niet alleen voor de nieuw gemaakte. + +### Wiki-link maken van geselecteerde tekst + +1. Tekst markeren in de editor +2. Voer **"Notemd: Wiki-link maken van geselecteerde tekst"** uit +3. De tekst wordt omhuld door `[[...]]` en er wordt een conceptnotitie gemaakt + +## Tips + +- **Stel eerst de conceptmap in** — zonder deze worden geen notities gemaakt. Er verschijnt een waarschuwing als deze niet is ingesteld. +- **Gebruik modellen per taak** — conceptextractie werkt goed met goedkopere modellen (GPT-4o-mini, DeepSeek). Gebruik dure modellen alleen voor onderzoek of vertaling. +- **Schakel synoniemsuppressie in** voor technische gebieden waar meerdere termen naar hetzelfde concept verwijzen. +- **Dedupliceer regelmatig** — voer de dedupliceringscommando uit na batchverwerking om bijna-identieke elementen op te sporen. +- **Het logbestand wordt bij elke uitvoering overgeschreven**, niet toegevoegd. Maak een kopie als je eerdere resultaten nodig hebt. + +--- + +## Volgende stappen + +- [Wiki-Links](./wiki-links) — Hoe concepten inline worden gelinkt +- [Diagrams](./diagrams) — Conceptrelaties visualiseren +- [Workflows](./workflows) — Extractie combineren met andere taken diff --git a/website/i18n/nl/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/nl/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..35d20207 --- /dev/null +++ b/website/i18n/nl/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "Diagrammen" +description: "Genereer Mermaid, JSON Canvas, Vega-Lite, HTML, bewerkbare afbeeldingen en toekomstige beperkte circuitikz diagrammen uit je notities met een spec-first architectuur" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Diagrammen + +<TLDR> +**Notemd genereert diagrammen uit je notities via een spec-first pipeline.** De LLM levert een renderer-agnostisch `DiagramSpec` JSON op, waarna gespecialiseerde adapters dit omzetten in Mermaid, JSON Canvas, Vega-Lite, HTML of bewerkbare HTML/SVG uitvoer. Er wordt ondersteuning geboden voor 8 intentietypen, automatische fallbackketens, live preview met SVG/PNG export, semantische verificatie en generatie aangevuld met lokale kennis. +</TLDR> + +Dit maakt deel uit van de [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). + +## Architectuur: Spec-First Pipeline + +Notemd vraagt nooit aan de LLM om rechtstreeks Mermaid/Vega/Canvas syntaxis te genereren. In plaats daarvan: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**Waarom spec-first?** LLM’s genereren vaak ongeldige renderer-syntaxis (Mermaid in het bijzonder). Een gestructureerd `DiagramSpec` kan vóór renderen worden gevalideerd, en dezelfde spec kan als fallback dienen voor meerdere renderers. + +## Ondersteunde diagramtypen + +| Intent | Primair renderer | Fallbacks | Gebruiksgeval | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | Hiërarchische onderverdeling van onderwerpen | +| `flowchart` | Mermaid | HTML | Process flows, besluitbomen | +| `sequence` | Mermaid | HTML | Client-server interacties, protocollen | +| `classDiagram` | Mermaid | HTML | OOP klassenrelaties | +| `erDiagram` | Mermaid | HTML | Database-schema's, entiteitsrelaties | +| `stateDiagram` | Mermaid | HTML | Toestandsmachines, levenscyclusmodellen | +| `canvasMap` | JSON Canvas | Mermaid → HTML | Conceptkaarten, kennisgraphen | +| `dataChart` | Vega-Lite | Mermaid → HTML | Staven, lijnen, gebieden, verspreide punten, piecharts, tabellen | + +## Intent Detectie + +Notemd bepaalt op basis van woordscoren de beste diagramtype uit de inhoud van je notitie: + +| Intent | Triggers | Confidence | +|--------|----------|------------| +| `dataChart` | Tabellen, numerieke cellen, sleutelwoorden voor metrieken/trends, percentages | 0.88 | +| `sequence` | Vraag/antwoordvocabulaire (4+ overeenkomsten) of `->`/`=>` markers | 0.82 | +| `erDiagram` | Primair sleutel, externe sleutel, entiteit, schema (2+ overeenkomsten) | 0.80 | +| `stateDiagram` | Toestand, overgang, in afwachting, actief, mislukt (3+ overeenkomsten) | 0.76 | +| `flowchart` | Genummerde stappen (2+) of if/then/else/workflow vocabulaire | 0.74 | +| `canvasMap` | Conceptkaart, kennisgraaf, ruimtelijk, cluster | 0.72 | +| `mindmap` | Default fallback | 0.55 | + +Overtuig met de **Preferred diagram type**-instelling, de selector in de zijbalk of een expliciete optie in het commandopalette. + +## Selectie van renderdoel + +De experimentele spec-first pipeline heeft nu twee onafhankelijke controles: + +| Control | Instelling | Effect | +|---------|---------|--------| +| Preferred diagram type | `preferredDiagramIntent` | Stuurt de semantische vorm van de gegenereerde `DiagramSpec` aan | +| Preferred render target | `preferredDiagramRenderTarget` | Kiest de renderer voor **Generate diagram** en **Preview diagram** | + +Stel **Preferred render target** in op **Auto** voor de standaard planner, of kies expliciet Mermaid, JSON Canvas, Vega-Lite, HTML of Editable HTML/SVG. De override is alleen van toepassing op artifact- en preview-commando's. Het standaardcommando **Summarise as Mermaid diagram** blijft gekoppeld aan Mermaid-compatibele uitvoer zodat bestaande Markdown-workflows niet stilletjes van formaat wisselen. + +Deze scheiding is belangrijk omdat een `flowchart`-intent nu kan worden weergegeven als Mermaid voor Markdown-notities, HTML voor een betrouwbare fallback, of Editable HTML/SVG voor verdere bewerking. Draw.io en Drawnix blijven CLI-artikelformaatexporteurs in plaats van renderdoelstellingen binnen de plugin. + +## Gebruik + +### Een diagram genereren + +1. Een notitie openen +2. Voer **"Notemd: Generate diagram"** uit uit het commandopalette +3. Notemd detecteert de intentie, genereert de specificatie, rendert en slaat het artifact op + +**Uitvoerbestanden per doel:** + +| Doelwit | Extensie | Patroon bestandsnaam | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| Editabel HTML/SVG | `.html` | `{note}_diagram.html` | + +### Voorbeeld van een diagram bekijken + +1. Uitvoeren **"Notemd: Voorbeeld diagram bekijken"** +2. Een modaal venster wordt geopend met het weergegeven diagram +3. Exporteer als SVG of PNG met behulp van de knoppen op het werkbalk + +**Automatisch voorbeeld openen** is beschikbaar in de instellingen — na generatie wordt het voorbeeldmodaal venster automatisch geopend. + +Het voorbeeldmodaal venster heeft ook een paneel voor diagnostiek van artefacten. Renderers en smoke checks kunnen `RenderArtifact.diagnostics` toevoegen; het venster toont een samenvatting van de diagnostiek met tellers voor fouten/waarschuwingen/informatie, gevolgd door ernst, type diagnostiek, bericht en reparatieadvies naast het voorbeeld. Dezelfde samenvatting wordt weergegeven in de historische voorbeeldingen, zodat herhaalde circuitikz smoke-pogingen vergeleken kunnen worden zonder elke ingang te openen. Voor artefacten die broninhoud hebben maar niet inline of via de HTML iframe-path kunnen worden gerenderd, valt het venster nu terug op een voorbeeld alleen van de bron in plaats van een lege iframe af te dwingen. Dit biedt circuitikz compile/render smoke, SVG tekst-token checks, PNG-blank-schermopnames checks en toekomstige overlaprapporten een zichtbare UI oppervlakte zonder TikZJax of LaTeX als harde plugin-runtimeafhankelijkheid te maken of te doen alsof brontekst een geverifieerde visuele weergave is. + +### Legendarische Mermaid Modus + +Wanneer `enableExperimentalDiagramPipeline` uitstaat, stuurt Notemd een directe Mermaid opdracht naar de LLM. Dit omzeilt volledig de spec-pijplijn. Als de experimentele pijplijn faalt, valt het terug op deze modus. + +## Rendering-backend + +### Mermaid + +6 adapters (mindmap, flowchart, sequence, ER, class, state) vertalen `DiagramSpec` naar Mermaid syntaxis. Na generatie valideert `mermaid.parse()` de uitvoer. Als de validatie mislukt: + +1. **LLM opnieuw proberen** — één poging met het Mermaid foutbericht als context +2. **Minimalistische fallback** — een eenvoudig Mermaid diagram gebaseerd op spec-node IDs + +**Legacy Mermaid Fixer** repareert automatisch veelvoorkomende LLM syntaxisfouten: normalisatie van note-directieven, ontsnapping van pipe-labels, herpositionering van semicolons, smart quotes, dubbele streepjespijlen, vormmismatches en nog veel meer. + +### JSON Canvas + +Genereert een Obsidian JSON Canvas formaat met ruimtelijke indeling: +- Knopen worden geplaatst op basis van diepte (x = diepte × 420) en index (y = index × 170) +- De breedte wordt geschat op basis van de lengte van de label. +- Randen bevatten `fromSide: 'right'`, `toSide: 'left'`, `toEnd: 'arrow'` + +### Vega-Lite + +Maakt complete Vega-Lite v5 JSON specificaties aan met automatische encoding: +- **Cartesiaanse grafieken** (staaf/lijn/vlak/punt/scatter): x + y kanalen + kleur voor meerdere series +- **Pie**: theta = y (kwantitatief), kleur = x (nominaal) +- **Tabel**: rij = x, tekst = y + kolom = serie + +Donkere en lichte thema’s worden diep gecombineerd voordat ze worden gecompileerd. + +### HTML + +Universele fallback. Zelfstandig HTML document met: +- CSP meta‑headers +- Licht/donker mode via `prefers-color-scheme` +- Gelokaliseerde UI labels voor 20 talen +- Secties: hero, structuur (node‑boom), relaties, callouts, tabellen met gegevensseries + +### Editeerbaar HTML/SVG + +Duidelijke doelwaarde voor bewerkbare exportwerkflows. Het projecteert `DiagramSpec` naar een deterministisch `SemanticFigureModel` en genereert vervolgens een zelfstandig HTML document met inline SVG groepen die Draw.io-stijl annotaties bevatten: + +- `data-drawio-type`, `data-drawio-id` en `data-drawio-role` op semantische knopen +- `data-drawio-source` en `data-drawio-target` op semantische randen +- stabiele knoop/randidentificatoren na normalisatie van witruimte en afhandeling van conflicten +- geen scripts, geen externe schriften en geen externe assets + +Deze doelwaarde is nog niet opzettelijk de standaardplannerroute. Het is beschikbaar als een expliciete renderdoelwaarde zolang het productpad het bewerkingsgedrag in echte tools bewijst. + +### Draw.io en Drawnix Exportgrenzen + +De huidige implementatie houdt de ondersteuning van derdeneditoren bij de artifactgrens: + +| Doelwit | Contract | Runtijdafhankelijkheid | +|--------|----------|--------------------| +| Draw.io | deterministisch ongecomprimeerd `mxfile` XML afkomstig van `SemanticFigureModel` | niets in de plugin-runtijd of CI | +| Drawnix | minimalistisch `.drawnix` JSON subset met `geometry` en `arrow-line` elementen | niets in de plugin-runtijd of CI | + +De afweging is bewust: Notemd kan zichtbare labels, stabiele IDs en ondersteunde primitieve dekking controleren zonder diagram.net Desktop, Drawnix, Plait of alleen-browser editorstatus in de plugin op te nemen. + +### circuitikz / TikZJax Richting + +Schematische circuits vormen niet hetzelfde probleem als algemene flowcharts. De juiste syntaxisdoelstelling voor elektrische circuits is meestal **circuitikz**, weergegeven in Obsidian via plugins zoals TikZJax. TikZJax kan pakketten zoals `circuitikz`, `pgfplots`, `tikz-cd` en `chemfig` laden, waardoor het aantrekkelijk is voor notities over natuurkunde, circuits, scheikunde en wiskunde. + +Het risico is dat ruwe TikZ-bestanden die door LLM worden gegenereerd broos zijn: + +- Een complexe circuittopologie kan elektrisch correct zijn, maar visueel onleesbaar zijn; +- Overlappende draden en labels kunnen ervoor zorgen dat een correct netlist niet bruikbaar is voor studienotities; +- Ontbrekende pakketpreambules, verkeerde ankers of ongeldige componentennamen kunnen de weergave belemmeren; +- Feedback van de renderer is meestal op afbeeldingsniveau, terwijl LLM tekstgerichte geometrie genereert. + +Een betere architectuur is om circuitikz te behandelen als een beperkt diagramdoel, en niet als een vrije prompt: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +Het eerste-klasse model moet de circuittopologie en het lay-out apart beschrijven: + +| Laag | Verantwoordelijkheid | Voorbeeld | +|-------|----------------|---------| +| Topologie | elektrische knopen en componentverbindingen | `VDD -> RD -> drain(M1)`, `source(M1) -> GND` | +| Lay-out | positie op een raster, oriëntatie, routingbanen | `M1 at (3,2.2)`, invoer links, uitvoer rechts | +| Stijl | pakket, spanningconventie, labels, ankers | `\begin{circuitikz}[american voltages]` | +| Validatie | compilatielog, ontbrekende ankers, overlap/screencastcontroles | TikZJax/LaTeX-diagnoses plus visuele beoordeling | + +### Huidige circuitikz prototype + +Notemd bevat nu het eerste beperkte repository-prototype voor deze richting. Het is opzettelijk offline en gebonden aan een sjabloon: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +Het prototype voegt een apart `CircuitSpec`-grensgebied en een deterministische exporter toe voor zes gouden referentiefamilies: + +| Circuittype | Gouden referentie | Stroomgarantie | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | valideert `VDD -> R_D -> M1.D`, `vin -> M1.G`, `M1.S -> GND` en `M1.D -> vout` voordat LaTeX wordt geschreven | +| `cmos-inverter` | `cmos-inverter-v1` | valideert PMOS-over-NMOS-topologie, gedeelde poortinvoer, gedeelde drainuitvoer, `VDD -> MP.S` en `MN.S -> GND` voordat LaTeX wordt geschreven | +| `cmos-buffer` | `cmos-buffer-v1` | valideert twee gekaskadeerde inverterstappen, tussennode `vmid`, herstelde `vout` en gedeelde VDD/GND-leidingen voordat LaTeX wordt geschreven | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | valideert parallelle PMOS/NMOS-passapparaten tussen `vin` en `vout` met complementaire `phib` / `phi`-controles voordat LaTeX wordt geschreven | +| `cmos-nand2` | `cmos-nand2-v1` | Controleert de parallelle PMOS pull-up, seriële NMOS pull-down, dubbele invoeren `va` / `vb` en `vout` voordat LaTeX wordt geschreven | +| `cmos-nor2` | `cmos-nor2-v1` | Controleert de seriële PMOS pull-up, parallele NMOS pull-down, dubbele invoeren `va` / `vb` en `vout` voordat LaTeX wordt geschreven | + +Dit is nog geen algemene TikZ generator. Het compileert geen LaTeX, roept TikZJax niet op, inspecteert geen screenshots of voert geen geautomatiseerde afbeeldingsherstelacties uit. Die functies komen later. + +De Preview diagram commando kan direct opgeslagen circuitikz bronbestanden openen wanneer de bestandsextensie `.tex` of `.tikz` is en de bron `\usepackage{circuitikz}` of `\begin{circuitikz}` bevat. Die route is een circuitikz bron-gebaseerde preview: het venster toont de bron, diagnostiek, kopieer/sla op controls en historische metadata, maar compileert geen LaTeX of roept TikZJax niet op tijdens de plugin‑uitvoering. + +Dezelfde bron-gebaseerde preview omvat nu ook opgeslagen Draw.io en Drawnix bestanden. `.drawio` bestanden worden geaccepteerd wanneer ze op Draw.io XML (`mxfile` of `mxGraphModel`) lijken, en `.drawnix` bestanden wanneer ze Drawnix JSON zijn met `type: "drawnix"` en een `elements` array. De plugin embedt nog steeds geen diagrams.net of de Drawnix whiteboard host; deze previews tonen bron, diagnostiek en artifact‑geschiedenis zonder een in‑plugin visuele editor. + +Voor herstel dat de topologie behoudt, moet de spec voor het herstel als referentie worden doorgegeven voordat een gerepareerd kandidaat wordt geaccepteerd: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +De herstelguard gebruikt `createCircuitTopologySignature` en `assertCircuitTopologyUnchanged` om `circuitKind`, `goldenReferenceId`, netwerken, component‑ids/typen/terminals en ongerichte verbindingseinden te vergelijken voordat er output wordt gegeven. Etiketten, titeltekst, layouthints, verbindingsschema en verbindingsetiketten worden opzettelijk genegeerd. Een kandidaat die een terminal toevoegt of opnieuw verbindt faalt met `Circuit topology drift detected` voordat het `.tex` bestand wordt geschreven. + +De CLI kan nu een bestaand LaTeX/TikZJax compile‑log analyseren zonder een compiler uit te voeren: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +Deze diagnostische route rapporteert ontbrekende pakketten zoals `circuitikz.sty`, onbekende TikZ/circuitikz sleutels, TikZ‑sintaxisfouten zoals ontbrekende komma’s, onbalansseerde haakjes of onafgesloten etiketten, ongedefinieerde controlevolgorden, algemene LaTeX‑fouten, noodstoppen en adviesmeldingen over een overvolle `\hbox`. Het blijft log‑gebaseerd: lokale LaTeX/TikZJax uitvoering en screenshot‑kwaliteitscontroles zijn nog aparte toekomstige taken. + +Voor onderhouds‑smoke checks kan dezelfde CLI optioneel een expliciet gedefinieerde renderer uitvoeren zonder shell‑commandoparsing: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +De compile‑runner gebruikt `shell: false`, vervangt `{tex}`, `{outputDir}` en `{jobName}` placeholders door argument‑array‑waarden, leest het gegenereerde `{jobName}.log` en geeft `compileExecution` plus `compileDiagnostics` terug in de CLI JSON output. `--compile-executable` is alleen het renderer‑binary of wrapper‑pad; renderer‑flags horen bij herhaalde `--compile-arg` waarden. Lege uitvoerbaar bestanden falen als `compile-executable-invalid`, ontbrekende binaries falen als `compile-executable-not-found`, en uitvoerbaar strings in shell‑commandovorm krijgen advies om argumenten op te splitsen zodat Windows, Linux en macOS dezelfde directe‑uitvoercontract naleven. Met `--expected-artifact` wordt ook `compileExecution.renderSmoke` gerapporteerd en faalt de CLI wanneer de renderer geen niet‑lege artifact maakt. De plugin embedt nog steeds geen LaTeX, maakt TikZJax geen plugin‑runtime‑afhankelijkheid of voert geen screenshot‑niveau visueel herstel uit. + +Als het verwachte artifact `.svg` is, gaat de smoke check een stap dieper: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +SVG smoke controleert de `<svg>` wortel, positieve dimensies of `viewBox`, ten minste één zichtbaar teken na uitsluiting van verborgen/transparante elementen, eventuele gevraagde teksttokens, duidelijke elementen buiten de `viewBox`, duidelijk overlappende gepositioneerde `<text>` / `<tspan>` etiketten en duidelijke tekstetiketten die overlappen met tekeningen via `render-svg-label-overlap`. Verwachte tekst wordt gezocht in zichtbare tekst en gedecodeerde toegankelijkheidsmetadata zoals `aria-label`, `<title>` en `<desc>`, zodat renderers die semantische etiketten buiten het zichtbare `<text>` behouden nog steeds teksttoken‑smoke kunnen voldoen zonder OCR. De geometrie‑check is nu transform‑bewust voor algemene groep- en element‑`transform` attributen, zodat vertaalde, geschaalde, geroteerde, vervormde of matrix‑getransformeerde SVG boxes na transformatiecompositie worden gecontroleerd. Het omvat exacte bogenbundels voor A/a‑boogextrema, exacte Bezier‑curvebundels voor C/S/Q/T‑curveextrema, stroke‑width‑bewuste SVG bundels en etiketten‑overlapchecks, `polyline` / `polygon` tekeningen‑geometrie, en lost ook path‑only glyph‑plaatsing op uit `<use href="#...">` referenties zodat etiketten die naar herbruikbare glyph‑paths worden omgezet nog steeds kunnen falen bij bounded‑canvas‑checks wanneer de geplaatste glyph‑geometrie de `viewBox` overschrijdt. Meerdere gepositioneerde `tspan` etiketten onder één `<text>` ouder worden vergeleken als aparte etiketten‑boxes, waardoor LaTeX‑stijl SVG output dat anders verschillende etiketten zou samenvoegen in één tekstnode wordt opgepakt. Gepositioneerde SVG `text` en `tspan` boxes respecteren `text-anchor` waarden `start`, `middle` en `end`, zodat gecentreerde en rechts uitgelijnde etiketten tekst/text‑en etiketten‑vs‑tekening overlap‑diagnostiek kunnen triggeren zonder browser‑grade tekstlayout te vereisen. Definitie‑only glyph‑paths binnen `<defs>` worden niet als zichtbare tekeningen gerekend, maar hun eigen definitie‑lokaal `transform` attributen worden toegepast voordat `<use>` plaatsing plaatsvindt, zodat geschaalde of gereflecteerde glyph‑definities niet ondergeteld worden. De etiketten‑vs‑tekening check gebruikt een kleine tolerantie voor tekenings‑boxes en de gedeclareerde `stroke-width`, zodat dunne draden, dikke draden en polygonale component‑contouren allemaal als potentiële etiketten‑leesbaarheidsfouten kunnen worden beschouwd wanneer hun zichtbare stroke een etiket bereikt. Path‑only glyph‑etiketten die uit `<use href="#...">` worden opgelost, worden ook vergeleken met tekenings‑boxes en falen met `render-svg-path-glyph-overlap` wanneer herbruikbare glyph‑geometrie draden of componenten overlapt. Als een renderer etiketten omzet in herbruikbare path‑glyphs in plaats van zoekbare `<text>` en geen toegankelijkheidsmetadata behoudt, noteert het smoke‑rapport `pathOnlyGlyphUseCount` en faalt het gevraagde teksttoken via `render-svg-text-path-only` in plaats van te doen alsof het etiket simpelweg afwezig is. Andere fouten worden gerapporteerd via `render-svg-invalid`, `render-svg-dimension-missing`, `render-svg-no-visible-elements`, `render-svg-text-missing`, `render-svg-out-of-bounds`, `render-svg-text-overlap`, `render-svg-label-overlap` of `render-svg-path-glyph-overlap`. Teksttoken‑ en overlapchecks moeten alleen als structurele smoke worden beschouwd voor renderers die etiketten als zoekbare SVG tekst of toegankelijkheidsmetadata behouden; path‑only SVG output heeft nog steeds de latere screenshot/OCR‑gate nodig om visuele etiketten‑leesbaarheid te bewijzen, en deze smoke‑pass claimt nog steeds geen volledige SVG pad‑dekking. + +Verborgen SVG groepen en elementen worden consequent weggelaten tijdens het tellen van zichtbare elementen en het verzamelen van geometrie. Attribute of inline‑style `display:none`, `visibility:hidden`, `visibility:collapse` en het algemene `opacity:0` kunnen een anders lege render‑artifact niet zodanig maken dat deze de visible‑output smoke doorstaat. + +Path‑only glyph‑definities kunnen directe paden zijn of gegroepeerde/symboolcontainers binnen `<defs>`. De smoke‑pass lost kinderpad‑geometrie op uit `<g id="...">` en `<symbol id="...">` voordat `<use>` plaatsing plaatsvindt, zodat gewikkelde glyph‑output nog steeds in `pathOnlyGlyphUseCount`, bounded‑canvas‑checks en `render-svg-path-glyph-overlap` terechtkomt. + +De path‑parser houdt ook rekening met subpath‑starts en reset de huidige punt op `Z/z`, zodat relatieve commando’s na een gesloten subpath vanaf het juiste SVG punt doorgaan in plaats van valse `render-svg-out-of-bounds` diagnostiek te genereren. + +Dezelfde geometriepass volgt de SVG nummerregel voor decimaalgetallen met voorgaand punt en expliciete plustekens, zodat compacte dvisvgm-coördinaten zoals `.5`, `-.5` of `+.5` tijdens grenscontroles nog steeds fractioneel blijven in plaats van als ongeldige geometrie buiten de grenzen te worden beschouwd of overgeslagen. + +Als de renderer `.png` uitzendt, wordt dezelfde verwachte artefactpad een eerste screenshot smoke: Notemd decodeert niet-interleaved 1/2/4/8-bit gecodeerde kleur PNG-bestanden, 1/2/4/8/16-bit grijszwaartekracht PNG-bestanden en 8/16-bit grijszwaartekracht-alpha/RGB/RGBA PNG-bestanden. Gecodeerde kleur- en sub-byte grijszwaartekrachtafbeeldingen ondersteunen gepakte monsters; gecodeerde kleurafbeeldingen ondersteunen ook PLTE en optionele tRNS-gegevens; grijszwaartekracht/RGB-afbeeldingen ondersteunen tRNS-transparante monsters. 16-bit directe monsters worden genormaliseerd naar dezelfde 8-bit RGBA-vergelijkingsruimte die wordt gebruikt door de smoke-checks. De smoke-check controleert positieve dimensies, registreert de voorgrondgrenzen als `foregroundBounds`, registreert de dichtheid van de voorgrond binnen die box als `foregroundDensity`, faalt met `render-png-blank` wanneer elk zichtbaar pixel overeenkomt met de bovenlinker achtergrondkleur, faalt met `render-png-content-clipped` wanneer de voorgrondinhoud de afbeeldingsgrenzen raakt, faalt met `render-png-foreground-too-small` wanneer een grote screenshot minder dan vier voorgrondpixels heeft, en faalt met `render-png-foreground-dense` wanneer voorgrondpixels ongewoon dicht zijn binnen een niet-triviale begrenzende box. Ongesteste PNG-formaten falen met `render-png-unsupported` en er is specifieke richtlijn voor Adam7-interleaved PNG’s of ongesteste gecodeerde kleurbitdiepten. Dit vangt lege screenshots, duidelijke canvas-cropping, onderrenderde voorgrondafdrukken, eerste pixelniveau-overbevolkingsschendingen en verkeerde renderer-PNG-exportinstellingen op zonder een platformspecifieke shellafhankelijkheid toe te voegen. Het is nog geen OCR-niveau labelherkenning, precieze tekstoverlappingsdetectie of topologiebehoudende afbeeldingsreparatie. + +Wanneer de diagnostiek een mislukte compilatie of render-smoke-run aantoont, kan de CLI ook een topologiebehoudend reparatieverslag opstellen: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +Het reparatieverslag gebruikt schema `notemd.circuitikz.repair-brief.v1` en bevat de bron `CircuitSpec`, topologische handtekening, compilatie/render-diagnostiek, toegestane wijzigingen, verboden topologische wijzigingen, volgende verificatiestappen en een gestructureerd `repairPrompt`. De promptrol is `topology-preserving-circuitikz-repair`; zijn `diagnosticFocus`-lijst wordt afgeleid uit de compilatie/render-diagnostiek, en zijn `acceptanceCriteria` vereisen kandidaatvalidatie plus nieuwe compilatie- en render-smoke-checks. Het is het overdrachtsformaat voor een latere reparatielus, niet de bewering dat Notemd al autonome visuele reparatie uitvoert. + +Na het genereren van een reparatiekandidaat kan dezelfde CLI deze nog controleren tegen het verslag voordat er output wordt geschreven: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief` controleert de kandidaattopologische handtekening uit het verslag en is exclusief met `--topology-reference`. Het passeren van deze controle bewijst alleen topologiebehoud; de kandidaat heeft nog steeds compilatie-diagnostiek en render-smoke-checks nodig. + +Het `--repair-brief`-resultaat bevat ook `repairAcceptance` bewijs met schema `notemd.circuitikz.repair-acceptance.v1`. Het rapporteert `topology-signature`, `compile-diagnostics` en `render-smoke` controles als `passed`, `failed` of `missing`; onthult `remainingChecks`; en houdt `readyForVisualAcceptance` op onwaar te zijn totdat de kandidaatrun alle vereiste bewijzen bevat. + +Gebruik `--repair-acceptance-output` samen met `--repair-brief` wanneer CI of releasebewijs een duurzaam JSON bestand nodig heeft: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +Voor release- of onderhoudsbewijs, voer elke ondersteunde gouden familie door de aggregate fixture runner uit: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +De runner gebruikt `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json` en `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json`, roept voor elk fixture dezelfde shellvrije exporter-pas aan en geeft een aggregate JSON rapport terug met per-fixture `compileExecution` en `compileDiagnostics`. Het blijft een onderhoudscommando, geen plugin-runtimeafhankelijkheid. + +Wanneer er op een onderhoudsmachine nog geen renderer is geconfigureerd, voer dezelfde fixture-commando uit zonder `--compile-executable` en bewaar de omgevingscontrole expliciet: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +Die weg schrijft nog steeds de deterministische fixture `.tex` artefacten, maar geeft `ok: false` terug met `rendererAvailability.status` ingesteld op `missing-configuration` en een `compile-executable-invalid` diagnostiek. Beschouw dit alleen als bewijs van rendererbeschikbaarheid; het is geen compilatie, render-smoke of visuele acceptatie. + +### Gouden Referentie Prompt Vorm + +Voor korte termijn gebruik, lever eerst een renderbare gouden referentie op voordat je om een circuitvariant vraagt. Een beperkte prompt moet de inleiding, coördinatenscala, ankerstijl en routingsconventies behouden: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +Voor een CMOS-inverter moet de prompt expliciete topologie plus layoutbeperkingen vragen, niet alleen "teken een CMOS-inverter": + +- houd `VDD` bovenaan, `GND` onderaan, invoer links, uitvoer rechts; +- Gebruik `pmos` boven `nmos`, met gedeelde poorten en gedeelde afvoeren; +- Houd de uitgangsnode bij de afvoerverbinding en markeer deze met `*-o`; +- Gebruik genoemde ankers (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) in plaats van visueel afgeleide coördinaten; +- Vermeid diagonale of kruisende draden tenzij dit elektrisch vereist is. + +### Huidige voortgang en volgende fasen + +| Area | Huidige status | Volgende stap | +|------|----------------|-----------| +| Algemene diagrammen | Spec-first pipeline geïmplementeerd voor Mermaid, JSON Canvas, Vega-Lite, HTML | Bouw de semantische verificatieverwerking verder uit | +| Editabele figuren | `editable-html-svg`, Draw.io XML en Drawnix JSON artefactgrenzen geïmplementeerd | Voeg rijkere primitieven alleen toe nadat tests de editabiliteit hebben bewezen | +| CLI ondersteuning | `npm run diagram:export-artifact` exporteert editabele HTML/SVG, Draw.io en Drawnix vanuit één `DiagramSpec` | Voeg rookinstallaties toe die specifiek zijn voor een doel wanneer nieuwe doelen worden geleverd | +| circuitikz | `CircuitSpec -> circuitikz` prototype exporteert gemeenschappelijke bronnen, CMOS omvormer, `cmos-buffer` / `cmos-buffer-v1`, `cmos-transmission-gate` / `cmos-transmission-gate-v1`, `cmos-nand2` / `cmos-nand2-v1`, en `cmos-nor2` / `cmos-nor2-v1` gouden templates, projecten `layoutHints.inputSide` en `layoutHints.outputSide` naar een deterministische invoer/uitvoerpoortindeling zonder de topologie te veranderen, wijst topologische afwijkingen af via `--topology-reference`, genereert topologiebehoudende reparatieverslagen via `--repair-brief-output` en schema `notemd.circuitikz.repair-brief.v1`, bevat gestructureerd `repairPrompt` overdrachtsinhoud met `diagnosticFocus`, `acceptanceCriteria`, en rol `topology-preserving-circuitikz-repair`, valideert reparatiekandidaten via `--repair-brief`, geeft `repairAcceptance` poortbewijs terug via schema `notemd.circuitikz.repair-acceptance.v1` met `readyForVisualAcceptance` en `remainingChecks`, bewaart dat bewijs via `--repair-acceptance-output`, parseert compilatielogs, kan expliciete lokale renderers uitvoeren plus `--expected-artifact`, SVG `--expected-svg-text`, controle van toegankelijkheidsmetadata via `aria-label`, `<title>`, en `<desc>`, uitsluiting van verborgen/transparante SVG elementen, `render-svg-text-path-only` / `pathOnlyGlyphUseCount` classificatie voor alleen-padlabels, controle van plaatsing van alleen-padglyphs voor `<use href="#...">`, diagnose van overlap van alleen-padglyphs via `render-svg-path-glyph-overlap`, afhandeling van huidig punt bij gesloten paden voor `Z/z`, exacte randen voor A/a boogextrema, exacte randen voor Bezier-krommeextrema voor C/S/Q/T, SVG grenzen rekening houdend met stiftbreedte en controle op labeloverlap, `polyline` / `polygon` controle van tekeningen geometrie, gepositioneerde `tspan` labelgeometrie, tekstgeometrie die `text-anchor` rekening houdt, geometrie die SVG rekening houdt met beperkte canvas/textoverlap en label versus tekening rooktests, inclusief PNG niet-leeg / afgesneden / dichte voorgrond screenshot rooktests, inclusief indexcolormap alpha, grijs/wit/RGB tRNS transparante monsters, en format-specifieke `render-png-unsupported` richtlijnen voor Adam7 gestapelde PNG’s en fouten bij gecodeerde bitdiepte, via `foregroundBounds`, `foregroundDensity`, `render-png-content-clipped`, en `render-png-foreground-dense` zonder shell parsing, bevat samengestelde onderhoudsrookinstallaties via `npm run diagram:smoke-circuitikz`, registreert ontbrekende rendererconfiguratie via `rendererAvailability.status: "missing-configuration"` en `compile-executable-invalid`, en heeft algemene voorbeelddiagnosen, tellingen van diagnostische samenvattingen, historieën die rekening houden met diagnoses, en fallback alleen op bronmateriaal via `RenderArtifact.diagnostics` en het voorbeeldvenster | Voeg OCR-niveau labelherkenning toe voor alleen-pad visuele tekst, nauwkeurige pixelniveau overlapcontroles, bredere SVG paddekking waar nodig, automatische installeren/ontdekken van renderer alleen als dit optioneel kan blijven, en geautomatiseerde topologiebehoudende reparatieuitvoering | +| TikZJax integratie | Kandidaat renderhost voor Obsidian-kant weergave | Houd het optioneel; maak TikZJax geen harde plugin-runtimeafhankelijkheid | + +## Configuratie + +| Instelling | Standaard | Effect | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | Schakel tussen spec-first en legacy Mermaid over | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = Mermaid alleen; `'best-fit'` = native doelen + fallbacks | +| `preferredDiagramIntent` | `undefined` (auto) | Overtikkel automatische intentiedetectie | +| `summarizeToMermaidLanguage` | `'en'` | Doeltaal voor diagramlabels | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | Per taak LLM voor diagramgeneratie | +| `autoMermaidFixAfterGenerate` | (uit constanten) | Auto uitvoeren van legacy fixer op Mermaid output | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | Verrijk de bron met lokale vault kennis | + +### Lokale kennisverrijking + +Wanneer geactiveerd haalt Notemd relevante contextfragmenten op uit de lokale kennisbank van uw vault (gebaseerd op MiniSearch) en voegt deze toe aan het bronmarkdown. De augmentatieprompt vermeldt: "Alleen ter ondersteuning; houd de primaire structuur trouw aan de bronnotitie." + +### Compatibiliteitsmodi + +- **`legacy-mermaid`**: Alle intenties worden doorgestuurd naar Mermaid. Niet-Mermaid intenties (canvasMap, dataChart) worden gedwongen naar `flowchart` of `mindmap`. Er is geen fallbackketen. +- **`best-fit`**: Elke intentie wordt doorgestuurd naar zijn eigen doel. Als dit mislukt, wordt de fallbackketen gevolgd (bijv. Vega-Lite → Mermaid → HTML). + +## Voorbeeldweergave en export + +| Actie | Methode | +|--------|--------| +| SVG export | `mermaid.render()` / `vega.View.toSVG()` / SVG builder voor Canvas | +| PNG export | SVG → Afbeelding → Canvas (device pixel ratio 1x-3x) → PNG ArrayBuffer | +| Opslaan van bron | De ruwe artefactinhoud wordt opgeslagen met een extensie die specifiek is voor het doel. | +| Alleen voorbeeldweergave van de bron | Niet-inline artefacten met broninhoud worden weergegeven als code samen met diagnostische informatie, zonder iframe-rendering. | +| Semantische audit | Mermaid, JSON Canvas, Vega-Lite en bewerkbare HTML/SVG gecontroleerd door `scripts/diagram-semantic-verification.js` | + +**Caching**: RenderCache gebruikt een deterministische JSON sleutel van `{spec, target, theme}`. In-flight deduplicatie voorkomt dubbele renders. + +## Tips + +- **Begin met `best-fit` modus** — dit levert de beste visuele weergave op voor elk intentietype +- **Gebruik krachtige modellen voor complexe diagrammen** — stroomdiagrammen en ER-diagrammen profiteren van GPT-4o of Claude +- **Activeer lokale kennis** voor domeinspecifieke diagrammen — relevante vault-context verbetert de nauwkeurigheid +- **Stel `autoMermaidFixAfterGenerate` in** — Mermaid syntaxisfouten komen vaak voor zonder dit +- **De legacy fixer is uitgebreid** — als de Mermaid preview faalt, lost het handmatig uitvoeren van de fixer-commando het vaak op + +--- + +## Volgende stappen + +- 🔗 [Wiki-Links](./wiki-links) — Hoe concepten inline worden gelinkt +- 📝 [Concept Notes](./concept-notes) — Haal concepten op voor diagrambronmateriaal +- 🔍 [Research](./research) — Verrijk diagrammen met webgerelateerde gegevens diff --git a/website/i18n/nl/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/nl/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..e5f9bd13 --- /dev/null +++ b/website/i18n/nl/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "Onderzoek & Webzoeken" +description: "Integreer webzoeken in je notities" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Onderzoek & Webzoeken + +<TLDR> +**Notemd doorzoekt het web en voegt LLM-samengevatte resultaten rechtstreeks toe aan je notities.** Tavily API is de primaire zoekbackend; DuckDuckGo dient als een zero-config fallback. De resultaten worden samengevat met bronverwijzingen en toegevoegd onder een `## Research` kop. Het ondersteunt onderzoek in één notitie, batchonderzoek in mappen en modelkeuze per taak voor de samenvattingsstap. + +Dit maakt deel uit van de [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Overzicht + +Onderzoek is een van de krachtigste integraties van Notemd: het sluit de kringloop tussen lezen, zoeken en schrijven. In plaats van over te stappen naar een browser om een onbekend term te zoeken, markeer je hem en laat Notemd zoeken, samenvatten en de bevindingen toevoegen – alles binnen je vault. + +Het proces is volledig configureerbaar. Je kiest de zoekprovider, het LLM dat de samenvatting schrijft, en of de resultaten worden toegevoegd aan de actieve notitie of in aparte bestanden worden opgeslagen. In batchmodus kun je met één klik onderzoek doen naar alle notities in een map. + +## Hoe het werkt + +### Pipeline Zoeken‑dan‑Samenvatten + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **Vraagextractie** -- Notemd haalt zoektermen op uit je selectie of de notitietitel. +2. **Webzoeken** -- Eerst wordt Tavily geprobeerd. Als er geen API sleutel is gedefinieerd, wordt DuckDuckGo automatisch gebruikt (geen sleutel vereist). +3. **LLM samenvatting** -- De ruwe zoekresultaten worden naar de gedefinieerde LLM gestuurd, die een beknopte samenvatting met inline bronverwijzingen genereert. +4. **Toevoegen** -- De geformateerde samenvatting wordt toegevoegd onder een `## Research` kop in de actieve notitie. + +### Tavily versus DuckDuckGo + +| Aspect | Tavily | DuckDuckGo | +|--------|--------|------------| +| API sleutel | Verplicht (gratis tier beschikbaar) | Niet verplicht | +| Kwaliteit van het resultaat | Hoog (speciaal ontworpen voor AI) | Voldoende voor algemene vragen | +| Snelheidsbeperkingen | Ruime gratis versie | Onderhevig aan throttling | +| Configuratie | `tavilyApiKey` in de instellingen | Geen configuratie -- automatische fallback | + +### Batch Folder Research + +Klik met rechtermuisknop op een map en selecteer **"Notemd: Research folder"**. Elke `.md` bestand in de map wordt sequentieel verwerkt (of parallel tot de gedefinieerde paralleliteit). Elke notitie krijgt zijn eigen onderzoeks samenvatting. + +## Configuratie + +| Instelling | Standaard | Effect | +|---------|---------|--------| +| `tavilyApiKey` | `''` | Tavily API sleutel. Wanneer leeg, wordt uitsluitend DuckDuckGo gebruikt. | +| `researchProvider` / `researchModel` | DeepSeek | Per-opdracht LLM voor het samenvatten van zoekresultaten | +| `maxResearchContentTokens` | `4000` | Tokenbudget voor inhoud die naar de LLM wordt gestuurd. Overbodige delen worden afgesneden. | +| `researchAppendToNote` | `true` | Voeg de samenvatting toe aan de oorspronkelijke notitie. Als false, wordt er een apart bestand gemaakt. | +| `researchLanguage` | `'en'` | Uitvoerstaal voor het samengevatte onderzoek | + +### Modelaanbeveling per opdracht + +Onderzoek profiteert van een model dat omgaat met meertalig inhoud en goed gestructureerde teksten genereert. Overweeg het volgende: + +- **DeepSeek** -- standaard, betaalbaar, goede kwaliteit +- **GPT-4o** -- hogere kwaliteit samenvattingen, hogere kosten +- **Gemini Flash** -- snel en goedkoop, geschikt voor eenvoudige vragen + +## Voorbeeld + +U leest een artikel over *transformer attention mechanisms* en stuit op een onbekend begrip: *relative positional encoding*. In plaats van Obsidian te laten staan. + +1. Highlighteer **"relative positional encoding"** +2. Rechtermuisknop --> **"Notemd: Onderzoek en samenvatten"** +3. Notemd zoekt op het internet, samenvat de beste resultaten en voegt toe: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +De samenvatting maakt nu deel uit van uw vault, is zoekbaar, linkbaar en offline toegankelijk. + +## Tips + +- **Stel een Tavily sleutel in voor de beste resultaten** -- zelfs de gratis versie levert betere relevantie op dan puur DuckDuckGo. +- **Gebruik een krachtig samenvattingemodel** -- goedkope modellen kunnen gedetailleerde technische inhoud vereenvoudigen. +- **Voer batchonderzoek uit** na een eerste doorlezing om gaten in meerdere notities tegelijk op te vullen. +- **Controleer de toegevoegde samenvattingen** -- LLMs kunnen valse broninformatie genereren. Controleer belangrijke beweringen. + +--- + +## Volgende stappen + +- [Concept Notes](./concept-notes) -- Haal en bewaar belangrijke termen uit onderzoeksresultaten +- [Wiki-Links](./wiki-links) -- Maak verbindingen tussen onderzoeksonderbouwde concepten in uw vault +- [Translation](./translation) -- Vertaal onderzoeks samenvattingen naar een andere taal +- [LLM Providers](/docs/providers/overview) -- Configureer het model dat wordt gebruikt voor samenvatting diff --git a/website/i18n/nl/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/nl/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..7b9f29e7 --- /dev/null +++ b/website/i18n/nl/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "Vertaling" +description: "Vertaal notities en selecties" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# Vertaling + +<TLDR> +**Notemd vertaalt tekst tussen 21+ talen met behulp van LLM-gebaseerde vertaling.** Het ondersteunt vertaling van één selectie, volledige notities en batchvertaling van mappen. Elke vertaalopdracht kan een eigen provider en model gebruiken via instellingen per opdracht. De uitvoerstaal kan apart worden ingesteld van de UI taal. De resultaten worden toegevoegd of opgeslagen in een nieuwe bestand, afhankelijk van uw voorkeur. + +Dit maakt deel uit van de [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Overzicht + +Vertaling in Notemd is geen woordenboekzoekopdracht – het is LLM-gebaseerde, contextbewuste vertaling. Het model ziet het volledige paragraaf of de notitie, waardoor toon, domeinterminologie en zinsstructuur behouden blijven. Dit levert kwaliteitsvolle resultaten op vergeleken met diensten die alleen zins voor zin vertalen, vooral voor technische, academische en creatieve teksten. + +De functie ondersteunt drie scopes: selectie, actieve notitie en hele map. In combinatie met modelkeuze per opdracht kunt u een snelle model (Gemini Flash) gebruiken voor informele vertalingen en een krachtig model (Claude Sonnet) voor inhoud waar nuances belangrijk zijn – zonder uw algemene provider te wijzigen. + +## Hoe het werkt + +### De Translate Commando + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **Bronherkenning** -- LLM leidt de bronstaal af uit de inhoud. U hoeft deze niet handmatig op te geven. +2. **Promptopbouw** -- Notemd maakt een prompt die de doeltaal, optionele domeinindicaties en de inhoud die vertaald moet worden bevat. +3. **LLM vertaling** -- De gedefinieerde `translateProvider` / `translateModel` verwerkt de opdracht. Het model behoudt markdown-formaatting, wiki-links en codeblokken. +4. **Uitvoer** -- De vertaalde tekst wordt ofwel onder de oorspronkelijke tekst geplaatst of opgeslagen in een nieuw bestand in de kluis. + +### Taalparen + +Notemd ondersteunt elk taalpaar dat door het onderliggende LLM wordt ondersteund. Veel voorkomende paren zijn: + +| Bronstaal | Doelwit | Typische kwaliteit | +|--------|--------|----------------| +| Engels | Chinees (vereenvoudigd) | Uitstekend | +| Chinees | Engels | Uitstekend | +| Engels | Japans | Zeer goed | +| Engels | Duits / Frans / Spaans | Zeer goed | +| Elke ondersteunde taal | Elke ondersteunde taal | Modelafhankelijk | + +De `translateLanguage` instelling bepaalt de **uitvoertaal**. De brontaal wordt automatisch gedetecteerd. + +### Modelselectie per taak + +De vertaalkwaliteit verschilt aanzienlijk per model. Notemd maakt het mogelijk om een speciaal model alleen voor vertaling toe te wijzen: + +| Model | Snelheid | Kwaliteit | Kosten | Ideaal voor | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | Snel | Goed | Laag | Casueel, hoge volumes | +| `gpt-4o-mini` | Snel | Goed | Laag | Snelle zoekopdrachten | +| `deepseek-chat` | Middel | Goed | Zeer laag | Budgetvriendelijk meertalig | +| `claude-3-5-sonnet` | Middel | Uitstekend | Middel | Technisch / academisch | +| `gpt-4o` | Middelmatig | Uitstekend | Middelmatig | Proza dat gevoelig is voor nuances | + +### Vertaling van map in batches + +Klik met de rechtermuisknop op een map en selecteer **"Notemd: Map vertalen"** om alle notities in die map te vertalen. Elke bestand wordt afzonderlijk verwerkt. De instelling voor gelijktijdigheid bepaalt hoeveel bestanden tegelijk worden vertaald. + +## Configuratie + +| Instelling | Standaard | Effect | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | Gespecialiseerde provider voor vertaalwerkzaamheden | +| `translateLanguage` | `'en'` | Doeltaal voor de uitvoer | +| `translationAppendToNote` | `true` | Voeg de vertaalde tekst onder de oorspronkelijke toe. Als dit op false staat, wordt er een nieuw bestand gemaakt. | +| `batchConcurrency` | `3` | Aantal bestanden dat gelijktijdig wordt verwerkt tijdens batchvertaling | + +## Voorbeeld + +U leest een Chinese onderzoeksnotitie en wilt een Engelse versie ervan: + +1. Open de notitie +2. Klik met de rechtermuisknop --> **"Notemd: Huidig bestand vertalen"** +3. Notemd herkent Chinees, vertaalt het naar de door u geselecteerde doeltaal (Engels) en voegt toe: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +De oorspronkelijke Chinese tekst blijft ongewijzigd boven de vertaling. De `## Translation`-kop houdt beide versies in hetzelfde bestand zodat ze gemakkelijk kunnen worden geraadpleegd. + +## Tips + +- **Gebruik Gemini Flash voor grote hoeveelheden** -- dit is de snelste en goedkoopste optie voor batchvertaling van grote mappen. +- **Wiki-links behouden** -- De opdracht van Notemd instrueert de LLM om `[[wiki-links]]` onveranderd te laten in de vertaling. Controleer na de vertaling, want sommige modellen ontpakken ze af en toe. +- **Uitvoerstaal expliciet instellen** -- Automatische detectie werkt voor de bron, maar configureer altijd `translateLanguage` om onduidelijkheid over het doel te voorkomen. +- **Conceptnotities in batch vertalen** -- Als je conceptmap in één taal ligt en je die in een andere nodig hebt, regelt de vertaling op mapniveau dit in één stap. + +--- + +## Volgende stappen + +- [Onderzoek](./research) -- Zoek en vat samen in elke taal, en vertaal vervolgens de resultaten +- [Workflows](./workflows) -- Combineer vertaling met wiki-linking of conceptextractie +- [Batchverwerking](/docs/advanced/batch-processing) -- Gelijktijdige verwerking en overschrijvingsgedrag voor mapoperaties +- [LLM Providers](/docs/providers/overview) -- Kies het beste model voor je taalpaar diff --git a/website/i18n/nl/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/nl/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..10a21d88 --- /dev/null +++ b/website/i18n/nl/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "Wiki-links" +description: "Automatische generatie van wiki-links voor belangrijke concepten" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# Wiki-links + +<TLDR> +**Notemd voegt automatisch `[[wiki-links]]` toe aan belangrijke concepten in uw notities.** De LLM leest uw inhoud, identificeert belangrijke termen in de context en plaatst Obsidian-stijl wiki-links bij elke voorkomst. Optioneel worden conceptnotities met backlinks gemaakt. Het ondersteunt het onderdrukken van synoniemen, linkintegriteit bij hernoemen/verwijderen en pure extractiemodus (geen bestandswijzigingen). In tegenstelling tot Auto Link, dat alleen bestaande notietitels matcht, gebruikt Notemd AI om nieuwe concepten te identificeren en overeenkomstige notities te maken. Dit maakt deel uit van de [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Overzicht + +Wiki-linking is het kernfunctie van Notemd. Het transformeert gewone tekst in een verbonden kennisgraaf door: + +1. **Uw notitie te analyseren** met een LLM +2. **Belangrijke concepten te identificeren** (termen, personen, methoden, theorieën) +3. **`[[wiki-links]]` toe te voegen** bij elke voorkomst +4. **Conceptnotities te maken** (optioneel) met backlinks + +## Hoe het werkt + +### Proces + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### Voorbeeld + +**Voorheen:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**Na:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## Gebruik + +### Basis: Links toevoegen aan huidige notitie + +1. Een notitie openen +2. Rechtermuisknop in editor → **"Process file (add links)"** +3. Wacht enkele seconden +4. Concepten zijn nu met elkaar verbonden! + +### Batch: Meerdere notities verwerken + +1. Rechtsklik op een map in File Explorer +2. Kies **"Notemd: Map verwerken (links toevoegen)"** +3. Configureren: + - Paralleliteit (hoeveel bestanden tegelijk) + - Bestaande links overschrijven (ja/nee) +4. Klik op **Verwerken** + +### Selectief: Specifieke tekst linken + +1. Tekst markeren die verwerkt moet worden +2. Rechtsklik → **"Verwerking van geselecteerde tekst (links toevoegen)"** +3. Alleen het gemarkeerde deel wordt geanalyseerd + +## Notemd versus Auto Link + +Obsidian biedt twee manieren voor automatische wiki-linking: + +| | **Auto Link** | **Notemd** | +|--|---------------|-------------| +| Bron van de link | Bestaande notitietitels in de kluis | Concepten die door LLM zijn geïdentificeerd in de inhoud | +| Nieuwe concepten kunnen worden gelinkt | Nee — de titel moet al bestaan | Ja — AI identificeert concepten en maakt notities | +| Omgaan met synoniemen | Nee | Ja — onderdrukking van synoniemen | +| Creatie van conceptnotities | Nee | Ja — met backlinks en duplicaatverwijdering | +| Batchverwerking | Nee (één bestand) | Ja (op mapniveau) | +| Modelrouting per taak | Nee | Ja | + +**Auto Link** doet een titelvergelijking: als er een notitie genaamd "Machine Learning" bestaat, wordt de tekst in `[[Machine Learning]]` gewikkeld. Als de notitie niet bestaat, gebeurt er niets. + +**Notemd** wordt door AI aangestuurd: de LLM leest je inhoud, begrijpt de context, identificeert concepten die *gelinkt* moeten worden — zelfs als er nog geen notitie bestaat — en maakt zowel de link als de conceptnotitie. + +## Kenmerken + +### Onderdrukking van synoniemen + +**Probleem:** "transformer", "transformers", "Transformer architecture" → 3 aparte concepten + +**Oplossing:** Notemd detecteert bijna-duplicaten en gebruikt de canonieke vorm. + +**Configuratie:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### Linkintegriteit + +**Wanneer je een conceptnotitie hernoemt:** +- Alle wiki-links worden automatisch bijgewerkt (Obsidian kernfunctie) +- Backlinks blijven intact + +**Wanneer je een conceptnotitie verwijdert:** +- Links blijven bestaan maar worden weergegeven als "onverwezen meldingen" +- Je kunt ze opnieuw maken vanuit elke voorkomst + +### Pure Extractiemodus + +**Extracteer concepten zonder de oorspronkelijke te wijzigen:** + +1. Rechtermuisknop → **"Concepten extraheren (geen linken)"** +2. Conceptnotities worden gemaakt +3. Oorspronkelijke bestand blijft onveranderd + +Gebruiksgeval: Verwerking van alleen-lezen inhoud of definitieve versies. + +## Conceptnotitiegeneratie + +### Automatische creatie + +**Wanneer geactiveerd (standaard), Notemd maakt:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### Configuratie + +**Uitvoermap:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Hiërarchische structuur:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**Template:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## Geavanceerde opties + +### Contextvenster + +**Hoeveel omringend tekst te sturen:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +Groter = betere nauwkeurigheid, hogere kosten. + +### Minimum voorkomsten + +**Alleen concepten linken die meerdere keren voorkomen:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +Stel in op 2 of 3 om te focussen op herhalende thema’s. + +### Uitsluiten van patronen + +**Bepaalde woorden overslaan:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +Voorkomt het te veel linken van algemene termen. + +### Aanpasbare prompts + +**Standaard LLM instructies overschrijven:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +Pas aan voor domeinspecifieke behoeften (bijv. "Focus op medische terminologie"). + +## Tips en beste praktijken + +### ✅ DO + +- **Verwerk notities met meer dan 100 woorden** — Korte notities leveren weinig concepten op +- **Gebruik krachtige modellen** voor een betere conceptidentificatie (GPT-4o, Claude) +- **Controleer voordat je accepteert** — Zorg dat de voorgestelde links logisch zijn +- **Bouw iteratief** — Verwerk 5-10 notities, bekijk de grafiek en pas de instellingen aan + +### ❌ NIET DOEN + +- **Te veel links** — Niet elke zelfstandig naamwoord heeft een link nodig +- **Verwerk conceptversies herhaaldelijk** — Concepten kunnen veranderen, wacht tot ze stabiel zijn +- **Negeer synoniemen** — Schakel onderdrukking in om "ML" en "Machine Learning" te vermijden + +## Prestaties + +### Snelheid + +| Grootte van notitie | GPT-4o-mini | Claude Sonnet | Ollama (lokaal) | +|-----------|-------------|---------------|----------------| +| 500 woorden | 2-3 seconden | 3-5 seconden | 5-10 seconden | +| 2000 woorden | 5-8 seconden | 10-15 seconden | 20-40 sec | +| 5000+ woorden | In delen (meerdere oproepen) | In delen | In delen | + +### Kosteninschatting + +**Voorbeeld: 1000-talige notitie met GPT-4o-mini** +- Invoer: ~1500 tokens +- Uitvoer: ~200 tokens +- Kosten: ~ + +**Batchverwerking van 100 notities:** ~ + +## Probleemoplossing + +### Geen links toegevoegd + +**Controleer:** +1. LLM oproep is geslaagd (Instellingen → Diagnostiek) +2. Het notitieblok bevat voldoende inhoud (>50 woorden). +3. Concepten zijn technisch/specifiek (niet alleen voornaamwoorden) + +**Probeer:** +- Gebruik een krachtiger model +- Contextvenster vergroten +- Controleer de geldigheid van de API-sleutel + +### Te veel links + +**Oplossingen:** +1. Verhoog het minimale aantal voorkomsten (2 of 3) +2. Voeg veelvoorkomende woorden toe aan de uitsluitingslijst +3. Gebruik een minder agressieve model + +### Verkeerde concepten gekoppeld + +**Oplossingen:** +1. Gebruik een aangepaste prompt voor domeinspecifieke inhoud +2. Activeer het onderdrukken van synoniemen +3. Controleer handmatig en maak de link los + +### Links breken na hernaamgeving + +**Dit is normaal Obsidian gedrag.** + +Om alle links bij te werken: +1. Hernameer de conceptnota +2. Obsidian actualiseert automatisch `[[old]]` → `[[new]]` + +--- + +## Volgende stappen + +- 📖 [Conceptnotities](./concept-notes) — Diepgaande informatie over het genereren van conceptnotities +- 🔍 [Onderzoek integratie](./research) — Combineer linken met webonderzoek +- 🎨 [Diagrammen](./diagrams) — Visualiseer je kennisgraaf diff --git a/website/i18n/nl/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/nl/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..9b0f6d25 --- /dev/null +++ b/website/i18n/nl/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "Werkstromen" +description: "Meerdere taken ketenen met één-klikknoppen" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Werkstromen + +<TLDR> +**Notemd Werkstromen keten meerdere taken samen tot één enkele één-klikactie.** Definieer sequenties zoals `add-links > extract-concepts > research > diagram` met een eenvoudige DSL. Werkstromen verschijnen als knoppen in de zijbalk die de volledige keten uitvoeren op de huidige notitie of map. Er zitten vooraf gedefinieerde werkstromen bij; maak er zelf ook in de instellingen. Elke stap gebruikt zijn eigen configuratie voor het per-taakmodel. + +Dit maakt deel uit van de [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Overzicht + +Een workflow vermindert de moeite om taken één voor één uit te voeren. In plaats van vier keer met de rechtermuisknop te klikken om links toe te voegen, concepten te extraheren, onbekende termen op te zoeken en een diagram te genereren, drukt u op één knop in de zijbalk en wordt de hele keten uitgevoerd. Notemd zorgt voor het sequencieren, het doorgeven van fouten en het rapporteren van voortgang. + +Werkstromen worden gedefinieerd in een lichte DSL (domain-specific language). Ze bevinden zich in de instellingen, verschijnen als klikbare knoppen in de Obsidian-zijbalk en kunnen worden toegepast op zowel de huidige notitie als een hele map. + +## Hoe het werkt + +### Pipeline voor uitvoering van werkstromen + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **Parse** -- De DSL-string wordt op `>` (of `>`) opgesplitst in een geordende lijst van taakidentificatoren. +2. **Resolve** -- Elke identificator wordt gekoppeld aan een interne opdracht (add-links, extract-concepts, research, translate, diagram, enzovoort.). +3. **Execute** -- De stappen worden sequentieel uitgevoerd. Elke stap maakt gebruik van het gedefinieerde per-taakprovider en model. +4. **Error handling** -- Als een stap faalt, stopt de workflow of gaat hij door naar de volgende stap, afhankelijk van uw foutbeheerbeleid. +5. **Done** -- Een toastnotificatie rapporteert succes of geeft alle gefaalde stappen weer. + +### DSL-formaat + +Werkstromen worden gedefinieerd als een `>`-gescheiden reeks taakidentificatoren: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**Beschikbare taakidentificatoren:** + +| Identificator | Actie | +|------------|--------| +| `process-current-add-links` | Wiki-links toevoegen aan het actieve notitieblok | +| `extract-concepts-current` | Concepten extraheren uit het actieve notitieblok | +| `research-and-summarize` | Onderzoek doen naar de geselecteerde tekst of notitietitel | +| `process-current-translate` | Het actieve notitieblok vertalen | +| `summarize-to-mermaid` | Een diagram genereren op basis van het actieve notitieblok | +| `generate-from-title` | Inhoud genereren op basis van de notitietitel | +| `extract-original-text` | Oorspronkelijke tekst extraheren (voor OCR / gescande inhoud) | + +**Varianten op mapniveau** vervangen `current` door `folder` in de identificatienaam. + +### Vooraf gedefinieerde versus aangepaste workflows + +Notemd bevat kant-en-klare workflows voor veelvoorkomende patronen: + +| Workflow | Chain | Gebruiksgeval | +|----------|-------|----------| +| **Eén-klik extraheren** | add-links > extract-concepts > research | Een onderzoeksartikel in één stap verwerken | +| **Volledige pipeline** | add-links > extract-concepten > onderzoek > diagram | Volledige kennisextractie met visualisatie | +| **Vertaal + Link** | translate > add-links | Vertaal en link concepten in de doeltaal | + +**Aanpasbare workflows** worden gemaakt in de instellingen: + +1. Open **Instellingen** --> **Notemd** --> **Workflows** +2. Klik op **"Add Workflow"** +3. Voer de DSL-keten in (bijv. `process-current-add-links>extract-concepts-current`) +4. Geef het een weergave-naam (bijv. "Quick Link + Extract") +5. De nieuwe knop verschijnt onmiddellijk in de sidebar + +## Configuratie + +| Instelling | Standaard | Effect | +|---------|---------|--------| +| `workflows` | Vooraf gedefinieerde set | Array van workflow-definities (naam + DSL) | +| `workflowContinueOnError` | `true` | Ga door naar de volgende stap als de huidige stap faalt | +| `workflowShowProgress` | `true` | Toon een progressietoast na elke voltooide stap | + +### Per-opdrachtmodellen in workflows + +Elk stap in een workflow maakt gebruik van zijn **eigen** configuratie voor het per-taakmodel. U hoeft de modellen niet zelf in de DSL op te geven. De volgorde van resolutie is: + +1. Het provider/model per taak als `useMultiModelSettings` beschikbaar is +2. Globaal `activeProvider` anders + +Dit betekent dat `add-links` kan draaien op DeepSeek terwijl `research` draait op GPT-4o -- alles binnen dezelfde workflow klik. + +## Voorbeeld + +U heeft zojuist een PDF van een machine learning artikel geïmporteerd in uw vault en wilt volledige kennisextractie: + +1. Open het geïmporteerde notitieblok +2. Klik op de **"Full Pipeline"**-knop in de zijbalk +3. Notemd voert uit: + - **Stap 1**: Voeg wiki-links toe -- `[[attention mechanism]]`, `[[transformer]]`, enzovoort. + - **Stap 2**: Extract concepten -- maakt conceptnotities in uw conceptmap + - **Stap 3**: Onderzoek -- vat webbronnen samen voor sleuteltermen + - **Stap 4**: Diagram -- genereert een Mermaid-mindmap van de structuur van het artikel +4. Na ongeveer 30 seconden heeft uw notitie links, bestaan er conceptnotities, is het onderzoek toegevoegd en is er een diagrambestand opgeslagen + +Alles in één klik. + +## Tips + +- **Begin met vooraf gedefinieerde workflows** -- deze dekken de meest voorkomende patronen. Pas ze alleen aan wanneer u een andere volgorde nodig heeft. +- **Activeer `workflowContinueOnError`** -- een mislukte diagramstap moet de hele pipeline niet stoppen. +- **Gebruik mapwerkflows** voor bulkverwerking -- klik met de rechtermuisknop op een map, kies een workflow en elke notitie wordt verwerkt. +- **Geef workflows duidelijke namen** -- de ruimte in de zijbalk is beperkt. Gebruik korte, actiegerichte namen zoals "Snelle Extractie" of "Vertalen + Linken". + +--- + +## Volgende stappen + +- [Onderzoek](./research) -- Begrijp wat de onderzoeksstap doet voordat je deze toevoegt aan workflows +- [Wiki-Links](./wiki-links) -- De kernfunctie voor het maken van links die in de meeste workflows wordt gebruikt +- [Concept Notities](./concept-notes) -- Conceptextractie als workflowstap +- [Batchverwerking](/docs/advanced/batch-processing) -- Gelijktijdige verwerking en rapportage over voortgang voor mapwerkflows diff --git a/website/i18n/nl/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/nl/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..e044def1 --- /dev/null +++ b/website/i18n/nl/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "Configuratie" +description: "Installeer de Notemd instellingen en voorkeuren" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Configuratie + +<TLDR> +**De Notemd configuratie omvat 6 belangrijke gebieden:** (1) LLM providers en API sleutels, (2) Selectie van model per taak, (3) Outputpaden en templates, (4) UI taal en uitvoerstaal, (5) Zoekservices (Tavily/DuckDuckGo), (6) Aanpasbare workflows. Alle instellingen bevinden zich in Obsidian Settings → Notemd. Veranderingen zijn onmiddellijk van toepassing. +</TLDR> + +## Overzicht van instellingen + +Toegang: **Obsidian Settings (⚙️) → Notemd** + +### Hoofdsecties + +1. **Providerconfiguratie** — API sleutels, basis URLs, modellen +2. **Taakinstellingen** — Modelselectie per taak +3. **Outputconfiguratie** — Waar genereerde bestanden worden opgeslagen +4. **Taalinstellingen** — UI en uitvoer talen +5. **Zoekintegratie** — Tavily/DuckDuckGo instellingen +6. **Workflows** — Aanpasbare knoppenketens +7. **Geavanceerd** — Diagnostiek, batchverwerking, chunking + +--- + +## 1. Providerconfiguratie + +### Een provider toevoegen + +1. **Kies een provider** uit het dropdown-menu (30+ beschikbaar) +2. **Voer de API sleutel in** +3. **Optioneel**: Stel een aangepaste basis URL in (voor proxies/gateways) +4. **Klik op "Get Model List"** om de verbinding te controleren +5. **Selecteer het standaardmodel** + +### Algemene providers + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Lokal) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### Meerdere providers + +U kunt meerdere providers configureren en tussen hen wisselen per taak: +- **Hoofdprovider**: Wordt gebruikt als fallback +- **Taakspecifieke providers**: Worden overgenomen voor specifieke taken + +--- + +## 2. Taakspecifieke modellen + +Stel verschillende modellen in voor verschillende taken om kosten/kwaliteit te optimaliseren: + +### Taaktypen + +| Taak | Standaardmodel | Doel | +|------|--------------|---------| +| **Linken** | Hoofdprovider | Identificeer concepten voor wiki-links | +| **Conceptgeneratie** | Hoofdprovider | Extracteer en beschrijf concepten | +| **Onderzoek** | Hoofdprovider | Vat webzoekresultaten samen | +| **Vertaling** | Hoofdprovider | Vertaal tekst | +| **Diagramgeneratie** | Hoofdprovider | Genereer Mermaid/Canvas-diagrammen | + +### Voorbeeld: Kostenoptimaliseerde instelling + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### Hoe te configureren + +1. **Instellingen → Notemd → Taakinstellingen** +2. Voor elke taak kies je: + - ✅ **Gebruik hoofdprovider** (standaard) + - 🔄 **Gebruik aangepaste provider** → selecteer provider + model + +--- + +## 3. Outputconfiguratie + +### Uitvoer van conceptnotities + +**Waar nieuwe conceptnotities worden opgeslagen:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Template:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### Opties voor mapstructuur + +**Optie 1: Flat (alle concepten in één map)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**Optie 2: Hiërarchisch (per bronmap)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +Configureren: **Instellingen → Output → Gebruik hiërarchische mappen** + +### Diagramoutput + +**Waar diagrammen worden opgeslagen:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**Formaat:** +- `.mmd` (Mermaid bron) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. Taalinstellingen + +### UI Taal + +**Interfaetaal** (knoppen, menu’s, dialoogvensters): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +Gedekt: Engels, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Русский, العربية en nog veel meer. + +### Uitvoertaal + +**Taal van gegenereerd inhoud** (conceptnotities, onderzoeks samenvattingen): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**Gebruiksgeval:** Chinees UI + Engelse uitvoer voor tweetalig onderzoek. + +### Doeltaal voor vertaling + +**Standaard doeltaal** voor vertaaltaken: + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. Integratie met zoekfunctie + +### Tavily (Aanbevolen) + +**AI-geoptimaliseerde zoekservice:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +Krijg sleutel: [tavily.com](https://tavily.com/) + +**Kenmerken:** +- Hogekwalitatieve resultaten +- AI-geoptimaliseerde samenvattingen +- Bronverwijzingen + +### DuckDuckGo (Experimenteel) + +**Geen API sleutel nodig:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**Opmerking:** Lagere kwaliteit, geen personalisatie. + +--- + +## 6. Configuratie van workflow + +### Het maken van aangepaste workflows + +**Workflows verbinden meerdere taken met elkaar in één knop.** + +1. **Instellingen → Workflows → Workflow toevoegen** +2. **Naam**: "Paper Analysis Flow" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **Opslaan** + +Een nieuwe knop verschijnt in de linkerbalk. + +### DSL-syntaxis + +**Vormgeving:** `action1>action2>action3` + +**Beschikbare acties:** +- `process-current-add-links` — Wiki-links toevoegen aan de huidige notitie +- `extract-concepts-current` — Conceptnotities genereren +- `research-and-summarize` — Webonderzoek + samenvatting +- `translate-current` — Huidige notitie vertalen +- `summarize-as-mermaid` — Diagram Mermaid genereren +- `process-folder-add-links` — Map verwerken + +**Voorbeelden van workflows:** + +**Snelle conceptextractie:** +``` +process-current-add-links>extract-concepts-current +``` + +**Diepgaand onderzoek:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**Meertalige analyse:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. Geavanceerde instellingen + +### Batchverwerking + +**Meerdere bestanden gelijktijdig verwerken:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +Hoger = sneller, maar meer API oproepen. + +### Slim chunking + +**Voor lange notities: opdelen in chunks:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +Voorkomt fouten door tokenlimiet. + +### Diagnostisch paneel + +**Gedetailleerde logs bekijken:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +Toont: +- API verzoeken/antwoorden +- Tokengebruik +- Verwerkingstijden +- Fouten + +### Detectie van dubbele concepten + +**Vermeid bijna-identieke concepten:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +Hoger = agressiever samenvoegen. + +--- + +## Configuratieprofielen + +### Export/Import instellingen + +**Deel configuraties tussen apparaten:** + +1. **Instellingen → Geavanceerd → Exporteer configuratie** +2. Slaat `notemd-config.json` op +3. Op nieuw apparaat: **Importeer configuratie** + +**Wat is inbegrepen:** +- Provider API sleutels (optioneel) +- Modelkeuzes +- Uitvoerpaden +- Aanpasbare workflows + +--- + +## Aanbevolen configuraties + +### Voor studenten + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### Voor onderzoekers + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### Voor gebruikers die geheimhouding belangrijk vinden + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### Voor tweetalig werk + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## Problemen oplossen met configuratie + +### Instellingen worden niet opgeslagen +- Controleer de bestandsrechten in `.obsidian/plugins/notemd/` +- Probeer: Plugin uitschakelen → Opnieuw inschakelen + +### API Sleutel ongeldig +- Geen extra ruimtes +- Controleer de vervaldatum +- Controleer de credits op het dashboard van de provider + +### Modellen worden niet geladen +- Klik op "Lijst met modellen bekijken" om te vernieuwen +- Controleer de netwerkverbinding +- Probeer een andere provider + +--- + +## Volgende stappen + +- 📖 [Kenmerken ontdekken](../features/wiki-links) +- 🔌 [Gidsen voor provider instellingen](../providers/overview) +- ❓ [FAQ](../faq) diff --git a/website/i18n/nl/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/nl/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..b7d51bf7 --- /dev/null +++ b/website/i18n/nl/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "Installatie" +description: "Hoe installeer je Notemd in Obsidian" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Installatie + +<TLDR> +**Installeer Notemd in minder dan 2 minuten.** Twee methoden: (1) Obsidian Community Plugins (aanbevolen, één-klik installatie), of (2) Handmatige installatie via GitHub Releases. Vereist Obsidian 0.15.0+. Werkt op Windows, macOS, Linux, iOS en Android. Geen externe afhankelijkheden. Meer dan 4k downloads, onder MIT-licentie. +</TLDR> + +## Methode 1: Community-plugins (aanbevolen) + +1. Open **Obsidian Instellingen** (icoon ⚙️ of `Ctrl/Cmd + ,`) +2. Ga naar **Community plugins** +3. Klik op **Browse** +4. Zoek naar **"Notemd"** +5. Klik op **Installeren** +6. Klik op **Enable** + +**Gedaan!** U ziet het Notemd-icoon in uw linkerbalk. + +## Methode 2: Handmatige installatie + +### Voorwaarden +- Obsidian 0.15.0 of hoger +- Git (optioneel, voor klonen) + +### Stappen + +1. **Bestand downloaden** van [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest): + - `main.js` + - `styles.css` + - `manifest.json` + +2. **Vind de pluginmap van je vault:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +Als de map `plugins` niet bestaat, maak hem dan aan. + +3. **Maak map Notemd aan:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **Kopieer de drie bestanden** naar de `notemd` map. + +5. **Herlaad Obsidian:** + - Druk op `Ctrl/Cmd + R`, of + - Herstart Obsidian + +6. **De plugin inschakelen:** + - Instellingen → Community plugins + - Vind "Notemd" in de lijst + - Zet het aan + +## Alternatief: Installeer via BRAT + +Als je de [BRAT plugin](https://github.com/TfTHacker/obsidian42-brat) gebruikt: + +1. Open de instellingen van BRAT +2. Klik op "Add Beta plugin" +3. Voer in: `Jacobinwwey/obsidian-NotEMD` +4. Klik op "Add Plugin" +5. Activeer Notemd in Community plugins + +## Verificatie + +Na de installatie controleren of Notemd werkt: + +1. Open een willekeurige notitie +2. Rechtermuisknop in de editor +3. U ziet Notemd-commando's zoals: + - "Process file (add links)" + - "Extract concepts" + - "Research and summarize" + +## Volgende stappen + +- **Stel de LLM-provider in:** [Quick Start →](./quick-start) +- **Probleemoplossing:** [Common Issues →](../advanced/troubleshooting) + +## Systeemeisen + +| Platform | Versie | Status | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | vereist | +| **Windows** | 7+ | ✅ Ondersteund | +| **macOS** | 10.15+ | ✅ Ondersteund | +| **Linux** | Elk | ✅ Ondersteund | +| **iOS** | 15+ | ✅ Ondersteund | +| **Android** | 5+ | ✅ Ondersteund | + +## Oninstallatie + +Om Notemd te verwijderen: + +1. Instellingen → Community plugins +2. Zoek "Notemd" +3. Klik op het ❌-icoon +4. Optioneel: verwijder de pluginmap: `<vault>/.obsidian/plugins/notemd/` + +Uw gegevens (notities, conceptnotities, etc.) blijven onveranderd. + +## Updaten + +### Automatische update (aanbevolen) +Obsidian controleert automatisch op updates voor plugins. Wanneer er een nieuwe versie beschikbaar is: +1. Instellingen → Community plugins +2. Klik op "Controleer op updates" +3. Klik op "Update" naast Notemd + +### Handmatige update +Download de nieuwste versie en vervang de drie bestanden in uw pluginmap. + +## Hulp krijgen + +- 📖 [Quick Start Guide](./quick-start) +- ❓ [FAQ](../faq) +- 💬 [Discord Community](https://discord.gg/qnGgsQ9W) +- 🐛 [Problemen melden](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/nl/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/nl/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..8ba3fde2 --- /dev/null +++ b/website/i18n/nl/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "Snelle startgids" +description: "Begin met Notemd in 5 minuten" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Snelle startgids + +<TLDR> +**Begin onmiddellijk met Notemd in 5 minuten.** Drie stappen: (1) Voeg een LLM API sleutel toe (of gebruik lokale Ollama), (2) Open een notitie en voer "Process file (add links)" uit, (3) Ontdek één-klik workflows in de zijbalk. Ondersteunt meer dan 30 providers. Geen programmering vereist. Werkt offline met Ollama. +</TLDR> + +## Stap 1: Stel uw eerste LLM provider in (2 min) + +### Optie A: Cloudprovider (OpenAI, Anthropic, enz.) + +1. Open **Settings** → **Notemd** +2. Onder **LLM Provider Configuration**, selecteer een provider uit de dropdown +3. Voer uw **API Sleutel** in +4. (Optioneel) Klik op **"Get Model List"** om beschikbare modellen te bekijken +5. Selecteer een model voor elk taaktype + +**Populaire keuzes:** +- **OpenAI**: `gpt-4o-mini` (snel, betaalbaar) +- **Anthropic**: `claude-sonnet-4-6` (hoge kwaliteit) +- **DeepSeek**: `deepseek-chat` (zeer betaalbaar) + +### Optie B: Lokale Ollama (geen API sleutel nodig) + +1. Installeer [Ollama](https://ollama.com/) +2. Download een model: `ollama pull llama3.1` +3. In de Notemd instellingen, selecteer **"Ollama"** als provider +4. Naam van het model: `llama3.1` (of elk model dat je hebt gedownload) + +## Stap 2: Probeer je eerste taak (1 min) + +### Voeg Wiki-links toe aan een notitie + +1. Open elke notitie met zinvolle inhoud +2. Rechtermuisknop in de editor +3. Selecteer **"Bestand verwerken (links toevoegen)"** +4. Wacht enkele seconden +5. De belangrijkste concepten zijn nu `[[wiki-linked]]`! + +**Voorbeeld:** + +**Voorheen:** +``` +Machine learning models use neural networks to process data. +``` + +**Na:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## Stap 3: Ontdek de functies (2 min) + +### Haal conceptnotities eruit + +1. Rechtermuisknop → **"Concepten uit het huidige bestand halen"** +2. Notemd maakt aparte bestanden voor elk concept +3. Kijk naar je gedefinieerde map voor concepten (standaard: `concepts/`) +4. Elke conceptnotitie bevat een teruglink naar je oorspronkelijke notitie + +### Onderzoek en samenvatten + +1. Een onderwerp in je notitie markeren +2. Rechtermuisknop → **"Onderzoek en samenvatten"** +3. Notemd voert een webzoekopdracht uit (Tavily of DuckDuckGo) +4. De samenvatting wordt met bronnen toegevoegd aan je notitie + +### Eén-klikwerkflows + +1. Kijk in de **linkerbalk** voor workflow-knoppen +2. Klik op **"Eén-klik extraheren"** in elke notitie +3. Het proces verloopt als volgt: links toevoegen → concepten extraheren → onderzoek doen → diagram genereren +4. Alles in één klik! + +## Vaak voorkomende eerste taken + +### Taak 1: Een artikel verwerken + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### Taak 2: Notities vertalen + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### Taak 3: Een kenniskaart maken + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## Tips voor personalisatie + +### Modelselectie per taak + +Je kunt verschillende modellen gebruiken voor verschillende taken: + +| Taak | Aanbevolen model | Waarom | +|------|------------------|-----| +| Links toevoegen | `gpt-4o-mini`, `deepseek-chat` | Snel, veel oproepen | +| Concepten extraheren | `claude-sonnet-4-6`, `gpt-4o` | Kwalitatieve extractie | +| Onderzoek | `perplexity`, `gpt-4o` | Web-gebaseerd | +| Vertaling | `gemini-flash`, `gpt-4o` | Meertalig | +| Diagrammen | `claude-opus`, lokaal model | Complexe redenering | + +Configureren in: **Instellingen → Notemd → Taakspecifieke modellen** + +### Aanpasbare workflows + +Uw eigen knop maken: + +1. Instellingen → Notemd → Workflows +2. Klik op "Workflow toevoegen" +3. DSL invoeren: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. Geef het een naam: "Mijn Onderzoeksvloeiing" +5. Een nieuwe knop verschijnt in de zijbalk + +## Probleemoplossing + +### "API Slechte sleutel" +- Controleer of de sleutel correct is (geen extra ruimtes) +- Verifieer of het account credits heeft +- Test met de "Connection Test"-knop in de instellingen + +### "Model Niet Gevonden" +- Klik op "Get Model List" om beschikbare modellen te zien +- Sommige aanbieders vereisen specifieke modelnamen (bijv. `gpt-4o` in plaats van `gpt-4`) + +### Links verschijnen niet +- Zorg dat de notitie voldoende inhoud heeft (>50 woorden) +- Probeer een krachtiger model +- Controleer of de LLM-aanroep is geslaagd (zie diagnostische panel) + +### Trage prestaties +- Gebruik snelere modellen (`gpt-4o-mini` in plaats van `gpt-4o`) +- Verklein de chunkgrootte in de instellingen +- Parallel verwerking inschakelen voor batchtaken + +## Volgende stappen + +- 📖 [Alle functies bekijken](../features/wiki-links) +- ⚙️ [Geavanceerde configuratie](./configuration) +- 🔧 [Instellingen van LLM Provider](../providers/overview) +- ❓ [FAQ](../faq) + +## Video Tutorial + +Kijk de 3-minuten durende snelstartvideo (Chinees): +[【Volledig open source en gratis! NotEMD in 3 minuten】](https://b23.tv/lqR0RlA) + +## Hulp krijgen + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **Problemen**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **Documentatie**: [Volledige documentatie](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/nl/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/nl/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..32727ebc --- /dev/null +++ b/website/i18n/nl/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "Inleiding tot Notemd" +description: "Een door AI aangedreven bouwer van een kennisbasis voor Obsidian met permanente notitietransformaties, workflows en diagrammen die eerst worden gespecificeerd" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Inleiding tot Notemd + +<TLDR> +**Notemd** (Note + EMD — Enhanced Markdown Documents) is een open-source Obsidian plugin die lezen met LLM omzet in permanente kennis. In tegenstelling tot chatgebaseerde AI, waarin inzichten na de sessie verdwijnen, schrijft Notemd de resultaten **direct in uw vault** als wiki-links, conceptnotities, onderzoeks samenvattingen, vertalingen, workflows en diagrammen. Het is ontworpen voor onderzoekers, studenten en kenniswerkers die willen dat lezen, onderzoek en visuele uitleg worden opgebouwd tot een gestructureerde, evoluerende kennisgraaf. +</TLDR> + +## Wat is Notemd? + +Notemd integreert **30+ grote taalmodellen** (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama en nog veel meer) in uw Obsidian workflow om kennisextractie, organisatie, vertaling, onderzoek en diagramgeneratie te automatiseren. + +### Belangrijk verschil: tijdelijke versus permanente kennis + +| Aspect | Chatgebaseerde AI (ChatGPT, etc.) | Notemd | +|--------|-------------------------------|--------| +| **Waar gaan de resultaten naartoe** | Chatgeschiedenis (verdwijnt) | Uw Obsidian vault (blijft bestaan) | +| **Formaat** | Platte tekstantwoorden | Gestructureerde bestanden: `[[wiki-links]]`, conceptnotities, diagrammen | +| **Langdurige waarde** | Moet elke keer opnieuw gevraagd worden | Wordt opgebouwd tot een kennisgraaf | +| **Offline toegang** | Internet vereist | Werkt volledig offline met Ollama | + +## Corele capaciteiten + +### 1. **Automatische Wiki-verwijzingen** +- LLM identificeert belangrijke concepten in uw notities +- Voegt `[[wiki-links]]` toe bij elke voorkomst +- Maakt optioneel gerelateerde conceptnotities aan +- Synoniemsuppressie om duplicaten te voorkomen + +### 2. **Generatie van conceptnotities** +- Haalt kernconcepten uit artikelen, papers en notities +- Genereert speciale conceptbestanden met backlinks +- Aanpasbare uitvoerpaden en templates + +### 3. **Integratie van webonderzoek** +- Voer Tavily of DuckDuckGo in vanuit Obsidian +- LLM vat de resultaten samen met bronverwijzingen +- Voegt onderzoekresultaten toe aan het huidige notitieblok + +### 4. **Meertalige vertaling** +- Vertaal geselecteerde delen of hele notities +- Ondersteunt meer dan 21 UI talen +- Onafhankelijke instelling van de uitvoerstaal +- Batchvertaalsupport + +### 5. **Diagramgeneratie** +- **Mermaid**: Stroomdiagrammen, sequentiële diagrammen, klassendiagrammen, toestandsdiagrammen, ER-diagrammen, Gantt-diagrammen +- **JSON Canvas**: Obsidian-specifieke lay-outs +- **Vega-Lite**: Gegevensgrafieken, tijdsreeksen, scatterplots +- **HTML / Editable HTML/SVG**: Zelfstandige afbeeldingen met semantische annotaties +- **Draw.io / Drawnix-grenzen van artefacten**: Exportroutes voor beheerders gebaseerd op hetzelfde semantische figuurmodel +- **Roadmap voor schakeldiagrammen**: circuitikz/TikZJax-ondersteuning wordt ontworpen rondom gouden referenties, beperkte prompts, renderfeedback en validatie van topologie/layout in plaats van onbeperkt LLM TikZ +- **Previewdiagnostiek**: Renderde artefacten kunnen compileer-/renderfouten weergeven, en niet-in-line bronnen kunnen worden geïnspecteerd zonder een LaTeX-runtime aan de kant van plugins +- Automatische correctie van Mermaid-fouten + +### 6. **Eén-klikwerkflows** +- Meerdere acties in knoppen aan de zijkant combineren +- Definitie van workflows op basis van DSL +- Voorbeeld: `add-links > extract-concepts > research > diagram` + +## Wie moet Notemd gebruiken? + +✅ **Onderzoekers** die artikelen lezen en literatuuroverzichten maken +✅ **Studenten** die studienotities ordenen en conceptkaarten creëren +✅ **Kenniswerkers** die willen dat inzichten uit lezingen behouden blijven +✅ **Taligen** die vertaling + wiki-linking nodig hebben +✅ **Gebruikers die privacy belangrijk vinden** die lokale LLM ondersteuning willen (Ollama) +✅ **Geavanceerde gebruikers** die prompts en workflows aanpassen + +## Waarom Notemd + Obsidian? + +**Obsidian** is een lokale, op markdown gebaseerde kennisbase. **Notemd** voegt AI-krachten toe: +- Uw gegevens blijven in uw eigen opslag (niet bij een clouddienst) +- Werkt offline met lokale modellen +- Gratis en open source (MIT licentie) +- Integreert met bestaande Obsidian plugins +- Schalbaar tot tientallen duizenden notities + +## Beginnen + +1. **Installeer**: Instellingen → Community Plugins → Zoeken → "Notemd" +2. **Configureer**: Voeg uw LLM provider API sleutel toe (of gebruik lokale Ollama) +3. **Probeer het uit**: Open een notitie → Rechtermuisknop → "Bestand verwerken (links toevoegen)" +4. **Ontdek meer**: Kijk in de zijbalk voor workflow’s met één klik + +👉 [Installatiegids](./getting-started/installation) | [Snelle starthandleiding](./getting-started/quick-start) + +## Richting van de diagramfunctie + +Het diagramwerk van Notemd verschuift van "vraag het model om één syntaxisstring te schrijven" naar een gestapelde pipeline: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +De huidige implementatie ondersteunt al Mermaid, JSON Canvas, Vega-Lite, HTML fallback, bewerkbare HTML/SVG, Draw.io XML artefacten, een minimale Drawnix JSON subset, voorafbeeldingsdiagnoseën/slechts bronfallback, en een offline `CircuitSpec -> circuitikz` prototype voor veelgebruikte bron- en CMOS inverter gouden templates. Circuitdiagrammen vallen onder een moeilijkere categorie: circuitikz kan een nauwkeurige elektrische topologie weergeven, maar onbeperkte LLM uitvoer leidt vaak tot onleesbare routings of niet renderende LaTeX. De volgende richting is om circuitikz te beperken met gouden-Referentietemplates, regels voor knooppuntraster布局, renderdiagnoseën en feedbacklopen via screenshot. + +Lees de details in [Diagrams](./features/diagrams). + +## Architectuur + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd versus andere Obsidian AI-plugins + +De meeste Obsidian AI-plugins zijn gespreksondersteund (u stelt een vraag, de AI antwoordt, inzichten blijven in het chatvenster). Notemd is **schrijfgericht**: de AI verwerkt uw notities en schrijft gestructureerde resultaten rechtstreeks in uw vault. + +| Functionaliteit | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| Automatische invoeging van wiki-links | Ja | Nee | Nee | Nee | +| Generatie van conceptnotities | Ja (met backlinks + duplicaatverwijdering) | Nee | Nee | Nee | +| Generatie van diagrammen | Ja (Mermaid, Canvas, Vega-Lite, HTML, bewerkbare artefacten) | Nee | Nee | Nee | +| Integratie van webonderzoek | Ja (Tavily + DuckDuckGo) | Nee | Nee | Nee | +| Verwerking van batchmappen | Ja | Beperkt | Nee | Beperkt | +| Modelrouting per taak | Ja (7 taken, onafhankelijke modellen) | Nee | Nee | Nee | +| Eén-klik workflowketens | Ja (DSL) | Nee | Nee | Nee | +| Vertaling (batch) | Ja | Nee | Nee | Nee | +| Chatten met vault | Nee | Ja | Nee | Nee | +| Zoekopdracht op semantische gelijkenis | Nee | Nee | Ja | Nee | +| Generatie op basis van templates | Nee | Nee | Nee | Ja | +| LLM aanbieders | 36 (cloud + gateway + lokale) | 3-5 | 2-3 | 3-5 | +| Volledig offline | Ja (Ollama) | Gedeeltelijk | Gedeeltelijk | Gedeeltelijk | + +**Wanneer Notemd kiezen**: U wilt dat de AI een permanente kennisgraaf bouwt — en niet alleen over uw notities praat. + +**Wanneer je Copilot moet kiezen**: Je wilt een gespreksgerichte AI-assistent in Obsidian. + +**Wanneer Smart Connections kiezen**: U wilt bestaande relaties tussen notities ontdekken via semantische zoekopdrachten. + +## Filosofie + +**Notemd is van mening dat AI menselijk kenniswerk moet versterken, in plaats van het te vervangen.** De plugin: +- Houdt u onder controle (beoordeel voordat u wijzigingen toepast). +- Context behouden (alle resultaten leiden terug naar de bron) +- Beschermt de privacy (lokale LLM ondersteuning, geen telemetry) +- Blijft uitbreidbaar (open APIs, aangepaste workflows) + +## Open Source + +- **Licentie**: MIT +- **Bron**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **Gemeenschap**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **Bijdragen**: PR’s welkom, zie [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +**Volgende stap**: [Installation →](./getting-started/installation) diff --git a/website/i18n/nl/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/nl/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..63b474a5 --- /dev/null +++ b/website/i18n/nl/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Obsidian Gids voor AI-kennisbeheer" +description: "Volledige gids voor het opbouwen van een verbonden kennisbasis met AI — van wiki-links en conceptextractie tot onderzoek, vertaling en diagramgeneratie" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Obsidian Gids voor AI-kennisbeheer + +<TLDR> +**Notemd zet LLM-gebaseerd lezen om in blijvende kennis: wiki-links verbinden concepten, conceptnotities creëren een terugvindbare grafiek, onderzoek brengt het web naar uw opslag, vertaling breekt taalbarrières, diagrammen maken de structuur zichtbaar, en workflows verbinden alles in één klik.** Deze gids behandelt de volledige pipeline — van ruwe notities tot een verbonden, visueel, meertalige kennisbasis. +</TLDR> + +## Waarom AI-kennisbeheer? + +Traditionele notitieboekhouding levert platte bestanden op. Zelfs met handmatige wiki-links blijven de meeste notities los van elkaar. Notemd maakt gebruik van LLM om de verbindingslaag te automatiseren: + +- **LLMs lezen uw inhoud** en identificeren wat belangrijk is — termen, methoden, personen, theorieën +- **Links worden automatisch ingevoegd** bij elke voorkomst van een concept, niet verstopt in "zie ook" +- **Conceptnotities worden gegenereerd** als zelfstandige, terugvindbare bestanden +- **Onderzoek verrijkt notities** met context uit het web +- **Diagrammen maken de structuur zichtbaar** — mindmaps, stroomdiagrammen, gegevensgrafieken van dezelfde inhoud + +Het resultaat: een kennisgrafiek die groeit met elke notitie die u verwerkt, niet alleen wanneer u eraan denkt links toe te voegen. + +## De volledige pipeline + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +Elk stap is onafhankelijk. Gebruik er één of allemaal. De meest effectieve volgorde: **Links toevoegen → Conceptnotities → Diagrammen**. + +--- + +## 1. Wiki-links: Verbindingen expliciet maken + +Wiki-links vormen de ruggengraat van een kennisgrafiek. Notemd maakt gebruik van een LLM om: + +1. Lees de inhoud van je notitie (splits in delen voor lange documenten) +2. Identificeer de kernconcepten — geef voorkeur aan specifieke, technische termen boven algemene zelfstandige naamwoorden +3. Voeg `[[wiki-links]]` toe bij elke voorkomst +4. Supprime synoniemen zodat "ML" en "Machine Learning" geen aparte nodes creëren + +### Wanneer te gebruiken + +- **Elke notitie >100 woorden** — kortere notities leveren weinig concepten op +- **Onderzoekspapieren, technische documentatie, vergaderingsnotities** — rijk aan domeinspecifieke termen +- **Nadat de inhoud stabiel is** — verwerk concepten niet herhaaldelijk van conceptversies + +### Belangrijke instellingen + +| Instelling | Aanbevolen | Waarom | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek of GPT-4o-mini | Goede nauwkeurigheid tegen lage kosten | +| Synonymensuppressie | Aan | Voorkomt dubbele nodes | +| Contextvenster | Paragraaf | Evenwicht tussen nauwkeurigheid en kosten | + +→ [Diepe duik in Wiki-links](/docs/features/wiki-links) + +--- + +## 2. Conceptnotities: Opgewekte kennisknopen + +Wiki-links verbinden ideeën inline, maar conceptnotities maken elke gedachte onafhankelijk ophaalbaar. Elk concept krijgt zijn eigen `.md` bestand: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### Het extrageproces + +De LLM prompt is zeer gestructureerd: +- Normaliseer naar enkelvoudige vorm +- Geef de voorkeur aan meervoudige concepten boven enkelvoudige woorden (“Dielectric Relaxation” in plaats van “Relaxation”) +- Sla referentie- of bibliografieën over +- Geef het resultaat weer als `CONCEPT:` regels voor deterministische parsing + +Concepten worden via `Set<string>` gededupliceerd over verschillende delen. LLM fouten in afzonderlijke delen stoppen de operatie niet. + +### Backlinks + +Wanneer geactiveerd houdt elke conceptnotitie bij welke bronnotities er naar verwijzen. Het ingebouwde backlinkpaneel van Obsidian toont ook omgekeerde verbindingen. + +### Deduplicatie + +De 4-stappen dedupliceringsmotor van Notemd vangt het volgende op: +1. **Exacte overeenkomsten** — vergelijking van bestandsnamen zonder rekening te houden met hoofdletters +2. **Meervoudsvormen** — "Models.md" versus "Model.md" +3. **Normalisatie van symbolen** — "A-B.md" versus "A B.md" +4. **Enkelvoudswoordcontrole** — "ML.md" wordt gemarkeerd wanneer "Machine Learning.md" bestaat + +### Sleutelinstellingen + +| Instelling | Aanbevolen | Waarom | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` of `🧠 concepts/` | Houdt de kluis georganiseerd | +| `extractConceptsAddBacklink` | Aan | Stelt omgekeerde zoekopdracht mogelijk | +| `extractConceptsMinimalTemplate` | Uit | Volledig sjabloon met Linked From | +| Model per taak | DeepSeek | Conceptuitwinning heeft geen dure modellen nodig | +| Synoniemsuppressie | Aan | Dezelfde instelling beïnvloedt zowel linken als uitwinning | + +→ [Concept Notities dieper onderzocht](/docs/features/concept-notes) + +--- + +## 3. Onderzoek: Het web integreren + +Notemd integreert webzoeken in je notitieproces. + +1. **Vraagopstelling** — de titel of selectie van je notitie wordt een zoekopdracht. +2. **Webzoeken** — Tavily (aanbevolen, API sleutel vereist) of DuckDuckGo (gratis, geen sleutel nodig). +3. **LLM samenvatting** — de zoekresultaten worden samengevat tot een relevante samenvatting. +4. **Toevoegen aan notitie** — de samenvatting wordt toegevoegd op de cursorpositie of als een nieuwe sectie. + +### Wanneer te gebruiken + +- Voorafgaand aan het verwerken van een nieuw onderwerp — eerst webcontext verkrijgen. +- Wanneer een conceptnotitie verrijkt moet worden — eerst onderzoek doen en dan links toevoegen. +- Voor literatuurstudies — in batches onderzoek doen naar een map met notities. + +### Belangrijkste instellingen + +| Instelling | Aanbevolen | Waarom | +|---------|-----------|-----| +| `researchProvider` | GPT-4o of Claude. | Onderzoek vereist een hogere kwaliteit van samenvattingen. | +| Zoekservice | Tavily | Beter relevante resultaten, instelbare diepte | +| `maxResearchContentTokens` | 4000 | Evenwicht tussen diepte en kosten | + +→ [Onderzoek naar diepe analyse](/docs/features/research) + +--- + +## 4. Vertaling: Taalbarrières doorbreken + +Notemd vertaalt notities met behulp van uw ingestelde LLM — geen gespecialiseerde vertaalapparaat API. Dit betekent: + +- **Contextbewuste vertalingen** — de LLM begrijpt het hele document, niet zin voor zin +- **Omgaan met technische termen** — "gradient descent" blijft "梯度下降" in plaats van "坡度向下" +- **Batch‑ondersteuning** — vertaal een hele map met notities in één keer +- **Model per taak** — gebruik Gemini Flash voor vertaling (snel, goedkoop, meertalig) + +### Taalsupport + +Notemd ondersteunt zelf 21 UI talen. De doeltaal kan per taak worden ingesteld. Veel voorkomende paren: EN↔ZH, EN↔JA, EN↔KO, EN↔DE, EN↔FR, EN↔ES. + +→ [Diepe analyse van vertaling](/docs/features/translation) + +--- + +## 5. Diagrammen: Structuur zichtbaar maken + +Het diagrampipeline van Notemd is spec‑first: de LLM genereert een gestructureerd `DiagramSpec` JSON, waarna adapters dit omzetten naar het doelformaat. Dit levert betrouwbaardere resultaten op dan wanneer men de LLM vraagt om ruwe Mermaid‑syntax. + +### Intent Detectie + +Notemd bepaalt automatisch het beste diagramtype op basis van de inhoud: + +- **Tabellen met cijfers** → gegevensdiagram (Vega-Lite) +- **Woordenschat client/server** → sequentiediagram (Mermaid) +- **Entiteit/primaire sleutel** → ER-diagram (Mermaid) +- **Stap/processtroom** → stroomdiagram (Mermaid) +- **Trefwoorden conceptkaart** → JSON Canvas (Obsidian native) +- **Standard** → denkkaart (Mermaid) + +### Rendering Chain + +Primair doelwit → fallback → fallback → HTML. Als de Mermaid-syntaxis faalt, probeert het nog een keer met foutcontext naar de LLM, en valt daarna terug op een minimaal diagram. + +### Belangrijkste instellingen + +| Instelling | Aanbevolen | Waarom | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | Aan | Betere kwaliteit via spec-first | +| `experimentalDiagramCompatibilityMode` | `best-fit` | Native doelwit per intentie | +| `summarizeToMermaidProvider` | GPT-4o of Claude | Diagramspecificaties vereisen ruimtelijk redeneren | +| `autoMermaidFixAfterGenerate` | Aan | Vangt LLM-syntaxisfouten automatisch op | +| Lokale kennisverrijking | Aan voor domeinspecifiek gebruik | Verbetert de nauwkeurigheid met vault-context | + +→ [Diagrams deep dive](/docs/features/diagrams) + +--- + +## 6. Workflows: Eén-klik automatisering + +Workflows combineren meerdere taken in één knop in de zijbalk. Het DSL-formaat is: + +``` +task1 | task2 | task3 +``` + +Voorbeeld: `addLinks | extractConcepts | generateDiagram` — verwerk een notitie van ruwe tekst naar een volledig verbonden, visueel kennisnode in één klik. + +### Aanbevolen Workflows + +| Workflow | Chain | Gebruiksgeval | +|----------|-------|----------| +| Volledig proces | `addLinks \| extractConcepts \| generateDiagram` | Nieuwe notities | +| Eerst onderzoek doen | `research \| addLinks` | Onbekende onderwerpen | +| Polyglot | `translate \| addLinks` | Meertalige notities | +| Alleen diagram | `generateDiagram` | Snelle visualisatie | + +→ [Diepte-inzicht Workflows](/docs/features/workflows) + +--- + +## 7. LLM Providers: 36 opties van cloud tot lokaal + +Notemd ondersteunt 36 providers over 4 transporttypen. Belangrijke groepen: + +- **Internationale cloud**: OpenAI, Anthropic, Google, Mistral, xAI +- **Chinese cloud**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **Gateways**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **Lokaal**: Ollama, LMStudio, OVMS — geen API sleutel, geen gegevens verlaten uw apparaat + +### Strategie per taakmodel + +De meest kostenefficiënte opstelling gebruikt goedkope modellen voor eenvoudige taken en krachtige modellen voor complexe taken: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [Overzicht LLM Providers](/docs/providers/overview) + +--- + +## Controlelijst voor het beginnen + +1. **Installeer Notemd** — [Community Plugins](/docs/getting-started/installation) (aanbevolen) of handmatig +2. **Configureer een provider** — DeepSeek (eenvoudigst), OpenAI, of Ollama (gratis) +3. **Verwerk uw eerste notitie** — rechtermuisknop → "Bestand verwerken (links toevoegen)" +4. **Conceptmapmappen instellen** — Instellingen → Notemd → Output → Conceptmapmappen +5. **Concepten extraheren** — voer "Concepten extraheren" uit op dezelfde notitie +6. **Een diagram genereren** — voer "Een diagram genereren" uit om de verbindingen visueel weer te geven +7. **Een workflow maken** — combineer het bovenstaande tot een één-klikknop + +## Aanbevolen configuraties + +### Student (Budget) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### Onderzoeker (Kwaliteit) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### Privacy-First (Alleen lokaal) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### Tweetalig (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## Gewone patronen + +### Patroon: Een onderzoeksartikel verwerken + +1. PDF-inhoud importeren (of kopiëren en plakken) +2. **Onderzoek doen** — verkrijg webcontext over het onderwerp +3. **Links toevoegen** — identificeer en link belangrijke concepten +4. **Concepten extraheren** — maak zelfstandige notities +5. **Diagram genereren** — visualiseer de structuur van het artikel + +### Patroon: Verrijking van dagelijkse notities + +1. Dagelijkse notitie schrijven +2. **Links toevoegen** — verbindt de ideeën van vandaag met bestaande concepten +3. Conceptnotities worden automatisch bijgewerkt met backlinks + +### Patroon: Literatuurstudie + +1. Map maken met artikelen/notities +2. **Batch Links toevoegen** — hele map verwerken +3. **Concepten dedupliceren** — bijna identieke notities opruimen +4. **Diagram genereren** — mindmap van de hele literatuur + +--- + +*Notemd is open source (MIT) en werkt met Obsidian 0.15.0+ op alle platforms. [Nu installeren](/docs/getting-started/installation) of [op GitHub bekijken](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/nl/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/nl/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..fde820be --- /dev/null +++ b/website/i18n/nl/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "Configureer Anthropic Claude" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Anthropic Provider + +<TLDR> +**Anthropic maakt gebruik van de geïntegreerde Messages API transport, en niet van de OpenAI-compatibele transport.** De huidige instellingen zijn standaard ingesteld op `claude-3-5-sonnet-20240620`, `https://api.anthropic.com` en `temperature: 0.5`. Beschouw dit als een apart protocoloppervlak bij het oplossen van problemen. + +Dit maakt deel uit van de [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Setup + +Maak een Anthropic API sleutel aan, voeg een `Anthropic` providerprofiel toe, en laat de Base URL op het geïntegreerde endpoint staan tenzij je via een gespecialiseerd gatewayprofiel routeert. Kies in het modelveld het Claude model-ID dat je wilt gebruiken; de standaard houdt de bestaande productbaseline stabiel. + +Anthropic is een goede keuze voor hoogwaardige samenvattingen, onderzoekssynthese en conceptextractie. Als je het combineert met goedkopere providers, gebruik het alleen voor taken waarvan de uitvoerkwaliteit baat heeft. + +## Endpoint En Authenticatie + +| Veld | Huidige instellingen | +|-------|----------------| +| Transport | `anthropic` | +| API sleutel | vereist | +| Base URL | `https://api.anthropic.com` | +| Standaardmodel | `claude-3-5-sonnet-20240620` | +| Temperature | `0.5` | +| Verbindingstest | Alleen chat | + +De runtime stuurt verzoeken naar `/v1/messages` met `x-api-key` en `anthropic-version: 2023-06-01`. Stel geen OpenAI-stijl `/v1/chat/completions` endpoint in onder deze instellingen; gebruik in plaats daarvan een OpenAI-compatibele gatewayinstelling. + +## Modelontdekking + +Anthropic maakt gebruik van de `anthropic-models` ontdekkingmodus in het providerregister. Als uw sleutel of account geen modellen kan weergeven, bewaar dan een bekende model-ID in het profiel en valideer dit via de verbindingstest. + +De transportmethode is niet uitwisselbaar met OpenAI-compatibele providers. Een Claude-model dat via OpenRouter, LiteLLM of een andere gateway wordt gerouteerd, hoort thuis in het profiel van die gateway, en niet in het native Anthropic profiel. + +## Probleemoplossing + +- `401` of `403`: controleer de reikwijdte van de sleutel, toegang tot het werkgebied, facturatie en of de sleutel behoort tot het verwachte Anthropic werkgebied. +- `404`: de Base URL is incorrect of de geselecteerde model-ID is voor het account niet beschikbaar. +- Gateway-achtige Claude-model-ID’s werken niet: verplaats het profiel naar de overeenkomstige gateway-provider, omdat native Anthropic native modelnamen verwacht. +- Lange verzoeken mislukken later: verlaag de outputgrootte per taak of gebruik een model met een hoger bekend output-tokenplafond. + +## Wanneer te gebruiken + +Gebruik Anthropic wanneer kwaliteit bij synthese, onderzoeksnotities of gestructureerd schrijven belangrijker is dan de ruwe kosten. Gebruik het niet als algemene OpenAI-compatibele fallback; de aparte transportmethode is het doel, en het mengen van protocollen maakt diagnostiek moeilijker. + +--- + +## Volgende stappen + +- [LLM Providers](/docs/providers/overview) -- Volledige configuratie, modellen per taak en herprobeerlogica +- [Troubleshooting](/docs/advanced/troubleshooting) -- Oplossen van 401/403- en verbindingsschade diff --git a/website/i18n/nl/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/nl/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..e557b552 --- /dev/null +++ b/website/i18n/nl/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "Chinaanse aanbieders" +description: "Stel Qwen, DeepSeek, GLM enzovoort in." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Chinaanse aanbieders + +<TLDR> +**Notemd ondersteunt aanbieders uit de Chinese regio en met een Chinese oorsprong via voornamelijk OpenAI-compatibele endpoints.** De huidige set omvat DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, MiniMax, Baidu Qianfan, SiliconFlow, Huawei Cloud MaaS en Z AI. Het voordeel is regionale bereikbaarheid en kostenbeheersing; het risico ligt in de provider-specifieke modelnaamgeving en accountbeperkingen. + +Dit maakt deel uit van de [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Setup + +Maak eerst een account voor de aanbieder aan, genereer een API-sleutel en kies vervolgens het overeenkomstige Notemd-aanbiederpreset in plaats van een algemeen OpenAI-profiel te gebruiken. Het preset bevat de standaard Base URL, het model, de API-testmodus, het gedrag bij modelontdekking en eventuele provider-specifieke UI-velden. + +Gebruik hier agressief modelselectie per taak. Houd bij bijvoorbeeld redeneringsintensieve workflows DeepSeek of GLM, gebruik Qwen of Moonshot voor brede Chinese-taalwerkzaamheden, en stuur coderingstaakken naar Qwen Code wanneer dat account coderingsmodellen biedt. + +## Endpoint En Authenticatie + +| Aanbieder | Standaardmodel | Base URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (endpoint ID vereist) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**Opmerking:** Doubao vereist een Ark endpoint ID (formaat: `ep-xxxxxxxx-xxxx-xxxx`) in plaats van een standaard modelnaam. + +De meeste van deze aanbieders gebruiken de gedeelde OpenAI-compatibele runtime, maar hun account- en modelsemantiek verschilt. Houd de preset-specifieke Base URL, tenzij je de alternatieve endpoint van het account hebt gecontroleerd. + +## Modelontdekking + +DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan en SiliconFlow maken gebruik van OpenAI-compatibele modelontdekking wanneer de aanbieder lijsten ondersteunt. Huawei Cloud MaaS gebruikt de `huaweicloud-modelarts-models`-modus omdat de ModelArts-deploymentsmetadata niet identiek is aan een algemene `/v1/models`-lijst. + +Beschouw een mislukte ontdekking niet als bewijs dat chat onmogelijk is. Sommige aanbieders staan chat toe terwijl ze de toegang tot modellijsten beperken. In dat geval moet je een expliciete model-ID in het profiel opnemen en dit controleren met een verbindingstest. + +## Probleemoplossing + +- Authenticatie lukt maar chat faalt: de modelnaam kan buiten de rechten of regio van het account vallen. +- Doubao faalt met een gewone modelnaam: gebruik de Ark endpoint ID in het modelveld wanneer je deployement dit vereist. +- Redeneringsantwoorden worden afgekort: controleer de provider-specifieke maximale uitvoertokens en de modelbewuste maximale-tokeninstellingen van Notemd. +- Regionale netwerken verschillen: gebruik de China-regiodeendpoint van de aanbieder wanneer de vault-machine zich in China bevindt; gebruik alleen de internationale endpoint wanneer zowel het account als het netwerkpad geldig zijn. + +## Wanneer te gebruiken + +Gebruik Chinese aanbieders wanneer regionale vertraging, toegang tot betalingen/rekeningen, kwaliteit in het Chinees of kosten de belangrijkste beperking zijn. Geef de voorkeur aan directe OpenAI, Anthropic, Google of lokale aanbieders wanneer u een eenvoudiger protocolgrens of betere consistentie bij het oplossen van problemen tussen aanbieders nodig heeft. + +--- + +## Volgende stappen + +- [LLM Providers](/docs/providers/overview) -- Volledige configuratie, modellen per taak en herprobeerlogica +- [Probleemoplossing](/docs/advanced/troubleshooting) -- Verhelp fouten met regionale verbinding en authenticatie diff --git a/website/i18n/nl/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/nl/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..04bfeed8 --- /dev/null +++ b/website/i18n/nl/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "Configureer Google Gemini" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Google Provider + +<TLDR> +**Google maakt gebruik van de geïntegreerde Gemini Generative Language API transport.** De huidige instellingen zijn standaard ingesteld op `gemini-2.0-flash-exp`, `https://generativelanguage.googleapis.com/v1` en `temperature: 0.5`. Het is geen OpenAI-compatibele profiel. + +Dit maakt deel uit van de [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Setup + +Maak een Google AI Studio of Google Cloud API sleutel aan met Gemini-toegang, voeg een `Google` provider profiel toe en behoud de geïntegreerde Generative Language Base URL. Gebruik het standaard Gemini Flash profiel voor snelle vertalingen en uitgebreide notitiewerkflows, en passeer vervolgens de modellen per taak wanneer je een groter of krachtiger Gemini model nodig hebt. + +Vermeed het plaatsen van Gemini model IDs in een OpenAI-compatibele profiel tenzij je expliciet een gateway gebruikt die Gemini via een OpenAI-compatibele API exposeert. + +## Endpoint En Authenticatie + +| Veld | Huidige instellingen | +|-------|----------------| +| Transport | `google` | +| API sleutel | vereist | +| Base URL | `https://generativelanguage.googleapis.com/v1` | +| Standaardmodel | `gemini-2.0-flash-exp` | +| Temperature | `0.5` | +| Verbindingstest | Alleen chat | + +De runtime roept `/models/{model}:generateContent?key={apiKey}` aan. De sleutel wordt doorgegeven als queryparameter omdat dit de manier is waarop het geïntegreerde Gemini endpoint in het plugin is aangesloten. + +## Modelontdekking + +Google maakt gebruik van de `google-models` ontdekkingmodus. Ontdekking moet Gemini modellen teruggeven die beschikbaar zijn voor de API sleutel; als de selector leeg is, test de sleutel tegen dezelfde Base URL en bevestig of de modelfamilie voor dat account is geactiveerd. + +Bekende limieten voor uitvoer-tokens zijn modelafhankelijk in het provider register. Als een lange vertaling of diagramuitleg wordt afgeknipt, kies dan een Gemini model met een hogere ondersteunde uitvoerlimiet of verlaag de vereiste uitvoergrootte. + +## Probleemoplossing + +- `400`: de model ID komt meestal niet overeen met de geïntegreerde Gemini route of de vraag overschrijdt de ondersteunde vorm van het model. +- `401` of `403`: controleer de beperkingen van de sleutel, de activatie van het project/API en of de sleutel toegang heeft tot Gemini. +- `404`: de model ID is niet beschikbaar bij de geselecteerde API versie. +- Gateway voorbeelden falen onder dit profiel: gebruik in plaats daarvan het gateway preset in plaats van de geïntegreerde Google provider. + +## Wanneer te gebruiken + +Gebruik Google voor snelle vertalingen, grote hoeveelheden notitieopruiming en workflows waarbij de kosten/performance balans van Gemini beter is dan directe OpenAI of Anthropic. Kies een andere provider voor workflows die OpenAI-compatibele redeneringsmodelbehandeling vereisen. + +--- + +## Volgende stappen + +- [LLM Providers](/docs/providers/overview) -- Volledige configuratie, modellen per taak en herprobeerlogica +- [Vertaling](/docs/features/translation) -- Gemini Flash wordt aanbevolen voor taken met hoge volumes aan vertalingen diff --git a/website/i18n/nl/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/nl/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..c0e6350b --- /dev/null +++ b/website/i18n/nl/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "Lokale modellen" +description: "Configureer Ollama en lokale LLMs" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# Lokale modellen + +<TLDR> +**Lokale providers houden de inhoud van notities buiten gehostte APIs.** De huidige lokale pad dekt Ollama af met de geïntegreerde `ollama`-transport en LMStudio via de OpenAI-compatibele transport. Er is geen API-sleutel nodig voor beide paden, maar de lokale server en het model moeten al draaien. + +Dit maakt deel uit van de [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Setup + +Voor Ollama: installeer Ollama, haal het gewenste model op, start de server en voeg een `Ollama`-providerprofiel toe in Notemd. Voor LMStudio: laad een model in de lokale server van LM Studio en voeg een `LMStudio`-providerprofiel toe. + +Lokale modellen zijn operationele afhankelijkheden, niet alleen instellingen. Notemd kan alleen wat het lokale proces exposeert aanroepen, dus controleer het lokale model buiten Obsidian voordat je de plugin debugt. + +## Endpoint En Authenticatie + +| Aanbieder | Base URL | Standaardmodel | API Sleutel | Opmerkingen | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | Niet verplicht | NDJSON streaming; modelontdekking via `/api/tags` | +| LMStudio | `localhost:1234/v1` | `local-model` | Niet verplicht | Stuurt `"EMPTY"` als bearer token; OpenAI-compatibel | + +Ollama gebruikt het geïntegreerde `/chat`-pad onder zijn Base URL. LMStudio volgt de OpenAI-compatible `chat/completions`-route en verwacht een model dat in de lokale server is geladen. + +## Modelontdekking + +Ollama gebruikt de `ollama-tags`-ontdekkingmodus en geeft lokaal opgehaalde tags weer. LMStudio gebruikt OpenAI-compatible modelontdekking wanneer zijn server `/v1/models` exposeert. + +Als de ontdekking niets oplevert, is dat meestal een probleem met de staat van de lokale server: het model is niet opgehaald of geladen, of de server is gekoppeld aan een andere host/port dan in het profiel. + +## Probleemoplossing + +- Verbinding geweigerd: start Ollama of LM Studio en controleer de gedefinieerde poort. +- Model niet gevonden: haal de Ollama-tag op of laad het LM Studio-model voordat je test. +- Trage uitvoering: verlaag de contextgrootte, gebruik een kleiner lokaal model of stuur zware taken door naar een gehostte provider. +- Lege of ongeldige responses: controleer of het geselecteerde providerprofiel overeenkomt met het protocol van de lokale server; Ollama en LMStudio zijn niet onderling uitwisselbaar. + +## Wanneer te gebruiken + +Gebruik lokale providers voor privé‑vaults, offline werk of goedkope, repetitieve taken. Ga er niet van uit dat lokale oplossingen automatisch beter zijn voor onderzoekssynthese of langdurig redeneren; modelkwaliteit en hardwarebeperkingen vormen het compromis. + +--- + +## Volgende stappen + +- [LLM Providers](/docs/providers/overview) -- Volledige configuratie en modelinstellingen per taak +- [Probleemoplossing](/docs/advanced/troubleshooting) -- Verhelp fouten van type connection-refused wanneer de lokale server niet draait diff --git a/website/i18n/nl/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/nl/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..3be36c0e --- /dev/null +++ b/website/i18n/nl/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "Configureer OpenAI (GPT-4, GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# OpenAI Provider + +<TLDR> +**OpenAI maakt gebruik van het gedeelde OpenAI-compatibele transport.** De huidige voorkeursinstellingen zijn `gpt-4o`, `https://api.openai.com/v1`, `temperature: 0.5` en de `models-then-chat` verbindingstest. Gebruik deze pagina wanneer u exacte veldsemantiek nodig heeft; gebruik het overzicht [LLM Providers](/docs/providers/overview) voor selectie op categorie-niveau. + +Dit maakt deel uit van de [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Setup + +Maak een OpenAI API sleutel aan, voeg een `OpenAI` providerprofiel toe in de Notemd instellingen en houd de standaard Base URL behouden tenzij u bewust naar een OpenAI-compatibele gateway verwijst. Het modelveld kan op `gpt-4o` blijven voor algemene werkzaamheden of worden vervangen door een andere OpenAI model-ID die uw account kan oproepen. + +Gebruik modelen specifiek voor taken om kosten onder controle te houden: houd sterkere modellen voor onderzoek, conceptuitwinning en langvormige herstructurering; gebruik goedkopere of snelere modellen voor vertaling, linkvoorstellen en korte samenvattingen. + +## Endpoint En Authenticatie + +| Veld | Huidige instellingen | +|-------|----------------| +| Transport | `openai-compatible` | +| API sleutel | vereist | +| Base URL | `https://api.openai.com/v1` | +| Standaardmodel | `gpt-4o` | +| Temperature | `0.5` | +| Verbindingstest | `/models`, vervolgens `/chat/completions` | + +Notemd normaliseert de OpenAI-compatibele base URLs voordat `chat/completions` of `models` wordt toegevoegd. Voeg geen eind `/chat/completions` toe aan de Base URL; dat zorgt voor een dubbele route. + +## Modelontdekking + +OpenAI maakt gebruik van de algemene OpenAI-compatibele modelontdekkingroute. De instellingen UI vragen eerst `/v1/models` en valideren vervolgens het geselecteerde model met een lichtgewicht chatverzoek. Als de ontdekking mislukt maar de chat nog werkt, controleer of uw sleutel toestemming heeft voor modellijsten of of een gateway het weergeven van modellen blokkeert. + +Reasoning modellen worden behandeld als een protocolrandgeval: Notemd mengt systeem- en gebruikerspromptinhoud om OpenAI reasoning IDs te genereren die een apart `system` rol weigeren, en het exposeert `reasoningEffort` alleen waar de providerdefinitie dit ondersteunt. + +## Probleemoplossing + +- `401` of `403`: controleer de sleutel, projecttoegang, facturatoestand en of het geselecteerde model voor de sleutel is geactiveerd. +- `404` in chat: de Base URL is meestal verkeerd of bevat al `/chat/completions`. +- Het model verschijnt in de documentatie maar niet in de selector: toegang tot modellijsten en chattoegang zijn aparte foutpunten; test de exacte model-ID handmatig in het providerprofiel. +- Reasoning model weigert berichten: gebruik een model-ID die valt onder de OpenAI reasoning‑handleerroute of schakel over op een niet‑reasoning chatmodel. + +## Wanneer te gebruiken + +Gebruik OpenAI wanneer u de meest voorspelbare standaard gehoste route wilt, wanneer `/v1/models` ontdekking belangrijk is, of wanneer een workflow afhankelijk is van de OpenAI reasoning modelsemantiek. Gebruik liever een gateway of lokale provider wanneer routing, privacy of kostenbeheersing belangrijker zijn dan het directe OpenAI API gedrag. + +--- + +## Volgende stappen + +- [LLM Providers](/docs/providers/overview) -- Volledige configuratie, modellen per taak en herprobeerlogica +- [Troubleshooting](/docs/advanced/troubleshooting) -- Verhelp 401/403 en rate‑limit fouten diff --git a/website/i18n/nl/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/nl/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..293a323e --- /dev/null +++ b/website/i18n/nl/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "LLM Providers" +description: "36 LLM providers configureren — cloud, gateway en lokale — met modelselectie per taak" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# LLM Providers + +<TLDR> +**Notemd ondersteunt 36 LLM providers over 4 transporttypen.** Alle API oproepen gebruiken ruwe HTTP (geen SDK’s) met automatische herprobering, transportfallback en 5-minuten cache van antwoorden. Modelselectie per taak stelt je in staat om goedkope modellen te gebruiken voor conceptextractie en krachtige modellen voor onderzoek. Er is geen API sleutel nodig voor lokale providers (Ollama, LMStudio). +</TLDR> + +Dit maakt deel uit van de [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). + +## Provider Categorieën + +### Cloud Providers + +| Aanbieder | Standaard basis URL | Standaardmodel | Temperature | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### Gateway / Proxy Providers + +| Aanbieder | Standaard basis URL | Standaardmodel | Opmerkingen | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | Voegt `HTTP-Referer` + `X-Title` headers toe | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | Voegt `X-GitHub-Api-Version` header toe | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | Voegt `APP-Code` header toe | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | Optionele API sleutel | +| **Nieuwe API** | `localhost:3000/v1` | `gpt-4.1` | Optionele API sleutel | +| **OpenAI Compatible** | (door gebruiker ingesteld) | `your-model-id` | Aanpasbare eindpunt | + +### Chinaanse aanbieders + +| Aanbieder | Standaard Basis URL | Standaardmodel | Opmerkingen | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | Gericht op programmeren | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (endpoint ID vereist) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | Zhipu, China eindpunt | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | Zhipu, internationaal eindpunt | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | Platform voor het hosten van modellen | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao vereist een Ark eindpunt-ID** (formaat: `ep-xxxxxxxx-xxxx-xxxx`). De standaardplaceholder moet worden vervangen. + +### Lokale providers + +| Aanbieder | Standaard Basis URL | Standaardmodel | Opmerkingen | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | Geen API sleutel. NDJSON streaming. Ontdekking van modellen via `/api/tags` | +| **LMStudio** | `localhost:1234/v1` | `local-model` | Stuurt `"EMPTY"` als bearer token. OpenAI-compatibele ontdekking | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (door de gebruiker ingesteld) | `gpt-4o` | Naam van de deploy in URL. `api-key` header | + +## Modelselectie per taak + +Notemd ondersteunt een onafhankelijke provider en model voor elke taak. Schakel in met `useMultiModelSettings: true`. + +### Beschikbare taken + +| Taak | Instellingssleutel | Standaardprovider | +|------|-------------|-----------------| +| Links toevoegen (invoeging van wiki-link) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| Onderzoek (webzoekopdracht + samenvatting) | `researchProvider` / `researchModel` | DeepSeek | +| Genereren op basis van titel | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| Vertaling | `translateProvider` / `translateModel` | DeepSeek | +| Diagramgeneratie | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| Conceptuitwinning | `extractConceptsProvider` / `Model` | DeepSeek | +| Uitwinning oorspronkelijke tekst | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### Resolutieladder + +1. Als `useMultiModelSettings` is ingeschakeld → gebruik de provider en het model specifiek voor de taak +2. Als de taakmodeloverriding leeg is → ga terug naar het standaardmodel van de provider +3. Als de taakprovider ongeldig is → ga terug naar de globale `activeProvider` +4. Als `useMultiModelSettings` uitstaat → worden alle taken uitgevoerd met de globale `activeProvider` + +### Aanbevolen configuraties + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## API Oproeparchitectuur + +### Transportlagen + +1. **Obsidian `requestUrl`** — primair (ingebouwd, werkt op alle platforms) +2. **Desktop HTTP** — Node.js `http`/`https` modules (streaming + lange verzoeken) +3. **Web `fetch`** — fallback wanneer Node.js modules niet beschikbaar zijn + +De plugin schakelt automatisch over tussen transportmethoden bij tijdelijke netwerkproblemen. + +### Herhalingslogica + +- **Normale modus** (`enableStableApiCall: false`): Eén poging. Bij tijdelijk falen wordt automatisch overgegaan op een stabiele herhaling. +- **Stabiele herhalingsmodus** (`enableStableApiCall: true`): Tot 4 pogingen (1 + 3 herhalingen) met intervallen van 5 seconden. +- **Tijdelijke fouten die een herhaling triggeren**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **Niet herhaalbaar**: HTTP 400, 401, 403, 404 + +### Responscaching + +5-minuten LRU-cache in geheugen, gecodeerd op basis van provider + model + temperatuur + prompt + inhoud. Volgende identieke verzoeken binnen 5 minuten leveren onmiddellijk de opgeslagen resultaten op. + +### Behandeling van redeneringsmodellen + +Modellen die de `system` rol niet ondersteunen (DeepSeek R1, OpenAI o1/o3/o4/gpt-5) hebben automatisch systemen + gebruikersprompts gecombineerd tot één enkele gebruikersbericht. + +DeepSeek-specifiek: `thinkingEnabled` voegt `{ thinking: { type: 'enabled' } }` toe aan de verzoek. `reasoningEffort` (laag/middel hoog) wordt doorgegeven als `reasoning_effort`. Controleert of het maximale aantal uitvoertokens ≥ 8000 is wanneer denken is geactiveerd. + +### Token Schatting + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — heuristiek van 4 tekens per token. Wordt gebruikt om `maxResearchContentTokens` af te dwingen voordat het naar LLM wordt gestuurd. + +Er wordt geen kostenvolging geïmplementeerd. + +## Modelontdekking + +| Modus | Providers | Eindpunt | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | Lijst met modellen API | +| `anthropic-models` | Anthropic | Lijst met modellen API | +| `openai-compatible-models` | DeepSeek, Qwen, Mistral, enzovoort. | `/v1/models` | +| `openrouter-models` | OpenRouter | Lijst met modellen API | +| `github-models` | GitHub Models | Inferentie API | +| `none` | Azure OpenAI | Uitgeschakeld (vereist naam van implementatie) | + +## Snel Starten + +1. **Kies een provider** — DeepSeek (China), OpenAI (Internationaal) of Ollama (Lokal/Vrij) +2. **Voer API sleutel in** — Instellingen → Notemd → Provider → API Sleutel +3. **Test verbinding** — Klik op de testknop +4. **Optioneel: Modellen per taak** — Schakel `useMultiModelSettings` in en configureer ze afzonderlijk + +Voor Ollama: er is geen API‑sleutel nodig. Zorg er alleen voor dat `ollama serve` draait. + +--- + +## Volgende stappen + +- 📝 [Conceptnotities](/docs/features/concept-notes) — Gebruikt het extractiemodel per taak +- 🎨 [Diagrammen](/docs/features/diagrams) — Gebruikt het diagrammodel per taak +- 🔍 [Onderzoek](/docs/features/research) — Gebruikt het onderzoeksgerichte model +- ⚙️ [Configuratie](/docs/getting-started/configuration) — Volledige referentie van instellingen diff --git a/website/i18n/nl/docusaurus-theme-classic/footer.json b/website/i18n/nl/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/nl/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/nl/docusaurus-theme-classic/navbar.json b/website/i18n/nl/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/nl/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/no/code.json b/website/i18n/no/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/no/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/no/docusaurus-plugin-content-docs/current.json b/website/i18n/no/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/no/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/no/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/no/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..6a6af158 --- /dev/null +++ b/website/i18n/no/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "Batchbehandling" +description: "Behandle flere filer effektivt" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# Batchbehandling + +<TLDR> +**Notemd behandler hele mappeler i én handling med konfigurerbar samtidighet og kontroll over overskrivning.** Klikk høyre på en mappe for å batch-legge til wiki-linker, extrahere konsepter, gjennomføre forskning eller oversette alle notater inni. Samtidighetsbegrensninger forhindrer API-rate-limit-feil. Fortgangen rapporteres per fil. Overskrivingsverdien er konfigurerbar: skippe eksisterende, legge til eller ersatte. Fjellet filer registreres uten å avbryte batchen. + +Dette er en del av [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Oversikt + +Batchbehandling omvandler en mappe med notater til en enkelt handling. Istedenfor å åpne hver notat og kjøre kommandoen individuelt, klikker du høyre på mappen og velger oppgaven. Notemd ganger gjennom alle `.md`-filer, aplicerer den valgte handlingen og rapporterer fortgang i realtid. + +Dette funksjonen er essensiell for kunnskapsextraksjon i hele vaultet. Efter å importere desater av PDF-filer, for eksempel batch-legge til-linker etterpå batch-extrahere-konsepter, bygges din kunnskapsgraph på minutter fremfor timer. + +## Hvordan det fungerer + +### Batchutviklingsmodellen + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **Filsamling** -- Notemd skanner målmappen rekursivt (eller bare på toppnivå, avhengig av innstillingene) og samler inn alle `.md`-filer. +2. **Samtidighetsindeling** -- Filene delges inn i chunker basert på `batchConcurrency`-innstillingen. Hver chunk kjøres parallelt; chunkene kjøres sekventielt. +3. **Utvikling** -- Hver fil behandles med samme logikk som kommandoen for enkelt fil. Innstillinger for per-oppgave-provist og modell respekteres. +4. **Fortgangsrapportering** -- En toast-notifikasjon oppdateres etter hver fil er ferdig, og viser `N / Total`-fortgangen. +5. **Feilhantering** -- Dersom en fil feiler (API-feil, nettverkstidout osv.), registreres feilen og batchen fortssetter. Den endelige oppsummeringen listar alle fjellet filer. +6. **Ferdigstilling** -- En oppsummeringstoast rapporterer totalt behandlet antall, suksesser og feil. + +### Overskriveverdien + +Når en fil som allerede har wiki-linker, konseptnotater eller oversettelser behandles, avhenger Notemd's verdi av overskrivingsinnstillingen: + +| Modus | Verdien | +|------|----------| +| **Slett** | Den eksisterende innholdet blir ikke endret. Bare uendret filer behandles. | +| **Legg til** (standard) | Nytt innhold legges til. De eksisterende wiki-linkene, konseptene eller oversettelserne behandles. | +| **Endre** | Filen behandles fullstendig på nytt. Alle tidligere Notemd-endringer blir overskrive. | + +Spesifikt for wiki-linking: Hvis en notat allerede inneholder `[[wiki-links]]`, lar **Slett**-modusen den være som den er, mens **Endre** sender hele notaten til LLM for ny link-innsatt. Bruk **Slett** for inkrementell behandling og **Endre** for å behandle på nytt etter en modelloppgradering. + +### Konkurrenskontroll + +`batchConcurrency`-innstillingen begrenser parallele API-kaller. Dette forhindrer rate-limit-feil (HTTP 429) når store mappeler behandles mot leverandører med strakte kvoter. + +| Konkurrens | Anbefalt for | Typisk rate-limit-innflytelse | +|-------------|----------------|---------------------------| +| `1` | Kostnadsfrie planer, strikte leverandører | Ingen (seriell) | +| `3` (standard) | De fleste molnekostnadsleverandører | Lav | +| `5` | Ollama (lokalt), generøse planer | Ingen / Lav | +| `10` | Lokale modeller med snabb inferens | Ingen | + +Hvis du møter 429-feil under batchbehandling, redusér samtidighet til 1 eller 2. + +## Konfigurasjon + +| Innstilling | Standard | Effekt | +|---------|---------|--------| +| `batchConcurrency` | `3` | Maksimal parallell API-kall under mappoperasjoner | +| `batchOverwriteExisting` | `false` | Skriv over den eksisterende Notemd-innehållet. `false` = tilleggsmodus. | +| `batchSkipProcessed` | `false` | Hoppa över filer som redan inneholder Notemd-markører (f.eks. wiki-linker) | +| `batchRecursive` | `true` | Inkludere undermappar när man skanner mappen | +| `enableStableApiCall` | `false` | Aktivera gjenprøvlogik (opptil 4 forsök) per fil under batch-prosessen | + +### Per-Task-modeller i batch + +Hver batch-operasjon bruker den tilsvarende per-task-modellen. Batch-add-links bruker `addLinksProvider`, batch-research bruker `researchProvider`, osv. Dette betyr at du kan bruke billige modeller for operasjoner med stor volum og reservere dyre modeller for oppgaver som kræver høy kvalitet. + +## Eksempel + +Du har en mapp `papers/` som inneholder 40 importerte forskningsnotater. Du vil legge til wiki-linker og extrahere konsepper fra dem alle: + +1. Klikk høyre på mappen `papers/` +2. Välj **"Notemd: Process mapp (legg til lenker)"** +3. Notemd skanner mappen, finner 40 `.md`-filer og bearbeider 3 på gang (standardkonkurrens) +4. En fremstegsnotis viser: `12/40 files processed...` +5. Efter ca 3 minutter rapporterer en sammanfattingsnotis: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. Gjentak med **"Notemd: Process mapp (utvinne konsep)"** for å skape konseptnotater for alle 40 + +Den ene feilfulle filen registreres. Du kan kjøre påkalt bare på den filen senere. + +## Tips + +- **Start med lav konkurrens** -- Hvis du er usikker på din leverandørs hastighetsbegrensninger, start med `1` og øk gradvis. +- **Bruk skippmodus for inkrementelle oppdateringer** -- Efter den første fulla batchen, skift til `batchSkipProcessed: true` så bare nye notater bearbeides i fremtidige kjør. +- **Aktiver stabile API-kaller** -- `enableStableApiCall: true` legger til gjenkørslogik som återhæmtes fra tidsvisse nettverksfeil under lange batcher. +- **Kjør på nytt etter modelloppgraderinger** -- Hvis du skifter til en bedre modell, still på `batchOverwriteExisting: true` og kjør på nytt for å få bedre lenker og konsep. + +--- + +## Neste trinn + +- [Workflows](/docs/features/workflows) -- Koble batchoppgaver til én-klikk-sidemenuknapper +- [Custom Prompts](/docs/advanced/custom-prompts) -- Anpass prompter for batchutvinning +- [Troubleshooting](/docs/advanced/troubleshooting) -- Fikse hastighetsbegrensingsfeil og koblingsfeil under batchkjøringer +- [LLM Tjänsteleverantörer](/docs/providers/overview) -- Referens för modellkonfiguration per uppgift diff --git a/website/i18n/no/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/no/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..de57951b --- /dev/null +++ b/website/i18n/no/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "Skrivetilpassede prompter" +description: "Tilpasse LLM promptene til dine behov" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# Skrivetilpassede prompter + +<TLDR> +**Notemd gjør det mulig å overskrive den standard LLM prompten for hver typ av oppgave.** Skrivetilpassede prompter gir deg kontroll over hva modellen prioriterer: du kan begrense konseptutvinning til en spesifikk disciplin, endre koblingsstilen eller rette om oversettelsestonen. Promptvariabler som `{{content}}` og `{{concept}}` erstattes ved kjøring. Funktionaliteten for fokusert læring domener legger til din studieområde for å automatisk begrense utvinningresultatene. + +Dette er en del av [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Oversikt + +De innebygde promptene for Notemd er skrevet for allmennbrukskunnskapstjenester. De fungerer godt over ulike domener, men de lar også rom for tilpasninger spesifikt for en domen. Skrivetilpassede prompter lar deg si til LLM nøyaktig hvordan den skal handle for din brukssituasjon – enten det handler om å utvinne kun medisinsk terminologi, kun navngitt entiteter eller oversette i en formell stil. + +Skrivetilpassede prompter er ikke en ersättning for hele systemprompten. De overskriver eller tilbyr ytterligere informasjon i **oppgavespesifiske instruksjonsdeler** samtidig som de bevarer den strukturelle utdataformaten (f.eks. `CONCEPT:`-linjer, wiki-koblingssyntax) som Notemd trenger for å parse. + +## Hvordan det fungerer + +### Promptarkitektur + +Hver Notemd-oppgave følger samme promptstruktur: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **Grunnsystemprompt** -- Setter assistentens persona. Uoverskrivelig. +2. **Fokusert læring domener** -- Legger til `Relevant Fields: [medicine / law / computer science / ...]` for å begrense omfanget. Dette er en slå-av-knapp, ikke en raw prompt. +3. **Skrivetilpasset oppgaveprompt** -- Ersetter de standardoppgav instruksjonene (f.eks. hvilke konsepter som skal utvinnes, hvor aggressivt man skal koble). +4. **Utdataformat** -- Strukturelle regler (`CONCEPT:`-linjer, wiki-koblingsformat). Alltid lagt til av Notemd for å sikre parsebarhet. +5. **Innehold** -- Den faktiske teksten, erstattet ved kjøring gjennom `{{content}}`. + +### Promptvariabler + +Variabler erstattes ved utføringstid. Tilgjengelige variabler varierer etter oppgave: + +| Variable | Oppgaver | Erstatte med | +|----------|-------|---------------| +| `{{content}}` | Alle | Notatet eller valgt tekst | +| `{{concept}}` | Mall for konseptnotat | Det extraherte konseptnavnet | +| `{{description}}` | Mall for konseptnotat | Beskrivelse av konsept generert av LLM | +| `{{backlinks}}` | Mall for konseptnotat | Liste over kilde-notater med lenker | +| `{{date}}` | Mall for konseptnotat | Dagens dato (YYYY-MM-DD) | +| `{{language}}` | Oversettelse | Mål-språk for utdata | +| `{{source}}` | Mall for konseptnotat | Basenavn på kilde-notaten | + +### Fokusert læringssområde + +Funktionen for fokusert læring er en genväg til å definere område. Istedenfor å skrive en egenskapt innlegg som nevner ditt felt, setter du `focusedLearningDomain` i innstillingene: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +Dette fører inn `Relevant Fields: [medicine]` i utvinningsspørsmålet, noe som får LLM til å prioritere konsepknyttet til domenet og undertrykke generiske konsep. Det er lettere enn en fulle, egne spørsmålsskema og fungerer for alle utvinningstegninger. + +## Konfigurasjon + +| Innstilling | Standard | Effekt | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | Överskriv standardinnstillingen for oppgavebeskjedet ved å legge til lenker | +| `customExtractConceptsPrompt` | `''` | Överskriv standardinnstillingen for konseptutvinning | +| `customResearchPrompt` | `''` | Överskriv standardinnstillingen for forskning + sammanfatta innkall | +| `customTranslatePrompt` | `''` | Överskriv standardoversettelsesprompten | +| `customDiagramPrompt` | `''` | Överskriv standardinnstillingen for diagramgenerering | +| `focusedLearningDomain` | `''` | Først tilføyg disciplinkontekst til utvinning- og koblingsoppgaver | +| `extractConceptsMinimalTemplate` | `true` | Bruk kun titell-innehåndsnotat-mallen (hvorfor det påvirker `{{concept}}`-mallens omfang) | +| `customConceptNoteTemplate` | `''` | Överskriv mallen for konseptnotat-filen med full støtte for variabler | + +**Når et egent skrivefelt er tomt, brukes den innebygde standardinnstillingen.** + +## Eksempel + +Du er en medisinsk forsker som tar ut konsepter fra protokoller for kliniske prøver. Den standardmæssige instruksjonen tar ut generelle substantiver sammen med medisinske termer, hvilket overflader din konsepmapp. + +**Løsning:** Ställ in en fokusert læringdomen og en anpasset utvinningsspørsmål. + +1. Ställ in `focusedLearningDomain` på `medicine` +2. Ställ in `customExtractConceptsPrompt` til: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +Nå når du kjører "Extract concepts" på en klinisk notat, genererer LLM: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +I stedet for den standardverdien som også kan extrahere uønskede generiske termer som "hospital" eller "month". + +## Tips + +- **Start med den fokuserte læringdomenet** før du skriver en fullstendig brukerskreddersydd prompt. Det dekker 80% av brukemålene med én innstilling. +- **Bevar utdataformatet** -- Fjern aldri formatinstruksjoner som "one per line" eller "CONCEPT: prefix" fra brukerskreddersyddede prompter. Notemd's parser er avhengig av dem. +- **Prøv først med en enkelt notat** -- Brukerskreddersyddede prompter kan ha uforutsette effekter på utvidelsen av extraksjonen. Sjekk på én notat før batchbehandling. +- **Hold promptene kort** -- Overlang brukerskreddersyddede prompter bruker tokener og kan forsvakte modellenes fokus. + +--- + +## Neste trinn + +- [Wiki-Links](/docs/features/wiki-links) -- Vad som kobles sammen når du anpasser add-links prompten +- [Concept Notes](/docs/features/concept-notes) -- Konseptnotattempler og `{{concept}}`-variabelen +- [Batch Processing](/docs/advanced/batch-processing) -- Bruk brukerskreddersyddede prompter på hele mappene +- [Troubleshooting](/docs/advanced/troubleshooting) -- Løs problemer der brukerskreddersyddede prompter gir uforutsett utdata diff --git a/website/i18n/no/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/no/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..c3ac63ef --- /dev/null +++ b/website/i18n/no/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "Feilforskning" +description: "Vanlige problem og løsninger" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Feilforskning + +<TLDR> +**De fleste Notemd problemene faller inn i fire kategorier: API hovedproblemer, nettverksforbindelse, autentifiseringsfeil (401/403) og hastighetsbegrensninger (429).** Den innebygde forbindelsesprøven og diagnostikkpanelen identifiserer grunnorsaken raskt. Dette sidet dekker alle vanlige feilmeldinger, deres orsak og løsning. For problem som ikke er oppgitte her, rapportér dem på GitHub Issues med diagnostikkresultatene. + +Dette er en del av [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Oversikt + +Notemd avhenger av eksterne tjenester -- LLM leverandører og søke API-verktøyer -- så de fleste problemene oppstår utenfor pluginet selv. Diagnostikkpanelen i innstillingene gir en strukturert oversikt over den siste API kallen, inkludert forespørselen URL, svarstatusen og feilmeldingen. Sjekk alltid dette før du undersøker videre. + +## Hvordan det fungerer: Diagnostikk + +### Forbindelsesprøve + +Hver konfigurasjonsseksjon for leverandører har en **"Prøv forbindelse"**-knapp. Ved å klikke på den sendes en minimal API forespørsel (vanligvis en modellliste eller en kort komplettering) og det rapporteres om succes eller spesifikt HTTP feil. Dette er den raskeste måten å verifisere at din API-nyckel og grunn URL er korrekte. + +### Diagnostikkpanelen + +**Innstillinger --> Notemd --> Diagnostikk** viser: + +| Felt | Innehold | +|-------|---------| +| Siste leverandør | Hvilken leverandør ble kalt senest | +| Siste modell | Hvilken modell ble kalt senest | +| Siste status | HTTP statuskod eller overførselsfeil | +| Siste feil | Rå feilmelding fra API | +| Siste forespørsel URL | Fullständig URL av den siste forespørselen (redigeret API-nyckel) | +| Siste svarsteksten | Trunkert svarstørrelse (de første 500 tegnene) | + +Kopier hele diagnostikutdataene når du rapporterer problemer på GitHub. + +## Vanlige feil + +### API Nyckel ugyldig eller fråmløs + +**Symptom:** HTTP 401 eller “Ukorrekt API-nyckel fornød” + +**Orsak:** API-klaven er fråmløs, inneholder mellomrom, eller tilhører en annen leverandør. + +**Løsning:** +1. Kontrollera om nyckeln har ingen ledende/avslutande mellomrom +2. Kontroller om nøkken stemmer med den valgte leverandøren (en OpenAI-nøkkel vil ikke virke med Anthropic) +3. Kontroller at kontoet din har kreditter eller en aktiv abonnement +4. Klikk på **"Test Connection"** for å verifisere + +### Netværks-/forbindelsesfeil + +**Symptom:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**Orsak:** API-endpunkten er uerreichelig fra maskinen din. + +**Løsning:** +1. Kontroller internettforbindelsen din +2. Hvis du er bak en proxy eller firewall, sjekk at API-domenet ikke er blokkert +3. For Ollama: bekreft at `ollama serve` kjører (`ollama list` bør returnere modeller) +4. For LMStudio: bekreft at serveren kjører på `localhost:1234` +5. Prøv en annen transport – mobilbrukere bør sikre at `requestUrl`-transporten er aktiv +6. Aktiver `enableStableApiCall` for automatiske endprøver ved tidsvis feil + +### 403 Forbudt + +**Symptom:** HTTP 403 + +**Orsak:** API-nykkelen din er gyldig men har ikke tillatelse til den forespurtte ressursen. + +**Løsning:** +1. Nåkevek modeller krever spesiell tilgang (f.eks. GPT-4 via Azure krever en deployeringsnavn) +2. Nåkevek leverandører begrenser modeller etter plangrad – kontrollér din konto +3. Regionale begrænsninger kan gælde (nåkevek kinesiske leverandører blokerer internationale IP-adresser og omvendt) +4. Kontroller, at modellnavnet staves korrekt (f.eks. `gpt-4o` ikke `gpt-4o-mini` når mini-modellen er alt, din plan tillader) + +### Rate Limit (429) + +**Symptom:** HTTP 429 eller "Rate limit exceeded" + +**Cause:** For mange anmodninger i en kort tidsperiode. + +**Fix:** +1. Redukér `batchConcurrency` til `1` eller `2` +2. Vænt med et par minutter før du prøver igen +3. Kontroller leverandørens dokumentation om rate limit for din plangrad +4. Aktiver `enableStableApiCall` for automatisk gennemprøvning med backoff +5. Overvej at skifte til en leverandør med højere limiter (DeepSeek, Ollama) + +### Model Not Found + +**Symptom:** "Model not found" eller HTTP 404 + +**Cause:** Modellnavnet eksisterer ikke hos den valgte leverandør. + +**Løsning:** +1. Klikk **"Få modellliste"** for å se alle tilgjengelige modeller for din leverandør +2. Nokkele modellnamn endres med tiden -- sjekk den aktuelle namnet i leverandørens dokumentasjon +3. For Ollama: kjør `ollama list` for å se de pullte modellene; kun nedlastede modeller er tilgjengelige + +### Ingen lenker / ingen konsep generert + +**Symptom:** Kommandoen kjøres men gir ingen utdata + +**Orsak:** LLM returnerte en tom eller uoppsummerbar svar. + +**Løsning:** +1. Sjekk diagnostikkpanelen for den faktiske LLM-svaret +2. Prøv en mer kapabel modell (nokkele små modeller har svært med strukturert utdata) +3. Sørg for at noten har tilstrekkelig innhold (>50 ord) +4. Gjennomgå din egne prompt for konfliktende instruksjoner +5. Deaktiver tilfelle synonymsuppresjon tidsvis for å se om den filtrerer for aggressivt + +### Doubao Endpoint ID sakket + +**Symptom:** Feil når man bruker ByteDance Doubao-leverandøren + +**Orsak:** Doubao krever en Ark endpoint ID (format: `ep-xxxxxxxx-xxxx-xxxx`) istedenfor en modellnamn. + +**Løsning:** Bytt ut den standardmæssige placeholder-modellen med din egentlige endpoint-ID fra Volcengine-konsollen. + +## Konfigurasjon + +| Diagnostisk innstilling | Plassering | Formål | +|--------------------|----------|---------| +| **Prøv forbindelse** | Innstillinger --> Provider-avsnitt | Kontroller tidligere API-nyckel og forbindelse | +| **Få modellliste** | Innstillinger --> Provider-avsnitt | Kontroller hvilke modeller som er tilgjengelige | +| `enableStableApiCall` | Innstillinger --> Avansert | Aktiver gjenforsøk med backoff | +| `batchConcurrency` | Innstillinger --> Batch | Styr parallellitet for å unngå rate-limiter | + +## Hvernig man rapporterer problemer + +Dersom ditt problem ikke er dekket ovenfor: + +1. Åpne **Indstillinger --> Notemd --> Diagnostikk** +2. Kopiere hele diagnostikkutdataene +3. Åpne en GitHub-issue på [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +4. Inkludere: Obsidian versjon, Notemd versjon, leverandør, modell, diagnostikkutdata og trinn for å reproducere problemet +5. Rediger ut din API-knytte fra alle delte loggfiler + +--- + +## Neste trinn + +- [LLM Leverandører](/docs/providers/overview) -- Full referanse for leverandørkonfigurasjonen +- [Batch Processing](/docs/advanced/batch-processing) -- Konkurrens og gjenprøfsettinger for store operasjoner +- [Custom Prompts](/docs/advanced/custom-prompts) -- Fikser uforutsett LLM-beteende ved å justere promptene diff --git a/website/i18n/no/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/no/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..efcf8380 --- /dev/null +++ b/website/i18n/no/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "Vanligst stillede spørsmål" +description: "Vanlige spørsmål om installation, funksjoner og bruk av Notemd" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# Vanligst stillede spørsmål + +<TLDR> +**Snabbe svar på de vanligste Notemd-spørsmålene.** Dekker installation (5 minutters innstilling), støtte for 30+ LLM-tjener, lokale/cloud-modellvalg, en-klikk-arbeidsfluer, multilingvalt UI (21 språk), automatisering av wiki-linking, integrasjon med forskning, PDF-leserarbeidsfluer, diagramgenerering og lisensiering under open source. Alle funksjoner virker offline med Ollama. +</TLDR> + +--- + +## Installation og innstilling + +### Hvor installerer jeg Notemd i Obsidian? + +Åpne Obsidian **Settings → Community Plugins → Browse** → søk **"Notemd"** → **Install** → **Enable**. + +**Krav:** +- Obsidian 0.15.0+ +- Støttet på desktop (Windows, macOS, Linux) og mobil (iOS, Android) + +**Manuell installation:** +1. Hent `main.js`, `styles.css`, `manifest.json` fra [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) +2. Plasser dem i `<your-vault>/.obsidian/plugins/notemd/` +3. Lad om Obsidian og aktiver pluginet + +**Statistikker:** 4k+ nedlæggelser, 44 utgivelser, MIT-lisensiert. + +--- + +## LLM Konfigurasjon + +### Hva er de LLM tilbudsgivere Notemd støtter? + +Notemd støtter **30+ tilbudsgivere**: + +**Muligheter for cloud-tilbud:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonnet, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**Fokusert på Kina:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**Lokal/selv-hostet:** +- Ollama +- LM Studio +- Alle OpenAI-kompatible endpointer + +**Gatewayer:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models, Fireworks, LiteLLM, Nebius, Cerebras +- Hugging Face, Vercel AI Gateway, Requesty + +### Kan Notemd virke med lokale LLMs? + +**Ja, fullt støttet.** Notemd virker med: +- **Ollama** (innbygd integrasjon) +- **LM Studio** (gjennom OpenAI-kompatibelt endpoint) +- **vLLM, LocalAI, text-generation-webui** (gjennom OpenAI-kompatibel modus) + +Alle oppgaver fungerer med lokale modeller: kobling, konseptgenerering, oversettelse, forskning og diagramgenerering. + +**Eksempel på blanding:** +- Ollama (lokalt) for kobling → rask, privat, kostnadsfri +- OpenAI for forskning → høy kvalitet, integrasjon med websearch +- Gemini for oversettelse → multimodal støtte + +### Hvorfor konfigurerer jeg ulike modeller for ulike oppgaver? + +I **Notemd Settings** har hver oppgave uavhengige valg for leverandør/modell: + +| Oppgave | Eksempel på konfigurasjon | +|------|----------------------| +| **Kobling** | DeepSeek (snabb, billig) | +| **Konseptgenerering** | Claude Opus (høy kvalitet) | +| **Forskning** | Perplexity eller GPT-4o (web-basert) | +| **Oversettelse** | Gemini Flash (multimodal) | +| **Diagramgenerering** | Ollama (lokalt, privat) | + +Dette optimaliseringen per oppgave balanserer hastighet, kostnad og kvalitet. + +--- + +## Kjernefunksjoner + +### Hvordan skiller Notemd seg fra ChatGPT for papirklassing? + +| Dimensjon | ChatGPT | Notemd | +|-----------|---------|--------| +| **Utdatasted** | Chathistorik (temporær) | Obsidian vault (pERSISTENT filer) | +| **Resultatformat** | Tekstsvare | Wiki-linker, konseptnotater, diagrammer, oversettelser | +| **Langtidsverdien** | Forsvinner etter sesjon | Akumuleres i kunnskapsbasen | +| **Endringelig bruk** | Må spørre om igjen | Filene holder seg, lenkene endres | + +**Bruk ChatGPT for:** Snabbe Q&A, enkeltforklaringer +**Bruk Notemd for:** å bygge en pERSISTENT, strukturert kunnskapsbas over uker/måneder + +### Hvordan legger Notemd til wiki-linker i notater? + +**Prosessen:** +1. Du kjører "Process file (add links)" på en note +2. Notemd sender teksten til din konfigurerte LLM +3. Den LLM identifiserer viktige konsepter i konteksten +4. Notemd setter inn `[[wiki-links]]` ved hver oppførelse av et konsept +5. Valgfritt kan det automatisk skape konseptnotater i en mapp du angir + +**Funksjoner:** +- Synonymsuppresjon (unngår duplikater som "transformer" vs "transformers") +- Backlinks fra konseptnotater til kilden +- Linkintegritet ved endre/nøkkelbortskaffing +- Ren utvinningstilstand (utvinner konsepter uten å endre det opprinnelige) + +### Hva er Notemd en-klikk-arbeidsflussen? + +**En-klikk-arbeidsflusser** kobler flere handlinger til en **enkelt sidebarknapp**. + +**Standardarbeidsfluss:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**Resultat:** En klick kjører: +1. Legg til wiki-linker til den aktuelle notaten +2. Generer konseptnotater for nye termer +3. Forske og legg til bakgrunn +4. Komprimer til en Mermaid diagramm + +**Skrivet arbeidsfløyer:** Definér dine egne i Innstillinger med DSL-formatet. Hver arbeidsfløye blir en brukbar sidebarknapp. + +### Hvordan sammenligner Notemd seg med Copilot eller Smart Connections? + +Disse pluginene løser ulike problem: + +- **Copilot** — Samtale først. Du chatterer med en AI om dine notater. AI-svarene forblir i chattpanelen; de endrer ikke din vault. +- **Smart Connections** — Oppdagelse først. Den finner semantisk liknende notater med hjelp av embeddings. Den skaper eller endrer ikke innhold. +- **Notemd** — Skrivning først. AI bearbeider dine notater og skriver strukturert resultat (wiki-linker, konseptnotater, forskning, diagrammer, oversettelser) direkte inn i din vault som permanente filer. + +| Vad du trenger | Anbefalt plugin | +|----------------|-------------------| +| Chatter med AI om notater | Copilot | +| Finne liknende/relaterte notater | Smart Connections | +| Auto-innsatt wiki-linker og bygge en kunnskapsgraph | **Notemd** | +| Generere konseptnotater med baklinker | **Notemd** | +| Skape diagrammer fra notatinnhold | **Notemd** | +| Undersøk en tema og legg til oppsummeringer | **Notemd** | + +Alle tre kan brukes sammen – de kompletterer hverandre fremfor å konkurrere. + +--- + +## Undersøkelse & Oversettelse + +### Hva for søke-tjenester fungerer med Notemd-undersøkelse? + +| Tjeneste | **API** nødvendig | Kvalitet | Notater | +|---------|-----------------|---------|-------| +| **Tavily** | Ja | Høy | Anbefalt, AI-optimalisert søk | +| **DuckDuckGo** | Nei | Pilotprosjekt | Ingen innstilling, lavere kvalitet | + +**Hvordan "Research & summarize" fungerer:** +1. Du velger et tema eller kjører det på den aktuelle noten +2. Notemd sender forespørsler til søke-tjenesten +3. Resultater → LLM sammanfattelse +4. Sammanfattelsen legges til i din note med kilder + +**Resultat:** En permanent forskningsspor i din vault, ikke i nettleser-skjermene. + +### Støtter Notemd kinesisk eller andre språk? + +**UI språk:** 21+ støttet +- Engelsk, 中文 (简体), 中文 (繁體), 日本語, 한국어 +- Arabisk, tysk, fransk, spansk, russisk, portugisisk, italiensk +- Hindi, bengalsk, thailandsk, vietnamesisk, tyrkisk, polsk, tsjekisk og mer + +**Språk for oppgavutslipp:** Uavhengig konfigurasjon +- UI på kinesisk + utslipp på engelsk: ✅ +- UI på engelsk + utslipp på kinesisk: ✅ + +**Bruksfall:** Bilingual forskere kan bruke UI i det mottatte språket mens de genererer engelske noter for publisering. + +--- + +## PDF og akademiske arbeidsflyt + +### Kan jeg bruke Notemd for å lese artikler/PDF? + +**Ja.** Arbeidsflyt: +1. **Konverter til Markdown** med [MinerU](https://github.com/opendatalab/MinerU) (anbefalt for akademiske artikler) +2. Åpne Markdown-filen i Obsidian +3. Kør Notemd-oppgaver: + - **Legg til wiki-linker** til viktige termer + - **Generer konseptnotater** for ukjente terminologi + - **Ekstraher opprinnelig tekst** gjennom egne spørsmål (f.eks. "Hva er begrensningene?") + - **Søk ut bakgrunn** for citerte metoder/datasetter + - **Oversette** svære avsnitt + - **Komprimere til Mermaid**-diagram for strukturell forståelse + +**Version 1.9.1+:** Ekstraksjon av kapittelstruktur med TOC-støtte + +**Resultat:** Din artikkellesning blir en strukturert, linkbar kunnskapsartifakt i din vault. + +--- + +## Diagrammer og visualisering + +### Hva for graf/diagrammtyper kan Notemd generere? + +| Typ | Støtte | Funksjoner | +|------|---------|----------| +| **Mermaid** | Fullt | Flødesskjema, sekvens, klass, tilstand, ER, Gantt, sjelfkorrigering av syntax, batchvalidering | +| **JSON Canvas** | Fullt | Obsidian-eigene layouter for målretning | +| **Vega-Lite** | Fullt | Datagrafikker, tidsserier, stavegrafikker, sprøytegrafikker, anpasselig | +| **HTML** | Fallback | For diagramtyper som ikke støttes | +| **Editabel HTML/SVG** | Eksplicit mål | Selvstendig inline SVG med semantiske Draw.io-stil annotasjoner | +| **Draw.io / Drawnix artefakter** | Eksporgrænse | Deterministisk XML/JSON fra `SemanticFigureModel`; ingen avhengighet fra redigeringsprogrammet under køring | + +**Mermaid auto-fix:** Gjennomgående feilretting i dyptdebug-modus: +- Brute piler (`-->`, `-.->`, `==>`) +- Ugyldige etiketter, kommentarer +- Syntaxfeil i undergraf +- Formfornotasjon (`[`, `(`, `{`, `((`) +- Pipel-tegn i etiketter +- Notat-filer + +**Arbeidsfluss:** +1. Kør "Summarize as Mermaid diagram" på en notat +2. Vis forhandsvisning i modalvindu +3. Ekspor til SVG eller PNG +4. Eller gemm som `.mmd`-fil i vault + +--- + +## Open Source & Community + +### Er Notemd kostnadsfri og open source? + +**Ja.** +- **Lisens:** MIT (permissiv, kommersielt bruk tillatt) +- **Kildekod:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **Ingen betalt planer, ingen cloud-lock-in, ingen telemetry** +- **Community:** 234+ GitHub-stjerner, aktiv Discord + +**Du eier:** +- Dina data (står i din vault) +- Dine arbeidsfluer (anpassa prompter, modeller, kedjer) +- Din privatlivspolitik (lokalt LLM-støtte) + +**Bidra:** Pull requests er velkomne. Se [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +## Feilforskning + +### Mina LLM-kaller feiler. Hva bør jeg kontrollere? + +1. **Er API-nytelsen gyldig?** Kontroller Settings → Provider Configuration +2. **Er modellnavnet riktig?** Bruk knappen "获取模型列表" (Get Model List) i innstillingene +3. **Er nettverket tilgjengelig?** Nåklevere krever VPN +4. **Hastelimiteringar?** Sjekk leverandørens dashboard +5. **Diagnostikk:** Kør "Connection Test" i innstillingene for detaljerte feilmeldinger + +### Notemd er langsom. Hvor kan jeg hastegjøre det? + +1. **Bruk hastere modeller:** DeepSeek, Gemini Flash, GPT-4o-mini +2. **Redusér chunk-størrelsen:** Innstillinger → Smart Chunking → redusert ordantall +3. **Parallel bearbeidelse:** Innstillinger → Batch Processing → økt samtidighet +4. **Lokale modeller:** Ollama for oppgaver som ikke trenger websearch + +### Kan Notemd virke 100% offline? + +**Ja, med Ollama.** Ingen API-nyckel, ingen internett, ingen data leaves your machine: + +1. Install [Ollama](https://ollama.com) og kjør `ollama serve` +2. I Notemd-innstillingene, velg **Ollama** som din leverandør +3. Hent en modell: `ollama pull llama3` (eller qwen2.5, gemma2, osv.) +4. Alle funksjoner virker: wiki-links, concept notes, oversettelse, diagrammer + +**DuckDuckGo-forskning** fungerer også uten API-nyckel (eksperimentell kvalitet). + +Med cloudleverandører (OpenAI, Anthropic, Google, DeepSeek, osv.) sendes din notekontent som API-innhold. Sjekk hver leverandørs privatlivspolitikk for detaljer om datahantering. + +### Er mine data sendt til molnet? + +**Det avhenger av din leverandør:** + +| Typ for leverandør | Sendes data til molnet? | Notater | +|--------------|---------------------|-------| +| **Ollama (lokalt)** | Nei | Allt forblir på din maskin | +| **LMStudio (lokalt)** | Nei | Slik som Ollama | +| **DeepSeek, OpenAI, osv.** | Ja | Obs: Inholdet sendes som API-innhold for bearbeidelse | +| **OpenRouter, AIHubMix** | Ja | Gateway som dirigerer til molnetillbydere | + +Notemd samler selv **ingen telemetri, ingen analytikk, ingen brukerdata**. Pluginet er fullstendig åpen kilde (MIT). Den eneste datan som kommer fra din maskin er det du uttrykkelig sender til din konfigurerte LLM-tilbyder. + +### Hvilket Obsidian AI-plugin er best for forskning? + +Det avhenger av din forskningsprosess: + +| Behov | Plugin | Hvorfor | +|------|--------|-----| +| Finne relevante artikler/merknader | Smart Connections | Oppdagelse av semantisk likhet | +| Chatt om dine kilder | Copilot | Konversasjon med vault-kontekst | +| Automatisk kobling av konsepker + generering av merknader | **Notemd** | AI identifiserer konsepker, setter inn lenker og skaper merknader | +| Web-research + sammanfattning til merknader | **Notemd** | Tavily/DuckDuckGo søk → LLM oversikt → lagt til i notaten | +| Generere diagrammer fra forskning | **Notemd** | Mermaid/Canvas/Vega-Lite fra innholdet i notaten | + +**Anbefalt kombinasjon:** Smart Connections (oppdagelse) + Notemd (strukturering) + Copilot (diskusjon). + +--- + +## Få hjelp + +- **Dokumentasjon:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **GitHub Issues:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **Sponsor:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/no/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/no/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..6fddfcd4 --- /dev/null +++ b/website/i18n/no/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "Konseptnotater" +description: "Generer og administrere konseptnotater – uavhengige notater for nøkkelkonsepter som er utvidet fra din vault" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# Konseptnotater + +<TLDR> +**Notemd tar ut nøkkelkonsepter fra dine notater og skaper uavhengige konseptnotatfiler.** LLM identifiserer kjentegn, genererer én `.md` fil per konsept i en konfigurerbare mappe, og kan tilfeldigvis legge til baklenger til den opprinnelige notaten. Støtter synonymsuppresjon, valg av modell per oppgave, sanitering av filnamn og en 4-trinnig deduplikasjonsmotor. Dette er en del av [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Oversikt + +Konseptnotater er byggstenene i en koblet kunnskapsbas. Når du bearbeider en notat, Notemd: + +1. **Sender din tekst til en LLM** med en strukturert utvidingsprompt +2. **Parserer `CONCEPT:` linjer** fra LLM svar +3. **Skaper én `.md` fil per konsept** i en bestemt mappe +4. **Legger til baklenger** til den opprinnelige notaten (hvis aktivert) + +## Hvordan det fungerer + +### Utvidingspipeline + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### Utvidingsprompten + +LLM mottar en prompt som instruerer det til å: + +- Utvidle **substantiver eller substantivphrase** som er sentrale for dokumentets tema +- **Prioritere spesifisitet** – "Dielectric Relaxation" fremfor "Relaxation" +- **Normalisere til singular** – "models" blir "model" +- **Suppresjon av underkonsepter** – hvis "dielectric relaxation" aparerer, utvidle ikke også "relaxation" +- **Slett** referanser/bibliografiavsnitt, vanlige substantiver, selskaps-/produktnavn +- Utskriv én konsept per linje som `CONCEPT: Term Name` + +**Undertrykk synonymer** (valgfritt): førstegjør "Unngå å extrahere synonymer, semantisk liknende kjernekonsepter eller nøkkelord når mulig" til oppgaven. + +**Fokusert læringdomen** (valgfritt): førstegjør `Relevant Fields: [domain]` for å begrense extraksjonen til en disciplin. + +**Språksoverstilling** (valgfritt): lagter til "Utskrivekonseptene MÅ være på [språk]." + +### Deling i deler + +Lange notater delges med `settings.chunkWordCount`. Hver del sendes separat. Konseptene fra alle deler samles inn i en `Set` — duplikater mellom deler fjernes tyst. LLM-feil i enkelte deler stopper ikke prosessen. + +## Skapelse av konseptnotater + +### Regler for filnamn + +| Regel | Verdien | +|------|----------| +| Strikker/underskriver | Erstattes med rom | +| Spesielle tegn | Fjernet: bakstrig, fremstrig, kolon, stjjerne, spørsmålstecken, kutter, hornbracker, rør, hash, caret, bracker | +| Whitespace | Kollapsert og trimmet | +| Maksimal lengde | 100 tegn (klippet + endret til lengde) | +| Tomt/all-punktresultat | Ignoreret i stilhed | + +Eksempel: `A-B: Key*Term` blir `A B KeyTerm.md` + +### Mallar + +**Fullt mall** (baklinker aktivert, minimal mall av): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**Minimalt mall** (når `extractConceptsMinimalTemplate: true`): + +```markdown +# Concept Name +``` + +### Oppdatering av eksisterende notater + +Når en konseptfil allerede eksisterer: + +1. Hvis baklinker er aktiveret og kilden ikke allerede er oppgitte, tilføyg en baklink +2. Hvis en `## Linked From`-seksjon eksisterer, førställ den før næste `##`-overskrift +3. Hvis det ikke finnes noen `## Linked From`, tilføyg en sekvensjon i slutten +4. Dupliserte baklinker blir kontrollert og oversettet + +### Konfigurasjon + +| Innstilling | Standard | Effekt | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | Hovedslått på/slett. Slått av = ingen notater skapt | +| `conceptNoteFolder` | `''` (inaktiveret) | Mappvei for konseptnotater | +| `extractConceptsMinimalTemplate` | `true` | Notater med bare titel (ingen Linked From) | +| `extractConceptsAddBacklink` | `false` | Legg til baklenger under fristående extraksjon | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | LLM per oppgave for konseptextraksjon | +| `extractConceptsLanguage` | `'en'` | Utdata-språk for konseptnamn | +| `replaceSynonymsDuringConceptExtraction` | `false` | Aktiver synonymsuppresjon i prompten | +| `generateConceptLogFile` | `false` | Skriv en `.log`-liste over skapte konsepter | + +**Viktig:** Innstillingene `extractConceptsAddBacklink` og `extractConceptsMinimalTemplate` påvirker kun **den dedikerte extraksjonskommandoen**. Kommandot "Legg til linker" skaper alltid notater med fullt mall og baklenger. + +## Deduplisering + +Dedup-kommandot (`Notemd: Check & remove duplicate concept notes`) utfører en 5-trinnig analyse: + +### Trinn 1: Nøyaktig filnavnsmatch + +Jegnskiftsløs sammenligning av basnamn innenfor konfigurert område. + +### Trinn 2: Deteksjon av pluralform + +Fjerner suffixer: `-ies` til `-y`, `-es` fjernet, `-s` fjernet. Sammenligner singularformen med filene i området. Hanterer ikke uregulære pluraler (children/child). + +### Trinn 3: Normalisering av symboler + +Gelder for: `toLowerCase()`, erstatt hypper-/understreker med mellomrom, fjerne ikke-alfanumeriske tegn, samle sammen mellomrom. Elementer som normaliseres på samme måte mærkes. + +### Trinn 4: Enordig innehold + +Enordige konseptnotater kontrolleres mot basenavner for flere ord. Kjøres ikke når området er `concept_folder_only`. + +### Trinn 5: Bekreftelse og slettning + +Alle kandidater vises i en bekreftelsesmodus. Godkjente elementer flyttes til systemets skrappemappe. Operasjonen kan annulleres mellom hver slettning. + +### Områdemoder + +| Modus | Jegløres mot | +|------|-------------------| +| `vault` (standard) | Alle `.md`-filer i vaultet utenfor konseptmappen | +| `concept_folder_only` | Ande konseptnotater innenfor mappen | +| `include` | Filer i spesifikke oppgitte mapper | +| `exclude` | Alle vaultfiler utenfor konseptmappen + oppgitte mapper | + +## Bruk + +### Ekstraher konsepter (Standalone) + +1. Åpne en notat +2. Kør **"Notemd: Ekstraher konsepter"** fra kommandoPaletteen +3. Konseptnotater erstattes i den konfigurerte mappen + +### Utvinne og generere innhold + +**"Notemd: Utvinne konsepter og generere titler"** — utvinner konsepter, og kjører deretter "Generere fra titel" for hver notate i konseptmappen. Dette genererer innhold for **alle** konseptnotater i mappen, ikke bare de nylig skapte. + +### Skape wiki-link fra valg + +1. Hajre ut tekst i redaktoren +2. Kjør **"Notemd: Skape wiki-link fra valg"** +3. Teksten er innbundet i `[[...]]` og en konseptnotate blir skapt + +## Tips + +- **Ställ inn konseptmappen først** — uten den blir ingen notater skapt. En varningsmodus vises dersom den ikke er stillt. +- **Bruk modeller per oppgave** — konseptutvinning fungerer godt med billigere modeller (GPT-4o-mini, DeepSeek). Bruk dyre modeller for forskning/oversettelse. +- **Aktiver synonymsuppresjon** for tekniske domener der flere termer refererer til samme konsept. +- **Fjerne duplikater regelmessig** — kjør dedup-kommandoen etter batchbehandling for å få opp nær-duplikater. +- **Loggfilen overskrives** ved hver kjøring, ikke lagt til. Kopier den dersom du trenger tidligere resultater. + +--- + +## Neste trinn + +- [Wiki-Links](./wiki-links) — Hvordan konsepter kobles innlignende +- [Diagrams](./diagrams) — Visualisere konseptrelasjoner +- [Workflows](./workflows) — Koble utvinning til andre oppgaver diff --git a/website/i18n/no/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/no/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..1ab47db0 --- /dev/null +++ b/website/i18n/no/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "Diagrammer" +description: "Generer Mermaid, JSON Canvas, Vega-Lite, HTML, redigerbare figurartefakter, samt fremtidige begrænsete circuitikz-diagrammer fra dine notater med hjælp af en specifikasjonsførst architecture" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Diagrammer + +<TLDR> +**Notemd genererer diagrammer fra dine notater gjennom en pipeline som starter med specifikasjoner.** LLM skaper en `DiagramSpec` JSON som er uavhengig av renderingsverktøy, og spesialiserte adapterer oversetter den til Mermaid, JSON Canvas, Vega-Lite, HTML, eller editerbare HTML/SVG-utdata. Støtter 8 typers intenter, automatiske fallback-kedjer, live-forhandsvisning med eksport til SVG/PNG, semantisk verifisering, og generering forstärkt med lokal kunnskap. +</TLDR> + +Dette er en del av [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). + +## Arkitektur: Spec-First Pipeline + +Notemd ber aldrig LLM om å produsere Mermaid/Vega/Canvas-syntaks direkte. Istedenfor: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**Hvorfor specifikasjon først?** LLM-filer skaper ofte ugyldig renderer-syntaks (spesielt Mermaid). En strukturert `DiagramSpec` kan valideres før rendering, og samme specifikasjon kan leveres til flere renderere som fallback. + +## Støttede diagramtyper + +| Intent | Hovedrenderer | Fallback-mekanismer | Bruksfall | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | Hierarkisk oppdeling av emner | +| `flowchart` | Mermaid | HTML | Processfløyer, beslutningstrær | +| `sequence` | Mermaid | HTML | Klient-server-interaksjoner, protokoller | +| `classDiagram` | Mermaid | HTML | OOP-klasserelasjoner | +| `erDiagram` | Mermaid | HTML | Databassskemaer, entitetsrelasjoner | +| `stateDiagram` | Mermaid | HTML | Stasemaskiner, livscyklemodeller | +| `canvasMap` | JSON Canvas | Mermaid → HTML | Konseptkarteler, kunnskapsgrapher | +| `dataChart` | Vega-Lite | Mermaid → HTML | Stavar, linjer, arealer, sprøkeligninger, pie-diagrammer, tabeller | + +## Intent Detection + +Notemd inferer den beste diagramtypen fra innholdet i din notat ved bruk av nøkkelordscoring: + +| Intent | Triggers | Confidence | +|--------|----------|------------| +| `dataChart` | Tabeller, numeriske celler, metrikk/trend-nøkkelord, prosenttilstander | 0.88 | +| `sequence` | Request/response-ordlista (4+ matcher) eller `->`/`=>`-marker | 0.82 | +| `erDiagram` | Primær nøkkel, utlandsk nøkkel, entitet, skema (2+ matcher) | 0.80 | +| `stateDiagram` | Stasjon, overgang, i venting, i gang, feil (3+ matcher) | 0.76 | +| `flowchart` | Nummererte trinn (2+) eller if/then/else/workflow-ordlista | 0.74 | +| `canvasMap` | Konseptkarte, kunnskapsgraf, romlig, kluster | 0.72 | +| `mindmap` | Standardfall | 0.55 | + +Øverstille med **Favoritt diagramtyp**-innstillingen, sidebarkvalgern eller en eksplisit kommandovalgmulighet. + +## Valg av renderingsmål + +Den eksperimentelle spec-first-pipeline-en har nå to uavhengige kontroller: + +| Kontroll | Innstilling | Effekt | +|---------|---------|--------| +| Favoritt diagramtyp | `preferredDiagramIntent` | Styrer den semantiske formen for den genererte `DiagramSpec` | +| Favoritt renderingsmål | `preferredDiagramRenderTarget` | Velger artikkelrendereren for **Generer diagram** og **Vis forhandsvisning av diagram** | + +Sett **Favoritt renderingsmål** til **Auto** som standard for planeringsprogrammet, eller velg eksplisitt Mermaid, JSON Canvas, Vega-Lite, HTML eller Editable HTML/SVG. Øverstillingen gjelder kun for artikkel- og forhandsvisningskommandoen. Standardkommandot **Sammanfatt som Mermaid diagram** forblir bundet til Mermaid-kompatible utdata så at eksisterende Markdown-arbeidsfluer ikke stillehet endrer format. + +Dette skilnaden er viktig fordi en `flowchart`-intensjon nå kan renderes som Mermaid for Markdown-notater, HTML som robust fallback, eller Editable HTML/SVG for videre redigering. Draw.io og Drawnix forblir CLI-artikkelexportere fremfor innbudsrenderingsmål. + +## Bruk + +### Generer et diagram + +1. Åpne en notat +2. Kør **"Notemd: Generer diagram"** fra kommandovalglisten +3. Notemd oppdager intensjonen, genererer specifikasjonen, renderer og lagrer artikkelens fil + +**Utdatafiler etter mål:** + +| Mål | Ekstensjon | Mønster for filnavn | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| Editabel HTML/SVG | `.html` | `{note}_diagram.html` | + +### Vis forhåndsvisning av diagram + +1. Kør **"Notemd: Vis forhåndsvising av diagram"** +2. En modal vises med det renderede diagrammet +3. Ekspor til SVG eller PNG med hjelp av knappene på verktøylinjen + +**Automatisk åpne forhåndsvising** er tilgjengelig i innstillingene — etter generering starter forhåndsvisingsmodalen automatisk. + +Forhåndsvisingsmodalen har også en panel for diagnostikk av artefakter. Renderere og smoke-checker kan legge til `RenderArtifact.diagnostics`; modalen viser en sammanfattelse med antall feil/varninger/informeringer, deretter alvorlighetsgrad, diagnostikktype, melding og reparasjonsråd ved siden av forhåndsvisningen. Samme sammanfattelse vises i historikke for forhåndsvisninger, så man kan sammenligne gjentatte circuitikz smoke-prøver uten å åpne hver enkelt post. For artefakter som har kildetekst men ikke kan renderes inline eller gjennom HTML iframe-paden, faller modalen nå tilbake til en forhåndsvising bare med kildetekst istedet for å kreve en tom iframe. Dette gir circuitikz kompile/render smoke, SVG tekst-token-kontroller, PNG-blank-skjermutsnittskontroller og fremtidige overlappsrapporter en synlig UI ytre form uten å gjøre TikZJax eller LaTeX til en hardt plugin-runtimeavhengighet eller å simulere at kildeteksten er en verifisert visuell rendering. + +### Legasjons Mermaid-modus + +Når `enableExperimentalDiagramPipeline` er slått av, sender Notemd en direkte Mermaid-innsendelse til LLM. Dette omgår hele spec-pipelineen. Hvis den eksperimentelle pipelineen feiler, faller systemet tilbake til denne modusen. + +## Renderingsbakender + +### Mermaid + +6 adaptere (mindmap, fløe-diagram, sekvens, ER, klass, tilstand) oversetter `DiagramSpec` til Mermaid-syntax. Efter generering validerer `mermaid.parse()` utdataen. Hvis validasjonen feiler: + +1. **LLM prøv igjen** — én forsök med Mermaid-feilmeldingen som kontekst +2. **Minimalt fallback** — et enkelt Mermaid-diagram basert på spec-nod-ID:er + +**Legacy Mermaid Fixer** reparerer automatisk vanlige LLM-syntaksfeil: normalisering av note-directiver, escape av pipe-label, omposisjon av semikoler, smart quotes, dubbelstrikkepilar, formmismatch og mer. + +### JSON Canvas + +Genererer Obsidian JSON Canvas-format med romlig layout: +- Noder plasseres etter dybde (x = dybde × 420) og indeks (y = indeks × 170) +- Bredden estimeres fra lengden på etiketten +- Kanter med `fromSide: 'right'`, `toSide: 'left'`, `toEnd: 'arrow'` + +### Vega-Lite + +Bygger komplette Vega-Lite v5 JSON-specifikasjoner med automatisk kodning: +- **Cartesian charts** (bar/line/area/point/scatter): x + y-kanaler + farge for flere serier +- **Pie**: theta = y (kvantitativ), farge = x (nominal) +- **Table**: rød = x, tekst = y + kolonne = serie + +Dunkle og lyste temaer blir sammanføyd før kompilering. + +### HTML + +Universell fallback. Selvstendig HTML-dokument med: +- CSP-meta-headerer +- Lyst/dunkel-modus gjennom `prefers-color-scheme` +- Lokaliserte UI-etiketter for 20 språk +- Seksjoner: hero, struktur (node-træ), relasjoner, kallout, data-serie-tabeller + +### Redigerbar HTML/SVG + +Eksplicit figur-mål for redigerbare eksportarbeidsfløyer. Den projiserer `DiagramSpec` inn i en deterministisk `SemanticFigureModel`, og renderer deretter en selvstendig HTML-dokument med inline SVG-grupper som inneholder Draw.io-stil annotasjoner: + +- `data-drawio-type`, `data-drawio-id` og `data-drawio-role` på semantiske noder +- `data-drawio-source` og `data-drawio-target` på semantiske kanter +- stabile nod/kantidentifikatorer etter normalisering av mellomrom og hantering av kollisjoner +- ingen skripter, ingen eksterne fonter og ingen fjernressurser + +Dette målet er avsiktlig ikke den standardmessige planeringsveien ennå. Det er tilgjengelig som et eksplicit renderingsmål mens produktveien beviser redigeringsfunksjonalitet i virkelige verktøy. + +### Draw.io og Drawnix Exportgränser + +Den nuværende implementasjonen holder støtte for tredjepartsredaktorer ved artefaktgränsen: + +| Mål | Kontrakt | Körningsskrav | +|--------|----------|--------------------| +| Draw.io | deterministisk, ukomprimeret `mxfile` XML fra `SemanticFigureModel` | ingen i pluginkörningen eller CI | +| Drawnix | minimal `.drawnix` JSON-undermengde med `geometry` og `arrow-line`-elementer | ingen i pluginkörningen eller CI | + +Avviket er avsiktlig: Notemd kan verifisere synlige etiketter, stabile ID:er og støttet primitivdekking uten å embedde diagrams.net Desktop, Drawnix, Plait eller bare-browserredaktørstater i pluginen. + +### circuitikz / TikZJax Retning + +Kretsdiagrammer er ikke det samme problemet som generelle fløe-diagrammer. Den korrekte syntaxmålet for elektriske kretsler er vanligvis **circuitikz**, rendert i Obsidian gjennom pluginer som TikZJax. TikZJax kan laste inn pakker som `circuitikz`, `pgfplots`, `tikz-cd` og `chemfig`, noe som gjør det attraktivt for notater om fysikk, kretsler, kjemie og matematikk. + +Risikoen er at rå TikZ-generert med LLM er bruktbar: + +- Komplekse kretstopologier kan være elektrisk korrekte men visuelt uleselige; +- Overlappende kabler og etiketter kan gjøre en korrekt netlist ubrukbar for studienotater; +- Fjernede pakkepreambler, feil anker eller ugyldige komponentnamn kan forhindre rendering; +- Feedback fra rendereren er vanligvis på bildnivå, mens LLM genererer tekstnivås geometri. + +Den bedre arkitekturen er å behandle circuitikz som et begrenset diagrammål, ikke som en friform-prompt: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +Modellen bør beskrive kretstopologi og layout separat: + +| Lager | Ansvar | Eksempel | +|-------|----------------|---------| +| Topologi | elektriske noder og komponentforbindelser | `VDD -> RD -> drain(M1)`, `source(M1) -> GND` | +| Layout | gridplassering, orientering, routingslaner | `M1 at (3,2.2)`, innmatning venstre, utmatning høyre | +| Stil | pakke, spenningkonvensjon, merker, anker | `\begin{circuitikz}[american voltages]` | +| Validering | kompilasjonslogg, manglende anker, overskridelse/skjermutsikkekontroller | TikZJax/LaTeX-diagnostikk plus visuell gjennomgang | + +### Aktuell circuitikz-prototyp + +Notemd inkluderer nå den første begrensete repository-prototypen for denne retningen. Den er avsiktlig offline og bundet til en mall: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +Prototypen legger til en separat `CircuitSpec`-grænse og en deterministisk eksporter for sex gullstandardfamilier: + +| Kretstype | Gullstandard | Strømsgaranti | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | validerer `VDD -> R_D -> M1.D`, `vin -> M1.G`, `M1.S -> GND` og `M1.D -> vout` før skrivning av LaTeX | +| `cmos-inverter` | `cmos-inverter-v1` | validerer PMOS-over-NMOS-topologi, delt gate-inntak, delt drain-utmatning, `VDD -> MP.S` og `MN.S -> GND` før skrivning av LaTeX | +| `cmos-buffer` | `cmos-buffer-v1` | validerer to kaskerte invertersteg, mellomliggende nod `vmid`, restaurert `vout` og delte VDD/GND-leier før skrivning av LaTeX | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | validerer parallele PMOS/NMOS-pass-enheter mellom `vin` og `vout` med komplementære `phib` / `phi`-kontroller før skrivning av LaTeX | +| `cmos-nand2` | `cmos-nand2-v1` | validerer parallell PMOS pull-up, seriell NMOS pull-down, dobbel innstillinger `va` / `vb`, og `vout` før LaTeX skrives | +| `cmos-nor2` | `cmos-nor2-v1` | validerer seriell PMOS pull-up, parallell NMOS pull-down, dobbel innstillinger `va` / `vb`, og `vout` før LaTeX skrives | + +Dette er ennå ikke en generell TikZ-generer. Den kompilerer ikke LaTeX, kaller ikke TikZJax, undersøker ikke skjermutsikter, eller kjører ikke automatisert bild-feilretting. Disse funksjonene kommer senere. + +Kommandoen Preview diagram kan åpne tilbake gemte circuitikz-kildeartefakter direkte når filendelsen er `.tex` eller `.tikz` og kilden inneholder `\usepackage{circuitikz}` eller `\begin{circuitikz}`. Denne metoden er en circuitikz-kilde-eksklusiv preview: modalen viser kilden, diagnostikk, kopier/speicherningskontroller og historiksmetadata, men den kompilerer ikke LaTeX eller kaller ikke TikZJax under pluginets kjøring. + +Den samme kilde-eksklusive preview-marginen dekker nå også gemte Draw.io og Drawnix-artefakter. `.drawio`-filer blir acceptert når de ser ut som Draw.io XML (`mxfile` eller `mxGraphModel`), og `.drawnix`-filer blir acceptert når de er Drawnix JSON med `type: "drawnix"` og en `elements`-array. Pluginet innbuder fortsatt ikke diagrams.net eller Drawnix-whiteboard-hosten; disse previewene viser kilden, diagnostikk og artefaktshistorik uten å kreve en in-plugin-visuell redigeringsverktøy. + +For reparasjon som bevarer topologien, send inn forreparasjons-specifikasjonen som referanse før man godtar en reparert kandidat: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +Reparasjonsvaktene bruker `createCircuitTopologySignature` og `assertCircuitTopologyUnchanged` for å sammenligne `circuitKind`, `goldenReferenceId`, nettverk, komponentids/typ/terminaler, og urettede forbindelsesendepunkter før utdata. Etiketter, titeltekst, layoutvinkler, forbindelsesordning og forbindelsesetiketter ignoreres avsiktlig. En kandidat som legger til en kort eller omformer en terminal mistenker med `Circuit topology drift detected` før `.tex`-filen skrives. + +Den CLI kan nå parse en eksisterende LaTeX/TikZJax-kompilasjonslogg uten å kjøre en kompilerer: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +Dette diagnostiske veggen rapporterer manglende pakker som `circuitikz.sty`, ukjente TikZ/circuitikz-klær, TikZ-syntaksfeil som manglende semikoler, ukontrollerte argumenter fra ubalanserte parenteser eller uavslutte etiketter, ukjente kontrollsekvenser, generelle LaTeX-feil, nødknappstopp og varsel om overfull `\hbox`. Det forblir log-basert: lokal LaTeX/TikZJax-kjøring og skjermutsikter-kvalitetsgate er fortsatt separat fremtidig arbeid. + +For vedlikeholders smoke-checker kan samme CLI valgfritt kjøre en eksplisitt konfigurert renderer uten å parse shell-kommandoer: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Kompilasjonskjøreren bruker `shell: false`, utvider `{tex}`, `{outputDir}` og `{jobName}`-placeholder til argument-array-verdier, les den genererte `{jobName}.log`, og returnerer `compileExecution` plus `compileDiagnostics` i CLI JSON-utdata. `--compile-executable` er kun renderer-binaryen eller wrapper-passen; renderer-flagger tilhører i gjentatte `--compile-arg`-verdier. Tomme exekutabler mistenker som `compile-executable-invalid`, manglende binaries mistenker som `compile-executable-not-found`, og shell-kommando-formet exekutabelstrenger mottar anbefalinger om å splitte argumenter slik at Windows, Linux og macOS følger samme direkte-kjøringkontrakt. Med `--expected-artifact` rapporteres også `compileExecution.renderSmoke` og mistenker den CLI hvis rendereren ikke skaper et ikke-tomt artefakt. Det innbuder fortsatt ikke LaTeX, gjør ikke TikZJax til en plugin-kjøringstilhengighet, eller utfører skjermutsikter-nivå visuell reparasjon. + +Hvis det forventede artefakten er `.svg`, går smoke-checken en lag dypere: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +SVG smoke-verifiserer `<svg>`-rotten, positive dimensjoner eller `viewBox`, minst én synlig teikningselement etter utelukkelse av skjulte/ttransparente elementer, alle forespurt teksttokener, tydelige elementer utenfor `viewBox`, tydelige overlappende posisjonerte `<text>` / `<tspan>`-etiketter, og tydelige tekstetiketter som overlapper teikningselementer gjennom `render-svg-label-overlap`. Forventet tekst søkes i synlig tekst og dekoderes tilgjengelighetsmetadata som `aria-label`, `<title>` og `<desc>`, så rendererer som bevarer semantiske etiketter utenfor synlig `<text>` kan fortsatt oppfylle tekst-token smoke uten å kreve OCR. Geometri-passen er nå transform-oppmærksom geometri for vanlige gruppe- og element `transform`-attributter, så oversettet, skalert, rotert, skjult eller matrix-transformert SVG-bokser undersøkes etter transform-komposisjon. Den dekker eksakte bølgemarginer for A/a-bølgemaksimumer, eksakte Bezier-kurve-marginer for C/S/Q/T-kurve-maksimumer, stroke-width-oppmærksom SVG-marginer og etiketter-overlappingskontroller, `polyline` / `polygon`-teikningsgeometri, og løser også path-eneste glyph-plassering fra `<use href="#...">`-referanser så at etiketter konvertert til brukesbare glyph-passer kan fortsatt mistenke bounded-canvas-kontroller når plassert glyph-geometri slipper `viewBox`. Mange posisjonerte `tspan`-etiketter under én `<text>`-forelder sammenlignes som separate etiketterbokser, noe som oppdager LaTeX-stil SVG-utdata som annars ville samle forskjellige etiketter til én tekstnode. Posisjonerte SVG `text` og `tspan`-bokser respekterer `text-anchor`-verdier `start`, `middle` og `end`, så sentrerte og høyre-alignerte etiketter kan utløse tekst/tekst og etiketter-vs-teikning-overlappingsdiagnostikk uten å kreve browser-nivå tekstlayout. Definition-eneste glyph-passer inni `<defs>` regnes ikke som synlige teikningselementer, men deres egne definition-lokal `transform`-attributter apliceres før `<use>`-plassering så at skalert eller speilrett glyph-definisjoner ikke underregnes. Etiketter-vs-teikning-kontrollen bruker en liten teikningsboks-tolerans og den deklarerte `stroke-width`, så tynne kabler, tjocke kabler og polygonale komponentoutliner kan alle betraktes som potensielle etiketter-leserbarhetsfeil når deres synlige strekk nåer en etikett. Path-eneste glyph-etiketter løst fra `<use href="#...">` sammenlignes også med teikningsbokser og mistenker med `render-svg-path-glyph-overlap` når brukesbare glyph-geometri overlapper kabler eller komponenter. Hvis en renderer konverterer etiketter til brukesbare path-glypher istedenfor søkelige `<text>` og ikke bevarer tilgjengelighetsmetadata, registrerer smoke-rapporten `pathOnlyGlyphUseCount` og mistenker den forespurt teksttokenen gjennom `render-svg-text-path-only` istedenfor å gjøre det som om etiketten er enkelt fraværende. Andere feil rapporteres gjennom `render-svg-invalid`, `render-svg-dimension-missing`, `render-svg-no-visible-elements`, `render-svg-text-missing`, `render-svg-out-of-bounds`, `render-svg-text-overlap`, `render-svg-label-overlap` eller `render-svg-path-glyph-overlap`. Tekst-token- og overlappingskontroller bør kun betraktes som strukturell smoke for rendererer som bevarer etiketter som søkelige SVG-tekst eller tilgjengelighetsmetadata; path-eneste SVG-utdata trenger fortsatt den senere skjermutsikter/OCR-gaten for å bevisle visuell etiketter-leserbarhet, og denne smoke-passen krever fortsatt ikke full SVG-path-dekking. + +Skjulte SVG-grupper og elementer overskues konsekvent under talling av synlige elementer og geometrik samling. Attributt- eller inline-stil `display:none`, `visibility:hidden`, `visibility:collapse` og overall `opacity:0` kan ikke gjøre en annenvis blank render-artefakt til å klare synlig-output smoke. + +Path-eneste glyph-definisjoner kan være direkte pather eller gruppesymboletankener inni `<defs>`. Smoke-passen løser barn-path-geometri fra `<g id="...">` og `<symbol id="...">` før `<use>`-plassering, så innsluitet glyph-utdata stiller likevel tilgang til `pathOnlyGlyphUseCount`, bounded-canvas-kontroller og `render-svg-path-glyph-overlap`. + +Path-parseren følger også subpath-start og sletter den aktuelle punkten på `Z/z`, så relative kommandoer etter en lukket subpath fortsetter fra den riktige SVG-punkten istedenfor å skape falske `render-svg-out-of-bounds`-diagnostikk. + +Den samme geometriprosessen følger SVG-regelen for decimaltal med førstegangspunkt og eksplisite plusstegn, så kompakte dvisvgm-koordinater som `.5`, `-.5` eller `+.5` forblir desimalt under grensesjekkene istedet for å bli feil geometri utenfor grenser eller skippes. + +Hvis rendereren sender ut `.png`, blir den samme forventede artefaktveien en første skjermutsikke: Notemd dekoderer ikke-interlæst 1/2/4/8-bit indeksert-farge PNG-filer, 1/2/4/8/16-bit gråskala PNG-filer, og 8/16-bit gråskala-alpha/RGB/RGBA PNG-filer. Indeksert-farge- og sub-byte gråskala-bilder støtter pakketprover; indeksert-farge-bilder støtter også PLTE og valgfritt tRNS-data; gråskala/RGB-bilder støtter tRNS-transparente prover. 16-bit direkteprover normaliseres til samme 8-bit RGBA-verksgang som brukes i smoke-checkene. Smoke-checken verifiserer positive dimensjoner, registrerer fremgrunnsgrenser som `foregroundBounds`, registrerer fremgrunnstetthet inni den boksen som `foregroundDensity`, feiler med `render-png-blank` når hver synlig pixel matcher topp-venstre bakgrunnsfarge, feiler med `render-png-content-clipped` når fremgrunninnhold berører bildens grenser, feiler med `render-png-foreground-too-small` når en stor skjermutsikke har mindre enn fire fremgrunnspixel, og feiler med `render-png-foreground-dense` når fremgrunnspixel er uvanlig tett inni en ikke-triviell boks. Ustøttede PNG-format feiler med `render-png-unsupported` og spesifikke råd for Adam7 interlæste PNG-filer eller ustøttet indeksert-farge-bitdybde. Dette oppdager tomme skjermutsikker, uklart canvas-klippering, underrenderet fremgrunnsspor, første pixelnivås overflodfeil, og feil PNG-eksportinnstillinger fra rendereren uten å legge til plattformspesifiske shell-avhengigheter. Det er ikke ennå OCR-nivås labelerkjenning, nøyaktig tekstoverlappingsdeteksjon, eller topologibeholderende bildreparasjon. + +Når diagnostikk viser en feil i kompilering eller render-smoke-kurs, kan CLI også skrive en topologibeholderende reparasjonsbeskrivelse: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +Reparasjonsbeskrivelsen bruker schema `notemd.circuitikz.repair-brief.v1` og inneholder kilden `CircuitSpec`, topologisignatur, kompilering/render-diagnostikk, tillatte endringer, forbudte topologiendringer, næste verifiseringssteg, og en strukturert `repairPrompt`. Prompt-rollen er `topology-preserving-circuitikz-repair`; dess `diagnosticFocus`-liste kommer fra kompilering/render-diagnostikk, og dess `acceptanceCriteria` krever kandidatvalidering plus nye kompilering og render-smoke-checker. Det er overføringsformatet for en senere reparasjonsloop, ikke en påståelse om at Notemd allerede kjører autonome visuelle reparasjon. + +Efter at en reparasjonskandidat har blitt produsert, kan samme CLI validere den mot beskrivelsen før utdata skrives: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief` kontrollerer kandidatens topologisignatur fra beskrivelsen og er uoverensstigende med `--topology-reference`. At dette gateet passer beviser kun topologibeholdelse; kandidaten trenger fortsatt kompilering-diagnostikk og render-smoke-checker. + +`--repair-brief`-resultatet inkluderer også `repairAcceptance`-bevis med schema `notemd.circuitikz.repair-acceptance.v1`. Det rapporterer `topology-signature`, `compile-diagnostics` og `render-smoke`-gateer som `passed`, `failed` eller `missing`; eksponerer `remainingChecks`; og holder `readyForVisualAcceptance` på å være falsk til kandidatkursen inneholder alle nødvendige bevis. + +Bruk `--repair-acceptance-output` sammen med `--repair-brief` når CI eller releasebevisstyrke trenger en varig JSON-fil: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +For releasemål eller vedlikeholdsbevis, kjør alle støttede gullfamilier gjennom aggregate fixture runneren: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Runneren bruker `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json` og `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json`, kaller samme shell-fri eksportvei for hver fixture, og returnerer en aggregate JSON-rapport med per-fixture `compileExecution` og `compileDiagnostics`. Det er fortsatt en vedlikeholdskommando, ikke en plugin-runtime-avhengighet. + +Når en vedlikeholdsmaskin ennå ikke har konfigurert renderer, kjør samme fixture-kommando uten `--compile-executable` og beholde miljøgateet eksplisitt: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +Denne veien skriver likevel den deterministiske fixture `.tex`-artefaktene, men returnerer `ok: false` med `rendererAvailability.status` satt til `missing-configuration` og en `compile-executable-invalid`-diagnostikk. Behandle det som bevis på rendererens tilgjengelighet kun; det er ikke kompilering, render-smoke eller visuell godkjenning. + +### Gullreferansepromptform + +For nærterminnig bruk, gi en renderbar gullreferanse før du ber om en kretsvariant. En begrenset prompt bør beholde innledningen, koordinatskalen, ankerstilen og routingskonvensjonene: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +For en CMOS-inverter bør prompten forespørre en eksplisitt topologi plus layoutbegrensninger, ikke bare "draw a CMOS inverter": + +- hold `VDD` på toppen, `GND` på botnen, innputt på venstre, utputt på høyre; +- Brug `pmos` over `nmos`, med delte gate og delte drain; +- Hold utdataknotten ved drainforbindelsen og marker den med `*-o`; +- Brug navngivne anker (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) istedet for visuelt infererede koordinater; +- Unngå diagonale eller krydende kabler medmindre det er elektrisk nødvendigt. + +### Aktuell fremstilling og næste fase + +| Areal | Aktuel status | Næste trin | +|------|----------------|-----------| +| Almene diagrammer | Spec-first pipeline implementeret for Mermaid, JSON Canvas, Vega-Lite, HTML | Hold på med at udvide semantisk verifiseringsskyde | +| Redigerbare figurer | `editable-html-svg`, Draw.io XML, og Drawnix JSON artefaktgrænser implementeret | Tilføj mere komplekse primitive kun efter at tester har beviset redigerbarhed | +| CLI støtte | `npm run diagram:export-artifact` eksporterer redigerbare HTML/SVG, Draw.io, og Drawnix fra én `DiagramSpec` | Legg til målspesifikke røykfikser når nye mål leveres | +| circuitikz | `CircuitSpec -> circuitikz` prototyp eksporterer common-source, CMOS inverter, `cmos-buffer` / `cmos-buffer-v1`, `cmos-transmission-gate` / `cmos-transmission-gate-v1`, `cmos-nand2` / `cmos-nand2-v1`, og `cmos-nor2` / `cmos-nor2-v1` gyllene maller, projekter `layoutHints.inputSide` og `layoutHints.outputSide` til bestemt inn-/utgangsportplassering uten å endre topologien, avviser reparasjontopologidrift gjennom `--topology-reference`, sender topologibeholderende reparasjonsbeskrivelser gjennom `--repair-brief-output` og schema `notemd.circuitikz.repair-brief.v1`, inkluderer strukturert `repairPrompt` overføringsinnhold med `diagnosticFocus`, `acceptanceCriteria`, og rolle `topology-preserving-circuitikz-repair`, validerer reparasjonskandidater gjennom `--repair-brief`, returnerer `repairAcceptance` gatebevis gjennom schema `notemd.circuitikz.repair-acceptance.v1` med `readyForVisualAcceptance` og `remainingChecks`, beholder dette beviset gjennom `--repair-acceptance-output`, parserer kompileringsskriver, kan kjøre eksplisitte lokale renderere plus `--expected-artifact`, SVG `--expected-svg-text`, tilgjengelighetsmetadatakontroller gjennom `aria-label`, `<title>`, og `<desc>`, utelukking av skjulte/ttransparente SVG elementer, `render-svg-text-path-only` / `pathOnlyGlyphUseCount` klassifisering for bare-på-path-etiketter, kontroller for bare-på-path-glyfeplassering for `<use href="#...">`, diagnostikk for bare-på-path-glyfeoverlappelse gjennom `render-svg-path-glyph-overlap`, hantering av nøyaktig strømspunkt for close-path for `Z/z`, nøyaktige bøngegränser for A/a bøngeextrema, nøyaktige Bezier-kurvegränser for C/S/Q/T kurveextrema, SVG gränser med hensyn til penselstyrke og kontroller for etikkeoverlappelse, `polyline` / `polygon` kontroller for tegngeometri, posisjonert `tspan` etikkegeometri, `text-anchor`-bevisst posisjonert tekstgeometri, geometri med transformasjon for SVG bounded-canvas/text-overlap og label-vs-drawing røykkontroller gjennom `render-svg-label-overlap`, samt PNG ikke-blankt / klippet / tett-foregrunnsskjermutsnittsrøykkontroller, inkludert indeksert-kolorgammal alfa, gråskala/RGB tRNS transparente eksempler, og formatspesifikk `render-png-unsupported` veiledning for Adam7 interlaced PNGs og indeksert bit-dyp-fel, gjennom `foregroundBounds`, `foregroundDensity`, `render-png-content-clipped`, og `render-png-foreground-dense` uten shell-parsering, inkluderer samlede vedligeholderingsrøykfikser gjennom `npm run diagram:smoke-circuitikz`, registrerer manglende rendererkonfigurasjon gjennom `rendererAvailability.status: "missing-configuration"` og `compile-executable-invalid`, og har generiske forhåndsvisningsdiagnostikk, diagnostisk sammanfattingsantall, diagnostikkbevisst historieinnhold, og kilde-enbart fallback gjennom `RenderArtifact.diagnostics` og forhåndsvisningsmodalen | Legg til OCR-nivå-etikkeerkjenning for bare-på-path-visuell tekst, nøyaktige pixelnivå-overlappingskontroller, bredere SVG path-oversettelse dersom nødvendig, automatisk installering/oppdagelse av renderer kun dersom det kan bli valgfritt, og automatisert topologibeholderende reparasjonsutføring | +| TikZJax integrasjon | Kandidatrenderingshost for Obsidian-side visning | Hold det valgfritt; gjør ikke TikZJax til en hard plugin-runtimeavhengighet | + +## Konfigurasjon + +| Innstilling | Standard | Effekt | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | Vendel mellom spec-first og legasie Mermaid | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = Mermaid kun; `'best-fit'` = nativ mål + fallbacker | +| `preferredDiagramIntent` | `undefined` (auto) | Overrask automatisk intent-deteksjon | +| `summarizeToMermaidLanguage` | `'en'` | Målsspråk for diagrammetiketter | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | Per-oppgave LLM for diagramgenerering | +| `autoMermaidFixAfterGenerate` | (fra konstanter) | Kjør legasiefixer automatisk på Mermaid utdata | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | Økte kilde med lokal vault-kunnskap | + +### Lokal kunnskapsoptimering + +Når det er aktiveret, henter Notemd relevante kontekstsnipp fra vaultens lokale kunnskapsbas (basert på MiniSearch) og fører dem inn i kilden markdown. Augmenteringsprompten sier: "Kun støttereferanser; hold den primære strukturen like til kildenotatet." + +### Samsvarstilstander + +- **`legacy-mermaid`**: Alle intenter dirigeres til Mermaid. Ikke-Mermaid intenter (canvasMap, dataChart) tvinges til `flowchart` eller `mindmap`. Ingen fallback-kedje. +- **`best-fit`**: Hver intent dirigeres til sin egne måldestination. Dersom primære metoden feiler, går det gjennom fallback-kedjen (f.eks. Vega-Lite → Mermaid → HTML). + +## Forskyvning og eksport + +| Aksjon | Metode | +|--------|--------| +| SVG export | `mermaid.render()` / `vega.View.toSVG()` / SVG builder for Canvas | +| PNG-eksport | SVG → Bild → Canvas (device pixel ratio 1x-3x) → PNG ArrayBuffer | +| Sparing av kilde | Rå artefaktinnhold spart med målspesifikk ekstensjon | +| Forskyvning kun av kilden | Ikke-inline artefakter med kildemiddel vises som kod plus diagnostikk, uten iframe-rendering | +| Semantisk audit | Mermaid, JSON Canvas, Vega-Lite, og editabel HTML/SVG kontrolleret av `scripts/diagram-semantic-verification.js` | + +**Caching**: RenderCache bruker en deterministisk JSON-klue fra `{spec, target, theme}`. In-flight deduplikasjon forhindrer dupliserte renderinger. + +## Tips + +- **Start med `best-fit`-modus** — det gir den beste visuelle resultatet for hver intent-typ +- **Bruk kraftige modeller for komplekse diagrammer** — fløe-diagrammer og ER-diagrammer nyter fordel av GPT-4o eller Claude +- **Aktiver lokal kunnskap** for domen-spesifikke diagrammer — relevant vault-kontekst forbedrer nøyaktigheten +- **Still på `autoMermaidFixAfterGenerate`** — Mermaid-synaksfeil er vanlige uten det +- **Den gamle fixeren er omfattende** — hvis Mermaid-forhandsvisningen feiler, løser man ofte problemet ved å kjøre fixeringskommandoen manuelt + +--- + +## Neste trinn + +- 🔗 [Wiki-Links](./wiki-links) — Hvordan konsepene kobles innlignende +- 📝 [Concept Notes](./concept-notes) — Utvinne konsepter for diagramkildematerial +- 🔍 [Research](./research) — Forstärk diagrammer med data fra webben diff --git a/website/i18n/no/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/no/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..480d50e1 --- /dev/null +++ b/website/i18n/no/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "Forskning og webbsøk" +description: "Integre webbsøk i dine notater" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Forskning og webbsøk + +<TLDR> +**Notemd søker på nettet og injiserer LLM-sammanfattede resultater direkte i dine notater.** Tavily API er hovedsøkebakendøren; DuckDuckGo fungerer som en zero-config fallback. Resultatene sammanfattes med kilder og lagres under en `## Research`-overskrift. Støtter forskning i én notat, batch-forskning i mapper og valg av modell for sammanfattingssteget per oppgave. + +Dette er en del av [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Oversikt + +Forskning er en av Notemd's mest kraftfulle integrasjoner: den lukker sikken mellom lese, søke og skrive. Istedenfor å bytte til en nettleser for å finne ut en ukjent term, markerer du den og lar Notemd søke, sammanfattere og lagre resultatene – allt innenfor din vault. + +Prosessen er fullstendig konfigurerbart. Du velger søkeleverandøren, den LLM som skriver sammanfattelsen, og om resultatene skal lagres i den aktive notaten eller i separate filer. Batch-modus gjør det mulig å forske i alle notater i en mappe med én klikk. + +## Hvordan det fungerer + +### Søk-og-sammanfattingspipeline + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **Spørsmåletakning** -- Notemd tar ut søkeord fra din valg eller notatetitelen. +2. **Webbsøk** -- Tavily forsøkes først. Hvis ingen API-klave er konfigurert, brukes DuckDuckGo automatisk (ingen klave nødvendig). +3. **LLM-sammanfattelse** -- Rå søkeresultater sendes til den konfigurerte LLM, som lager en kort sammanfattelse med inline-kilder. +4. **Lagring** -- Den formaterede sammanfattelsen lagres under en `## Research`-overskrift i den aktive notaten. + +### Tavily mot DuckDuckGo + +| Aspekt | Tavily | DuckDuckGo | +|--------|--------|------------| +| API-klave | Nødvendig (gratis plan tilgjengelig) | Ikke nødvendig | +| Resultkvalitet | Høyere (spesifikt utviklet for AI) | Godt til generelle spørsmål | +| Ratebegrensninger | Rik free tier | Styrtes av throttling | +| Konfigurasjon | `tavilyApiKey` i innstillingene | Nul konfigurasjon -- automatisk fallback | + +### Batch Folder Research + +Klikk høyre på en mapp og velg **"Notemd: Research folder"**. Hver `.md`-fil i mappen behandles sekventielt (eller parallelt opp til konfigurert samtidighet). Hver notis får sin egen forskningsoppsummering. + +## Konfigurasjon + +| Innstilling | Standard | Effekt | +|---------|---------|--------| +| `tavilyApiKey` | `''` | Tavily API-klasse. Når den er tom, brukes kun DuckDuckGo. | +| `researchProvider` / `researchModel` | DeepSeek | Per-oppgave LLM for å oppsummere søkeresultater | +| `maxResearchContentTokens` | `4000` | Tokenbudget for innhold sendt til LLM. Overskuddet blir trunkert. | +| `researchAppendToNote` | `true` | Legg til oppsummering til kildenotis. Dersom falskt, skapas en separat fil. | +| `researchLanguage` | `'en'` | Utdataforståelse for den oppsummerte forskningen | + +### Modellrekommendasjon per oppgave + +Forskning nyter av en modell som kan hantere multilingvalt innhold og produsere godt strukturert prosa. Se på: + +- **DeepSeek** -- standard, billig, god kvalitet +- **GPT-4o** -- høyere kvalitet på oppsummering, høyere kostnad +- **Gemini Flash** -- snabb og billig, god for enkle spørsmål + +## Eksempel + +Du leser en artikel om *transformer attention mechanisms* og støter på et ukjent termin: *relative positional encoding*. Istedenfor å lade Obsidian: + +1. Markér **"relative positional encoding"** +2. Høyreklikk --> **"Notemd: Forskning og oppsummering"** +3. Notemd søker i nettet, oppsummerer de beste resultatene og legger til: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +Oppsummelsen er nå en del av din vault, søkelig, kobelig og tilgjengelig uten nettforbindelse. + +## Tips + +- **Sett en Tavily-klave for beste resultat** -- selv den gratis versionen gir bedre relevans enn ren DuckDuckGo. +- **Bruk en effektiv oppsummeringsmodell** -- billige modeller kan gjøre teknisk innhold mindre detaljert. +- **Gjennomfør batch-forskning** etter en første lese for å fylle mellomrom i mange notater på en gang. +- **Gjennomgå de lagte til oppsummingsene** -- LLM kan skape falske kilder. Sjekk viktige påståelser. + +--- + +## Neste trinn + +- [Concept Notes](./concept-notes) -- Utvinn og gemm viktige termer fra forskningsresultater +- [Wiki-Links](./wiki-links) -- Koble konsep som ble funnet i forskningen sammen i din vault +- [Translation](./translation) -- Oversett forskningsoppsummeringer til et annet språk +- [LLM Tjänsteleverantörer](/docs/providers/overview) -- Konfigurera modellen som används för sammanfattning diff --git a/website/i18n/no/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/no/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..4e6b2b5e --- /dev/null +++ b/website/i18n/no/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "Oversettelse" +description: "Oversette notater og valg" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# Oversettelse + +<TLDR> +**Notemd oversetter tekst mellom 21+ språk med hjelp av LLM-drivet oversettelsestjeneste.** Støtter oversettelse av enkelt valgt tekst, hele notater og batch-oversettelse av mapper. Hver oversettelsesoppgave kan bruke en egen leverandør og modell gjennom innstillinger per oppgave. Utgangsspråket kan konfigureres separat fra UI-språket. Resultatene legges til under den opprinnelige teksten eller skrives i en ny fil, avhengig av dine preferanser. + +Dette er en del av [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Oversikt + +Oversettelse i Notemd er ikke en ordforholdssøk – det er LLM-drivet, kontekstmedvetnt oversettelse. Modellen ser hele punktet eller notaten, og beholder tonen, terminologien i spesifikt område og setningsstrukturen. Dette gir bedre resultat enn tjenester som oversetter ord for ord, særskilt for teknisk, akademisk og kreativ skrift. + +Funksjonen støtter tre områder: valgt tekst, aktive notater og hele mappe. I kombinasjon med modellvalg per oppgave kan du bruke en snell modell (Gemini Flash) for enkel oversettelse og en kraftig modell (Claude Sonnet) for innhold som krever finjustering – uten å endre din globale leverandør. + +## Hvordan det fungerer + +### Oversettelseskommandoen + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **Kildeidentifisering** – LLM inferer kildespråket fra innholdet. Du trenger ikke å angive det manuelt. +2. **Prompt-oppbygging** – Notemd bygger en prompt som inkluderer målspråket, valgfri hint om område og teksten som skal oversettes. +3. **LLM-oversettelse** – Den konfigurerte `translateProvider` / `translateModel`-tjenesten bearbeider forespørselen. Modellen beholder markdown-formatering, wiki-linker og kodblokker. +4. **Utdata** – Den oversette teksten legges enten til under den opprinnelige teksten eller skrives i en ny fil i vaulten. + +### Språkpar + +Notemd støtter alle språkpar som den underliggende LLM støtter. Vanlige par inkluderer: + +| Kilde | Mål | Typisk kvalitet | +|--------|--------|----------------| +| Engelsk | Kinesisk (simplifisert) | Utmerket | +| Kinesisk | Engelsk | Utmerket | +| Engelsk | Japansk | Mye god | +| Engelsk | Tysk / Fransk / Spansk | Mye god | +| Alle støttede språk | Alle støttede språk | Avhengig av modell | + +Instillingen `translateLanguage` styrer **utdataspråket**. Kildespråket detekteres automatisk. + +### Modellval per oppgave + +Kvaliteten på oversettelsen varierer mye avhengig av modellen. Notemd gjør det mulig å velge en spesifikk modell kun for oversettelse: + +| Modell | Hastighet | Kvalitet | Kostnad | Bedst til | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | Snabb | God | Lav | Casual, høy volum | +| `gpt-4o-mini` | Snabb | God | Lav | Raske søk | +| `deepseek-chat` | Middel | God | Mye lav | Budget med flere språk | +| `claude-3-5-sonnet` | Middel | Utmärkt | Middel | Teknisk / akademisk | +| `gpt-4o` | Middel | Utmärkt | Middel | Prosa med nøyansbehandling | + +### Översättning av mappar i batch + +Klicka höger på en mapp och välj **"Notemd: Translate folder"** för att översätta alla anteckningar i den mappen. Varje fil bearbetas separat. Konkurrensinställningen styr hur många filer som översätts samtidigt. + +## Konfigurasjon + +| Innstilling | Standard | Effekt | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | Särskild tjänste för översättningstjänster | +| `translateLanguage` | `'en'` | Mål-språk for utdata | +| `translationAppendToNote` | `true` | Lägg till den översatta texten under den ursprungliga. Om det är falskt skapas en ny fil. | +| `batchConcurrency` | `3` | Antal filer som bearbetas samtidigt vid batchöversättning | + +## Eksempel + +Du läser ett kinesiskt forskningsanteckning och vill ha en engelsk version: + +1. Öppna anteckningen +2. Klicka höger --> **"Notemd: Translate current file"** +3. Notemd upptäcker kinesiska, översätter till den av dig konfigurerade måländelsen (engelska) och lägger till: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +Den ursprungliga kinesiska texten förblir oförändrad ovanför översättningen. `## Translation`-rubriken håller båda versionerna i samma fil för enkel referens. + +## Tips + +- **Använd Gemini Flash för stora mängder** -- det är den snabbaste och billigaste alternativet för batchöversättning av stora mappar. +- **Bevar wiki-linker** -- Notemd's anbefaling instruerer LLM til å holde `[[wiki-links]]` uforandret i oversettelsen. Sjekk etter oversettelse, da noen modeller ibland løser dem opp. +- **Stillt eksplisitt utdata-språket** -- automatisk deteksjon fungerer for kilden, men konfigurert alltid `translateLanguage` for å unngå tvil om målet. +- **Batch-oversettelse av konseptnotater** -- hvis din konseptmapp er på ett språk og du trenger den på et annet, hanterer oversettelse på mappen dette i én trinn. + +--- + +## Neste trinn + +- [Research](./research) -- Søk og sammanfatt på hva som helst språk, og oversett sedan resultatene +- [Workflows](./workflows) -- Koble sammen oversettelse med wiki-linking eller konseptutvinning +- [Batch Processing](/docs/advanced/batch-processing) -- Samtidighet og overskrivingsverdier for mappoperasjoner +- [LLM Providers](/docs/providers/overview) -- Velg den beste modellen for ditt språkpar diff --git a/website/i18n/no/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/no/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..dcc5ba8c --- /dev/null +++ b/website/i18n/no/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "Wiki-Linker" +description: "Automatisk generering av wiki-linker for viktige konsepter" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# Wiki-Linker + +<TLDR> +**Notemd legger automatisk `[[wiki-links]]` til ved viktige konsepter i dine notater.** LLM leser innholdet ditt, identifiserer viktige termer i konteksten og setter inn wiki-linker i Obsidian-stil ved hver oppførsel. Valgfritt kan det skapes konseptnotater med baklinker. Støttes synonymsuppresjon, linkintegritet ved endring/deletering og ren utvinningssmodus (ingen endringer i filer). Tilsynelatende mot Auto Link som kun matcher eksisterende notetitel, bruker Notemd AI for å identifisere nye konsepter og skape tilsvarende notater. Dette er en del av [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Oversikt + +Wiki-linking er kjernefunksjonen i Notemd. Den transformerer vanlig tekst til en koblet kunnskapsgraph gjennom: + +1. **Analyse av din note** med ett LLM +2. **Identifisering av viktige konsepter** (termer, personer, metoder, teorier) +3. **Innsetting av `[[wiki-links]]`** ved hver oppførsel +4. **Skapelse av konseptnotater** (valgfritt) med baklinker + +## Hvordan det fungerer + +### Prosess + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### Eksempel + +**Før:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**Efter:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## Bruk + +### Basisk: Legg til linker i den aktuelle noten + +1. Åpne en notat +2. Klikk høyre i redigeringsverktøyet → **"Process file (add links)"** +3. Vente noen sekunder +4. Konseptene er nå koblet sammen! + +### Batch: Behandle flere notater + +1. Klikk høyre på en mapp i filexploreren +2. Välj **"Notemd: Process mapp (legg til lenker)"** +3. Konfigurere: + - Samtidighet (hvor mange filer parallelt) + - Skriv over eksisterende lenker (ja/nei) +4. Klikk **Process** + +### Selektivt: Lenke til spesifikt tekst + +1. Hajser opp tekst til behandling +2. Klikk høyre → **"Process selection (add links)"** +3. Apenbarelysningen analyseres kun + +## Notemd vs Auto Link + +Obsidian har to metoder for automatisk wiki-linking: + +| | **Auto Link** | **Notemd** | +|--|---------------|-------------| +| Lenkekilde | Existerende notetitel i vault | Konsepter identifisert av LLM i innholdet | +| Kan lage nye konsepter | Nei – titelen må allerede eksistere | Ja – AI identifiserer konsepter og skaper notater | +| Hantering av synonymer | Nei | Ja – undertrykkelse av synonymer | +| Skapelse av konseptnotater | Nei | Ja – med baklenger og duplikatkortning | +| Batchbehandling | Nei (enkelt fil) | Ja (mappnivå) | +| Modellrutning per oppgave | Nei | Ja | + +**Auto Link** matcher titler: Hvis en notat med navnet "Machine Learning" eksisterer, omgjør det oppførselene i `[[Machine Learning]]`. Hvis notaten ikke eksisterer, skjer ingenting. + +**Notemd** er AI-stuert: LLM leser din innhold, forstår konteksten, identifiserer konsepter som *bør* bli koblet – selv om ingen notat eksisterer ennå – og skaper både lenken og konseptnotaten. + +## Funksjoner + +### Undertrykkelse av synonymer + +**Problem:** "transformer", "transformers", "Transformer architecture" → 3 separate konsepter + +**Løsning:** Notemd oppdager nær-duplikater og bruker kanonisk form. + +**Konfigurasjon:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### Link Integrity + +**Når du endrer navn på en konseptnotat:** +- Alle wiki-linker oppdateres automatisk (Obsidian kjernefunksjon) +- Backlinkene forblir intakte + +**Når du sletter en konseptnotat:** +- Linkene forblir men vises som "unlinked mentions" +- Du kan skape den på nytt fra enhver forekomst + +### Pure Extraction Mode + +**Ekstraher konsepter uten å endre det opprinnelige:** + +1. Høyreklikk → **"Extract concepts (no linking)"** +2. Konseptnotater blir skapt +3. Opprinnelig fil forblir uendret + +Bruksfall: Behandling av kun-lese-innehold eller endelige utkast. + +## Concept Note Generation + +### Automatic Creation + +**Når det er aktiveret (standard), skaper Notemd:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### Konfigurasjon + +**Utdata-mapp:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Hierarkisk struktur:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**Mall:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## Avanserte valg + +### Kontekstvindu + +**Hvor mye omgivende tekst skal sendes:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +Større verdi = bedre nøyaktighet, høyere kostnad. + +### Minimum antall forekomster + +**Koppla kun sammen konsep som aparerer flere ganger:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +Still på 2 eller 3 for å fokusere på gjentakende temaer. + +### Utklære mønster + +**Slett visse ord:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +Forhindrer overkobling av generelle termer. + +### Skrivetilpassede prompter + +**Øverstille standard LLM-instruksjoner:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +Endre for domenespesifikke behov (f.eks. "Fokuser på medisinsk terminologi"). + +## Tips og beste praksis + +### ✅ Gør + +- **Behandle notater med >100 ord** — Korte notater gir få konsepter +- **Brug kraftfulde modeller** for bedre identifisering af konsepter (GPT-4o, Claude) +- **Gå gjennem før du accepterer** — Kontroller om de foreslåede links er logiske +- **Byg gradvist** — Behandle 5-10 notater, gå gjennom grafen, juster indstillinger + +### ❌ Gør ikke + +- **Overlink** — Ikke alle substantiver behøver en link +- **Behandle utkast flere ganger** — Konseptene kan endre sig, vent til de er stabile +- **Ignorer synonymer** — Aktiver suppression for at unngå "ML" vs "Machine Learning" + +## Prestasjon + +### Hastighet + +| Størrelse på notater | GPT-4o-mini | Claude Sonnet | Ollama (lokalt) | +|-----------|-------------|---------------|----------------| +| 500 ord | 2-3 sekunder | 3-5 sekunder | 5-10 sekunder | +| 2000 ord | 5-8 sekunder | 10-15 sekunder | 20-40 sekunder | +| 5000+ ord | Delvis (mehrere kaller) | Delvis | Delvis | + +### Kostutschatning + +**Eksempel: 1000-ords notat med GPT-4o-mini** +- Inntak: ~1500 tokener +- Utdata: ~200 tokener +- Kostnad: ~ + +**Batchbehandling av 100 notater:** ~ + +## Feilforskning + +### Ingen linker tilføyd + +**Kontroll:** +1. LLM kallet med succes (Settings → Diagnostics) +2. Noten har tilstrekkelig innhold (>50 ord) +3. Konseptene er tekniske/spesifikke (ikke bare pronomer) + +**Prøv:** +- Bruk en mer kraftig modell +- Øk contextvinduet +- Kontroller degens gyldighet for API + +### For mange lenker + +**Løsninger:** +1. Øk minst antall forekomster (2 eller 3) +2. Legg til vanlige ord til utelukkelseslisten +3. Bruk en mindre aggressiv modell + +### Felle konsepknettert + +**Løsninger:** +1. Bruk eksklusiv prompt for domen-specifikke resultater +2. Aktiver synonymsuppresjon +3. Gjennomgå manuelt og fjerne koblinger + +### Koblingene brukes ikke etter endring av navn + +**Dette er normalt Obsidian oppførsel.** + +For å oppdatere alle koblinger: +1. Endre navnet på konseptnoten +2. Obsidian oppdaterer automatisk `[[old]]` → `[[new]]` + +--- + +## Neste trinn + +- 📖 [Konseptnoter](./concept-notes) — Dyptgående informasjon om generering av konseptnoter +- 🔍 [Forskning integrert](./research) — Kombinere koblinger med webbenorskning +- 🎨 [Diagrammer](./diagrams) — Visualisere din kunnskapsgraf diff --git a/website/i18n/no/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/no/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..9546a95c --- /dev/null +++ b/website/i18n/no/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "Arbeidsfluer" +description: "Koble sammen flere oppgaver med en-klikk-knapper" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Arbeidsfluer + +<TLDR> +**Notemd Arbeidsfluer kobler sammen flere oppgaver til en enkelt en-klikk-handling.** Definér sekvenser som `add-links > extract-concepts > research > diagram` med en enkel DSL. Arbeidsfluer vises som knapper i sidenavn og kjører hele kedjen på den aktuelle noten eller mappen. Det leveres med fordefinerte arbeidsfluer; skap deg egne i innstillingene. Hver trinn bruker sin egen modellkonfigurasjon per oppgave. + +Dette er en del av [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Oversikt + +En arbeidsflue fjerner behovet for å kjøre oppgaver én etter en. Istedenfor å klikke høyre fire ganger for å legge til lenker, extrahere konsepter, undersøke ukjente termer og generere en diagramm, trykker du på en knapp i sidenavn og hele kedjen kjøres. Notemd hanterer sekvensering, feiloverføring og fremstilling av fremgang. + +Arbeidsfluer defineres med en lett DSL (domen-spesifikt språk). De finnes i innstillingene, vises som klickbare knapper i Obsidian sidenavn, og kan bli brukt på den aktuelle noten eller hele mappen. + +## Hvordan det fungerer + +### Kjørpipeline for arbeidsfluer + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **Parse** -- DSL-stringen delges på `>` (eller `>`) til en ordnet liste over oppgavidentifikatorer. +2. **Resolve** -- Hver identifikator mappes til en intern kommando (add-links, extract-concepts, research, translate, diagram osv.). +3. **Execute** -- Trinnene kjøres sekventielt. Hvert trinn bruker den konfigurerte leverandøren og modellen per oppgave. +4. **Error handling** -- Dersom et trinn feiler, stopper arbeidsfluen enten eller fortssetter til neste trinn, avhengig av din feilpolitikk. +5. **Done** -- En toast-notifikasjon rapporterer om suksess eller listar alle feilne trinn. + +### DSL-format + +Arbeidsfluer defineres som en `>`-skilt sekvens av oppgavidentifikatorer: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**Tilgjengelige oppgavidentifikatorer:** + +| Identifikator | Aksjon | +|------------|--------| +| `process-current-add-links` | Legg til wiki-linker til den aktive noten | +| `extract-concepts-current` | Utvinn konsep fra den aktive noten | +| `research-and-summarize` | Forskjek utvalgt tekst eller notetittel | +| `process-current-translate` | Oversett den aktive noten | +| `summarize-to-mermaid` | Generer en diagramm fra den aktive noten | +| `generate-from-title` | Generer innhold fra notetittelen | +| `extract-original-text` | Utvinn opprinnelig tekst (for OCR / skannet innhold) | + +**Varianter på mappenivå**: Bytt `current` ut med `folder` i identifikasjonsnavnet. + +### Fordefinerte vs. egne arbeidsfluer + +Notemd leverer ferdige arbeidsfluer for vanlige mønster: + +| Arbeidsfluss | Kedje | Bruksfall | +|----------|-------|----------| +| **En-klikk utvinning** | add-links > extract-concepts > research | Behandle en forskningsartikel i én gang | +| **Full pipeline** | add-links > extract-concepts > research > diagramm | Fullständig kunnskapsextraksjon med visualisering | +| **Overset + Lenk** | Oversette > Legg til linker | Overset og legg til lenker til konseptene i målspråket | + +**Skrivet arbeidsfløyer** erstattes i innstillingene: + +1. Åpne **Settings** --> **Notemd** --> **Workflows** +2. Klikk **"Add Workflow"** +3. Indtast DSL-keden (f.eks. `process-current-add-links>extract-concepts-current`) +4. Giv det en visningsnavn (f.eks. “Snabb kobling + Extrahere”) +5. Den nye knappen vises umiddelbart i sidenavn. + +## Konfigurasjon + +| Innstilling | Standard | Effekt | +|---------|---------|--------| +| `workflows` | Fordefinert sett | Array av arbeidsflussdefinisjoner (navn + DSL) | +| `workflowContinueOnError` | `true` | Fortsett til neste trinn dersom det aktuelle trinnet feiler | +| `workflowShowProgress` | `true` | Vis en fremstegsnotis etter hver trinn er fullført | + +### Per-oppgave-modeller i arbeidsfluer + +Hver trinn i en arbeidsfluss bruker sin egen modellkonfigurasjon per oppgave. Du trenger ikke å specificere modeller i DSL-en selv. Resolusjonsordren er: + +1. Provider/modell per oppgave dersom `useMultiModelSettings` er til stede +2. Global `activeProvider` i annen tilfelle + +Dette betyr at `add-links` kan kjøre på DeepSeek mens `research` kjører på GPT-4o – alt innenfor samme arbeidsflussklikk. + +## Eksempel + +Du har bare importert en PDF fra en maskininlerningsartikel til din vault og ønsker full kunnskapsextraksjon: + +1. Opn den importerte noten +2. Klikk på **"Full Pipeline"**-knappen i siden +3. Notemd kjører: + - **Trinn 1**: Legg til wiki-linker – `[[attention mechanism]]`, `[[transformer]]` osv. + - **Trinn 2**: Extraher konsepter – skaper konseptnotater i din konseptmapp + - **Trinn 3**: Forskning – sammanfatter webkilder for nøkkelord + - **Trinn 4**: Diagram – genererer en Mermaid-mindmap av artikkelens struktur +4. Efter ca. 30 sekunder har din noter linker, konseptnotater finnes, forskningen er tilføyd og en diagramfil er lagret + +Allt fra én enkelt klikk. + +## Tips + +- **Start med fordefinerte arbeidsflusser** – de dekker de vanligste mønstrene. Anpass bare når du trenger en annen sekvens. +- **Aktiver `workflowContinueOnError`** – en feil i diagramtrinnet bør ikke stoppe hele pipelineen. +- **Bruk mapparbeidsfløyer** for massbehandling – høyreklikk på en mappe, velg en arbeidsfløye, og alle notater blir bearbeidet. +- **Giv arbeidsfløyer klare navn** – plassen i sidenavnsplassen er begrenset. Bruk korte, handlingstilsatte navn som "Snabb utvinning" eller "Oversette + Lenke". + +--- + +## Neste trinn + +- [Research](./research) -- Forstå hva forskningsstappen gjør før du legger den til arbeidsfløyer +- [Wiki-Links](./wiki-links) -- Hovedlenkingsfunksjonen som brukes i de fleste arbeidsfløyer +- [Concept Notes](./concept-notes) -- Konseptutvinning som en arbeidsfløyesteg +- [Batch Processing](/docs/advanced/batch-processing) -- Samtidighet og fremstilling av fremgang for mapparbeidsfløyer diff --git a/website/i18n/no/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/no/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..2b619e7f --- /dev/null +++ b/website/i18n/no/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "Konfigurasjon" +description: "Konfigurere Notemd-innstillingene og preferansene" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Konfigurasjon + +<TLDR> +**Notemd-konfigurasjonen omfatter 6 hovedområder:** (1) LLM-leverandører og API-nyckler, (2) Modellvalg per oppgave, (3) Utdataveier og maller, (4) UI-språk og utdataspråk, (5) Søknadsstjenester (Tavily/DuckDuckGo), (6) Egen arbeidsfløyer. Alle innstillinger finnes i Obsidian Settings → Notemd. Endringer treffer effekt umiddelbart. +</TLDR> + +## Oversikt over innstillingene + +Adgang: **Obsidian Settings (⚙️) → Notemd** + +### Hovedseksjoner + +1. **Leverandørkonfigurasjon** — API-nyckler, grunn URLs, modeller +2. **Oppgavinnstillinger** — Modellvalg per oppgave +3. **Utdatakonfigurasjon** — Hvor å gemme genererte filer +4. **Språkinnstillinger** — UI- og utdataspråk +5. **Søknadsintegrasjon** — Tavily/DuckDuckGo-innstilling +6. **Arbeidsfløyer** — Egen knappkjeder +7. **Avansert** — Diagnostikk, batchbehandling, deling + +--- + +## 1. Leverandørkonfigurasjon + +### Legg til en leverandør + +1. **Välj leverandør** fra dropdown (30+ tilgjengelige) +2. **Skriv inn API-nykkelen** +3. **Valgfritt**: Ställ in en egen bas URL (for proxyer/gateways) +4. **Klikk på "Få modelllista"** for å verifisere forbindelsen +5. **Välj standardmodell** + +### Vanlige leverandører + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Local) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### Mehrere leverandører + +Du kan konfigurere flere leverandører og bytte mellom dem per oppgave: +- **Hovedleverandør**: Brukes som fallback +- **Oppgavespesifikke leverandører**: Overskrives for spesifikke oppgaver + +--- + +## 2. Oppgavespesifikke modeller + +Konfigurer ulike modeller for ulike oppgaver for å optimere kostnader/kvalitet: + +### Oppgavetyper + +| Oppgave | Standardmodell | Formål | +|------|--------------|---------| +| **Kobling** | Hovedleverandør | Identifiser konsep for wiki-linker | +| **Konseptgenerering** | Hovedleverandør | Utvinne og beskriv konsep | +| **Forskning** | Hovedleverandør | Sammendrag av websearch-resultater | +| **Oversettelse** | Hovedleverandør | Oversette tekst | +| **Diagramgenerering** | Hovedleverandør | Generere Mermaid/Canvas-diagrammer | + +### Eksempel: Kostoptimalisert innstilling + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### Hvernig å konfigurere + +1. **Innstillinger → Notemd → Oppgavainstillinger** +2. For hver oppgave, velg: + - ✅ **Bruk hovedleverandør** (standard) + - 🔄 **Bruk egen leverandør** → velg leverandør + modell + +--- + +## 3. Utdatakonfigurasjon + +### Utdata av konseptnotater + +**Hvor nye konseptnotater gemmes:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Mall:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### Muligheter for mappstruktur + +**Valg 1: Flatt (alle konsepter i en mapp)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**Valg 2: Hierarkisk ( etter kildemapp)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +Konfigurere: **Instillinger → Utdata → Bruk hierarkiske mapper** + +### Diagramutdata + +**Hvor diagrammer gemmes:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**Format:** +- `.mmd` (Mermaid kilde) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. Språkinnstillinger + +### UI Språk + +**Interfæsspråk** (knapper, menyer, dialoger): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +Støttet: Engelsk, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Русский, العربية, og mer. + +### Utdata-språk + +**Språk for generert innhold** (konseptnotater, forskningsoppsummeringer): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**Bruksfall:** Kinesisk UI + engelsk utdata for bilingual forskning. + +### Sjekk mål + +**Standardmålspråk** for oversettelsesoppgaver: + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. Søkningsintegrasjon + +### Tavily (Anbefalt) + +**AI-optimert søknadsstjeneste:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +Få nyckel: [tavily.com](https://tavily.com/) + +**Funksjoner:** +- Høykvalitetsresultater +- AI-optimerte oppsummeringer +- Kilder og referanser + +### DuckDuckGo (Ekspementell) + +**Ingen API-nykkel nødvendig:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**Obs:** Lavere kvalitet, ingen anpassing. + +--- + +## 6. Arbeidsflusskonfigurasjon + +### Skapa egne arbeidsfluer + +**Arbeidsfløyer kobler sammen flere oppgaver i én knapp.** + +1. **Instillinger → Arbeidsfløyer → Legg til arbeidsfløy** +2. **Navn**: "Papperanalyse-fløy** +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **Spara** + +En ny knapp vises i venstre sidebark. + +### DSL-syntaks + +**Format:** `action1>action2>action3` + +**Tilgjengelige handlinger:** +- `process-current-add-links` — Legg til wiki-linker til den aktuelle noten +- `extract-concepts-current` — Generer konseptnotater +- `research-and-summarize` — Vebresearch + oppsummering +- `translate-current` — Oversette den aktuelle noten +- `summarize-as-mermaid` — Generer Mermaid-diagram +- `process-folder-add-links` — Behandle mappene i batch + +**Eksempler på arbeidsfløyer:** + +**Snabb konseptutdanning:** +``` +process-current-add-links>extract-concepts-current +``` + +**Dyp forskning:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**Multilingual analyse:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. Avanserte stillinger + +### Batchbehandling + +**Behandle flere filer parallelt:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +Høyere = snabbere men mer API kaller. + +### Smart deling + +**For lange notater, del på deler:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +Forhindrer feil på grunn av tokenbegrensning. + +### Diagnostikkpanelen + +**Se detaljerte logg:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +Viser: +- API forespørsler/svar +- Tokenbruk +- Behandlingstid +- Feil + +### Deteksjon av dupliserte konsepter + +**Unngå nær-dupliserte konsepter:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +Høyere = mer aggressiv fusjon. + +--- + +## Konfigurasjonsprofiler + +### Ekspor/Import innstillinger + +**Del konfigurasjoner mellom enheter:** + +1. **Innstillinger → Avansert → Ekspor konfigurasjon** +2. Sparer `notemd-config.json` +3. På ny enhet: **Import konfigurasjon** + +**Hva som er inkludert:** +- Provider API-klær (valgfritt) +- Modellvalg +- Utdataveier +- Kostomiserte arbeidsfluer + +--- + +## Anbefalte konfigurasjoner + +### For studenter + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### For forskere + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### For brukere som er bekymret om privatlivet + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### For bilinguale arbeid + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## Felsøkking av konfigurasjon + +### Innstillingene gemmes ikke +- Kontroller filtilgangene i `.obsidian/plugins/notemd/` +- Prøv: Deaktiver plugin → Aktiver igjen + +### API-klaven er ugyldig +- Ingen ekstra mellomrom +- Kontroller utløpsdatoen +- Sjekk kreditter i leverandørens dashboard + +### Modeller lastes ikke +- Klikk på "Få modellliste" for å oppdatere +- Kontroller nettverksforbindelsen +- Prøv en annen leverandør + +--- + +## Neste trinn + +- 📖 [Utforsk funksjoner](../features/wiki-links) +- 🔌 [Leverandørs innstillingssikter](../providers/overview) +- ❓ [FAQ](../faq) diff --git a/website/i18n/no/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/no/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..a2ee6e79 --- /dev/null +++ b/website/i18n/no/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "Installasjon" +description: "Hvorfor installerer man Notemd i Obsidian" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Installasjon + +<TLDR> +**Installér Notemd på under 2 minutter.** To metoder: (1) Obsidian Community Plugins (anbefalt, en-klikk-installasjon), eller (2) Manuell installasjon gjennom GitHub Releases. Kræver Obsidian 0.15.0+. Virker på Windows, macOS, Linux, iOS og Android. Ingen eksterne avhengigheter. 4k+ nedlader, MIT-licensiert. +</TLDR> + +## Metode 1: Gemeinskaps-plugins (anbefalt) + +1. Åpna **Obsidian Innstillinger** (⚙️-ikon eller `Ctrl/Cmd + ,`) +2. Gå til **Community plugins** +3. Klikk **Søk** +4. Søk etter **"Notemd"** +5. Klikk **Install** +6. Klikk **Aktiver** + +**Gjort!** Du vil se Notemd-ikonen i din venstre siderbar. + +## Metode 2: Manuell installasjon + +### Forudsætninger +- Obsidian 0.15.0 eller nyere +- Git (valgfritt, for klonering) + +### Skridt + +1. **Slett filer** fra [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest): + - `main.js` + - `styles.css` + - `manifest.json` + +2. **Finn plugin-mappen for din vault:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +Dersom mappen `plugins` ikke eksisterer, skap deg den. + +3. **Skap mappen Notemd:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **Kopier de tre filene** inn i mappen `notemd`. + +5. **Lad om Obsidian:** + - Trykk på `Ctrl/Cmd + R`, eller + - Start om Obsidian + +6. **Aktiver pluginet:** + - Instillinger → Community plugins + - Finn "Notemd" i listen + - Slå på det + +## Alternativ: Installér gjennom BRAT + +Hvis du bruker [BRAT pluginet](https://github.com/TfTHacker/obsidian42-brat): + +1. Opn BRAT innstillinger +2. Klikk på "Add Beta plugin" +3. Skriv inn: `Jacobinwwey/obsidian-NotEMD` +4. Klikk på "Add Plugin" +5. Aktiver Notemd i Community plugins + +## Verifisering + +Efter installasjon, verifiser at Notemd fungerer: + +1. Åpne en hvilken som helst notat +2. Høyreklikk i redaktoren +3. Du bør se Notemd-kommandoen som: + - "Process file (add links)" + - "Extract concepts" + - "Research and summarize" + +## Neste trinn + +- **Konfigurer LLM-leverandøren:** [Quick Start →](./quick-start) +- **Feilforskning:** [Common Issues →](../advanced/troubleshooting) + +## Systemkrav + +| Plattform | Versjon | Status | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | Krav | +| **Windows** | 7+ | ✅ Støttet | +| **macOS** | 10.15+ | ✅ Støttet | +| **Linux** | Alle | ✅ Støttet | +| **iOS** | 15+ | ✅ Støttet | +| **Android** | 5+ | ✅ Støttet | + +## Avinstallering + +For å fjerne Notemd: + +1. Instillinger → Gemeinskaps-plugins +2. Finn "Notemd" +3. Klikk på ❌-ikonet +4. Valgfritt: Slett pluginmappen: `<vault>/.obsidian/plugins/notemd/` + +Dina data (notater, konseptnotater osv.) forblir uendret. + +## Oppdatering + +### Automatisk oppdatering (anbefalt) +Obsidian kontrollerer automatisk etter pluginoppdateringer. Når en ny versjon er tilgjengelig: +1. Instillinger → Gemeinskaps-plugins +2. Klikk på "Søk etter oppdateringer" +3. Klikk på "Oppdater" ved siden av Notemd + +### Manuell oppdatering +Hent den seneste utgaven og bytt ut de tre filene i din pluginmapp. + +## Få hjelp + +- 📖 [Snabbstartguide](./quick-start) +- ❓ [FAQ](../faq) +- 💬 [Discord-gemenskapen](https://discord.gg/qnGgsQ9W) +- 🐛 [Meld problemer](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/no/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/no/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..8ead0883 --- /dev/null +++ b/website/i18n/no/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "Snabbstartguide" +description: "Start med Notemd på 5 minutter" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Snabbstartguide + +<TLDR> +**Bytt til å bruke Notemd på 5 minutter.** Tre trinn: (1) Legg til en LLM API-klave (eller bruk lokal Ollama), (2) Åpne en notat og kjøre "Process file (add links)", (3) Utforske enkeltknappsvirkerommer i sidenrutan. Støtter mer enn 30 leverandører. Ingen programmering nødvendig. Virker offline med Ollama. +</TLDR> + +## Trinn 1: Konfigurere din første LLM-leverandør (2 minutter) + +### Alternativ A: Molnleverandør (OpenAI, Anthropic osv.) + +1. Åpne **Settings** → **Notemd** +2. Under **LLM Provider Configuration**, velg en leverandør fra dropdown-listen +3. Skriv inn din **API-klave** +4. (Valgfritt) Klikk på **"Get Model List"** for å se tilgjengelige modeller +5. Velg en modell for hver oppgavetyp + +**Populære valg:** +- **OpenAI**: `gpt-4o-mini` (snabb, billig) +- **Anthropic**: `claude-sonnet-4-6` (høy kvalitet) +- **DeepSeek**: `deepseek-chat` (mye billig) + +### Alternativ B: Lokal Ollama (ingen API-klave nødvendig) + +1. Installere [Ollama](https://ollama.com/) +2. Slett en modell: `ollama pull llama3.1` +3. I Notemd innstillingene, velg **"Ollama"** som leverandør +4. Modellnavn: `llama3.1` (eller enhver modell du har lastet ned) + +## Trinn 2: Prøv din første oppgave (1 min) + +### Legg til Wiki-linker i en notat + +1. Åpne enhver notat med meningsfull innhold +2. Høyreklikk i redaktoren +3. Velg **"Behandle fil (legg til linjer)"** +4. Vente noen sekunder +5. Kjernepåbegreppene er nå `[[wiki-linked]]`! + +**Eksempel:** + +**Før:** +``` +Machine learning models use neural networks to process data. +``` + +**Efter:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## Trinn 3: Utforsk funksjoner (2 min) + +### Utvinne konseptnotater + +1. Høyreklikk → **"Utvinn konsepter fra aktuelle fil"** +2. Notemd skaper separate filer for hver konsept +3. Kontrollér din konfigurerte konseptmapp (standard: `concepts/`) +4. Hver konseptnotat har en baklink til din opprinnelige notat + +### Forskning og sammanfattning + +1. Højlighte et emne i din note +2. Højreklik → **"Forskning og sammanfattning"** +3. Notemd forespørger websearch (Tavily eller DuckDuckGo) +4. Sammenfattningen tilføjes til din note med kilder + +### En-klikks-arbejdsmønster + +1. Kontroller **venstre sidebaren** for knapper til arbejdsmönster +2. Klik **"En-klikks-utvinning"** på enhver note +3. Det køres: tilføj links → utvinn koncepter → forske → generere diagram +4. Allt i én klik! + +## Vanlige første opgaver + +### Udgave 1: Behandle en artikel/papir + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### Udgave 2: Oversætte noter + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### Udgave 3: Skabe en kunnskapskort + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## Tips til anpassning + +### Modellval per oppgave + +Du kan bruge forskellige modeller for forskellige opgaver: + +| Oppgave | Anbefalt modell | Hvorfor | +|------|------------------|-----| +| Legg til lenker | `gpt-4o-mini`, `deepseek-chat` | Rask, mange kaller | +| Utvinn konsep | `claude-sonnet-4-6`, `gpt-4o` | Kvalitetsutvinning | +| Forskning | `perplexity`, `gpt-4o` | Web-basert | +| Oversettelse | `gemini-flash`, `gpt-4o` | Måltalstett | +| Diagrammer | `claude-opus`, lokal modell | Kompleks resonemang | + +Konfigurere i: **Instillinger → Notemd → Modeller for spesifikke oppgaver** + +### Egen arbeidsfløyer + +Skap deg egen knapp: + +1. Instillinger → Notemd → Arbeidsfløyer +2. Klikk på "Legg til arbeidsfløye" +3. Skriv inn DSL: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. Namn det: "Min forskningsfluss" +5. En ny knapp vises i sidenbaren + +## Feilforskning + +### "API Key Invalid" +- Kontroller om nøkken er korrekt (ingen ekstra rom) +- Sjekk om kontoen har kreditter +- Prøv med "Connection Test"-knappen i innstillingene + +### "Model Not Found" +- Klikk på "Get Model List" for å se tilgjengelige modeller +- Nåkleverandører krever spesifikke modellnamn (f.eks. `gpt-4o` ikke `gpt-4`) + +### Linger vises ikke +- Sjekk at noten har nok innhold (>50 ord) +- Prøv en mer kraftig modell +- Kontroller om LLM-kallen var suksessfull (se diagnostikkpanelen) + +### Langsomm performance +- Bruk hastigere modeller (`gpt-4o-mini` istedet for `gpt-4o`) +- Redusér chunk-størrelsen i innstillingene +- Aktiver parallel bearbeidelse for batch-oppgaver + +## Neste trinn + +- 📖 [Utforsk alle funksjoner](../features/wiki-links) +- ⚙️ [Avansert konfigurasjon](./configuration) +- 🔧 [LLM Provider-innstilling](../providers/overview) +- ❓ [FAQ](../faq) + +## Video-tutorial + +Se den 3-minutters hurtigstart-videoen (kinesisk): +[【Fullt åpent og kostnadsfritt! NotEMD 3 minutter i gang】](https://b23.tv/lqR0RlA) + +## Få hjelp + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **Problemer**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **Dokumentasjon**: [Full dokumentasjon](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/no/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/no/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..ba00395a --- /dev/null +++ b/website/i18n/no/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "Introduksjon til Notemd" +description: "Byggere av kunnskapsbaser med AI for Obsidian som muliggjør permanente omformeringer av notater, arbeidsfløier og diagrammer basert på spesifikasjoner" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Introduksjon til Notemd + +<TLDR> +**Notemd** (Note + EMD — Enhanced Markdown Documents) er en open-source Obsidian-plugin som transformerer lestning med LLM til permanente kunnskaper. Tverskyggt med chat-baseret AI der insikter forsvinner etter sesjonen, skriver Notemd resultater **direkte inn i din vault** som wiki-linker, konseptnotater, forskningsoppsummeringer, oversettelser, arbeidsfløier og diagrammer. Den er bygget for forskere, studenter og kunnskapsarbeidere som ønsker at lestning, forskning og visuelle forklaringer samles inn i en strukturert, utviklingstilpasset kunnskapsgraph. +</TLDR> + +## Hva er Notemd? + +Notemd integrerer **30+ store språkmodeller** (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama og mer) i din Obsidian-arbeidsfløye for å automatisere utvinning, organisering, oversettelse, forskning og generering av diagrammer. + +### Kjernemunskap: Tidligenskappende vs. permanente kunnskap + +| Aspekt | Chat-baseret AI (ChatGPT osv.) | Notemd | +|--------|-------------------------------|--------| +| **Hvor resultaterne går** | Chathistorikk (forsvinner) | Din Obsidian vault (persisterer) | +| **Format** | Plaintekstsvarer | Strukturerte filer: `[[wiki-links]]`, konseptnotater, diagrammer | +| **Langtidsverdien** | Må spørre om alt på nytt | Samles inn i en kunnskapsgraph | +| **Utenfor nettverk** | Kræver internett | Virker fullstendig utenfor nettverk med Ollama | + +## Kernfunksjoner + +### 1. **Automatisk Wiki-linking** +- LLM identifiserer nøkkelpersoner i dine notater +- Setter inn `[[wiki-links]]` ved hver oppførelse +- Skaper valgfritt linkede konsepnotater +- Synonymsuppresjon for å unngå duplikater + +### 2. **Generering av konsepnotater** +- Ekstraherer kernkonsepter fra artikler, papirer og notater +- Genererer spesialiserte konsepfiler med baklinker +- Anpasselige utdatemuligheter og maller + +### 3. **Integrasjon med webben** +- Søk Tavily eller DuckDuckGo innenfor Obsidian +- LLM sammanfatter resultater med kilder +- Legger til forskningsresultater til den nåværende noten + +### 4. **Multilingual Translation** +- Oversette utvalgte deler eller hele noter +- Støtter over 21 UI språk +- Uavhengig konfigurasjon av utdataspråk +- Støtte for batch-oversettelse + +### 5. **Diagram Generering** +- **Mermaid**: Flødesskjemer, sekvens-, klass-, tilstand-, ER- og Gantt-diagrammer +- **JSON Canvas**: Obsidian innbyggde layouter +- **Vega-Lite**: Datakurver, tidsserier og sprøytdiagrammer +- **HTML / Editable HTML/SVG**: Selvstendige figurartefakter med semantiske annotasjoner +- **Draw.io / Drawnix artifact boundaries**: Eksporveier for vedlikeholdere fra samme semantiske figurmodell +- **Circuit diagrams roadmap**: Støtte for circuitikz/TikZJax designes rundt gullstandarder, begrenset prompter, renderingsfeilrapporter og validasjon av topologi/layout fremfor ukontrolleret LLM TikZ +- **Preview diagnostics**: Renderartefakter kan vise kompilering-/renderingsfeilrapporter, og ikke-inline-kilder kan undersøkes uten å kreve en LaTeX-runtime på plugin-siden +- Automatisk feilretting for Mermaid-feil + +### 6. **One-Click Workflows** +- Koble flere handlinger sammen til siderbarkknapper +- Definisjon av arbeidsfluss basert på DSL +- Eksempel: `add-links > extract-concepts > research > diagram` + +## Hver bør bruke Notemd? + +✅ **Forskere** som les artikler og bygger litteraturoversikter +✅ **Studenter** som organiserer studienotater og skaper konseptkarteler +✅ **Kunnskapsarbeidere** som ønsker at lesingsinsikter skal behandles lokalt +✅ **Bilinguala profesjonelle** som trenger oversettelse + wiki-linking +✅ **Brukere med privatlivsbevissthet** som ønsker lokal LLM-støtte (Ollama) +✅ **Kraftige brukere** som anpasser prompter og arbeidsflisser + +## Hvorfor Notemd + Obsidian? + +**Obsidian** er en lokalførst, markdown-basert kunnskapsbas. **Notemd** tilbyr AI-superkrafter: +- Dina data forblir i din egen databas (ikke i en molnettjeneste) +- Virker offline med lokale modeller +- Kostnadsfri og åpen kildekod (MIT-licens) +- Integrasjon med eksisterende Obsidian-pluginer +- Skalerer til ti tusenvis av noter + +## Start med + +1. **Installasjon**: Innstillinger → Community Plugins → Søk → "Notemd" +2. **Konfigurering**: Legg til din LLM-leverandørs API-nyckel (eller bruk lokale Ollama) +3. **Prøv det**: Åpne en note → Høyreklikk → "Processer fil (legg til lenker)" +4. **Utforsk**: Sjekk sidenfor en-klikk-arbeidsfluer + +👉 [Installasjonsguide](./getting-started/installation) | [Snabbstarttutoriale](./getting-started/quick-start) + +## Riktning for diagramfunksjonalitet + +Notemds diagramarbeid beveger seg bort fra "be modellen om å skrive en syntaksstrang" og mot en laget pipeline: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +Den nåværende implementasjonen støtter allerede Mermaid, JSON Canvas, Vega-Lite, HTML-fallback, redigerbare HTML/SVG, Draw.io XML-artefakter, en minimal Drawnix JSON-undermengde, forhandsvisningssjekk/allekilde-fallback, og en offline `CircuitSpec -> circuitikz`-prototyp for vanlige-kilde og CMOS-inverter-guldetemplater. Kretsdiagrammer er en sværere klasse: circuitikz kan uttrykke nøyaktig elektrisk topologi, men ukontrolleret LLM-utdata gir ofte ulesbar routering eller LaTeX som ikke renderes. Neste retningen er å holde circuitikz kontrollert med guldetilnærmingstemplater, regler for nodgridslayout, renderingssjekk, og screenshot-feedbackslinger. + +Lest detaljene i [Diagrammer](./features/diagrams). + +## Arkitektur + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd vs andre Obsidian AI-pluginer + +De fleste Obsidian AI-pluginene er konversasjonsfokusert (du spør, AI svarer, insikter forblir i chaten). Notemd er **skriv-fokusert**: AI bearbeider dine noter og skriver strukturerte resultater direkte inn i din vault. + +| Funksjonalitet | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| Automatisk innføring av wiki-linker | Ja | Nei | Nei | Nei | +| Generering av konseptnotater | Ja (med baklinker + duplikatkortning) | Nei | Nei | Nei | +| Generering av diagrammer | Ja (Mermaid, Canvas, Vega-Lite, HTML, redigerbare artefakter) | Nei | Nei | Nei | +| Integrasjon med webbenforhold | Ja (Tavily + DuckDuckGo) | Nei | Nei | Nei | +| Behandling av mapper i batch | Ja | Begrenset | Nei | Begrenset | +| Modellrutning per oppgave | Ja (7 oppgaver, uavhengige modeller) | Nei | Nei | Nei | +| En-klikk-workflow-kjeder | Ja (DSL) | Nei | Nei | Nei | +| Oversettelse (batch) | Ja | Nei | Nei | Nei | +| Chatt med vault | Nei | Ja | Nei | Nei | +| Semitisk likhetssøk | Nei | Nei | Ja | Nei | +| Mønsterbasert generering | Nei | Nei | Nei | Ja | +| LLM leverandører | 36 (cloud + gateway + lokal) | 3-5 | 2-3 | 3-5 | +| Fullt offline | Ja (Ollama) | Delvis | Delvis | Delvis | + +**Når du velger Notemd**: Du vil at AI skal bygge en permanent kunnskapsgraph – ikke bare chatte om dine notater. + +**Når du velger Copilot**: Du ønsker en konversasjonsbasert AI-assistent inni Obsidian. + +**Når du velger Smart Connections**: Du vil oppdage eksisterende forhold mellom notater gjennom semantisk søk. + +## Filosofi + +**Notemd anser at AI bør styrke menneskers kunnskapsskapende arbeid, ikke ersatte det.** Pluginet: +- Holder deg i kontrollen (gjennomgå før du setter inn endringer) +- Bevarer konteksten (alle resultater refererer tilknytning til kilden) +- Respekterer privatlivet (lokalt LLM-støtte, ingen telemetri) +- Forblir ekstensibel (åpne APIs, egne arbeidsfluer) + +## Open Source + +- **Lisens**: MIT +- **Kildekod**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **Samfunnet**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **Bidra**: PRs er velkomne, se [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +**Neste**: [Installation →](./getting-started/installation) diff --git a/website/i18n/no/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/no/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..0fcaf4e7 --- /dev/null +++ b/website/i18n/no/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Obsidian AI-kunnskapstilsynsguide" +description: "Komplet guide til å bygge en koblet kunnskapsbas med AI – fra wiki-linker og konseptutvinning til forskning, oversettelse og diagramgenerering" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Obsidian AI-kunnskapstilsynsguide + +<TLDR> +**Notemd transformerer LLM-driven leseaktivitet til permanent kunnskap: wiki-linker kobler sammen konsepter, konseptnotater skaper en tilgjengelig graf, forskning tar inn nettet i din vault, oversettelse bryter språkbarrierer, diagrammer gjør strukturen synlig, og arbeidsfluer koble alt sammen med én klikk.** Dette guideet dekker hele prosessen – fra rå notater til en koblet, visuell, multilingual kunnskapsbas. +</TLDR> + +## Hvorfor AI-kunnskapstilsyn? + +Tradisjonell notatering gir flat filer. Selv med manuelle wiki-linker forblir de fleste notater uforståelige. Notemd bruker LLM for å automatisere koblingslaget: + +- **LLM-systemene les din innhold** og identifiserer hva som er viktig – termer, metoder, personer, teorier +- **Linker blir automatisk innsett** ved hver konseptoppførsel, ikke begravd i "se også" +- **Konseptnotater genereres** som sjældne, tilgjengelige filer +- **Forskning beregner ut notater** med kontekst fra nettet +- **Diagrammer gjør strukturen synlig** – mind-mapper, fløe-diagrammer, data-diagrammer fra samme innhold + +Resultatet: en kunnskapsgraf som vokser med hver notat du bearbeider, ikke bare når du husker å legge til linker. + +## Helen prosessen + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +Hver trinn er uavhengig. Bruk én eller alle. Den mest effektive sekvensen: **Legg til linker → Konseptnotater → Diagrammer**. + +--- + +## 1. Wiki-linker: Å gjøre koblingene uttrykkelige + +Wiki-linker er ryggbeinet i en kunnskapsgraf. Notemd bruker en LLM for å: + +1. Læs innholdet i din notat (del på deler for lange dokumenter) +2. Identifiser degenskaperne — prioriterer spesifikke, tekniske termer fremfor generelle substantiver +3. Sett inn `[[wiki-links]]` ved hver oppførelse +4. Undertrykk synonymer så at "ML" og "Machine Learning" ikke skaper separate noder + +### Når å bruke + +- **Alle notater >100 ord** — kortere notater gir få konsepter +- **Forskningsartikler, tekniske dokumenter, møtetekster** — rike på domenespesifikke termer +- **Efter innholdet er stabilt** — behandle ikke endelig utkast flere ganger + +### Viktig innstilling + +| Innstilling | Anbefalt | Hvorfor | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek eller GPT-4o-mini | God nøyaktighet til lav kostnad | +| Synonymundertrykkelse | Aktivert | Forhindrer dupliserte noder | +| Konsekvensvindu | Paragraf | Balansen mellom nøyaktighet og kostnad | + +→ [Dypdypdyp i Wiki-linker](/docs/features/wiki-links) + +--- + +## 2. Konseptnotater: Gjenopprettelige kunnskapsnoder + +Wiki-linker kobler sammen idéer i teksten, men konseptnotater gjør det mulig å finne hver idé uavhengig. Hver konsept får sin egen `.md`-fil: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### Utdragningsprosessen + +Prompten for LLM er mye strukturert: +- Normalisere til enkelform +- Førstegangig prefereres flerordige begreper fremfor enkelte ord (“Dielectric Relaxation” og ikke “Relaxation”) +- Slett referanser/bibliografi-seksjoner +- Utdata som `CONCEPT:` linjer for deterministisk parsing + +Konseptene fjernes duplikater mellom delene gjennom `Set<string>`. LLM-feil i enkelte deler stopper ikke prosessen. + +### Baklinker + +Når det er aktiveret, følger hver konseptnoter hvilke kildenotater som nevner den. Obsidian's innbyggde backlink-paneel viser også omvendte forbindelser. + +### Deduplisering + +Notemd's 4-stegs dedup-maskin oppdager: +1. **Nøyaktige matcher** — sammenligning av filnavn uavhengig av store/basse bokstaver +2. **Mangeform** — "Models.md" mot "Model.md" +3. **Symbolnormalisering** — "A-B.md" mot "A B.md" +4. **Enordighetskontroll** — "ML.md" markeres når "Machine Learning.md" eksisterer + +### Kjedeinnstillinger + +| Innstilling | Anbefalt | Hvorfor | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` eller `🧠 concepts/` | Holder vault-organisert | +| `extractConceptsAddBacklink` | On | Muliggjør omvendt søk | +| `extractConceptsMinimalTemplate` | Off | Fullstendig mall med Linked From | +| Modell per oppgave | DeepSeek | Konseptutvinning trenger ikke dyre modeller | +| Synonymsuppresjon | On | Samme innstilling påvirker både kobling og utvinning | + +→ [Concept Notes deep dive](/docs/features/concept-notes) + +--- + +## 3. Forskning: Å introdusere webben + +Notemd integrerer webbsøkking i din notateringsprosess: + +1. **Søgeoppskrift** — ditt notetitel eller val blir en søgeoppskrift +2. **Webbsøkking** — Tavily (anbefalt, kræver API-nyckel) eller DuckDuckGo (gratis, ingen nyckel) +3. **LLM-sammanfattelse** — søgeresultaterne sammenspises til en relevant sammanfattelse +4. **Legg til i noten** — sammanfattelsen legges til ved markørposisjonen eller som en ny sekcjon + +### Når man skal bruke + +- Før man bearbeider et nytt tema — få først webbkontekst +- Når en konseptnotebesøker forbedring — forske før man legger til lenker +- For litteraturoversikter — forske i batch på en mapp med noter + +### Viktig innstilling + +| Innstilling | Anbefalt | Hvorfor | +|---------|-----------|-----| +| `researchProvider` | GPT-4o eller Claude | Forskning krever høyere kvalitet på sammanfattelser | +| Søkeservice | Tavily | Bedre relevans, konfigurerbar dybde | +| `maxResearchContentTokens` | 4000 | Balanse mellom dybde og kost | + +→ [Research deep dive](/docs/features/research) + +--- + +## 4. Oversettelse: Å bruke bort språkbarrierer + +Notemd oversetter notater med den konfigurerte LLM-en din — ikke en spesialiserert oversettelses API-en. Det betyr dette: + +- **Kontekstbevist oversettelse** — LLM forstår hele dokumentet, ikke sentens for sentens +- **Hantering av tekniske termer** — "gradient descent" bleier "梯度下降" og ikke "坡度向下" +- **Stasjonær oversettelse** — oversett hele mappen med notater i én operasjon +- **Modell per oppgave** — bruk Gemini Flash for oversettelse (snabb, billig, multilingual) + +### Språkstøtte + +Notemd selv støtter 21 UI-språk. Oversettelsesmålsspråket kan konfigureres per oppgave. Vanlige par: EN↔ZH, EN↔JA, EN↔KO, EN↔DE, EN↔FR, EN↔ES. + +→ [Translation deep dive](/docs/features/translation) + +--- + +## 5. Diagrammer: Å gjøre strukturen synlig + +Notemd's diagrampipeline er basert på spesifikasjoner: LLM genererer en strukturert `DiagramSpec` JSON, og derefter oversetter adaptere det til målformatet. Dette gir mer tillitelig resultat enn å be LLM om rå Mermaid-syntax. + +### Intent Detection + +Notemd inferer den beste diagramtypen fra innholdet: + +- **Tabeller med tall** → datachart (Vega-Lite) +- **Klient/server-ordforbørg** → sekvensdiagramm (Mermaid) +- **Entitet/hovednyckel** → ER-diagramm (Mermaid) +- **Trinn/processfluss** → flussdiagramm (Mermaid) +- **Konseptkort-sleutelord** → JSON Canvas (Obsidian native) +- **Standard** → mindmappe (Mermaid) + +### Rendering Chain + +Primært mål → fallback → fallback → HTML. Hvis Mermaid-syntaxen feiler, prøver det igjen en gang med feilkontekst til LLM, og faller deretter tilbake til et minimalt diagram. + +### Kjedeinnstillinger + +| Innstilling | Anbefalt | Hvorfor | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | På | Bedre kvalitet gjennom specifikasjonsførst | +| `experimentalDiagramCompatibilityMode` | `best-fit` | Native mål per intent | +| `summarizeToMermaidProvider` | GPT-4o eller Claude | Diagramm-specifikasjoner krever romlig resonans | +| `autoMermaidFixAfterGenerate` | På | Fanger LLM-syntaxfeil automatisk | +| Størkelse av lokal kunnskap | Aktivert for domen-spesifikt bruk | Forbedrer nøyaktigheten med vault-kontekst | + +→ [Diagrams deep dive](/docs/features/diagrams) + +--- + +## 6. Arbeidsfluer: En-klikk automatisering + +Arbeidsfluer kobler flere oppgaver sammen i en enkelt sidebarknapp. DSL-formatet er: + +``` +task1 | task2 | task3 +``` + +Eksempel: `addLinks | extractConcepts | generateDiagram` — bearbeider en not fra råtekst til en fullt koblet, visuell kunnskapsnode med én klikk. + +### Anbefalte arbeidsfluer + +| Arbeidsfluss | Kedje | Bruksfall | +|----------|-------|----------| +| Full prosess | `addLinks \| extractConcepts \| generateDiagram` | Nye noter | +| Forskning først | `research \| addLinks` | Ukjente emner | +| Polyglot | `translate \| addLinks` | Multilingual notes | +| Diagram kun | `generateDiagram` | Snabb visualisering | + +→ [Workflows deep dive](/docs/features/workflows) + +--- + +## 7. LLM leverandører: 36 valgmuligheter fra cloud til lokal + +Notemd støtter 36 leverandører over 4 transporttyper. Hovedgrupper: + +- **Internasjonalt cloud**: OpenAI, Anthropic, Google, Mistral, xAI +- **Kinesisk cloud**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **Gatewayer**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **Lokal**: Ollama, LMStudio, OVMS — ingen API-klasse, ingen data leaves your machine + +### Strategi for modellbruk per oppgave + +Den mest kosteffektive innstillingen bruker billige modeller for enkle oppgaver og kraftige modeller for komplekse oppgaver: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [LLM Leverandøroversikt](/docs/providers/overview) + +--- + +## Checkliste for å starte + +1. **Installér Notemd** — [Community Plugins](/docs/getting-started/installation) (anbefalt) eller manuelt +2. **Konfigurér en leverandør** — DeepSeek (enkeltest), OpenAI, eller Ollama (gratis) +3. **Behandle din første note** — høyreklikk → "Process file (add links)" +4. **Ställ inn konseptmapp** — Innstillinger → Notemd → Utdata → Konseptmapp +5. **Utvinne konsepter** — kjør "Utvinne konsepter" på samme notat +6. **Generer en diagram** — kjør "Generer diagram" for å visualisere koblingene +7. **Skap en arbeidsfluss** — koble oppstående trinn til en en-klikk-knapp + +## Anbefalte konfigurasjoner + +### Student (Budget) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### Forskere (Kvalitet) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### Privatskap i førstehand (Endast lokal) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### Tospråklig (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## Vanlige mønster + +### Mønster: Behandle en forskningsartikel + +1. Importér PDF-innhold (eller kliste inn) +2. **Forskning** — få webbkontekst om emnet +3. **Legg til lenker** — identifisere og legge til lenker til nøkkelkonsepter +4. **Utvinne konsepter** — skape sjældne notater +5. **Generer Diagram** — visualisere artikkelens struktur + +### Mønster: Daglig notatforbedring + +1. Skriv daglig note +2. **Legg til lenker** — kobler dagens ideer til eksisterende konsepter +3. Konseptnotater oppdateres automatisk med baklenker + +### Mønster: Literaturoversikt + +1. Skap et mapp med artikler/notater +2. **Legg til lenker i batch** — behandle hele mappe +3. **Fjern dupliserte konsepter** — rens opp nær-dupliserte notater +4. **Generer diagram** — mind-mapp av hele litteraturen + +--- + +*Notemd er open source (MIT) og fungerer med Obsidian 0.15.0+ på alle platformer. [Installere nå](/docs/getting-started/installation) eller [se på GitHub](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/no/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/no/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..29821f3f --- /dev/null +++ b/website/i18n/no/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "Konfigurere Anthropic Claude" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Anthropic Provider + +<TLDR> +**Anthropic bruker den innbygde Messages API-transporten, ikke den OpenAI-kompatible transporten.** Den nåværende forsinkingen standardiseres til `claude-3-5-sonnet-20240620`, `https://api.anthropic.com` og `temperature: 0.5`. Behandl det som en separat protokollyta når du feildiagnostiserer. + +Dette er en del av [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Oppsett + +Skap en Anthropic API-nyckel, legg til en `Anthropic`-providerprofil, og låm Base URL på den innbygde endpointen medmindre du ruter gjennom en dedikert gatewayprofil. Velg den Claude-modell-ID du ønsker å bruke i feltet for modell; standardverdien holder den eksisterende produktbasen stabil. + +Anthropic er en god valg for høykvalitativ sammanfattelse, forskningssynthese og konseptutvinning. Hvis du blander det med billigere tilbydere, sett det kun på de oppgavene som nyter fordel av dens utdatakvalitet. + +## Endpoint og autentisering + +| Felt | Nåværende forsinking | +|-------|----------------| +| Transport | `anthropic` | +| API-klave | Krav | +| Base URL | `https://api.anthropic.com` | +| Standardmodell | `claude-3-5-sonnet-20240620` | +| Temperature | `0.5` | +| Kontakstest | Kun chat | + +Kjernen sender forespørsler til `/v1/messages` med `x-api-key` og `anthropic-version: 2023-06-01`. Konfigurer ikke en OpenAI-stil `/v1/chat/completions`-endpoint under denne forsinkingen; bruk isteden en OpenAI-kompatibel gatewayforsinking. + +## Modelloppdagelse + +Anthropic bruker `anthropic-models`-discovery-modusen i leverandørregisteret. Hvis din nyckel eller konto ikke kan liste modeller, hold en kjent modell-ID i profilen og validere gjennom koblingsprøven. + +Transportet er ikke interbytbar med OpenAI-kompatible leverandører. En Claude-modell som ruteres gjennom OpenRouter, LiteLLM eller en annen gateway tilhører den gjennomførende gateway-profilen, ikke den innbygde Anthropic-profilen. + +## Feilforskning + +- `401` eller `403`: Kontroller nyckelskope, arbeidsområdeadgang, fakturering og om nykkelen tilhører det forventede Anthropic-arbeidsområdet. +- `404`: Den basale URL-verdien er feil eller den valgte modell-ID-en er ikke tilgjengelig for kontoen. +- Gateway-stil Claude-modell-IDer feiler: flytt profilen til den passende gateway-leverandøren, fordi innbygd Anthropic forventer innbyggde modellnamn. +- Lange forespørsler feiler senere: redusér modellutdatastørrelsen per oppgave eller bruk en modell med en høyere kjent utdata-token-grænse. + +## Når å bruke + +Bruk Anthropic når kvaliteten på syntese, forskningsnotater eller strukturert skrivning er viktigere enn råkostnader. Bruk ikke den som en generell OpenAI-kompatibel fallback; den separate transporten er poenget, og å blande protokoller gjør diagnostikken sværere. + +--- + +## Neste trinn + +- [LLM Leverandører](/docs/providers/overview) -- Full konfigurasjon, modeller per oppgave og gjenprøvelogikk +- [Troubleshooting](/docs/advanced/troubleshooting) -- Fikser 401/403- og koblingsfeil diff --git a/website/i18n/no/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/no/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..8333daf0 --- /dev/null +++ b/website/i18n/no/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "Kinesiske leverandører" +description: "Konfigurér Qwen, DeepSeek, GLM, osv." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Kinesiske leverandører + +<TLDR> +**Notemd støtter leverandører i Kina og med kinesisk opprinnelse gjennom hovedsakelig OpenAI-kompatible endpointer.** Den nåværende listen inkluderer DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, MiniMax, Baidu Qianfan, SiliconFlow, Huawei Cloud MaaS og Z AI. Værdien er regionalt omfang og kostkontroll; risikoen er leverandørspesifikt modellnavn og kontoblokkering. + +Dette er en del av [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Oppsett + +Skap deg en leverandørkonto, generer en API-nyckel, og velg deretter den tilsvarende Notemd-leverandørpresetten istedenfor å bruke en generell OpenAI-profil. Presetten inneholder standard Base URL, modell, API-testmodus, modelloppdagelsesverdier og alle leverandørspesifiske UI-felt. + +Bruk modellvalg per oppgave aktivt her. For eksempel, hold DeepSeek eller GLM i arbeidsprosesser med mye resonering, bruk Qwen eller Moonshot for bred kinesisk språkbruk, og send kodingsoppgaver til Qwen Code når kontoen eksponerer kodermodeller. + +## Endpoint og autentisering + +| Leverandør | Standardmodell | Base URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (endpoint-ID er nødvendig) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**Obs:** Doubao krever en Ark endpoint-ID (format: `ep-xxxxxxxx-xxxx-xxxx`) istedenfor et standardmodellnavn. + +De fleste av disse leverandørene bruker den delte OpenAI-kompatible kjernen, men deres konto- og modellsemantikk er forskjellig. Hold presettspesifikt Base URL medmindre du har verifisert kontoens alternativ endpoint. + +## Modelloppdagelse + +DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan og SiliconFlow bruker OpenAI-kompatibel modelloppdagelse når leverandøren støtter listing. Huawei Cloud MaaS bruker `huaweicloud-modelarts-models`-moduset fordi ModelArts-deployementmetadata er ikke identisk med en generell `/v1/models`-liste. + +Trekk ikke konklusjonen at oppdagelsefeil betyr at chat er umulig. Nokkele leverandører tillater chat mens de begrenser modelllistingsrettigheter. I så fall, hold en eksplisitt modell-ID i profilen og validere med koblingsprøven. + +## Feilforskning + +- Autentiseringen lykkes men chat feiler: modellnavnet kan være utenfor kontoens tillatelser eller region. +- Doubao feiler med et standardmodellnavn: bruk Ark endpoint-ID-en i modellfeltet når din deployement krever det. +- Resonanssvarene er trunkerte: kontroller leverandørspesifikke maks utdatatokens og Notemds modellbaserte maks-tokeninnstillinger. +- Regionalt nettverk varierer: bruk leverandørens Kina-region endpoint når vault-maskinen er i Kina; bruk internasjonalt endpoint kun når både kontoen og nettverksveien er gyldige. + +## Når å bruke + +Bruk kinesiske leverandører når regionalt latens, betalings-/kontoadgang, kinesisk språkkvalitet eller kost er den primære begrænsningen. Vælg direkte OpenAI, Anthropic, Google eller lokale leverandører, hvis du behøver en enklere protokollgrænse eller stærkere konsekvens i fejlfinding mellem leverandører. + +--- + +## Neste trinn + +- [LLM Leverandører](/docs/providers/overview) -- Full konfigurasjon, modeller per oppgave og gjenprøvelogikk +- [Troubleshooting](/docs/advanced/troubleshooting) -- Løs problemer med regionalt forbindelse og autentifiseringsfejl diff --git a/website/i18n/no/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/no/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..e7f516e7 --- /dev/null +++ b/website/i18n/no/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "Konfigurere Google Gemini" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Google Provider + +<TLDR> +**Google bruker den innbygde Gemini Generative Language API-transporten.** Den aktuelle forsinkelsen standardiseres til `gemini-2.0-flash-exp`, `https://generativelanguage.googleapis.com/v1` og `temperature: 0.5`. Det er ikke en OpenAI-kompatibel profil. + +Dette er en del av [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Oppsett + +Skap en Google AI Studio eller Google Cloud API-nyckel med Gemini-adgang, legg til en `Google`-leverandørprofil, og beholde den innbygde Generative Language Base URL. Bruk den standardmessige Gemini Flash-profilen for snabb oversettelse og brede noterarbeidsfløyer, og overskriv modeller per oppgave når du trenger en større eller mer kapabel Gemini-modell. + +Unngå å plassere Gemini-modell-ID:er i en OpenAI-kompatibel profil medmindre du uttrykkelig bruker en gateway som eksponerer Gemini gjennom en OpenAI-kompatibel API. + +## Endpoint og autentisering + +| Felt | Nåværende forsinking | +|-------|----------------| +| Transport | `google` | +| API-klave | Krav | +| Base URL | `https://generativelanguage.googleapis.com/v1` | +| Standardmodell | `gemini-2.0-flash-exp` | +| Temperature | `0.5` | +| Kontakstest | Kun chat | + +Kjernen kaller `/models/{model}:generateContent?key={apiKey}`. Nykkelen sendes som en søkeparameter fordi det er så innbygde Gemini-endpunkten er koblet inn i pluginet. + +## Modelloppdagelse + +Google bruker `google-models`-discovery-modusen. Discovery bør returnere Gemini-modeller tilgjengelige for API-nykkelen; hvis selektoren er tom, prøv nykkelen mot samme Base URL og bekreft at modellfamilien er aktivert for den kontoinnholdet. + +Kjente utdata-token-takter er modellavhengige i leverandørregisteret. Hvis en lang oversettelse eller diagramforklaring trunkseres, velg en Gemini-modell med en høyere støttet utdatatak eller redusér den forespurtte utdatastørrelsen. + +## Feilforskning + +- `400`: Modell-ID-en matcher vanligvis ikke den innbygde Gemini-ruten, eller forespørselen overstiger modellens støttede form. +- `401` eller `403`: Kontroller nykkelrestriksjoner, projekt/API-aktivering, og om nykkelen kan få adgang til Gemini. +- `404`: Modell-ID-en er ikke tilgjengelig i den konfigurerte API-versjonen. +- Gateway-exempler feiler under denne profilen: Bruk gateway-forsinkelsen istedet for den innbygde Google-leverandøren. + +## Når å bruke + +Bruk Google for snabb oversettelse, stort omfang av noterrengjøring, og arbeidsfløyer der Geminis kostnads/performansforhold er bedre enn direkte OpenAI eller Anthropic. Velg en annen leverandør for arbeidsfløyer som krever OpenAI-kompatibel resonansmodellhantering. + +--- + +## Neste trinn + +- [LLM Leverandører](/docs/providers/overview) -- Full konfigurasjon, modeller per oppgave og gjenprøvelogikk +- [Translation](/docs/features/translation) -- Gemini Flash anbefales for omfattende oversettelsesoppgaver diff --git a/website/i18n/no/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/no/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..e7b3b9d6 --- /dev/null +++ b/website/i18n/no/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "Lokale modeller" +description: "Konfigurer Ollama og lokale LLMs" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# Lokale modeller + +<TLDR> +**Lokale leverandører holder innholdet bort fra hosterte APIs.** Den aktuelle lokale plassen dekker Ollama med den innbygde `ollama`-transporten og LMStudio gjennom den OpenAI-kompatible transporten. Ingen API-klave er nødvendig for noen av plassene, men den lokale serveren og modellen må allerede være i gang. + +Dette er en del av [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Oppsett + +For Ollama, installér Ollama, hent den modell du ønsker, starte serveren og legg til en `Ollama`-leverandørprofil i Notemd. For LMStudio, laste inn en modell i LM Studios lokale server og legg til en `LMStudio`-leverandørprofil. + +Lokale modeller er operasjonsavhengigheter, ikke bare stillinger. Notemd kan kun kalle det som den lokale prosessen eksponerer, så verifiser den lokale modellen utenfor Obsidian før du felsøker pluginet. + +## Endpoint og autentisering + +| Leverandør | Base URL | Standardmodell | API-klave | Notater | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | Ikke nødvendig | NDJSON-strømming; modelloppdagelse gjennom `/api/tags` | +| LMStudio | `localhost:1234/v1` | `local-model` | Ikke nødvendig | Sendes `"EMPTY"` som bearer-token; OpenAI-kompatibel | + +Ollama bruker den innbygde `/chat`-plassen under sin Base URL. LMStudio følger den OpenAI-kompatible `chat/completions`-veien og forventer en modell som er lastet inn i den lokale serveren. + +## Modelloppdagelse + +Ollama bruker `ollama-tags`-oppdagelsesmodusen og listar lokalt hentede tagg. LMStudio bruker OpenAI-kompatibel modelloppdagelse når sin server eksponerer `/v1/models`. + +Hvis oppdagelsen returnerer ingenting, er det vanligvis en problem med tilstanden til den lokale serveren: modellen er ikke hentet, ikke lastet inn, eller serveren er koblet til en annen host/port enn profilen. + +## Feilforskning + +- Kobling nekteres: start Ollama eller LM Studio og bekreft den konfigurerte porten. +- Modell ikke funnet: hent Ollama-taggen eller last inn LM Studios modell før du prøver. +- Langsomm utdata: redusere kontekststørrelsen, bruke en mindre lokal modell, eller sende tunge oppgaver til en hostert leverandør. +- Tomme eller feilformet svar: bekreft at den valgte leverandørprofilen passer til den lokale servers protokoll; Ollama og LMStudio er ikke utbytelige. + +## Når å bruke + +Bruk lokale leverandører for private skjønnheter, offline-arbeid eller billige, gjentakende oppgaver. Anta ikke automatisk at det er bedre å bruke lokale løsninger for forskningssynthese eller langvarig resonering; modellkvalitet og hardvergbegrensninger er utvekslingspunktene. + +--- + +## Neste trinn + +- [LLM Leverandører](/docs/providers/overview) -- Full konfigurasjon og modellinnstilling per oppgave +- [Løsning av problem](/docs/advanced/troubleshooting) -- Fikser feil om connection-refused når den lokale serveren ikke kjører diff --git a/website/i18n/no/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/no/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..11f1390a --- /dev/null +++ b/website/i18n/no/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "Konfigurer OpenAI (GPT-4, GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# OpenAI Provider + +<TLDR> +**OpenAI bruker den delte OpenAI-kompatible transporten.** Den aktuelle forsinkelsen standardiseres til `gpt-4o`, `https://api.openai.com/v1`, `temperature: 0.5` og `models-then-chat`-kontakttesten. Bruk denne siden når du trenger nøyaktige feltsemantikker; bruk oversikten [LLM Providers](/docs/providers/overview) for valg på kategorienivå. + +Dette er en del av [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Oppsett + +Skap en OpenAI API-klucz, legg til en `OpenAI`-leverandørprofil i Notemd-innstillingene, og behold den standardmessige Base URL medmindre du avsiktlig peker mot en OpenAI-kompatibel gateway. Modellfeltet kan forblive på `gpt-4o` for generelt bruk eller bli erstattet med en annen OpenAI-modell-ID som kontoen din kan kalle. + +Bruk modeller spesifikt for oppgaver for kostkontroll: behold sterkere modeller for forskning, konseptutvinning og langformig omstrukturering; bruk billigere eller hastigere modeller for oversettelse, lenkeforslag og korte sammanfattinger. + +## Endpoint og autentisering + +| Felt | Nåværende forsinking | +|-------|----------------| +| Transport | `openai-compatible` | +| API-klave | Krav | +| Base URL | `https://api.openai.com/v1` | +| Standardmodell | `gpt-4o` | +| Temperature | `0.5` | +| Kontakstest | `/models`, deretter `/chat/completions` | + +Notemd normaliserer OpenAI-kompatible base URL-er før det tillegges `chat/completions` eller `models`. Inkludere ikke en etterliggende `/chat/completions` i Base URL; dette skaper en duplisert path. + +## Modelloppdagelse + +OpenAI bruker den generelle OpenAI-kompatible modelloppdagelsesveien. Innstillingene UI spør først `/v1/models`, og validerer deretter den valgte modellen med en lettviktig chat-behov. Hvis oppdagelsen feiler men chaten fortsatt fungerer, kontroller om din klucz har tillatelse for model-liste eller om en gateway blokkerer modelllistet. + +Reasoning-modeller behandles som en protokoll-eksempel: Notemd samler system- og brukerinnhold for OpenAI-reasoning-ID:er som avviser en separat `system`-rolle, og det viser kun `reasoningEffort` der leverandørdefinisjonen støtter det. + +## Feilforskning + +- `401` eller `403`: kontroller klucz, projekttilgang, faktureringssituasjon og om den valgte modellen er aktiveret for klucz. +- `404` i chat: Base URL er vanligvis feil eller inneholder allerede `/chat/completions`. +- Modellen vises i dokumentene men ikke i selektoren: modell-liste-tilgang og chat-tilgang er separate feilmomenter; test nøyaktig modell-ID manuelt i leverandørprofilen. +- Reasoning-modellen avviser meldinger: bruk en modell-ID som er dekket av OpenAI-reasoning-behandlingsveien eller skift til en ikke-reasoning chat-modell. + +## Når å bruke + +Bruk OpenAI når du ønsker den mest forutsigbare standard-hostede veien, når `/v1/models`-oppdagelse er viktig, eller når en arbeidsflow avhenger av OpenAI-reasoning-modellsemantikker. Velg en gateway eller lokal leverandør når routering, privatliv eller kostkontroll er viktigere enn direkte OpenAI API-beteende. + +--- + +## Neste trinn + +- [LLM Leverandører](/docs/providers/overview) -- Full konfigurasjon, modeller per oppgave og gjenprøvelogikk +- [Troubleshooting](/docs/advanced/troubleshooting) -- Fix 401/403 og rate-limit errors diff --git a/website/i18n/no/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/no/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..37ad5127 --- /dev/null +++ b/website/i18n/no/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "LLM Tjenerleverandører" +description: "Konfigurere 36 LLM tjenerleverandører — cloud, gateway og lokal — med valg av modell per oppgave" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# LLM Tjenerleverandører + +<TLDR> +**Notemd støtter 36 LLM leverandører over 4 transporttyper.** Alle API kaller bruker rå HTTP (ingen SDK:er) med automatisk gjentakelse, fallback til transport og 5-minutters cache for svar. Valg av modell per oppgave gjør at du kan bruke billige modeller for konseptutvinning og kraftige modeller for forskning. Ingen API-klave er nødvendig for lokale leverandører (Ollama, LMStudio). +</TLDR> + +Dette er en del av [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). + +## Kategorier for leverandører + +### Cloud-tjenerleverandører + +| Leverandør | Standardbasen URL | Standardmodell | Temperature | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### Gateway-/Proxy-tjenerleverandører + +| Leverandør | Standardbasen URL | Standardmodell | Notater | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | Legger til `HTTP-Referer` + `X-Title`-headerer | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | Legger til `X-GitHub-Api-Version`-header | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | Legger til `APP-Code`-header | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | Valgfri API-klave | +| **Nytt API** | `localhost:3000/v1` | `gpt-4.1` | Valgfri API-klave | +| **OpenAI Compatible** | (brukerkonfigurert) | `your-model-id` | Egen endpoint | + +### Kinesiske leverandører + +| Leverandør | Standardbasen URL | Standardmodell | Notater | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | Fokusert på kodning | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (endpoint-ID er nødvendig) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | Zhipu, kinesisk endpoint | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | Zhipu, internasjonal endpoint | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | Plattform for modellhosting | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao krever en Ark-endpoint-ID** (format: `ep-xxxxxxxx-xxxx-xxxx`). Standardplaceholderen må erstattes. + +### Lokale leverandører + +| Leverandør | Standardbasen URL | Standardmodell | Notater | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | Ingen API-klave. NDJSON-strømming. Modelloppdagelse gjennom `/api/tags` | +| **LMStudio** | `localhost:1234/v1` | `local-model` | Sendes `"EMPTY"` som bearer-token. OpenAI-kompatibel oppdagelse | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (brukerkonfigurert) | `gpt-4o` | Deployment-navn i URL. `api-key` header | + +## Modellval per oppgave + +Notemd støtter uavhengig leverandør og modell for hver oppgave. Aktiver med `useMultiModelSettings: true`. + +### Tilgjengelige oppgaver + +| Oppgave | Innstillingssleutel | Standardleverandør | +|------|-------------|-----------------| +| Legg til lenker (wiki-lenke-innsatt) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| Forskning (websearch + sammanfattelse) | `researchProvider` / `researchModel` | DeepSeek | +| Generer fra titel | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| Oversettelse | `translateProvider` / `translateModel` | DeepSeek | +| Diagramgenerering | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| Konseptutdrag | `extractConceptsProvider` / `Model` | DeepSeek | +| Ursprungstekstutdrag | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### Løsningsordning + +1. Dersom `useMultiModelSettings` er aktivert → bruk oppgavespesifikk leverandør + modell +2. Dersom oppgavemodell-overridelse er tom → fall back til leverandørens standardmodell +3. Dersom oppgavleverandøren er ugyldig → fall back til den globale `activeProvider` +4. Dersom `useMultiModelSettings` er slått av → bruker alle oppgaver det globale `activeProvider` + +### Anbefalte konfigurasjoner + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## API Kallarkitektur + +### Transportlag + +1. **Obsidian `requestUrl`** — primær (innbygd, fungerer på alle platformer) +2. **Desktop HTTP** — Node.js `http`/`https` moduler (strømmering + lange forespørsler) +3. **Web `fetch`** — fallback når Node.js-moduler er utilgjengelige + +Pluginet eskalerer automatisk mellom transportlag på tidsvis nettverksfeil. + +### Gjenprøvelogik + +- **Normalmodus** (`enableStableApiCall: false`): En enkelt prøve. Ved tidsvis feil eskaleres det automatisk til stabil gjenprøve. +- **Stabil gjenprøvelmodus** (`enableStableApiCall: true`): Opp til 4 prøver (1 + 3 gjenprøver) med 5 sekunders mellomrom. +- **Tidsvis feil som utløser gjenprøve**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **Ugjenprøvelig**: HTTP 400, 401, 403, 404 + +### Svarcache + +5-minutters LRU-cache i minnet, keyert av leverandør + modell + temperatur + prompt + innhold. Slike identiske forespørsler innen 5 minutter returnerer cache-de resultater umiddelbart. + +### Hantering av resonansmodeller + +Modeller som ikke støtter `system`-rollen (DeepSeek R1, OpenAI o1/o3/o4/gpt-5) har automatisk system- og brukerprompter kombinert til en enkelt brukermeddelelse. + +DeepSeek-specific: `thinkingEnabled` legger til `{ thinking: { type: 'enabled' } }` i forespørselen. `reasoningEffort` (lav/middel/høy) sendes som `reasoning_effort`. Kontrollerer at maks utdataantall token er ≥ 8000 når tænkning er aktiveret. + +### Token Estimasjon + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — heuristik med 4 tegn per token. Brukes for å sikre `maxResearchContentTokens` før sending til LLM. + +Ingen kostholdstilgang er implementert. + +## Modelloppdagelse + +| Modus | Tilbydere | Endpoint | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | Modellliste API | +| `anthropic-models` | Anthropic | Modellliste API | +| `openai-compatible-models` | DeepSeek, Qwen, Mistral, osv. | `/v1/models` | +| `openrouter-models` | OpenRouter | Modellliste API | +| `github-models` | GitHub Models | Inferens API | +| `none` | Azure OpenAI | Uaktiveret (kræver deployment-navn) | + +## Snabb start + +1. **Vælg en tilbyder** — DeepSeek (Kina), OpenAI (Internasjonal), eller Ollama (Lokal/Fri) +2. **Indtast API-koden** — Innstillinger → Notemd → Tilbyder → API-kode +3. **Prøv forbindelsen** — Klikk på prøv-knappen +4. **Valgfritt: Modeller per oppgave** — Aktiver `useMultiModelSettings` og konfigurere hver for seg + +For Ollama: ingen API-klucz nødvendig. Sikre bare at `ollama serve` er i gang. + +--- + +## Neste trinn + +- 📝 [Konseptnotater](/docs/features/concept-notes) — Bruker modell for extraksjon per oppgave +- 🎨 [Diagrammer](/docs/features/diagrams) — Bruker modell for diagrammer per oppgave +- 🔍 [Forskning](/docs/features/research) — Bruker modell spesifikt for forskning +- ⚙️ [Konfigurasjon](/docs/getting-started/configuration) — Full referanse til innstillinger diff --git a/website/i18n/no/docusaurus-theme-classic/footer.json b/website/i18n/no/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/no/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/no/docusaurus-theme-classic/navbar.json b/website/i18n/no/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/no/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/pl/code.json b/website/i18n/pl/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/pl/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/pl/docusaurus-plugin-content-docs/current.json b/website/i18n/pl/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/pl/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/pl/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/pl/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..878c4fc2 --- /dev/null +++ b/website/i18n/pl/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "Przetwarzanie partiami" +description: "Efektywne przetwarzanie wielu plików jednocześnie" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# Przetwarzanie partiami + +<TLDR> +**Notemd przetwarza całe foldery w jednej operacji z możliwością konfiguracji równoległości i kontroli nad nadpisywaniem.** Kliknij prawym przyciskiem myszy na folder, aby partiami dodać linki wiki, wyekstrahować koncepcje, przeprowadzić badania lub przetłumaczyć wszystkie notatki w nim zawarte. Ograniczenia równoległości zapobiegają błędom związanym z limitem API. Postęp jest raportowany dla każdego pliku. Zachowanie przy nadpisywaniu można skonfigurować: pominąć istniejące, dodać na końcu lub zastąpić. Pliki, które zawiodły, są rejestrowane bez przerywania całej partii. + +To jest część [Obsidian Przewodnika po zarządzaniu wiedzą AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Przegląd + +Przetwarzanie partiami przekształca folder z notatkami w jedną operację. Zamiast otwierać każdą notatkę i wykonywać polecenia osobno, wystarczy kliknąć prawym przyciskiem myszy na folder i wybrać zadanie. Notemd przechodzi przez każdy plik `.md`, stosuje wybraną akcję i raportuje postęp w czasie rzeczywistym. + +Ta funkcja jest niezbędna do ekstrakcji wiedzy w całym vault. Po imporcie dziesiątek PDF, na przykład po partiami dodaniu linków, a następnie partiami wyekstrahowaniu koncepcji, graf wiedzy może zostać utworzony w ciągu kilku minut, a nie godzin. + +## Jak to działa + +### Model wykonywania partiami + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **Zbieranie plików** -- Notemd przeszukuje docelowy folder rekurencyjnie (lub tylko na poziomie najwyższym, w zależności od ustawień) i zbiera wszystkie pliki `.md`. +2. **Podział równoległości** -- Pliki są dzielone na grupy w zależności od ustawienia `batchConcurrency`. Każda grupa jest wykonywana równolegle; grupy mogą być również wykonywane sekwencyjnie. +3. **Wykonanie** -- Każdy plik jest przetwarzany przy użyciu tej samej logiki co w przypadku pojedynczego pliku. Są respektowane ustawienia dostawcy i modelu dla każdego zadania. +4. **Raportowanie postępu** -- Powiadomienie typu toast aktualizuje się po zakończeniu przetwarzania każdego pliku, pokazując postęp `N / Total`. +5. **Obsługa błędów** -- Jeśli plik zawiedzie (błąd API, timeout sieciowy itp.), błąd jest zapisany, a partia kontynuuje pracę. Ostateczny podsumowanie wymienia wszystkie nieudane pliki. +6. **Zakończenie** -- Podsumowujące powiadomienie typu toast informuje o łącznej liczbie przetworzonych plików, sukcesach i nieudanych próbach. + +### Zachowanie nadpisywania + +Podczas przetwarzania pliku, który już zawiera linki wiki, notatki koncepcyjne lub tłumaczenia, zachowanie Notemd zależy od ustawienia nadpisywania: + +| Tryb | Zachowanie | +|------|----------| +| **Pomijaj** | Istniejąca treść pozostaje nietknięta. Przetwarzane są tylko niezmienione pliki. | +| **Dodawaj na końcu** (domyślnie) | Nowa treść jest dodawana na końcu. Istniejące linki wiki, koncepcje lub tłumaczenia są zachowywane. | +| **Zastępuj** | Plik jest w pełni przetwarzany na nowo. Wszystkie poprzednie modyfikacje Notemd są nadpisywane. | + +Jeśli chodzi konkretnie o linki wiki: jeśli notatka już zawiera `[[wiki-links]]`, tryb **Pomijaj** pozostawia ją bez zmian, natomiast **Zastępuj** wysyła całą notatkę do LLM w celu nowego wstawienia linków. Używaj **Pomijaj** do przetwarzania stopniowego oraz **Zastępuj** po aktualizacji modelu. + +### Kontrola współbieżności + +Ustawienie `batchConcurrency` ogranicza liczba równoległych wywołań API. Zapobiega to błędom limitu przepustowości (HTTP 429) podczas przetwarzania dużych folderów w przypadku dostawców z surowymi limitami. + +| Współbieżność | Zalecane dla | Typowy wpływ na limit przepustowości | +|-------------|----------------|---------------------------| +| `1` | Bezpłatne taryfy, rygorystyczni dostawcy | Brak (seria) | +| `3` (domyślny) | Większość dostawców chmurowych | Niski | +| `5` | Ollama (lokalny), hojne taryfy | Brak / Niski | +| `10` | Modele lokalne z szybką inferyencją | Brak | + +Jeśli podczas przetwarzania zbiorczego napotkasz błędy 429, zmniejsz jednoczesność do 1 lub 2. + +## Konfiguracja + +| Ustawienie | Domyślny | Efekt | +|---------|---------|--------| +| `batchConcurrency` | `3` | Maksymalna liczba równoległych wywołań API podczas operacji folderów | +| `batchOverwriteExisting` | `false` | Przepisz istniejący zawartość Notemd. `false` oznacza tryb dodawania. | +| `batchSkipProcessed` | `false` | Pomijaj pliki, które już zawierają znaczniki Notemd (np. linki wiki) | +| `batchRecursive` | `true` | Włącz skanowanie podkatalogów podczas przeglądania folderu | +| `enableStableApiCall` | `false` | Włącz logikę ponawiania prób (do 4 prób) dla każdego pliku w procesie pakietowym | + +### Modele dostosowane do zadań w procesie pakietowym + +Każda operacja pakietowa wykorzystuje odpowiadający jej model dostosowany do zadań. batch-add-links używa `addLinksProvider`, batch-research używa `researchProvider` itp. Dzięki temu można przydzielić tańsze modele do operacji o dużym obciążeniu i zachować droższe modele dla zadań wymagających wysokiej jakości. + +## Przykład + +Masz folder `papers/` zawierający 40 zaimportowanych notatek badawczych. Chcesz dodać linki wiki i wyodrębnić koncepcje we wszystkich z nich: + +1. Kliknij prawym przyciskiem myszy w folder `papers/` +2. Wybierz **"Notemd: Przetwarzanie folderu (dodawanie linków)"** +3. Notemd skanuje folder, znajduje 40 plików `.md` i przetwarza po 3 z nich jednocześnie (standardowa współdzielenie zasobów) +4. Na pasku postępów pokazuje się: `12/40 files processed...` +5. Po około 3 minutach na pasku podsumowującym pojawia się komunikat: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. Powtórz działanie za pomocą **"Notemd: Przetwarzanie folderu (wyciąganie koncepcji)"**, aby stworzyć notatki koncepcyjne dla wszystkich 40 plików + +Plik, który nie udało się przetworzyć, zostaje zapisany. Możesz później ponownie uruchomić proces tylko dla tego pliku. + +## Wskazówki + +- **Zacznij od niskiego poziomu współdzielenia zasobów** -- Jeśli nie jesteś pewien co do ograniczeń przepustowości swojego dostawcy, zacznij od `1` i stopniowo je zwiększaj. +- **Użyj trybu pomijania dla aktualizacji inkrementalnych** -- Po pierwszej pełnej partii przełącz się na `batchSkipProcessed: true`, aby w kolejnych uruchomieniach przetwarzane były tylko nowe notatki. +- **Włącz stabilne wywołania API** -- `enableStableApiCall: true` dodaje logikę ponawiania prób, która pomaga odzyskać pracę w przypadku tymczasowych błędów sieciowych podczas długich procesów. +- **Ponownie uruchom po aktualizacjach modelu** -- Jeśli przejdziesz na lepszy model, ustaw `batchOverwriteExisting: true` i uruchom ponownie proces, aby uzyskać lepsze linki i koncepcje. + +--- + +## Kolejne kroki + +- [Workflows](/docs/features/workflows) -- Łącz zadania partii w jedno kliknięcie w przyciski na pasku bocznym +- [Custom Prompts](/docs/advanced/custom-prompts) -- Personalizuj polecenia do wydobywania danych w partiach +- [Troubleshooting](/docs/advanced/troubleshooting) -- Naprawia błędy ograniczeń przepustowości i problemy z połączeniem podczas uruchamiania procesów partii +- [LLM Dostawcy](/docs/providers/overview) -- Odniesienie do konfiguracji modelu na zadanie diff --git a/website/i18n/pl/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/pl/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..9c5181aa --- /dev/null +++ b/website/i18n/pl/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "Własne prompty" +description: "Dostosuj własne prompty LLM do swoich potrzeb" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# Własne prompty + +<TLDR> +**Notemd umożliwia przejęcie domyślnego promptu LLM dla każdego typu zadania.** Własne prompty dają kontrolę nad tym, co model ma priorytetować: można ograniczyć wydobywanie pojęć do konkretnej dziedziny, zmienić styl łączenia lub dostosować ton tłumaczenia. Zmienne promptu takie jak `{{content}}` i `{{concept}}` są podstawiane w czasie wykonywania. Funkcja skupionego obszaru nauki dodaje na początku nazwę twojej dziedziny, aby automatycznie ograniczyć wyniki wydobywania. + +To jest część [Obsidian Przewodnika po zarządzaniu wiedzą AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Przegląd + +Domyślne prompty Notemd zostały napisane do pracy z wiedzą ogólnego przeznaczenia. Działają dobrze we wszystkich dziedzinach, ale pozostawiają również miejsce na ulepszenia specyficzne dla danej dziedziny. Własne prompty pozwalają dokładnie określić, jak LLM ma się zachowywać w twoim przypadku – czy to oznacza wydobywanie tylko terminologii medycznej, łączenie tylko nazwanych entytetów, czy tłumaczenie w formalnym stylu. + +Własne prompty nie zastępują całego promptu systemowego. One przejmują lub uzupełniają **część instrukcji specyficznych dla zadania**, zachowując jednocześnie strukturalny format wyjścia (np. linie `CONCEPT:`, składnię linków wiki), od której Notemd zależy przy parsowaniu. + +## Jak to działa + +### Architektura promptu + +Każde zadanie Notemd follows the same prompt structure: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **Podstawowy prompt systemowy** – Ustala osobowość asystenta. Nie można go przejąć. +2. **Skupiony obszar nauki** – Dodaje na początku `Relevant Fields: [medicine / law / computer science / ...]` w celu ograniczenia zakresu. To przełącznik ustawień, a nie surowy prompt. +3. **Własny prompt zadania** – Zastępuje domyślne instrukcje zadania (np. jakie rodzaje pojęć wydobywać, jak intensywnie łączyć). +4. **Format wyjścia** – Zasady strukturalne (linie `CONCEPT:`, format linków wiki). Zawsze dodawany przez Notemd w celu zapewnienia możliwości parsowania. +5. **Treść** – Rzeczywisty tekst notatki, podstawiany w czasie wykonywania za pomocą `{{content}}`. + +### Zmienne promptu + +Zmienne są podstawiane w momencie wykonania. Dostępne zmienne różnią się w zależności od zadania: + +| Zmienna | Zadania | Zastąpione przez | +|----------|-------|---------------| +| `{{content}}` | Wszystko | Tekst notatki lub wybranej części tekstu | +| `{{concept}}` | Szablon notatki koncepcyjnej | Wyodrębniona nazwa koncepcji | +| `{{description}}` | Szablon notatki koncepcyjnej | Opis koncepcji wygenerowany przez LLM | +| `{{backlinks}}` | Szablon notatki koncepcyjnej | Lista notatek źródłowych z linkami | +| `{{date}}` | Szablon notatki koncepcyjnej | Bieżąca data (YYYY-MM-DD) | +| `{{language}}` | Tłumaczenie | Język docelowy | +| `{{source}}` | Szablon notatki koncepcyjnej | Nazwa pliku notatki źródłowej | + +### Domena uczenia się skoncentrowanego + +Funkcja uczenia się skoncentrowanego stanowi skrót do określania domeny. Zamiast pisać własny prompt, który wymienia twoją dziedzinę, ustawiasz `focusedLearningDomain` w ustawieniach: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +To dodaje `Relevant Fields: [medicine]` na początek promptu do wydobywania informacji, dzięki czemu LLM priorytetyzuje koncepcje związane z daną domeną i odrzuca te ogólne. Jest to rozwiązanie lżejsze od pełnego customowego promptu i działa we wszystkich zadaniach wydobywania informacji. + +## Konfiguracja + +| Ustawienie | Domyślny | Efekt | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | Przejąć domyślny prompt zadania dodawania linków | +| `customExtractConceptsPrompt` | `''` | Przejąć domyślny prompt wydobywania koncepcji | +| `customResearchPrompt` | `''` | Przejąć domyślny prompt badania i podsumowywania | +| `customTranslatePrompt` | `''` | Przejąć domyślny prompt tłumaczenia | +| `customDiagramPrompt` | `''` | Przejąć domyślny prompt generowania diagramów | +| `focusedLearningDomain` | `''` | Dodać kontekst dyscypliny na początek promptów do wydobywania informacji i łączenia ich | +| `extractConceptsMinimalTemplate` | `true` | Użyć szablonu notatki koncepcyjnej zawierającej tylko tytuł (wpływa na zakres szablonu `{{concept}}`) | +| `customConceptNoteTemplate` | `''` | Przejąć szablon pliku notatki koncepcyjnej z pełnym wsparciem zmiennych | + +**Gdy pole customowego promptu jest puste, używany jest wbudowany domyślny prompt.** + +## Przykład + +Jesteś badaczem medycznym, który wydobywa koncepcje z notatek badań klinicznych. Domyślny prompt wydobywa ogólne rzeczowniki razem z terminami medycznymi, co powoduje zamieszanie w folderze z koncepcjami. + +**Rozwiązanie:** Ustaw domenę uczenia się skoncentrowanego oraz customowy prompt do wydobywania informacji. + +1. Ustawić `focusedLearningDomain` na `medicine` +2. Ustawić `customExtractConceptsPrompt` na: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +Teraz, gdy uruchamiasz "Extract concepts" na notatce klinicznej, LLM generuje: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +Zamiast domyślnego zachowania, które może również wydobywać niepożądane terminy ogólne takie jak "hospital" lub "month". + +## Wskazówki + +- **Zacznij od skoncentrowanego obszaru nauki** przed napisaniem pełnego, dostosowanego promptu. Jedna ustawienie obejmuje 80% przypadków użycia. +- **Zachowaj format wyjścia** – Nigdy nie usuwaj instrukcji formatowania takich jak "one per line" lub "CONCEPT: prefix" z promptów dostosowanych. Parser Notemd polega na nich. +- **Przetestuj najpierw na jednej notatce** – Prompty dostosowane mogą mieć nieoczekiwane skutki dla zakresu wydobywania informacji. Sprawdź je na jednej notatce przed przetwarzaniem zbiorczym. +- **Utrzymuj prompty zwięzłe** – Zbyt długie prompty dostosowane zużywają tokeny i mogą osłabić skupienie modelu. + +--- + +## Kolejne kroki + +- [Wiki-Links](/docs/features/wiki-links) – Co jest łączone, gdy dostosowujesz prompt add-links +- [Concept Notes](/docs/features/concept-notes) – Szablony notatek koncepcyjnych oraz zmienna `{{concept}}` +- [Batch Processing](/docs/advanced/batch-processing) – Zastosowanie promptów dostosowanych do całych folderów +- [Troubleshooting](/docs/advanced/troubleshooting) – Naprawa problemów, gdy prompty dostosowane generują nieoczekiwane wyniki diff --git a/website/i18n/pl/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/pl/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..cfb412b8 --- /dev/null +++ b/website/i18n/pl/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "Rozwiązywanie problemów" +description: "Powszechne problemy i rozwiązania" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Rozwiązywanie problemów + +<TLDR> +**Większość Notemd problemów należy do czterech kategorii: główne problemy API, łączność sieciowa, błędy autoryzacji (401/403) oraz limity szybkości (429).** Wbudowany test połączenia i panel diagnostyczny szybko identyfikują przyczynę problemu. Ta strona omawia każdą powszechną wiadomość o błędzie, jej przyczynę oraz sposób naprawy. W przypadku problemów nie wymienionych tutaj, zgłoś je w GitHub Issues wraz z wynikami diagnostyki. + +To jest część [Obsidian Przewodnika po zarządzaniu wiedzą AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Przegląd + +Notemd polega na usługach zewnętrznych – dostawcach LLM i wyszukiwarkach API – więc większość problemów pochodzi spoza samego pluginu. Panel diagnostyczny w ustawieniach dostarcza uporządkowany widok ostatniego API wywołania, w tym żądania URL, statusu odpowiedzi oraz treści błędu. Zawsze sprawdź go najpierw, zanim będziesz kontynuować dochodzenie. + +## Jak to działa: Diagnostyka + +### Test połączenia + +Każda sekcja konfiguracji dostawcy ma przycisk **"Przetestuj połączenie"**. Po jego kliknięciu wysyłane jest minimalne żądanie API (zazwyczaj lista modeli lub krótka informacja o uzupełnieniu) oraz podawany jest wynik pomyślności lub konkretny błąd HTTP. To najszybszy sposób na sprawdzenie, czy klucz API i bazowy URL są poprawne. + +### Panel diagnostyczny + +**Ustawienia --> Notemd --> Diagnostyka** pokazuje: + +| Pole | Treść | +|-------|---------| +| Ostatni dostawca | Który dostawca został ostatnio wywołany | +| Ostatni model | Który model został ostatnio wywołany | +| Ostatni stan | Kod stanu HTTP lub błąd transporту | +| Ostatni błąd | Surowa wiadomość o błędzie z API | +| Ostatnia prośba URL | Pełny URL ostatniej prośby (klucz API został usunięty) | +| Ciało ostatniej odpowiedzi | Skrócone ciało odpowiedzi (pierwsze 500 znaków) | + +Kopiuj pełny wynik diagnostyki przy zgłaszaniu problemów na GitHubie. + +## Częste błędy + +### Klucz API nieprawidłowy lub brakuje go + +**Objawy:** HTTP 401 lub "Podany nieprawidłowy klucz API" + +**Przyczyna:** Klucz API jest brakujący, zawiera spacje lub należy do innego dostawcy. + +**Rozwiązanie:** +1. Sprawdź, czy klucz nie ma przestrzeni na początku i na końcu +2. Upewnij się, że klucz pasuje do wybranego dostawcy (klucz OpenAI nie będzie działał z Anthropic) +3. Sprawdź, czy Twoje konto ma kredyty lub aktywną subskrypcję +4. Kliknij **"Test Connection"**, aby to zweryfikować + +### Błędy sieciowe / połączeniowe + +**Objawy:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**Przyczyna:** Koniec API nie jest dostępny z Twojego komputera. + +**Rozwiązanie:** +1. Sprawdź swoje połączenie internetowe +2. Jeśli znajdujesz się za proxy lub firewall, upewnij się, że domenę API nie zablokowano +3. W przypadku Ollama: sprawdź, czy `ollama serve` jest uruchomiony (`ollama list` powinien zwrócić modele) +4. W przypadku LMStudio: sprawdź, czy serwer działa na `localhost:1234` +5. Spróbuj innego transportu – użytkownicy mobilni powinni upewnić się, że transport `requestUrl` jest aktywny +6. Włącz `enableStableApiCall` w celu automatycznego ponawiania prób przy tymczasowych błędach + +### 403 Forbidden + +**Objawy:** HTTP 403 + +**Przyczyna:** Twój klucz API jest ważny, ale nie ma uprawnień do żądanej zasoby. + +**Rozwiązanie:** +1. Niektóre modele wymagają specjalnego dostępu (np. GPT-4 przez Azure wymaga nazwy implementacji) +2. Niektórzy dostawcy ograniczają modele według poziomu planu – sprawdź swój konto +3. Możą obowiązywać ograniczenia regionalne (niektórzy dostawcy w Chinach blokują międzynarodowe IP-y i odwrotnie) +4. Sprawdź, czy nazwa modelu jest poprawnie zapisana (np. `gpt-4o` a nie `gpt-4o-mini`, gdy mini model to wszystko, co pozwala twój plan) + +### Ograniczenie szybkości (429) + +**Objawy:** HTTP 429 lub "Przekroczono limit szybkości" + +**Przyczyna:** Zbyt wiele żądań w krótkim oknie czasowym. + +**Rozwiązanie:** +1. Zmniejsz `batchConcurrency` do `1` lub `2` +2. Poczekaj kilka minut przed ponowną próbą +3. Sprawdź dokumentację dostawcy dotyczącą ograniczeń szybkości dla twojego poziomu planu +4. Włącz `enableStableApiCall` dla automatycznej ponownej próby z opóźnieniem +5. Rozważ przejście na dostawcę z wyższymi limitami (DeepSeek, Ollama) + +### Model nie znaleziono + +**Objawy:** "Model nie znaleziono" lub HTTP 404 + +**Przyczyna:** Nazwa modelu nie istnieje u wybranego dostawcy. + +**Rozwiązanie:** +1. Kliknij **"Pobierz listę modeli"**, aby zobaczyć wszystkie dostępne modele dla twojego dostawcy +2. Niektóre nazwy modeli zmieniają się z czasem – sprawdź aktualną nazwę w dokumentacji dostawcy +3. Dla Ollama: uruchom `ollama list`, aby zobaczyć pobrałe modele; dostępne są tylko modele pobrane + +### Brak linków / Brak wygenerowanych koncepcji + +**Objaw:** Polecenie jest wykonywane, ale nie generuje żadnego wyniku + +**Przyczyna:** LLM zwrócił pustą lub nieprzetwarzalną odpowiedź. + +**Rozwiązanie:** +1. Sprawdź panel diagnostyczny w celu uzyskania rzeczywistej odpowiedzi LLM +2. Spróbuj użyć bardziej zaawansowanego modelu (niektóre małe modele mają trudności z wygenerowaniem strukturyzowanego wyniku) +3. Upewnij się, że notatka zawiera wystarczającą ilość treści (>50 słów) +4. Przejrzyj swój własny prompt pod kątem sprzecznych instrukcji +5. Wyłącz tymczasowo tłumaczenie synonimów, aby sprawdzić, czy nie filtruje zbyt agresywnie + +### Brak identyfikatora endpointu Doubao + +**Objaw:** Błąd podczas używania dostawcy ByteDance Doubao + +**Przyczyna:** Doubao wymaga identyfikatora endpointu Ark (format: `ep-xxxxxxxx-xxxx-xxxx`) zamiast nazwy modelu. + +**Poprawka:** Zastąp domyślny model zastępczy swoim rzeczywistym identyfikatorem endpointu z konsoli Volcengine. + +## Konfiguracja + +| Ustawienie diagnostyczne | Lokalizacja | Cel | +|--------------------|----------|---------| +| **Sprawdzenie połączenia** | Sekcja Provider w Ustawieniach | Sprawdź klucz API oraz możliwość połączenia | +| **Pobranie listy modeli** | Sekcja Provider w Ustawieniach | Potwierdź, które modele są dostępne | +| `enableStableApiCall` | Ustawienia --> Zaawansowane | Włącz ponawianie prób z opóźnieniem | +| `batchConcurrency` | Ustawienia --> Batch | Kontroluj równoległość, aby uniknąć ograniczeń przepustowości | + +## Jak zgłaszać problemy + +Jeśli twój problem nie jest opisany powyżej: + +1. Otwórz **Ustawienia --> Notemd --> Diagnostyka** +2. Skopiuj pełny wynik diagnostyki +3. Otwórz issue na GitHubie pod adresem [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +4. Włącz: wersję Obsidian, wersję Notemd, dostawcę, model, wynik diagnostyki oraz kroki do odtworzenia problemu +5. Zamaskuj swoje hasło API we wszystkich udostępnianych logach + +--- + +## Kolejne kroki + +- [LLM Dostawcy](/docs/providers/overview) -- Pełna referencja konfiguracji dostawców +- [Przetwarzanie zbiorcze](/docs/advanced/batch-processing) -- Ustawienia równoległości i ponawiania dla dużych operacji +- [Własne prompty](/docs/advanced/custom-prompts) -- Naprawa nieoczekiwanego zachowania LLM poprzez dostosowanie promptów diff --git a/website/i18n/pl/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/pl/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..4bbc093f --- /dev/null +++ b/website/i18n/pl/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "Często zadawane pytania" +description: "Powszechne pytania dotyczące instalacji, funkcji i sposobu użycia Notemd" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# Często zadawane pytania + +<TLDR> +**Szybkie odpowiedzi na najczęstsze pytania dotyczące Notemd.** Omawia instalację (konfiguracja w 5 minut), obsługę ponad 30 dostawców LLM, opcje modelu lokalnego/chmurowego, przepisywanie kliknięciem, wielojęzyczność UI (21 języków), automatyzację łączenia z wiki, integrację z badaniami naukowymi, przepisywanie PDF, generowanie diagramów oraz licencję otwartego oprogramowania. Wszystkie funkcje działają offline z użyciem Ollama. +</TLDR> + +--- + +## Instalacja i konfiguracja + +### Jak zainstalować Notemd w Obsidian? + +Otwórz Obsidian **Ustawienia → Wtyczki społecznościowe → Przeglądaj** → wyszukaj **"Notemd"** → **Zainstaluj** → **Włącz**. + +**Wymagania:** +- Obsidian 0.15.0+ +- Dostępne na komputerach stacjonarnych (Windows, macOS, Linux) oraz urządzeniach mobilnych (iOS, Android) + +**Ręczna instalacja:** +1. Pobierz `main.js`, `styles.css`, `manifest.json` z [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) +2. Umieść je w `<your-vault>/.obsidian/plugins/notemd/` +3. Przeładowaj Obsidian i włącz wtyczkę + +**Statystyki:** ponad 4k pobierania, 44 wersje, licencja MIT. + +--- + +## Konfiguracja LLM + +### Jakie dostawcy LLM obsługuje Notemd? + +Notemd obsługuje **30+ dostawców**: + +**Dostawcy chmurowe:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonnet, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**Skupione na Chinach:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**Lokalne/samohostowane:** +- Ollama +- LM Studio +- Każdy punkt końcowy kompatybilny z OpenAI + +**Bramy:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models, Fireworks, LiteLLM, Nebius, Cerebras +- Hugging Face, Vercel AI Gateway, Requesty + +### Czy Notemd może działać z lokalnymi LLMs? + +**Tak, w pełni obsługiwane.** Notemd działa z: +- **Ollama** (integracja natywna) +- **LM Studio** (przez punkt końcowy kompatybilny z OpenAI) +- **vLLM, LocalAI, text-generation-webui** (w trybie kompatybilnym z OpenAI) + +Wszystkie zadania działają z lokalnymi modelami: łączenie, generowanie koncepcji, tłumaczenie, badania i tworzenie diagramów. + +**Przykład mieszania i łączenia:** +- Ollama (lokalne) do łączenia → szybkie, prywatne, bez kosztów +- OpenAI do badań → wysoka jakość, integracja z wyszukiwarką internetową +- Gemini do tłumaczenia → obsługa multimodalna + +### Jak skonfigurować różne modele do różnych zadań? + +W **Ustawieniach Notemd** każde zadanie ma niezależne wybieracze dostawców/modeli: + +| Zadanie | Przykładowa konfiguracja | +|------|----------------------| +| **Łączenie** | DeepSeek (szybko, tanio) | +| **Generowanie koncepcji** | Claude Opus (wysoka jakość) | +| **Badania** | Perplexity lub GPT-4o (oparte na sieci) | +| **Tłumaczenie** | Gemini Flash (multimodalny) | +| **Generowanie diagramów** | Ollama (lokalnie, prywatnie) | + +Ta optymalizacja pod kątem poszczególnych zadań równoważy szybkość, koszt i jakość. + +--- + +## Główne funkcje + +### W czym Notemd różni się od ChatGPT przy czytaniu artykułów? + +| Wymiary | ChatGPT | Notemd | +|-----------|---------|--------| +| **Miejsce wyjścia** | Historia rozmów (przemijająca) | Obsidian skrytka (pliki trwałe) | +| **Format wyniku** | Odpowiedź tekstowa | Linki wiki, notatki koncepcyjne, diagramy, tłumaczenia | +| **Wartość długoterminowa** | Znika po sesji | Gromadzi się w bazie wiedzy | +| **Możliwość ponownego użycia** | Konieczna jest ponowna kwerendowanie | Pliki pozostają, linki ewoluują | + +**Do czego używać ChatGPT:** Szybkie pytania i odpowiedzi, jednorazowe wyjaśnienia +**Do czego używać Notemd:** Budowa trwałej, uporządkowanej bazy wiedzy przez tygodnie/miesiące + +### Jak Notemd dodaje linki wiki do notatek? + +**Proces:** +1. Uruchamiasz „Przetwarzaj plik (dodaj linki)” w notatce +2. Notemd wysyła tekst do skonfigurowanego LLM +3. LLM identyfikuje kluczowe pojęcia w kontekście +4. Notemd wstawia `[[wiki-links]]` przy każdym wystąpieniu pojęcia +5. Opcjonalnie automatycznie tworzy notatki pojęciowe w określonej przez użytkownika folderze + +**Cechy:** +- Tłumienie synonimów (zapobiega duplikatom takim jak "transformer" i "transformers") +- Powiązania zwrotne z notatek pojęciowych do źródła +- Bezpieczeństwo powiązań przy przemianowaniu/usunięciu +- Tryb czystego wydobywania (wyodrębnia pojęcia bez modyfikacji oryginału) + +### Czym jest jedno-klikowy proces Notemd? + +**Procesy jedno-klikowe** łączą wiele działań w **jeden przycisk na pasku bocznym**. + +**Standardowy proces:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**Wynik:** Jeden kliknięcie uruchamia: +1. Dodanie linków wiki do obecnej notatki +2. Tworzenie notatek pojęciowych dla nowych terminów +3. Badanie i dodawanie kontekstu +4. Spakowanie wszystkiego w diagram Mermaid + +**Szyty na miarę przepływy pracy:** Definiuj własne w Ustawieniach przy użyciu formatu DSL. Każdy przepływ pracy staje się przyciskiem na pasku bocznym, który można wielokrotnie używać. + +### Jak Notemd porównuje się z Copilot lub Smart Connections? + +Te wtyczki rozwiązują różne problemy: + +- **Copilot** — Skupienie na rozmowie. Rozmawiasz z AI o swoich notatkach. Odpowiedzi AI pozostają w panelu rozmowy; nie modyfikują twojego sejfu. +- **Smart Connections** — Skupienie na odkrywaniu. Znajduje semantycznie podobne notatki za pomocą embeddingów. Nie tworzy ani nie modyfikuje treści. +- **Notemd** — Skupienie na pisaniu. AI przetwarza twoje notatki i generuje ustrukturyzowane wyniki (linki wiki, notatki koncepcyjne, badania, diagramy, tłumaczenia) bezpośrednio do twojego sejfu jako trwałe pliki. + +| Co potrzebujesz | Zalecana wtyczka | +|----------------|-------------------| +| Rozmawianie z AI o notatkach | Copilot | +| Znajdowanie podobnych/powiązanych notatek | Smart Connections | +| Automatyczne wstawianie linków wiki i budowanie grafu wiedzy | **Notemd** | +| Generowanie notatek koncepcyjnych z odnośnikami | **Notemd** | +| Tworzenie diagramów na podstawie treści notatek | **Notemd** | +| Przeprowadzić badania na dany temat i dodać streszczenia | **Notemd** | + +Wszystkie trzy mogą być używane razem — uzupełniają się, a nie konkurują. + +--- + +## Badania i tłumaczenie + +### Które usługi wyszukiwania działają z badaniami Notemd? + +| Usługa | Wymagany klucz API | Jakość | Uwagi | +|---------|-----------------|---------|-------| +| **Tavily** | Tak | Wysoka | Zalecana, optymalizowana pod kątem AI wyszukiwarka | +| **DuckDuckGo** | Nie | Eksperymentalna | Brak konfiguracji, gorsza jakość | + +**Jak działa funkcja "Badanie i streszczanie":** +1. Wybierasz temat lub uruchamiasz ją w obecnej notatce +2. Notemd wysyła zapytanie do usługi wyszukiwania +3. Wyniki → streszczanie LLM +4. Streszczenie jest dodawane do twojej notatki wraz z cytatami źródłowymi + +**Rezultat:** Trwały ślad badań w twoim sejfie, a nie w kartach przeglądarki. + +### Czy Notemd obsługuje język chiński lub inne języki? + +**Języki UI:** 21+ obsługiwanych +- Angielski, 中文 (简体), 中文 (繁體), 日本語, 한국어 +- Arabski, Niemiecki, Francuski, Hiszpański, Rosyjski, Portugalski, Włoski +- Hindi, Bengali, Tajski, Wietnamski, Turecki, Polski, Czeski i wiele innych + +**Język wyjściowy zadań:** Niezależna konfiguracja +- UI w języku chińskim + wyjście w języku angielskim: ✅ +- UI w języku angielskim + wyjście w języku chińskim: ✅ + +**Przypadek użycia:** Badacze dwujęzyczni mogą używać UI w swoim języku ojczystym, jednocześnie tworząc notatki w języku angielskim do publikacji. + +--- + +## PDF i prace akademickie + +### Czy mogę używać Notemd do czytania artykułów/PDF? + +**Tak.** Schemat działania: +1. **Przekształć PDF → Markdown** za pomocą [MinerU](https://github.com/opendatalab/MinerU) (zalecane dla prac akademickich) +2. Otwórz plik Markdown w Obsidian +3. Wykonaj zadania Notemd: + - **Dodaj linki wiki** do kluczowych terminów + - **Stwórz notatki konceptualne** dla nieznanej terminologii + - **Wyciągnij oryginalny tekst** za pomocą specjalnych pytań (np. "Jakie są ograniczenia?") + - **Przeprowadź badania w tle** dotyczące cytowanych metod/danych + - **Przetłumacz** trudne sekcje + - **Skompresuj do diagramu Mermaid** w celu lepszego zrozumienia struktury + +**Wersja 1.9.1+:** Wyodrębnianie struktury rozdziałów z obsługą spisu treści + +**Rezultat:** Czytanie twojego artykułu staje się uporządkowanym, powiązanym artefaktem wiedzy w twoim vault. + +--- + +## Diagramy i wizualizacje + +### Jakie typy grafów/diagramów może generować Notemd? + +| Typ | Wsparcie | Funkcje | +|------|---------|----------| +| **Mermaid** | Pełne | Schematy przepływu, sekwencje, klasy, stany, ER, Gantt, automatyczna korekta składni, walidacja partii | +| **JSON Canvas** | Pełne | Rozkłady obrazów natywnych Obsidian | +| **Vega-Lite** | Pełne | Wykresy danych, serie czasowe, wykresy słupkowe, rozproszone, dostosowalne | +| **HTML** | Plan awaryjny | Dla nieobsługiwanych typów diagramów | +| **Edytowalne HTML/SVG** | Konkretny cel | Samodzielny inline SVG z anotacjami w stylu Draw.io-style | +| **Draw.io / artefakty Drawnix** | Granica eksportu | Deterministyczny XML/JSON od `SemanticFigureModel`; brak zależności od środowiska edytora w czasie wykonywania | + +**Automatyczna korekta Mermaid:** Tryb głębokiego debugowania naprawia: +- Złamane strzałki (`-->`, `-.->`, `==>`) +- Nieważne etykiety, komentarze +- Błędy składni subgrafów +- Notacja kształtów (`[`, `(`, `{`, `((`) +- Znaki rury w etykietach +- Załączniki notatek + +**Przepływ pracy:** +1. Uruchom „Streszcz jako diagram Mermaid” w notatce +2. Przegląd w oknie modalnym +3. Eksport jako SVG lub PNG +4. Lub zapisz jako plik `.mmd` w sejfie + +--- + +## Otwarty kod i społeczność + +### Czy Notemd jest darmowy i o otwartym kodzie źródłowym? + +**Tak.** +- **Licencja:** MIT (luźna, dozwolone użycie komercyjne) +- **Kod źródłowy:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **Brak płatnych planów, brak zależności od chmury, brak telemetryki** +- **Społeczność:** 234+ gwiazdki na GitHubie, aktywny Discord + +**To, co posiadasz:** +- Twoje dane (zostają w twoim sejfie) +- Twoje procesy pracy (dostosuj prompty, modele, łańcuchy) +- Twoja prywatność (lokalne wsparcie LLM) + +**Wkład:** Witamy z prośbami o pull requesty. Zobacz [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +## Rozwiązywanie problemów + +### Moje wywołania LLM zawodzą. Co powinienem sprawdzić? + +1. **Czy klucz API jest ważny?** Sprawdź Ustawienia → Konfiguracja dostawcy +2. **Czy nazwa modelu jest poprawna?** Użyj przycisku „获取模型列表” (Get Model List) w ustawieniach +3. **Czy dostęp przez sieć?** Niektórzy dostawcy wymagają VPN +4. **Ograniczenia prędkości?** Sprawdź panel dostawcy +5. **Diagnostyka:** Uruchom "Test połączenia" w ustawieniach, aby uzyskać szczegółowe logi błędów + +### Notemd jest wolny. Jak mogę to przyspieszyć? + +1. **Użyj szybszych modeli:** DeepSeek, Gemini Flash, GPT-4o-mini +2. **Zmniejsz rozmiar kawałków:** Ustawienia → Inteligentne dzielenie na kawałki → obniż liczba słów +3. **Przetwarzanie równoległe:** Ustawienia → Przetwarzanie zbiorcze → zwiększ współbieżność +4. **Modele lokalne:** Ollama do zadań, które nie wymagają wyszukiwania w sieci + +### Czy Notemd może działać 100% offline? + +**Tak, z Ollama.** Bez klucza API, bez internetu, żadne dane nie opuszczają twojego komputera: + +1. Zainstaluj [Ollama](https://ollama.com) i uruchom `ollama serve` +2. W ustawieniach Notemd wybierz **Ollama** jako swojego dostawcę +3. Pobierz model: `ollama pull llama3` (lub qwen2.5, gemma2 itp.) +4. Wszystkie funkcje działają: linki wiki, notatki konceptowe, tłumaczenie, diagramy + +**Badania DuckDuckGo** również działają bez klucza API (jakość eksperymentalna). + +Z dostawcami chmurowymi (OpenAI, Anthropic, Google, DeepSeek itp.) treść twoich notatek jest wysyłana jako dane wejściowe API. Sprawdź politykę prywatności każdego dostawcy pod kątem zasad przetwarzania danych. + +### Czy moje dane są wysyłane do chmury? + +**Zależy to od twojego dostawcy:** + +| Typ dostawcy | Czy dane są wysyłane do chmury? | Uwagi | +|--------------|---------------------|-------| +| **Ollama (lokalne)** | Nie | Wszystko pozostaje na twoim komputerze | +| **LMStudio (lokalne)** | Nie | To samo co Ollama | +| **DeepSeek, OpenAI, itp.** | Tak | Uwaga: treść jest wysyłana jako dane wejściowe API w celu przetwarzania | +| **OpenRouter, AIHubMix** | Tak | Brama łącząca z dostawcami chmury | + +Notemd sam w sobie nie zbiera **żadnych danych telemetrycznych, żadnych analiz, żadnych danych użytkowników**. Wtyczka jest w pełni otwarta pod kątem kodu (licencja MIT). Jedynymi danymi, które opuszczają Twój komputer, są te, które wyraźnie wysyłasz do skonfigurowanego dostawcy LLM. + +### Która wtyczka AI Obsidian jest najlepsza do badań naukowych? + +Zależy to od Twojego procesu badawczego: + +| Potrzeba | Wtyczka | Dlaczego | +|------|--------|-----| +| Znajdź powiązane artykuły/notatki | Smart Connections | Odkrywanie podobieństw semantycznych | +| Rozmowa o swoich źródłach | Copilot | Konwersacja z kontekstem sejfu | +| Automatyczne łączenie koncepcji + generowanie notatek | **Notemd** | AI identyfikuje koncepcje, wstawia linki, tworzy notatki | +| Badania internetowe + podsumowanie w notatkach | **Notemd** | Tavily/DuckDuckGo wyszukiwanie → LLM streszczenie → dodawane do notatki | +| Tworzenie diagramów na podstawie badań | **Notemd** | Mermaid/Canvas/Vega-Lite z treści notatki | + +**Zalecana kombinacja:** Smart Connections (odkrywanie) + Notemd (strukturyzowanie) + Copilot (dyskusja). + +--- + +## Pomoc + +- **Dokumentacja:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **Problemy na GitHubie:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **Sponsor:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/pl/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/pl/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..ce1fe3f6 --- /dev/null +++ b/website/i18n/pl/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "Notatki koncepcyjne" +description: "Tworzenie i zarządzanie notatkami koncepcyjnymi — samodzielne notatki dotyczące kluczowych koncepcji wydobytych z twojego sejfu" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# Notatki koncepcyjne + +<TLDR> +**Notemd wyodrębnia kluczowe koncepcje z twoich notatek i tworzy osobne pliki z notatkami koncepcyjnymi.** LLM identyfikuje podstawowe terminy, generuje po jednym pliku `.md` na koncepcję w konfigurowalnej folderze i opcjonalnie dodaje powrotnie linki do oryginalnej notatki. Obsługuje eliminację synonimów, wybór modelu dla poszczególnych zadań, oczyszczanie nazw plików oraz silnik deduplikacji składający się z 4 kroków. Jest to część [Obsidian Przewodnika po zarządzaniu wiedzą w AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Przegląd + +Notatki koncepcyjne są elementami budulcowymi połączonej bazy wiedzy. Gdy przetwarzasz notatkę, Notemd: + +1. **Wysyła twój tekst do LLM** z ustrukturyzowanym poleceniem wyodrębnienia +2. **Analizuje linie `CONCEPT:`** z odpowiedzi LLM +3. **Tworzy jeden plik `.md` na koncepcję** w wyznaczonej folderze +4. **Dodaje backlinki** do notatki źródłowej (gdy jest włączone) + +## Jak to działa + +### Przepływ ekstrakcji + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### Wskazówka dotycząca wydobywania + +LLM otrzymuje polecenie, które nakazuje mu: + +- Wyodrębnić **rzeczowniki lub frazy rzeczownikowe** stanowiące istotę tematu dokumentu +- **Nadaj priorytet specyficzności** — „Dielectric Relaxation” zamiast „Relaxation” +- **Unormalizuj do liczby pojedynczej** — „models” staje się „model” +- **Tłumić podkoncepcje** — jeśli pojawi się „relaksacja dielektryczna”, nie wydobywać również „relaksacji”. +- Pomijaj**** sekcje odniesień/bibliografii, rzeczowniki pospolite oraz nazwy firm/prodуктów +- Wydaj jeden pojęcie na linii w formacie `CONCEPT: Term Name` + +**Tłumienie synonimów** (opcjonalne): dodaj na początku promptu „Unikaj wyodrębniania synonimów, pojęć podstawowych semantycznie podobnych lub słów kluczowych, o ile to możliwe". + +**Skupiony obszar nauki** (opcjonalny): dodaj `Relevant Fields: [domain]` na początku, aby ograniczyć wyodrębnianie do określonej dziedziny. + +**Przejęcie języka** (opcjonalne): dodaj na końcu „Pojęcia wyjściowe MUSZĄ być w [języku]." + +### Podział na fragmenty + +Długie notatki są dzielone za pomocą `settings.chunkWordCount`. Każdy fragment jest wysyłany oddzielnie. Pojęcia ze wszystkich fragmentów są gromadzone w `Set` — duplikaty pomiędzy fragmentami są cicho usuwane. Błędy LLM w poszczególnych fragmentach nie powodują przerwania operacji. + +## Tworzenie notatki pojęciowej + +### Zasady nazw plików + +| Zasada | Zachowanie | +|------|----------| +| Długie spisy/underline'y | Zastępowane przestrzeniami | +| Znaki specjalne | Usuwane: backslash, forward slash, kropka kolonowa, gwiazdka, znak zapytania, cudzysłowy, nawiasy kątowe, pipe, hash, caret, nawiasy | +| Przestrzenie | Składane i wycięte | +| Maksymalna długość | 100 znaków (skrócone i ponownie wycięte) | +| Wynik pusty/wszystkie kropki | Przepracowane w tle | + +Przykład: `A-B: Key*Term` staje się `A B KeyTerm.md` + +### Szablony + +**Pełny szablon** (odnośniki włączone, minimalny szablon wyłączony): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**Minimalny szablon** (gdy `extractConceptsMinimalTemplate: true`): + +```markdown +# Concept Name +``` + +### Aktualizacja istniejących notatek + +Gdy plik koncepcyjny już istnieje: + +1. Jeśli odnośniki są włączone, a notatka źródłowa jeszcze nie jest wymieniona, dodaj odnośnik +2. Jeśli istnieje sekcja `## Linked From`, wstaw ją przed następnym nagłówkiem `##` +3. Jeśli nie ma `## Linked From`, dodaj sekcję na końcu +4. Sprawdzane są duplikatowe odnośniki i są one pomijane + +### Konfiguracja + +| Ustawienie | Domyślny | Efekt | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | Przełącznik główny. Wyłączone = brak tworzenia notatek | +| `conceptNoteFolder` | `''` (wyłączone) | Ścieżka folderu dla notatek koncepcyjnych | +| `extractConceptsMinimalTemplate` | `true` | Notatki tylko z tytułem (bez powiązań) | +| `extractConceptsAddBacklink` | `false` | Dodawanie odnośników zwrotnych podczas wyodrębniania samodzielnie | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | LLM na zasadzie zadania dla wyodrębniania koncepcji | +| `extractConceptsLanguage` | `'en'` | Język wyjściowy dla nazw koncepcji | +| `replaceSynonymsDuringConceptExtraction` | `false` | Włączenie tłumienia synonimów w instrukcji | +| `generateConceptLogFile` | `false` | Napisanie listy `.log` utworzonych koncepcji | + +**Ważne:** Ustawienia `extractConceptsAddBacklink` i `extractConceptsMinimalTemplate` wpływają tylko na **specjalny polecenie wyodrębniania**. Polecenie "Dodaj linki" zawsze tworzy notatki w pełnym szablonie z odnośnikami zwrotnymi. + +## Deduplikacja + +Polecenie deduplikacji (`Notemd: Check & remove duplicate concept notes`) przeprowadza analizę 5-krokową: + +### Krok 1: Dokładne dopasowanie nazwy pliku + +Porównanie nazwy bez uwzględniania wielkości liter w całym skonfigurowanym zakresie. + +### Krok 2: Wykrywanie formy liczby mnogiej + +Usuwanie sufiksów: `-ies` do `-y`, `-es` usuwane, `-s` usuwane. Porównuje formę pojedynczą z plikami z zakresu. Nie obsługuje nieregularnych form liczby mnogiej (children/child). + +### Krok 3: Normalizacja symboli + +Zastosowanie: `toLowerCase()`, zastąpij myślniki/i podkreślenia przestrzeniami, usuń wszystko, co nie jest literami i cyframi, połącz białe spacje. Zaznaczone są te, które po normalizacji są identyczne. + +### Krok 4: Zamknięcie w jedno słowo + +Notatki opisujące pojedyncze słowa są sprawdzane w odniesieniu do nazw plików z zakresem wielosłowowym. Nie jest to wykonywane, gdy zakres to `concept_folder_only`. + +### Krok 5: Potwierdzenie i usunięcie + +Wszystkie kandydaty są pokazywane w oknie potwierdzenia. Zatwierdzone elementy trafiają do kosza systemowego. Operację można anulować między każdym usunięciem. + +### Tryby zakresu + +| Tryb | Porównywane z | +|------|-------------------| +| `vault` (domyślny) | Wszystkie pliki skarbca `.md` z wyłączeniem folderu z notatkami | +| `concept_folder_only` | Inne notatki konceptualne w tym folderze | +| `include` | Pliki w określonych wymienionych folderach | +| `exclude` | Wszystkie pliki skarbca z wyłączeniem foldera z notatkami + wymienionych folderów | + +## Zastosowanie + +### Wyciąganie koncepcji (samodzielnie) + +1. Otwórz notatkę +2. Uruchom **"Notemd: Wyciąganie koncepcji"** z palety poleceń +3. Notatki konceptualne są tworzone w ustawionym folderze + +### Wyciąganie i generowanie treści + +**"Notemd: Wyciąganie koncepcji i generowanie tytułów"** — wyciąga koncepcje, a następnie uruchamia „Generuj na podstawie tytułu” dla każdej notatki w folderze z koncepcjami. Dzięki temu generowane są treści dla **wszystkich** notatek koncepcyjnych w tym folderze, a nie tylko tych nowo utworzonych. + +### Tworzenie linku wiki z wybranej części tekstu + +1. Wyróżnienie tekstu w edytorze +2. Uruchomienie **"Notemd: Tworzenie linku wiki z wybranej części tekstu"** +3. Tekst jest ujęty w `[[...]]` i tworzona zostaje notatka koncepcyjna + +## Wskazówki + +- **Najpierw ustaw folder koncepcji** — bez niego nie powstaną żadne notatki. Jeśli nie zostanie on ustawiony, pojawi się okno ostrzegawcze. +- **Wykorzystuj modele do poszczególnych zadań** — do wyciągania koncepcji doskonale nadają się tańsze modele (GPT-4o-mini, DeepSeek). Drogie modele należy zachować do zadań badawczych lub tłumaczeń. +- **Włącz tłumienie synonimów** w dziedzinach technicznych, gdzie wiele terminów odnosi się do tej samej koncepcji. +- **Regularnie usuwaj duplikaty** — uruchom polecenie usuwania duplikatów po przetwarzaniu zbiorczym, aby wykryć niemal identyczne elementy. +- **Plik logu jest zapisywany na nowo** przy każdym uruchomieniu, a nie dodawany do niego. Skopiuj go, jeśli potrzebujesz wcześniejszych wyników. + +--- + +## Kolejne kroki + +- [Wiki-Links](./wiki-links) — Jak koncepcje są łączone w tekście +- [Diagrams](./diagrams) — Wizualizacja związków między koncepcjami +- [Workflows](./workflows) — Łączenie wyciągania z innymi zadaniami diff --git a/website/i18n/pl/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/pl/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..4e9c8e8a --- /dev/null +++ b/website/i18n/pl/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "Diagramy" +description: "Tworzy Mermaid, JSON Canvas, Vega-Lite, HTML, edytowalne pliki graficzne oraz przyszłe diagramy z ograniczeniami circuitikz na podstawie Twoich notatek przy użyciu architektury opartej na specyfikacji" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Diagramy + +<TLDR> +**Notemd generuje diagramy na podstawie Twoich notatek poprzez pipeline oparty na specyfikacji.** LLM tworzy format `DiagramSpec` JSON niezależny od renderera, a następnie dedykowane adaptery przekształcają go w Mermaid, JSON Canvas, Vega-Lite, HTML lub edytowalny wyjście w formacie HTML/SVG. Obsługuje 8 typów intencji, automatyczne łańcuchy fallback, przeglądanie na żywo z eksportem do SVG/PNG, weryfikację semantyczną oraz generację wzbogaconą o lokalną wiedzę. +</TLDR> + +To jest część [Obsidian Przewodnika po zarządzaniu wiedzą AI](/docs/pillar-ai-knowledge). + +## Architektura: Pipeline oparty na specyfikacji + +Notemd nigdy nie prosi LLM o bezpośrednie wygenerowanie składni Mermaid/Vega/Canvas. Zamiast tego: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**Dlaczego architektura oparta na specyfikacji?** LLM często generuje nieważną składnię renderera (szczególnie Mermaid). Strukturalna `DiagramSpec` może zostać zweryfikowana przed renderowaniem, a ta sama specyfikacja może być użyta jako fallback dla wielu rendererów. + +## Obsługiwane typy diagramów + +| Intencja | Główny renderer | Fallbacki | Przypadek użycia | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | Hierarchiczny podział tematów | +| `flowchart` | Mermaid | HTML | Przepływy procesów, drzewa decyzyjne | +| `sequence` | Mermaid | HTML | Interakcje klient-serwer, protokoły | +| `classDiagram` | Mermaid | HTML | Związki klas OOP | +| `erDiagram` | Mermaid | HTML | Schematy bazy danych, relacje między entytetami | +| `stateDiagram` | Mermaid | HTML | Maszyny stanowe, modele życiowego cyklu | +| `canvasMap` | JSON Canvas | Mermaid → HTML | Mapy koncepcyjne, grafy wiedzy | +| `dataChart` | Vega-Lite | Mermaid → HTML | Wykresy słupkowe, liniowe, powierzchniowe, rozproszone, kołowe, tabele | + +## Rozpoznawanie intencji + +Notemd wyznacza najlepszy typ diagramu na podstawie treści notatki przy użyciu oceny słów kluczowych: + +| Intencja | Wyzwalacze | Pewność | +|--------|----------|------------| +| `dataChart` | Tabele, komórki liczbowe, słowa kluczowe dotyczące metryk/trendów, procenty | 0.88 | +| `sequence` | Słownictwo żądania/odpowiedzi (4+ dopasowania) lub znaczniki `->`/`=>` | 0.82 | +| `erDiagram` | Klucz główny, klucz obcy, entyteta, schemat (2+ dopasowania) | 0.80 | +| `stateDiagram` | Stan, przejście, w oczekiwaniu, w trakcie, nieudane (3+ dopasowania) | 0.76 | +| `flowchart` | Kroki numerowane (2+) lub słownictwo if/then/else/workflow | 0.74 | +| `canvasMap` | Mapa koncepcyjna, graf wiedzy, przestrzenny, klastry | 0.72 | +| `mindmap` | Domyślny fallback | 0.55 | + +Przejąć kontrolę za pomocą ustawienia **Wolany typ diagramu**, selektora z paska bocznego lub wyraźnej opcji palety poleceń. + +## Wybór celu renderowania + +Eksperymentalny pipeline oparty na specyfikacji ma teraz dwa niezależne elementy sterujące: + +| Element sterujący | Ustawienie | Efekt | +|---------|---------|--------| +| Wolany typ diagramu | `preferredDiagramIntent` | Kieruje semantyczną formą generowanego `DiagramSpec` | +| Wolany cel renderowania | `preferredDiagramRenderTarget` | Wybiera narzędzie renderowania dla **Generuj diagram** i **Przeglądaj diagram** | + +Ustaw **Wolany cel renderowania** na **Auto** jako domyślną wartość dla planera, albo wybierz wyraźnie Mermaid, JSON Canvas, Vega-Lite, HTML lub Edytowalny HTML/SVG. Ta zmiana ma zastosowanie tylko do poleceń generowania artefaktów i przeglądania. Standardowe polecenie **Streszcz jako diagram Mermaid** pozostaje przywiązane do wyjścia kompatybilnego z Mermaid, aby istniejące procesy Markdown nie zmieniały formatu w tle. + +Ta separacja jest ważna, ponieważ intencja `flowchart` może być teraz renderowana jako Mermaid dla notatek Markdown, jako HTML jako solidny fallback lub jako Edytowalny HTML/SVG do dalszej edycji. Draw.io i Drawnix pozostają eksporterami artefaktów w formacie CLI, a nie celami renderowania wewnątrz narzędzia. + +## Zastosowanie + +### Stwórz diagram + +1. Otwórz notatkę +2. Uruchom **"Notemd: Stwórz diagram"** z palety poleceń +3. Notemd wykrywa intencję, generuje specyfikację, renderuje i zapisuje artefakt + +**Pliki wyjściowe według celu:** + +| Cel | Rozszerzenie | Wzorzec nazwy pliku | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| Edytowalne HTML/SVG | `.html` | `{note}_diagram.html` | + +### Przegląd diagramu + +1. Uruchom **"Notemd: Przegląd diagramu"** +2. Otwiera się modala z wyrenderowanym diagramem +3. Eksportuj jako SVG lub PNG za pomocą przycisków paska narzędzi + +**Automatyczne otwieranie przeglądu** jest dostępne w ustawieniach — po generacji modala przeglądowa otwiera się automatycznie. + +Modala przeglądowa posiada również panel diagnostyki artefaktów. Renderery i sprawdzania dymowe mogą dołączać `RenderArtifact.diagnostics`; modala pokazuje podsumowanie diagnostyczne z liczbami błędów/warnings/informacji, następnie stopień poważności, rodzaj diagnostyki, komunikat oraz sugestie naprawy obok przeglądu. To samo podsumowanie jest pokazywane w wpisach historii przeglądów, dzięki czemu można porównywać powtarzające się próby circuitikz bez otwierania każdego wpisu. W przypadku artefaktów, które mają treść źródłową, ale nie mogą być renderowane wewnątrz tekstu lub przez ścieżkę iframe HTML, modala teraz przechodzi na przegląd tylko treści źródłowej zamiast wymuszać pusty iframe. Dzięki temu circuitikz sprawdzania kompilacji/renderowania, SVG sprawdzania tokenów tekstowych, sprawdzania pustego ekranu PNG oraz przyszłe raporty o nakładaniu się dają widoczną UI powierzchnię bez konieczności czynienia z TikZJax lub LaTeXu wymaganej zależności w czasie uruchamiania pluginu ani udawania, że tekst źródłowy to zweryfikowany render wizualny. + +### Tryb Legacy Mermaid + +Gdy `enableExperimentalDiagramPipeline` jest wyłączone, Notemd wysyła bezpośredni prompt Mermaid do LLM. To całkowicie omija pipeline specyfikacji. Jeśli eksperymentalny pipeline zawiedzie, system przechodzi w ten tryb. + +## Backendy renderowania + +### Mermaid + +6 adapterów (mapa umysłowa, schemat przepływu, sekwencja, ER, klasa, stan) przekształca `DiagramSpec` na składnię Mermaid. Po generacji `mermaid.parse()` waliduje wynik. Jeśli walidacja zawiedzie: + +1. **Powtórzenie LLM** — jedna próba z komunikatem błędu Mermaid jako kontekstem +2. **Minimalny fallback** — prosty diagram Mermaid na podstawie identyfikatorów węzłów specyfikacji + +**Legacy Mermaid Fixer** automatycznie naprawia powszechne błędy składniowe LLM: normalizację poleceń note, ucieczkę etykiet pipe-label, przestawianie średników, inteligentne cudzysłowy, strzałki z podwójnymi kreskami, niezgodności kształtów i wiele innych. + +### JSON Canvas + +Tworzy format Obsidian JSON Canvas z układem przestrzennym: +- Węzły umieszczone według głębokości (x = głębokość × 420) oraz indeksu (y = indeks × 170) +- Szerokość obliczana na podstawie długości etykiety +- Krawędzie z `fromSide: 'right'`, `toSide: 'left'`, `toEnd: 'arrow'` + +### Vega-Lite + +Tworzy kompletną specyfikację Vega-Lite v5 JSON z automatycznym kodowaniem: +- **Wykresy kartezjańskie** (stosowe/liniowe/powierzchniowe/punktowe/rozproszone): kanały x + y oraz kolor dla wielu serii +- **Piec**: theta = y (ilościowy), kolor = x (nominalny) +- **Tabela**: wiersz = x, tekst = y + kolumna = seria + +Plagi tematów ciemnego i jasnego są łączone głęboko przed kompilacją. + +### HTML + +Uniwersalna alternatywa. Samodzielny dokument HTML zawierający: +- Meta‑tagi CSP +- Tryb jasny/ciemny za pomocą `prefers-color-scheme` +- Lokalizowane etykiety UI dla 20 lokalizacji +- Sekcje: hero, struktura (drzewo węzłów), relacje, komentarze, tabele serii danych + +### Edytowalne HTML/SVG + +Jasny cel graficzny dla pracowni eksportu edytowalnego. Projektuje `DiagramSpec` do deterministycznego `SemanticFigureModel`, a następnie renderuje samodzielny dokument HTML z grupami SVG wewnątrz tekstu, które zawierają adnotacje w stylu Draw.io: + +- `data-drawio-type`, `data-drawio-id` i `data-drawio-role` na węzłach semantycznych +- `data-drawio-source` i `data-drawio-target` na krawędziach semantycznych +- stabilne identyfikatory węzłów/krawędzi po normalizacji odstępów i obsłudze kolizji +- brak skryptów, brak zewnętrznych czcionek oraz brak zasobów zdalnych + +Ten cel celowo nie jest jeszcze domyślną ścieżką planera. Jest dostępny jako wyraźny cel renderowania, dopóki ścieżka produktu nie udowodni zachowań edycyjnych w rzeczywistych narzędziach. + +### Draw.io i Drawnix Granice eksportu + +Obecna implementacja utrzymuje wsparcie dla edytorów third-party na granicy artefaktu: + +| Cel | Umowa | Zależność w czasie wykonywania | +|--------|----------|--------------------| +| Draw.io | deterministyczny nieskompresowany `mxfile` XML pochodzący z `SemanticFigureModel` | brak takich elementów w czasie wykonywania pluginu ani w CI | +| Drawnix | minimalny podzbiór `.drawnix` JSON wykorzystujący elementy `geometry` i `arrow-line` | brak takich elementów w czasie wykonywania pluginu ani w CI | + +Ta kompromis jest celowy: Notemd może sprawdzać widoczne etykiety, stabilne ID oraz obsługę podstawowych elementów bez włączania diagram.net Desktop, Drawnix, Plait lub stanu edytora dostępnego tylko w przeglądarce do pluginu. + +### circuitikz / TikZJax Kierunek + +Schematy obwodów to nie to samo co ogólne schematy przepływu. Poprawną składnią do reprezentacji obwodów elektrycznych jest zazwyczaj **circuitikz**, która jest renderowana w Obsidian za pomocą pluginów takich jak TikZJax. TikZJax może ładować pakiety takie jak `circuitikz`, `pgfplots`, `tikz-cd` i `chemfig`, co czyni go atrakcyjnym narzędziem do notatek z fizyki, elektroniki, chemii i matematyki. + +Ryzyko polega na tym, że surowy plik TikZ wygenerowany przez LLM jest kruchy: + +- skomplikowana topologia obwodu może być poprawna pod względem elektrycznym, ale trudna do odczytania wizualnie; +- przeplatające się przewody i etykiety mogą sprawić, że poprawny plik netlist stanie się nieprzydatny do notatek studenckich; +- brak wprowadzeń pakietów, błędne punkty mocowania lub nieważne nazwy komponentów mogą uniemożliwić renderowanie; +- informacje zwrotne od narzędzia renderującego pochodzą zazwyczaj na poziomie obrazu, podczas gdy LLM generuje geometrię na poziomie tekstu. + +Lepszą architekturą jest traktowanie circuitikz jako ograniczonego celu diagramowania, a nie jako swobodnego promptu: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +Model pierwszej klasy powinien opisywać topologię obwodu oraz układ oddzielnie: + +| Warstwa | Odpowiedzialność | Przykład | +|-------|----------------|---------| +| Topologia | węzły elektryczne i połączenia komponentów | `VDD -> RD -> drain(M1)`, `source(M1) -> GND` | +| Układ | rozmieszczenie w siatce, orientacja, ścieżki routingu | `M1 at (3,2.2)`, wejście po lewej, wyjście po prawej | +| Styl | pakiet, konwencja napięć, etykiety, ankruty | `\begin{circuitikz}[american voltages]` | +| Walidacja | dziennik kompilacji, brakujące ankruty, sprawdzenia nakładania się/zdjęcia ekranu | TikZJax/Diagnozy LaTeX plus przegląd wizualny | + +### Obecny prototyp circuitikz + +Notemd obejmuje teraz pierwszy ograniczony prototyp repozytorium dla tej kierunku. Jest celowo offline i związany z szablonem: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +Prototyp dodaje oddzielną granicę `CircuitSpec` oraz deterministycznego eksporterów dla sześciu rodzin złotych referencji: + +| Rodzaj obwodu | Złota referencja | Gwarancja prądu | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | waliduje `VDD -> R_D -> M1.D`, `vin -> M1.G`, `M1.S -> GND` i `M1.D -> vout` przed zapisaniem do LaTeX | +| `cmos-inverter` | `cmos-inverter-v1` | waliduje topologię PMOS-over-NMOS, wejście wspólne bramy, wyjście wspólne drenu, `VDD -> MP.S` i `MN.S -> GND` przed zapisaniem do LaTeX | +| `cmos-buffer` | `cmos-buffer-v1` | waliduje dwa kaskadowe stopnie inwertera, węzeł pośredni `vmid`, przywrócone `vout` oraz wspólne tory VDD/GND przed zapisaniem do LaTeX | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | waliduje równoległe urządzenia PMOS/NMOS pomiędzy `vin` a `vout` z komplementarnymi kontrolami `phib` / `phi` przed zapisaniem do LaTeX | +| `cmos-nand2` | `cmos-nand2-v1` | weryfikuje równoległe podciąganie PMOS, szeregowe opuszczanie NMOS, podwójne wejścia `va` / `vb` oraz `vout` przed zapisem do LaTeX | +| `cmos-nor2` | `cmos-nor2-v1` | weryfikuje szeregowe podciąganie PMOS, równoległe opuszczanie NMOS, podwójne wejścia `va` / `vb` oraz `vout` przed zapisem do LaTeX | + +To nie jest jeszcze ogólny generator TikZ. Nie kompiluje LaTeX, nie wywołuje TikZJax, nie analizuje ekranów zrzutów ani nie uruchamia automatycznego naprawiania na podstawie obrazów. Te funkcje pozostają w późniejszych etapach. + +Polecenie Diagramu Przeglądowego może ponownie otworzyć zapisane artefakty źródłowe circuitikz bezpośrednio, gdy rozszerzenie pliku to `.tex` lub `.tikz`, a źródło zawiera `\usepackage{circuitikz}` lub `\begin{circuitikz}`. Ta ścieżka to przegląd tylko źródła typu circuitikz: okno modalne pokazuje źródło, diagnozy, kontrolery kopiowania/zapisu oraz metadane historii, ale nie kompiluje LaTeX ani nie wywołuje TikZJax w trakcie działania wtyczki. + +Ten sam przegląd tylko źródła obejmuje teraz zapisane artefakty Draw.io i Drawnix. Pliki `.drawio` są akceptowane, gdy wyglądają jak Draw.io XML (`mxfile` lub `mxGraphModel`), a pliki `.drawnix` są akceptowane, gdy są Drawnix JSON z `type: "drawnix"` i tablicą `elements`. Wtyczka nadal nie włącza diagram.net ani hosta tablicy Drawnix; te przeglądy pokazują źródło, diagnozy oraz historię artefaktów bez potrzeby posiadania wewnętrznego edytora wizualnego. + +Aby dokonać naprawy zachowującej topologię, należy przekazać specyfikację przed naprawą jako odniesienie przed przyjęciem kandydata na naprawiony: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +Zaawansowany mechanizm naprawy wykorzystuje `createCircuitTopologySignature` i `assertCircuitTopologyUnchanged` do porównywania `circuitKind`, `goldenReferenceId`, sieci, identyfikatorów komponentów typów/zakończeń oraz niezorientowanych końcówek połączeń przed wygenerowaniem wyniku. Etykiety, tekst tytułu, wskazówki układu, kolejność połączeń oraz etykiety połączeń są celowo ignorowane. Kandydat, który dodaje krótki element lub przepina zakończenie, zostaje odrzucony z błędem `Circuit topology drift detected` przed zapisaniem pliku `.tex`. + +CLI może teraz analizować istniejący log kompilacji LaTeX/TikZJax bez uruchamiania kompilatora: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +Ta ścieżka diagnostyczna zgłasza brakujące pakiety takie jak `circuitikz.sty`, nieznane klucze TikZ/circuitikz, błędy składni ścieżek TikZ, takie jak brakcyfry, nadmiarowe argumenty wynikające z nierównowagowych nawiasów lub niezamkniętych etykiet, niezdefiniowane sekwencje sterujące, ogólne błędy LaTeX, awarie awaryjne oraz ostrzeżenia o przepełnieniu `\hbox`. Nadal opiera się na logach: lokalna kompilacja LaTeX/TikZJax oraz mechanizmy jakości ekranów zrzutów to nadal osobne zadania na przyszłość. + +Dla kontrol sprawności przez administratorów ten sam CLI może opcjonalnie uruchomić wyraźnie skonfigurowanego renderera bez analizy poleceń shell: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Uruchamiający kompilację wykorzystuje `shell: false`, rozszerza miejsca zastępcze `{tex}`, `{outputDir}` i `{jobName}` na wartości tablic argumentów, odczytuje wygenerowany `{jobName}.log` i zwraca `compileExecution` wraz z `compileDiagnostics` w wyniku typu CLI JSON. `--compile-executable` to jedynie ścieżka binarna renderera lub wrappera; flagi renderera znajdują się w powtarzanych wartościach `--compile-arg`. Puste pliki wykonywalne są odrzucane jako `compile-executable-invalid`, brakujące binarne pliki jako `compile-executable-not-found`, a łańcuchy wykonywalnych plików w formie poleceń shell otrzymują zalecenia dotyczące dzielenia argumentów, aby Windows, Linux i macOS spełniały ten sam kontrakt bezpośredniego uruchamiania. Za pomocą `--expected-artifact` zgłasza również `compileExecution.renderSmoke` i odrzuca CLI, jeśli renderer nie stworzy niepustego artefaktu. Nadal nie pakuje LaTeX, nie czyni TikZJax zależnością w czasie działania wtyczki ani nie przeprowadza naprawy wizualnej na poziomie ekranów zrzutów. + +Jeśli oczekiwany artefakt to `.svg`, kontrola sprawności zagłębia się o jeden poziom głębiej: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +SVG sprawdza korzeń `<svg>`, dodatnie wymiary lub `viewBox`, przynajmniej jeden widoczny element rysunku po wykluczeniu elementów ukrytych/przezroczystych, wszystkie żądane tokeny tekstowe, oczywiste elementy poza `viewBox`, oczywiste nakładające się umieszczone etykiety `<text>` / `<tspan>` oraz oczywiste etykiety tekstowe nakładające się na elementy rysunkowe za pomocą `render-svg-label-overlap`. Oczekiwany tekst jest wyszukiwany w widocznym tekście oraz dekodowany z metadanych dostępności takich jak `aria-label`, `<title>` i `<desc>`, więc renderery, które zachowują semantyczne etykiety poza widocznym `<text>`, mogą nadal spełniać kontrolę tokenów tekstowych bez potrzeby OCR. Przejście geometryczne to teraz geometria świadoma transformacji dla typowych atrybutów grup i elementów `transform`, więc przekształcone, skalowane, obrócone, zniekształcone lub przekształcone macierzowo pola SVG są sprawdzane po kompozycji transformacji. Obejmuje to dokładne granice łuków dla ekstremów łuków A/a, dokładne granice krzywych Bezier dla ekstremów krzywych C/S/Q/T, granice SVG uwzględniające grubość linii oraz sprawdzanie nakładania się etykiet, geometrię rysunku `polyline` / `polygon`, a także rozwiązuje umieszczanie glyphów tylko na ścieżce z referencji `<use href="#...">`, tak że etykiety przekształcone w użyteczne ścieżki glyphów mogą nadal zawieść w kontrolach obszaru obrazu, gdy geometria umieszczonego glyphu wykracza poza `viewBox`. Wiele umieszczonych etykiet `tspan` pod jednym rodzicem `<text>` jest porównywanych jako oddzielne pola etykiet, co pozwala wykryć wyniki typu LaTeX SVG, które w przeciwnym razie połączyłyby odrębne etykiety w jeden węzeł tekstowy. Umieszczone pola SVG `text` i `tspan` respektują wartości `text-anchor` `start`, `middle` i `end`, więc etykiety centralizowane i wyrównane w prawo mogą wywołać diagnozy nakładania się tekstu/tekstu oraz etykiet na rysunek bez konieczności używania układu tekstu na poziomie przeglądarki. Ścieżki glyphów tylko definicyjne wewnątrz `<defs>` nie są liczone jako widoczne elementy rysunku, ale ich własne atrybuty lokalne `transform` są stosowane przed umieszczeniem `<use>`, tak że skalowane lub lustrzane definicje glyphów nie są niedoliczane. Sprawdzenie etykiet na rysunek wykorzystuje małą tolerancję pola rysunku oraz deklarowane `stroke-width`, więc cienkie przewody, grube przewody oraz kontury elementów wielokątnych mogą być traktowane jako potencjalne błędy czytelności etykiet, gdy ich widoczna linia osiąga etykietę. Etykiety glyphów tylko na ścieżce rozwiązane z `<use href="#...">` są również porównywane z polami rysunku i zawodzą z błędem `render-svg-path-glyph-overlap`, gdy użyteczna geometria glyphów nakłada się na przewody lub komponenty. Jeśli renderer przekształca etykiety w użyteczne ścieżki glyphów zamiast wyszukiwalnych `<text>` i nie zachowuje metadanych dostępności, raport sprawności rejestruje `pathOnlyGlyphUseCount` i zawodzi żądany token tekstowy poprzez `render-svg-text-path-only` zamiast udawać, że etykieta po prostu nie istnieje. Inne błędy są zgłaszane poprzez `render-svg-invalid`, `render-svg-dimension-missing`, `render-svg-no-visible-elements`, `render-svg-text-missing`, `render-svg-out-of-bounds`, `render-svg-text-overlap`, `render-svg-label-overlap` lub `render-svg-path-glyph-overlap`. Kontrole tokenów tekstowych i nakładania się powinny być traktowane jedynie jako kontrola strukturalna dla rendererów, które zachowują etykiety jako wyszukiwalny tekst SVG lub metadane dostępności; wyniki tylko na ścieżce SVG nadal wymagają późniejszego mechanizmu ekranu zrzutu/OCR, aby udowodnić czytelność wizualną etykiet, a ta kontrola sprawności nadal nie rości sobie prawa do pełnego pokrycia SVG ścieżek. + +Ukryte grupy i elementy SVG są konsekwentnie pomijane podczas liczenia widocznych elementów oraz zbierania geometrii. Atrybuty lub styl inline `display:none`, `visibility:hidden`, `visibility:collapse` oraz ogólny `opacity:0` nie mogą sprawić, że inaczej pusty artefakt renderowania przejdzie kontrolę wyjścia widocznego. + +Definicje glyphów tylko na ścieżce mogą być bezpośrednimi ścieżkami lub grupami/kontenerami symboli wewnątrz `<defs>`. Kontrola sprawności rozwiązuje geometrię potomnych ścieżek z `<g id="...">` i `<symbol id="...">` przed umieszczeniem `<use>`, więc wygenerowany output glyphów nadal jest dostarczany do `pathOnlyGlyphUseCount`, kontrol obszaru obrazu oraz `render-svg-path-glyph-overlap`. + +Parser ścieżek śledzi również początki podścieżek i resetuje aktualny punkt na `Z/z`, więc polecenia względne po zamkniętej podścieżce kontynuują od właściwego punktu SVG zamiast tworzyć fałszywe diagnozy `render-svg-out-of-bounds`. + +Ten sam przepływ geometrii stosuje SVG zasadę numeracji dla dziesiętnych liczb z kropką przed miejscem dziesiętnym oraz wyraźnych znaków plusa, dzięki czemu zwięzłe współrzędne dvisvgm takie jak `.5`, `-.5` lub `+.5` pozostają ułamkowe podczas sprawdzania granic, zamiast stawać się fałszywie poza granicami geometrii lub być pomijane. + +Jeśli renderer wytwarza `.png`, ten sam oczekiwany ścieżka artefaktu staje się pierwszym zrzutem ekranu do testów: Notemd dekoduje pliki PNG o indeksowanej kolorystyce 1/2/4/8 bitów bez przerw między kadrami, pliki PNG w szarościach 1/2/4/8/16 bitów oraz pliki PNG w szarościach z alfa/kolorami RGB/RGBA 8/16 bitów. Obrazy o indeksowanej kolorystyce i podbajtowej szarości obsługują spakowane próbki; obrazy o indeksowanej kolorystyce obsługują również dane PLTE oraz opcjonalne dane tRNS; obrazy w szarościach/kolorach RGB obsługują przezroczyste próbki tRNS. Próbki bezpośrednie 16-bitowe są normalizowane do tego samego przestrzeni porównawczej 8-bitowej RGBA używanej przy testach dymnych. Test dymny sprawdza dodatnie wymiary, rejestruje granice tła jako `foregroundBounds`, rejestruje gęstość tła wewnątrz tej przestrzeni jako `foregroundDensity`, zawodzi przy `render-png-blank` gdy każdy widoczny piksel odpowiada kolorowi tła w lewym górnym rogu, zawodzi przy `render-png-content-clipped` gdy treść tła dotyka granic obrazu, zawodzi przy `render-png-foreground-too-small` gdy duży zrzut ekranu ma mniej niż cztery piksele tła, oraz zawodzi przy `render-png-foreground-dense` gdy piksele tła są niezwykle gęste wewnątrz niestandardowej przestrzeni ograniczeń. Nieobsługiwane formaty PNG powodują błąd `render-png-unsupported` oraz dostarczają specyficznych wskazówek dotyczących formatów Adam7 z przerwami między kadrami lub nieobsługiwanych głębi kolorów indeksowanych. To pozwala wykryć puste zrzuty ekranu, oczywiste obcięcia obrazu, niedostatecznie wyrenderowane ślady tła, pierwsze błędy związane z przepełnieniem na poziomie pikseli oraz niewłaściwe ustawienia eksportu PNG renderera, bez konieczności dodawania zależności od interfejsu platformowego. Nie jest to jeszcze rozpoznawanie etykiet na poziomie OCR, precyzyjne wykrywanie nakładania się tekstu ani naprawa obrazów z zachowaniem topologii. + +Gdy diagnostyka pokazuje nieudane skompilowanie lub wykonywanie testu render-smoke, CLI może również zapisać krótki opis naprawy z zachowaniem topologii: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +Krótki opis naprawy używa schematu `notemd.circuitikz.repair-brief.v1` i zawiera źródło `CircuitSpec`, podpis topologiczny, diagnostykę kompilacji/renderowania, dozwolone edycje, zabronione edycje topologiczne, kolejne kroki weryfikacji oraz ustrukturyzowany `repairPrompt`. Rola promptu to `topology-preserving-circuitikz-repair`; jego lista `diagnosticFocus` pochodzi z diagnostyki kompilacji/renderowania, a jego wymagania `acceptanceCriteria` wymagają weryfikacji kandydata oraz nowych testów kompilacji i render-smoke. Jest to format przekazywany do późniejszego cyklu naprawy, a nie stwierdzenie, że Notemd już wykonuje autonomiczną naprawę wizualną. + +Po stworzeniu kandydata na naprawę, ten sam CLI może go zweryfikować w odniesieniu do opisu przed zapisaniem wyniku: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief` sprawdza podpis topologiczny kandydata z opisu i jest wykluczający względem `--topology-reference`. Przejście tej bramy potwierdza jedynie zachowanie topologii; kandydat nadal wymaga diagnostyki kompilacji oraz testów render-smoke. + +Wynik `--repair-brief` zawiera również dowody `repairAcceptance` w schemacie `notemd.circuitikz.repair-acceptance.v1`. Raportuje bramy `topology-signature`, `compile-diagnostics` i `render-smoke` jako `passed`, `failed` lub `missing`; ujawnia `remainingChecks`; oraz utrzymuje `readyForVisualAcceptance` jako fałszywe, dopóki wykonywanie kandydata nie obejmie wszystkich wymaganych dowodów. + +Używaj `--repair-acceptance-output` wraz z `--repair-brief`, gdy dowody CI lub wersji wymagają trwałego pliku JSON: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +Dla dowodów wersji lub administratora uruchom każdą obsługiwaną rodzinę złotych przykładów za pomocą narzędzia do wykonywania testów zbiorczych: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Narzędzie to używa `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json` i `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json`, wywołuje ten sam bezinterfejsowy ścieżkę eksportera dla każdego przykładu i zwraca zbiorczy raport JSON z danymi `compileExecution` i `compileDiagnostics` dla każdego przykładu. Nadal jest to polecenie administratora, a nie zależność w czasie działania pluginu. + +Gdy maszyna administratora nie ma jeszcze skonfigurowanego renderera, uruchom to samo polecenie przykładu bez `--compile-executable` i wyraźnie zapisz bramę środowiskową: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +Ta ścieżka nadal zapisuje deterministyczne artefakty przykładu `.tex`, ale zwraca `ok: false` z `rendererAvailability.status` ustawionym na `missing-configuration` oraz z diagnozą `compile-executable-invalid`. Traktuj to jedynie jako dowód dostępności renderera; nie jest to kompilacja, test render-smoke ani akceptacja wizualna. + +### Kształt złotego wzorca promptu + +Dla krótkoterminowego użycia podaj renderowalny złoty wzorzec przed poproszeniem o wariant obwodu. Ograniczony prompt powinien zachować wstęp, skalę współrzędnych, styl ankerów oraz konwencje routingu: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +Dla inwertera CMOS prompt powinien wymagać wyraźnej topologii oraz ograniczeń układu, a nie tylko „narysuj inwerter CMOS”: + +- umieść `VDD` u góry, `GND` u dołu, wejście po lewej stronie, wyjście po prawej stronie; +- Użyj `pmos` powyżej `nmos`, z wspólnymi bramkami i wspólnymi odpływami; +- Zachowaj węzeł wyjściowy przy połączeniu odpływu i oznacz go `*-o`; +- Użyj nazwanych ankerów (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) zamiast współrzędnych wywnioskowanych wizualnie; +- Unikaj przewodów diagonalnych lub krzyżujących się, chyba że jest to konieczne pod względem elektrycznym. + +### Bieżący postęp i kolejne etapy + +| Powierzchnia | Obecny stan | Kolejny krok | +|------|----------------|-----------| +| Ogólne schematy | Zaimplementowano pipeline oparty na specyfikacji dla Mermaid, JSON Canvas, Vega-Lite, HTML | Kontynuuj rozszerzanie zakresu weryfikacji semantycznej | +| Rysunki edytowalne | Zaimplementowano granice artefaktów `editable-html-svg`, Draw.io XML oraz Drawnix JSON | Dodawaj bardziej złożone prymitywy tylko po tym, jak testy potwierdzą możliwość edycji | +| Obsługa CLI | `npm run diagram:export-artifact` eksportuje edytowalne HTML/SVG, Draw.io i Drawnix z jednego `DiagramSpec` | Dodawanie specyficznych dla celu elementów do symulacji dymu po dostarczeniu nowych celów | +| circuitikz | `CircuitSpec -> circuitikz` prototyp eksportuje wspólne źródło, inwerter CMOS, `cmos-buffer` / `cmos-buffer-v1`, `cmos-transmission-gate` / `cmos-transmission-gate-v1`, `cmos-nand2` / `cmos-nand2-v1` oraz `cmos-nor2` / `cmos-nor2-v1` szablony złote, projekty `layoutHints.inputSide` i `layoutHints.outputSide` do deterministycznego umieszczania portów wejściowych/wyjściowych bez zmiany topologii, odrzuca odchylenia topologii naprawy za pomocą `--topology-reference`, wytwarza krótkie informacje o naprawie zachowującej topologię przez `--repair-brief-output` i schemat `notemd.circuitikz.repair-brief.v1`, zawiera ustrukturyzowany `repairPrompt` treść przekazywania z `diagnosticFocus`, `acceptanceCriteria` oraz rolą `topology-preserving-circuitikz-repair`, weryfikuje kandydatów do naprawy za pomocą `--repair-brief`, zwraca dowody bramowe przez schemat `notemd.circuitikz.repair-acceptance.v1` z `readyForVisualAcceptance` i `remainingChecks`, przechowuje te dowody przez `--repair-acceptance-output`, analizuje logi kompilacji, może uruchamiać wyraźne lokalne renderery plus `--expected-artifact`, SVG `--expected-svg-text`, sprawdzanie metadanych dostępności przez `aria-label`, `<title>` oraz `<desc>`, wykluczanie ukrytych/przezroczystych SVG elementów, klasyfikacja `render-svg-text-path-only` / `pathOnlyGlyphUseCount` dla etykiet tylko ścieżkowych, sprawdzanie umieszczania glyphów tylko ścieżkowych dla `<use href="#...">`, diagnostyka nakładania się glyphów tylko ścieżkowych przez `render-svg-path-glyph-overlap`, obsługa punktu prądu dla zamkniętych ścieżek dla `Z/z`, dokładne granice łuków dla ekstremów łuku A/a, dokładne granice krzywych Beziera dla ekstremów krzywych C/S/Q/T, sprawdzanie nakładania się etykiet z uwzględnieniem grubości linii SVG, sprawdzanie geometrii rysowania `polyline` / `polygon`, geometria etykiet umieszczonych `tspan`, geometria tekstu umieszczonego z uwzględnieniem `text-anchor`, geometria uwzględniająca transformację dla SVG ograniczonej obrazówki/nakładania się tekstu i symulacji dymu etykieta-przeciwko-rysunkowi przez `render-svg-label-overlap` oraz sprawdzanie ekranów zrzutów PNG niepustych/obciętych/gęstych tła, w tym alfa palety kolorów indeksowanych, próbki przejrzyste w szarości/RGB tRNS oraz specyficzne dla formatu `render-png-unsupported` wskazówki dotyczące PNG interlaced Adam7 i błędów głębokości bitowej indeksowanej, przez `foregroundBounds`, `foregroundDensity`, `render-png-content-clipped` oraz `render-png-foreground-dense` bez analizy shella, zawiera agregowane elementy do symulacji dymu dla utrzymywaczy przez `npm run diagram:smoke-circuitikz`, rejestruje brak konfiguracji renderera przez `rendererAvailability.status: "missing-configuration"` i `compile-executable-invalid`, posiada ogólne diagnostyki wstępne, liczbę podsumowań diagnostycznych, wpisy historii uwzględniające diagnostykę oraz fallback tylko z kodu źródłowego przez `RenderArtifact.diagnostics` i modal wstępny | Dodawanie rozpoznawania etykiet na poziomie OCR dla tekstu wizualnego tylko ścieżkowego, dokładne sprawdzanie nakładania się na poziomie pikseli, szersze pokrycie SVG ścieżek tam gdzie to konieczne, automatyczna instalacja/odkrywanie renderera tylko wtedy gdy może pozostać opcjonalne oraz automatyczne wykonywanie napraw zachowujących topologię | +| Integracja TikZJax | Host renderowania kandydatów dla wyświetlania po stronie Obsidian | Utrzymać to jako opcjonalne; nie uczyniać TikZJax obowiązkową zależnością runtime'owej wtyczki | + +## Konfiguracja + +| Ustawienie | Domyślny | Efekt | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | Przełączanie między podejściem opartym na specyfikacji a starszym Mermaid | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = Mermaid tylko; `'best-fit'` = cele natywne + fallbacki | +| `preferredDiagramIntent` | `undefined` (automatycznie) | Przejęcie automatycznego wykrywania intencji | +| `summarizeToMermaidLanguage` | `'en'` | Język celu dla etykiet diagramu | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | LLM na poziomie zadania dla generowania diagramu | +| `autoMermaidFixAfterGenerate` | (z stałych) | Automatyczne uruchomienie starszego naprawiacza na wyjściu Mermaid | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | Wzbogacanie źródła wiedzą z lokalnego vault | + +### Wzbogacanie wiedzą lokalną + +Gdy jest włączone, Notemd pobiera odpowiednie fragmenty kontekstu z lokalnej bazy wiedzy twojego sejfu (opartej na MiniSearch) i dodaje je na początek oryginalnego pliku markdown. W instrukcji wzbogacania zaznaczono: "tylko pomocnicza odniesienie; zachowaj podstawową strukturę wierną oryginalnej notatce." + +### Tryby kompatybilności + +- **`legacy-mermaid`**: Wszystkie intencje są kierowane do Mermaid. Intencje niebędące Mermaid (canvasMap, dataChart) są przymuszane do użycia `flowchart` lub `mindmap`. Brak łańcucha awaryjnego. +- **`best-fit`**: Każda intencja jest kierowana do swojego naturalnego celu. Jeśli główny cel zawiedzie, następuje przejście przez łańcuch awaryjny (np. Vega-Lite → Mermaid → HTML). + +## Przegląd i eksport + +| Działanie | Metoda | +|--------|--------| +| SVG export | Budownik `mermaid.render()` / `vega.View.toSVG()` / SVG dla Canvas | +| Eksport PNG | SVG → Obraz → Canvas (stopień rozdzielczości pikseli urządzenia 1x-3x) → PNG ArrayBuffer | +| Zapis źródła | Treść surowego artefaktu jest zapisywana z rozszerzeniem specyficznym dla celu | +| Przegląd tylko źródła | Artefakty nieinline z treścią źródłową wyświetlane jako kod wraz z diagnozami, bez renderowania iframe | +| Audyt semantyczny | Mermaid, JSON Canvas, Vega-Lite oraz edytowalny HTML/SVG sprawdzany przez `scripts/diagram-semantic-verification.js` | + +**Caching**: RenderCache wykorzystuje deterministyczny klucz JSON od `{spec, target, theme}`. Eliminacja duplikatów w trakcie przetwarzania zapobiega powtarzającym się renderom. + +## Wskazówki + +- **Zacznij od trybu `best-fit`** — daje on najlepszy wynik wizualny dla każdego typu intencji +- **Używaj potężnych modeli do złożonych diagramów** — schematy przepływu i diagramy ER korzystają z GPT-4o lub Claude +- **Włącz lokalną wiedzę** dla diagramów specyficznych dla danej dziedziny — odpowiedni kontekst vault poprawia dokładność +- **Ustaw `autoMermaidFixAfterGenerate`** — błędy składniowe Mermaid są częste bez niego +- **Narzędzie naprawcze dla starszych wersji jest wszechstronne** — jeśli przeglądanie Mermaid się nie udaje, ręczne uruchomienie polecenia naprawczego często rozwiązuje problem + +--- + +## Kolejne kroki + +- 🔗 [Wiki-Links](./wiki-links) — Jak łączyć koncepcje w tekście +- 📝 [Concept Notes](./concept-notes) — Wyodrębnianie koncepcji do materiałów źródłowych diagramów +- 🔍 [Research](./research) — Wzbogacanie diagramów danymi z internetu diff --git a/website/i18n/pl/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/pl/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..2d520a0f --- /dev/null +++ b/website/i18n/pl/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "Badania i wyszukiwanie w sieci" +description: "Zintegruj wyszukiwanie w sieci z twoimi notatkami" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Badania i wyszukiwanie w sieci + +<TLDR> +**Notemd przeszukuje internet i wstawia LLM-streszczone wyniki bezpośrednio do twoich notatek.** Tavily API jest głównym silnikiem wyszukiwania; DuckDuckGo pełni rolę fallbacku bez konfiguracji. Wyniki są streszczane z odnośnikami do źródeł i dodawane pod nagłówkiem `## Research`. Dostępna jest funkcja badania pojedynczych notatek, badania folderów pakietowo oraz wybór modelu do kroku streszczania dla poszczególnych zadań. + +To jest część [Obsidian Przewodnika po zarządzaniu wiedzą AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Przegląd + +Badania to jedna z najpotężniejszych integracji Notemd: łączy ona procesy czytania, wyszukiwania i pisania. Zamiast przechodzić do przeglądarki, aby sprawdzić nieznany termin, wystarczy go zaznaczyć i pozwolić Notemd na wyszukiwanie, streszczanie oraz dodawanie wyników – wszystko wewnątrz twojego vault. + +Proces jest w pełni konfigurowalny. Możesz wybrać dostawcę wyszukiwania, LLM, które będzie pisać streszczenie, oraz określić, czy wyniki mają być dodawane do aktywnej notatki, czy zapisywane w osobnych plikach. Tryb pakietowy umożliwia badanie wszystkich notatek w folderze jednym kliknięciem. + +## Jak to działa + +### Przepływ wyszukiwanie-następnie-streszczanie + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **Wyciąganie zapytań** – Notemd wyodrębnia terminy wyszukiwania z wybranej części tekstu lub tytułu notatki. +2. **Wyszukiwanie w sieci** – najpierw próbuje się użyć Tavily. Jeśli nie jest skonfigurowany klucz API, automatycznie używane jest DuckDuckGo (brak konieczności ustawienia klucza). +3. **Streszczanie LLM** – surowe wyniki wyszukiwania są przesyłane do skonfigurowanego LLM, który tworzy zwięzłe streszczenie z odnośnikami do źródeł. +4. **Dodawanie** – sformatowane streszczenie jest dodawane pod nagłówkiem `## Research` w aktywnej notatce. + +### Tavily kontra DuckDuckGo + +| Aspekt | Tavily | DuckDuckGo | +|--------|--------|------------| +| Klucz API | Wymagany (dostępna wersja darmowa) | Nie wymagany | +| Jakość wyników | Wyższa (stworzona specjalnie dla AI) | Wystarczająca do zwykłych zapytań | +| Ograniczenia szybkości | Obfita darmowa wersja | Podlega ograniczeniom przepustowości | +| Konfiguracja | `tavilyApiKey` w ustawieniach | Brak konfiguracji – automatyczne przejście na alternatywę | + +### Badanie folderów partiami + +Kliknij prawym przyciskiem myszy na folder i wybierz **"Notemd: Folder badawczy"**. Każdy plik `.md` w folderze jest przetwarzany kolejno (lub równolegle do ustalonej liczby wątków). Każda notatka otrzymuje własny podsumowanie wyników badań. + +## Konfiguracja + +| Ustawienie | Domyślny | Efekt | +|---------|---------|--------| +| `tavilyApiKey` | `''` | Klucz Tavily API. Gdy jest pusty, używany jest wyłącznie DuckDuckGo. | +| `researchProvider` / `researchModel` | DeepSeek | LLM na zadanie do podsumowywania wyników wyszukiwania | +| `maxResearchContentTokens` | `4000` | Budżet tokenów dla treści wysyłanych do LLM. Nadmiar jest skracany. | +| `researchAppendToNote` | `true` | Dodaj podsumowanie do oryginalnej notatki. Jeśli wartość to false, tworzy się oddzielny plik. | +| `researchLanguage` | `'en'` | Język wyjściowy dla podsumowanego wyniku badań | + +### Rekomendacja modelu na zadanie + +Badania czerpią korzyści z modelu, który radzi sobie z treściami wielojęzycznymi i tworzy dobrze ustrukturyzowany tekst. Rozważmy następujące opcje: + +- **DeepSeek** -- standardowy, tani, dobra jakość +- **GPT-4o** -- lepsza jakość podsumowań, wyższy koszt +- **Gemini Flash** -- szybki i niedrogi, odpowiedni do prostych zapytań + +## Przykład + +Czytasz artykuł na temat *mechanizmów uwagi transformer* i napotykasz nieznany termin: *relative positional encoding*. Zamiast pozostawić Obsidian: + +1. Zaznacz **"relative positional encoding"** +2. Kliknij prawym przyciskiem myszy --> **"Notemd: Badania i podsumowanie"** +3. Notemd wyszukuje w internecie, podsumowuje najlepsze wyniki i dodaje: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +Podsumowanie staje się teraz częścią twojej bazy danych, dostępną do wyszukiwania, łączenia i korzystania offline. + +## Wskazówki + +- **Ustaw klucz Tavily dla lepszych wyników** -- nawet wersja darmowa zapewnia lepszą trafność niż surowe DuckDuckGo. +- **Użyj wydajnego modelu do podsumowywania** -- tanie modele mogą uproszczać złożone treści techniczne. +- **Przeprowadź badania grupowe** po wstępnym przeczytaniu, aby jednocześnie uzupełnić luki w wielu notatkach. +- **Sprawdź dodane podsumowania** -- LLM może tworzyć fałszywe informacje o źródłach. Sprawdź kluczowe twierdzenia. + +--- + +## Kolejne kroki + +- [Notatki konceptualne](./concept-notes) -- Wyodrębnij i przechowaj kluczowe terminy z wyników badań +- [Linki wiki](./wiki-links) -- Łącz koncepcje pochodzące z badań w całej twojej bazie danych +- [Tłumaczenie](./translation) -- Tłumacz podsumowania badań na inny język +- [LLM Dostawcy](/docs/providers/overview) -- Konfiguruj model używany do streszczania diff --git a/website/i18n/pl/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/pl/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..70a801ef --- /dev/null +++ b/website/i18n/pl/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "Tłumaczenie" +description: "Tłumacz notatki i wybrane fragmenty" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# Tłumaczenie + +<TLDR> +**Notemd tłumaczy tekst pomiędzy 21+ językami przy użyciu tłumaczenia napędzanego przez LLM.** Obsługuje tłumaczenie pojedynczych wybranych fragmentów, całych notatek oraz folderów w pakiecie. Każde zadanie tłumaczeniowe może korzystać z dedykowanego dostawcy i modelu poprzez ustawienia specyficzne dla tego zadania. Język wyjściowy można niezależnie skonfigurować od języka UI. Wyniki są dodawane poniżej oryginału lub zapisywane w nowym pliku w zależności od Twoich preferencji. + +To jest część [Obsidian Przewodnika po zarządzaniu wiedzą AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Przegląd + +Tłumaczenie w Notemd nie polega na wyszukiwaniu w słowniku – jest to tłumaczenie napędzane przez LLM i uwzględniające kontekst. Model widzi cały akapit lub notatkę, zachowując ton, terminologię specjalistyczną oraz strukturę zdań. Dzięki temu uzyskuje się wyniki o wyższej jakości w porównaniu z usługami tłumaczącymi frazę po frazie, szczególnie przy tekście technicznym, akademickim i twórczym. + +Funkcja ta obsługuje trzy zakresy: wybrane fragmenty, aktywną notatkę oraz cały folder. W połączeniu z możliwością wyboru modelu dla każdego zadania można użyć szybkiego modelu (Gemini Flash) do casualowego tłumaczenia oraz potężnego modelu (Claude Sonnet) do treści wymagających precyzyjnego oddania niuansów – bez konieczności zmiany globalnego dostawcy. + +## Jak to działa + +### Polecenie Translate + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **Wykrywanie źródła** – LLM wywnioskowuje język źródłowy na podstawie treści. Nie musisz go ręcznie określać. +2. **Konstruowanie promptu** – Notemd tworzy prompt, który zawiera język docelowy, opcjonalną wskazówkę dotyczącą dziedziny oraz treść do tłumaczenia. +3. **Tłumaczenie LLM** – skonfigurowany `translateProvider` / `translateModel` przetwarza żądanie. Model zachowuje formatowanie markdown, linki wiki oraz bloki kodu. +4. **Wynik** – przetłumaczony tekst jest albo dodawany poniżej oryginału, albo zapisywany w nowym pliku w chmurze. + +### Pary językowe + +Notemd obsługuje każdą parę językową, którą obsługuje podstawowy LLM. Powszechne pary to: + +| Źródło | Cel | Typowa jakość | +|--------|--------|----------------| +| Angielski | Chiński uproszczony | Doskonała | +| Chiński | Angielski | Doskonały | +| Angielski | Japoński | Bardzo dobry | +| Angielski | Niemiecki / Francuski / Hiszpański | Bardzo dobry | +| Jakikolwiek obsługiwany | Jakikolwiek obsługiwany | Zależne od modelu | + +Ustawienie `translateLanguage` kontroluje **język wyjściowy**. Język źródłowy jest automatycznie wykrywany. + +### Wybór modelu na zasadzie zadania + +Jakość tłumaczenia znacznie się różni w zależności od modelu. Notemd umożliwia przypisanie dedykowanego modelu wyłącznie do tłumaczeń: + +| Model | Szybkość | Jakość | Koszt | Dla kogo | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | Szybki | Dobry | Niski | Casual, wysoka objętość | +| `gpt-4o-mini` | Szybki | Dobry | Niski | Szybkie wyszukiwania | +| `deepseek-chat` | Średni | Dobry | Bardzo niski | Budżetowy, wielojęzyczny | +| `claude-3-5-sonnet` | Średni | Doskonały | Średni | Techniczny / akademicki | +| `gpt-4o` | Średni | Doskonały | Średni | Proza wrażliwa na niuanse | + +### Tłumaczenie folderów partiami + +Kliknij prawym przyciskiem myszy na folder i wybierz **"Notemd: Tłumaczyć folder"**, aby przetłumaczyć wszystkie notatki w tym folderze. Każdy plik jest przetwarzany niezależnie. Ustawienie równoległości kontroluje, ile plików jest tłumaczonych jednocześnie. + +## Konfiguracja + +| Ustawienie | Domyślny | Efekt | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | Dedykowany dostawca do zadań tłumaczeniowych | +| `translateLanguage` | `'en'` | Język docelowy | +| `translationAppendToNote` | `true` | Dodaj tłumaczony tekst poniżej oryginału. Jeśli wartość to false, zostanie utworzony nowy plik. | +| `batchConcurrency` | `3` | Liczba plików przetwarzanych równolegle podczas tłumaczenia partiami | + +## Przykład + +Czytasz chińską notatkę badawczą i chcesz jej wersję w języku angielskim: + +1. Otwórz notatkę +2. Kliknij prawym przyciskiem --> **"Notemd: Tłumaczyć bieżący plik"** +3. Notemd rozpoznaje chiński, tłumaczy go na ustawiony język docelowy (angielski) i dodaje: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +Oryginalny tekst w języku chińskim pozostaje nietknięty powyżej tłumaczenia. Nagłówek `## Translation` umożliwia przechowywanie obu wersji w tym samym pliku dla łatwiejszego odniesienia. + +## Wskazówki + +- **Użyj Gemini Flash do dużych ilości** -- jest to najszybsza i najtańsza opcja do tłumaczenia partiami dużych folderów. +- **Zachowaj linki wiki** -- instrukcja Notemd nakazuje LLM zachować `[[wiki-links]]` w niezmienionej formie podczas tłumaczenia. Sprawdź wynik po tłumaczeniu, ponieważ niektóre modele czasami je rozbierają. +- **Jasno określ język wyjściowy** -- automatyczne wykrywanie działa w przypadku tekstu źródłowego, ale zawsze konfiguruj `translateLanguage`, aby uniknąć niejasności co do języka docelowego. +- **Tłumacz grupowo notatki koncepcyjne** -- jeśli folder z koncepcjami jest w jednym języku, a potrzebujesz go w innym, tłumaczenie na poziomie folderu załatwia to w jednym kroku. + +--- + +## Kolejne kroki + +- [Badania](./research) -- Szukaj i podsumowuj w dowolnym języku, a następnie tłumacz wyniki +- [Przepływy pracy](./workflows) -- Łącz tłumaczenie z linkami wiki lub wyodrębnianiem koncepcji +- [Przetwarzanie grupowe](/docs/advanced/batch-processing) -- Funkcje równoległości i zachowanie nadpisywania przy operacjach na folderach +- [LLM Dostawcy](/docs/providers/overview) -- Wybierz najlepszy model dla swojej pary języków diff --git a/website/i18n/pl/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/pl/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..7d6a55da --- /dev/null +++ b/website/i18n/pl/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "Wiki-Linki" +description: "Automatyczne generowanie linków wiki dla kluczowych pojęć" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# Wiki-Linki + +<TLDR> +**Notemd automatycznie dodaje `[[wiki-links]]` do kluczowych pojęć w twoich notatkach.** LLM czyta twój treść, identyfikuje ważne terminy w kontekście i wstawia linki wiki w stylu Obsidian przy każdym wystąpieniu. Opcjonalnie tworzy pliki notatek konceptualnych z odnośnikami zwrotnymi. Obsługuje tłumienie synonimów, zachowanie integralności linków przy przemianowaniu/usunięciu oraz tryb czystej ekstrakcji (bez modyfikacji plików). W odróżnieniu od Auto Link, który dopasowuje się tylko do istniejących tytułów notatek, Notemd wykorzystuje AI do identyfikacji nowych pojęć i tworzenia odpowiadających im notatek. Jest to część [Obsidian Przewodnika AI w zarządzaniu wiedzą](/docs/pillar-ai-knowledge). +</TLDR> + +## Przegląd + +Tworzenie linków wiki jest podstawową funkcją Notemd. Przekształca ono zwykły tekst w połączoną grafę wiedzy poprzez: + +1. **Analizowanie twojej notatki** za pomocą LLM +2. **Identyfikację kluczowych pojęć** (terminów, osób, metod, teorii) +3. **Wstawianie `[[wiki-links]]`** przy każdym wystąpieniu +4. **Tworzenie notatek konceptualnych** (opcjonalnie) z odnośnikami zwrotnymi + +## Jak to działa + +### Proces + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### Przykład + +**Przed:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**Po:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## Zastosowanie + +### Podstawowe: Dodanie linków do obecnej notatki + +1. Otwórz notatkę +2. Kliknij prawym przyciskiem myszy w edytorze → **"Przetworzyć plik (dodaj linki)"** +3. Poczekaj kilka sekund +4. Teraz pojęcia są ze sobą powiązane! + +### Partia: Przetwarzanie wielu notatek + +1. Kliknij prawym przyciskiem myszy folder w przeglądarce plików +2. Wybierz **"Notemd: Przetwarzanie folderu (dodawanie linków)"** +3. Konfiguracja: + - Zadziałanie równoległe (ile plików jednocześnie) + - Przepisanie istniejących linków (tak/nie) +4. Kliknij **Przetworzyć** + +### Selektywne: Łączenie określonego tekstu + +1. Wyróżnij tekst do przetworzenia +2. Kliknij prawym przyciskiem → **"Przetworzyć wybrany fragment (dodaj linki)"** +3. Analizowana jest tylko wyróżniona część + +## Notemd kontra Auto Link + +Obsidian ma dwa podejścia do automatycznego tworzenia linków wiki: + +| | **Auto Link** | **Notemd** | +|--|---------------|-------------| +| Źródło linku | Tytuły istniejących notatek w sejfie | Koncepcje zidentyfikowane przez LLM w treści | +| Możliwość tworzenia powiązań nowych pojęć | Nie — tytuł musi już istnieć | Tak — AI identyfikuje pojęcia i tworzy notatki | +| Obsługa synonimów | Nie | Tak — tłumienie synonimów | +| Tworzenie notatki pojęciowej | Nie | Tak — z powiązaniami zwrotnymi i usuwaniem duplikatów | +| Przetwarzanie partiami | Nie (jeden plik) | Tak (na poziomie folderu) | +| Kierowanie modelem według zadania | Nie | Tak | + +**Auto Link** polega na dopasowywaniu do tytułu: jeśli istnieje notatka o nazwie "Machine Learning", otacza ona wystąpienia w `[[Machine Learning]]`. Jeśli takiej notatki nie ma, nic się nie dzieje. + +**Notemd** jest sterowane przez AI: LLM czyta twój treść, rozumie kontekst, identyfikuje pojęcia, które *powinny* być powiązane — nawet jeśli jeszcze nie ma notatki — i tworzy zarówno powiązanie, jak i notatkę pojęciową. + +## Funkcje + +### Tłumienie synonimów + +**Problem:** "transformer", "transformers", "Transformer architecture" → 3 oddzielne pojęcia + +**Rozwiązanie:** Notemd wykrywa niemal identyczne elementy i używa formy kanonicznej. + +**Konfiguracja:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### Integritet linków + +**Gdy przemieniasz notatkę koncepcyjną:** +- Wszystkie linki wiki są automatycznie aktualizowane (Obsidian podstawowa funkcja) +- Linki zwrotne pozostają nienaruszone + +**Gdy usuwasz notatkę koncepcyjną:** +- Linki pozostają, ale wyświetlają się jako "niepowiązane wzmianki" +- Można ją odtworzyć z dowolnego wystąpienia + +### Tryb czystego wydobywania + +**Wydobywanie koncepcji bez modyfikacji oryginału:** + +1. Kliknij prawym przyciskiem → **"Wydobyj koncepcje (bez łączeń)"** +2. Tworzone są notatki koncepcyjne +3. Oryginalny plik pozostaje nietknięty + +Przypadek użycia: przetwarzanie treści tylko do odczytu lub wersji końcowych. + +## Generowanie notatek koncepcyjnych + +### Automatyczne tworzenie + +**Gdy jest włączone (domyślnie), Notemd tworzy:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### Konfiguracja + +**Katalog wyjściowy:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Struktura hierarchiczna:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**Szablon:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## Opcje zaawansowane + +### Okno kontekstowe + +**Ile tekstu otoczenia wysłać:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +Większa wartość = lepsza dokładność, wyższy koszt. + +### Minimum wystąpień + +**Tylko łącz koncepcje, które pojawiają się kilka razy:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +Ustaw na 2 lub 3, aby skupić się na powtarzających się tematach. + +### Wykluczenie wzorców + +**Pomijaj określone słowa:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +Zapobiega nadmiernemu łączeniu terminów ogólnych. + +### Własne prompty + +**Przezwyciężenie domyślnych instrukcji LLM:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +Zmodyfikuj je pod potrzeby konkretnego dziedziny (np. "Skup się na terminologii medycznej"). + +## Wskazówki i najlepsze praktyki + +### ✅ RÓB + +- **Przetwarzaj notatki o długości powyżej 100 słów** — Krótkie notatki zawierają niewiele koncepcji +- **Używaj potężnych modeli** do lepszej identyfikacji koncepcji (GPT-4o, Claude) +- **Sprawdzaj przed przyjęciem** — Upewnij się, że proponowane linki są sensowne +- **Buduj iteracyjnie** — Przetwarzaj 5-10 notatek, sprawdź graf, dostosuj ustawienia + +### ❌ UNIKAJ + +- **Zbyt wiele linków** — Nie każde rzeczownik musi mieć link +- **Przetwarzaj szkice wielokrotnie** — Koncepcje mogą się zmieniać, poczekaj aż staną się stabilne +- **Ignoruj synonimy** — Włącz funkcję tłumaczenia, aby uniknąć różnic między „ML” a „Machine Learning” + +## Wydajność + +### Szybkość + +| Rozmiar notatki | GPT-4o-mini | Claude Sonnet | Ollama (lokalnie) | +|-----------|-------------|---------------|----------------| +| 500 słów | 2-3 sekundy | 3-5 sekundy | 5-10 sekund | +| 2000 słów | 5-8 sekund | 10-15 sekund | 20-40 sekund | +| 5000+ słów | Podzielone na części (wiele wywołań) | Podzielone | Podzielone | + +### Oszacowanie kosztu + +**Przykład: notatka o 1000 słowach z GPT-4o-mini** +- Wejście: ~1500 tokenów +- Wyjście: ~200 tokenów +- Koszt: ~0,001 USD + +**Przetwarzanie partiami 100 notatek:** ~0,10 USD + +## Rozwiązywanie problemów + +### Żadne linki nie zostały dodane + +**Sprawdzenie:** +1. LLM wywołanie zakończyło się pomyślnie (Ustawienia → Diagnostyka) +2. Notatka zawiera wystarczającą ilość treści (>50 słów) +3. Koncepcje są techniczne/specyficzne (a nie tylko zaimki) + +**Spróbuj:** +- Użyj silniejszego modelu +- Zwiększ okno kontekstowe +- Sprawdź ważność klucza API + +### Zbyt wiele linków + +**Rozwiązania:** +1. Zwiększ minimalną liczbę wystąpień (2 lub 3) +2. Dodaj słowa powszechne do listy do wykluczenia +3. Użyj mniej agresywnego modelu + +### Błędnie powiązane koncepcje + +**Poprawki:** +1. Użyj własnego promptu dla specyfiki domeny +2. Włącz tłumienie synonimów +3. Przeglądaj ręcznie i usuwaj powiązania + +### Linki przestają działać po przemianowaniu + +**To jest normalne Obsidian zachowanie.** + +Aby zaktualizować wszystkie linki: +1. Przemień nazwę notatki koncepcyjnej +2. Obsidian automatycznie aktualizuje `[[old]]` → `[[new]]` + +--- + +## Kolejne kroki + +- 📖 [Notatki koncepcyjne](./concept-notes) — Szczegółowe omówienie tworzenia notatek koncepcyjnych +- 🔍 [Integracja z badaniami](./research) — Łączenie powiązań z badaniami internetowymi +- 🎨 [Diagramy](./diagrams) — Wizualizacja twojej grafy wiedzy diff --git a/website/i18n/pl/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/pl/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..7ed6a1e2 --- /dev/null +++ b/website/i18n/pl/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "Prace zlecone" +description: "Łącz wielokrotne zadania za pomocą przycisków jednym kliknięciem" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Prace zlecone + +<TLDR> +**Notemd Prace zlecone łączą wiele zadań w jedną akcję jednym kliknięciem.** Można definiować sekwencje takie jak `add-links > extract-concepts > research > diagram` przy użyciu prostego DSL. Prace zlecone pojawiają się jako przyciski na pasku bocznym, które uruchamiają cały łańcuch w aktualnej notatce lub folderze. Oprogramowanie zawiera już przygotowane prace zlecone; można tworzyć własne w ustawieniach. Każdy krok wykorzystuje własną konfigurację modelu dostosowaną do danego zadania. + +To jest część [Obsidian Przewodnika po zarządzaniu wiedzą AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Przegląd + +Praca zlecona eliminuje konieczność wykonywania zadań pojedynczo. Zamiast czterokrotnie kliknąć prawym przyciskiem myszy, aby dodać linki, wydobywać koncepcje, szukać nieznanych terminów i generować diagram, wystarczy nacisnąć jeden przycisk na pasku bocznym, a cały łańcuch zostanie uruchomiony. Notemd zajmuje się sekwencjonowaniem, przenoszeniem błędów i raportowaniem postępów. + +Prace zlecone są definiowane w lekkim DSL (języku specjalistycznym dla danej dziedziny). Znajdują się w ustawieniach, pojawiają się jako przyciski klikalne na pasku bocznym Obsidian i mogą być zastosowane zarówno do aktualnej notatki, jak i do całego folderu. + +## Jak to działa + +### Łańcuch wykonywania prac zleconych + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **Analiza** -- Ciąg DSL jest dzielony na `>` (lub `>`) na uporządkowaną listę identyfikatorów zadań. +2. **Mapowanie** -- Każdy identyfikator odpowiada wewnętrznemu poleceniu (add-links, extract-concepts, research, translate, diagram itp.). +3. **Wykonanie** -- Kroki są wykonywane kolejno. Każdy krok korzysta z skonfigurowanego dostawcy i modelu odpowiedniego dla danego zadania. +4. **Obsługa błędów** -- Jeśli jakiś krok się nie powiedzie, praca zlecona albo zostaje przerwana, albo kontynuuje do następnego kroku, w zależności od ustalonej polityki obsługi błędów. +5. **Zakończenie** -- Powiadomienie typu toast informuje o sukcesie lub wymienia wszystkie nieudane kroki. + +### Format DSL + +Prace zlecone są definiowane jako sekwencja identyfikatorów zadań oddzielona `>`: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**Dostępne identyfikatory zadań:** + +| Identyfikator | Działanie | +|------------|--------| +| `process-current-add-links` | Dodaj linki wiki do aktywnej notatki | +| `extract-concepts-current` | Wyciągnij koncepcje z aktywnej notatki | +| `research-and-summarize` | Przeprowadź badania nad wybranym tekstem lub tytułem notatki | +| `process-current-translate` | Przetłumacz aktywną notatkę | +| `summarize-to-mermaid` | Stwórz diagram na podstawie aktywnej notatki | +| `generate-from-title` | Wygeneruj treść na podstawie tytułu notatki | +| `extract-original-text` | Wyciągnij oryginalny tekst (dla OCR / zeskanowanego treści) | + +**Warianty na poziomie folderu** – zastąp `current` przez `folder` w nazwie identyfikatora. + +### Przepisywanie zdefiniowane vs. dostosowane + +Notemd zawiera gotowe przepisywania dla częstych wzorców: + +| Przepisywanie | Łańcuch | Przypadek użycia | +|----------|-------|----------| +| **Wyciąganie jednym kliknięciem** | add-links > extract-concepts > research | Przetwarzaj artykuł naukowy w jednej rundzie | +| **Pełny pipeline** | add-links > extract-concepty > research > diagram | Kompletne wydobywanie wiedzy z wizualizacją | +| **Tłumacz + Łącz** | tłumacz > add-links | Tłumacz i następnie łącz koncepcje w języku docelowym | + +**Zaawansowane schematy pracy** są tworzone w ustawieniach: + +1. Otwórz **Ustawienia** --> **Notemd** --> **Schematy pracy** +2. Kliknij **"Dodaj schemat pracy"** +3. Wpisz łańcuch DSL (np. `process-current-add-links>extract-concepts-current`) +4. Podaj nazwę wyświetlania (np. "Szybkie połączenie + Wydobywanie") +5. Nowy przycisk pojawia się natychmiast na pasku bocznym + +## Konfiguracja + +| Ustawienie | Domyślny | Efekt | +|---------|---------|--------| +| `workflows` | Zaawansowana lista | Tablica definicji schematów pracy (nazwa + DSL) | +| `workflowContinueOnError` | `true` | Przejdź do następnego kroku, jeśli obecny nie powiedzie się | +| `workflowShowProgress` | `true` | Pokaż komunikat postępu po zakończeniu każdego kroku | + +### Modele na poziomie zadań w schematach pracy + +Każdy krok w procesie pracy wykorzystuje swoją **własną** konfigurację modelu na poziomie zadania. Nie musisz określać modeli bezpośrednio w DSL. Kolejność rozwiązywania problemów jest następująca: + +1. Dostawca/model na poziomie zadania, jeśli `useMultiModelSettings` jest dostępny +2. `activeProvider` globalny w przeciwnym razie + +To oznacza, że `add-links` może działać na DeepSeek, podczas gdy `research` działa na GPT-4o – wszystko to w ramach tego samego procesu pracy. + +## Przykład + +Właśnie zaimportowałeś PDF artykułu z dziedziny sztucznej inteligencji do swojego sejfu i chcesz uzyskać pełne wydobywanie wiedzy: + +1. Otwórz zaimportowaną notatkę +2. Kliknij przycisk **"Pełny pipeline"** na pasku bocznym +3. Notemd uruchamia następujące kroki: + - **Krok 1**: Dodaj linki wiki – `[[attention mechanism]]`, `[[transformer]]` itp. + - **Krok 2**: Wydobyj koncepcje – tworzy notatki koncepcyjne w folderze koncepcji + - **Krok 3**: Badania – podsumowuje źródła internetowe dotyczące kluczowych terminów + - **Krok 4**: Diagram – generuje Mermaid mapę myśli przedstawiającą strukturę artykułu +4. Po około 30 sekundach twoja notatka zawiera linki, istnieją notatki koncepcyjne, dodano wyniki badań i zapisano plik z diagramem + +Wszystko to przy jednym kliknięciu. + +## Wskazówki + +- **Zacznij od z góry zdefiniowanych procesów pracy** – obejmują one najczęstsze wzorce. Personalizuj je tylko wtedy, gdy potrzebujesz innej sekwencji. +- **Włącz `workflowContinueOnError`** – nieudany krok tworzenia diagramu nie powinien przerywać całego pipeline. +- **Użyj pracowników folderowych** do przetwarzania masowego – kliknij prawym przyciskiem myszy na folder, wybierz pracownika i każda notatka zostanie przetworzona. +- **Nazwij pracowników jasno** – przestrzeń w pasku bocznym jest ograniczona. Używaj krótkich, orientowanych na działanie nazw takich jak "Szybkie wydobycie" lub "Tłumaczenie + link". + +--- + +## Kolejne kroki + +- [Badania](./research) – Zrozum, co robi krok badawczy, zanim dodasz go do pracowników +- [Linki wiki](./wiki-links) – Podstawowa funkcja łączenia używana w większości pracowników +- [Notatki koncepcyjne](./concept-notes) – Wyodrębnianie koncepcji jako krok w pracowniku +- [Przetwarzanie zbiorcze](/docs/advanced/batch-processing) – Współbieżność i raportowanie postępów dla pracowników folderowych diff --git a/website/i18n/pl/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/pl/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..e168a0a3 --- /dev/null +++ b/website/i18n/pl/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "Konfiguracja" +description: "Konfiguruj ustawienia i preferencje Notemd" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Konfiguracja + +<TLDR> +**Konfiguracja Notemd obejmuje 6 głównych obszarów:** (1) dostawcy LLM i klucze API, (2) wybór modelu dla zadań, (3) ścieżki wyjściowe i szablony, (4) język UI i język wyjściowy, (5) usługi wyszukiwania (Tavily/DuckDuckGo), (6) niestandardowe procesy. Wszystkie ustawienia znajdują się w Obsidian Ustawienia → Notemd. Zmiany wchodzą w życie natychmiast. +</TLDR> + +## Przegląd ustawień + +Dostęp: **Obsidian Ustawienia (⚙️) → Notemd** + +### Główne sekcje + +1. **Konfiguracja dostawcy** — klucze API, podstawowe URLs, modele +2. **Ustawienia zadań** — wybór modelu dla zadań +3. **Konfiguracja wyjścia** — miejsce zapisu plików generowanych +4. **Ustawienia językowe** — UI i języki wyjściowe +5. **Integracja wyszukiwania** — konfiguracja Tavily/DuckDuckGo +6. **Procesy** — niestandardowe łańcuchy przycisków +7. **Zaawansowane** — diagnostyka, przetwarzanie zbiorcze, dzielenie na fragmenty + +--- + +## 1. Konfiguracja dostawcy + +### Dodawanie dostawcy + +1. **Wybierz dostawcę** z listy rozwijanej (ponad 30 dostępnych) +2. **Wpisz klucz API** +3. **Opcjonalnie**: Ustaw własną bazę URL (dla proxyów/bram) +4. **Kliknij "Pobierz listę modeli"**, aby sprawdzić połączenie +5. **Wybierz domyślny model** + +### Popularni dostawcy + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Lokalny) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### Wielu dostawców + +Możesz skonfigurować kilku dostawców i przełączać się między nimi w zależności od zadania: +- **Główny dostawca**: Wykorzystywany jako alternatywa +- **Dostawcy specyficzne dla zadania**: Nadpisują te ustawienia dla konkretnych zadań + +--- + +## 2. Modele specyficzne dla zadania + +Konfiguruj różne modele dla różnych zadań, aby optymalizować koszt/jakość: + +### Typy zadań + +| Zadanie | Domyślny model | Cel | +|------|--------------|---------| +| **Łączenie** | Główny dostawca | Identyfikacja pojęć dla linków wiki | +| **Generowanie koncepcji** | Główny dostawca | Wyciągnij i opisz koncepcje | +| **Badania** | Główny dostawca | Streszcz wyniki wyszukiwania w sieci | +| **Tłumaczenie** | Główny dostawca | Tłumacz tekst | +| **Generowanie diagramów** | Główny dostawca | Generuj diagramy Mermaid/Canvas | + +### Przykład: Optymalna konfiguracja pod kątem kosztów + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### Jak skonfigurować + +1. **Ustawienia → Notemd → Ustawienia zadania** +2. Dla każdego zadania wybierz: + - ✅ **Użyj głównego dostawcy** (domyślnie) + - 🔄 **Użyj dostawcy niestandardowego** → wybierz dostawcę + model + +--- + +## 3. Konfiguracja wyjściowa + +### Wyjście notatek o koncepcjach + +**Gdzie zapisywane są nowe notatki koncepcyjne:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Szablon:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### Opcje struktury folderów + +**Opcja 1: Płaska (wszystkie koncepcje w jednym folderze)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**Opcja 2: Hierarchiczna (według folderu źródłowego)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +Konfiguracja: **Ustawienia → Wyjście → Użyj folderów hierarchicznych** + +### Wyjście w postaci diagramu + +**Gdzie zapisywane są diagramy:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**Format:** +- `.mmd` (Mermaid źródło) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. Ustawienia językowe + +### UI Język + +**Język interfejsu** (przyciski, menu, okna dialogowe): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +Obsługiwane języki: angielski, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Русский, العربية i inne. + +### Język wyjścia + +**Język generowanego treści** (notatki koncepcyjne, streszczenia badań): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**Przypadek użycia:** chiński UI + wyjście w języku angielskim dla bilingwalnych badań. + +### Cel tłumaczenia + +**Domyślny język docelowy** do zadań tłumaczeniowych: + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. Integracja z wyszukiwarką + +### Tavily (Zalecane) + +**Usługa wyszukiwania optymalizowana pod AI:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +Otrzymaj klucz: [tavily.com](https://tavily.com/) + +**Cechy:** +- Wysokiej jakości wyniki +- Streszczenia optymalizowane pod AI +- Cytaty źródłowe + +### DuckDuckGo (Eksperymentalne) + +**Nie jest potrzebny klucz API:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**Uwaga:** Gorsza jakość, brak możliwości personalizacji. + +--- + +## 6. Konfiguracja procesu pracy + +### Tworzenie niestandardowych procesów pracy + +**Przepływy pracy łączą wiele zadań w jeden przycisk.** + +1. **Ustawienia → Przepływy pracy → Dodaj przepływ pracy** +2. **Nazwa**: "Przepływ analizy papierów" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **Zapisz** + +Nowy przycisk pojawia się w lewej kolumnie bocznej. + +### Składnia DSL + +**Format:** `action1>action2>action3` + +**Dostępne działania:** +- `process-current-add-links` — Dodaj linki wiki do obecnej notatki +- `extract-concepts-current` — Stwórz notatki konceptualne +- `research-and-summarize` — Badania internetowe + streszczenie +- `translate-current` — Przetłumacz obecną notatkę +- `summarize-as-mermaid` — Stwórz diagram Mermaid +- `process-folder-add-links` — Przetwarzanie folderów pakietowo + +**Przykłady przepływów pracy:** + +**Szybkie wydobywanie koncepcji:** +``` +process-current-add-links>extract-concepts-current +``` + +**Głębokie badania:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**Analiza wielojęzyczna:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. Zaawansowane ustawienia + +### Przetwarzanie partiami + +**Przetwarzanie wielu plików równolegle:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +Większa wartość = szybsze działanie, ale więcej wywołań API. + +### Inteligentne dzielenie na fragmenty + +**W przypadku długich notatek – dzielenie na fragmenty:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +Unika błędów związanych z limitem tokenów. + +### Panel diagnostyczny + +**Przeglądanie szczegółowych logów:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +Pokazuje: +- API żądań/odpowiedzi +- Użycie tokenów +- Czasy przetwarzania +- Błędy + +### Wykrywanie duplikatów koncepcji + +**Unikaj niemal identycznych koncepcji:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +Wyższa wartość = bardziej agresywne łączenie. + +--- + +## Profilowanie konfiguracji + +### Eksport/W Import ustawień + +**Dzielenie się konfiguracjami między urządzeniami:** + +1. **Ustawienia → Zaawansowane → Eksport konfiguracji** +2. Zapisuje `notemd-config.json` +3. Na nowym urządzeniu: **Import konfiguracji** + +**Co jest zawarte:** +- Klucze dostawcy API (opcjonalne) +- Wybory modeli +- Ścieżki wyjściowe +- Dostosowane procesy pracy + +--- + +## Zalecane konfiguracje + +### Dla studentów + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### Dla badaczy + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### Dla użytkowników dbających o prywatność + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### Dla pracy dwujęzycznej + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## Rozwiązywanie problemów z konfiguracją + +### Ustawienia nie zostały zapisane +- Sprawdź uprawnienia do pliku w `.obsidian/plugins/notemd/` +- Spróbuj: Wyłącz wtyczkę → Ponownie włącz + +### Klucz API jest nieważny +- Brak dodatkowych spacji +- Sprawdź termin ważności +- Sprawdź kredyty na panelu dostawcy + +### Modele nie ładują się +- Kliknij "Pobierz listę modeli", aby odświeżyć +- Sprawdź połączenie sieciowe +- Spróbuj innego dostawcy + +--- + +## Kolejne kroki + +- 📖 [Odkryj funkcje](../features/wiki-links) +- 🔌 [Przewodniki konfiguracji dostawcy](../providers/overview) +- ❓ [FAQ](../faq) diff --git a/website/i18n/pl/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/pl/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..b3e34f03 --- /dev/null +++ b/website/i18n/pl/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "Instalacja" +description: "Jak zainstalować Notemd w Obsidian" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Instalacja + +<TLDR> +**Zainstaluj Notemd w mniej niż 2 minuty.** Dwa sposoby: (1) plugini społecznościowe Obsidian (zalecane, instalacja jednym kliknięciem) lub (2) instalacja ręczna przez GitHub Releases. Wymaga wersji Obsidian 0.15.0+ lub nowszej. Działa na Windows, macOS, Linux, iOS i Android. Brak zależności zewnętrznych. Ponad 4k pobierania, licencja MIT. +</TLDR> + +## Metoda 1: Wtyczki społecznościowe (zalecane) + +1. Otwórz **Obsidian Ustawienia** (ikonka ⚙️ lub `Ctrl/Cmd + ,`) +2. Przejdź do **Community plugins** +3. Kliknij **Przeglądaj** +4. Szukaj **"Notemd"** +5. Kliknij **Install** +6. Kliknij **Włącz** + +**Gotowe!** Zobaczysz ikonę Notemd w lewej kolumnie bocznej. + +## Metoda 2: Ręczna instalacja + +### Wymagania wstępne +- Obsidian 0.15.0 lub nowsza wersja +- Git (opcjonalnie, do klonowania) + +### Kroki + +1. **Pobierz pliki** z [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest): + - `main.js` + - `styles.css` + - `manifest.json` + +2. **Znajdź folder z pluginkami swojego sejfu:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +Jeśli folder `plugins` nie istnieje, utwórz go. + +3. **Utwórz folder Notemd:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **Skopiuj trzy pliki** do foldera `notemd`. + +5. **Przeładowaj Obsidian:** + - Naciśnij `Ctrl/Cmd + R` lub + - Uruchom ponownie Obsidian + +6. **Włącz plugina:** + - Ustawienia → Pluginy społecznościowe + - Znajdź „Notemd” na liście + - Włącz go + +## Alternatywa: Zainstaluj przez BRAT + +Jeśli używasz [BRAT plugin](https://github.com/TfTHacker/obsidian42-brat): + +1. Otwórz ustawienia BRAT +2. Kliknij "Dodaj wtyczkę beta" +3. Wpisz: `Jacobinwwey/obsidian-NotEMD` +4. Kliknij "Dodaj wtyczkę" +5. Włącz Notemd w wtyczkach społecznościowych + +## Weryfikacja + +Po zainstalowaniu sprawdź, czy Notemd działa: + +1. Otwórz dowolną notatkę +2. Kliknij prawym przyciskiem myszy w edytorze +3. Powinieneś zobaczyć polecenia Notemd takie jak: + - "Przetworz plik (dodaj linki)" + - "Wyodrębnij koncepcje" + - "Przeprowadź badania i stwórz podsumowanie" + +## Kolejne kroki + +- **Skonfiguruj dostawcę LLM:** [Szybki start →](./quick-start) +- **Rozwiązywanie problemów:** [Częste problemy →](../advanced/troubleshooting) + +## Wymagania systemowe + +| Platforma | Wersja | Status | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | Wymagane | +| **Windows** | 7+ | ✅ Obsługiwane | +| **macOS** | 10.15+ | ✅ Obsługiwane | +| **Linux** | Jakiekolwiek | ✅ Obsługiwane | +| **iOS** | 15+ | ✅ Obsługiwane | +| **Android** | 5+ | ✅ Obsługiwane | + +## Usuwanie + +Aby usunąć Notemd: + +1. Ustawienia → Wtyczki społecznościowe +2. Znajdź "Notemd" +3. Kliknij ikonę ❌ +4. Opcjonalnie usuń folder z wtyczką: `<vault>/.obsidian/plugins/notemd/` + +Twoje dane (notatki, notatki koncepcyjne itp.) pozostają nietknięte. + +## Aktualizacja + +### Automatyczna aktualizacja (zalecane) +Obsidian automatycznie sprawdza dostępne aktualizacje wtyczek. Gdy pojawi się nowa wersja: +1. Ustawienia → Wtyczki społecznościowe +2. Kliknij "Sprawdź aktualizacje" +3. Kliknij "Zaktualizuj" obok Notemd + +### Ręczna aktualizacja +Pobierz najnowszą wersję i zastąp trzy pliki w folderze z wtyczką. + +## Pomoc + +- 📖 [Przewodnik szybkiego rozpoczęcia](./quick-start) +- ❓ [FAQ](../faq) +- 💬 [Społeczność Discord](https://discord.gg/qnGgsQ9W) +- 🐛 [Zgłoś problemy](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/pl/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/pl/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..25a7cb98 --- /dev/null +++ b/website/i18n/pl/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "Przewodnik szybkiego rozpoczęcia" +description: "Rozpocznij pracę z Notemd w ciągu 5 minut" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Przewodnik szybkiego rozpoczęcia + +<TLDR> +**Zacznij używać Notemd w ciągu 5 minut.** Trzy kroki: (1) Dodaj klucz LLM API (lub użyj lokalnego Ollama), (2) Otwórz notatkę i uruchom „Process file (add links)”, (3) Odkryj jednoklikowe procesy w pasku bocznym. Obsługuje ponad 30 dostawców. Nie wymaga programowania. Działa offline z Ollama. +</TLDR> + +## Krok 1: Skonfiguruj swego pierwszego dostawcę LLM (2 min) + +### Opcja A: Dostawca chmurowy (OpenAI, Anthropic itp.) + +1. Otwórz **Ustawienia** → **Notemd** +2. W sekcji **Konfiguracja dostawcy LLM** wybierz dostawcę z listy rozwijanej +3. Wpisz swój **Klucz API** +4. (Opcjonalnie) Kliknij **„Pobierz listę modeli”**, aby zobaczyć dostępne modele +5. Wybierz model dla każdego typu zadania + +**Popularne opcje:** +- **OpenAI**: `gpt-4o-mini` (szybki, tani) +- **Anthropic**: `claude-sonnet-4-6` (wysoka jakość) +- **DeepSeek**: `deepseek-chat` (bardzo tani) + +### Opcja B: Lokalny Ollama (brak klucza API potrzebny) + +1. Zainstaluj [Ollama](https://ollama.com/) +2. Pobierz model: `ollama pull llama3.1` +3. W ustawieniach Notemd wybierz **"Ollama"** jako dostawcę +4. Nazwa modelu: `llama3.1` (lub dowolny model, który pobrzesz) + +## Krok 2: Spróbuj swojego pierwszego zadania (1 min) + +### Dodaj linki wiki do notatki + +1. Otwórz dowolną notatkę z treścią o znaczeniu +2. Kliknij prawym przyciskiem myszy w edytorze +3. Wybierz **"Przetworzyć plik (dodaj linki)"** +4. Poczekaj kilka sekund +5. Kluczowe koncepcje są teraz `[[wiki-linked]]`! + +**Przykład:** + +**Przed:** +``` +Machine learning models use neural networks to process data. +``` + +**Po:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## Krok 3: Odkryj funkcje (2 min) + +### Wyciągnij notatki z koncepcjami + +1. Kliknij prawym przyciskiem → **"Wyciągnij koncepcje z bieżącego pliku"** +2. Notemd tworzy oddzielne pliki dla każdej koncepcji +3. Sprawdź skonfigurowaną folder koncepcji (domyślnie: `concepts/`) +4. Każda notatka z koncepcją ma link zwrotny do oryginalnej notatki + +### Badanie i streszczanie + +1. Wyróżnij temat w swojej notatce +2. Kliknij prawym przyciskiem → **"Badanie i streszczanie"** +3. Notemd wyszukiwania w internecie (Tavily lub DuckDuckGo) +4. Streszczenie jest dodawane do notatki wraz z źródłami + +### Przepisy szybkiego działania + +1. Sprawdź **lewą listę boczną** w poszukiwaniu przycisków przepisów +2. Kliknij **"Szybkie wyodrębnienie"** w dowolnej notatce +3. Proces obejmuje: dodanie linków → wyodrębnienie pojęć → badanie → generowanie diagramu +4. Wszystko w jednym kliknięciu! + +## Częste pierwsze zadania + +### Zadanie 1: Przetworzyć artykuł/gazetkę + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### Zadanie 2: Tłumaczyć notatki + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### Zadanie 3: Stworzyć mapę wiedzy + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## Wskazówki dotyczące personalizacji + +### Wybór modelu na zasadzie zadania + +Możesz używać różnych modeli do różnych zadań: + +| Zadanie | Zalecany model | Dlaczego | +|------|------------------|-----| +| Dodaj linki | `gpt-4o-mini`, `deepseek-chat` | Szybko, wiele wywołań | +| Wyciąganie koncepcji | `claude-sonnet-4-6`, `gpt-4o` | Wysoka jakość wyciągania | +| Badania | `perplexity`, `gpt-4o` | Uzasadnione danymi z sieci | +| Tłumaczenie | `gemini-flash`, `gpt-4o` | Wielojęzyczne | +| Diagramy | `claude-opus`, model lokalny | Złożone rozumowanie | + +Konfiguracja w: **Ustawienia → Notemd → Modele specyficzne dla zadań** + +### Szyty na miarę przepływy pracy + +Stwórz własną кнопkę: + +1. Ustawienia → Notemd → Przepływy pracy +2. Kliknij "Dodaj przepływ pracy" +3. Wpisz DSL: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. Nazwij to: "Mój przepływ badań" +5. Nowa кнопка pojawia się na pasku bocznym + +## Rozwiązywanie problemów + +### "API Klucz nieprawidłowy" +- Sprawdź, czy klucz jest poprawny (bez dodatkowych spacji) +- Upewnij się, że konto ma kredyty +- Przetestuj za pomocą przycisku "Test połączenia" w ustawieniach + +### "Model nie znaleziono" +- Kliknij "Pokaż listę modeli", aby zobaczyć dostępne modele +- Niektórzy dostawcy wymagają określonych nazw modeli (np. `gpt-4o` zamiast `gpt-4`) + +### Linki się nie pokazują +- Upewnij się, że notatka ma wystarczającą ilość treści (>50 słów) +- Spróbuj użyć silniejszego modelu +- Sprawdź, czy wywołanie LLM zakończyło się pomyślnie (sprawdź panel diagnostyczny) + +### Powolna wydajność +- Użyj szybszych modeli (`gpt-4o-mini` zamiast `gpt-4o`) +- Zmniejsz rozmiar fragmentu w ustawieniach +- Włącz przetwarzanie równoległe dla zadań zbiorczych + +## Kolejne kroki + +- 📖 [Odkryj wszystkie funkcje](../features/wiki-links) +- ⚙️ [Zaawansowana konfiguracja](./configuration) +- 🔧 [Ustawienia dostawcy LLM](../providers/overview) +- ❓ [FAQ](../faq) + +## Wideo instruktażowe + +Oglądaj 3-minutowe wideo wprowadzające (chiński): +[【Całkowicie otwarte i bezpłatne! NotEMD – 3 minuty na start】](https://b23.tv/lqR0RlA) + +## Pomoc + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **Problemy**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **Dokumentacja**: [Pełna dokumentacja](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/pl/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/pl/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..7d96ce38 --- /dev/null +++ b/website/i18n/pl/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "Wprowadzenie do Notemd" +description: "Narzędzie do budowania bazy wiedzy opartej na AI dla Obsidian z możliwością trwałych transformacji notatek, pracowników i diagramów opartych na specyfikacjach" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Wprowadzenie do Notemd + +<TLDR> +**Notemd** (Note + EMD — Enhanced Markdown Documents) to otwarty plugin Obsidian, który przekształca lektury wykonywane za pomocą LLM w trwałą wiedzę. W odróżnieniu od AI opartego na czacie, gdzie informacje znikają po zakończeniu sesji, Notemd zapisuje wyniki **bezpośrednio do twojej skrzynki** w postaci linków wiki, notatek koncepcyjnych, streszczeń badań, tłumaczeń, pracowników i diagramów. Jest przeznaczony dla badaczy, studentów oraz osób pracujących z wiedzą, które chcą, aby lektury, badania i wyjaśnienia wizualne gromadziły się w uporządkowanym, rozwijającym się grafie wiedzy. +</TLDR> + +## Czym jest Notemd? + +Notemd integruje **ponad 30 dużych modeli językowych** (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama i inne) z twoim workflow Obsidian w celu automatyzacji wydobywania wiedzy, jej organizacji, tłumaczenia, badań oraz generowania diagramów. + +### Główna różnica: wiedza ulotna vs. trwała + +| Aspekt | AI oparty na czacie (ChatGPT itp.) | Notemd | +|--------|-------------------------------|--------| +| **Dokąd trafiają wyniki** | Historia rozmowy (znika) | Twoja skrzynka Obsidian (przetrwa) | +| **Format** | Odpowiedzi w formacie prostego tekstu | Pliki strukturyzowane: `[[wiki-links]]`, notatki koncepcyjne, diagramy | +| **Wartość długoterminowa** | Konieczność ponownego zadawania pytania za każdym razem | Gromadzenie w grafie wiedzy | +| **Dostęp offline** | Wymaga połączenia z Internetem | Działa w pełni offline z Ollama | + +## Podstawowe funkcje + +### 1. **Automatyczne łączenie z Wiki** +- LLM identyfikuje kluczowe koncepcje w twoich notatkach +- Wstawia `[[wiki-links]]` przy każdym wystąpieniu +- Opcjonalnie tworzy powiązane notatki o koncepcjach +- Tłumienie synonimów w celu uniknięcia duplikatów + +### 2. **Generowanie notatek o koncepcjach** +- Wyciąga podstawowe koncepcje z artykułów naukowych, publikacji i notatek +- Tworzy dedykowane pliki z koncepcjami wraz z odnośnikami +- Dostosowalne ścieżki wyjściowe i szablony + +### 3. **Integracja z wyszukiwarką internetową** +- Wyszukuj Tavily lub DuckDuckGo bezpośrednio w Obsidian +- LLM podsumowuje wyniki z cytatami źródłowymi +- Dodaje wyniki badań do obecnej notatki + +### 4. **Tłumaczenie wielojęzyczne** +- Tłumaczy wybrane fragmenty lub całe notatki +- Obsługuje ponad 21 języka UI +- Niezależna konfiguracja języka wyjściowego +- Obsługa tłumaczenia partiami + +### 5. **Generowanie diagramów** +- **Mermaid**: schematy przepływu, sekwencyjne, klasowe, stanowe, ER, Gantt +- **JSON Canvas**: natywne układy Obsidian +- **Vega-Lite**: wykresy danych, serie czasowe, wykresy rozproszenia +- **HTML / Edytowalne HTML/SVG**: samodzielne artefakty graficzne z anotacjami semantycznymi +- **Draw.io / Granice artefaktów Drawnix**: ścieżki eksportu przeznaczone dla administratorów, wychodzące z tego samego modelu graficznego semantycznego +- **Plan rozwoju schematów obwodów**: obsługa circuitikz/TikZJax jest projektowana wokół złotych referencji, ograniczonych promptów, informacji zwrotnej z renderowania oraz walidacji topologii/układu, a nie surowego, nieograniczonego LLM TikZ +- **Diagnostyka wstępna**: artefakty renderowane mogą pokazywać informacje o błędach kompilacji/renderowania, a źródła nieliniowe można sprawdzać bez konieczności używania środowiska LaTeX na stronie pluginu +- Automatyczne poprawianie składni w przypadku błędów Mermaid + +### 6. **Przepisy szybkiego działania** +- Łączenie wielu działań w przyciski na pasku bocznym +- Definicja procesów oparta na DSL +- Przykład: `add-links > extract-concepts > research > diagram` + +## Kto powinien używać Notemd? + +✅ **Badacze** czytający artykuły i tworzący przeglądy literatury +✅ **Studenci** organizujący notatki i tworzący mapy pojęciowe +✅ **Pracownicy wiedzy**, którzy chcą, aby wnioski z lektury były przechowywane +✅ **Profesjonaliści dwujęzyczni**, potrzebujący tłumaczeń + łączeń do wiki +✅ **Użytkownicy dbający o prywatność**, którzy chcą lokalnego wsparcia LLM (Ollama) +✅ **Użytkownicy zaawansowani**, którzy personalizują prompty i procesy + +## Dlaczego Notemd + Obsidian? + +**Obsidian** to baza wiedzy oparta na markdownu, skupiona na lokalnym przechowywaniu. **Notemd** dodaje supermoc AI: +- Twoje dane pozostają w twoim sejfie (a nie w usłudze chmurowej) +- Działa offline z lokalnymi modelami +- Darmowe i otwarte oprogramowanie (licencja MIT) +- Integruje się z istniejącymi wtyczkami Obsidian +- Może obsługiwać dziesiątki tysięcy notatek + +## Pierwsze kroki + +1. **Instalacja**: Ustawienia → Wtyczki społecznościowe → Przeglądaj → "Notemd" +2. **Konfiguracja**: Dodaj swój klucz dostawcy LLM API (lub użyj lokalnego Ollama) +3. **Spróbuj**: Otwórz notatkę → Kliknij prawym przyciskiem → "Przetworzyć plik (dodaj linki)" +4. **Odkrywaj**: Sprawdź pasek boczny w poszukiwaniu jedno-klikowych procesów pracy + +👉 [Przewodnik instalacyjny](./getting-started/installation) | [Szybki przewodnik](./getting-started/quick-start) + +## Kierunek rozwoju funkcji diagramów + +Praca z diagramami w Notemd zmierza od „prośby modelu o napisanie jednej ciągu składniowego” ku warstwowemu pipeline’owi: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +Obecna implementacja już obsługuje Mermaid, JSON Canvas, Vega-Lite, fallback HTML, edytowalne HTML/SVG, artefakty Draw.io XML, minimalny zestaw Drawnix JSON, diagnostykę wstępną/z fallbackiem tylko źródła oraz prototyp offline `CircuitSpec -> circuitikz` dla typowych szablonów zasilania i inwerterów CMOS. Diagramy obwodów to trudniejsza kategoria: circuitikz potrafi przedstawić dokładną topologię elektryczną, ale niekontrolowane wyniki LLM często dają nieczytelne ścieżki lub LaTeX, który się nie renderuje. Kolejnym kierunkiem jest utrzymanie circuitikz w ramach szablonów odniesienia złotego, reguł układu siatki węzłów, diagnostyki renderowania oraz pętli zwrotnej z zrzutami ekranu. + +Przeczytaj szczegóły w [Diagramy](./features/diagrams). + +## Architektura + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd kontra inne wtyczki AI Obsidian + +Większość wtyczek AI Obsidian jest skoncentrowana na rozmowie (pytasz, AI odpowiada, informacje pozostają w czacie). Notemd jest **skoncentrowany na pisaniu**: AI przetwarza twoje notatki i zapisuje strukturyzowane wyniki bezpośrednio do twojego vault. + +| Zdolności | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| Wstawianie automatycznych linków wiki | Tak | Nie | Nie | Nie | +| Generowanie notatki koncepcyjnej | Tak (z odnośnikami wstecznymi + usuwaniem duplikatów) | Nie | Nie | Nie | +| Generowanie diagramów | Tak (Mermaid, Canvas, Vega-Lite, HTML, edytowalne artefakty) | Nie | Nie | Nie | +| Integracja z badaniami internetowymi | Tak (Tavily + DuckDuckGo) | Nie | Nie | Nie | +| Przetwarzanie folderów partiiowo | Tak | Ograniczone | Nie | Ograniczone | +| Kierowanie modelem według zadania | Tak (7 zadań, niezależne modele) | Nie | Nie | Nie | +| Łańcuchy procesów jednym kliknięciem | Tak (DSL) | Nie | Nie | Nie | +| Tłumaczenie (partiami) | Tak | Nie | Nie | Nie | +| Rozmowa z sejfem | Nie | Tak | Nie | Nie | +| Szukanie podobieństwa semantycznego | Nie | Nie | Tak | Nie | +| Generowanie oparte na szablonach | Nie | Nie | Nie | Tak | +| dostawcy LLM | 36 (chmura + brama + lokalny) | 3-5 | 2-3 | 3-5 | +| Całkowicie offline | Tak (Ollama) | Częściowy | Częściowy | Częściowy | + +**Kiedy wybrać Notemd**: Chcesz, aby sztuczna inteligencja stworzyła trwałą grafę wiedzy — a nie tylko rozmawiała o twoich notatkach. + +**Kiedy wybrać Copilot**: Chcesz mieć asystenta AI do rozmów wewnątrz Obsidian. + +**Kiedy wybrać Smart Connections**: Chcesz odkryć istniejące związki między notatkami za pomocą wyszukiwania semantycznego. + +## Filozofia + +**Notemd uważa, że sztuczna inteligencja powinna uzupełniać pracę ludzi związana z wiedzą, a nie ją zastępować.** Wtyczka: +- Umożliwia kontrolę nad procesem (przeczytaj recenzję przed zastosowaniem zmian) +- Zachowuje kontekst (wszystkie wyniki odnoszą się do źródła) +- Szanuje prywatność (lokalne wsparcie LLM, brak telemetrii) +- Zachowuje się elastycznie (otwarte APIs, niestandardowe procesy pracy) + +## Otwarty kod źródłowy + +- **Licencja**: MIT +- **Źródło**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **Społeczność**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **Wkład**: Witamy PR-y, patrz [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +**Następny krok**: [Installation →](./getting-started/installation) diff --git a/website/i18n/pl/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/pl/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..aeeaea9f --- /dev/null +++ b/website/i18n/pl/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Przewodnik zarządzania wiedzą AI Obsidian" +description: "Kompletny przewodnik budowy połączonej bazy wiedzy z wykorzystaniem AI — od linków wiki i ekstrakcji koncepcji po badania, tłumaczenie i generowanie diagramów" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Przewodnik zarządzania wiedzą AI Obsidian + +<TLDR> +**Notemd przekształca czytanie napędzane LLM w trwałą wiedzę: linki wiki łączą koncepcje, notatki koncepcyjne tworzą dostępny graf, badania wprowadzają treści z internetu do twojej bazy, tłumaczenie usuwa bariery językowe, diagramy ułatwiają widoczność struktury, a workflow łączą wszystko w jeden kliknięcie.** Ten przewodnik obejmuje cały proces — od surowych notatek do połączonej, wizualnej, wielojęzycznej bazy wiedzy. +</TLDR> + +## Dlaczego zarządzanie wiedzą AI? + +Tradycyjne notowanie tworzy płaskie pliki. Nawet przy ręcznych linkach wiki, większość notatek pozostaje niepowiązana. Notemd wykorzystuje LLM do automatyzacji warstwy połączeń: + +- **LLMs czytają twój treść** i identyfikują to, co jest ważne — terminy, metody, osoby, teorie +- **Linki są wstawiane automatycznie** przy każdym wystąpieniu koncepcji, a nie ukryte w sekcji „zobacz także +- **Notatki koncepcyjne są generowane** jako samodzielne pliki dostępne do wyszukiwania +- **Badania wzbogacają notatki** o kontekście z internetu +- **Diagramy ułatwiają widoczność struktury** — mapy myśli, schematy przepływu, wykresy danych powstałe z tej samej treści + +Rezultat: graf wiedzy, który rośnie z każdą przetworzoną notatką, a nie tylko wtedy, gdy pamiętasz o dodaniu linków. + +## Pełny proces + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +Każdy krok jest niezależny. Można użyć jednego lub wszystkich. Najskuteczniejsza sekwencja: **Dodaj linki → Notatki koncepcyjne → Diagramy**. + +--- + +## 1. Linki wiki: Ujawnianie połączeń + +Linki wiki stanowią podstawę grafu wiedzy. Notemd wykorzystuje LLM do: + +1. Przeczytaj treść swojej notatki (podziel ją na fragmenty w przypadku długich dokumentów) +2. Zidentyfikuj kluczowe koncepcje — priorytetowo traktując konkretne terminy techniczne nad ogólnymi rzeczownikami +3. Wstaw `[[wiki-links]]` przy każdym wystąpieniu +4. Zablokuj synonimy, aby „ML” i „Machine Learning” nie tworzyły oddzielnych węzłów + +### Kiedy stosować + +- **Każda notatka >100 słów** — krótsze notatki dają niewiele koncepcji +- **Artykuły badawcze, dokumenty techniczne, notatki ze spotkań** — bogate w terminy specyficzne dla danej dziedziny +- **Po ustabilizowaniu treści** — nie przetwarzaj ponownie szkiców + +### Ustawienia kluczowe + +| Ustawienie | Zalecane | Dlaczego | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek lub GPT-4o-mini | Dobra dokładność przy niskich kosztach | +| Zablokowanie synonimów | Włączone | Zapobiega tworzeniu duplikatów węzłów | +| Okno kontekstowe | Akapit | Równowaga między dokładnością a kosztem | + +→ [Wiki-Links deep dive](/docs/features/wiki-links) + +--- + +## 2. Notatki koncepcyjne: węzły wiedzy dostępne do wydobycia + +Linki wiki łączą pomysły w tekście, natomiast notatki koncepcyjne umożliwiają niezależne wydobycie każdego pomysłu. Każda koncepcja ma swój własny plik `.md`: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### Proces wydobywania + +Prompt LLM jest bardzo ustrukturyzowany: +- Unormalizuj do formy liczby pojedynczej +- Wolimy wielosłowowe pojęcia zamiast pojedynczych słów („Dielectric Relaxation”, a nie „Relaxation”) +- Pomijaj sekcje odniesień/bibliografii +- Wynik w postaci linii `CONCEPT:` dla pewnego parsowania + +Koncepcje są usuwane z duplikatów w poszczególnych fragmentach za pomocą `Set<string>`. Błędy LLM w pojedynczych fragmentach nie powodują przerwania operacji. + +### Powrotnie linkujące się elementy + +Gdy jest to włączone, każda notatka koncepcyjna odnotowuje, które notatki źródłowe o niej wspominają. Wbudowany panel powrotnych linków Obsidian pokazuje również połączenia wsteczne. + +### Deduplikacja + +4-etapowy silnik usuwania duplikatów Notemd wykrywa: +1. **Dokładne zgodności** — porównanie nazw plików bez względu na wielkość liter +2. **Formy liczby mnogiej** — "Models.md" vs "Model.md" +3. **Normalizacja symboli** — "A-B.md" vs "A B.md" +4. **Zawieranie jednego słowa** — "ML.md" jest oznaczane, gdy istnieje "Machine Learning.md" + +### Ustawienia kluczowe + +| Ustawienie | Zalecane | Dlaczego | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` lub `🧠 concepts/` | Utrzymuje skarbiec uporządkowany | +| `extractConceptsAddBacklink` | Włączone | Umożliwia odwrotne wyszukiwanie | +| `extractConceptsMinimalTemplate` | Wyłączone | Pełny szablon z Linked From | +| Model na zadanie | DeepSeek | Ekstrakcja pojęć nie wymaga drogich modeli | +| Tłumienie synonimów | Włączone | Ta sama ustawienie wpływa zarówno na łączenie, jak i ekstrakcję | + +→ [Szczegółowe omówienie Notatek koncepcyjnych](/docs/features/concept-notes) + +--- + +## 3. Badania: Włączenie sieci + +Notemd integruje wyszukiwanie w sieci z Twoim procesem roboczym notatek: + +1. **Konstruowanie zapytania** — tytuł lub wybrany fragment notatki staje się zapytaniem wyszukiwania +2. **Wyszukiwanie w sieci** — Tavily (zalecane, wymagana klucz API) lub DuckDuckGo (darmowe, bez klucza) +3. **Sumaryzacja LLM** — wyniki wyszukiwania są skracane do istotnego streszczenia +4. **Dodanie do notatki** — streszczenie jest dodawane w pozycji kursora lub jako nowy rozdział + +### Kiedy używać + +- Przed przetwarzaniem nowego tematu — najpierw uzyskaj kontekst z sieci +- Gdy nota koncepcyjna wymaga uzupełnienia — najpierw przeprowadź badania, a następnie dodaj linki +- Do przeglądów literatury — przeprowadź masowe badania folderu notatek + +### Główne ustawienia + +| Ustawienie | Zalecane | Dlaczego | +|---------|-----------|-----| +| `researchProvider` | GPT-4o lub Claude | Badania wymagają wyższej jakości sumaryzacji | +| Usługa wyszukiwania | Tavily | Lepsza trafność, możliwość konfiguracji głębokości | +| `maxResearchContentTokens` | 4000 | Równowaga pomiędzy głębokością a kosztem | + +→ [Szczegółowe badanie tematu](/docs/features/research) + +--- + +## 4. Tłumaczenie: Przełamywanie barier językowych + +Notemd tłumaczy notatki przy użyciu skonfigurowanego LLM — nie jest to dedykowany narzędzie do tłumaczenia API. Oznacza to: + +- **Tłumaczenia zrozumiałe w kontekście** — LLM rozumie cały dokument, a nie tylko poszczególne zdania +- **Obsługa terminów technicznych** — „gradient descent” pozostaje jako „梯度下降”, a nie „坡度向下 +- **Obsługa grup** — możliwość tłumaczenia całej folderu z notatkami za jednym razem +- **Model dostosowany do zadania** — wykorzystanie Gemini Flash do tłumaczeń (szybko, tanio, wielojęzycznie) + +### Obsługa języków + +Sam Notemd obsługuje 21 języków UI. Język docelowy tłumaczenia można skonfigurować dla każdego zadania. Najczęstsze pary: EN↔ZH, EN↔JA, EN↔KO, EN↔DE, EN↔FR, EN↔ES. + +→ [Szczegółowe omówienie tłumaczenia](/docs/features/translation) + +--- + +## 5. Diagramy: Ujawnianie struktury + +Pipeline diagramów Notemd opiera się na specyfikacji: LLM tworzy ustrukturyzowany `DiagramSpec` JSON, a następnie adaptery przekształcają go do formatu docelowego. Dzięki temu uzyskuje się bardziej wiarygodny wynik niż proszenie LLM o surową składnię Mermaid. + +### Rozpoznawanie intencji + +Notemd wywnioskowuje najlepszy typ diagramu na podstawie treści: + +- **Tabele z liczbami** → wykres danych (Vega-Lite) +- **Słownictwo klienta/servera** → diagram sekwencyjny (Mermaid) +- **Entyteta/klucz główny** → diagram ER (Mermaid) +- **Krok/przepływ procesu** → schemat przepływu (Mermaid) +- **Słowa kluczowe mapy koncepcyjnej** → JSON Canvas (Obsidian native) +- **Domyślnie** → mapa umysłowa (Mermaid) + +### Łańcuch renderowania + +Cel główny → alternatywa → alternatywa → HTML. Jeśli składnia Mermaid zawiedzie, próbuje ponownie raz z kontekstem błędu dla LLM, a następnie przechodzi na minimalny diagram. + +### Ustawienia kluczowe + +| Ustawienie | Zalecane | Dlaczego | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | Włączone | Lepsza jakość dzięki podejściu opartemu na specyfikacji | +| `experimentalDiagramCompatibilityMode` | `best-fit` | Cel natywny według intencji | +| `summarizeToMermaidProvider` | GPT-4o lub Claude | Specyfikacje diagramów wymagają rozumowania przestrzennego | +| `autoMermaidFixAfterGenerate` | Włączone | Automatycznie wykrywa błędy składni LLM | +| Wzmacnianie lokalnej wiedzy | Włączone dla specyficznych domen | Poprawia dokładność dzięki kontekstowi vault | + +→ [Szczegółowe omówienie diagramów](/docs/features/diagrams) + +--- + +## 6. Przepływy pracy: Automatyzacja jednym kliknięciem + +Przepływy pracy łączą wiele zadań w jeden przycisk na pasku bocznym. Format DSL to: + +``` +task1 | task2 | task3 +``` + +Przykład: `addLinks | extractConcepts | generateDiagram` — przetwarzanie notatki z tekstu surowego na w pełni połączony, wizualny węzeł wiedzy jednym kliknięciem. + +### Zalecane przepływy pracy + +| Przepisywanie | Łańcuch | Przypadek użycia | +|----------|-------|----------| +| Pełny proces | `addLinks \| extractConcepts \| generateDiagram` | Nowe notatki | +| Badania najpierw | `research \| addLinks` | Tematy nieznane | +| Polyglot | `translate \| addLinks` | Notatki wielojęzyczne | +| Tylko diagram | `generateDiagram` | Szybka wizualizacja | + +→ [Szczegółowe omówienie workflow](/docs/features/workflows) + +--- + +## 7. LLM Dostawcy: 36 opcji od chmury do lokalnego serwera + +Notemd obsługuje 36 dostawców w 4 typach transmisji. Główne grupy: + +- **Chmura międzynarodowa**: OpenAI, Anthropic, Google, Mistral, xAI +- **Chmura w Chinach**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **Bramy**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **Lokalny**: Ollama, LMStudio, OVMS — brak klucza API, żadne dane nie opuszczają twojego komputera + +### Strategia modeli na poziomie zadań + +Najbardziej ekonomiczne rozwiązanie polega na używaniu tanich modeli do prostych zadań oraz potężnych modeli do złożonych: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [Przegląd LLM Dostawców](/docs/providers/overview) + +--- + +## Lista kontrolna rozpoczęcia pracy + +1. **Zainstaluj Notemd** — [Community Plugins](/docs/getting-started/installation) (zalecane) lub ręcznie +2. **Skonfiguruj dostawcę** — DeepSeek (najprościej), OpenAI lub Ollama (darmowe) +3. **Przetwórz swoją pierwszą notatkę** — kliknij prawym przyciskiem → "Przetworzyć plik (dodaj linki)" +4. **Ustaw folder koncepcji** — Ustawienia → Notemd → Wyjście → Folder koncepcji +5. **Wyciągnij koncepcje** — uruchom „Wyciągnij koncepcje” w tej samej notatce +6. **Stwórz diagram** — uruchom „Stwórz diagram”, aby zobrazować połączenia +7. **Stwórz przepływ pracy** — połącz powyższe elementy w jeden przycisk jednym kliknięciem + +## Zalecane konfiguracje + +### Student (Budżet) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### Badacz (Jakość) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### Priorytet prywatności (tylko lokalnie) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### Dwujęzyczny (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## Częste wzorce + +### Wzorzec: Przetwarzanie artykułu badawczego + +1. Imporcie treści PDF (lub wklej) +2. **Badania** — uzyskaj kontekst internetowy na temat +3. **Dodaj linki** — zidentyfikuj i połącz kluczowe koncepcje +4. **Wyciągnij koncepcje** — utwórz oddzielne notatki +5. **Stwórz diagram** — zobrazuj strukturę artykułu + +### Wzorzec: Wzbogacanie codziennej notatki + +1. Pisać codzienną notatkę +2. **Dodaj linki** — łączy dzisiejsze pomysły z istniejącymi koncepcjami +3. Notatki koncepcyjne automatycznie aktualizują się dzięki odnośnikom zwrotnym + +### Wzorzec: Przegląd literatury + +1. Stworzyć folder z artykułami/notatkami +2. **Dodaj linki masowo** — przetworzyć cały folder +3. **Usuń duplikaty koncepcji** — oczyścić niemal identyczne notatki +4. **Wygeneruj diagram** — mapa myśli całej literatury + +--- + +*Notemd jest oprogramowaniem otwartym (MIT) i działa z Obsidian 0.15.0+ na wszystkich platformach. [Zainstaluj teraz](/docs/getting-started/installation) lub [przeglądaj na GitHubie](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/pl/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/pl/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..dff1a02c --- /dev/null +++ b/website/i18n/pl/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "Konfiguruj Anthropic Claude" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Anthropic Provider + +<TLDR> +**Anthropic wykorzystuje wbudowany transport wiadomości API, a nie transport kompatybilny z OpenAI.** Obecna predefinicja domyślnie używa `claude-3-5-sonnet-20240620`, `https://api.anthropic.com` i `temperature: 0.5`. Traktuj ją jako odrębną powłokę protokołu podczas debugowania. + +To jest część [Obsidian Przewodnika po zarządzaniu wiedzą AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Ustawianie + +Stwórz klucz Anthropic API, dodaj profil dostawcy `Anthropic` i pozostaw Base URL na wbudowanym endpointzie, chyba że kierujesz ruch przez dedykowany profil bramy. Wybierz ID modelu Claude, który chcesz użyć w polu modelu; domyślna wartość utrzymuje stabilność istniejącej bazy produktu. + +Anthropic jest dobrym wyborem do wysokiej jakości streszczania, syntezy badań i wydobywania koncepcji. Jeśli połączysz go z tańszymi dostawcami, ustaw go tylko w zadaniach, które korzystają z jego jakości wyników. + +## Endpoint i autoryzacja + +| Pole | Obecna predefinicja | +|-------|----------------| +| Transport | `anthropic` | +| Klucz API | Wymagane | +| Base URL | `https://api.anthropic.com` | +| Domyślny model | `claude-3-5-sonnet-20240620` | +| Temperatura | `0.5` | +| Test połączenia | Tylko czat | + +System wysyła żądania do `/v1/messages` za pomocą `x-api-key` i `anthropic-version: 2023-06-01`. Nie konfiguruj endpointu `/v1/chat/completions` w stylu OpenAI w ramach tej predefinicji; zamiast tego użyj predefinicji bramy kompatybilnej z OpenAI. + +## Odkrywanie modeli + +Anthropic wykorzystuje tryb odkrywania `anthropic-models` w rejestrze dostawców. Jeśli twój klucz lub konto nie może wyświetlić modeli, zachowaj znany identyfikator modelu w profilu i zweryfikuj go za pomocą testu połączenia. + +Transport ten nie jest wymienny z dostawcami kompatybilnymi z OpenAI. Model Claude przekierowany przez OpenRouter, LiteLLM lub inny bramkarz powinien znajdować się w profilu tego bramkarza, a nie w natywnym profilu Anthropic. + +## Rozwiązywanie problemów + +- `401` lub `403`: sprawdź zakres klucza, dostęp do przestrzeni roboczej, fakturowanie oraz to, czy klucz należy do oczekiwanej przestrzeni roboczej Anthropic. +- `404`: baza URL jest błędna lub wybrany identyfikator modelu nie jest dostępny dla konta. +- Identyfikatory modeli w stylu bramkarza nie działają: przenieś profil do odpowiadającego dostawcy bramkarza, ponieważ natywny Anthropic oczekuje nazw modeli natywnych. +- Długie żądania zawodzą późno: zmniejsz rozmiar wyjścia modelu na zadanie lub użyj modelu z większym znanych limitem tokenów wyjściowych. + +## Kiedy używać + +Używaj Anthropic, gdy jakość syntezy, notatek badawczych lub strukturyzowanego pisania jest ważniejsza niż surowy koszt. Nie używaj go jako ogólnego rozwiązania zastępczego kompatybilnego z OpenAI; oddzielny transport ma kluczowe znaczenie, a mieszanie protokołów utrudnia diagnozę. + +--- + +## Kolejne kroki + +- [LLM Providers](/docs/providers/overview) -- Pełna konfiguracja, modele na zadanie oraz logika ponawiania prób +- [Troubleshooting](/docs/advanced/troubleshooting) -- Naprawa błędów 401/403 i problemów z połączeniem diff --git a/website/i18n/pl/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/pl/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..203f947f --- /dev/null +++ b/website/i18n/pl/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "Dostawcy z Chin" +description: "Konfiguruj Qwen, DeepSeek, GLM itp." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Dostawcy z Chin + +<TLDR> +**Notemd obsługuje dostawców z regionu Chin oraz pochodzących z Chin za pośrednictwem głównie kompatybilnych z OpenAI punktów końcowych.** Obecna lista obejmuje DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, MiniMax, Baidu Qianfan, SiliconFlow, Huawei Cloud MaaS oraz Z AI. Korzyścią są zasięg regionalny i kontrola kosztów; zagrożeniem jest specyficzne dla dostawcy nazewnictwo modeli oraz blokady kont. + +To jest część [Obsidian Przewodnika po zarządzaniu wiedzą AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Ustawianie + +Utwórz konto dostawcy, wygeneruj klucz API, a następnie wybierz odpowiedni preset dostawcy Notemd zamiast używać ogólnego profilu OpenAI. Preset zawiera domyślny Base URL, model, tryb testowy API, zachowanie odkrywania modeli oraz wszelkie specyficzne dla dostawcy pola UI. + +Wykorzystuj tutaj intensywne wybieranie modeli na podstawie zadań. Na przykład zachowaj DeepSeek lub GLM w pracach wymagających intensywnego rozumowania, użyj Qwen lub Moonshot do szerokiej pracy w języku chińskim, a zadania programistyczne kieruj do Qwen Code, jeśli to konto udostępnia modele programistyczne. + +## Endpoint i autoryzacja + +| Dostawca | Domyślny model | Base URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (wymagany ID punktu końcowego) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**Uwaga:** Doubao wymaga ID punktu końcowego Ark (format: `ep-xxxxxxxx-xxxx-xxxx`) zamiast standardowego nazwy modelu. + +Większość tych dostawców używa wspólnego środowiska wykonywania kompatybilnego z OpenAI, ale ich semantyka kont i modeli się różni. Zachowaj domyślny Base URL specyficzny dla presetu, chyba że zweryfikowałeś alternatywny punkt końcowy konta. + +## Odkrywanie modeli + +DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan oraz SiliconFlow używają odkrywania modeli kompatybilnego z OpenAI, gdy dostawca umożliwia wyświetlanie listy. Huawei Cloud MaaS używa trybu `huaweicloud-modelarts-models`, ponieważ metadane implementacji ModelArts nie są identyczne z ogólną listą `/v1/models`. + +Nie traktuj niepowodzenia odkrywania jako dowodu na niemożliwość rozmowy. Kilku dostawców umożliwia rozmowę, ograniczając uprawnienia do listy modeli. W takim przypadku zachowaj wyraźny ID modelu w profilu i zweryfikuj go za pomocą testu połączenia. + +## Rozwiązywanie problemów + +- Autoryzacja się udaje, ale rozmowa nie działa: nazwa modelu może znajdować się poza zakresem uprawnień lub regionem konta. +- Doubao zawodzi przy standardowej nazwie modelu: użyj ID punktu końcowego Ark w polu modelu, jeśli twoja implementacja tego wymaga. +- Odpowiedzi oparte na rozumowaniu są skracane: sprawdź maksymalną liczbę tokenów wyjściowych specyficzną dla dostawcy oraz ustawienia maksymalnej liczby tokenów uwzględniające modele Notemd. +- Sieci regionalne się różnią: użyj punktu końcowego regionu Chin dostawcy, gdy maszyna vault znajduje się w Chinach; używaj punktu końcowego międzynarodowego tylko wtedy, gdy konto i ścieżka sieciowa są oba ważne. + +## Kiedy używać + +Wykorzystuj dostawców z Chin, gdy głównymi ograniczeniami są opóźnienia regionalne, dostęp do płatności/konta, jakość w języku chińskim lub koszt. Wolisz bezpośrednie OpenAI, Anthropic, Google lub lokalnych dostawców, gdy potrzebujesz prostszego rozgraniczenia protokołu lub silniejszej spójności przy debugowaniu między dostawcami. + +--- + +## Kolejne kroki + +- [LLM Providers](/docs/providers/overview) -- Pełna konfiguracja, modele na zadanie oraz logika ponawiania prób +- [Rozwiązywanie problemów](/docs/advanced/troubleshooting) -- Napraw błędy łączności regionalnej i uwierzytelniania diff --git a/website/i18n/pl/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/pl/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..14591a22 --- /dev/null +++ b/website/i18n/pl/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "Konfiguruj Google Gemini" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Google Provider + +<TLDR> +**Google wykorzystuje wbudowany transport języka generatywnego Gemini API.** Obecny preset domyślnie używa `gemini-2.0-flash-exp`, `https://generativelanguage.googleapis.com/v1` i `temperature: 0.5`. Nie jest to profil kompatybilny z OpenAI. + +To jest część [Obsidian Przewodnika po zarządzaniu wiedzą AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Ustawianie + +Stwórz klucz chmurowy API typu Google AI Studio lub Google z dostępem do Gemini, dodaj profil dostawcy `Google` i zachowaj wbudowaną bazę języka generatywnego URL. Użyj domyślnego profilu Gemini Flash do szybkiego tłumaczenia i szerokich zadań z notatkami, a następnie przełącz się na modele specyficzne dla zadania, gdy potrzebujesz większego lub bardziej wydajnego modelu Gemini. + +Unikaj umieszczania identyfikatorów modeli Gemini w profilu kompatybilnym z OpenAI, chyba że wyraźnie używasz bramy, która udostępnia Gemini poprzez profil kompatybilny z OpenAI i API. + +## Endpoint i autoryzacja + +| Pole | Obecna predefinicja | +|-------|----------------| +| Transport | `google` | +| Klucz API | Wymagane | +| Base URL | `https://generativelanguage.googleapis.com/v1` | +| Domyślny model | `gemini-2.0-flash-exp` | +| Temperatura | `0.5` | +| Test połączenia | Tylko czat | + +W czasie wykonywania aplikacja wywołuje `/models/{model}:generateContent?key={apiKey}`. Klucz jest przekazywany jako parametr zapytania, ponieważ tak jest połączony wbudowany endpoint Gemini w pluginie. + +## Odkrywanie modeli + +Google używa trybu odkrywania `google-models`. Odkrywanie powinno zwracać modele Gemini dostępne dla klucza API; jeśli wybór jest pusty, sprawdź klucz wobec tej samej bazy URL i upewnij się, że rodzina modeli jest aktywna dla tego konta. + +Znane limity tokenów wyjściowych są dostosowywane do modelu w rejestrze dostawców. Jeśli długie tłumaczenie lub wyjaśnienie diagramu zostanie obcięte, wybierz model Gemini z większym obszarem wyjściowym lub zmniejsz żądaną wielkość wyjścia. + +## Rozwiązywanie problemów + +- `400`: identyfikator modelu zazwyczaj nie pasuje do wbudowanej ścieżki Gemini lub żądanie przekracza obszar obsługiwany przez model. +- `401` lub `403`: sprawdź ograniczenia klucza, aktywację projektu/API oraz to, czy klucz może uzyskać dostęp do Gemini. +- `404`: identyfikator modelu nie jest dostępny w skonfigurowanej wersji API. +- Przykłady bramek zawodzą w tym profilu: użyj presetu bramy zamiast wbudowanego dostawcy Google. + +## Kiedy używać + +Użyj Google do szybkiego tłumaczenia, usuwania dużych ilości notatek oraz w zadaniami, gdzie stosunek kosztu do wydajności Gemini jest lepszy niż w przypadku bezpośredniego użycia OpenAI lub Anthropic. Wybierz innego dostawcę dla zadań wymagających obsługi modeli rozumowania kompatybilnych z OpenAI. + +--- + +## Kolejne kroki + +- [LLM Providers](/docs/providers/overview) -- Pełna konfiguracja, modele na zadanie oraz logika ponawiania prób +- [Tłumaczenie](/docs/features/translation) – zaleca się Gemini Flash do zadań tłumaczeniowych o dużej objętości diff --git a/website/i18n/pl/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/pl/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..707b2a0f --- /dev/null +++ b/website/i18n/pl/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "Modele lokalne" +description: "Konfiguruj Ollama oraz lokalne LLMs" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# Modele lokalne + +<TLDR> +**Dostawcy lokalni przechowują treść notatek poza hostowanymi APIs.** Obecna ścieżka lokalna obejmuje Ollama przy użyciu natywnego transportu `ollama` oraz LMStudio za pośrednictwem transportu kompatybilnego z OpenAI. Żaden klucz API nie jest wymagany dla żadnej ze ścieżek, ale serwer lokalny i model muszą już działać. + +To jest część [Obsidian Przewodnika po zarządzaniu wiedzą AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Ustawianie + +W przypadku Ollama zainstaluj Ollama, pobierz żądany model, uruchom serwer i dodaj profil dostawcy `Ollama` w Notemd. W przypadku LMStudio załaduj model w lokalnym serwerze LM Studio i dodaj profil dostawcy `LMStudio`. + +Modele lokalne są zależnościami operacyjnymi, a nie tylko ustawieniami. Notemd może wywoływać jedynie te funkcje, które udostępnia proces lokalny, dlatego przed debugowaniem wtyczki sprawdź model lokalny poza Obsidian. + +## Endpoint i autoryzacja + +| Dostawca | Base URL | Domyślny model | Klucz API | Uwagi | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | Nie wymagany | Strumieniowanie NDJSON; odkrywanie modeli za pomocą `/api/tags` | +| LMStudio | `localhost:1234/v1` | `local-model` | Nie wymagany | Wysyła `"EMPTY"` jako token nośny; kompatybilne z OpenAI | + +Ollama używa natywnej ścieżki `/chat` poniżej swojego Base URL. LMStudio korzysta z routingu kompatybilnego z OpenAI i oczekuje modelu załadowanego w lokalnym serwerze. + +## Odkrywanie modeli + +Ollama wykorzystuje tryb odkrywania `ollama-tags` i wyświetla lokalnie pobrałe tagi. LMStudio używa odkrywania modeli kompatybilnego z OpenAI, gdy jego serwer udostępnia `/v1/models`. + +Jeśli odkrywanie nie zwróci żadnych wyników, jest to zazwyczaj problem stanu lokalnego serwera: model nie został pobrany ani załadowany, albo serwer jest przypisany do innej maszyny/portu niż w profilu. + +## Rozwiązywanie problemów + +- Odrzucono połączenie: uruchom Ollama lub LM Studio i sprawdź skonfigurowany port. +- Model nie został znaleziony: pobierz tag Ollama lub załaduj model LM Studio przed testowaniem. +- Powolny wyjście: zmniejsz rozmiar kontekstu, użyj mniejszego modelu lokalnego lub przekieruj obciążone zadania do hostowanego dostawcy. +- Puste lub błędne odpowiedzi: upewnij się, że wybrany profil dostawcy odpowiada protokołowi lokalnego serwera; Ollama i LMStudio nie są wymiennymi elementami. + +## Kiedy używać + +Wykorzystuj lokalnych dostawców do prywatnych skarbców, pracy offline lub tanich zadań powtarzalnych. Nie zakładaj, że rozwiązania lokalne są automatycznie lepsze przy syntezie badań lub długich procesach rozumowania; jakość modelu i ograniczenia sprzętowe stanowią punkt kompromisu. + +--- + +## Kolejne kroki + +- [LLM Dostawcy](/docs/providers/overview) -- Pełna konfiguracja oraz ustawienia modelu dla poszczególnych zadań +- [Rozwiązywanie problemów](/docs/advanced/troubleshooting) -- Naprawa błędów connection-refused, gdy lokalny serwer nie jest uruchomiony diff --git a/website/i18n/pl/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/pl/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..99317bed --- /dev/null +++ b/website/i18n/pl/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "Konfiguruj OpenAI (GPT-4, GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# OpenAI Provider + +<TLDR> +**OpenAI wykorzystuje wspólny transport kompatybilny z OpenAI.** Obecne ustawienia domyślne obejmują `gpt-4o`, `https://api.openai.com/v1`, `temperature: 0.5` oraz test połączenia `models-then-chat`. Użyj tej strony, gdy potrzebujesz dokładnej semantyki pól; skorzystaj z przeglądu [LLM Providers](/docs/providers/overview) do wyboru na poziomie kategorii. + +To jest część [Obsidian Przewodnika po zarządzaniu wiedzą AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Ustawianie + +Stwórz klucz OpenAI API, dodaj profil dostawcy `OpenAI` w ustawieniach Notemd i zachowaj domyślny Base URL, chyba że celowo wskazujesz na bramkę kompatybilną z OpenAI. Pole modelu może pozostać na `gpt-4o` do zadań ogólnych lub zostać zastąpione innym identyfikatorem modelu OpenAI, który twoje konto może wywołać. + +Używaj modeli specyficznych dla zadań w celu kontrolowania kosztów: zachowuj silniejsze modele do badań, wydobywania koncepcji i długiej restrukturyzacji; używaj tańszych lub szybszych modeli do tłumaczenia, sugestii linków i krótkich streszczeń. + +## Endpoint i autoryzacja + +| Pole | Obecna predefinicja | +|-------|----------------| +| Transport | `openai-compatible` | +| Klucz API | Wymagane | +| Base URL | `https://api.openai.com/v1` | +| Domyślny model | `gpt-4o` | +| Temperatura | `0.5` | +| Test połączenia | `/models`, następnie `/chat/completions` | + +Notemd normalizuje bazowe URL kompatybilne z OpenAI przed dodaniem `chat/completions` lub `models`. Nie umieszczaj końcowego `/chat/completions` w Base URL; powoduje to duplikację ścieżki. + +## Odkrywanie modeli + +OpenAI wykorzystuje ogólną ścieżkę odkrywania modeli kompatybilną z OpenAI. Ustawienia UI najpierw pytają `/v1/models`, a następnie weryfikują wybrany model za pomocą lekkiej prośby o rozmowę. Jeśli odkrycie się nie uda, ale rozmowa nadal działa, sprawdź, czy twój klucz ma uprawnienia do listy modeli lub czy bramka blokuje wyświetlanie listy modeli. + +Modele rozumowania są traktowane jako przypadek krawędziowy protokołu: Notemd łączy treść promptu systemowego i użytkownika w celu utworzenia identyfikatorów rozumowania OpenAI, które odrzucają oddzielną rolę `system`, i udostępniają `reasoningEffort` tylko tam, gdzie definicja dostawcy to obsługuje. + +## Rozwiązywanie problemów + +- `401` lub `403`: sprawdź klucz, dostęp do projektu, stan fakturowania oraz to, czy wybrany model jest włączony dla tego klucza. +- `404` w rozmowie: Base URL jest zazwyczaj błędny lub już zawiera `/chat/completions`. +- Model pojawia się w dokumentacji, ale nie w selektorze: dostęp do listy modeli i dostęp do rozmowy to oddzielne punkty awarii; ręcznie sprawdź dokładny identyfikator modelu w profilu dostawcy. +- Model rozumowania odrzuca wiadomości: użyj identyfikatora modelu objętego ścieżką obsługi rozumowania OpenAI lub przejdź na model rozmowy nierozumujący. + +## Kiedy używać + +Używaj OpenAI, gdy chcesz najprzewidywalniejszą domyślną ścieżkę hostowaną, gdy odkrywanie `/v1/models` jest ważne lub gdy proces pracy zależy od semantyki modelu rozumowania OpenAI. Wybieraj bramkę lub lokalnego dostawcę, gdy routing, prywatność lub kontrola kosztów są ważniejsze niż bezpośrednie zachowanie OpenAI API. + +--- + +## Kolejne kroki + +- [LLM Providers](/docs/providers/overview) -- Pełna konfiguracja, modele na zadanie oraz logika ponawiania prób +- [Rozwiązywanie problemów](/docs/advanced/troubleshooting) -- Naprawa błędów 401/403 i ograniczeń szybkości diff --git a/website/i18n/pl/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/pl/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..8a1c5b76 --- /dev/null +++ b/website/i18n/pl/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "Dostawcy LLM" +description: "Konfiguruj 36 dostawców LLM — chmurowych, bramkowych i lokalnych — z możliwością wyboru modelu na poziomie zadania" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Dostawcy LLM + +<TLDR> +**Notemd obsługuje 36 dostawców LLM w 4 typach transporту.** Wszystkie wywołania API używają surowego HTTP (bez SDK) z automatycznym ponawianiem prób, fallbackiem transportu oraz buforowaniem odpowiedzi na 5 minut. Możliwość wyboru modelu na poziomie zadania umożliwia stosowanie tańszych modeli do ekstrakcji koncepcji oraz potężnych modeli do badań. Dla dostawców lokalnych (Ollama, LMStudio) nie jest potrzebny klucz API. +</TLDR> + +To jest część [Obsidian Przewodnika po zarządzaniu wiedzą AI](/docs/pillar-ai-knowledge). + +## Kategorie dostawców + +### Dostawcy chmurowe + +| Dostawca | Podstawowy URL domyślny | Domyślny model | Temperatura | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### Dostawcy bramkowe/proxy + +| Dostawca | Podstawowy URL domyślny | Domyślny model | Uwagi | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | Dodaje nagłówki `HTTP-Referer` + `X-Title` | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | Dodaje nagłówek `X-GitHub-Api-Version` | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | Dodaje nagłówek `APP-Code` | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | Opcjonalny klucz API | +| **Nowy API** | `localhost:3000/v1` | `gpt-4.1` | Opcjonalny klucz API | +| **OpenAI Compatible** | (konfigurowane przez użytkownika) | `your-model-id` | Konfigurowalny punkt końcowy | + +### Dostawcy z Chin + +| Dostawca | Baza domyślna URL | Domyślny model | Uwagi | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | Skupiony na programowaniu | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (wymagany ID punktu końcowego) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | Punkt końcowy Zhipu w Chinach | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | Punkt końcowy Zhipu międzynarodowy | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | Platforma hostowania modeli | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao wymaga identyfikatora punktu końcowego Ark** (format: `ep-xxxxxxxx-xxxx-xxxx`). Domyślny placeholder musi zostać zastąpiony. + +### Dostawcy lokalni + +| Dostawca | Baza domyślna URL | Domyślny model | Uwagi | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | Brak klucza API. Strumieniowanie NDJSON. Odkrywanie modeli za pomocą `/api/tags` | +| **LMStudio** | `localhost:1234/v1` | `local-model` | Wysyła `"EMPTY"` jako token nośny. Odkrywanie kompatybilne z OpenAI | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (skonfigurowane przez użytkownika) | `gpt-4o` | Nazwa implementacji w URL. Nagłówek `api-key` | + +## Wybór modelu na zasadzie zadania + +Notemd obsługuje niezależnego dostawcę i model dla każdego zadania. Włącz to za pomocą `useMultiModelSettings: true`. + +### Dostępne zadania + +| Zadanie | Klucz ustawień | Domyślny dostawca | +|------|-------------|-----------------| +| Dodawanie linków (wstawianie linków wiki) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| Badania (szukanie w sieci + podsumowanie) | `researchProvider` / `researchModel` | DeepSeek | +| Generowanie na podstawie tytułu | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| Tłumaczenie | `translateProvider` / `translateModel` | DeepSeek | +| Generowanie diagramów | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| Wydobywanie koncepcji | `extractConceptsProvider` / `Model` | DeepSeek | +| Wydobywanie oryginalnego tekstu | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### Kolejność rozwiązywania + +1. Jeśli `useMultiModelSettings` jest włączone → użyj dostawcy i modelu specyficznych dla zadania +2. Jeśli wartość przejęcia modelu zadania jest pusta → użyj domyślnego modelu dostawcy +3. Jeśli dostawca zadania jest nieważny → użyj globalnego `activeProvider` +4. Jeśli `useMultiModelSettings` jest wyłączone → wszystkie zadania używają globalnego `activeProvider` + +### Zalecane konfiguracje + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## Architektura wywołań API + +### Warstwy transportowe + +1. **Obsidian `requestUrl`** — główna (wbudowana, działa na wszystkich platformach) +2. **Desktop HTTP** — moduły Node.js `http`/`https` (strumieniowanie + długie żądania) +3. **Web `fetch`** — alternatywa, gdy moduły Node.js nie są dostępne + +Wtyczka automatycznie przechodzi między warstwami transportowymi w przypadku tymczasowych błędów sieciowych. + +### Logika ponawiania prób + +- **Tryb normalny** (`enableStableApiCall: false`): Jedna próba. W przypadku tymczasowego niepowodzenia następuje automatyczne przejście do stabilnego ponawiania. +- **Stabilny tryb ponawiania** (`enableStableApiCall: true`): Do 4 prób (1 + 3 ponowne próby) z odstępami 5 sekund. +- **Błędy tymczasowe, które powodują ponowne próby**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **Niepodlegające ponownemu przetworzeniu**: HTTP 400, 401, 403, 404 + +### Cacheowanie odpowiedzi + +5-minutowy cache LRU w pamięci operacyjnej, kluczowany według dostawcy + modelu + temperatury + promptu + treści. Kolejne identyczne żądania w ciągu 5 minut zwracają wyniki z cache'u natychmiast. + +### Obsługa modeli rozumowania + +Modele, które nie obsługują roli `system` (DeepSeek R1, OpenAI o1/o3/o4/gpt-5), automatycznie łączą prompty systemowe i użytkownika w jedną wiadomość użytkownika. + +DeepSeek-specificzny: `thinkingEnabled` dodaje `{ thinking: { type: 'enabled' } }` do żądania. `reasoningEffort` (niski/średni/wysoki) jest przekazywany jako `reasoning_effort`. Sprawdza, czy maksymalna liczba tokenów wyjściowych ≥ 8000, gdy aktywna jest funkcja rozmyślania. + +### Oszacowanie tokenów + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — heurystyka 4 znaków na token. Służy do zapewnienia `maxResearchContentTokens` przed wysłaniem do LLM. + +Nie wdrożono śledzenia kosztów. + +## Odkrywanie modeli + +| Tryb | Dostawcy | Koniec punktu końcowego | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | Lista modeli API | +| `anthropic-models` | Anthropic | Lista modeli API | +| `openai-compatible-models` | DeepSeek, Qwen, Mistral itp. | `/v1/models` | +| `openrouter-models` | OpenRouter | Lista modeli API | +| `github-models` | GitHub Models | Inferencja API | +| `none` | Azure OpenAI | Wyłączone (wymaga nazwy implementacji) | + +## Szybki start + +1. **Wybierz dostawcę** — DeepSeek (Chiny), OpenAI (Międzynarodowy) lub Ollama (Lokalny/Darmowy) +2. **Wpisz klucz API** — Ustawienia → Notemd → Dostawca → Klucz API +3. **Przetestuj połączenie** — Kliknij przycisk testowania +4. **Opcjonalnie: modele na poziomie zadań** — Włącz `useMultiModelSettings` i skonfiguruj je indywidualnie + +Dla Ollama: nie jest potrzebna klucz API. Upewnij się tylko, że `ollama serve` działa. + +--- + +## Kolejne kroki + +- 📝 [Notatki koncepcyjne](/docs/features/concept-notes) — Wykorzystuje model ekstrakcji na poziomie zadań +- 🎨 [Diagramy](/docs/features/diagrams) — Wykorzystuje model diagramów na poziomie zadań +- 🔍 [Badania](/docs/features/research) — Wykorzystuje model specyficzny dla badań +- ⚙️ [Konfiguracja](/docs/getting-started/configuration) — Pełna lista ustawień diff --git a/website/i18n/pl/docusaurus-theme-classic/footer.json b/website/i18n/pl/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/pl/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/pl/docusaurus-theme-classic/navbar.json b/website/i18n/pl/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/pl/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/pt-BR/code.json b/website/i18n/pt-BR/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/pt-BR/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/pt-BR/docusaurus-plugin-content-docs/current.json b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..cc6d6d0c --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "Processamento em Lote" +description: "Processar vários arquivos de forma eficiente" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# Processamento em Lote + +<TLDR> +**Notemd processa pastas inteiras em uma única ação, com concorrência configurável e controle de sobrescrita.** Clique com o botão direito em uma pasta para adicionar links do wiki em lote, extrair conceitos, pesquisar ou traduzir todas as anotações contidas nela. Os limites de concorrência evitam erros de limite de taxa API. O progresso é informado por arquivo. O comportamento de sobrescrita pode ser configurado: ignorar o existente, anexar ou substituir. Os arquivos que falham são registrados sem interromper o processamento em lote. + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Visão Geral + +O processamento em lote transforma uma pasta de anotações em uma única operação. Em vez de abrir cada anotação e executar comandos individualmente, basta clicar com o botão direito na pasta e selecionar a tarefa. Notemd percorre todos os arquivos `.md`, aplica a ação escolhida e informa o progresso em tempo real. + +Esse recurso é essencial para a extração de conhecimento em toda a estrutura de armazenamento. Após importar dezenas de PDFs, por exemplo, adicionar links em lote seguido de extração de conceitos em lote cria seu grafo de conhecimento em minutos, e não em horas. + +## Como Funciona + +### Modelo de Execução em Lote + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **Coleta de arquivos** -- Notemd escaneia a pasta alvo recursivamente (ou apenas no nível superior, dependendo das configurações) e coleta todos os arquivos `.md`. +2. **Particionamento por concorrência** -- Os arquivos são divididos em blocos com base na configuração `batchConcurrency`. Cada bloco é executado paralelamente; os blocos são executados sequencialmente. +3. **Execução** -- Cada arquivo é processado usando a mesma lógica do comando para um único arquivo. As configurações do provedor e do modelo por tarefa são respeitadas. +4. **Relatórios de progresso** -- Uma notificação aparece após a conclusão de cada arquivo, mostrando o progresso `N / Total`. +5. **Tratamento de erros** -- Se um arquivo falhar (erro API, tempo de espera da rede, etc.), o erro é registrado e o processamento em lote continua. O resumo final lista todos os arquivos que falharam. +6. **Conclusão** -- Uma notificação de resumo informa o total processado, os sucessos e as falhas. + +### Comportamento de Sobrescrita + +Ao processar um arquivo que já possui links wiki, notas conceituais ou traduções, o comportamento do Notemd depende da configuração de sobrescrita: + +| Modo | Comportamento | +|------|----------| +| **Ignorar** | O conteúdo existente é deixado intacto. Apenas arquivos não modificados são processados. | +| **Anexar** (padrão) | Novo conteúdo é anexado. Os links wiki, conceitos ou traduções existentes são preservados. | +| **Substituir** | O arquivo é completamente reprocessado. Todas as modificações anteriores do Notemd são sobrescritas. | + +Especificamente para links wiki: se uma nota já contiver `[[wiki-links]]`, o modo **Ignorar** a deixa como está, enquanto **Substituir** envia toda a nota para o LLM para inserção de novos links. Use **Ignorar** para processamento incremental e **Substituir** para reprocessamento após atualização do modelo. + +### Controle de Concorrência + +A configuração do `batchConcurrency` limita as chamadas paralelas de API. Isso evita erros de limite de taxa (HTTP 429) ao processar pastas grandes em provedores com cotas rígidas. + +| Concorrência | Recomendado para | Impacto típico no limite de taxa | +|-------------|----------------|---------------------------| +| `1` | Planos gratuitos, provedores rigorosos | Nenhum (serial) | +| `3` (padrão) | A maioria dos provedores de nuvem | Baixo | +| `5` | Ollama (local), planos generosos | Nenhum / Baixo | +| `10` | Modelos locais com inferência rápida | Nenhum | + +Se você encontrar erros 429 durante o processamento em lote, reduza a concorrência para 1 ou 2. + +## Configuração + +| Parâmetro | Padrão | Efeito | +|---------|---------|--------| +| `batchConcurrency` | `3` | Máximo de chamadas paralelas API durante operações em pastas | +| `batchOverwriteExisting` | `false` | Sobrescrever o conteúdo existente de Notemd. `false` = modo de anexar. | +| `batchSkipProcessed` | `false` | Ignorar arquivos que já contenham marcadores Notemd (por exemplo, links wiki) | +| `batchRecursive` | `true` | Incluir subdiretórios ao escanear a pasta | +| `enableStableApiCall` | `false` | Habilitar lógica de tentativa (até 4 tentativas) por arquivo durante o processamento em lote | + +### Modelos por Tarefa no Lote + +Cada operação em lote utiliza o modelo correspondente à tarefa. batch-add-links usa `addLinksProvider`, batch-research usa `researchProvider`, e assim por diante. Isso permite que você atribua modelos baratos para operações de grande volume e reserve modelos caros para tarefas sensíveis à qualidade. + +## Exemplo + +Você tem uma pasta `papers/` com 40 notas de pesquisa importadas. Você deseja adicionar links wiki e extrair conceitos de todas elas: + +1. Clique com o botão direito na pasta `papers/` +2. Selecione **"Notemd: Processar pasta (adicionar links)"** +3. Notemd escaneia a pasta, encontra 40 arquivos `.md` e processa 3 de cada vez (concorrência padrão) +4. Uma notificação de progresso exibe: `12/40 files processed...` +5. Após cerca de 3 minutos, uma notificação de resumo informa: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. Repita com **"Notemd: Processar pasta (extrair conceitos)"** para criar notas de conceito para todos os 40 + +O arquivo que falhou é registrado. Você pode executá‑lo novamente apenas nesse arquivo posteriormente. + +## Dicas + +- **Comece com baixa concorrência** -- Se você não tem certeza dos limites de taxa do seu provedor, comece com `1` e aumente gradualmente. +- **Use o modo pular para atualizações incrementais** -- Após o primeiro lote completo, mude para `batchSkipProcessed: true` para que apenas novas notas sejam processadas nas execuções subsequentes. +- **Ative chamadas estáveis de API** -- `enableStableApiCall: true` adiciona lógica de tentativa que recupera erros temporários de rede durante lotes longos. +- **Reexecute após atualizações do modelo** -- Se você mudar para um modelo melhor, defina `batchOverwriteExisting: true` e execute novamente para obter links e conceitos aprimorados. + +--- + +## Próximos passos + +- [Workflows](/docs/features/workflows) -- Conecte tarefas em lote em botões de barra lateral de um clique +- [Custom Prompts](/docs/advanced/custom-prompts) -- Personalize prompts para extração em lote +- [Troubleshooting](/docs/advanced/troubleshooting) -- Corrija erros de limite de taxa e falhas de conexão durante execuções em lote +- [LLM Fornecedores](/docs/providers/overview) -- Referência de configuração do modelo por tarefa diff --git a/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..e8bb39a0 --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "Prompts Personalizados" +description: "Personalize os prompts LLM de acordo com suas necessidades" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# Prompts Personalizados + +<TLDR> +**Notemd permite substituir o prompt padrão LLM para cada tipo de tarefa.** Os prompts personalizados dão a você controle sobre o que o modelo prioriza: você pode restringir a extração de conceitos a uma disciplina específica, alterar o estilo de vinculação ou redirecionar o tom da tradução. Variáveis de prompt como `{{content}}` e `{{concept}}` são substituídas em tempo de execução. O recurso de domínio de aprendizado focado adiciona seu campo de estudo no início para delimitar automaticamente os resultados da extração. + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Visão Geral + +Os prompts embutidos do Notemd foram criados para trabalhos de conhecimento geral. Eles funcionam bem em diversos domínios, mas também deixam espaço para melhorias específicas de cada área. Os prompts personalizados permitem que você diga ao LLM exatamente como se comportar no seu caso de uso – seja extrair apenas terminologia médica, vincular apenas entidades nomeadas ou traduzir em um registro formal. + +Os prompts personalizados não substituem todo o prompt do sistema. Eles sobrescrevem ou complementam a **parte de instruções específicas da tarefa**, mantendo o formato estrutural de saída (por exemplo, linhas `CONCEPT:`, sintaxe de link wiki) do qual o Notemd depende para a análise. + +## Como Funciona + +### Arquitetura do Prompt + +Cada tarefa Notemd segue a mesma estrutura de prompt: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **Prompt do sistema base** -- Define a persona do assistente. Não pode ser sobrescrito. +2. **Domínio de aprendizado focado** -- Adiciona `Relevant Fields: [medicine / law / computer science / ...]` no início para restringir o escopo. Trata‑se de um botão de configuração, não de um prompt bruto. +3. **Prompt da tarefa personalizada** -- Substitui as instruções padrão da tarefa (por exemplo, quais tipos de conceitos extrair, com que intensidade vincular). +4. **Formato de saída** -- Regras estruturais (linhas `CONCEPT:`, formato de link wiki). Sempre adicionado pelo Notemd para garantir a possibilidade de análise. +5. **Conteúdo** -- O texto real da nota, substituído em tempo de execução por meio de `{{content}}`. + +### Variáveis do Prompt + +As variáveis são substituídas no momento da execução. As variáveis disponíveis variam conforme a tarefa: + +| Variable | Tarefas | Substituído por | +|----------|-------|---------------| +| `{{content}}` | Todos | O texto da nota ou seleção | +| `{{concept}}` | Modelo de nota conceitual | O nome do conceito extraído | +| `{{description}}` | Modelo de nota conceitual | Descrição do conceito gerada por LLM | +| `{{backlinks}}` | Modelo de nota conceitual | Lista de notas de origem com links | +| `{{date}}` | Modelo de nota conceitual | Data atual (YYYY-MM-DD) | +| `{{language}}` | Tradução | Idioma de saída | +| `{{source}}` | Modelo de nota conceitual | Nome do arquivo da nota de origem | + +### Domínio de Aprendizagem Focado + +O recurso de aprendizagem focada é um atalho para delimitar o domínio. Em vez de escrever um prompt personalizado que mencione sua área, você define `focusedLearningDomain` nas configurações: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +Isso adiciona `Relevant Fields: [medicine]` no início do prompt de extração, fazendo com que o LLM dê prioridade a conceitos relevantes ao domínio e suprima os genéricos. Ele é mais leve que um prompt personalizado completo e funciona em todas as tarefas de extração. + +## Configuração + +| Parâmetro | Padrão | Efeito | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | Sobrescrever o prompt padrão da tarefa de adicionar links | +| `customExtractConceptsPrompt` | `''` | Sobrescrever o prompt padrão de extração de conceitos | +| `customResearchPrompt` | `''` | Sobrescrever o prompt padrão de pesquisa + resumo | +| `customTranslatePrompt` | `''` | Sobrescrever o prompt padrão de tradução | +| `customDiagramPrompt` | `''` | Sobrescrever o prompt padrão de geração de diagramas | +| `focusedLearningDomain` | `''` | Adicionar contexto da disciplina aos prompts de extração e vinculação | +| `extractConceptsMinimalTemplate` | `true` | Usar o modelo de nota de conceito apenas com título (afeta o escopo do modelo `{{concept}}`) | +| `customConceptNoteTemplate` | `''` | Sobrescrever o modelo de arquivo de nota de conceito com suporte total a variáveis | + +**Quando um campo de prompt personalizado estiver vazio, será usado o prompt padrão embutido.** + +## Exemplo + +Você é um pesquisador médico que extrai conceitos de notas de ensaios clínicos. O prompt padrão extrai substantivos genéricos juntamente com termos médicos, o que polui sua pasta de conceitos. + +**Solução:** Defina um domínio de aprendizagem focado e um prompt de extração personalizado. + +1. Defina `focusedLearningDomain` como `medicine` +2. Defina `customExtractConceptsPrompt` como: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +Agora, quando você executa "Extract concepts" em uma nota clínica, o LLM gera: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +Em vez do comportamento padrão, que também pode extrair termos genéricos indesejados como "hospital" ou "month". + +## Dicas + +- **Comece com o domínio de aprendizado focado** antes de criar um prompt personalizado completo. Isso cobre 80% dos casos de uso com apenas uma configuração. +- **Preserve o formato de saída** -- Nunca remova instruções de formatação como "uma por linha" ou "CONCEPT: prefix" dos prompts personalizados. O analisador do Notemd depende delas. +- **Teste com uma única nota primeiro** -- Prompts personalizados podem ter efeitos inesperados na amplitude da extração. Verifique em uma nota antes de processar em lote. +- **Mantenha os prompts concisos** -- Prompts personalizados excessivamente longos consomem tokens e podem diluir o foco do modelo. + +--- + +## Próximos passos + +- [Wiki-Links](/docs/features/wiki-links) -- O que é vinculado quando você personaliza o prompt add-links +- [Concept Notes](/docs/features/concept-notes) -- Modelos de nota conceitual e a variável `{{concept}}` +- [Batch Processing](/docs/advanced/batch-processing) -- Aplique prompts personalizados em pastas inteiras +- [Troubleshooting](/docs/advanced/troubleshooting) -- Corrija problemas em que prompts personalizados geram saídas inesperadas diff --git a/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..6c4090df --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "Solução de problemas" +description: "Problemas comuns e soluções" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Solução de problemas + +<TLDR> +**A maioria dos Notemd problemas se enquadra em quatro categorias: problemas principais API, conectividade de rede, erros de autenticação (401/403) e limites de taxa (429).** O teste de conexão embutido e o painel de diagnóstico identificam rapidamente a causa raiz. Esta página aborda cada mensagem de erro comum, sua causa e a correção. Para problemas que não estão listados aqui, relate‑os no GitHub Issues com a saída dos diagnósticos. + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Visão Geral + +Notemd depende de serviços externos -- provedores LLM e mecanismos de busca API -- portanto a maioria dos problemas tem origem fora do próprio plugin. O painel de diagnóstico nas configurações oferece uma visão estruturada da última chamada API, incluindo o pedido URL, o status da resposta e o corpo do erro. Sempre verifique isso primeiro antes de investigar mais. + +## Como funciona: Diagnósticos + +### Teste de conexão + +Cada seção de configuração do provedor possui um botão **"Testar Conexão"**. Ao clicar nele, é enviado um pedido mínimo API (geralmente uma lista de modelos ou uma conclusão breve) e é informado se houve sucesso ou qual erro HTTP específico ocorreu. Esta é a maneira mais rápida de verificar se sua chave API e o URL base estão corretos. + +### Painel de diagnósticos + +**Configurações --> Notemd --> Diagnósticos** exibe: + +| Campo | Conteúdo | +|-------|---------| +| Último provedor | Qual provedor foi chamado por último | +| Último modelo | Qual modelo foi chamado por último | +| Último status | Código de status HTTP ou erro de transporte | +| Último erro | Mensagem de erro bruta do API | +| Último pedido URL | Conteúdo completo URL do último pedido (chave API redigida) | +| Corpo da última resposta | Corpo da resposta truncado (primeiros 500 caracteres) | + +Copie a saída completa dos diagnósticos ao relatar problemas no GitHub. + +## Erros comuns + +### Chave API inválida ou ausente + +**Sintoma:** HTTP 401 ou "Chave API incorreta fornecida" + +**Causa:** A chave API está faltando, contém espaços em branco ou pertence a um provedor diferente. + +**Solução:** +1. Verifique se a chave não possui espaços no início ou no final +2. Confirme se a chave corresponde ao provedor selecionado (uma chave OpenAI não funcionará com Anthropic) +3. Verifique se sua conta possui créditos ou uma assinatura ativa +4. Clique em **"Test Connection"** para verificar + +### Erros de rede/conexão + +**Sintoma:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**Causa:** O endpoint API não está acessível a partir da sua máquina. + +**Solução:** +1. Verifique sua conexão com a internet +2. Se estiver atrás de um proxy ou firewall, confira se o domínio API não está bloqueado +3. Para Ollama: confirme que `ollama serve` está em execução (`ollama list` deve retornar modelos) +4. Para LMStudio: confirme que o servidor está rodando em `localhost:1234` +5. Tente um transporte diferente -- usuários móveis devem garantir que o transporte `requestUrl` esteja ativo +6. Habilite `enableStableApiCall` para tentativas automáticas em caso de erros temporários + +### 403 Proibido + +**Sintoma:** HTTP 403 + +**Causa:** Sua chave API é válida, mas não possui permissão para o recurso solicitado. + +**Solução:** +1. Alguns modelos exigem acesso especial (por exemplo, o GPT-4 via Azure requer um nome de implantação) +2. Alguns provedores restringem modelos por nível de plano -- verifique sua conta +3. Podem haver restrições regionais (alguns provedores na China bloqueiam IPs internacionais e vice‑versa) +4. Verifique se o nome do modelo está escrito corretamente (por exemplo, `gpt-4o` e não `gpt-4o-mini` quando o modelo mini é tudo o que seu plano permite) + +### Limite de taxa (429) + +**Sintoma:** HTTP 429 ou "Limite de taxa excedido" + +**Causa:** Demasias solicitações em um curto período de tempo. + +**Solução:** +1. Reduza `batchConcurrency` para `1` ou `2` +2. Aguarde alguns minutos antes de tentar novamente +3. Consulte a documentação de limite de taxa do seu provedor para o seu nível de plano +4. Ative `enableStableApiCall` para tentativa automática com backoff +5. Considere mudar para um provedor com limites maiores (DeepSeek, Ollama) + +### Modelo não encontrado + +**Sintoma:** "Modelo não encontrado" ou HTTP 404 + +**Causa:** O nome do modelo não existe no provedor selecionado. + +**Solução:** +1. Clique em **"Obter Lista de Modelos"** para ver todos os modelos disponíveis para o seu provedor +2. Alguns nomes de modelos mudam ao longo do tempo -- verifique o nome atual na documentação do provedor +3. Para Ollama: execute `ollama list` para visualizar os modelos baixados; apenas os modelos baixados estão disponíveis + +### Nenhum link / Nenhum conceito gerado + +**Sintoma:** O comando é executado, mas não gera nenhuma saída + +**Causa:** O LLM retornou uma resposta vazia ou inválida. + +**Solução:** +1. Verifique o painel de diagnóstico para a resposta real do LLM +2. Tente usar um modelo mais potente (alguns modelos pequenos têm dificuldade com saídas estruturadas) +3. Certifique‑se de que a nota tenha conteúdo suficiente (>50 palavras) +4. Revise seu prompt personalizado em busca de instruções conflitantes +5. Desative temporariamente a supressão de sinônimos para ver se ela está filtrando de forma excessiva + +### ID do endpoint Doubao faltando + +**Sintoma:** Erro ao usar o provedor ByteDance Doubao + +**Causa:** Doubao requer um ID de endpoint Ark (formato: `ep-xxxxxxxx-xxxx-xxxx`) em vez de um nome de modelo. + +**Correção:** Substitua o modelo de placeholder padrão pelo seu ID real do endpoint na console do Volcengine. + +## Configuração + +| Configuração de Diagnóstico | Localização | Finalidade | +|--------------------|----------|---------| +| **Testar Conexão** | Seções de Configurações --> Provedor | Verifique a chave API e a conectividade | +| **Obter Lista de Modelos** | Seções de Configurações --> Provedor | Confirme quais modelos estão acessíveis | +| `enableStableApiCall` | Configurações --> Avançado | Habilite tentativas repetidas com backoff | +| `batchConcurrency` | Configurações --> Lote | Controle o paralelismo para evitar limites de taxa | + +## Como Relatar Problemas + +Se o seu problema não for abordado acima: + +1. Abrir **Configurações --> Notemd --> Diagnóstico** +2. Copiar a saída completa do diagnóstico +3. Abrir um problema no GitHub em [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +4. Incluir: versão Obsidian, versão Notemd, provedor, modelo, saída do diagnóstico e passos para reproduzir +5. Remover sua chave API de quaisquer logs compartilhados + +--- + +## Próximos passos + +- [LLM Provedores](/docs/providers/overview) -- Referência completa de configuração de provedores +- [Processamento em Lote](/docs/advanced/batch-processing) -- Configurações de concorrência e tentativa novamente para operações grandes +- [Promptes Personalizados](/docs/advanced/custom-prompts) -- Corrigir comportamentos inesperados de LLM ajustando os promptes diff --git a/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..e7bafdce --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "Perguntas Frequentes" +description: "Perguntas comuns sobre a instalação, funcionalidades e uso do Notemd" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# Perguntas Frequentes + +<TLDR> +**Respostas rápidas para as perguntas mais comuns sobre o Notemd.** Aborda instalação (configuração em 5 minutos), suporte a mais de 30 provedores LLM, opções de modelo local/nuvem, fluxos de trabalho com um clique, UI multilíngue (21 idiomas), automação de links para wiki, integração com pesquisas, fluxos de leitura PDF, geração de diagramas e licenciamento de código aberto. Todas as funcionalidades funcionam off-line com Ollama. +</TLDR> + +--- + +## Instalação e Configuração + +### Como instalar o Notemd no Obsidian? + +Abra o Obsidian **Configurações → Plugins da Comunidade → Navegar** → pesquise por **"Notemd"** → **Instalar** → **Ativar**. + +**Requisitos:** +- Obsidian 0.15.0+ +- Compatível com Desktop (Windows, macOS, Linux) e Mobile (iOS, Android) + +**Instalação manual:** +1. Baixe o `main.js`, o `styles.css` e o `manifest.json` em [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) +2. Coloque-os dentro do `<your-vault>/.obsidian/plugins/notemd/` +3. Recarregue o Obsidian e ative o plugin + +**Estatísticas:** mais de 4 mil downloads, 44 versões lançadas, licenciado sob MIT. + +--- + +## Configuração do LLM + +### Qual é LLM os provedores que Notemd suporta? + +Notemd suporta **mais de 30 provedores**: + +**Provedores em nuvem:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonnet, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**Focados na China:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**Locais/auto-hospedados:** +- Ollama +- LM Studio +- Qualquer endpoint compatível com OpenAI + +**Gateways:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models, Fireworks, LiteLLM, Nebius, Cerebras +- Hugging Face, Vercel AI Gateway, Requesty + +### O Notemd pode funcionar com LLMs locais? + +**Sim, totalmente suportado.** O Notemd funciona com: +- **Ollama** (integração nativa) +- **LM Studio** (por meio de endpoint compatível com OpenAI) +- **vLLM, LocalAI, text-generation-webui** (em modo compatível com OpenAI) + +Todas as tarefas funcionam com modelos locais: vinculação, geração de conceitos, tradução, pesquisa e geração de diagramas. + +**Exemplo de combinação:** +- Ollama (local) para vinculação → rápido, privado, sem custo +- OpenAI para pesquisa → alta qualidade, integração com busca na web +- Gemini para tradução → suporte multimodal + +### Como configurar modelos diferentes para tarefas distintas? + +Em **Configurações do Notemd**, cada tarefa tem seletores independentes de provedor/modelo: + +| Tarefa | Exemplo de configuração | +|------|----------------------| +| **Vinculação** | DeepSeek (rápido, barato) | +| **Geração de Conceitos** | Claude Opus (alta qualidade) | +| **Pesquisa** | Perplexity ou GPT-4o (baseado na web) | +| **Tradução** | Gemini Flash (multimodal) | +| **Geração de Diagramas** | Ollama (local, privado) | + +Essa otimização por tarefa equilibra velocidade, custo e qualidade. + +--- + +## Recursos Básicos + +### Como Notemd difere de ChatGPT na leitura de artigos? + +| Dimensão | ChatGPT | Notemd | +|-----------|---------|--------| +| **Local de saída** | Histórico de conversas (efêmero) | Obsidian vault (arquivos persistentes) | +| **Formato do resultado** | Resposta de texto | Links da wiki, notas conceituais, diagramas, traduções | +| **Valor a longo prazo** | Desaparece após a sessão | Acumula em uma base de conhecimento | +| **Reutilizabilidade** | É necessário fazer nova consulta | Os arquivos permanecem, o link evolui | + +**Use ChatGPT para:** Perguntas e respostas rápidas, explicações únicas +**Use Notemd para:** Criar uma base de conhecimento persistente e estruturada ao longo de semanas/meses + +### Como Notemd adiciona links da wiki às notas? + +**Processo:** +1. Você executa "Processar arquivo (adicionar links)" em uma nota +2. Notemd envia o texto para o LLM configurado por você +3. O LLM identifica conceitos-chave no contexto +4. Notemd insere `[[wiki-links]]` em cada ocorrência do conceito +5. Opcionalmente, ele cria automaticamente notas de conceito em uma pasta que você especificar + +**Recursos:** +- Supressão de sinônimos (evita duplicatas como "transformer" vs "transformers") +- Backlinks das notas de conceito para a fonte +- Integridade dos links ao renomear/excluir +- Modo de extração pura (extrai conceitos sem modificar o original) + +### O que é o fluxo de trabalho de um clique do Notemd? + +**Fluxos de trabalho de um clique** conectam várias ações em um **único botão na barra lateral**. + +**Fluxo de trabalho padrão:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**Resultado:** Um clique executa: +1. Adicionar links wiki à nota atual +2. Gerar notas de conceito para novos termos +3. Pesquisar e acrescentar contexto +4. Comprimir em um diagrama Mermaid + +**Fluxos de trabalho personalizados:** Defina os seus próprios fluxos nas Configurações usando o formato DSL. Cada fluxo se torna um botão reutilizável na barra lateral. + +### Como Notemd se compara com Copilot ou Smart Connections? + +Esses plugins resolvem problemas diferentes: + +- **Copilot** — Foco em conversação. Você conversa com uma IA sobre suas anotações. As respostas da IA ficam no painel de chat; elas não modificam seu vault. +- **Smart Connections** — Foco em descoberta. Ele encontra anotações semanticamente semelhantes usando embeddings. Ele não cria nem modifica conteúdo. +- **Notemd** — Foco em escrita. A IA processa suas anotações e gera resultados estruturados (links de wiki, notas conceituais, pesquisas, diagramas, traduções) diretamente em seu vault como arquivos persistentes. + +| O que você precisa | Plugin recomendado | +|----------------|-------------------| +| Conversar com IA sobre anotações | Copilot | +| Encontrar anotações semelhantes ou relacionadas | Smart Connections | +| Inserir automaticamente links de wiki e criar um grafo de conhecimento | **Notemd** | +| Gerar notas conceituais com backlinks | **Notemd** | +| Criar diagramas a partir do conteúdo das anotações | **Notemd** | +| Pesquisar um tópico e adicionar resumos | **Notemd** | + +Todos os três podem ser usados juntos — eles se complementam em vez de competir. + +--- + +## Pesquisa e Tradução + +### Quais serviços de busca funcionam com a pesquisa Notemd? + +| Serviço | É necessário o API Key | Qualidade | Observações | +|---------|-----------------|---------|-------| +| **Tavily** | Sim | Alta | Busca recomendada, otimizada por IA | +| **DuckDuckGo** | Não | Experimental | Sem configuração, qualidade inferior | + +**Como funciona "Pesquisar e resumir":** +1. Você seleciona um tópico ou executa a operação na nota atual +2. Notemd consulta o serviço de busca +3. Resultados → resumo por LLM +4. O resumo é anexado à sua nota com citações das fontes + +**Resultado:** Rastro de pesquisa persistente no seu vault, não em abas do navegador. + +### O Notemd suporta chinês ou outros idiomas? + +**Idiomas do UI:** mais de 21 suportados +- Inglês, 中文 (简体), 中文 (繁體), 日本語, 한국어 +- Árabe, Alemão, Francês, Espanhol, Russo, Português, Italiano +- Hindi, Bengali, Tailandês, Vietnamita, Turco, Polonês, Tcheco e mais + +**Idioma de saída da tarefa:** Configuração independente +- UI em chinês + saída em inglês: ✅ +- UI em inglês + saída em chinês: ✅ + +**Caso de uso:** Pesquisadores bilíngues podem manter o UI no idioma nativo enquanto geram notas em inglês para publicação. + +--- + +## PDF e fluxos de trabalho acadêmicos + +### Posso usar Notemd para leitura de artigos/PDF? + +**Sim.** Fluxo de trabalho: +1. **Converter PDF em Markdown** usando [MinerU](https://github.com/opendatalab/MinerU) (recomendado para artigos acadêmicos) +2. Abrir o arquivo Markdown no Obsidian +3. Executar tarefas do Notemd: + - **Adicionar links wiki** aos termos-chave + - **Gerar notas conceituais** para terminologia desconhecida + - **Extrair texto original** por meio de perguntas personalizadas (por exemplo, "Quais são as limitações?") + - **Pesquisar o contexto** dos métodos/datasets citados + - **Traduzir** seções difíceis + - **Comprimir para diagrama Mermaid** a fim de facilitar a compreensão estrutural + +**Versão 1.9.1+:** Extração da estrutura do capítulo com suporte a TOC + +**Resultado:** A leitura do seu artigo se torna um artefato de conhecimento estruturado e linkável em seu vault. + +--- + +## Diagramas e visualização + +### Quais tipos de gráficos/diagramas o Notemd pode gerar? + +| Tipo | Suporte | Recursos | +|------|---------|----------| +| **Mermaid** | Completo | Diagrama de fluxo, sequência, classe, estado, ER, Gantt, correção automática de sintaxe, validação em lote | +| **JSON Canvas** | Completo | Layouts nativos do Obsidian | +| **Vega-Lite** | Completo | Gráficos de dados, séries temporais, barras, dispersão, personalizáveis | +| **HTML** | Alternativa | Para tipos de diagrama não suportados | +| **Editável HTML/SVG** | Alvo explícito | Inline autônomo SVG com anotações no estilo Draw.io semântico | +| **Artefatos Draw.io / Drawnix** | Limite de exportação | XML/JSON determinístico a partir de `SemanticFigureModel`; sem dependência de tempo de execução do editor | + +**Correção automática Mermaid:** Modo de depuração avançado para reparos: +- Setas quebradas (`-->`, `-.->`, `==>`) +- Rótulos e comentários inválidos +- Erros de sintaxe de subgráfico +- Notação de forma (`[`, `(`, `{`, `((`) +- Caracteres de pipe em rótulos +- Anexos de nota + +**Fluxo de trabalho:** +1. Execute "Resumir como diagrama Mermaid" em uma nota +2. Pré-visualizar em modal +3. Exportar como SVG ou PNG +4. Ou salve como arquivo `.mmd` no vault + +--- + +## Código Aberto e Comunidade + +### O Notemd é gratuito e de código aberto? + +**Sim.** +- **Licença:** MIT (permissiva, uso comercial permitido) +- **Código-fonte:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **Sem planos pagos, sem dependência de nuvem, sem telemetria** +- **Comunidade:** 234+ estrelas no GitHub, Discord ativo + +**Você possui:** +- Seus dados (ficam no seu vault) +- Seus fluxos de trabalho (personalize prompts, modelos, chains) +- Sua privacidade (suporte local LLM) + +**Contribuir:** Solicitações de pull request são bem-vindas. Veja [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +## Solução de problemas + +### Minhas chamadas LLM estão falhando. O que devo verificar? + +1. **A chave API está válida?** Verifique Configurações → Configuração do Fornecedor +2. **O nome do modelo está correto?** Use o botão "获取模型列表" (Obter Lista de Modelos) nas configurações +3. **A rede está acessível?** Alguns provedores exigem VPN +4. **Limites de taxa?** Verifique o painel do provedor +5. **Diagnóstico:** Execute "Teste de Conexão" nas configurações para obter logs de erro detalhados + +### Notemd está lento. Como posso acelerá‑lo? + +1. **Use modelos mais rápidos:** DeepSeek, Gemini Flash, GPT-4o-mini +2. **Reduza o tamanho dos blocos:** Configurações → Smart Chunking → diminua a contagem de palavras +3. **Processamento paralelo:** Configurações → Processamento em Lote → aumente a concorrência +4. **Modelos locais:** Ollama para tarefas que não precisam de busca na web + +### O Notemd pode funcionar 100% off‑line? + +**Sim, com Ollama.** Sem chave API, sem internet, nenhum dado sai da sua máquina: + +1. Instale [Ollama](https://ollama.com) e execute `ollama serve` +2. Nas configurações do Notemd, selecione **Ollama** como seu provedor +3. Baixe um modelo: `ollama pull llama3` (ou qwen2.5, gemma2, etc.) +4. Todos os recursos funcionam: links da wiki, notas conceituais, tradução, diagramas + +**Pesquisa DuckDuckGo** também funciona sem chave API (qualidade experimental). + +Com provedores em nuvem (OpenAI, Anthropic, Google, DeepSeek, etc.), o conteúdo da sua nota é enviado como entrada API. Verifique a política de privacidade de cada provedor para detalhes sobre o tratamento de dados. + +### Meus dados são enviados para a nuvem? + +**Depende do seu provedor:** + +| Tipo de provedor | Dados enviados para a nuvem? | Observações | +|--------------|---------------------|-------| +| **Ollama (local)** | Não | Tudo fica no seu computador | +| **LMStudio (local)** | Não | Idêntico ao Ollama | +| **DeepSeek, OpenAI, etc.** | Sim | O conteúdo da observação é enviado como entrada API para processamento | +| **OpenRouter, AIHubMix** | Sim | Gateway que roteia para provedores de nuvem | + +O Notemd em si não coleta **nenhuma telemetria, nenhuma análise, nenhum dado do usuário**. O plugin é totalmente de código aberto (MIT). Os únicos dados que saem da sua máquina são aqueles que você envia explicitamente para o provedor LLM configurado. + +### Qual plugin de IA do Obsidian é o melhor para pesquisa? + +Depende do seu fluxo de trabalho de pesquisa: + +| Necessário | Plugin | Por quê | +|------|--------|-----| +| Encontrar artigos/notas relacionadas | Smart Connections | Descoberta de similaridade semântica | +| Conversar sobre suas fontes | Copilot | Conversa com contexto do vault | +| Vincular conceitos automaticamente + gerar notas | **Notemd** | A IA identifica conceitos, insere links e cria notas | +| Pesquisa na web + resumo em notas | **Notemd** | Tavily/DuckDuckGo busca → LLM resumo → anexado à nota | +| Gerar diagramas a partir da pesquisa | **Notemd** | Mermaid/Canvas/Vega-Lite a partir do conteúdo da nota | + +**Combinação recomendada:** Smart Connections (descoberta) + Notemd (estruturação) + Copilot (discussão). + +--- + +## Obter ajuda + +- **Documentação:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **Problemas no GitHub:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **Patrocinador:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..2f9a18e1 --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "Notas de Conceito" +description: "Gerar e gerenciar notas de conceito — notas independentes para conceitos-chave extraídos do seu vault" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# Notas de Conceito + +<TLDR> +**Notemd extrai os conceitos-chave das suas notas e cria arquivos de nota de conceito independentes.** O LLM identifica termos principais, gera um arquivo `.md` por conceito em uma pasta configurável e, opcionalmente, adiciona backlinks para a nota original. Suporta supressão de sinônimos, seleção de modelo por tarefa, sanitização de nomes de arquivos e um mecanismo de deduplicação em 4 etapas. Isso faz parte do [Obsidian Guia de Gestão de Conhecimento AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Visão Geral + +As notas de conceito são os blocos fundamentais de uma base de conhecimento interconectada. Ao processar uma nota, Notemd: + +1. **Envia o seu texto para um LLM** com um prompt de extração estruturado +2. **Analisa as linhas `CONCEPT:`** da resposta do LLM +3. **Cria um arquivo `.md` por conceito** em uma pasta designada +4. **Adiciona backlinks** para a nota original (quando habilitado) + +## Como Funciona + +### Pipeline de Extração + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### O Prompt de Extração + +O LLM recebe um prompt que o instrui a: + +- Extrair **substantivos ou frases nominais** centrais ao tema do documento +- **Priorizar a especificidade** — "Relaxação Dielétrica" em vez de "Relaxação" +- **Normalizar para singular** — "models" vira "model" +- **Suprimir subconceitos** — se "relaxação dielétrica" aparecer, não extrair também "relaxação" +- **Ignorar** seções de referências/bibliografia, substantivos comuns e nomes de empresas/produtos +- Exibir um conceito por linha como `CONCEPT: Term Name` + +**Supressão de sinônimos** (opcional): adicionar no início do prompt "Evite extrair sinônimos, conceitos centrais semanticamente semelhantes ou palavras-chave sempre que possível". + +**Domínio de aprendizado focado** (opcional): adicionar `Relevant Fields: [domain]` no início para restringir a extração a uma disciplina. + +**Sobrescrita de idioma** (opcional): acrescentar no final "Os conceitos de saída DEVEM estar em [idioma]." + +### Divisão em blocos + +Notas longas são divididas por `settings.chunkWordCount`. Cada bloco é enviado separadamente. Os conceitos de todos os blocos são acumulados em um `Set` — duplicatas entre blocos são removidas silenciosamente. Erros LLM em blocos individuais não interrompem a operação. + +## Criação da Nota de Conceito + +### Regras para nomes de arquivos + +| Regra | Comportamento | +|------|----------| +| Hífens/sublinhados | Substituídos por espaços | +| Caracteres especiais | Removidos: barra invertida, barra forward, dois pontos, asterisco, ponto de interrogação, aspas, chaves angulares, pipe, hash, caret, parênteses | +| Espaços em branco | Colapsados e limpos | +| Máxima extensão | 100 caracteres (truncado + recortado) | +| Resultado vazio/todos pontos | Ignorado silenciosamente | + +Exemplo: `A-B: Key*Term` torna‑se `A B KeyTerm.md` + +### Modelos + +**Modelo completo** (backlinks habilitados, modelo mínimo desativado): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**Modelo mínimo** (quando `extractConceptsMinimalTemplate: true`): + +```markdown +# Concept Name +``` + +### Atualizando notas existentes + +Quando um arquivo de conceito já existe: + +1. Se os backlinks estiverem habilitados e a nota de origem ainda não estiver listada, adicione um backlink +2. Se houver uma seção `## Linked From`, insira antes do próximo cabeçalho `##` +3. Se não houver `## Linked From`, adicione a seção no final +4. Backlinks duplicados são verificados e ignorados + +### Configuração + +| Parâmetro | Padrão | Efeito | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | Alternador mestre. Desativado = nenhuma nota criada | +| `conceptNoteFolder` | `''` (desativado) | Caminho da pasta para notas conceituais | +| `extractConceptsMinimalTemplate` | `true` | Notas apenas com título (sem "Linked From") | +| `extractConceptsAddBacklink` | `false` | Adicionar backlinks durante a extração independente | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | LLM por tarefa para extração de conceitos | +| `extractConceptsLanguage` | `'en'` | Idioma de saída para nomes de conceitos | +| `replaceSynonymsDuringConceptExtraction` | `false` | Ativar supressão de sinônimos no prompt | +| `generateConceptLogFile` | `false` | Escrever uma lista `.log` com os conceitos criados | + +**Importante:** As configurações `extractConceptsAddBacklink` e `extractConceptsMinimalTemplate` afetam apenas o **comando de extração dedicado**. O comando "Adicionar Links" sempre cria notas com template completo e backlinks. + +## Deduplicação + +O comando dedup (`Notemd: Check & remove duplicate concept notes`) executa uma análise em 5 etapas: + +### Etapa 1: Comparação exata do nome do arquivo + +Comparação insensível a maiúsculas/minúsculas do nome do arquivo dentro do escopo configurado. + +### Etapa 2: Detecção de forma plural + +Remoção de sufixos: `-ies` para `-y`, `-es` removido, `-s` removido. Compara a forma singular com os arquivos do escopo. Não lida com plurais irregulares (children/child). + +### Etapa 3: Normalização de símbolos + +Aplica-se: `toLowerCase()`, substitua hífens/sublinhados por espaço, remova caracteres não alfanuméricos e elimine espaços em branco. Itens que se normalizam da mesma forma são marcados. + +### Etapa 4: Contenção de Palavra Única + +As notas de conceito de uma única palavra são verificadas em relação aos nomes dos arquivos de escopo com várias palavras. Não é executado quando o escopo for `concept_folder_only`. + +### Etapa 5: Confirmação e Exclusão + +Todos os candidatos são exibidos em um modal de confirmação. Os itens aprovados são movidos para a lixeira do sistema. A operação pode ser cancelada entre cada exclusão. + +### Modos de Escopo + +| Modo | Comparado com | +|------|-------------------| +| `vault` (padrão) | Todos os arquivos do vault `.md`, excluindo a pasta de conceitos | +| `concept_folder_only` | Outras notas de conceito dentro da pasta | +| `include` | Arquivos em pastas específicas listadas | +| `exclude` | Todos os arquivos do vault, excluindo a pasta de conceitos e as pastas listadas | + +## Uso + +### Extrair Conceitos (Independente) + +1. Abra uma nota +2. Execute **"Notemd: Extrair conceitos"** a partir da paleta de comandos +3. As notas de conceito são criadas na pasta configurada + +### Extrair + Gerar Conteúdo + +**"Notemd: Extrair conceitos e gerar títulos"** — extrai os conceitos e, em seguida, executa "Gerar a partir do Título" em cada nota da pasta de conceitos. Isso gera conteúdo para **todas** as notas de conceito da pasta, e não apenas para as recém‑criadas. + +### Criar Link de Wiki a Partir da Seleção + +1. Destacar texto no editor +2. Executar **"Notemd: Criar link de wiki a partir da seleção"** +3. O texto é envolto em `[[...]]` e uma nota de conceito é criada + +## Dicas + +- **Defina primeiro a pasta de conceitos** — sem ela, nenhuma nota será criada. Um modal de aviso aparece se não for definida. +- **Use modelos por tarefa** — a extração de conceitos funciona bem com modelos mais baratos (GPT-4o-mini, DeepSeek). Guarde modelos caros para pesquisa/tradução. +- **Ative a supressão de sinônimos** em domínios técnicos onde vários termos se referem ao mesmo conceito. +- **Dedupe regularmente** — execute o comando de deduplicação após o processamento em lote para identificar quase‑duplicatas. +- **O arquivo de log é sobrescrito** a cada execução, e não anexado. Copie‑o se precisar dos resultados anteriores. + +--- + +## Próximos passos + +- [Wiki-Links](./wiki-links) — Como os conceitos são vinculados inline +- [Diagrams](./diagrams) — Visualizar relações entre conceitos +- [Workflows](./workflows) — Encadear extração com outras tarefas diff --git a/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..171bf8b9 --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "Diagramas" +description: "Gera Mermaid, JSON Canvas, Vega-Lite, HTML, artefatos de figura editáveis e diagramas circuitikz futuros com restrições a partir de suas anotações, utilizando uma arquitetura baseada em especificações primeiro" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Diagramas + +<TLDR> +**Notemd gera diagramas a partir de suas anotações por meio de um pipeline baseado em especificações primeiro.** O LLM produz um `DiagramSpec` JSON independente do renderizador, e então adaptadores dedicados o traduzem para Mermaid, JSON Canvas, Vega-Lite, HTML ou saída editável HTML/SVG. Suporta 8 tipos de intenção, cadeias de fallback automáticas, visualização ao vivo com exportação para SVG/PNG, verificação semântica e geração aprimorada com conhecimento local. +</TLDR> + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). + +## Arquitetura: Pipeline Baseado em Especificações + +O Notemd nunca solicita que o LLM gere diretamente sintaxe Mermaid/Vega/Canvas. Em vez disso: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**Por que especificações primeiro?** Os LLM geram frequentemente sintaxe inválida para o renderizador (Mermaid em particular). Um `DiagramSpec` estruturado pode ser validado antes da renderização, e a mesma especificação pode alimentar vários renderizadores como fallbacks. + +## Tipos de Diagramas Suportados + +| Intenção | Renderizador Primário | Fallbacks | Caso de Uso | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | Desdobramento hierárquico de tópicos | +| `flowchart` | Mermaid | HTML | Fluxos de processo, árvores de decisão | +| `sequence` | Mermaid | HTML | Interações cliente-servidor, protocolos | +| `classDiagram` | Mermaid | HTML | Relacionamentos entre classes OOP | +| `erDiagram` | Mermaid | HTML | Esquemas de banco de dados, relações entre entidades | +| `stateDiagram` | Mermaid | HTML | Máquinas de estado, modelos de ciclo de vida | +| `canvasMap` | JSON Canvas | Mermaid → HTML | Mapas conceituais, grafos de conhecimento | +| `dataChart` | Vega-Lite | Mermaid → HTML | Barra, linha, área, dispersão, pizza, tabelas | + +## Detecção de intenção + +Notemd infere o melhor tipo de diagrama a partir do conteúdo da sua anotação usando pontuação de palavras-chave: + +| Intenção | Gatilhos | Confiança | +|--------|----------|------------| +| `dataChart` | Tabelas, células numéricas, palavras-chave de métrica/tendência, porcentagens | 0.88 | +| `sequence` | Vocabulário de solicitação/resposta (4+ correspondências) ou marcadores `->`/`=>` | 0.82 | +| `erDiagram` | Chave primária, chave estrangeira, entidade, esquema (2+ correspondências) | 0.80 | +| `stateDiagram` | Estado, transição, pendente, em execução, falho (3+ correspondências) | 0.76 | +| `flowchart` | Passos numerados (2+) ou vocabulário if/then/else/workflow | 0.74 | +| `canvasMap` | Mapa conceitual, grafo de conhecimento, espacial, cluster | 0.72 | +| `mindmap` | Valor padrão de fallback | 0.55 | + +Sobrescreva usando a configuração **Tipo de diagrama preferido**, o seletor da barra lateral ou uma opção explícita da paleta de comandos. + +## Seleção do alvo de renderização + +O pipeline experimental baseado em especificações agora possui dois controles independentes: + +| Controle | Parâmetro | Efeito | +|---------|---------|--------| +| Tipo de diagrama preferido | `preferredDiagramIntent` | Direciona a forma semântica do `DiagramSpec` gerado | +| Alvo de renderização preferido | `preferredDiagramRenderTarget` | Escolhe o processador de artefatos para **Gerar diagrama** e **Visualizar diagrama** | + +Defina **Alvo de renderização preferido** como **Auto** como padrão do planejador, ou escolha Mermaid, JSON Canvas, Vega-Lite, HTML ou Editable HTML/SVG explicitamente. A sobrescrita aplica‑se apenas aos comandos de artefato e visualização. O comando padrão **Resumir como diagrama Mermaid** permanece vinculado a saídas compatíveis com Mermaid, para que os fluxos de trabalho atuais em Markdown não alterem silenciosamente o formato. + +Essa separação é importante porque uma intenção `flowchart` agora pode ser renderizada como Mermaid para notas em Markdown, como HTML para fallback robusto, ou como Editable HTML/SVG para edição posterior. Draw.io e Drawnix continuam sendo exportadores de artefatos CLI e não alvos de renderização dentro do plugin. + +## Uso + +### Gerar um Diagrama + +1. Abra uma nota +2. Execute **"Notemd: Gerar diagrama"** a partir da paleta de comandos +3. Notemd detecta a intenção, gera a especificação, realiza a renderização e salva o artefato + +**Arquivos de saída por alvo:** + +| Alvo | Extensão | Padrão de Nome do Arquivo | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| Editável HTML/SVG | `.html` | `{note}_diagram.html` | + +### Visualizar um Diagrama + +1. Executar **"Notemd: Visualizar diagrama"** +2. Uma janela modal é aberta com o diagrama renderizado +3. Exportar como SVG ou PNG usando os botões da barra de ferramentas + +**Abrir visualização automaticamente** está disponível nas configurações — após a geração, a janela modal de visualização é aberta automaticamente. + +A janela modal de visualização também possui um painel de diagnóstico de artefatos. Os renderizadores e testes de validação podem anexar `RenderArtifact.diagnostics`; a janela mostra um resumo de diagnóstico com contagens de erros/avisos/informações, seguido da gravidade, tipo de diagnóstico, mensagem e sugestões de correção ao lado da visualização. O mesmo resumo é exibido nas entradas do histórico de visualizações, permitindo comparar tentativas repetidas de teste circuitikz sem abrir cada entrada. Para artefatos que possuem conteúdo de origem, mas não podem ser renderizados inline ou por meio do caminho do iframe HTML, a janela modal agora recorre a uma visualização apenas de código-fonte em vez de forçar um iframe vazio. Isso permite testes de compilação/renderização circuitikz, verificações de tokens de texto SVG, verificações de captura de tela em branco PNG e relatórios futuros de sobreposição com uma superfície visível UI, sem tornar o TikZJax ou o LaTeX uma dependência obrigatória em tempo de execução do plugin ou fingir que o texto de origem é uma renderização visual verificada. + +### Modo Legado Mermaid + +Quando `enableExperimentalDiagramPipeline` está desativado, Notemd envia um prompt direto Mermaid ao LLM. Isso ignora completamente o pipeline padrão. Se o pipeline experimental falhar, ele recorre a este modo. + +## Backends de Renderização + +### Mermaid + +6 adaptadores (mapa mental, fluxograma, sequência, ER, classe, estado) convertem `DiagramSpec` em sintaxe Mermaid. Após a geração, `mermaid.parse()` valida a saída. Se a validação falhar: + +1. **Retentativa LLM** — uma tentativa com a mensagem de erro Mermaid como contexto +2. **Fallback Mínimo** — um diagrama básico Mermaid feito a partir dos IDs dos nós da especificação + +**Legacy Mermaid Fixer** corrige automaticamente os erros de sintaxe LLM mais comuns: normalização da diretiva note, escape de rótulos com pipe, reposicionamento de ponto e vírgula, aspas inteligentes, setas com dois traços, discrepâncias de formato e muito mais. + +### JSON Canvas + +Gera formato Obsidian JSON Canvas com layout espacial: +- Os nós são posicionados por profundidade (x = profundidade × 420) e índice (y = índice × 170) +- A largura é estimada a partir do comprimento do rótulo +- Arestas com `fromSide: 'right'`, `toSide: 'left'`, `toEnd: 'arrow'` + +### Vega-Lite + +Cria especificações completas de Vega-Lite v5 JSON com codificação automática: +- **Gráficos cartesianos** (barras/linha/área/ponto/dispersão): canais x + y mais cor para múltiplas séries +- **Pizza**: theta = y (quantitativo), cor = x (nominal) +- **Tabela**: linha = x, texto = y + coluna = série + +Os patches de tema escuro e claro são fundidos profundamente antes da compilação. + +### HTML + +Fallback universal. Documento HTML autônomo que contém: +- Metadados CSP +- Modo claro/escuro por meio de `prefers-color-scheme` +- Rótulos UI localizados para 20 idiomas +- Seções: hero, estrutura (árvore de nós), relacionamentos, destaques, tabelas de séries de dados + +### Editável em HTML/SVG + +Alvo explícito de figura para fluxos de trabalho de exportação editáveis. Ele projeta `DiagramSpec` em um `SemanticFigureModel` determinístico e, em seguida, gera um documento autônomo HTML com grupos SVG embutidos que contêm anotações no estilo Draw.io: + +- `data-drawio-type`, `data-drawio-id` e `data-drawio-role` em nós semânticos +- `data-drawio-source` e `data-drawio-target` em arestas semânticas +- identificadores estáveis de nó/aresta após normalização de espaços em branco e tratamento de colisões +- sem scripts, sem fontes externas e sem ativos remotos + +Esse alvo ainda não é intencionalmente a rota padrão do planejador. Ele está disponível como um alvo de renderização explícito enquanto o caminho do produto comprova o comportamento de edição em ferramentas reais. + +### Draw.io e Drawnix Limites de Exportação + +A implementação atual mantém o suporte a editores de terceiros na fronteira do artefato: + +| Alvo | Contrato | Dependência em Tempo de Execução | +|--------|----------|--------------------| +| Draw.io | `mxfile` XML descompactado e determinístico a partir de `SemanticFigureModel` | nenhum na execução do plugin ou no CI | +| Drawnix | subconjunto mínimo de `.drawnix` JSON usando elementos `geometry` e `arrow-line` | nenhum na execução do plugin ou no CI | + +O trade‑off é intencional: Notemd pode verificar rótulos visíveis, IDs estáveis e cobertura de primitivas suportadas sem incorporar o Diagrams.net Desktop, Drawnix, Plait ou o estado do editor apenas para navegador ao plugin. + +### circuitikz / TikZJax Direção + +Os diagramas de circuito não são o mesmo problema que os fluxogramas genéricos. A sintaxe correta para circuitos elétricos costuma ser **circuitikz**, renderizada em Obsidian por meio de plugins como TikZJax. TikZJax pode carregar pacotes como `circuitikz`, `pgfplots`, `tikz-cd` e `chemfig`, o que o torna atrativo para anotações de física, circuitos, química e matemática. + +O risco é que o TikZ gerado diretamente por LLM seja frágil: + +- uma topologia de circuito complexa pode ser eletricamente correta, mas visualmente ilegível; +- fios e rótulos sobrepostos podem tornar uma lista de conexões correta inutilizável para anotações de estudo; +- falta de preâmbulos de pacotes, âncoras incorretas ou nomes de componentes inválidos podem impedir a renderização; +- o feedback do renderizador costuma ser em nível de imagem, enquanto o LLM gera geometria em nível de texto. + +A arquitetura melhor é tratar circuitikz como um alvo de diagrama restrito, e não como um prompt livre: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +O modelo de primeira classe deve descrever a topologia e o layout do circuito separadamente: + +| Camada | Responsabilidade | Exemplo | +|-------|----------------|---------| +| Topologia | nós elétricos e conexões de componentes | `VDD -> RD -> drain(M1)`, `source(M1) -> GND` | +| Layout | posicionamento na grade, orientação, vias de roteamento | `M1 at (3,2.2)`, entrada esquerda, saída direita | +| Estilo | pacote, convenção de tensão, rótulos, âncoras | `\begin{circuitikz}[american voltages]` | +| Validação | registro de compilação, ausência de âncoras, verificações de sobreposição/tela | TikZJax/Diagnósticos LaTeX mais revisão visual | + +### Protótipo atual circuitikz + +Notemd agora inclui o primeiro protótipo de repositório restrito para esta direção. Ele está intencionalmente offline e vinculado a um modelo: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +O protótipo adiciona uma fronteira `CircuitSpec` separada e um exportador determinístico para seis famílias de referência dourada: + +| Tipo de circuito | Referência dourada | Garantia de corrente | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | valida `VDD -> R_D -> M1.D`, `vin -> M1.G`, `M1.S -> GND` e `M1.D -> vout` antes de escrever o LaTeX | +| `cmos-inverter` | `cmos-inverter-v1` | valida topologia PMOS-over-NMOS, entrada de porta compartilhada, saída de dreno compartilhada, `VDD -> MP.S` e `MN.S -> GND` antes de escrever o LaTeX | +| `cmos-buffer` | `cmos-buffer-v1` | valida duas etapas de inversor em cascata, nó intermediário `vmid`, `vout` restaurado e trilhas VDD/GND compartilhadas antes de escrever o LaTeX | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | valida dispositivos paralelos PMOS/NMOS entre `vin` e `vout` com controles complementares `phib` / `phi` antes de escrever o LaTeX | +| `cmos-nand2` | `cmos-nand2-v1` | valida o pull-up paralelo de PMOS, o pull-down em série de NMOS, entradas duplas `va` / `vb` e `vout` antes de gerar LaTeX | +| `cmos-nor2` | `cmos-nor2-v1` | valida o pull-up em série de PMOS, o pull-down paralelo de NMOS, entradas duplas `va` / `vb` e `vout` antes de gerar LaTeX | + +Este ainda não é um gerador geral de TikZ. Ele não compila LaTeX, chama TikZJax, inspeciona capturas de tela ou executa reparo automático de imagem. Essas funcionalidades ficam para fases posteriores. + +O comando Diagrama de Pré-visualização pode reabrir diretamente os artefatos de código circuitikz salvos quando a extensão do arquivo é `.tex` ou `.tikz` e o código contém `\usepackage{circuitikz}` ou `\begin{circuitikz}`. Esse modo é uma pré-visualização apenas de código: a janela modal exibe o código, diagnósticos, controles de cópia/gravar e metadados de histórico, mas não compila LaTeX nem chama TikZJax durante a execução do plugin. + +Agora a mesma pré-visualização apenas de código abrange os artefatos Draw.io e Drawnix salvos. Arquivos `.drawio` são aceitos quando se assemelham a Draw.io XML (`mxfile` ou `mxGraphModel`), e arquivos `.drawnix` são aceitos quando são Drawnix JSON com `type: "drawnix"` e um array `elements`. O plugin ainda não incorpora o diagrams.net nem o host de quadro branco Drawnix; essas pré-visualizações exibem código, diagnósticos e histórico de artefatos sem oferecer um editor visual interno. + +Para reparo que preserva a topologia, passe a especificação pré-reparo como referência antes de aceitar um candidato reparado: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +O mecanismo de proteção usa `createCircuitTopologySignature` e `assertCircuitTopologyUnchanged` para comparar `circuitKind`, `goldenReferenceId`, redes, IDs/tipos/terminais de componentes e extremidades de conexões não direcionadas antes da saída. Rótulos, texto de título, dicas de layout, ordem de conexão e rótulos de conexão são intencionalmente ignorados. Um candidato que adicione um elemento curto ou reconfigure um terminal falha com `Circuit topology drift detected` antes que o arquivo `.tex` seja gravado. + +O CLI agora pode analisar um log de compilação existente de LaTeX/TikZJax sem executar um compilador: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +Esse caminho de diagnóstico relata pacotes faltantes como `circuitikz.sty`, chaves desconhecidas de TikZ/circuitikz, erros de sintaxe de caminho do TikZ, como falta de pontos e vírgula, argumentos excessivos de chaves desbalanceadas ou rótulos não finalizados, sequências de controle indefinidas, erros gerais do LaTeX, paradas de emergência e avisos de sobrecarga do `\hbox`. Ele continua sendo baseado em logs: execução local de LaTeX/TikZJax e mecanismos de qualidade de captura de tela ainda são tarefas futuras separadas. + +Para verificações rápidas dos mantenedores, o mesmo CLI pode opcionalmente executar um renderizador configurado explicitamente sem analisar comandos de shell: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +O executor de compilação usa `shell: false`, expande os placeholders `{tex}`, `{outputDir}` e `{jobName}` em valores de array de argumentos, lê o `{jobName}.log` gerado e retorna `compileExecution` além de `compileDiagnostics` na saída CLI JSON. `--compile-executable` refere‑se apenas ao caminho do binário ou wrapper do renderizador; flags do renderizador devem estar em valores repetidos de `--compile-arg`. Executáveis vazios falham como `compile-executable-invalid`, binários faltantes falham como `compile-executable-not-found`, e strings executáveis com formato de comando de shell recebem orientações para dividir argumentos, de modo que Windows, Linux e macOS sigam o mesmo contrato de execução direta. Com `--expected-artifact`, ele também relata `compileExecution.renderSmoke` e falha no CLI se o renderizador não criar um artefato não vazio. Ele ainda não inclui o LaTeX, torna TikZJax uma dependência em tempo de execução do plugin nem realiza reparo visual em nível de captura de tela. + +Se o artefato esperado for `.svg`, a verificação rápida vai um nível mais a fundo: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +A verificação de fumaça SVG verifica a raiz `<svg>`, dimensões positivas ou `viewBox`, pelo menos um elemento gráfico visível após exclusão de elementos ocultos/translúcidos, quaisquer tokens de texto solicitados, elementos óbvios fora do `viewBox`, rótulos `<text>` / `<tspan>` posicionados sobrepostos de forma óbvia e rótulos de texto óbvios sobrepostos a elementos gráficos por meio de `render-svg-label-overlap`. O texto esperado é procurado no texto visível e em metadados de acessibilidade decodificados, como `aria-label`, `<title>` e `<desc>`, de modo que renderizadores que preservam rótulos semânticos fora do `<text>` ainda podem satisfazer a verificação de tokens de texto sem precisar de OCR. A etapa de geometria agora utiliza geometria sensível a transformações para atributos comuns de grupo e elemento `transform`, portanto caixas SVG traduzidas, escaladas, rotacionadas, distorcidas ou transformadas por matriz são verificadas após a composição da transformação. Ela cobre limites exatos de arcos para extremos de arco A/a, limites exatos de curvas Bezier para extremos de curvas C/S/Q/T, limites SVG sensíveis à espessura da linha e verificações de sobreposição de rótulos, geometria de desenho `polyline` / `polygon`, além de resolver a colocação de glifos apenas por caminho a partir de referências `<use href="#...">`, de modo que rótulos convertidos em caminhos de glifo reutilizáveis ainda podem falhar nas verificações de canvas delimitado quando a geometria do glifo excede o `viewBox`. Vários rótulos `tspan` posicionados sob um mesmo pai `<text>` são comparados como caixas de rótulo separadas, o que detecta saídas no estilo LaTeX SVG que, de outra forma, fundiriam rótulos distintos em um único nó de texto. Caixas SVG `text` e `tspan` posicionadas respeitam os valores `start`, `middle` e `end`, de modo que rótulos centralizados e alinhados à direita podem acionar diagnósticos de sobreposição de texto/rótulo sem exigir layout de texto no nível do navegador. Caminhos de glifo apenas de definição dentro de `<defs>` não são contabilizados como elementos gráficos visíveis, mas seus próprios atributos locais de definição `transform` são aplicados antes da colocação `<use>`, de modo que definições de glifo escaladas ou espelhadas não sejam subcontadas. A verificação rótulo‑vs‑desenho utiliza uma pequena tolerância para caixas de desenho e o valor declarado `stroke-width`, de modo que fios finos, fios grossos e contornos poligonais de componentes podem ser considerados falhas potenciais de legibilidade de rótulo quando seu traço visível alcança um rótulo. Rótulos de glifo apenas por caminho resolvidos a partir de `<use href="#...">` também são comparados com caixas de desenho e falham com `render-svg-path-glyph-overlap` quando a geometria de glifo reutilizável sobreposta fios ou componentes. Se um renderizador converter rótulos em glifos por caminho reutilizáveis em vez de `<text>` pesquisáveis e não preservar metadados de acessibilidade, o relatório de fumaça registra `pathOnlyGlyphUseCount` e falha no token de texto solicitado por meio de `render-svg-text-path-only`, em vez de fingir que o rótulo simplesmente está ausente. Outras falhas são relatadas por meio de `render-svg-invalid`, `render-svg-dimension-missing`, `render-svg-no-visible-elements`, `render-svg-text-missing`, `render-svg-out-of-bounds`, `render-svg-text-overlap`, `render-svg-label-overlap` ou `render-svg-path-glyph-overlap`. As verificações de token de texto e sobreposição devem ser tratadas apenas como verificação estrutural para renderizadores que preservam rótulos como texto SVG pesquisável ou metadados de acessibilidade; saídas apenas por caminho SVG ainda precisam da etapa posterior de captura de tela/OCR para comprovar a legibilidade visual dos rótulos, e essa verificação de fumaça ainda não garante cobertura completa de SVG caminhos. + +Grupos e elementos ocultos SVG são sempre ignorados durante a contagem de elementos visíveis e a coleta de geometria. Atributos ou estilos inline `display:none`, `visibility:hidden`, `visibility:collapse` e o geral `opacity:0` não fazem com que um artefato de renderização vazio passe na verificação de saída visível. + +As definições de glifo apenas por caminho podem ser caminhos diretos ou contêineres agrupados/símbolos dentro de `<defs>`. A verificação de fumaça resolve a geometria dos caminhos filhos a partir de `<g id="...">` e `<symbol id="...">` antes da colocação em `<use>`, de modo que a saída de glifo embalado ainda alimenta as verificações de `pathOnlyGlyphUseCount`, canvas delimitado e `render-svg-path-glyph-overlap`. + +O analisador de caminho também rastreia o início de subcaminhos e redefine o ponto atual em `Z/z`, de modo que comandos relativos após um subcaminho fechado continuem a partir do ponto correto SVG em vez de gerar diagnósticos falsos de `render-svg-out-of-bounds`. + +A mesma etapa de geometria segue a gramática SVG para decimais com ponto inicial e sinais de mais explícitos, de modo que coordenadas compactas dvisvgm como `.5`, `-.5` ou `+.5` permanecem fracionárias durante as verificações de limite, em vez de gerarem geometria fora dos limites falsa ou serem ignoradas. + +Se o renderizador emitir `.png`, o mesmo caminho esperado para artefatos resultará em uma primeira captura de tela como fumaça: Notemd decodifica arquivos PNG de cor indexada de 1/2/4/8 bits não entrelaçados, arquivos PNG em tons de cinza de 1/2/4/8/16 bits e arquivos PNG em tons de cinza‑alfa/RGB/RGBA de 8/16 bits. Imagens em cor indexada e em tons de cinza sub‑byte suportam amostras compactadas; imagens em cor indexada também suportam PLTE e dados tRNS opcionais; imagens em tons de cinza/RGB suportam amostras transparentes tRNS. Amostras diretas de 16 bits são normalizadas para o mesmo espaço de comparação RGBA de 8 bits usado pelas verificações de fumaça. A verificação de fumaça confirma dimensões positivas, registra os limites do primeiro plano como `foregroundBounds`, registra a densidade do primeiro plano dentro dessa caixa como `foregroundDensity`, falha com `render-png-blank` quando cada pixel visível corresponde à cor de fundo no canto superior esquerdo, falha com `render-png-content-clipped` quando o conteúdo do primeiro plano toca a borda da imagem, falha com `render-png-foreground-too-small` quando uma captura de tela grande tem menos de quatro pixels de primeiro plano e falha com `render-png-foreground-dense` quando os pixels do primeiro plano são excepcionalmente densos dentro de uma caixa delimitadora não trivial. Formatos PNG não suportados causam falha com `render-png-unsupported`, além de orientações específicas para PNGs entrelaçados Adam7 ou profundidades de cor indexada não suportadas. Isso detecta capturas de tela vazias, recortes óbvios da tela, pegadas de primeiro plano sub‑renderizadas, falhas de superlotação no nível do primeiro pixel e configurações incorretas de exportação de PNG pelo renderizador, sem exigir dependência de shell específica da plataforma. Trata‑se ainda de um sistema que não alcança o nível de reconhecimento de rótulos OCR, detecção precisa de sobreposição de texto ou reparo de imagem que preserve a topologia. + +Quando os diagnósticos indicam uma compilação falha ou execução de render‑smoke inválida, o CLI também pode gerar um resumo de reparo que preserva a topologia: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +O resumo de reparo utiliza o esquema `notemd.circuitikz.repair-brief.v1` e contém a fonte `CircuitSpec`, assinatura de topologia, diagnósticos de compilação/render, edições permitidas, edições de topologia proibidas, próximos passos de verificação e um `repairPrompt` estruturado. O papel do prompt é `topology-preserving-circuitikz-repair`; sua lista `diagnosticFocus` é derivada dos diagnósticos de compilação/render, e seus requisitos `acceptanceCriteria` exigem validação do candidato além de novas compilações e verificações de render‑smoke. Trata‑se do formato de transferência para um ciclo posterior de reparo, e não da afirmação de que Notemd já executa reparo visual autônomo. + +Após a geração de um candidato de reparo, o mesmo CLI pode validá‑lo em relação ao resumo antes de gerar a saída: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief` verifica a assinatura de topologia do candidato extraída do resumo, sendo mutuamente exclusivo com `--topology-reference`. Superar essa etapa prova apenas a preservação da topologia; o candidato ainda precisa dos diagnósticos de compilação e das verificações de render‑smoke. + +O resultado do `--repair-brief` também inclui evidências `repairAcceptance` com o esquema `notemd.circuitikz.repair-acceptance.v1`. Ele relata as etapas `topology-signature`, `compile-diagnostics` e `render-smoke` como `passed`, `failed` ou `missing`; expõe `remainingChecks`; e mantém `readyForVisualAcceptance` como falso até que a execução do candidato contenha todas as evidências necessárias. + +Use `--repair-acceptance-output` com `--repair-brief` quando as evidências de CI ou de lançamento precisarem de um arquivo JSON duradouro: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +Para evidências de lançamento ou de mantenedor, execute cada família dourada suportada por meio do executor de fixtures agregados: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +O executor utiliza `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json` e `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json`, chama o mesmo caminho de exportador sem shell para cada fixture e retorna um relatório agregado JSON com `compileExecution` e `compileDiagnostics` por fixture. Continua sendo um comando de mantenedor, e não uma dependência em tempo de execução de plugin. + +Quando a máquina do mantenedor ainda não tem um renderizador configurado, execute o mesmo comando de fixture sem `--compile-executable` e registre explicitamente o status do ambiente: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +Esse caminho ainda gera os artefatos determinísticos de fixture `.tex`, mas retorna `ok: false` com `rendererAvailability.status` definido como `missing-configuration` e um diagnóstico `compile-executable-invalid`. Trate‑o apenas como evidência de disponibilidade do renderizador; não se trata de compilação, render‑smoke ou aceitação visual. + +### Forma de Prompt de Referência Dourada + +Para uso imediato, forneça uma referência dourada renderizável antes de solicitar uma variante de circuito. Um prompt restrito deve preservar o preâmbulo, a escala de coordenadas, o estilo de âncora e as convenções de roteamento: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +Para um inversor CMOS, o prompt deve solicitar explicitamente a topologia e restrições de layout, e não apenas "desenhe um inversor CMOS": + +- mantenha `VDD` no topo, `GND` na parte inferior, entrada à esquerda e saída à direita; +- Use `pmos` acima de `nmos`, com portas compartilhadas e drenos compartilhados; +- Mantenha o nó de saída na junção do dreno e marque‑o com `*-o`; +- Use âncoras nomeadas (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) em vez de coordenadas inferidas visualmente; +- Evite fios diagonais ou cruzados, a menos que seja necessário electricamente. + +### Progresso Atual e Próximas Fases + +| Área | Status Atual | Próximo Passo | +|------|----------------|-----------| +| Diagramas Gerais | Pipeline baseado em especificações implementado para Mermaid, JSON Canvas, Vega-Lite, HTML | Continue ampliando a cobertura de verificação semântica | +| Figuras Editáveis | As fronteiras dos artefatos `editable-html-svg`, Draw.io XML e Drawnix JSON foram implementadas | Adicione primitivas mais avançadas somente após testes comprovarem a editabilidade | +| Suporte a CLI | O `npm run diagram:export-artifact` exporta HTML/SVG, Draw.io e Drawnix editáveis a partir de um `DiagramSpec` | Adicionar dispositivos de fumaça específicos para cada alvo quando novos alvos forem enviados | +| circuitikz | `CircuitSpec -> circuitikz` o protótipo exporta modelos padrão de código aberto, inversor CMOS, `cmos-buffer` / `cmos-buffer-v1`, `cmos-transmission-gate` / `cmos-transmission-gate-v1`, `cmos-nand2` / `cmos-nand2-v1` e `cmos-nor2` / `cmos-nor2-v1` modelos‑ouro, projetos `layoutHints.inputSide` e `layoutHints.outputSide` para uma disposição determinística das portas de entrada/saída sem alterar a topologia, rejeita mudanças na topologia de reparo por meio de `--topology-reference`, emite relatórios de reparo que preservam a topologia por meio de `--repair-brief-output` e do esquema `notemd.circuitikz.repair-brief.v1`, inclui conteúdo estruturado de transferência `repairPrompt` com `diagnosticFocus`, `acceptanceCriteria` e o papel `topology-preserving-circuitikz-repair`, valida candidatos a reparo por meio de `--repair-brief`, retorna evidências da porta `repairAcceptance` por meio do esquema `notemd.circuitikz.repair-acceptance.v1` com `readyForVisualAcceptance` e `remainingChecks`, mantém essas evidências por meio de `--repair-acceptance-output`, analisa logs de compilação, pode executar renderizadores locais explícitos além de `--expected-artifact`, SVG `--expected-svg-text`, verificações de metadados de acessibilidade por meio de `aria-label`, `<title>` e `<desc>`, exclusão de elementos SVG ocultos/translúcidos, classificação `render-svg-text-path-only` / `pathOnlyGlyphUseCount` para rótulos apenas de caminho, verificações de posicionamento de glifos apenas de caminho para `<use href="#...">`, diagnósticos de sobreposição de glifos apenas de caminho por meio de `render-svg-path-glyph-overlap`, tratamento do ponto atual em caminhos fechados para `Z/z`, limites exatos dos arcos A/a nos extremos, limites exatos das curvas Bezier C/S/Q/T nos extremos, verificações de sobreposição de rótulos com consideração à espessura da linha SVG, verificações geométricas de desenho `polyline` / `polygon`, geometria de rótulos posicionados `tspan`, geometria de texto posicionado sensível a `text-anchor`, geometria sensível a transformações para SVG sobreposição de texto em canvas delimitado e fumaça de rótulo vs desenho por meio de `render-svg-label-overlap`, além de verificações de captura de tela PNG sem vazio / recortada / com fundo denso, incluindo paleta de cores indexadas com alfa, amostras transparentes em tons de cinza/RGB tRNS e orientações específicas para formatos `render-png-unsupported` em PNGs entrelaçados Adam7 e falhas de profundidade de bits indexada, por meio de `foregroundBounds`, `foregroundDensity`, `render-png-content-clipped` e `render-png-foreground-dense` sem análise de shell, inclui dispositivos de fumaça agregados para mantenedores por meio de `npm run diagram:smoke-circuitikz`, registra configurações de renderizador ausentes por meio de `rendererAvailability.status: "missing-configuration"` e `compile-executable-invalid`, e possui diagnósticos gerais de visualização, contagens de resumo de diagnósticos, entradas de histórico sensíveis a diagnósticos e fallback apenas de código-fonte por meio de `RenderArtifact.diagnostics` e do modal de visualização | Adicionar reconhecimento de rótulos em nível OCR para texto visual apenas de caminho, verificações precisas de sobreposição em nível de pixel, cobertura mais ampla de caminhos SVG quando necessário, instalação/descoberta automática de renderizadores somente se puder permanecer opcional, e execução automática de reparo que preserva a topologia | +| Integração TikZJax | Host de renderização candidato para exibição do lado Obsidian | Manter como opcional; não tornar TikZJax uma dependência obrigatória em tempo de execução do plugin | + +## Configuração + +| Parâmetro | Padrão | Efeito | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | Alternar entre modo focado em especificações e modo legado Mermaid | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = Mermaid apenas; `'best-fit'` = alvos nativos + alternativas | +| `preferredDiagramIntent` | `undefined` (automático) | Sobrescrever a detecção automática de intenção | +| `summarizeToMermaidLanguage` | `'en'` | Idioma do alvo para rótulos de diagrama | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | LLM por tarefa para geração de diagramas | +| `autoMermaidFixAfterGenerate` | (de constantes) | Executar automaticamente o corretor legado nos resultados de Mermaid | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | Aumentar o código‑fonte com conhecimento do vault local | + +### Aumento de Conhecimento Local + +Quando ativado, Notemd busca trechos de contexto relevantes da base de conhecimento local do seu vault (baseada em MiniSearch) e os insere no início do markdown de origem. O prompt de aprimoramento indica: "apenas referência de apoio; mantenha a estrutura principal fiel à nota original." + +### Modos de Compatibilidade + +- **`legacy-mermaid`**: Todas as intenções são direcionadas para Mermaid. Intenções que não são Mermaid (canvasMap, dataChart) são forçadas a `flowchart` ou `mindmap`. Não há cadeia de fallback. +- **`best-fit`**: Cada intenção é direcionada ao seu alvo nativo. Se o principal falhar, é percorrida a cadeia de fallback (por exemplo, Vega-Lite → Mermaid → HTML). + +## Pré-visualização e Exportação + +| Ação | Método | +|--------|--------| +| SVG export | Construtor `mermaid.render()` / `vega.View.toSVG()` / SVG para Canvas | +| Exportação em PNG | SVG → Imagem → Canvas (relação de pixels do dispositivo de 1x a 3x) → ArrayBuffer PNG | +| Salvar a Fonte | O conteúdo bruto do artefato é salvo com a extensão específica do destino | +| Pré-visualização apenas da Fonte | Artefatos não inline com o conteúdo da fonte são exibidos como código acompanhado de diagnósticos, sem renderização em iframe | +| Auditoria Semântica | Mermaid, JSON Canvas, Vega-Lite e HTML/SVG editável verificado por `scripts/diagram-semantic-verification.js` | + +**Armazenamento em cache**: O RenderCache utiliza uma chave JSON determinística de `{spec, target, theme}`. A deduplicação em tempo real impede renderizações duplicadas. + +## Dicas + +- **Comece com o modo `best-fit`** — ele gera a melhor saída visual para cada tipo de intenção +- **Use modelos poderosos para diagramas complexos** — fluxogramas e diagramas ER se beneficiam do GPT-4o ou Claude +- **Ative o conhecimento local** para diagramas específicos de domínio — o contexto relevante do vault melhora a precisão +- **Defina `autoMermaidFixAfterGenerate`** — erros de sintaxe Mermaid são comuns sem ele +- **O corretor legado é abrangente** — se a pré-visualização de Mermaid falhar, executar manualmente o comando do corretor costuma resolvê‑lo + +--- + +## Próximos passos + +- 🔗 [Links da Wiki](./wiki-links) — Como os conceitos são vinculados inline +- 📝 [Notas de Conceito](./concept-notes) — Extrair conceitos para material de origem dos diagramas +- 🔍 [Pesquisa](./research) — Enriquecer diagramas com dados de fontes da web diff --git a/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..4c4b416b --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "Pesquisa e Busca na Web" +description: "Integre a busca na web às suas anotações" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Pesquisa e Busca na Web + +<TLDR> +**Notemd consulta a web e insere os resultados resumidos em LLM diretamente nas suas anotações.** Tavily API é o backend de busca principal; DuckDuckGo funciona como um fallback sem configuração. Os resultados são resumidos com citações das fontes e anexados sob um cabeçalho `## Research`. Suporta pesquisa em única anotação, pesquisa em pastas em lote e seleção de modelo por tarefa para a etapa de resumo. + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Visão Geral + +A pesquisa é uma das integrações mais poderosas do Notemd: ela fecha o ciclo entre leitura, busca e escrita. Em vez de abrir um navegador para buscar um termo desconhecido, basta destacá‑lo e deixar que Notemd faça a busca, o resumo e anexe as descobertas — tudo dentro do seu vault. + +O processo é totalmente configurável. Você escolhe o provedor de busca, o LLM que escreve o resumo e se os resultados devem ser anexados à anotação ativa ou gravados em arquivos separados. O modo em lote permite pesquisar todas as anotações de uma pasta com um único clique. + +## Como Funciona + +### Pipeline de Busca e Resumo + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **Extração da consulta** -- Notemd extrai os termos de busca da sua seleção ou do título da anotação. +2. **Busca na web** -- Tavily é tentado primeiro. Se nenhuma chave API estiver configurada, DuckDuckGo é usado automaticamente (não é necessária chave alguma). +3. **Resumo com LLM** -- Os resultados brutos da busca são enviados ao LLM configurado, que gera um resumo conciso com citações de fonte embutidas. +4. **Anexar** -- O resumo formatado é anexado sob um cabeçalho `## Research` na anotação ativa. + +### Tavily vs. DuckDuckGo + +| Aspecto | Tavily | DuckDuckGo | +|--------|--------|------------| +| Chave API | Necessário (versão gratuita disponível) | Não necessário | +| Qualidade do resultado | Mais alta (desenvolvida especificamente para IA) | Adequada para consultas gerais | +| Limites de taxa | Nível gratuito generoso | Sujeito a limitação de velocidade | +| Configuração | `tavilyApiKey` nas configurações | Sem configuração -- fallback automático | + +### Pesquisa em pasta em lote + +Clique com o botão direito em uma pasta e selecione **"Notemd: Pasta de pesquisa"**. Cada arquivo `.md` na pasta é processado sequencialmente (ou em paralelo, até a concorrência configurada). Cada nota recebe seu próprio resumo da pesquisa. + +## Configuração + +| Parâmetro | Padrão | Efeito | +|---------|---------|--------| +| `tavilyApiKey` | `''` | Chave Tavily API. Quando vazia, DuckDuckGo é usado exclusivamente. | +| `researchProvider` / `researchModel` | DeepSeek | LLM por tarefa para resumir resultados de busca | +| `maxResearchContentTokens` | `4000` | Orçamento de tokens para o conteúdo enviado ao LLM. O excesso é truncado. | +| `researchAppendToNote` | `true` | Anexar resumo à nota original. Se for falso, cria um arquivo separado. | +| `researchLanguage` | `'en'` | Idioma de saída para a pesquisa resumida | + +### Recomendação de modelo por tarefa + +A pesquisa se beneficia de um modelo que lida com conteúdo multilíngue e gera textos bem estruturados. Veja alguns exemplos: + +- **DeepSeek** -- padrão, acessível e de boa qualidade +- **GPT-4o** -- resumos de maior qualidade, porém mais caro +- **Gemini Flash** -- rápido e barato, adequado para consultas simples + +## Exemplo + +Você está lendo um artigo sobre *mecanismos de atenção do transformer* e encontra um termo desconhecido: *relative positional encoding*. Em vez de deixar Obsidian: + +1. Destaque **"relative positional encoding"** +2. Clique com o botão direito --> **"Notemd: Pesquisar e resumir"** +3. Notemd busca na internet, resume os principais resultados e acrescenta: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +O resumo agora faz parte do seu repositório, podendo ser pesquisado, vinculado e acessado offline. + +## Dicas + +- **Defina uma chave Tavily para obter melhores resultados** -- mesmo a versão gratuita oferece maior relevância do que o DuckDuckGo bruto. +- **Use um modelo de resumo eficaz** -- modelos baratos podem simplificar demais conteúdo técnico detalhado. +- **Realize pesquisas em lote** após uma leitura inicial para preencher lacunas em várias anotações ao mesmo tempo. +- **Revise os resumos adicionados** -- LLMs podem gerar informações falsas sobre as fontes. Verifique as afirmações principais. + +--- + +## Próximos passos + +- [Notas de Conceito](./concept-notes) -- Extraia e armazene termos importantes dos resultados da pesquisa +- [Links da Wiki](./wiki-links) -- Vincule conceitos derivados da pesquisa em todo o seu repositório +- [Tradução](./translation) -- Traduza resumos de pesquisa para outro idioma +- [LLM Fornecedores](/docs/providers/overview) -- Configurar o modelo usado para resumo diff --git a/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..2d81b3ba --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "Tradução" +description: "Traduzir notas e seleções" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# Tradução + +<TLDR> +**Notemd traduz texto entre 21+ idiomas usando a tradução alimentada por LLM.** Suporta tradução de seleção única, tradução de toda a nota e tradução em lote de pastas. Cada tarefa de tradução pode usar um provedor e modelo dedicados por meio das configurações da tarefa. O idioma de saída pode ser configurado independentemente do idioma UI. Os resultados são anexados ou gravados em um novo arquivo, conforme sua preferência. + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Visão Geral + +A tradução em Notemd não é uma busca em dicionário -- é uma tradução consciente do contexto, alimentada por LLM. O modelo analisa o parágrafo ou nota inteira, preservando o tom, a terminologia do domínio e a estrutura das frases. Isso gera resultados de maior qualidade em comparação com serviços que traduzem frase por frase, especialmente para textos técnicos, acadêmicos e criativos. + +O recurso suporta três escopos: seleção, nota ativa e toda a pasta. Combinado com a seleção do modelo por tarefa, você pode usar um modelo rápido (Gemini Flash) para traduções casuais e um modelo poderoso (Claude Sonnet) para conteúdo sensível a nuances -- sem precisar alterar seu provedor global. + +## Como Funciona + +### O Comando Traduzir + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **Detecção de fonte** -- O LLM infere o idioma de origem a partir do conteúdo. Não é necessário especificá‑lo manualmente. +2. **Construção do prompt** -- Notemd cria um prompt que inclui o idioma de destino, uma dica opcional de domínio e o conteúdo a ser traduzido. +3. **Tradução LLM** -- O `translateProvider` / `translateModel` configurado processa o pedido. O modelo preserva a formatação em markdown, links wiki e blocos de código. +4. **Saída** -- O texto traduzido é anexado abaixo do original ou gravado em um novo arquivo no vault. + +### Pares de Idiomas + +Notemd suporta qualquer par de idiomas que o LLM subjacente suporte. Pares comuns incluem: + +| Fonte | Alvo | Qualidade típica | +|--------|--------|----------------| +| Inglês | Chinês (Simplificado) | Excelente | +| Chinês | Inglês | Excelente | +| Inglês | Japonês | Muito bom | +| Inglês | Alemão / Francês / Espanhol | Muito bom | +| Qualquer idioma suportado | Qualquer idioma suportado | Depende do modelo | + +A configuração `translateLanguage` controla o **idioma de saída**. O idioma de origem é detectado automaticamente. + +### Seleção de Modelo por Tarefa + +A qualidade da tradução varia significativamente conforme o modelo. O Notemd permite que você atribua um modelo dedicado apenas para traduções: + +| Modelo | Velocidade | Qualidade | Custo | Melhor para | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | Rápido | Bom | Baixo | Uso casual, alto volume | +| `gpt-4o-mini` | Rápido | Bom | Baixo | Consultas rápidas | +| `deepseek-chat` | Médio | Bom | Muito baixo | Multilíngue de orçamento | +| `claude-3-5-sonnet` | Médio | Excelente | Médio | Técnico / acadêmico | +| `gpt-4o` | Médio | Excelente | Médio | Prosa sensível a nuances | + +### Tradução de pasta em lote + +Clique com o botão direito em uma pasta e selecione **"Notemd: Traduzir pasta"** para traduzir todas as anotações nessa pasta. Cada arquivo é processado independentemente. A configuração de concorrência controla quantos arquivos são traduzidos simultaneamente. + +## Configuração + +| Parâmetro | Padrão | Efeito | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | Fornecedor dedicado para tarefas de tradução | +| `translateLanguage` | `'en'` | Idioma de saída | +| `translationAppendToNote` | `true` | Adicione o texto traduzido abaixo do original. Se for false, será criado um novo arquivo. | +| `batchConcurrency` | `3` | Número de arquivos processados simultaneamente durante a tradução em lote | + +## Exemplo + +Você está lendo uma nota de pesquisa em chinês e deseja uma versão em inglês: + +1. Abra a nota +2. Clique com o botão direito --> **"Notemd: Traduzir arquivo atual"** +3. Notemd detecta o chinês, traduz para o idioma de destino configurado (inglês) e adiciona: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +O texto chinês original permanece intacto acima da tradução. O cabeçalho `## Translation` mantém ambas as versões no mesmo arquivo para fácil referência. + +## Dicas + +- **Use Gemini Flash para grandes volumes** -- é a opção mais rápida e econômica para tradução em lote de pastas grandes. +- **Manter links da wiki** -- O comando de Notemd instrui o LLM a deixar `[[wiki-links]]` intacto na tradução. Verifique após a tradução, pois alguns modelos às vezes os desempacotam. +- **Definir explicitamente o idioma de saída** -- A detecção automática funciona para o texto de origem, mas configure sempre `translateLanguage` para evitar ambiguidades quanto ao destino. +- **Traduzir em lote notas conceituais** -- Se sua pasta de conceitos estiver em um idioma e você precisar dela em outro, a tradução em nível de pasta resolve isso em um único passo. + +--- + +## Próximos passos + +- [Pesquisa](./research) -- Pesquise e resuma em qualquer idioma, depois traduza os resultados +- [Fluxos de trabalho](./workflows) -- Encadeie traduções com links da wiki ou extração de conceitos +- [Processamento em lote](/docs/advanced/batch-processing) -- Comportamento de concorrência e sobrescrita para operações em pastas +- [LLM Fornecedores](/docs/providers/overview) -- Escolha o melhor modelo para seu par de idiomas diff --git a/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..ed5ca41a --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "Wiki-Links" +description: "Geração automática de links wiki para conceitos-chave" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# Wiki-Links + +<TLDR> +**Notemd adiciona automaticamente `[[wiki-links]]` aos conceitos-chave em suas anotações.** O LLM lê seu conteúdo, identifica termos importantes no contexto e insere links wiki no estilo Obsidian em cada ocorrência. Opcionalmente cria arquivos de notas de conceito com backlinks. Suporta supressão de sinônimos, integridade dos links ao renomear/excluir e modo de extração pura (sem modificação de arquivos). Diferentemente do Auto Link, que apenas corresponde a títulos de anotações existentes, Notemd utiliza IA para identificar novos conceitos e criar as anotações correspondentes. Isso faz parte do [Obsidian Guia de Gestão de Conhecimento com IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Visão Geral + +A criação de links wiki é a funcionalidade principal do Notemd. Ela transforma texto simples em um grafo de conhecimento interconectado por meio de: + +1. **Analisando sua anotação** com um LLM +2. **Identificando conceitos-chave** (termos, pessoas, métodos, teorias) +3. **Inserindo `[[wiki-links]]`** em cada ocorrência +4. **Criando notas de conceito** (opcional) com backlinks + +## Como Funciona + +### Processo + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### Exemplo + +**Antes:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**Depois:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## Uso + +### Básico: Adicionar links à anotação atual + +1. Abra uma nota +2. Clique com o botão direito no editor → **"Processar arquivo (adicionar links)"** +3. Aguarde alguns segundos +4. Os conceitos agora estão vinculados! + +### Lote: Processar Várias Anotações + +1. Clique com o botão direito em uma pasta no explorador de arquivos +2. Selecione **"Notemd: Processar pasta (adicionar links)"** +3. Configurar: + - Concorrência (quantos arquivos em paralelo) + - Sobrescrever links existentes (sim/não) +4. Clique em **Processar** + +### Seletivo: Vincular Texto Específico + +1. Destacar o texto a ser processado +2. Clique com o botão direito → **"Processar seleção (adicionar links)"** +3. Apenas a parte destacada é analisada + +## Notemd vs Link Automático + +Obsidian possui duas abordagens para vinculação automática em wiki: + +| | **Link Automático** | **Notemd** | +|--|---------------|-------------| +| Fonte do link | Títulos de anotações existentes no vault | Conceitos identificados por LLM no conteúdo | +| Pode criar links para novos conceitos | Não — o título já deve existir | Sim — a IA identifica conceitos e cria notas | +| Tratamento de sinônimos | Não | Sim — supressão de sinônimos | +| Criação de nota de conceito | Não | Sim — com backlinks e eliminação de duplicatas | +| Processamento em lote | Não (arquivo único) | Sim (nível de pasta) | +| Roteamento de modelo por tarefa | Não | Sim | + +**Auto Link** faz correspondência de título: se houver uma nota chamada "Machine Learning", ela envolve as ocorrências em `[[Machine Learning]]`. Se a nota não existir, nada acontece. + +**Notemd** é controlado pela IA: o LLM lê seu conteúdo, entende o contexto, identifica conceitos que *deveriam* ser vinculados — mesmo que ainda não haja nota — e cria tanto o link quanto a nota de conceito. + +## Recursos + +### Supressão de Sinônimos + +**Problema:** "transformer", "transformers", "Transformer architecture" → 3 conceitos separados + +**Solução:** Notemd detecta quase duplicatas e utiliza a forma canônica. + +**Configuração:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### Integridade do link + +**Ao renomear uma nota conceitual:** +- Todos os links da wiki são atualizados automaticamente (Obsidian recurso principal) +- Os backlinks permanecem intactos + +**Ao excluir uma nota conceitual:** +- Os links permanecem, mas aparecem como "menções desvinculadas" +- É possível recriá‑la a partir de qualquer ocorrência + +### Modo de extração pura + +**Extraia conceitos sem modificar o original:** + +1. Clique com o botão direito → **"Extrair conceitos (sem vinculação)"** +2. As notas conceituais são criadas +3. O arquivo original permanece inalterado + +Caso de uso: Processamento de conteúdo somente leitura ou rascunhos finais. + +## Geração de Nota Conceitual + +### Criação automática + +**Quando ativado (padrão), Notemd cria:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### Configuração + +**Pasta de saída:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Estrutura hierárquica:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**Modelo:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## Opções Avançadas + +### Janela de Contexto + +**Quantidade de texto ao redor a ser enviado:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +Mais = maior precisão, custo mais alto. + +### Ocorrências Mínimas + +**Somente vincular conceitos que aparecem várias vezes:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +Defina como 2 ou 3 para focar em temas recorrentes. + +### Padrões a Excluir + +**Ignorar certas palavras:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +Impede o vinculamento excessivo de termos genéricos. + +### Prompts Personalizados + +**Sobrescrever as instruções padrão do LLM:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +Modifique conforme necessidades específicas do domínio (por exemplo, "Foco em terminologia médica"). + +## Dicas e Melhores Práticas + +### ✅ FAÇA + +- **Processe notas com mais de 100 palavras** — Notas curtas apresentam poucos conceitos +- **Use modelos poderosos** para uma melhor identificação de conceitos (GPT-4o, Claude) +- **Revise antes de aceitar** — Verifique se os links sugeridos fazem sentido +- **Construa de forma iterativa** — Processe de 5 a 10 notas, revise o grafo e ajuste as configurações + +### ❌ NÃO FAÇA + +- **Excesso de links** — Nem todo substantivo precisa de um link +- **Processe rascunhos repetidamente** — Os conceitos podem mudar, aguarde até que fiquem estáveis +- **Ignore sinônimos** — Ative a supressão para evitar "ML" vs "Machine Learning" + +## Desempenho + +### Velocidade + +| Tamanho da Nota | GPT-4o-mini | Claude Sonnet | Ollama (local) | +|-----------|-------------|---------------|----------------| +| 500 palavras | 2-3 segundos | 3-5 segundos | 5-10 segundos | +| 2000 palavras | 5-8 segundos | 10-15 segundos | 20-40 segundos | +| 5000+ palavras | Em blocos (várias chamadas) | Em blocos | Em blocos | + +### Estimativa de Custo + +**Exemplo: nota de 1000 palavras com GPT-4o-mini** +- Entrada: ~1500 tokens +- Saída: ~200 tokens +- Custo: ~ + +**Processamento em lote de 100 notas:** ~ + +## Solução de problemas + +### Nenhum link adicionado + +**Verificar:** +1. LLM A chamada foi bem-sucedida (Configurações → Diagnóstico) +2. A nota tem conteúdo suficiente (>50 palavras) +3. Os conceitos são técnicos/específicos (não apenas pronomes) + +**Tente:** +- Use um modelo mais poderoso +- Aumentar a janela de contexto +- Verificar a validade da chave API + +### Muitos links + +**Soluções:** +1. Aumentar o número mínimo de ocorrências (2 ou 3) +2. Adicionar palavras comuns à lista de exclusão +3. Use um modelo menos agressivo + +### Conceitos incorretos vinculados + +**Correções:** +1. Use um prompt personalizado para especificidade de domínio +2. Habilite a supressão de sinônimos +3. Revise manualmente e desvincule + +### Os links quebram após renomear + +**Esse é um comportamento normal Obsidian.** + +Para atualizar todos os links: +1. Renomeie a nota conceitual +2. Obsidian atualiza automaticamente `[[old]]` → `[[new]]` + +--- + +## Próximos passos + +- 📖 [Notas Conceituais](./concept-notes) — Análise aprofundada da geração de notas conceituais +- 🔍 [Integração de Pesquisa](./research) — Combine vinculação com pesquisa na web +- 🎨 [Diagramas](./diagrams) — Visualize seu grafo de conhecimento diff --git a/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..883557b5 --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "Fluxos de trabalho" +description: "Conecte várias tarefas com botões de um clique" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Fluxos de trabalho + +<TLDR> +**Notemd fluxos de trabalho conectam várias tarefas em uma única ação de um clique.** Defina sequências como `add-links > extract-concepts > research > diagram` usando uma DSL simples. Os fluxos de trabalho aparecem como botões na barra lateral que executam toda a cadeia na nota ou pasta atual. Vêm com fluxos de trabalho pré-definidos; crie outros personalizados nas configurações. Cada etapa utiliza sua própria configuração de modelo por tarefa. + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Visão Geral + +Um fluxo de trabalho elimina a dificuldade de executar tarefas uma por uma. Em vez de clicar com o botão direito quatro vezes para adicionar links, extrair conceitos, pesquisar termos desconhecidos e gerar um diagrama, basta pressionar um botão na barra lateral e toda a cadeia é executada. Notemd cuida da sequenciamento, propagação de erros e relatórios de progresso. + +Os fluxos de trabalho são definidos em uma DSL leve (linguagem específica do domínio). Eles ficam nas configurações, aparecem como botões clicáveis na barra lateral de Obsidian e podem ser aplicados à nota atual ou a uma pasta inteira. + +## Como Funciona + +### Pipeline de Execução de Fluxos de Trabalho + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **Parse** -- A string da DSL é dividida em `>` (ou `>`) para obter uma lista ordenada de identificadores de tarefa. +2. **Resolve** -- Cada identificador corresponde a um comando interno (add-links, extract-concepts, research, translate, diagram, etc.). +3. **Execute** -- As etapas são executadas sequencialmente. Cada etapa utiliza o provedor e modelo configurados para aquela tarefa. +4. **Tratamento de erros** -- Se uma etapa falhar, o fluxo de trabalho pode ser interrompido ou continuar para a próxima etapa, dependendo da política de erro definida. +5. **Done** -- Uma notificação aparece para informar o sucesso ou listar quaisquer etapas que falharam. + +### Formato da DSL + +Os fluxos de trabalho são definidos como uma sequência de identificadores de tarefa separados por `>`: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**Identificadores de tarefa disponíveis:** + +| Identificador | Ação | +|------------|--------| +| `process-current-add-links` | Adicionar links da wiki à nota ativa | +| `extract-concepts-current` | Extrair conceitos da nota ativa | +| `research-and-summarize` | Pesquisar o texto selecionado ou o título da nota | +| `process-current-translate` | Traduzir a nota ativa | +| `summarize-to-mermaid` | Gerar um diagrama a partir da nota ativa | +| `generate-from-title` | Gerar conteúdo a partir do título da nota | +| `extract-original-text` | Extrair o texto original (para OCR / conteúdo escaneado) | + +**Variantes em nível de pasta** substituem `current` por `folder` no nome do identificador. + +### Fluxos de trabalho predefinidos versus personalizados + +Notemd vem com fluxos de trabalho prontos para padrões comuns: + +| Fluxo de trabalho | Cadeia | Caso de Uso | +|----------|-------|----------| +| **Extração com um clique** | adicionar-links > extrair-conceitos > pesquisar | Processar um artigo científico em uma única etapa | +| **Pipeline completo** | adicionar-links > extrair-conceitos > pesquisar > diagrama | Extração completa de conhecimento com visualização | +| **Traduzir + Link** | traduzir > adicionar-links | Traduzir e depois vincular conceitos na língua alvo | + +**Fluxos de trabalho personalizados** são criados nas configurações: + +1. Abrir **Configurações** --> **Notemd** --> **Fluxos de trabalho** +2. Clicar em **"Adicionar Fluxo de Trabalho"** +3. Inserir a cadeia DSL (por exemplo, `process-current-add-links>extract-concepts-current`) +4. Dar um nome de exibição (por exemplo, "Link Rápido + Extrair") +5. O novo botão aparece imediatamente na barra lateral + +## Configuração + +| Parâmetro | Padrão | Efeito | +|---------|---------|--------| +| `workflows` | Conjunto predefinido | Array de definições de fluxo de trabalho (nome + DSL) | +| `workflowContinueOnError` | `true` | Continuar para a próxima etapa se a atual falhar | +| `workflowShowProgress` | `true` | Exibir uma notificação de progresso após cada etapa ser concluída | + +### Modelos por Tarefa nos Fluxos de Trabalho + +Cada etapa em um fluxo de trabalho utiliza sua própria configuração de modelo por tarefa. Não é necessário especificar modelos na própria DSL. A ordem de resolução é: + +1. O provedor/modelo por tarefa, caso `useMultiModelSettings` esteja disponível +2. O `activeProvider` global, caso contrário + +Isso significa que `add-links` pode ser executado em DeepSeek enquanto `research` é executado no GPT-4o -- tudo dentro do mesmo clique do fluxo de trabalho. + +## Exemplo + +Você acabou de importar um PDF de um artigo de aprendizado de máquina para o seu vault e deseja extração completa de conhecimento: + +1. Abra a nota importada +2. Clique no botão da barra lateral **"Full Pipeline"** +3. Notemd é executado: + - **Etapa 1**: Adicionar links da wiki -- `[[attention mechanism]]`, `[[transformer]]`, etc. + - **Etapa 2**: Extrair conceitos -- cria notas de conceito na sua pasta de conceitos + - **Etapa 3**: Pesquisar -- resume fontes da web para termos-chave + - **Etapa 4**: Diagrama -- gera um mapa mental Mermaid da estrutura do artigo +4. Após cerca de 30 segundos, sua nota terá links, as notas de conceito estarão disponíveis, a pesquisa será anexada e um arquivo de diagrama será salvo + +Tudo isso com apenas um clique. + +## Dicas + +- **Comece com fluxos de trabalho predefinidos** -- eles cobrem os padrões mais comuns. Personalize somente quando precisar de uma sequência diferente. +- **Ative `workflowContinueOnError`** -- um erro na etapa de diagrama não deve interromper todo o pipeline. +- **Use fluxos de trabalho de pasta** para processamento em lote -- clique com o botão direito em uma pasta, escolha um fluxo de trabalho e todas as anotações serão processadas. +- **Dê nomes claros aos fluxos de trabalho** -- o espaço na barra lateral é limitado. Use nomes curtos e orientados a ação, como "Extração Rápida" ou "Traduzir + Link". + +--- + +## Próximos passos + +- [Pesquisa](./research) -- Entenda o que a etapa de pesquisa faz antes de adicioná‑la aos fluxos de trabalho +- [Links da Wiki](./wiki-links) -- Recurso básico de vinculação usado na maioria dos fluxos de trabalho +- [Notas Conceituais](./concept-notes) -- Extração de conceitos como etapa de um fluxo de trabalho +- [Processamento em Lote](/docs/advanced/batch-processing) -- Concorrência e relatórios de progresso para fluxos de trabalho de pasta diff --git a/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..a1b0d60e --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "Configuração" +description: "Configure as configurações e preferências de Notemd" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Configuração + +<TLDR> +**A configuração Notemd abrange 6 áreas principais:** (1) provedores LLM e chaves API, (2) seleção do modelo por tarefa, (3) caminhos e modelos de saída, (4) idioma UI e idioma de saída, (5) serviços de busca (Tavily/DuckDuckGo), (6) fluxos de trabalho personalizados. Todas as configurações ficam em Obsidian Settings → Notemd. As alterações entram em vigor imediatamente. +</TLDR> + +## Visão Geral das Configurações + +Acesso: **Obsidian Settings (⚙️) → Notemd** + +### Seções Principais + +1. **Configuração do Provedor** — chaves API, base URLs, modelos +2. **Configurações da Tarefa** — seleção do modelo por tarefa +3. **Configuração de Saída** — onde salvar os arquivos gerados +4. **Configurações de Idioma** — UI e idiomas de saída +5. **Integração de Busca** — configuração Tavily/DuckDuckGo +6. **Fluxos de Trabalho** — cadeias personalizadas de botões +7. **Avançado** — diagnósticos, processamento em lote, chunking + +--- + +## 1. Configuração do Provedor + +### Adicionando um Provedor + +1. **Selecione o provedor** na lista suspensa (mais de 30 disponíveis) +2. **Insira a chave API** +3. **Opcional**: Defina uma base personalizada URL (para proxies/gateways) +4. **Clique em "Obter Lista de Modelos"** para verificar a conexão +5. **Selecione o modelo padrão** + +### Provedores Comuns + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Local) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### Vários Provedores + +É possível configurar vários provedores e alternar entre eles por tarefa: +- **Provedor principal**: Usado como fallback +- **Provedores específicos da tarefa**: Substituem para tarefas específicas + +--- + +## 2. Modelos Específicos da Tarefa + +Configure modelos diferentes para tarefas distintas a fim de otimizar custo/qualidade: + +### Tipos de Tarefa + +| Tarefa | Modelo Padrão | Finalidade | +|------|--------------|---------| +| **Vinculação** | Provedor Principal | Identificar conceitos para links da wiki | +| **Geração de Conceitos** | Fornecedor principal | Extrair e descrever conceitos | +| **Pesquisa** | Fornecedor principal | Resumir resultados de busca na web | +| **Tradução** | Fornecedor principal | Traduzir texto | +| **Geração de Diagramas** | Fornecedor principal | Gerar diagramas Mermaid/Canvas | + +### Exemplo: Configuração otimizada em termos de custo + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### Como configurar + +1. **Configurações → Notemd → Configurações da tarefa** +2. Para cada tarefa, escolha: + - ✅ **Usar o fornecedor principal** (padrão) + - 🔄 **Usar fornecedor personalizado** → selecionar fornecedor + modelo + +--- + +## 3. Configuração de saída + +### Saída das notas dos conceitos + +**Onde as notas de conceito novas são salvas:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Modelo:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### Opções de Estrutura de Pastas + +**Opção 1: Plana (todos os conceitos em uma única pasta)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**Opção 2: Hierárquica (por pasta de origem)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +Configurar: **Configurações → Saída → Usar Pastas Hierárquicas** + +### Saída do Diagrama + +**Onde os diagramas são salvos:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**Formato:** +- `.mmd` (Mermaid origem) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. Configurações de Idioma + +### UI Idioma + +**Idioma da interface** (botões, menus, diálogos): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +Suportados: Inglês, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Русский, العربية e mais. + +### Idioma de Saída + +**Linguagem do conteúdo gerado** (notas conceituais, resumos de pesquisa): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**Caso de uso:** Chinês UI + saída em inglês para pesquisas bilíngues. + +### Alvo de tradução + +**Linguagem alvo padrão** para tarefas de tradução: + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. Integração de busca + +### Tavily (Recomendado) + +**Serviço de busca otimizado por IA:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +Obter chave: [tavily.com](https://tavily.com/) + +**Recursos:** +- Resultados de alta qualidade +- Resumos otimizados por IA +- Citações da fonte + +### DuckDuckGo (Experimental) + +**Nenhuma chave API necessária:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**Observação:** Qualidade inferior, sem personalização. + +--- + +## 6. Configuração do fluxo de trabalho + +### Criando fluxos de trabalho personalizados + +**Os fluxos de trabalho conectam várias tarefas em um único botão.** + +1. **Configurações → Fluxos de trabalho → Adicionar fluxo de trabalho** +2. **Nome**: "Fluxo de Análise de Papel" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **Salvar** + +Um novo botão aparece na barra lateral esquerda. + +### Sintaxe do DSL + +**Formato:** `action1>action2>action3` + +**Ações disponíveis:** +- `process-current-add-links` — Adicionar links da wiki à nota atual +- `extract-concepts-current` — Gerar notas conceituais +- `research-and-summarize` — Pesquisa na web + resumo +- `translate-current` — Traduzir a nota atual +- `summarize-as-mermaid` — Gerar diagrama Mermaid +- `process-folder-add-links` — Processar pastas em lote + +**Exemplos de fluxos de trabalho:** + +**Extração Rápida de Conceitos:** +``` +process-current-add-links>extract-concepts-current +``` + +**Pesquisa Profunda:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**Análise Multilíngue:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. Configurações Avançadas + +### Processamento em Lote + +**Processar vários arquivos em paralelo:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +Quanto maior, mais rápido, mas mais chamadas API. + +### Fragmentação Inteligente + +**Para notas longas, divida em fragmentos:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +Impede erros de limite de token. + +### Painel de diagnósticos + +**Visualizar logs detalhados:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +Mostra: +- API solicitações/respostas +- Uso de tokens +- Tempos de processamento +- Erros + +### Detecção de Conceitos Duplicados + +**Evite conceitos quase idênticos:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +Quanto maior, mais agressiva é a fusão. + +--- + +## Perfis de Configuração + +### Configurações de Exportação/Importação + +**Compartilhe configurações entre dispositivos:** + +1. **Configurações → Avançado → Exportar Configuração** +2. Salva `notemd-config.json` +3. Em novo dispositivo: **Importar Configuração** + +**O que está incluído:** +- Chaves do provedor API (opcional) +- Seleções de modelo +- Caminhos de saída +- Fluxos de trabalho personalizados + +--- + +## Configurações Recomendadas + +### Para Estudantes + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### Para Pesquisadores + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### Para usuários preocupados com privacidade + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### Para trabalho bilíngue + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## Solução de problemas de configuração + +### As configurações não foram salvas +- Verifique as permissões do arquivo em `.obsidian/plugins/notemd/` +- Tente: Desativar o plugin → Reativá-lo + +### Chave API inválida +- Sem espaços extras +- Verifique a data de expiração +- Verifique os créditos no painel do provedor + +### Os modelos não estão sendo carregados +- Clique em "Obter lista de modelos" para atualizar +- Verifique a conectividade da rede +- Tente outro provedor + +--- + +## Próximos passos + +- 📖 [Explorar recursos](../features/wiki-links) +- 🔌 [Guias de configuração do provedor](../providers/overview) +- ❓ [Perguntas Frequentes](../faq) diff --git a/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..489fad52 --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "Instalação" +description: "Como instalar Notemd em Obsidian" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Instalação + +<TLDR> +**Instale Notemd em menos de 2 minutos.** Duas maneiras: (1) Plugins da comunidade Obsidian (recomendado, instalação com um clique), ou (2) Instalação manual por meio dos GitHub Releases. Requer Obsidian 0.15.0+. Funciona em Windows, macOS, Linux, iOS e Android. Sem dependências externas. Mais de 4k downloads, licenciado sob MIT. +</TLDR> + +## Método 1: Plugins da comunidade (Recomendado) + +1. Abra as **Configurações do Obsidian** (ícone ⚙️ ou `Ctrl/Cmd + ,`) +2. Vá até **Plugins da comunidade** +3. Clique em **Navegar** +4. Procure por **"Notemd"** +5. Clique em **Instalar** +6. Clique em **Ativar** + +**Pronto!** Você verá o ícone do Notemd na barra lateral esquerda. + +## Método 2: Instalação manual + +### Pré-requisitos +- Obsidian 0.15.0 ou superior +- Git (opcional, para clonar) + +### Passos + +1. **Baixe os arquivos** de [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest): + - `main.js` + - `styles.css` + - `manifest.json` + +2. **Localize a pasta de plugins do seu vault:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +Se a pasta `plugins` não existir, crie-a. + +3. **Crie a pasta Notemd:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **Copie os três arquivos** para a pasta `notemd`. + +5. **Recarregue Obsidian:** + - Pressione `Ctrl/Cmd + R` ou + - Reinicie Obsidian + +6. **Ative o plugin:** + - Configurações → Plugins da comunidade + - Encontre "Notemd" na lista + - Habilite-o + +## Alternativa: Instale por meio de BRAT + +Se você usar o [BRAT plugin](https://github.com/TfTHacker/obsidian42-brat): + +1. Abra as configurações de BRAT +2. Clique em "Adicionar plugin Beta" +3. Insira: `Jacobinwwey/obsidian-NotEMD` +4. Clique em "Adicionar Plugin" +5. Habilite Notemd nos plugins da comunidade + +## Verificação + +Após a instalação, verifique se Notemd está funcionando: + +1. Abra qualquer nota +2. Clique com o botão direito no editor +3. Você deve ver comandos Notemd como: + - "Processar arquivo (adicionar links)" + - "Extrair conceitos" + - "Pesquisar e resumir" + +## Próximos passos + +- **Configure o provedor LLM:** [Início Rápido →](./quick-start) +- **Solução de problemas:** [Problemas Comuns →](../advanced/troubleshooting) + +## Requisitos do sistema + +| Plataforma | Versão | Status | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | Necessário | +| **Windows** | 7+ | ✅ Suportado | +| **macOS** | 10.15+ | ✅ Suportado | +| **Linux** | Qualquer | ✅ Suportado | +| **iOS** | 15+ | ✅ Suportado | +| **Android** | 5+ | ✅ Suportado | + +## Desinstalação + +Para remover Notemd: + +1. Configurações → Plugins da comunidade +2. Localize "Notemd" +3. Clique no ícone ❌ +4. Opcionalmente, exclua a pasta do plugin: `<vault>/.obsidian/plugins/notemd/` + +Seus dados (anotações, notas conceituais, etc.) permanecem intactos. + +## Atualizando + +### Atualização automática (Recomendado) +Obsidian verifica automaticamente se há atualizações de plugins. Quando uma nova versão estiver disponível: +1. Configurações → Plugins da comunidade +2. Clique em "Verificar atualizações" +3. Clique em "Atualizar" ao lado de Notemd + +### Atualização manual +Baixe a versão mais recente e substitua os três arquivos na sua pasta de plugins. + +## Obter ajuda + +- 📖 [Guia Rápido de Início](./quick-start) +- ❓ [Perguntas Frequentes](../faq) +- 💬 [Comunidade do Discord](https://discord.gg/qnGgsQ9W) +- 🐛 [Relatar Problemas](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..0d1c2c20 --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "Guia Rápido de Início" +description: "Comece a usar Notemd em 5 minutos" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Guia Rápido de Início + +<TLDR> +**Comece a utilizar Notemd em 5 minutos.** Três passos: (1) Adicione uma chave LLM API (ou use Ollama local), (2) Abra uma anotação e execute "Processar arquivo (adicionar links)", (3) Explore fluxos de trabalho com um clique na barra lateral. Suporta mais de 30 provedores. Não é necessário codificar. Funciona off-line com Ollama. +</TLDR> + +## Passo 1: Configure seu primeiro provedor LLM (2 min) + +### Opção A: Provedor em nuvem (OpenAI, Anthropic, etc.) + +1. Abra **Configurações** → **Notemd** +2. Em **Configuração do Provedor LLM**, selecione um provedor na lista suspensa +3. Insira sua **Chave API** +4. (Opcional) Clique em **"Obter lista de modelos"** para ver os modelos disponíveis +5. Selecione um modelo para cada tipo de tarefa + +**Escolhas populares:** +- **OpenAI**: `gpt-4o-mini` (rápido, acessível) +- **Anthropic**: `claude-sonnet-4-6` (alta qualidade) +- **DeepSeek**: `deepseek-chat` (muito acessível) + +### Opção B: Ollama local (não é necessária chave API) + +1. Instalar [Ollama](https://ollama.com/) +2. Baixar um modelo: `ollama pull llama3.1` +3. Nas configurações de Notemd, selecione **"Ollama"** como provedor +4. Nome do modelo: `llama3.1` (ou qualquer modelo que você tenha baixado) + +## Passo 2: Teste sua primeira tarefa (1 min) + +### Adicionar links da Wiki a uma nota + +1. Abra qualquer nota com conteúdo significativo +2. Clique com o botão direito no editor +3. Selecione **"Processar arquivo (adicionar links)"** +4. Aguarde alguns segundos +5. Os conceitos principais estão agora `[[wiki-linked]]`! + +**Exemplo:** + +**Antes:** +``` +Machine learning models use neural networks to process data. +``` + +**Depois:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## Passo 3: Explore os recursos (2 min) + +### Extrair notas de conceito + +1. Clique com o botão direito → **"Extrair conceitos do arquivo atual"** +2. Notemd cria arquivos separados para cada conceito +3. Verifique a pasta de conceitos configurada (padrão: `concepts/`) +4. Cada nota de conceito possui um link de retorno para sua nota original + +### Pesquisar e Resumir + +1. Destacar um tópico na sua anotação +2. Clique com o botão direito → **"Pesquisar e resumir"** +3. Notemd faz buscas na web (Tavily ou DuckDuckGo) +4. O resumo é adicionado à sua anotação com as fontes + +### Fluxos de Trabalho de Um Clique + +1. Verifique a **barra lateral esquerda** para os botões de fluxo de trabalho +2. Clique em **"Extrair com um Clique"** em qualquer anotação +3. Ele executa: adicionar links → extrair conceitos → pesquisar → gerar diagrama +4. Tudo em um único clique! + +## Tarefas Iniciais Comuns + +### Tarefa 1: Processar um Artigo/Trabalho Acadêmico + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### Tarefa 2: Traduzir Anotações + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### Tarefa 3: Criar um Mapa de Conhecimento + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## Dicas de Personalização + +### Seleção de Modelo por Tarefa + +Você pode usar modelos diferentes para tarefas distintas: + +| Tarefa | Modelo Recomendado | Por quê | +|------|------------------|-----| +| Adicionar Links | `gpt-4o-mini`, `deepseek-chat` | Rápido, muitas chamadas | +| Extrair Conceitos | `claude-sonnet-4-6`, `gpt-4o` | Extração de Qualidade | +| Pesquisa | `perplexity`, `gpt-4o` | Baseado na Web | +| Tradução | `gemini-flash`, `gpt-4o` | Multilíngue | +| Diagramas | `claude-opus`, modelo local | Raciocínio Complexo | + +Configurar em: **Configurações → Notemd → Modelos Específicos para Tarefas** + +### Fluxos de Trabalho Personalizados + +Criar seu próprio botão: + +1. Configurações → Notemd → Fluxos de Trabalho +2. Clique em "Adicionar Fluxo de Trabalho" +3. Insira DSL: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. Nomeie como: "Meu Fluxo de Pesquisa" +5. Um novo botão aparece na barra lateral + +## Solução de problemas + +### "Chave API inválida" +- Verifique se a chave está correta (sem espaços extras) +- Confira se a conta tem créditos +- Teste com o botão "Teste de Conexão" nas configurações + +### "Modelo não encontrado" +- Clique em "Obter Lista de Modelos" para ver os modelos disponíveis +- Alguns provedores exigem nomes de modelo específicos (por exemplo, `gpt-4o` e não `gpt-4`) + +### Links não estão aparecendo +- Certifique‑se de que a nota tem conteúdo suficiente (>50 palavras) +- Tente um modelo mais potente +- Verifique se a chamada LLM foi bem‑sucedida (consulte o painel de diagnóstico) + +### Desempenho lento +- Use modelos mais rápidos (`gpt-4o-mini` em vez de `gpt-4o`) +- Reduza o tamanho do bloco nas configurações +- Habilitar processamento paralelo para tarefas em lote + +## Próximos passos + +- 📖 [Explorar todos os recursos](../features/wiki-links) +- ⚙️ [Configuração avançada](./configuration) +- 🔧 [Configuração do provedor LLM](../providers/overview) +- ❓ [Perguntas Frequentes](../faq) + +## Tutorial em vídeo + +Assista ao vídeo de introdução de 3 minutos (em chinês): +[【Totalmente open source e gratuito! Guia rápido de 3 minutos do NotEMD】](https://b23.tv/lqR0RlA) + +## Obter ajuda + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **Problemas**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **Documentação**: [Documentação completa](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..2b562f4c --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "Introdução ao Notemd" +description: "Construtor de base de conhecimento movido por IA para Obsidian, com transformações persistentes de notas, fluxos de trabalho e diagramas focados em especificações" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Introdução ao Notemd + +<TLDR> +**Notemd** (Nota + EMD — Documentos Markdown aprimorados) é um plugin de código aberto para Obsidian que transforma a leitura impulsionada por LLM em conhecimento persistente. Diferentemente da IA baseada em chat, onde as informações desaparecem após a sessão, Notemd grava os resultados **diretamente no seu vault** na forma de links wiki, notas conceituais, resumos de pesquisa, traduções, fluxos de trabalho e diagramas. Ele foi desenvolvido para pesquisadores, estudantes e profissionais de conhecimento que desejam que a leitura, a pesquisa e as explicações visuais se acumulem em um grafo de conhecimento estruturado e em constante evolução. +</TLDR> + +## O que é Notemd? + +Notemd integra **mais de 30 modelos de linguagem grandes** (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama e outros) ao seu fluxo de trabalho Obsidian para automatizar a extração de conhecimento, sua organização, tradução, pesquisa e geração de diagramas. + +### Diferença principal: conhecimento efêmero vs. conhecimento persistente + +| Aspecto | IA baseada em chat (ChatGPT, etc.) | Notemd | +|--------|-------------------------------|--------| +| **Para onde vão os resultados** | Histórico de conversa (desaparece) | Seu vault Obsidian (permanece) | +| **Formato** | Respostas em texto simples | Arquivos estruturados: `[[wiki-links]]`, notas conceituais, diagramas | +| **Valor a longo prazo** | É preciso perguntar novamente a cada vez | Acumula em um grafo de conhecimento | +| **Acesso off-line** | Requer internet | Funciona totalmente off-line com Ollama | + +## Recursos principais + +### 1. **Vinculação automática de Wiki** +- LLM identifica conceitos-chave em suas anotações +- Insere `[[wiki-links]]` em cada ocorrência +- Cria opcionalmente anotações de conceitos vinculados +- Supressão de sinônimos para evitar duplicatas + +### 2. **Geração de anotações de conceito** +- Extraí os conceitos principais de artigos, papers e anotações +- Gera arquivos de conceito dedicados com backlinks +- Caminhos de saída e modelos personalizáveis + +### 3. **Integração de pesquisa na web** +- Consulte Tavily ou DuckDuckGo diretamente dentro de Obsidian +- LLM resume os resultados com citações das fontes +- Adiciona os resultados da pesquisa à nota atual + +### 4. **Tradução Multilíngue** +- Traduz seleções ou notas inteiras +- Suporta mais de 21 UI idiomas +- Configuração independente do idioma de saída +- Suporte a tradução em lote + +### 5. **Geração de Diagramas** +- **Mermaid**: Fluxogramas, sequência, classe, estado, ER, Gantt +- **JSON Canvas**: layouts nativos Obsidian +- **Vega-Lite**: gráficos de dados, séries temporais, gráficos de dispersão +- **HTML / HTML editável/SVG**: artefatos de figura autônomos com anotações semânticas +- **Draw.io / limites do artefato Drawnix**: caminhos de exportação voltados para mantenedores a partir do mesmo modelo de figura semântica +- **Roteiro de diagramas de circuito**: o suporte circuitikz/TikZJax está sendo desenvolvido com base em referências padrão, prompts restritos, feedback de renderização e validação de topologia/layout, em vez de TikZ bruto e sem restrições +- **Diagnósticos de visualização**: os artefatos gerados podem exibir diagnósticos de compilação/renderização, e fontes não inline podem ser inspecionadas sem a necessidade de um ambiente LaTeX no lado do plugin +- Correção automática de sintaxe para erros Mermaid + +### 6. **Fluxos de Trabalho com Um Clique** +- Conectar várias ações em botões de barra lateral +- Definição de fluxo de trabalho baseado em DSL +- Exemplo: `add-links > extract-concepts > research > diagram` + +## Quem deve usar Notemd? + +✅ **Pesquisadores** que leem artigos e criam revisões bibliográficas +✅ **Estudantes** que organizam anotações de estudo e criam mapas conceituais +✅ **Trabalhadores do conhecimento** que querem que as percepções de leitura sejam armazenadas +✅ **Profissionais bilíngues** que precisam de tradução + links para wiki +✅ **Usuários preocupados com privacidade** que desejam suporte local LLM (Ollama) +✅ **Usuários avançados** que personalizam prompts e fluxos de trabalho + +## Por que Notemd + Obsidian? + +**Obsidian** é uma base de conhecimento focada no local, baseada em markdown. **Notemd** adiciona superpoderes de IA: +- Seus dados ficam em seu cofre (não em um serviço em nuvem) +- Funciona off-line com modelos locais +- Gratuito e de código aberto (licença MIT) +- Integra‑se aos plugins Obsidian existentes +- Escala para dezenas de milhares de notas + +## Introdução + +1. **Instalar**: Configurações → Plugins da Comunidade → Navegar → "Notemd" +2. **Configurar**: Adicione a chave do provedor LLM API (ou use o Ollama local) +3. **Testar**: Abra uma nota → Clique com o botão direito → "Processar arquivo (adicionar links)" +4. **Explorar**: Verifique a barra lateral para fluxos de trabalho com um clique + +👉 [Guia de Instalação](./getting-started/installation) | [Tutorial Rápido](./getting-started/quick-start) + +## Direção da Capacidade de Diagramas + +O trabalho com diagramas do Notemd está se afastando de "pedir ao modelo que escreva uma única string de sintaxe" e indo em direção a um pipeline em camadas: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +A implementação atual já suporta Mermaid, JSON Canvas, Vega-Lite, fallback HTML, HTML/SVG editáveis, artefatos Draw.io XML, um subconjunto mínimo de Drawnix JSON, diagnósticos de pré-visualização/fallback apenas de código-fonte, e um protótipo offline do `CircuitSpec -> circuitikz` para modelos de fonte comum e inversores CMOS. Diagramas de circuito são uma classe mais difícil: o circuitikz pode expressar topologia elétrica precisa, mas a saída irrestrita do LLM costuma gerar roteamento ilegível ou LaTeX que não é renderizado. A próxima direção é manter o circuitikz restrito com modelos de referência dourada, regras de layout em grade de nós, diagnósticos de renderização e ciclos de feedback de captura de tela. + +Leia os detalhes em [Diagramas](./features/diagrams). + +## Arquitetura + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd vs Outros Plugins de IA Obsidian + +A maioria dos plugins de IA Obsidian é focada em conversação (você pergunta, a IA responde, as informações ficam no chat). O Notemd é **focado em escrita**: a IA processa suas notas e escreve resultados estruturados diretamente em seu vault. + +| Capacidade | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| Inserção automática de link wiki | Sim | Não | Não | Não | +| Geração de nota conceitual | Sim (com backlinks + deduplicação) | Não | Não | Não | +| Geração de diagramas | Sim (Mermaid, Canvas, Vega-Lite, HTML, artefatos editáveis) | Não | Não | Não | +| Integração com pesquisa na web | Sim (Tavily + DuckDuckGo) | Não | Não | Não | +| Processamento em lote de pastas | Sim | Limitado | Não | Limitado | +| Roteamento de modelo por tarefa | Sim (7 tarefas, modelos independentes) | Não | Não | Não | +| Cadeias de fluxo de trabalho com um clique | Sim (DSL) | Não | Não | Não | +| Tradução em lote | Sim | Não | Não | Não | +| Bate-papo com o vault | Não | Sim | Não | Não | +| Busca por similaridade semântica | Não | Não | Sim | Não | +| Geração baseada em templates | Não | Não | Não | Sim | +| Fornecedores LLM | 36 (nuvem + gateway + local) | 3-5 | 2-3 | 3-5 | +| Totalmente offline | Sim (Ollama) | Parcial | Parcial | Parcial | + +**Quando escolher Notemd**: você deseja que a IA crie um grafo de conhecimento persistente — e não apenas converse sobre suas anotações. + +**Quando escolher Copilot**: você quer um assistente de IA conversacional dentro de Obsidian. + +**Quando escolher Smart Connections**: você deseja descobrir relações existentes entre anotações por meio de busca semântica. + +## Filosofia + +**Notemd acredita que a IA deve complementar o trabalho de conhecimento humano, e não substituí‑lo.** O plugin: +- Mantém você no controle (revisão antes de aplicar alterações) +- Preserva o contexto (todos os resultados remetem à fonte) +- Respeita a privacidade (suporte local LLM, sem telemetria) +- Permanece extensível (arquivos API abertos, fluxos de trabalho personalizados) + +## Código Aberto + +- **Licença**: MIT +- **Fonte**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **Comunidade**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **Contribuir**: PRs bem-vindos, consulte [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +**Próximo**: [Instalação →](./getting-started/installation) diff --git a/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..324a24db --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Obsidian Guia de Gestão de Conhecimento com IA" +description: "Guia completo para criar uma base de conhecimento interconectada com IA — desde links de wiki e extração de conceitos até pesquisa, tradução e geração de diagramas" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Obsidian Guia de Gestão de Conhecimento com IA + +<TLDR> +**Notemd transforma a leitura impulsionada por LLM em conhecimento persistente: links de wiki conectam conceitos, notas de conceito criam um grafo recuperável, a pesquisa traz informações da web para o seu repositório, a tradução quebra barreiras linguísticas, os diagramas tornam a estrutura visível e os fluxos de trabalho unem tudo com um único clique.** Este guia abrange todo o processo — desde notas brutas até uma base de conhecimento interconectada, visual e multilíngue. +</TLDR> + +## Por que Gestão de Conhecimento com IA? + +A anotação tradicional gera arquivos planos. Mesmo com links de wiki manuais, a maioria das notas permanece desconectada. Notemd utiliza LLMs para automatizar a camada de conexão: + +- **LLMs leem seu conteúdo** e identificam o que é importante — termos, métodos, pessoas, teorias +- **Os links são inseridos automaticamente** em cada ocorrência de conceito, sem ficarem escondidos em "ver também" +- **Notas de conceito são geradas** como arquivos independentes e recuperáveis +- **A pesquisa enriquece as notas** com contexto proveniente da web +- **Os diagramas tornam a estrutura visível** — mapas mentais, fluxogramas, gráficos de dados a partir do mesmo conteúdo + +O resultado: um grafo de conhecimento que cresce a cada nota que você processa, e não apenas quando se lembra de adicionar links. + +## O Processo Completo + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +Cada etapa é independente. Use uma ou todas. A sequência mais eficaz: **Adicionar Links → Notas de Conceito → Diagramas**. + +--- + +## 1. Links de Wiki: Tornando as Conexões Explícitas + +Links de wiki são a espinha dorsal de um grafo de conhecimento. Notemd utiliza um LLM para: + +1. Leia o conteúdo da sua nota (dividindo em partes para documentos longos) +2. Identifique os conceitos principais — dando prioridade a termos técnicos específicos em vez de substantivos genéricos +3. Insira `[[wiki-links]]` em cada ocorrência +4. Suprima sinônimos para que "ML" e "Machine Learning" não criem nós separados + +### Quando usar + +- **Todas as notas com mais de 100 palavras** — notas mais curtas geram poucos conceitos +- **Artigos de pesquisa, documentos técnicos, notas de reunião** — ricos em termos específicos do domínio +- **Depois que o conteúdo estiver estável** — não processe repetidamente rascunhos + +### Configurações principais + +| Parâmetro | Recomendado | Por quê | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek ou GPT-4o-mini | Boa precisão a baixo custo | +| Supressão de sinônimos | Ativado | Impede a criação de nós duplicados | +| Janela de contexto | Parágrafo | Equilíbrio entre precisão e custo | + +→ [Aprofundamento em links da Wiki](/docs/features/wiki-links) + +--- + +## 2. Notas conceituais: Nós de conhecimento recuperáveis + +Os links da Wiki conectam ideias de forma inline, mas as notas conceituais permitem que cada ideia seja recuperada independentemente. Cada conceito possui seu próprio arquivo `.md`: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### O processo de extração + +O prompt LLM é altamente estruturado: +- Normalizar para forma singular +- Preferir conceitos de várias palavras em vez de palavras únicas ("Relaxação dielétrica" e não "Relaxação") +- Ignorar seções de referências/bibliografia +- Gerar saída em linhas `CONCEPT:` para uma análise determinística + +Os conceitos são deduplicados entre os blocos por meio de `Set<string>`. Erros LLM em blocos individuais não interrompem a operação. + +### Backlinks + +Quando ativado, cada nota conceitual registra quais notas de fonte a mencionam. O painel de backlinks nativo do Obsidian também exibe conexões reversas. + +### Deduplicação + +O mecanismo de deduplicação em 4 etapas do Notemd detecta: +1. **Correspondências exatas** — comparação de nomes de arquivo insensível a maiúsculas e minúsculas +2. **Formas plurais** — "Models.md" vs "Model.md" +3. **Normalização de símbolos** — "A-B.md" vs "A B.md" +4. **Contenção de palavra única** — "ML.md" é marcado quando "Machine Learning.md" existe + +### Configurações da chave + +| Parâmetro | Recomendado | Por quê | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` ou `🧠 concepts/` | Mantém o vault organizado | +| `extractConceptsAddBacklink` | Ativado | Habilita busca reversa | +| `extractConceptsMinimalTemplate` | Desativado | Modelo completo com Linked From | +| Modelo por tarefa | DeepSeek | A extração de conceitos não precisa de modelos caros | +| Supressão de sinônimos | Ativado | A mesma configuração afeta tanto a vinculação quanto a extração | + +→ [Notas de Conceito: Aprofundamento](/docs/features/concept-notes) + +--- + +## 3. Pesquisa: Integrando a Web + +Notemd integra a busca na web ao seu fluxo de trabalho de anotações: + +1. **Construção da consulta** — o título ou seleção da nota se torna uma consulta de busca +2. **Busca na web** — Tavily (recomendado, chave API necessária) ou DuckDuckGo (grátis, sem chave) +3. **Resumo LLM** — os resultados da busca são condensados em um resumo relevante +4. **Anexar à nota** — o resumo é adicionado na posição do cursor ou como uma nova seção + +### Quando usar + +- Antes de processar um novo tópico — obtenha primeiro o contexto da web +- Quando uma nota de conceito precisa de enriquecimento — pesquise e depois adicione links +- Para revisões bibliográficas — faça pesquisa em lote em uma pasta de notas + +### Configurações principais + +| Parâmetro | Recomendado | Por quê | +|---------|-----------|-----| +| `researchProvider` | GPT-4o ou Claude | A pesquisa requer um resumo de maior qualidade | +| Serviço de busca | Tavily | Melhor relevância, profundidade configurável | +| `maxResearchContentTokens` | 4000 | Equilíbrio entre profundidade e custo | + +→ [Pesquisa aprofundada](/docs/features/research) + +--- + +## 4. Tradução: Quebrando barreiras linguísticas + +Notemd traduz notas usando o LLM configurado por você — não um serviço de tradução dedicado API. Isso significa: + +- **Traduções com compreensão de contexto** — o LLM entende todo o documento, e não apenas frase por frase +- **Tratamento de termos técnicos** — "gradient descent" permanece como "梯度下降" e não como "坡度向下" +- **Suporte a lotes** — traduza uma pasta inteira de notas em uma única operação +- **Modelo por tarefa** — use o Gemini Flash para tradução (rápido, barato e multilíngue) + +### Suporte a idiomas + +O Notemd em si suporta 21 idiomas UI. O idioma de destino da tradução pode ser configurado por tarefa. Pares comuns: EN↔ZH, EN↔JA, EN↔KO, EN↔DE, EN↔FR, EN↔ES. + +→ [Aprofundamento em tradução](/docs/features/translation) + +--- + +## 5. Diagramas: Tornando a estrutura visível + +O pipeline de diagramas do Notemd segue primeiro as especificações: o LLM gera um `DiagramSpec` JSON estruturado, e depois os adaptadores o convertem para o formato desejado. Isso resulta em saídas mais confiáveis do que solicitar ao LLM a sintaxe bruta do Mermaid. + +### Detecção de intenção + +O Notemd infere o melhor tipo de diagrama a partir do conteúdo: + +- **Tabelas com números** → gráfico de dados (Vega-Lite) +- **Vocabulário cliente/servidor** → diagrama de sequência (Mermaid) +- **Entidade/chave primária** → diagrama ER (Mermaid) +- **Etapa/fluxo de processo** → fluxograma (Mermaid) +- **Palavras-chave do mapa conceitual** → JSON Canvas (Obsidian nativo) +- **Padrão** → mapa mental (Mermaid) + +### Cadeia de renderização + +Alvo principal → fallback → fallback → HTML. Se a sintaxe Mermaid falhar, ele tenta novamente uma vez com o contexto do erro para o LLM, e depois recorre a um diagrama mínimo. + +### Configurações principais + +| Parâmetro | Recomendado | Por quê | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | Ativado | Melhor qualidade por meio de especificação em primeiro lugar | +| `experimentalDiagramCompatibilityMode` | `best-fit` | Alvo nativo por intenção | +| `summarizeToMermaidProvider` | GPT-4o ou Claude | As especificações do diagrama exigem raciocínio espacial | +| `autoMermaidFixAfterGenerate` | Ativado | Captura automaticamente erros de sintaxe LLM | +| Aumento do conhecimento local | Ativado para domínios específicos | Melhora a precisão com o contexto do vault | + +→ [Diagrams deep dive](/docs/features/diagrams) + +--- + +## 6. Fluxos de trabalho: Automação com um clique + +Os fluxos de trabalho conectam várias tarefas em um único botão da barra lateral. O formato DSL é: + +``` +task1 | task2 | task3 +``` + +Exemplo: `addLinks | extractConcepts | generateDiagram` — transforma uma nota de texto bruto em um nó de conhecimento visual totalmente conectado com um único clique. + +### Fluxos de trabalho recomendados + +| Fluxo de trabalho | Cadeia | Caso de Uso | +|----------|-------|----------| +| Processo completo | `addLinks \| extractConcepts \| generateDiagram` | Novas notas | +| Pesquisa primeiro | `research \| addLinks` | Tópicos desconhecidos | +| Polyglot | `translate \| addLinks` | Notas multilíngues | +| Apenas diagrama | `generateDiagram` | Visualização rápida | + +→ [Análise aprofundada de fluxos de trabalho](/docs/features/workflows) + +--- + +## 7. LLM Provedores: 36 opções, do cloud ao local + +Notemd suporta 36 provedores em 4 tipos de transporte. Grupos principais: + +- **Cloud internacional**: OpenAI, Anthropic, Google, Mistral, xAI +- **Cloud da China**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **Gateways**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **Local**: Ollama, LMStudio, OVMS — sem chave API, nenhum dado sai da sua máquina + +### Estratégia de modelo por tarefa + +A configuração mais econômica utiliza modelos baratos para tarefas simples e modelos poderosos para tarefas complexas: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [Visão geral dos LLM Provedores](/docs/providers/overview) + +--- + +## Lista de verificação para começar + +1. **Instalar Notemd** — [Plugins da comunidade](/docs/getting-started/installation) (recomendado) ou manualmente +2. **Configurar um provedor** — DeepSeek (mais fácil), OpenAI ou Ollama (grátis) +3. **Processar sua primeira nota** — clique com o botão direito → "Processar arquivo (adicionar links)" +4. **Definir pasta de conceitos** — Configurações → Notemd → Saída → Pasta de Conceitos +5. **Extrair conceitos** — execute "Extrair conceitos" na mesma anotação +6. **Gerar um diagrama** — execute "Gerar diagrama" para visualizar as conexões +7. **Criar um fluxo de trabalho** — conecte os passos acima em um botão de um clique + +## Configurações Recomendadas + +### Estudante (Orçamento) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### Pesquisador (Qualidade) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### Privacidade em Primeiro Lugar (Apenas Local) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### Bilingue (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## Padrões Comuns + +### Padrão: Processar um artigo de pesquisa + +1. Importar conteúdo de PDF (ou colar) +2. **Pesquisar** — obter contexto da web sobre o tema +3. **Adicionar links** — identificar e vincular conceitos importantes +4. **Extrair conceitos** — criar anotações independentes +5. **Gerar Diagrama** — visualizar a estrutura do artigo + +### Padrão: Enriquecimento de notas diárias + +1. Escrever nota diária +2. **Adicionar Links** — conecta as ideias de hoje a conceitos existentes +3. As notas de conceito são atualizadas automaticamente com backlinks + +### Padrão: Revisão Bibliográfica + +1. Criar pasta com artigos/notas +2. **Adicionar Links em Lote** — processar toda a pasta +3. **Deduplicar Conceitos** — limpar notas quase duplicadas +4. **Gerar Diagrama** — mapa mental de toda a literatura + +--- + +*Notemd é de código aberto (MIT) e funciona com Obsidian 0.15.0+ em todas as plataformas. [Instalar agora](/docs/getting-started/installation) ou [ver no GitHub](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..2ed45fde --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "Configurar Anthropic Claude" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Anthropic Provider + +<TLDR> +**Anthropic utiliza o transporte nativo Messages API, e não o transporte compatível com OpenAI.** A predefinição atual usa `claude-3-5-sonnet-20240620`, `https://api.anthropic.com` e `temperature: 0.5` por padrão. Trate‑o como uma superfície de protocolo separada ao depurar. + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Configuração + +Crie uma chave Anthropic API, adicione um perfil de provedor `Anthropic` e mantenha o Base URL no endpoint nativo, a menos que esteja roteando por meio de um perfil de gateway dedicado. Escolha o ID do modelo Claude que deseja usar no campo modelo; o padrão mantém a linha de base do produto atual estável. + +Anthropic é um bom candidato para resumo de alta qualidade, síntese de pesquisas e extração de conceitos. Se o combinar com provedores mais baratos, use‑o apenas nas tarefas que se beneficiam da qualidade de sua saída. + +## Endpoint e Autenticação + +| Campo | Predefinição atual | +|-------|----------------| +| Transporte | `anthropic` | +| Chave API | Necessário | +| Base URL | `https://api.anthropic.com` | +| Modelo padrão | `claude-3-5-sonnet-20240620` | +| Temperatura | `0.5` | +| Teste de conexão | Apenas chat | + +O tempo de execução envia solicitações para `/v1/messages` com `x-api-key` e `anthropic-version: 2023-06-01`. Não configure um endpoint `/v1/chat/completions` no estilo OpenAI sob esta predefinição; use em vez disso uma predefinição de gateway compatível com OpenAI. + +## Descoberta de modelos + +Anthropic utiliza o modo de descoberta `anthropic-models` no registro de provedores. Se sua chave ou conta não puder listar modelos, mantenha um ID de modelo conhecido no perfil e valide por meio do teste de conexão. + +O transporte não é intercambiável com provedores compatíveis com OpenAI. Um modelo Claude roteado por OpenRouter, LiteLLM ou outro gateway deve ficar no perfil desse gateway, e não no perfil nativo Anthropic. + +## Solução de problemas + +- `401` ou `403`: verifique o escopo da chave, o acesso ao workspace, a cobrança e se a chave pertence ao workspace Anthropic esperado. +- `404`: o Base URL está incorreto ou o ID de modelo selecionado não está disponível para a conta. +- IDs de modelos Claude no estilo gateway falham: mova o perfil para o provedor gateway correspondente, pois o Anthropic nativo espera nomes de modelo nativos. +- Pedidos longos falham tarde: reduza o tamanho da saída do modelo por tarefa ou use um modelo com um limite maior de tokens de saída conhecido. + +## Quando Usar + +Use Anthropic quando a qualidade na síntese, nas notas de pesquisa ou na escrita estruturada for mais importante que o custo bruto. Não o use como fallback genérico compatível com OpenAI; o transporte separado é o ponto principal, e misturar os protocolos dificulta o diagnóstico. + +--- + +## Próximos passos + +- [LLM Providers](/docs/providers/overview) -- Configuração completa, modelos por tarefa e lógica de tentativa +- [Troubleshooting](/docs/advanced/troubleshooting) -- Corrija erros 401/403 e problemas de conexão diff --git a/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..4152b7f7 --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "Fornecedores da China" +description: "Configure Qwen, DeepSeek, GLM, etc." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Fornecedores da China + +<TLDR> +**Notemd suporta fornecedores da região e origem China por meio de endpoints majoritariamente compatíveis com OpenAI.** O conjunto atual inclui DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, MiniMax, Baidu Qianfan, SiliconFlow, Huawei Cloud MaaS e Z AI. O benefício é o alcance regional e o controle de custos; o risco está no nome do modelo específico do fornecedor e nas restrições de conta. + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Configuração + +Crie a conta do fornecedor, gere uma chave API e, em seguida, escolha o preset do fornecedor Notemd correspondente em vez de usar um perfil genérico OpenAI. O preset possui o Base URL padrão, o modelo, o modo de teste API, o comportamento de descoberta de modelos e quaisquer campos UI específicos do fornecedor. + +Use a seleção de modelo por tarefa de forma intensiva aqui. Por exemplo, mantenha DeepSeek ou GLM em fluxos de trabalho que exigem muito raciocínio, use Qwen ou Moonshot para trabalhos amplos em língua chinesa e direcione tarefas de codificação para Qwen Code quando essa conta expõe os modelos de programador. + +## Endpoint e Autenticação + +| Fornecedor | Modelo Padrão | Base URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (ID do endpoint necessário) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**Observação:** Doubao requer um ID de endpoint Ark (formato: `ep-xxxxxxxx-xxxx-xxxx`) em vez de um nome de modelo padrão. + +A maioria desses fornecedores utiliza o runtime compartilhado compatível com OpenAI, mas suas semânticas de conta e modelo são diferentes. Mantenha o Base URL específico do preset a menos que você tenha verificado o endpoint alternativo da conta. + +## Descoberta de modelos + +DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan e SiliconFlow utilizam a descoberta de modelos compatível com OpenAI quando o fornecedor permite listagem. Huawei Cloud MaaS usa o modo `huaweicloud-modelarts-models` porque os metadados de implantação do ModelArts não são idênticos a uma lista genérica `/v1/models`. + +Não trate a falha na descoberta como prova de que o chat é impossível. Vários fornecedores permitem chat enquanto limitam as permissões de lista de modelos. Nesse caso, mantenha um ID de modelo explícito no perfil e valide com o teste de conexão. + +## Solução de problemas + +- A autenticação tem sucesso, mas o chat falha: o nome do modelo pode estar fora dos direitos ou da região da conta. +- Doubao falha com um nome de modelo normal: use o ID de endpoint Ark no campo de modelo quando sua implantação exigir isso. +- As respostas de raciocínio são truncadas: verifique o limite máximo de tokens de saída específico do fornecedor e as configurações de limite máximo de tokens sensíveis ao modelo do Notemd. +- A rede regional varia: use o endpoint da região China do fornecedor quando a máquina do vault está dentro da China; use apenas o endpoint internacional quando tanto a conta quanto o caminho de rede forem válidos. + +## Quando Usar + +Utilize provedores chineses quando a latência regional, o acesso a pagamentos/contas, a qualidade em língua chinesa ou o custo forem as principais restrições. Prefira conexões diretas OpenAI, Anthropic, Google ou provedores locais quando precisar de limites de protocolo mais simples ou de maior consistência na depuração entre provedores. + +--- + +## Próximos passos + +- [LLM Providers](/docs/providers/overview) -- Configuração completa, modelos por tarefa e lógica de tentativa +- [Solução de problemas](/docs/advanced/troubleshooting) -- Corrija erros de conectividade regional e de autenticação diff --git a/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..2dbfbcd8 --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "Configurar Google Gemini" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Google Provider + +<TLDR> +**Google utiliza o transporte nativo de linguagem gerativa Gemini API.** O preset atual tem como padrão `gemini-2.0-flash-exp`, `https://generativelanguage.googleapis.com/v1` e `temperature: 0.5`. Não se trata de um perfil compatível com OpenAI. + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Configuração + +Criar uma chave Cloud API de tipo Google AI Studio ou Google com acesso ao Gemini, adicionar um perfil de provedor `Google` e manter a Base de Linguagem Gerativa nativa URL. Use o perfil padrão Gemini Flash para traduções rápidas e fluxos de trabalho de notas abrangentes, e sobrescreva os modelos por tarefa quando precisar de um modelo Gemini maior ou mais potente. + +Evite colocar IDs de modelos Gemini em um perfil compatível com OpenAI, a menos que esteja usando explicitamente uma gateway que expõe o Gemini por meio de um API compatível com OpenAI. + +## Endpoint e Autenticação + +| Campo | Predefinição atual | +|-------|----------------| +| Transporte | `google` | +| Chave API | Necessário | +| Base URL | `https://generativelanguage.googleapis.com/v1` | +| Modelo padrão | `gemini-2.0-flash-exp` | +| Temperatura | `0.5` | +| Teste de conexão | Apenas chat | + +O tempo de execução chama `/models/{model}:generateContent?key={apiKey}`. A chave é passada como parâmetro de consulta, pois é assim que o endpoint nativo do Gemini é conectado no plugin. + +## Descoberta de modelos + +Google utiliza o modo de descoberta `google-models`. A descoberta deve retornar os modelos Gemini disponíveis para a chave API; se o seletor estiver vazio, teste a chave contra a mesma Base URL e confirme se a família de modelos está habilitada para aquela conta. + +Os limites conhecidos de tokens de saída são considerados pelo modelo no registro do provedor. Se uma tradução longa ou uma explicação de diagrama for truncada, selecione um modelo Gemini com capacidade maior de saída suportada ou reduza o tamanho da saída solicitado. + +## Solução de problemas + +- `400`: o ID do modelo geralmente não corresponde à rota nativa do Gemini ou a solicitação excede o formato suportado pelo modelo. +- `401` ou `403`: verifique as restrições da chave, a ativação do projeto/API e se a chave pode acessar o Gemini. +- `404`: o ID do modelo não está disponível na versão API configurada. +- Exemplos de gateway falham nesse perfil: use o preset de gateway em vez do provedor nativo Google. + +## Quando Usar + +Use Google para traduções rápidas, limpeza em grande volume de notas e fluxos de trabalho em que o custo/desempenho do Gemini é melhor do que o de OpenAI ou Anthropic diretos. Prefira outro provedor para fluxos de trabalho que exigem tratamento de modelos de raciocínio compatíveis com OpenAI. + +--- + +## Próximos passos + +- [LLM Providers](/docs/providers/overview) -- Configuração completa, modelos por tarefa e lógica de tentativa +- [Tradução](/docs/features/translation) -- O Gemini Flash é recomendado para tarefas de tradução em grande volume diff --git a/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..add3c6b0 --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "Modelos locais" +description: "Configure Ollama e os LLMs locais" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# Modelos locais + +<TLDR> +**Os provedores locais mantêm o conteúdo da nota fora dos APIs hospedados.** O caminho local atual cobre Ollama com o transporte nativo `ollama` e LMStudio por meio do transporte compatível com OpenAI. Nenhuma chave API é necessária para nenhum dos caminhos, mas o servidor local e o modelo já devem estar em execução. + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Configuração + +Para Ollama, instale Ollama, baixe o modelo desejado, inicie o servidor e adicione um perfil de provedor `Ollama` em Notemd. Para LMStudio, carregue um modelo no servidor local do LM Studio e adicione um perfil de provedor `LMStudio`. + +Os modelos locais são dependências operacionais, não apenas configurações. Notemd só pode chamar o que o processo local expõe, portanto verifique o modelo local fora de Obsidian antes de depurar o plugin. + +## Endpoint e Autenticação + +| Fornecedor | Base URL | Modelo Padrão | Chave API | Observações | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | Não necessário | Transmissão NDJSON; descoberta de modelos por meio de `/api/tags` | +| LMStudio | `localhost:1234/v1` | `local-model` | Não necessário | Envia `"EMPTY"` como token de autenticação; compatível com OpenAI | + +Ollama utiliza o caminho nativo `/chat` abaixo de seu Base URL. LMStudio segue a rota compatível com OpenAI de `chat/completions` e espera um modelo carregado no servidor local. + +## Descoberta de modelos + +Ollama usa o modo de descoberta `ollama-tags` e lista as tags baixadas localmente. LMStudio utiliza a descoberta de modelos compatível com OpenAI quando seu servidor expõe `/v1/models`. + +Se a descoberta não retornar nada, isso geralmente é um problema de estado do servidor local: o modelo não foi baixado, não carregado ou o servidor está vinculado a um host/porta diferente do perfil. + +## Solução de problemas + +- Conexão recusada: inicie Ollama ou o LM Studio e confirme a porta configurada. +- Modelo não encontrado: baixe a tag Ollama ou carregue o modelo do LM Studio antes de testar. +- Saída lenta: reduza o tamanho do contexto, use um modelo local menor ou direcione tarefas pesadas para um provedor hospedado. +- Respostas vazias ou mal formatadas: confirme que o perfil de provedor selecionado corresponde ao protocolo do servidor local; Ollama e LMStudio não são intercambiáveis. + +## Quando Usar + +Utilize provedores locais para cofres privados, trabalho off-line ou tarefas repetitivas e baratas. Não presuma que o uso local seja automaticamente melhor para síntese de pesquisa ou raciocínio prolongado; a qualidade do modelo e as limitações de hardware são os fatores a serem considerados. + +--- + +## Próximos passos + +- [LLM Provedores](/docs/providers/overview) -- Configuração completa e configuração do modelo por tarefa +- [Solução de problemas](/docs/advanced/troubleshooting) -- Corrija erros de connection-refused quando o servidor local não está em execução diff --git a/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..39e1731f --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "Configurar OpenAI (GPT-4, GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# OpenAI Provider + +<TLDR> +**OpenAI utiliza o transporte compatível com OpenAI compartilhado.** A predefinição atual usa `gpt-4o`, `https://api.openai.com/v1`, `temperature: 0.5` e o teste de conexão `models-then-chat`. Acesse esta página quando precisar da semântica exata dos campos; use a visão geral [LLM Providers](/docs/providers/overview) para seleção em nível de categoria. + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Configuração + +Crie uma chave OpenAI API, adicione um perfil de provedor `OpenAI` nas configurações Notemd e mantenha o Base URL padrão, a menos que esteja apontando intencionalmente para um gateway compatível com OpenAI. O campo do modelo pode permanecer em `gpt-4o` para trabalhos gerais ou ser substituído por outro ID de modelo OpenAI que sua conta possa chamar. + +Use modelos específicos para cada tarefa a fim de controlar custos: mantenha modelos mais potentes para pesquisa, extração de conceitos e reestruturação de textos longos; use modelos mais baratos ou rápidos para tradução, sugestões de links e resumos curtos. + +## Endpoint e Autenticação + +| Campo | Predefinição atual | +|-------|----------------| +| Transporte | `openai-compatible` | +| Chave API | Necessário | +| Base URL | `https://api.openai.com/v1` | +| Modelo padrão | `gpt-4o` | +| Temperatura | `0.5` | +| Teste de conexão | `/models`, depois `/chat/completions` | + +Notemd normaliza os Base URL compatíveis com OpenAI antes de anexar `chat/completions` ou `models`. Não inclua um `/chat/completions` final no Base URL; isso cria um caminho duplicado. + +## Descoberta de modelos + +OpenAI usa o caminho genérico de descoberta de modelos compatível com OpenAI. As configurações UI primeiro perguntam ao `/v1/models` e, em seguida, validam o modelo selecionado com uma solicitação de chat leve. Se a descoberta falhar mas o chat ainda funcionar, verifique se sua chave tem permissão de lista de modelos ou se algum gateway bloqueia a listagem de modelos. + +Modelos de raciocínio são tratados como um caso especial de protocolo: Notemd combina o conteúdo do prompt do sistema e do usuário para IDs de raciocínio OpenAI que rejeitam um papel separado do `system`, e exibe apenas o `reasoningEffort` quando a definição do provedor o permite. + +## Solução de problemas + +- `401` ou `403`: verifique a chave, o acesso ao projeto, o status de faturamento e se o modelo selecionado está habilitado para a chave. +- `404` no chat: o Base URL geralmente está incorreto ou já inclui o `/chat/completions`. +- O modelo aparece nos documentos, mas não no seletor: o acesso à lista de modelos e o acesso ao chat são pontos de falha distintos; teste manualmente o ID exato do modelo no perfil do provedor. +- Modelo de raciocínio rejeita mensagens: use um ID de modelo coberto pelo caminho de tratamento de raciocínio OpenAI ou mude para um modelo de chat que não faça raciocínio. + +## Quando Usar + +Use OpenAI quando desejar o caminho hospedado padrão mais previsível, quando a descoberta do `/v1/models` for importante ou quando um fluxo de trabalho depender da semântica do modelo de raciocínio OpenAI. Prefira um gateway ou provedor local quando roteamento, privacidade ou controle de custos forem mais importantes do que o comportamento direto do OpenAI API. + +--- + +## Próximos passos + +- [LLM Providers](/docs/providers/overview) -- Configuração completa, modelos por tarefa e lógica de tentativa +- [Solução de problemas](/docs/advanced/troubleshooting) -- Corrija erros 401/403 e limitações de taxa diff --git a/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..c77a8872 --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "Provedores LLM" +description: "Configurar 36 provedores LLM — nuvem, gateway e local — com seleção de modelo por tarefa" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Provedores LLM + +<TLDR> +**Notemd suporta 36 provedores LLM em 4 tipos de transporte.** Todas as chamadas API utilizam HTTP bruto (sem SDKs), com tentativa automática, fallback de transporte e cache de resposta de 5 minutos. A seleção de modelo por tarefa permite usar modelos baratos para extração de conceitos e modelos poderosos para pesquisas. Não é necessário nenhum campo API para provedores locais (Ollama, LMStudio). +</TLDR> + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). + +## Categorias de Provedor + +### Provedores em Nuvem + +| Fornecedor | Base padrão URL | Modelo Padrão | Temperatura | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### Provedores Gateway/Proxy + +| Fornecedor | Base padrão URL | Modelo Padrão | Observações | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | Adiciona cabeçalhos `HTTP-Referer` + `X-Title` | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | Adiciona o cabeçalho `X-GitHub-Api-Version` | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | Adiciona o cabeçalho `APP-Code` | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | Campo API opcional | +| **Novo API** | `localhost:3000/v1` | `gpt-4.1` | Campo API opcional | +| **OpenAI Compatible** | (configurado pelo usuário) | `your-model-id` | Endpoint personalizado | + +### Fornecedores da China + +| Fornecedor | Base padrão URL | Modelo Padrão | Observações | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | Focado em programação | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (ID do endpoint necessário) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | Endpoint Zhipu, China | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | Endpoint internacional Zhipu | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | Plataforma de hospedagem de modelos | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao requer um ID de endpoint Ark** (formato: `ep-xxxxxxxx-xxxx-xxxx`). O placeholder padrão deve ser substituído. + +### Fornecedores locais + +| Fornecedor | Base padrão URL | Modelo Padrão | Observações | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | Sem chave API. Transmissão em fluxo NDJSON. Descoberta de modelos por meio de `/api/tags` | +| **LMStudio** | `localhost:1234/v1` | `local-model` | Envia `"EMPTY"` como token de autenticação. Descoberta compatível com OpenAI | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (configurado pelo usuário) | `gpt-4o` | Nome da implantação em URL. Cabeçalho `api-key` | + +## Seleção de Modelo por Tarefa + +Notemd suporta provedor e modelo independentes para cada tarefa. Ative com `useMultiModelSettings: true`. + +### Tarefas Disponíveis + +| Tarefa | Chave de Configurações | Provedor Padrão | +|------|-------------|-----------------| +| Adicionar Links (inserção de link da wiki) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| Pesquisa (busca na web + resumo) | `researchProvider` / `researchModel` | DeepSeek | +| Gerar a partir do Título | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| Tradução | `translateProvider` / `translateModel` | DeepSeek | +| Geração de Diagramas | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| Extração de Conceitos | `extractConceptsProvider` / `Model` | DeepSeek | +| Extração de Texto Original | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### Ordem de Resolução + +1. Se `useMultiModelSettings` estiver ativado → use o provedor e modelo específicos da tarefa +2. Se a sobrescrita do modelo da tarefa estiver vazia → recorra ao modelo padrão do provedor +3. Se o provedor da tarefa for inválido → recorra ao `activeProvider` global +4. Se `useMultiModelSettings` estiver desativado → todas as tarefas utilizam o `activeProvider` global + +### Configurações Recomendadas + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## Arquitetura de Chamada do API + +### Camadas de Transporte + +1. **Obsidian `requestUrl`** — primária (integrada, funciona em todas as plataformas) +2. **Desktop HTTP** — módulos Node.js `http`/`https` (transmissão em fluxo contínuo + solicitações longas) +3. **Web `fetch`** — alternativa quando os módulos Node.js não estiverem disponíveis + +O plugin alterna automaticamente entre os transportes em caso de erros temporários de rede. + +### Lógica de Tentativa + +- **Modo normal** (`enableStableApiCall: false`): Uma única tentativa. Em caso de falha temporária, há escalonamento automático para uma tentativa estável. +- **Modo de tentativa estável** (`enableStableApiCall: true`): Até 4 tentativas (1 + 3 repetições) com intervalos de 5 segundos. +- **Erros temporários que acionam a tentativa**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **Não reutilizáveis**: HTTP 400, 401, 403, 404 + +### Armazenamento em Cache de Respostas + +Cache LRU em memória com duração de 5 minutos, indexado por provedor + modelo + temperatura + prompt + conteúdo. Solicitações idênticas subsequentes dentro de 5 minutos retornam os resultados armazenados instantaneamente. + +### Tratamento do Modelo de Raciocínio + +Modelos que não suportam o papel `system` (DeepSeek R1, OpenAI o1/o3/o4/gpt-5) têm automaticamente os prompts do sistema e do usuário combinados em uma única mensagem do usuário. + +DeepSeek-específico: `thinkingEnabled` adiciona `{ thinking: { type: 'enabled' } }` à solicitação. `reasoningEffort` (baixo/médio/alto) é passado como `reasoning_effort`. Verifica se o número máximo de tokens de saída ≥ 8000 quando o modo de raciocínio está ativado. + +### Estimativa de Tokens + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — heurística de 4 caracteres por token. Usada para garantir `maxResearchContentTokens` antes de enviar para LLM. + +Nenhum rastreamento de custos é implementado. + +## Descoberta de modelos + +| Modo | Provedores | Ponto Final | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | Lista de Modelos API | +| `anthropic-models` | Anthropic | Lista de Modelos API | +| `openai-compatible-models` | DeepSeek, Qwen, Mistral, etc. | `/v1/models` | +| `openrouter-models` | OpenRouter | Lista de Modelos API | +| `github-models` | GitHub Models | Inferência API | +| `none` | Azure OpenAI | Desativado (requer nome de implantação) | + +## Início Rápido + +1. **Escolha um provedor** — DeepSeek (China), OpenAI (Internacional) ou Ollama (Local/Livre) +2. **Insira a chave API** — Configurações → Notemd → Provedor → Chave API +3. **Testar conexão** — Clique no botão de teste +4. **Opcional: Modelos por tarefa** — Ative `useMultiModelSettings` e configure individualmente + +Para Ollama: não é necessária a chave API. Apenas certifique‑se de que `ollama serve` esteja em execução. + +--- + +## Próximos passos + +- 📝 [Notas conceituais](/docs/features/concept-notes) — Utiliza o modelo de extração por tarefa +- 🎨 [Diagramas](/docs/features/diagrams) — Utiliza o modelo de diagrama por tarefa +- 🔍 [Pesquisa](/docs/features/research) — Utiliza o modelo específico para pesquisa +- ⚙️ [Configuração](/docs/getting-started/configuration) — Referência completa de ajustes diff --git a/website/i18n/pt-BR/docusaurus-theme-classic/footer.json b/website/i18n/pt-BR/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/pt-BR/docusaurus-theme-classic/navbar.json b/website/i18n/pt-BR/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/pt-BR/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/pt/code.json b/website/i18n/pt/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/pt/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current.json b/website/i18n/pt/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..b885d6bb --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "Processamento em Lote" +description: "Processar vários arquivos de forma eficiente" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# Processamento em Lote + +<TLDR> +**Notemd processa pastas inteiras em uma única ação, com concorrência configurável e controle de sobrescrita.** Clique com o botão direito em uma pasta para adicionar links do wiki em lote, extrair conceitos, pesquisar ou traduzir todas as anotações contidas nela. Os limites de concorrência evitam erros de limite de taxa API. O progresso é informado por arquivo. O comportamento de sobrescrita é configurável: ignorar o existente, anexar ou substituir. Os arquivos com falha são registrados sem interromper o processamento em lote. + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Visão Geral + +O processamento em lote transforma uma pasta de anotações em uma única operação. Em vez de abrir cada anotação e executar comandos individualmente, basta clicar com o botão direito na pasta e selecionar a tarefa. Notemd itera por cada arquivo `.md`, aplica a ação escolhida e informa o progresso em tempo real. + +Esse recurso é essencial para a extração de conhecimento em toda a estrutura de armazenamento. Após importar dezenas de PDFs, por exemplo, adicionar links em lote seguido de extração de conceitos em lote cria seu grafo de conhecimento em minutos, em vez de horas. + +## Como Funciona + +### Modelo de Execução em Lote + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **Coleta de arquivos** -- Notemd escaneia a pasta alvo recursivamente (ou apenas no nível superior, dependendo das configurações) e coleta todos os arquivos `.md`. +2. **Particionamento por concorrência** -- Os arquivos são divididos em blocos com base na configuração `batchConcurrency`. Cada bloco é executado paralelamente; os blocos são executados sequencialmente. +3. **Execução** -- Cada arquivo é processado usando a mesma lógica do comando para um único arquivo. As configurações do provedor e do modelo por tarefa são respeitadas. +4. **Relatórios de progresso** -- Uma notificação aparece após a conclusão de cada arquivo, mostrando o progresso `N / Total`. +5. **Tratamento de erros** -- Se um arquivo falhar (erro API, tempo de espera da rede, etc.), o erro é registrado e o processamento em lote continua. O resumo final lista todos os arquivos com falha. +6. **Conclusão** -- Uma notificação de resumo informa o total processado, os sucessos e as falhas. + +### Comportamento de Sobrescrita + +Ao processar um arquivo que já possui links wiki, notas conceituais ou traduções, o comportamento do Notemd depende da configuração de sobrescrita: + +| Modo | Comportamento | +|------|----------| +| **Ignorar** | O conteúdo existente é deixado intacto. Apenas arquivos não modificados são processados. | +| **Anexar** (padrão) | Novo conteúdo é anexado. Os links wiki, conceitos ou traduções existentes são preservados. | +| **Substituir** | O arquivo é completamente reprocessado. Todas as modificações anteriores do Notemd são sobrescritas. | + +Especificamente para links wiki: se uma nota já contiver `[[wiki-links]]`, o modo **Ignorar** a deixa como está, enquanto **Substituir** envia toda a nota para o LLM para inserção de novos links. Use **Ignorar** para processamento incremental e **Substituir** para reprocessamento após atualização do modelo. + +### Controle de Concorrência + +A configuração do `batchConcurrency` limita as chamadas paralelas de API. Isso evita erros de limite de taxa (HTTP 429) ao processar pastas grandes em provedores com cotas rígidas. + +| Concorrência | Recomendado para | Impacto típico no limite de taxa | +|-------------|----------------|---------------------------| +| `1` | Planos gratuitos, provedores rigorosos | Nenhum (serial) | +| `3` (padrão) | A maioria dos provedores de nuvem | Baixo | +| `5` | Ollama (local), planos generosos | Nenhum / Baixo | +| `10` | Modelos locais com inferência rápida | Nenhum | + +Se você encontrar erros 429 durante o processamento em lote, reduza a concorrência para 1 ou 2. + +## Configuração + +| Parâmetro | Padrão | Efeito | +|---------|---------|--------| +| `batchConcurrency` | `3` | Máximo de chamadas paralelas API durante operações em pastas | +| `batchOverwriteExisting` | `false` | Sobrescrever o conteúdo existente de Notemd. `false` = modo de anexar. | +| `batchSkipProcessed` | `false` | Ignorar arquivos que já contenham marcadores Notemd (por exemplo, links wiki) | +| `batchRecursive` | `true` | Incluir subdiretórios ao escanear a pasta | +| `enableStableApiCall` | `false` | Habilitar lógica de tentativa (até 4 tentativas) por arquivo durante o processamento em lote | + +### Modelos por Tarefa no Lote + +Cada operação em lote utiliza o modelo correspondente por tarefa. batch-add-links usa `addLinksProvider`, batch-research usa `researchProvider`, e assim por diante. Isso significa que você pode atribuir modelos baratos para operações de grande volume e reservar modelos caros para tarefas sensíveis à qualidade. + +## Exemplo + +Você tem uma pasta `papers/` com 40 notas de pesquisa importadas. Você deseja adicionar links wiki e extrair conceitos de todas elas: + +1. Clique com o botão direito na pasta `papers/` +2. Selecione **"Notemd: Processar pasta (adicionar links)"** +3. Notemd escaneia a pasta, encontra 40 arquivos `.md` e processa 3 de cada vez (concorrência padrão) +4. Uma notificação de progresso exibe: `12/40 files processed...` +5. Após cerca de 3 minutos, uma notificação de resumo informa: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. Repita com **"Notemd: Processar pasta (extrair conceitos)"** para criar notas de conceito para todos os 40 + +O arquivo que falhou é registrado. Você pode executá‑lo novamente apenas nesse arquivo posteriormente. + +## Dicas + +- **Comece com baixa concorrência** -- Se você não tem certeza dos limites de taxa do seu provedor, comece com `1` e aumente gradualmente. +- **Use o modo pular para atualizações incrementais** -- Após o primeiro lote completo, mude para `batchSkipProcessed: true` para que apenas novas notas sejam processadas nas execuções subsequentes. +- **Ative chamadas estáveis de API** -- `enableStableApiCall: true` adiciona lógica de tentativa que recupera erros temporários de rede durante lotes longos. +- **Reexecute após atualizações do modelo** -- Se você mudar para um modelo melhor, defina `batchOverwriteExisting: true` e execute novamente para obter links e conceitos aprimorados. + +--- + +## Próximos passos + +- [Workflows](/docs/features/workflows) -- Conecte tarefas em lote em botões de barra lateral de um clique +- [Custom Prompts](/docs/advanced/custom-prompts) -- Personalize prompts para extração em lote +- [Troubleshooting](/docs/advanced/troubleshooting) -- Corrija erros de limite de taxa e falhas de conexão durante execuções em lote +- [LLM Fornecedores](/docs/providers/overview) -- Referência de configuração do modelo por tarefa diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..c7bf95de --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "Prompts Personalizados" +description: "Personalize os prompts LLM de acordo com suas necessidades" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# Prompts Personalizados + +<TLDR> +**Notemd permite substituir o prompt padrão LLM para cada tipo de tarefa.** Os prompts personalizados dão a você controle sobre o que o modelo prioriza: você pode restringir a extração de conceitos a uma disciplina específica, alterar o estilo de vinculação ou redirecionar o tom da tradução. Variáveis de prompt como `{{content}}` e `{{concept}}` são substituídas em tempo de execução. O recurso de domínio de aprendizado focado adiciona seu campo de estudo no início para delimitar automaticamente os resultados da extração. + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Visão Geral + +Os prompts embutidos do Notemd foram criados para trabalhos de conhecimento geral. Eles funcionam bem em diversos domínios, mas também deixam espaço para melhorias específicas de cada área. Os prompts personalizados permitem que você diga ao LLM exatamente como se comportar para o seu caso de uso -- seja extrair apenas terminologia médica, vincular apenas entidades nomeadas ou traduzir em um registro formal. + +Os prompts personalizados não substituem todo o prompt do sistema. Eles sobrescrevem ou complementam a **parte de instruções específicas da tarefa**, preservando o formato estrutural de saída (por exemplo, linhas `CONCEPT:`, sintaxe de link wiki) do qual o Notemd depende para a análise. + +## Como Funciona + +### Arquitetura do Prompt + +Cada tarefa Notemd segue a mesma estrutura de prompt: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **Prompt do sistema base** -- Define a persona do assistente. Não pode ser sobrescrito. +2. **Domínio de aprendizado focado** -- Adiciona `Relevant Fields: [medicine / law / computer science / ...]` no início para restringir o escopo. Trata‑se de um botão de configuração, não de um prompt bruto. +3. **Prompt da tarefa personalizada** -- Substitui as instruções padrão da tarefa (por exemplo, quais tipos de conceitos extrair, com que intensidade vincular). +4. **Formato de saída** -- Regras estruturais (linhas `CONCEPT:`, formato de link wiki). Sempre adicionado pelo Notemd para garantir a possibilidade de análise. +5. **Conteúdo** -- O texto real da nota, substituído em tempo de execução por meio de `{{content}}`. + +### Variáveis do Prompt + +As variáveis são substituídas no momento da execução. As variáveis disponíveis variam conforme a tarefa: + +| Variable | Tarefas | Substituído por | +|----------|-------|---------------| +| `{{content}}` | Todos | O texto da nota ou seleção | +| `{{concept}}` | Modelo de nota conceitual | O nome do conceito extraído | +| `{{description}}` | Modelo de nota conceitual | Descrição do conceito gerada por LLM | +| `{{backlinks}}` | Modelo de nota conceitual | Lista de notas de origem com links | +| `{{date}}` | Modelo de nota conceitual | Data atual (YYYY-MM-DD) | +| `{{language}}` | Tradução | Linguagem de saída alvo | +| `{{source}}` | Modelo de nota conceitual | Nome do arquivo da nota de origem | + +### Domínio de Aprendizagem Focado + +O recurso de aprendizagem focada é um atalho para delimitar o domínio. Em vez de escrever um prompt personalizado que mencione sua área, você define `focusedLearningDomain` nas configurações: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +Isso adiciona `Relevant Fields: [medicine]` no início do prompt de extração, fazendo com que o LLM dê prioridade a conceitos relevantes ao domínio e suprima os genéricos. É mais leve que um prompt personalizado completo e funciona em todas as tarefas de extração. + +## Configuração + +| Parâmetro | Padrão | Efeito | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | Sobrescrever o prompt padrão da tarefa de adicionar links | +| `customExtractConceptsPrompt` | `''` | Sobrescrever o prompt padrão de extração de conceitos | +| `customResearchPrompt` | `''` | Sobrescrever o prompt padrão de pesquisa + resumo | +| `customTranslatePrompt` | `''` | Sobrescrever o prompt padrão de tradução | +| `customDiagramPrompt` | `''` | Sobrescrever o prompt padrão de geração de diagramas | +| `focusedLearningDomain` | `''` | Adicionar contexto da disciplina aos prompts de extração e vinculação | +| `extractConceptsMinimalTemplate` | `true` | Usar o modelo de nota de conceito apenas com título (afeta o escopo do modelo `{{concept}}`) | +| `customConceptNoteTemplate` | `''` | Sobrescrever o modelo de arquivo de nota de conceito com suporte total a variáveis | + +**Quando um campo de prompt personalizado estiver vazio, será usado o prompt padrão embutido.** + +## Exemplo + +Você é um pesquisador médico que extrai conceitos de notas de ensaios clínicos. O prompt padrão extrai substantivos genéricos juntamente com termos médicos, o que polui sua pasta de conceitos. + +**Solução:** Defina um domínio de aprendizagem focado e um prompt de extração personalizado. + +1. Defina `focusedLearningDomain` como `medicine` +2. Defina `customExtractConceptsPrompt` como: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +Agora, quando você executa "Extract concepts" em uma nota clínica, o LLM gera: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +Em vez do comportamento padrão que também pode extrair termos genéricos indesejados como "hospital" ou "month". + +## Dicas + +- **Comece com o domínio de aprendizado focado** antes de criar um prompt personalizado completo. Isso cobre 80% dos casos de uso com apenas uma configuração. +- **Preserve o formato de saída** -- Nunca remova instruções de formatação como "uma por linha" ou "CONCEPT: prefix" dos prompts personalizados. O analisador do Notemd depende delas. +- **Teste com uma única nota primeiro** -- Prompts personalizados podem ter efeitos inesperados na amplitude da extração. Verifique em uma nota antes de processar em lote. +- **Mantenha os prompts concisos** -- Prompts personalizados excessivamente longos consomem tokens e podem diluir o foco do modelo. + +--- + +## Próximos passos + +- [Wiki-Links](/docs/features/wiki-links) -- O que é vinculado quando você personaliza o prompt add-links +- [Concept Notes](/docs/features/concept-notes) -- Modelos de nota conceitual e a variável `{{concept}}` +- [Batch Processing](/docs/advanced/batch-processing) -- Aplique prompts personalizados em pastas inteiras +- [Troubleshooting](/docs/advanced/troubleshooting) -- Corrija problemas em que prompts personalizados geram saídas inesperadas diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..bdac2fcb --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "Solução de problemas" +description: "Problemas comuns e soluções" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Solução de problemas + +<TLDR> +**A maioria dos Notemd problemas se enquadra em quatro categorias: problemas principais API, conectividade de rede, erros de autenticação (401/403) e limites de taxa (429).** O teste de conexão embutido e o painel de diagnóstico identificam rapidamente a causa raiz. Esta página aborda cada mensagem de erro comum, sua causa e a correção. Para problemas que não estão listados aqui, relate‑os no GitHub Issues com a saída dos diagnósticos. + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Visão Geral + +Notemd depende de serviços externos -- provedores LLM e mecanismos de busca API -- portanto a maioria dos problemas tem origem fora do próprio plugin. O painel de diagnóstico nas configurações oferece uma visão estruturada da última chamada API, incluindo o pedido URL, o status da resposta e o corpo do erro. Sempre verifique isso primeiro antes de investigar mais. + +## Como funciona: Diagnósticos + +### Teste de conexão + +Cada seção de configuração do provedor possui um botão **"Testar Conexão"**. Ao clicar nele, é enviado um pedido mínimo API (geralmente uma lista de modelos ou uma conclusão breve) e é informado se houve sucesso ou qual erro HTTP específico ocorreu. Esta é a maneira mais rápida de verificar se sua chave API e o URL base estão corretos. + +### Painel de diagnósticos + +**Configurações --> Notemd --> Diagnósticos** exibe: + +| Campo | Conteúdo | +|-------|---------| +| Último provedor | Qual provedor foi chamado por último | +| Último modelo | Qual modelo foi chamado por último | +| Último status | Código de status HTTP ou erro de transporte | +| Último erro | Mensagem de erro bruta do API | +| Último pedido URL | Conteúdo completo URL do último pedido (chave API redigida) | +| Corpo da última resposta | Corpo da resposta truncado (primeiros 500 caracteres) | + +Copie a saída completa de diagnóstico ao relatar problemas no GitHub. + +## Erros comuns + +### Chave API inválida ou ausente + +**Sintoma:** HTTP 401 ou "Chave API incorreta fornecida" + +**Causa:** A chave API está faltando, contém espaços em branco ou pertence a um provedor diferente. + +**Solução:** +1. Verifique se a chave não tem espaços no início ou no final +2. Confirme que a chave corresponde ao provedor selecionado (uma chave OpenAI não funcionará com Anthropic) +3. Verifique se sua conta possui créditos ou uma assinatura ativa +4. Clique em **"Test Connection"** para verificar + +### Erros de rede/conexão + +**Sintoma:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**Causa:** O endpoint API não está acessível a partir da sua máquina. + +**Solução:** +1. Verifique sua conexão com a internet +2. Se estiver atrás de um proxy ou firewall, confira se o domínio API não está bloqueado +3. Para Ollama: confirme que `ollama serve` está em execução (`ollama list` deve retornar modelos) +4. Para LMStudio: confirme que o servidor está rodando em `localhost:1234` +5. Tente um transporte diferente -- usuários móveis devem garantir que o transporte `requestUrl` esteja ativo +6. Habilite `enableStableApiCall` para tentativas automáticas em caso de erros temporários + +### 403 Proibido + +**Sintoma:** HTTP 403 + +**Causa:** Sua chave API é válida, mas não possui permissão para o recurso solicitado. + +**Solução:** +1. Alguns modelos exigem acesso especial (por exemplo, o GPT-4 via Azure requer um nome de implantação) +2. Alguns provedores restringem modelos por nível de plano -- verifique sua conta +3. Podem aplicar‑se restrições regionais (alguns provedores na China bloqueiam IPs internacionais e vice‑versa) +4. Verifique se o nome do modelo está escrito corretamente (por exemplo, `gpt-4o` e não `gpt-4o-mini` quando o mini‑modelo é tudo o que seu plano permite) + +### Limite de taxa (429) + +**Sintoma:** HTTP 429 ou "Limite de taxa excedido" + +**Causa:** Demasias solicitações em um curto período de tempo. + +**Solução:** +1. Reduza `batchConcurrency` para `1` ou `2` +2. Aguarde alguns minutos antes de tentar novamente +3. Consulte a documentação de limite de taxa do seu provedor para o seu nível de plano +4. Habilite `enableStableApiCall` para tentativa automática com backoff +5. Considere mudar para um provedor com limites maiores (DeepSeek, Ollama) + +### Modelo não encontrado + +**Sintoma:** "Modelo não encontrado" ou HTTP 404 + +**Causa:** O nome do modelo não existe no provedor selecionado. + +**Solução:** +1. Clique em **"Obter Lista de Modelos"** para ver todos os modelos disponíveis para o seu provedor +2. Alguns nomes de modelos mudam ao longo do tempo -- verifique o nome atual na documentação do provedor +3. Para Ollama: execute `ollama list` para visualizar os modelos baixados; apenas os modelos baixados estão disponíveis + +### Nenhum link / Nenhum conceito gerado + +**Sintoma:** O comando é executado, mas não gera nenhuma saída + +**Causa:** O LLM retornou uma resposta vazia ou inválida. + +**Solução:** +1. Verifique o painel de diagnóstico para a resposta real do LLM +2. Tente usar um modelo mais potente (alguns modelos pequenos têm dificuldade com saídas estruturadas) +3. Certifique‑se de que a nota tenha conteúdo suficiente (>50 palavras) +4. Revise seu prompt personalizado em busca de instruções conflitantes +5. Desative temporariamente a supressão de sinônimos para ver se ela está filtrando de forma excessiva + +### ID do endpoint Doubao faltando + +**Sintoma:** Erro ao usar o provedor ByteDance Doubao + +**Causa:** Doubao requer um ID de endpoint Ark (formato: `ep-xxxxxxxx-xxxx-xxxx`) em vez de um nome de modelo. + +**Correção:** Substitua o modelo de placeholder padrão pelo seu ID de endpoint real da console do Volcengine. + +## Configuração + +| Configuração de Diagnóstico | Localização | Finalidade | +|--------------------|----------|---------| +| **Testar Conexão** | Seção Provider em Configurações | Verifique a chave API e a conectividade | +| **Obter Lista de Modelos** | Seção Provider em Configurações | Confirme quais modelos estão acessíveis | +| `enableStableApiCall` | Configurações --> Avançado | Habilite tentativas repetidas com backoff | +| `batchConcurrency` | Configurações --> Lote | Controle o paralelismo para evitar limites de taxa | + +## Como Relatar Problemas + +Se o seu problema não for abordado acima: + +1. Abrir **Configurações --> Notemd --> Diagnóstico** +2. Copiar a saída completa do diagnóstico +3. Abrir um problema no GitHub em [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +4. Incluir: versão Obsidian, versão Notemd, provedor, modelo, saída do diagnóstico e passos para reproduzir +5. Remover sua chave API de quaisquer logs compartilhados + +--- + +## Próximos passos + +- [LLM Provedores](/docs/providers/overview) -- Referência completa de configuração de provedores +- [Processamento em Lote](/docs/advanced/batch-processing) -- Configurações de concorrência e tentativa novamente para operações grandes +- [Promptes Personalizados](/docs/advanced/custom-prompts) -- Corrigir comportamentos inesperados de LLM ajustando os promptes diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..eaf58f98 --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "Perguntas Frequentes" +description: "Perguntas comuns sobre a instalação, funcionalidades e uso do Notemd" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# Perguntas Frequentes + +<TLDR> +**Respostas rápidas para as perguntas mais comuns sobre o Notemd.** Aborda instalação (configuração em 5 minutos), suporte a mais de 30 provedores LLM, opções de modelo local/nuvem, fluxos de trabalho com um clique, UI multilíngue (21 idiomas), automação de links de wiki, integração com pesquisas, fluxos de leitura PDF, geração de diagramas e licenciamento de código aberto. Todas as funcionalidades funcionam off-line com Ollama. +</TLDR> + +--- + +## Instalação e Configuração + +### Como instalar o Notemd no Obsidian? + +Abra o Obsidian **Configurações → Plugins da Comunidade → Navegar** → pesquise por **"Notemd"** → **Instalar** → **Ativar**. + +**Requisitos:** +- Obsidian 0.15.0+ +- Suportado em Desktop (Windows, macOS, Linux) e Mobile (iOS, Android) + +**Instalação manual:** +1. Baixe o `main.js`, o `styles.css` e o `manifest.json` em [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) +2. Coloque-os no `<your-vault>/.obsidian/plugins/notemd/` +3. Recarregue o Obsidian e ative o plugin + +**Estatísticas:** mais de 4 mil downloads, 44 versões lançadas, licenciado sob MIT. + +--- + +## Configuração do LLM + +### Quais provedores LLM o Notemd suporta? + +O Notemd suporta **mais de 30 provedores**: + +**Provedores em nuvem:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonnet, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**Focados na China:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**Locais/auto-hospedados:** +- Ollama +- LM Studio +- Qualquer endpoint compatível com OpenAI + +**Gateways:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models, Fireworks, LiteLLM, Nebius, Cerebras +- Hugging Face, Vercel AI Gateway, Requesty + +### O Notemd pode funcionar com LLMs locais? + +**Sim, totalmente suportado.** O Notemd funciona com: +- **Ollama** (integração nativa) +- **LM Studio** (por meio de endpoint compatível com OpenAI) +- **vLLM, LocalAI, text-generation-webui** (em modo compatível com OpenAI) + +Todas as tarefas funcionam com modelos locais: vinculação, geração de conceitos, tradução, pesquisa e geração de diagramas. + +**Exemplo de combinação:** +- Ollama (local) para vinculação → rápido, privado, sem custo +- OpenAI para pesquisa → alta qualidade, integração com busca na web +- Gemini para tradução → suporte multimodal + +### Como configurar modelos diferentes para tarefas diferentes? + +Em **Configurações do Notemd**, cada tarefa tem seletores independentes de provedor/modelo: + +| Tarefa | Configuração de exemplo | +|------|----------------------| +| **Vinculação** | DeepSeek (rápido, barato) | +| **Geração de Conceitos** | Claude Opus (alta qualidade) | +| **Pesquisa** | Perplexity ou GPT-4o (baseado na web) | +| **Tradução** | Gemini Flash (multimodal) | +| **Geração de Diagramas** | Ollama (local, privado) | + +Essa otimização por tarefa equilibra velocidade, custo e qualidade. + +--- + +## Recursos Básicos + +### Como Notemd difere de ChatGPT na leitura de artigos? + +| Dimensão | ChatGPT | Notemd | +|-----------|---------|--------| +| **Local de saída** | Histórico de conversas (efêmero) | Obsidian vault (arquivos persistentes) | +| **Formato do resultado** | Resposta de texto | Links da wiki, notas conceituais, diagramas, traduções | +| **Valor a longo prazo** | Desaparece após a sessão | Acumula em uma base de conhecimento | +| **Reutilizabilidade** | É necessário fazer nova consulta | Os arquivos permanecem, o link evolui | + +**Use ChatGPT para:** Perguntas e respostas rápidas, explicações únicas +**Use Notemd para:** Criar uma base de conhecimento persistente e estruturada ao longo de semanas/meses + +### Como Notemd adiciona links da wiki às notas? + +**Processo:** +1. Você executa "Process file (add links)" em uma nota +2. Notemd envia o texto para o LLM configurado por você +3. O LLM identifica conceitos-chave no contexto +4. Notemd insere `[[wiki-links]]` em cada ocorrência do conceito +5. Opcionalmente, ele cria automaticamente notas de conceito em uma pasta que você especificar + +**Recursos:** +- Supressão de sinônimos (evita duplicatas como "transformer" vs "transformers") +- Backlinks das notas de conceito para a fonte +- Integridade dos links ao renomear/excluir +- Modo de extração pura (extrai conceitos sem modificar o original) + +### O que é o fluxo de trabalho de um clique do Notemd? + +**Fluxos de trabalho de um clique** conectam várias ações em um **único botão na barra lateral**. + +**Fluxo de trabalho padrão:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**Resultado:** Um clique executa: +1. Adicionar links wiki à nota atual +2. Gerar notas de conceito para novos termos +3. Pesquisar e acrescentar contexto +4. Comprimir em um diagrama Mermaid + +**Fluxos de trabalho personalizados:** Defina os seus próprios no Painel de Configurações usando o formato DSL. Cada fluxo de trabalho se torna um botão reutilizável na barra lateral. + +### Como Notemd se compara com Copilot ou Smart Connections? + +Esses plugins resolvem problemas diferentes: + +- **Copilot** — Foco em conversação. Você conversa com uma IA sobre suas anotações. As respostas da IA ficam no painel de chat; elas não modificam seu vault. +- **Smart Connections** — Foco em descoberta. Ele encontra anotações semanticamente semelhantes usando embeddings. Ele não cria nem modifica conteúdo. +- **Notemd** — Foco em escrita. A IA processa suas anotações e gera resultados estruturados (links de wiki, notas conceituais, pesquisas, diagramas, traduções) diretamente em seu vault como arquivos persistentes. + +| O que você precisa | Plugin recomendado | +|----------------|-------------------| +| Conversar com IA sobre anotações | Copilot | +| Encontrar anotações semelhantes/relacionadas | Smart Connections | +| Inserir automaticamente links de wiki e criar um grafo de conhecimento | **Notemd** | +| Gerar notas conceituais com backlinks | **Notemd** | +| Criar diagramas a partir do conteúdo das anotações | **Notemd** | +| Pesquisar um tópico e adicionar resumos | **Notemd** | + +Todos os três podem ser usados juntos — eles se complementam em vez de competir. + +--- + +## Pesquisa e Tradução + +### Quais serviços de busca funcionam com a pesquisa Notemd? + +| Serviço | É necessário o API Key | Qualidade | Observações | +|---------|-----------------|---------|-------| +| **Tavily** | Sim | Alta | Busca recomendada, otimizada por IA | +| **DuckDuckGo** | Não | Experimental | Sem configuração, qualidade inferior | + +**Como funciona "Pesquisar e resumir":** +1. Você seleciona um tópico ou executa a operação na nota atual +2. Notemd consulta o serviço de busca +3. Resultados → resumo por LLM +4. O resumo é anexado à sua nota com citações das fontes + +**Resultado:** Rastro de pesquisa persistente no seu vault, não em abas do navegador. + +### O Notemd suporta chinês ou outros idiomas? + +**Idiomas do UI:** mais de 21 suportados +- Inglês, 中文 (简体), 中文 (繁體), 日本語, 한국어 +- Árabe, Alemão, Francês, Espanhol, Russo, Português, Italiano +- Hindi, Bengali, Tailandês, Vietnamita, Turco, Polonês, Tcheco e mais + +**Idioma de saída da tarefa:** Configuração independente +- UI em chinês + saída em inglês: ✅ +- UI em inglês + saída em chinês: ✅ + +**Caso de uso:** Pesquisadores bilíngues podem manter o UI no idioma nativo enquanto geram notas em inglês para publicação. + +--- + +## PDF e fluxos de trabalho acadêmicos + +### Posso usar Notemd para leitura de artigos/PDF? + +**Sim.** Fluxo de trabalho: +1. **Converter PDF em Markdown** usando [MinerU](https://github.com/opendatalab/MinerU) (recomendado para artigos acadêmicos) +2. Abrir o arquivo Markdown no Obsidian +3. Executar tarefas do Notemd: + - **Adicionar links wiki** aos termos-chave + - **Gerar notas conceituais** para terminologia desconhecida + - **Extrair texto original** por meio de perguntas personalizadas (por exemplo, "Quais são as limitações?") + - **Pesquisar o contexto** dos métodos/datasets citados + - **Traduzir** seções difíceis + - **Comprimir para diagrama Mermaid** a fim de facilitar a compreensão estrutural + +**Versão 1.9.1+:** Extração da estrutura do capítulo com suporte a TOC + +**Resultado:** A leitura do seu artigo se torna um artefato de conhecimento estruturado e linkável em seu vault. + +--- + +## Diagramas e visualização + +### Quais tipos de gráficos/diagramas o Notemd pode gerar? + +| Tipo | Suporte | Recursos | +|------|---------|----------| +| **Mermaid** | Completo | Diagrama de fluxo, sequência, classe, estado, ER, Gantt, correção automática de sintaxe, validação em lote | +| **JSON Canvas** | Completo | Layouts nativos do canvas Obsidian | +| **Vega-Lite** | Completo | Gráficos de dados, séries temporais, barras, dispersão, personalizáveis | +| **HTML** | Alternativa | Para tipos de diagrama não suportados | +| **Editável HTML/SVG** | Alvo explícito | Inline autônomo SVG com anotações no estilo Draw.io semântico | +| **Artefatos Draw.io / Drawnix** | Limite de exportação | XML/JSON determinístico a partir de `SemanticFigureModel`; sem dependência de tempo de execução do editor | + +**Correção automática Mermaid:** Modo de depuração avançado para reparos: +- Setas quebradas (`-->`, `-.->`, `==>`) +- Rótulos e comentários inválidos +- Erros de sintaxe de subgráfico +- Notação de forma (`[`, `(`, `{`, `((`) +- Caracteres de pipe em rótulos +- Anexos de nota + +**Fluxo de trabalho:** +1. Execute "Resumir como diagrama Mermaid" em uma nota +2. Pré-visualizar em modal +3. Exportar como SVG ou PNG +4. Ou salve como arquivo `.mmd` no vault + +--- + +## Código Aberto e Comunidade + +### O Notemd é gratuito e de código aberto? + +**Sim.** +- **Licença:** MIT (permissiva, uso comercial permitido) +- **Código-fonte:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **Sem planos pagos, sem dependência de nuvem, sem telemetria** +- **Comunidade:** 234+ estrelas no GitHub, Discord ativo + +**Você possui:** +- Seus dados (ficam no seu vault) +- Seus fluxos de trabalho (personalize prompts, modelos, chains) +- Sua privacidade (suporte local LLM) + +**Contribuir:** Solicitações de pull request são bem-vindas. Veja [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +## Solução de problemas + +### Minhas chamadas LLM estão falhando. O que devo verificar? + +1. **A chave API está válida?** Verifique Configurações → Configuração do Fornecedor +2. **O nome do modelo está correto?** Use o botão "获取模型列表" (Obter Lista de Modelos) nas configurações +3. **A rede é acessível?** Alguns provedores exigem VPN +4. **Limites de taxa?** Verifique o painel do provedor +5. **Diagnóstico:** Execute "Teste de Conexão" nas configurações para obter logs de erro detalhados + +### Notemd está lento. Como posso acelerá‑lo? + +1. **Use modelos mais rápidos:** DeepSeek, Gemini Flash, GPT-4o-mini +2. **Reduza o tamanho dos blocos:** Configurações → Smart Chunking → diminua a contagem de palavras +3. **Processamento paralelo:** Configurações → Processamento em Lote → aumente a concorrência +4. **Modelos locais:** Ollama para tarefas que não precisam de busca na web + +### O Notemd pode funcionar 100% off‑line? + +**Sim, com Ollama.** Sem chave API, sem internet, nenhum dado sai da sua máquina: + +1. Instale [Ollama](https://ollama.com) e execute `ollama serve` +2. Nas configurações do Notemd, selecione **Ollama** como seu provedor +3. Baixe um modelo: `ollama pull llama3` (ou qwen2.5, gemma2, etc.) +4. Todos os recursos funcionam: links da wiki, notas conceituais, tradução, diagramas + +**Pesquisa DuckDuckGo** também funciona sem chave API (qualidade experimental). + +Com provedores em nuvem (OpenAI, Anthropic, Google, DeepSeek, etc.), o conteúdo da sua nota é enviado como entrada API. Verifique a política de privacidade de cada provedor para detalhes sobre o tratamento de dados. + +### Meus dados são enviados para a nuvem? + +**Depende do seu provedor:** + +| Tipo de provedor | Dados enviados para a nuvem? | Observações | +|--------------|---------------------|-------| +| **Ollama (local)** | Não | Tudo permanece no seu computador | +| **LMStudio (local)** | Não | Idêntico ao Ollama | +| **DeepSeek, OpenAI, etc.** | Sim | O conteúdo da observação é enviado como entrada API para processamento | +| **OpenRouter, AIHubMix** | Sim | Gateway que roteia para provedores de nuvem | + +O Notemd em si coleta **nenhuma telemetria, nenhuma análise, nenhum dado do usuário**. O plugin é totalmente de código aberto (MIT). Os únicos dados que saem da sua máquina são aqueles que você envia explicitamente para o provedor LLM configurado. + +### Qual plugin de IA do Obsidian é o melhor para pesquisa? + +Depende do seu fluxo de trabalho de pesquisa: + +| Necessário | Plugin | Por quê | +|------|--------|-----| +| Encontrar artigos/notas relacionadas | Smart Connections | Descoberta de similaridade semântica | +| Conversar sobre suas fontes | Copilot | Conversa com contexto do vault | +| Vincular conceitos automaticamente + gerar notas | **Notemd** | A IA identifica conceitos, insere links e cria notas | +| Pesquisa na web + resumo em notas | **Notemd** | Tavily/DuckDuckGo busca → LLM resumo → anexado à nota | +| Gerar diagramas a partir da pesquisa | **Notemd** | Mermaid/Canvas/Vega-Lite a partir do conteúdo da nota | + +**Combinação recomendada:** Smart Connections (descoberta) + Notemd (estruturação) + Copilot (discussão). + +--- + +## Obter ajuda + +- **Documentação:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **Problemas no GitHub:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **Patrocinador:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..d247807a --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "Notas de Conceito" +description: "Gerar e gerenciar notas de conceito — notas independentes para conceitos-chave extraídos do seu vault" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# Notas de Conceito + +<TLDR> +**Notemd extrai os conceitos-chave das suas notas e cria arquivos de nota de conceito independentes.** O LLM identifica termos principais, gera um arquivo `.md` por conceito em uma pasta configurável e, opcionalmente, adiciona backlinks para a nota de origem. Suporta supressão de sinônimos, seleção de modelo por tarefa, sanitização de nomes de arquivos e um mecanismo de deduplicação em 4 etapas. Isso faz parte do [Obsidian Guia de Gestão de Conhecimento AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Visão Geral + +As notas de conceito são os blocos de construção de uma base de conhecimento interconectada. Quando você processa uma nota, Notemd: + +1. **Envia o seu texto para um LLM** com um prompt de extração estruturado +2. **Analisa as linhas `CONCEPT:`** da resposta do LLM +3. **Cria um arquivo `.md` por conceito** em uma pasta designada +4. **Adiciona backlinks** para a nota de origem (quando habilitado) + +## Como Funciona + +### Pipeline de Extração + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### O Prompt de Extração + +O LLM recebe um prompt que o instrui a: + +- Extrair **substantivos ou frases nominais** centrais ao tópico do documento +- **Priorizar a especificidade** — "Relaxação Dielétrica" em vez de "Relaxação" +- **Normalizar para singular** — "models" vira "model" +- **Suprimir subconceitos** — se "relaxação dielétrica" aparecer, não extraia também "relaxação" +- **Ignorar** seções de referências/bibliografia, substantivos comuns, nomes de empresa/produto +- Exibir um conceito por linha como `CONCEPT: Term Name` + +**Supressão de sinônimos** (opcional): adicionar "Evite extrair sinônimos, conceitos centrais semanticamente semelhantes ou palavras-chave sempre que possível" ao prompt. + +**Domínio de aprendizado focado** (opcional): adicionar `Relevant Fields: [domain]` para restringir a extração a uma disciplina. + +**Sobrescrita de idioma** (opcional): acrescentar "Os conceitos de saída DEVEM estar em [idioma]." + +### Divisão em blocos + +Notas longas são divididas por `settings.chunkWordCount`. Cada bloco é enviado separadamente. Os conceitos de todos os blocos são acumulados em um `Set` — duplicatas entre blocos são removidas silenciosamente. Erros LLM em blocos individuais não interrompem a operação. + +## Criação da Nota do Conceito + +### Regras de Nome do Arquivo + +| Regra | Comportamento | +|------|----------| +| Hífens/sublinhados | Substituídos por espaços | +| Caracteres especiais | Removidos: barra invertida, barra forward, dois pontos, asterisco, ponto de interrogação, aspas, chaves angulares, pipe, hash, caret, parênteses | +| Espaços em branco | Colapsados e aparados | +| Máxima extensão | 100 caracteres (cortado + recortado) | +| Resultado vazio/todos pontos | Ignorado silenciosamente | + +Exemplo: `A-B: Key*Term` torna‑se `A B KeyTerm.md` + +### Modelos + +**Modelo completo** (backlinks ativados, modelo mínimo desativado): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**Modelo mínimo** (quando `extractConceptsMinimalTemplate: true`): + +```markdown +# Concept Name +``` + +### Atualizando notas existentes + +Quando um arquivo de conceito já existe: + +1. Se os backlinks estiverem ativados e a nota de origem ainda não estiver listada, adicione um backlink +2. Se houver uma seção `## Linked From`, insira antes do próximo cabeçalho `##` +3. Se não houver `## Linked From`, adicione a seção no final +4. Backlinks duplicados são verificados e ignorados + +### Configuração + +| Parâmetro | Padrão | Efeito | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | Alternador mestre. Desativado = nenhuma nota criada | +| `conceptNoteFolder` | `''` (desativado) | Caminho da pasta para notas conceituais | +| `extractConceptsMinimalTemplate` | `true` | Notas apenas com título (sem "Linked From") | +| `extractConceptsAddBacklink` | `false` | Adicionar backlinks durante a extração independente | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | LLM por tarefa para extração de conceitos | +| `extractConceptsLanguage` | `'en'` | Idioma de saída para nomes de conceitos | +| `replaceSynonymsDuringConceptExtraction` | `false` | Ativar supressão de sinônimos no prompt | +| `generateConceptLogFile` | `false` | Escrever uma lista `.log` com os conceitos criados | + +**Importante:** As configurações `extractConceptsAddBacklink` e `extractConceptsMinimalTemplate` afetam apenas o **comando de extração dedicado**. O comando "Adicionar Links" sempre cria notas com template completo e backlinks. + +## Deduplicação + +O comando dedup (`Notemd: Check & remove duplicate concept notes`) executa uma análise em 5 etapas: + +### Etapa 1: Comparação exata do nome do arquivo + +Comparação insensível a maiúsculas/minúsculas do nome do arquivo dentro do escopo configurado. + +### Etapa 2: Detecção de forma plural + +Remoção de sufixos: `-ies` para `-y`, `-es` removido, `-s` removido. Compara a forma singular com os arquivos do escopo. Não lida com plurais irregulares (children/child). + +### Etapa 3: Normalização de símbolos + +Aplica-se: `toLowerCase()`, substitua hífens/sublinhados por espaço, remova caracteres não alfanuméricos e elimine espaços em branco. Itens que se normalizam da mesma forma são marcados. + +### Passo 4: Contenção de Palavra Única + +As notas de conceito de uma única palavra são verificadas em relação aos nomes dos arquivos de escopo com várias palavras. Não é executado quando o escopo for `concept_folder_only`. + +### Passo 5: Confirmação e Exclusão + +Todos os candidatos são exibidos em um modal de confirmação. Os itens aprovados são movidos para a lixeira do sistema. A operação pode ser cancelada entre cada exclusão. + +### Modos de Escopo + +| Modo | Comparado com | +|------|-------------------| +| `vault` (padrão) | Todos os arquivos do vault `.md`, excluindo a pasta de conceitos | +| `concept_folder_only` | Outras notas de conceito dentro da pasta | +| `include` | Arquivos em pastas específicas listadas | +| `exclude` | Todos os arquivos do vault, excluindo a pasta de conceitos e as pastas listadas | + +## Uso + +### Extrair Conceitos (Independente) + +1. Abra uma nota +2. Execute **"Notemd: Extrair conceitos"** a partir da paleta de comandos +3. As notas de conceito são criadas na pasta configurada + +### Extrair + Gerar Conteúdo + +**"Notemd: Extrair conceitos e gerar títulos"** — extrai os conceitos e, em seguida, executa "Gerar a partir do Título" em cada nota da pasta de conceitos. Isso gera conteúdo para **todas** as notas de conceito da pasta, não apenas para as recém-criadas. + +### Criar Link de Wiki a Partir da Seleção + +1. Destacar texto no editor +2. Executar **"Notemd: Criar link de wiki a partir da seleção"** +3. O texto é envolto em `[[...]]` e uma nota de conceito é criada + +## Dicas + +- **Defina primeiro a pasta de conceitos** — sem ela, nenhuma nota será criada. Um modal de aviso aparece se não for definida. +- **Use modelos por tarefa** — a extração de conceitos funciona bem com modelos mais baratos (GPT-4o-mini, DeepSeek). Guarde modelos caros para pesquisa/tradução. +- **Ative a supressão de sinônimos** em domínios técnicos onde vários termos se referem ao mesmo conceito. +- **Dedupe regularmente** — execute o comando de deduplicação após o processamento em lote para identificar quase duplicatas. +- **O arquivo de log é sobrescrito** a cada execução, não anexado. Copie‑o se precisar dos resultados anteriores. + +--- + +## Próximos passos + +- [Wiki-Links](./wiki-links) — Como os conceitos são vinculados inline +- [Diagrams](./diagrams) — Visualizar relações entre conceitos +- [Workflows](./workflows) — Encadear extração com outras tarefas diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..83d39fc1 --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "Diagramas" +description: "Gerar Mermaid, JSON Canvas, Vega-Lite, HTML, artefatos de figura editáveis e diagramas circuitikz futuros restritos a partir de suas anotações, utilizando uma arquitetura baseada em especificações primeiro" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Diagramas + +<TLDR> +**Notemd gera diagramas a partir de suas anotações por meio de um pipeline baseado em especificações primeiro.** O LLM produz um `DiagramSpec` JSON independente do renderizador, e então adaptadores dedicados o traduzem para Mermaid, JSON Canvas, Vega-Lite, HTML ou saída editável HTML/SVG. Suporta 8 tipos de intenção, cadeias de fallback automático, visualização ao vivo com exportação para SVG/PNG, verificação semântica e geração aprimorada com conhecimento local. +</TLDR> + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). + +## Arquitetura: Pipeline Baseado em Especificações + +O Notemd nunca solicita que o LLM produza diretamente sintaxe Mermaid/Vega/Canvas. Em vez disso: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**Por que especificações primeiro?** Os LLM frequentemente geram sintaxe inválida para o renderizador (Mermaid em particular). Um `DiagramSpec` estruturado pode ser validado antes da renderização, e a mesma especificação pode alimentar vários renderizadores como fallbacks. + +## Tipos de Diagramas Suportados + +| Intenção | Renderizador Primário | Fallbacks | Caso de Uso | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | Desdobramento hierárquico de tópicos | +| `flowchart` | Mermaid | HTML | Fluxos de processo, árvores de decisão | +| `sequence` | Mermaid | HTML | Interações cliente-servidor, protocolos | +| `classDiagram` | Mermaid | HTML | Relacionamentos entre classes OOP | +| `erDiagram` | Mermaid | HTML | Esquemas de banco de dados, relações entre entidades | +| `stateDiagram` | Mermaid | HTML | Máquinas de estado, modelos de ciclo de vida | +| `canvasMap` | JSON Canvas | Mermaid → HTML | Mapas conceituais, grafos de conhecimento | +| `dataChart` | Vega-Lite | Mermaid → HTML | Gráficos de barras, linhas, áreas, dispersão, pizza e tabelas | + +## Detecção de intenção + +Notemd infere o melhor tipo de diagrama a partir do conteúdo da sua anotação usando pontuação de palavras-chave: + +| Intenção | Gatilhos | Confiança | +|--------|----------|------------| +| `dataChart` | Tabelas, células numéricas, palavras-chave de métrica/tendência, porcentagens | 0.88 | +| `sequence` | Vocabulário de solicitação/resposta (4+ correspondências) ou marcadores `->`/`=>` | 0.82 | +| `erDiagram` | Chave primária, chave estrangeira, entidade, esquema (2+ correspondências) | 0.80 | +| `stateDiagram` | Estado, transição, pendente, em execução, falho (3+ correspondências) | 0.76 | +| `flowchart` | Passos numerados (2+) ou vocabulário if/then/else/workflow | 0.74 | +| `canvasMap` | Mapa conceitual, grafo de conhecimento, espacial, cluster | 0.72 | +| `mindmap` | Valor padrão de fallback | 0.55 | + +Sobrescreva usando a configuração **Tipo de diagrama preferido**, o seletor da barra lateral ou uma opção explícita da paleta de comandos. + +## Seleção do alvo de renderização + +O pipeline experimental baseado em especificações agora possui dois controles independentes: + +| Controle | Parâmetro | Efeito | +|---------|---------|--------| +| Tipo de diagrama preferido | `preferredDiagramIntent` | Direciona a forma semântica do `DiagramSpec` gerado | +| Alvo de renderização preferido | `preferredDiagramRenderTarget` | Escolhe o processador de artefatos para **Gerar diagrama** e **Visualizar diagrama** | + +Defina **Alvo de renderização preferido** como **Auto** como padrão do planejador, ou escolha Mermaid, JSON Canvas, Vega-Lite, HTML ou Editable HTML/SVG explicitamente. A sobrescrita aplica‑se apenas aos comandos de artefato e visualização. O comando padrão **Resumir como diagrama Mermaid** permanece vinculado a saídas compatíveis com Mermaid, para que os fluxos de trabalho existentes em Markdown não alterem silenciosamente o formato. + +Essa separação é importante porque uma intenção `flowchart` agora pode ser renderizada como Mermaid para notas em Markdown, como HTML para fallback robusto, ou como Editable HTML/SVG para edição posterior. Draw.io e Drawnix continuam sendo exportadores de artefatos CLI e não alvos de renderização dentro do plugin. + +## Uso + +### Gerar um Diagrama + +1. Abra uma nota +2. Execute **"Notemd: Gerar diagrama"** a partir da paleta de comandos +3. Notemd detecta a intenção, gera a especificação, realiza a renderização e salva o artefato + +**Arquivos de saída por alvo:** + +| Alvo | Extensão | Padrão de Nome do Arquivo | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| Editável HTML/SVG | `.html` | `{note}_diagram.html` | + +### Visualizar um Diagrama + +1. Executar **"Notemd: Visualizar diagrama"** +2. Uma janela modal é aberta com o diagrama renderizado +3. Exportar como SVG ou PNG usando os botões da barra de ferramentas + +**Abrir visualização automaticamente** está disponível nas configurações — após a geração, a janela modal de visualização é aberta automaticamente. + +A janela modal de visualização também possui um painel de diagnóstico de artefatos. Os renderizadores e verificações de smoke podem anexar `RenderArtifact.diagnostics`; a janela mostra um resumo de diagnóstico com contagens de erros/avisos/informações, seguido da gravidade, tipo de diagnóstico, mensagem e sugestões de reparo ao lado da visualização. O mesmo resumo é exibido nas entradas do histórico de visualizações, permitindo comparar tentativas repetidas de circuitikz smoke sem abrir cada entrada. Para artefatos que possuem conteúdo de origem, mas não podem ser renderizados inline ou por meio do caminho de iframe HTML, a janela modal agora recorre a uma visualização apenas de código-fonte em vez de forçar um iframe vazio. Isso permite realizar verificações de compile/render smoke de circuitikz, verificações de tokens de texto de SVG, verificações de captura de tela em branco PNG e relatórios futuros de sobreposição com uma superfície visível de UI, sem tornar o TikZJax ou o LaTeX uma dependência obrigatória em tempo de execução do plugin ou fingir que o texto de origem é uma renderização visual verificada. + +### Modo Legado Mermaid + +Quando `enableExperimentalDiagramPipeline` está desativado, Notemd envia um prompt direto de Mermaid ao LLM. Isso ignora completamente o pipeline padrão. Se o pipeline experimental falhar, ele recorre a este modo. + +## Backends de Renderização + +### Mermaid + +6 adaptadores (mapa mental, fluxograma, sequência, ER, classe, estado) traduzem `DiagramSpec` para sintaxe de Mermaid. Após a geração, `mermaid.parse()` valida a saída. Se a validação falhar: + +1. **Retentativa de LLM** — uma tentativa com a mensagem de erro de Mermaid como contexto +2. **Recuo Mínimo** — um diagrama básico de Mermaid a partir dos IDs dos nós da especificação + +**Legacy Mermaid Fixer** corrige automaticamente erros de sintaxe comuns LLM: normalização de diretivas note, escape de rótulos pipe, reposicionamento de ponto e vírgula, aspas inteligentes, setas com dois traços, discrepâncias de formato e muito mais. + +### JSON Canvas + +Gera formato Obsidian JSON Canvas com layout espacial: +- Os nós são posicionados por profundidade (x = profundidade × 420) e índice (y = índice × 170) +- A largura é estimada a partir do comprimento do rótulo +- Arestas com `fromSide: 'right'`, `toSide: 'left'`, `toEnd: 'arrow'` + +### Vega-Lite + +Cria especificações completas Vega-Lite v5 JSON com codificação automática: +- **Gráficos cartesianos** (barras/linha/área/ponto/dispersão): canais x + y mais cor para múltiplas séries +- **Pizza**: theta = y (quantitativo), cor = x (nominal) +- **Tabela**: linha = x, texto = y + coluna = série + +Os patches de tema escuro e claro são fundidos profundamente antes da compilação. + +### HTML + +Fallback universal. Documento HTML autônomo com: +- Metadados CSP +- Modo claro/escuro por meio de `prefers-color-scheme` +- Rótulos UI localizados para 20 idiomas +- Seções: hero, estrutura (árvore de nós), relacionamentos, destaques, tabelas de séries de dados + +### Editável HTML/SVG + +Alvo explícito de figura para fluxos de trabalho de exportação editáveis. Ele projeta `DiagramSpec` em um `SemanticFigureModel` determinístico e, em seguida, gera um documento autônomo HTML com grupos SVG embutidos que contêm anotações no estilo Draw.io: + +- `data-drawio-type`, `data-drawio-id` e `data-drawio-role` em nós semânticos +- `data-drawio-source` e `data-drawio-target` em arestas semânticas +- identificadores estáveis de nó/aresta após normalização de espaços em branco e tratamento de colisões +- sem scripts, sem fontes externas e sem ativos remotos + +Esse alvo ainda não é intencionalmente o caminho padrão do planejador. Ele está disponível como um alvo de renderização explícito enquanto o caminho do produto prova o comportamento de edição em ferramentas reais. + +### Limites de exportação Draw.io e Drawnix + +A implementação atual mantém o suporte a editores de terceiros na fronteira do artefato: + +| Alvo | Contrato | Dependência em tempo de execução | +|--------|----------|--------------------| +| Draw.io | `mxfile` XML descompactado e determinístico a partir de `SemanticFigureModel` | nenhum na execução do plugin ou no CI | +| Drawnix | subconjunto mínimo de `.drawnix` JSON usando elementos `geometry` e `arrow-line` | nenhum na execução do plugin ou no CI | + +O trade‑off é intencional: Notemd pode verificar rótulos visíveis, IDs estáveis e cobertura de primitivas suportadas sem incorporar o Diagrams.net Desktop, Drawnix, Plait ou o estado do editor apenas para navegador no plugin. + +### circuitikz / TikZJax Direção + +Os diagramas de circuito não são o mesmo problema que os fluxogramas genéricos. A sintaxe correta para circuitos elétricos costuma ser **circuitikz**, renderizada em Obsidian por meio de plugins como TikZJax. TikZJax pode carregar pacotes como `circuitikz`, `pgfplots`, `tikz-cd` e `chemfig`, o que o torna atraente para anotações de física, circuitos, química e matemática. + +O risco é que o TikZ gerado diretamente por LLM seja frágil: + +- uma topologia de circuito complexa pode ser eletricamente correta, mas visualmente ilegível; +- fios e rótulos sobrepostos podem tornar uma lista de rede correta inutilizável para anotações de estudo; +- falta de preâmbulos de pacotes, âncoras incorretas ou nomes de componentes inválidos podem impedir a renderização; +- o feedback do renderizador costuma ser em nível de imagem, enquanto o LLM gera geometria em nível de texto. + +A arquitetura melhor é tratar circuitikz como um alvo de diagrama restrito, e não como um prompt livre: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +O modelo de primeira classe deve descrever a topologia e o layout do circuito separadamente: + +| Camada | Responsabilidade | Exemplo | +|-------|----------------|---------| +| Topologia | nós elétricos e conexões de componentes | `VDD -> RD -> drain(M1)`, `source(M1) -> GND` | +| Layout | posicionamento na grade, orientação, vias de roteamento | `M1 at (3,2.2)`, entrada esquerda, saída direita | +| Estilo | pacote, convenção de tensão, rótulos, âncoras | `\begin{circuitikz}[american voltages]` | +| Validação | registro de compilação, ausência de âncoras, verificações de sobreposição/tela | TikZJax/Diagnósticos LaTeX mais revisão visual | + +### Protótipo atual circuitikz + +Notemd agora inclui o primeiro protótipo de repositório restrito para esta direção. Ele é intencionalmente offline e vinculado a um modelo: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +O protótipo adiciona uma fronteira `CircuitSpec` separada e um exportador determinístico para seis famílias de referência dourada: + +| Tipo de circuito | Referência dourada | Garantia de corrente | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | valida `VDD -> R_D -> M1.D`, `vin -> M1.G`, `M1.S -> GND` e `M1.D -> vout` antes de escrever LaTeX | +| `cmos-inverter` | `cmos-inverter-v1` | valida topologia PMOS-over-NMOS, entrada de porta compartilhada, saída de dreno compartilhada, `VDD -> MP.S` e `MN.S -> GND` antes de escrever LaTeX | +| `cmos-buffer` | `cmos-buffer-v1` | valida duas etapas de inversor em cascata, nó intermediário `vmid`, `vout` restaurado e trilhas VDD/GND compartilhadas antes de escrever LaTeX | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | valida dispositivos paralelos PMOS/NMOS entre `vin` e `vout` com controles complementares `phib` / `phi` antes de escrever LaTeX | +| `cmos-nand2` | `cmos-nand2-v1` | valida o pull-up paralelo de PMOS, o pull-down em série de NMOS, entradas duplas `va` / `vb` e `vout` antes de escrever LaTeX | +| `cmos-nor2` | `cmos-nor2-v1` | valida o pull-up em série de PMOS, o pull-down paralelo de NMOS, entradas duplas `va` / `vb` e `vout` antes de escrever LaTeX | + +Este ainda não é um gerador geral de TikZ. Ele não compila LaTeX, chama TikZJax, inspeciona capturas de tela ou executa reparo automático de imagem com feedback. Essas funcionalidades ficam para fases posteriores. + +O comando Diagrama de Pré-visualização pode reabrir diretamente os artefatos de código circuitikz salvos quando a extensão do arquivo é `.tex` ou `.tikz` e o código contém `\usepackage{circuitikz}` ou `\begin{circuitikz}`. Esse modo é uma pré-visualização apenas de código circuitikz: a janela modal exibe o código, diagnósticos, controles de cópia/gravar e metadados de histórico, mas não compila LaTeX nem chama TikZJax durante a execução do plugin. + +Agora a mesma pré-visualização apenas de código abrange os artefatos salvos Draw.io e Drawnix. Arquivos `.drawio` são aceitos quando se assemelham a Draw.io XML (`mxfile` ou `mxGraphModel`), e arquivos `.drawnix` são aceitos quando são Drawnix JSON com `type: "drawnix"` e um array `elements`. O plugin ainda não incorpora o diagrams.net nem o host de quadro branco Drawnix; essas pré-visualizações exibem código, diagnósticos e histórico de artefatos sem exigir um editor visual dentro do plugin. + +Para reparo que preserva a topologia, passe a especificação pré-reparo como referência antes de aceitar um candidato reparado: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +O mecanismo de proteção usa `createCircuitTopologySignature` e `assertCircuitTopologyUnchanged` para comparar `circuitKind`, `goldenReferenceId`, redes, IDs/tipos/terminais de componentes e extremidades de conexões não direcionadas antes da saída. Rótulos, texto de título, dicas de layout, ordem de conexão e rótulos de conexão são intencionalmente ignorados. Um candidato que adicione algo curto ou reconfigure um terminal falha com `Circuit topology drift detected` antes que o arquivo `.tex` seja gravado. + +O CLI agora pode analisar um log de compilação existente de LaTeX/TikZJax sem executar um compilador: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +Esse caminho de diagnóstico relata pacotes faltantes como `circuitikz.sty`, chaves desconhecidas de TikZ/circuitikz, erros de sintaxe de caminho do TikZ como falta de pontos e vírgula, argumentos excessivos de chaves desbalanceadas ou rótulos não finalizados, sequências de controle indefinidas, erros gerais do LaTeX, paradas de emergência e avisos de sobrecarga do `\hbox`. Ele continua sendo baseado em logs: execução local de LaTeX/TikZJax e mecanismos de qualidade de captura de tela ainda são tarefas futuras separadas. + +Para verificações rápidas dos mantenedores, o mesmo CLI pode opcionalmente executar um renderizador configurado explicitamente sem analisar comandos de shell: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +O executor de compilação usa `shell: false`, expande os placeholders `{tex}`, `{outputDir}` e `{jobName}` em valores de array de argumentos, lê o `{jobName}.log` gerado e retorna `compileExecution` além de `compileDiagnostics` na saída CLI JSON. `--compile-executable` refere‑se apenas ao caminho do binário ou wrapper do renderizador; flags do renderizador devem estar em valores repetidos de `--compile-arg`. Executáveis vazios falham como `compile-executable-invalid`, binários faltantes falham como `compile-executable-not-found`, e strings executáveis com formato de comando de shell recebem orientações para dividir argumentos de modo que Windows, Linux e macOS sigam o mesmo contrato de execução direta. Com `--expected-artifact`, ele também relata `compileExecution.renderSmoke` e falha no CLI se o renderizador não criar um artefato não vazio. Ele ainda não inclui o LaTeX, torna TikZJax uma dependência em tempo de execução do plugin nem realiza reparo visual em nível de captura de tela. + +Se o artefato esperado for `.svg`, a verificação rápida vai um nível mais a fundo: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +A verificação de fumaça SVG verifica a raiz `<svg>`, dimensões positivas ou `viewBox`, pelo menos um elemento gráfico visível após exclusão de elementos ocultos/translúcidos, quaisquer tokens de texto solicitados, elementos óbvios fora do `viewBox`, rótulos `<text>` / `<tspan>` posicionados sobrepostos de forma óbvia e rótulos de texto óbvios sobrepostos a elementos gráficos por meio de `render-svg-label-overlap`. O texto esperado é procurado no texto visível e em metadados de acessibilidade decodificados como `aria-label`, `<title>` e `<desc>`, de modo que renderizadores que preservam rótulos semânticos fora do `<text>` ainda podem satisfazer a verificação de tokens de texto sem precisar de OCR. A etapa de geometria agora utiliza geometria sensível a transformações para atributos comuns de grupo e elemento `transform`, portanto caixas SVG traduzidas, escaladas, rotacionadas, distorcidas ou transformadas por matriz são verificadas após a composição da transformação. Ela cobre limites exatos de arcos para extremos de arco A/a, limites exatos de curvas Bezier para extremos de curvas C/S/Q/T, limites SVG sensíveis à espessura da linha e verificações de sobreposição de rótulos, geometria de desenho `polyline` / `polygon`, e também resolve a colocação de glifos apenas por caminho a partir de referências `<use href="#...">`, de modo que rótulos convertidos em caminhos de glifo reutilizáveis ainda podem falhar nas verificações de canvas delimitado quando a geometria do glifo colide com o `viewBox`. Vários rótulos `tspan` posicionados sob um mesmo pai `<text>` são comparados como caixas de rótulo separadas, o que detecta saídas no estilo LaTeX SVG que, de outra forma, fundiriam rótulos distintos em um único nó de texto. Caixas SVG `text` e `tspan` posicionadas respeitam os valores `start`, `middle` e `end`, de modo que rótulos centralizados e alinhados à direita podem acionar diagnósticos de sobreposição de texto/rótulo sem exigir layout de texto no nível do navegador. Caminhos de glifo apenas de definição dentro de `<defs>` não são contados como elementos gráficos visíveis, mas seus próprios atributos locais de definição `transform` são aplicados antes da colocação `<use>`, de modo que definições de glifo escaladas ou espelhadas não sejam subcontadas. A verificação rótulo‑vs‑desenho utiliza uma pequena tolerância para caixas de desenho e o valor declarado `stroke-width`, de modo que fios finos, fios grossos e contornos poligonais de componentes podem ser considerados falhas potenciais de legibilidade de rótulo quando seu traço visível alcança um rótulo. Rótulos de glifo apenas por caminho resolvidos a partir de `<use href="#...">` também são comparados com caixas de desenho e falham com `render-svg-path-glyph-overlap` quando a geometria de glifo reutilizável sobreposta fios ou componentes. Se um renderizador converter rótulos em glifos por caminho reutilizáveis em vez de `<text>` pesquisáveis e não preservar metadados de acessibilidade, o relatório de fumaça registra `pathOnlyGlyphUseCount` e falha no token de texto solicitado por meio de `render-svg-text-path-only`, em vez de fingir que o rótulo simplesmente está ausente. Outras falhas são relatadas por meio de `render-svg-invalid`, `render-svg-dimension-missing`, `render-svg-no-visible-elements`, `render-svg-text-missing`, `render-svg-out-of-bounds`, `render-svg-text-overlap`, `render-svg-label-overlap` ou `render-svg-path-glyph-overlap`. As verificações de token de texto e sobreposição devem ser tratadas apenas como verificação estrutural para renderizadores que preservam rótulos como texto SVG pesquisável ou metadados de acessibilidade; saídas apenas por caminho SVG ainda precisam da etapa posterior de captura de tela/OCR para comprovar a legibilidade visual dos rótulos, e essa verificação de fumaça ainda não garante cobertura completa de SVG caminhos. + +Grupos e elementos ocultos SVG são sempre ignorados durante a contagem de elementos visíveis e a coleta de geometria. Atributos ou estilos inline `display:none`, `visibility:hidden`, `visibility:collapse` e o geral `opacity:0` não fazem com que um artefato de renderização vazio passe na verificação de saída visível. + +As definições de glifo apenas por caminho podem ser caminhos diretos ou contêineres agrupados/símbolos dentro de `<defs>`. A verificação de fumaça resolve a geometria dos caminhos filhos a partir de `<g id="...">` e `<symbol id="...">` antes da colocação `<use>`, de modo que a saída de glifo envolto ainda alimenta as verificações de `pathOnlyGlyphUseCount`, canvas delimitado e `render-svg-path-glyph-overlap`. + +O analisador de caminho também rastreia o início de subcaminhos e redefine o ponto atual em `Z/z`, de modo que comandos relativos após um subcaminho fechado continuem a partir do ponto correto SVG em vez de gerar diagnósticos falsos de `render-svg-out-of-bounds`. + +A mesma etapa de geometria segue a gramática SVG para decimais com ponto inicial e sinais de mais explícitos, de modo que coordenadas compactas dvisvgm como `.5`, `-.5` ou `+.5` permanecem fracionárias durante as verificações de limite, em vez de gerarem geometria fora dos limites falsa ou serem ignoradas. + +Se o renderizador emitir `.png`, o mesmo caminho esperado para artefatos resultará em uma primeira captura de tela de teste: Notemd decodifica arquivos PNG de cor indexada de 1/2/4/8 bits não entrelaçados, arquivos PNG em tons de cinza de 1/2/4/8/16 bits e arquivos PNG em tons de cinza-alfa/RGB/RGBA de 8/16 bits. Imagens em cor indexada e em tons de cinza subbyte suportam amostras compactadas; imagens em cor indexada também suportam PLTE e dados tRNS opcionais; imagens em tons de cinza/RGB suportam amostras transparentes tRNS. Amostras diretas de 16 bits são normalizadas para o mesmo espaço de comparação RGBA de 8 bits usado pelas verificações de teste. A verificação de teste confirma dimensões positivas, registra os limites do primeiro plano como `foregroundBounds`, registra a densidade do primeiro plano dentro dessa caixa como `foregroundDensity`, falha com `render-png-blank` quando cada pixel visível corresponde à cor de fundo no canto superior esquerdo, falha com `render-png-content-clipped` quando o conteúdo do primeiro plano toca a borda da imagem, falha com `render-png-foreground-too-small` quando uma captura de tela grande tem menos de quatro pixels de primeiro plano e falha com `render-png-foreground-dense` quando os pixels do primeiro plano são excepcionalmente densos dentro de uma caixa delimitadora não trivial. Formatos PNG não suportados causam falha com `render-png-unsupported`, além de orientações específicas para PNGs entrelaçados Adam7 ou profundidades de cor indexada não suportadas. Isso detecta capturas de tela vazias, recortes óbvios da tela, pegadas de primeiro plano subrenderizadas, falhas de superlotação no nível do primeiro pixel e configurações incorretas de exportação de PNG pelo renderizador, sem exigir dependência de shell específica da plataforma. Não se trata ainda de reconhecimento de rótulos em nível OCR, detecção precisa de sobreposição de texto ou reparo de imagem que preserve a topologia. + +Quando os diagnósticos indicam uma compilação falha ou execução de render-smoke inválida, o CLI também pode gerar um resumo de reparo que preserva a topologia: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +O resumo de reparo utiliza o esquema `notemd.circuitikz.repair-brief.v1` e contém a fonte `CircuitSpec`, assinatura de topologia, diagnósticos de compilação/render, edições permitidas, edições de topologia proibidas, próximos passos de verificação e um `repairPrompt` estruturado. O papel do prompt é `topology-preserving-circuitikz-repair`; sua lista `diagnosticFocus` é derivada dos diagnósticos de compilação/render, e seus requisitos `acceptanceCriteria` exigem validação do candidato além de novas compilações e verificações de render-smoke. Trata‑se do formato de transferência para um ciclo posterior de reparo, não da afirmação de que Notemd já executa reparo visual autônomo. + +Após a geração de um candidato de reparo, o mesmo CLI pode validá‑lo em relação ao resumo antes de gerar a saída: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief` verifica a assinatura de topologia do candidato extraída do resumo, sendo mutuamente exclusivo com `--topology-reference`. Superar essa etapa prova apenas a preservação da topologia; o candidato ainda precisa dos diagnósticos de compilação e das verificações de render-smoke. + +O resultado do `--repair-brief` também inclui evidências `repairAcceptance` com o esquema `notemd.circuitikz.repair-acceptance.v1`. Ele relata as etapas `topology-signature`, `compile-diagnostics` e `render-smoke` como `passed`, `failed` ou `missing`; expõe `remainingChecks`; e mantém `readyForVisualAcceptance` como falso até que a execução do candidato contenha todas as evidências necessárias. + +Use `--repair-acceptance-output` com `--repair-brief` quando as evidências de CI ou de lançamento precisarem de um arquivo JSON duradouro: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +Para evidências de lançamento ou de mantenedor, execute cada família dourada suportada por meio do executor de fixtures agregados: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +O executor utiliza `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json` e `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json`, chama o mesmo caminho de exportador sem shell para cada fixture e retorna um relatório agregado JSON com `compileExecution` e `compileDiagnostics` por fixture. Continua sendo um comando de mantenedor, não uma dependência em tempo de execução de plugin. + +Quando a máquina do mantenedor ainda não tem um renderizador configurado, execute o mesmo comando de fixture sem `--compile-executable` e registre explicitamente a barreira de ambiente: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +Esse caminho ainda gera os artefatos determinísticos de fixture `.tex`, mas retorna `ok: false` com `rendererAvailability.status` definido como `missing-configuration` e um diagnóstico `compile-executable-invalid`. Trate‑o apenas como evidência de disponibilidade do renderizador; não se trata de compilação, render-smoke ou aceitação visual. + +### Forma de Prompt de Referência Dourada + +Para uso imediato, forneça uma referência dourada renderizável antes de solicitar uma variante de circuito. Um prompt restrito deve preservar o preâmbulo, a escala de coordenadas, o estilo de âncora e as convenções de roteamento: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +Para um inversor CMOS, o prompt deve solicitar explicitamente a topologia e restrições de layout, e não apenas "desenhe um inversor CMOS": + +- mantenha `VDD` no topo, `GND` na parte inferior, entrada à esquerda e saída à direita; +- Use `pmos` acima de `nmos`, com portas compartilhadas e drenos compartilhados; +- Mantenha o nó de saída na junção do dreno e marque‑o com `*-o`; +- Use âncoras nomeadas (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) em vez de coordenadas inferidas visualmente; +- Evite fios diagonais ou cruzados, a menos que seja necessário electricamente. + +### Progresso Atual e Próximas Fases + +| Área | Status Atual | Próximo Passo | +|------|----------------|-----------| +| Diagramas Gerais | Pipeline baseado em especificações implementado para Mermaid, JSON Canvas, Vega-Lite, HTML | Continue ampliando a cobertura de verificação semântica | +| Figuras Editáveis | As fronteiras dos artefatos `editable-html-svg`, Draw.io XML e Drawnix JSON foram implementadas | Adicione primitivas mais ricas somente após testes comprovarem a editabilidade | +| Suporte a CLI | `npm run diagram:export-artifact` exporta HTML/SVG, Draw.io e Drawnix editáveis a partir de um `DiagramSpec` | Adicionar dispositivos de fumaça específicos para cada alvo quando novos alvos forem enviados | +| circuitikz | `CircuitSpec -> circuitikz` o protótipo exporta fontes comuns, inversor CMOS, `cmos-buffer` / `cmos-buffer-v1`, `cmos-transmission-gate` / `cmos-transmission-gate-v1`, `cmos-nand2` / `cmos-nand2-v1` e `cmos-nor2` / `cmos-nor2-v1` modelos padrão dourados, projetos `layoutHints.inputSide` e `layoutHints.outputSide` para uma disposição determinística das portas de entrada/saída sem alterar a topologia, rejeita mudanças na topologia de reparo por meio de `--topology-reference`, emite relatórios de reparo que preservam a topologia por meio de `--repair-brief-output` e do esquema `notemd.circuitikz.repair-brief.v1`, inclui conteúdo estruturado de transferência `repairPrompt` com `diagnosticFocus`, `acceptanceCriteria` e papel de `topology-preserving-circuitikz-repair`, valida candidatos a reparo por meio de `--repair-brief`, retorna evidências da porta `repairAcceptance` por meio do esquema `notemd.circuitikz.repair-acceptance.v1` com `readyForVisualAcceptance` e `remainingChecks`, mantém essas evidências por meio de `--repair-acceptance-output`, analisa logs de compilação, pode executar renderizadores locais explícitos além de `--expected-artifact`, SVG `--expected-svg-text`, verificações de metadados de acessibilidade por meio de `aria-label`, `<title>` e `<desc>`, exclusão de elementos SVG ocultos/translúcidos, classificação `render-svg-text-path-only` / `pathOnlyGlyphUseCount` para rótulos apenas de caminho, verificações de posicionamento de glifos apenas de caminho para `<use href="#...">`, diagnósticos de sobreposição de glifos apenas de caminho por meio de `render-svg-path-glyph-overlap`, tratamento do ponto atual em caminhos fechados para `Z/z`, limites exatos dos arcos para extremos de arco A/a, limites exatos das curvas Bezier para extremos de curvas C/S/Q/T, verificações de sobreposição de rótulos com consideração à espessura da linha SVG, verificações geométricas de desenho `polyline` / `polygon`, geometria de rótulos posicionados `tspan`, geometria de texto posicionado considerando `text-anchor`, geometria sensível a transformações para SVG sobreposição de texto em canvas delimitado e fumaça de rótulo versus desenho por meio de `render-svg-label-overlap`, além de verificações de captura de tela PNG sem vazio / recortada / com fundo denso, incluindo paleta de cores indexadas com alfa, amostras transparentes em tons de cinza/RGB tRNS e orientações específicas para formatos `render-png-unsupported` para PNGs entrelaçados Adam7 e falhas de profundidade de bits indexada, por meio de `foregroundBounds`, `foregroundDensity`, `render-png-content-clipped` e `render-png-foreground-dense` sem análise de shell, inclui dispositivos de fumaça agregados para mantenedores por meio de `npm run diagram:smoke-circuitikz`, registra configurações de renderizador ausentes por meio de `rendererAvailability.status: "missing-configuration"` e `compile-executable-invalid`, e possui diagnósticos gerais de visualização, contagens de resumo de diagnósticos, entradas de histórico sensíveis a diagnósticos e fallback apenas de código-fonte por meio de `RenderArtifact.diagnostics` e do modal de visualização | Adicionar reconhecimento de rótulos em nível OCR para texto visual apenas de caminho, verificações precisas de sobreposição em nível de pixel, cobertura mais ampla de caminhos SVG quando necessário, instalação/descoberta automática de renderizadores somente se puder permanecer opcional, e execução automática de reparo que preserva a topologia | +| Integração TikZJax | Host de renderização candidato para exibição do lado Obsidian | Manter como opcional; não tornar TikZJax uma dependência obrigatória em tempo de execução do plugin | + +## Configuração + +| Parâmetro | Padrão | Efeito | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | Alternar entre modo focado em especificações e modo legado Mermaid | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = Mermaid apenas; `'best-fit'` = alvos nativos + alternativas | +| `preferredDiagramIntent` | `undefined` (automático) | Sobrescrever a detecção automática de intenção | +| `summarizeToMermaidLanguage` | `'en'` | Idioma do alvo para rótulos de diagrama | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | LLM por tarefa para geração de diagramas | +| `autoMermaidFixAfterGenerate` | (de constantes) | Executar automaticamente o corretor legado nos resultados de Mermaid | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | Aumentar o código-fonte com conhecimento do vault local | + +### Aumento de Conhecimento Local + +Quando ativado, Notemd obtém trechos de contexto relevantes da base de conhecimento local do seu vault (baseada em MiniSearch) e os insere no início do markdown de origem. O prompt de aprimoramento indica: "apenas referência de apoio; mantenha a estrutura principal fiel à nota de origem." + +### Modos de Compatibilidade + +- **`legacy-mermaid`**: Todas as intenções são direcionadas para Mermaid. Intenções que não são Mermaid (canvasMap, dataChart) são forçadas para `flowchart` ou `mindmap`. Não há cadeia de fallback. +- **`best-fit`**: Cada intenção é direcionada ao seu alvo nativo. Se o principal falhar, é percorrida a cadeia de fallback (por exemplo, Vega-Lite → Mermaid → HTML). + +## Pré-visualização e Exportação + +| Ação | Método | +|--------|--------| +| SVG export | `mermaid.render()` / `vega.View.toSVG()` / SVG builder para Canvas | +| Exportação em PNG | SVG → Imagem → Canvas (relação de pixels do dispositivo de 1x a 3x) → ArrayBuffer PNG | +| Salvar a Fonte | O conteúdo bruto do artefato é salvo com a extensão específica do destino | +| Pré-visualização apenas da Fonte | Artefatos não inline com o conteúdo da fonte são exibidos como código além de diagnósticos, sem renderização em iframe | +| Auditoria Semântica | Mermaid, JSON Canvas, Vega-Lite e HTML/SVG editável verificado por `scripts/diagram-semantic-verification.js` | + +**Armazenamento em cache**: O RenderCache utiliza uma chave JSON determinística de `{spec, target, theme}`. A deduplicação em tempo real impede renderizações duplicadas. + +## Dicas + +- **Comece com o modo `best-fit`** — ele gera a melhor saída visual para cada tipo de intenção +- **Use modelos poderosos para diagramas complexos** — fluxogramas e diagramas ER se beneficiam do GPT-4o ou Claude +- **Ative o conhecimento local** para diagramas específicos de domínio — o contexto relevante do vault melhora a precisão +- **Defina `autoMermaidFixAfterGenerate`** — erros de sintaxe Mermaid são comuns sem ele +- **O corretor legado é abrangente** — se a pré-visualização de Mermaid falhar, executar manualmente o comando do corretor geralmente resolve o problema + +--- + +## Próximos passos + +- 🔗 [Links da Wiki](./wiki-links) — Como os conceitos são vinculados inline +- 📝 [Notas de Conceito](./concept-notes) — Extrair conceitos para material de origem dos diagramas +- 🔍 [Pesquisa](./research) — Enriquecer diagramas com dados de fontes da web diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..73f3a814 --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "Pesquisa e Busca na Web" +description: "Integre a busca na web às suas anotações" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Pesquisa e Busca na Web + +<TLDR> +**Notemd consulta a web e insere resultados LLM-resumidos diretamente em suas anotações.** Tavily API é o backend de busca principal; DuckDuckGo funciona como um fallback sem configuração. Os resultados são resumidos com citações de fonte e anexados sob um cabeçalho `## Research`. Suporta pesquisa em única anotação, pesquisa em pastas em lote e seleção de modelo por tarefa para a etapa de resumo. + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Visão Geral + +A pesquisa é uma das integrações mais poderosas do Notemd: ela fecha o ciclo entre leitura, busca e escrita. Em vez de abrir um navegador para buscar um termo desconhecido, basta destacá‑lo e deixar que Notemd faça a busca, o resumo e anexe os resultados — tudo dentro do seu vault. + +O processo é totalmente configurável. Você escolhe o provedor de busca, o LLM que escreve o resumo e se os resultados serão anexados à anotação ativa ou gravados em arquivos separados. O modo em lote permite pesquisar todas as anotações de uma pasta com um único clique. + +## Como Funciona + +### Pipeline de Busca e Resumo + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **Extração de consulta** -- Notemd extrai termos de busca da sua seleção ou do título da anotação. +2. **Busca na web** -- Tavily é tentado primeiro. Se nenhuma chave API estiver configurada, DuckDuckGo é usado automaticamente (não é necessária chave). +3. **Resumo LLM** -- Os resultados brutos da busca são enviados ao LLM configurado, que gera um resumo conciso com citações de fonte embutidas. +4. **Anexar** -- O resumo formatado é anexado sob um cabeçalho `## Research` na anotação ativa. + +### Tavily vs. DuckDuckGo + +| Aspecto | Tavily | DuckDuckGo | +|--------|--------|------------| +| Chave API | Necessário (versão gratuita disponível) | Não necessário | +| Qualidade do resultado | Mais alta (desenvolvida especificamente para IA) | Adequada para consultas gerais | +| Limites de taxa | Nível gratuito generoso | Sujeito a limitação de velocidade | +| Configuração | `tavilyApiKey` nas configurações | Sem configuração -- fallback automático | + +### Pesquisa em pasta em lote + +Clique com o botão direito em uma pasta e selecione **"Notemd: Pasta de pesquisa"**. Cada arquivo `.md` na pasta é processado sequencialmente (ou em paralelo, até a concorrência configurada). Cada nota recebe seu próprio resumo da pesquisa. + +## Configuração + +| Parâmetro | Padrão | Efeito | +|---------|---------|--------| +| `tavilyApiKey` | `''` | Chave Tavily API. Quando vazia, DuckDuckGo é usado exclusivamente. | +| `researchProvider` / `researchModel` | DeepSeek | LLM por tarefa para resumir resultados de busca | +| `maxResearchContentTokens` | `4000` | Orçamento de tokens para o conteúdo enviado ao LLM. O excesso é truncado. | +| `researchAppendToNote` | `true` | Anexar resumo à nota original. Se for falso, cria um arquivo separado. | +| `researchLanguage` | `'en'` | Idioma de saída para a pesquisa resumida | + +### Recomendação de modelo por tarefa + +A pesquisa se beneficia de um modelo que lida com conteúdo multilíngue e gera prosa bem estruturada. Considere: + +- **DeepSeek** -- padrão, acessível, boa qualidade +- **GPT-4o** -- resumo de maior qualidade, custo mais alto +- **Gemini Flash** -- rápido e barato, adequado para consultas simples + +## Exemplo + +Você está lendo um artigo sobre *mecanismos de atenção do transformer* e encontra um termo desconhecido: *relative positional encoding*. Em vez de deixar Obsidian: + +1. Destaque **"relative positional encoding"** +2. Clique com o botão direito --> **"Notemd: Pesquisar e resumir"** +3. Notemd busca na web, resume os principais resultados e acrescenta: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +O resumo agora faz parte do seu repositório, sendo pesquisável, linkável e acessível off-line. + +## Dicas + +- **Defina uma chave Tavily para melhores resultados** -- mesmo a versão gratuita oferece maior relevância do que o DuckDuckGo bruto. +- **Use um modelo de resumo capaz** -- modelos baratos podem simplificar demais conteúdo técnico detalhado. +- **Faça pesquisa em lote** após uma leitura inicial para preencher lacunas em várias anotações ao mesmo tempo. +- **Revise os resumos adicionados** -- LLMs podem gerar detalhes falsos sobre a fonte. Verifique as afirmações principais. + +--- + +## Próximos passos + +- [Notas de Conceito](./concept-notes) -- Extraia e armazene termos importantes dos resultados da pesquisa +- [Links da Wiki](./wiki-links) -- Conecte conceitos derivados da pesquisa em todo o seu repositório +- [Tradução](./translation) -- Traduza resumos de pesquisa para outro idioma +- [LLM Fornecedores](/docs/providers/overview) -- Configurar o modelo usado para resumo diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..760e7993 --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "Tradução" +description: "Traduzir notas e seleções" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# Tradução + +<TLDR> +**Notemd traduz texto entre 21+ idiomas usando a tradução alimentada por LLM.** Suporta tradução de seleção única, tradução de toda a nota e tradução em lote de pastas. Cada tarefa de tradução pode usar um provedor e modelo dedicados por meio das configurações da tarefa. O idioma de saída pode ser configurado independentemente do idioma UI. Os resultados são anexados ou gravados em um novo arquivo, dependendo da sua preferência. + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Visão Geral + +A tradução em Notemd não é uma busca em dicionário -- é uma tradução consciente do contexto, alimentada por LLM. O modelo analisa o parágrafo ou nota inteira, preservando o tom, a terminologia do domínio e a estrutura das frases. Isso gera resultados de maior qualidade em comparação com serviços de tradução frase a frase, especialmente para textos técnicos, acadêmicos e criativos. + +O recurso suporta três escopos: seleção, nota ativa e toda a pasta. Combinado com a seleção de modelo por tarefa, você pode usar um modelo rápido (Gemini Flash) para traduções casuais e um modelo poderoso (Claude Sonnet) para conteúdo sensível a nuances -- sem precisar alterar seu provedor global. + +## Como Funciona + +### O Comando Traduzir + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **Detecção de fonte** -- O LLM infere o idioma de origem a partir do conteúdo. Não é necessário especificá‑lo manualmente. +2. **Construção do prompt** -- Notemd cria um prompt que inclui o idioma de destino, uma dica opcional de domínio e o conteúdo a ser traduzido. +3. **Tradução LLM** -- O `translateProvider` / `translateModel` configurado processa o pedido. O modelo preserva a formatação em markdown, links wiki e blocos de código. +4. **Saída** -- O texto traduzido é anexado abaixo do original ou gravado em um novo arquivo no vault. + +### Pares de Idiomas + +Notemd suporta qualquer par de idiomas que o LLM subjacente suporte. Pares comuns incluem: + +| Fonte | Alvo | Qualidade Típica | +|--------|--------|----------------| +| Inglês | Chinês Simplificado | Excelente | +| Chinês | Inglês | Excelente | +| Inglês | Japonês | Muito bom | +| Inglês | Alemão / Francês / Espanhol | Muito bom | +| Qualquer idioma suportado | Qualquer idioma suportado | Depende do modelo | + +A configuração `translateLanguage` controla o **idioma de saída**. O idioma de origem é detectado automaticamente. + +### Seleção de Modelo por Tarefa + +A qualidade da tradução varia significativamente conforme o modelo. Notemd permite que você atribua um modelo dedicado apenas para tradução: + +| Modelo | Velocidade | Qualidade | Custo | Melhor para | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | Rápido | Bom | Baixo | Uso casual, alto volume | +| `gpt-4o-mini` | Rápido | Bom | Baixo | Consultas rápidas | +| `deepseek-chat` | Médio | Bom | Muito baixo | Multilíngue de orçamento | +| `claude-3-5-sonnet` | Médio | Excelente | Médio | Técnico / acadêmico | +| `gpt-4o` | Médio | Excelente | Médio | Prosa sensível a nuances | + +### Tradução de pasta em lote + +Clique com o botão direito em uma pasta e selecione **"Notemd: Traduzir pasta"** para traduzir todas as anotações nessa pasta. Cada arquivo é processado independentemente. A configuração de concorrência controla quantos arquivos são traduzidos simultaneamente. + +## Configuração + +| Parâmetro | Padrão | Efeito | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | Fornecedor dedicado para tarefas de tradução | +| `translateLanguage` | `'en'` | Linguagem de saída alvo | +| `translationAppendToNote` | `true` | Adicione o texto traduzido abaixo do original. Se for false, será criado um novo arquivo. | +| `batchConcurrency` | `3` | Número de arquivos processados em paralelo durante a tradução em lote | + +## Exemplo + +Você está lendo uma nota de pesquisa em chinês e deseja uma versão em inglês: + +1. Abra a nota +2. Clique com o botão direito --> **"Notemd: Traduzir arquivo atual"** +3. Notemd detecta o chinês, traduz para o idioma de destino configurado (inglês) e adiciona: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +O texto chinês original permanece intacto acima da tradução. O cabeçalho `## Translation` mantém ambas as versões no mesmo arquivo para fácil referência. + +## Dicas + +- **Use Gemini Flash para grandes volumes** -- é a opção mais rápida e econômica para tradução em lote de pastas grandes. +- **Preservar links da wiki** -- O comando de Notemd instrui o LLM a manter `[[wiki-links]]` intacto na tradução. Verifique após a tradução, pois alguns modelos às vezes os desempacotam. +- **Definir explicitamente o idioma de saída** -- A detecção automática funciona para o texto de origem, mas configure sempre `translateLanguage` para evitar ambiguidades quanto ao destino. +- **Traduzir em lote notas conceituais** -- Se sua pasta de conceitos estiver em um idioma e você precisar dela em outro, a tradução em nível de pasta resolve isso em um único passo. + +--- + +## Próximos passos + +- [Pesquisa](./research) -- Pesquise e resuma em qualquer idioma, depois traduza os resultados +- [Fluxos de trabalho](./workflows) -- Encadeie traduções com links da wiki ou extração de conceitos +- [Processamento em lote](/docs/advanced/batch-processing) -- Comportamento de concorrência e sobrescrita para operações em pastas +- [LLM Fornecedores](/docs/providers/overview) -- Escolha o melhor modelo para seu par de idiomas diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..d139d007 --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "Wiki-Links" +description: "Geração automática de links wiki para conceitos-chave" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# Wiki-Links + +<TLDR> +**Notemd adiciona automaticamente `[[wiki-links]]` aos conceitos-chave em suas anotações.** O LLM lê seu conteúdo, identifica termos importantes no contexto e insere links wiki no estilo Obsidian em cada ocorrência. Opcionalmente cria arquivos de notas de conceito com backlinks. Suporta supressão de sinônimos, integridade dos links ao renomear/excluir e modo de extração pura (sem modificação de arquivos). Diferentemente do Auto Link, que apenas corresponde a títulos de anotações existentes, Notemd utiliza IA para identificar novos conceitos e criar as anotações correspondentes. Isso faz parte do [Obsidian Guia de Gestão de Conhecimento com IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Visão Geral + +A criação de links wiki é a funcionalidade principal do Notemd. Ela transforma texto simples em um grafo de conhecimento interconectado por meio de: + +1. **Analisando sua anotação** com um LLM +2. **Identificando conceitos-chave** (termos, pessoas, métodos, teorias) +3. **Inserindo `[[wiki-links]]`** em cada ocorrência +4. **Criando notas de conceito** (opcional) com backlinks + +## Como Funciona + +### Processo + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### Exemplo + +**Antes:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**Depois:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## Uso + +### Básico: Adicionar links à anotação atual + +1. Abra uma nota +2. Clique com o botão direito no editor → **"Processar arquivo (adicionar links)"** +3. Aguarde alguns segundos +4. Os conceitos agora estão vinculados! + +### Lote: Processar várias anotações + +1. Clique com o botão direito em uma pasta no explorador de arquivos +2. Selecione **"Notemd: Processar pasta (adicionar links)"** +3. Configurar: + - Concorrência (quantos arquivos em paralelo) + - Sobrescrever links existentes (sim/não) +4. Clique em **Processar** + +### Seletivo: Vincular texto específico + +1. Destacar o texto a ser processado +2. Clique com o botão direito → **"Processar seleção (adicionar links)"** +3. Apenas a parte destacada é analisada + +## Notemd vs Auto Link + +Obsidian possui duas abordagens para vinculação automática em wiki: + +| | **Auto Link** | **Notemd** | +|--|---------------|-------------| +| Fonte do link | Títulos de anotações existentes no vault | Conceitos identificados por LLM no conteúdo | +| Pode criar links para novos conceitos | Não — o título já deve existir | Sim — a IA identifica conceitos e cria notas | +| Tratamento de sinônimos | Não | Sim — supressão de sinônimos | +| Criação de nota de conceito | Não | Sim — com backlinks e eliminação de duplicatas | +| Processamento em lote | Não (arquivo único) | Sim (nível de pasta) | +| Roteamento de modelo por tarefa | Não | Sim | + +**Auto Link** faz correspondência de título: se houver uma nota chamada "Machine Learning", ela envolve as ocorrências em `[[Machine Learning]]`. Se a nota não existir, nada acontece. + +**Notemd** é controlado pela IA: o LLM lê seu conteúdo, entende o contexto, identifica conceitos que *deveriam* ser vinculados — mesmo que ainda não haja nota — e cria tanto o link quanto a nota de conceito. + +## Recursos + +### Supressão de Sinônimos + +**Problema:** "transformer", "transformers", "Transformer architecture" → 3 conceitos separados + +**Solução:** Notemd detecta quase duplicatas e usa a forma canônica. + +**Configuração:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### Integridade do link + +**Ao renomear uma nota conceitual:** +- Todos os links da wiki são atualizados automaticamente (Obsidian recurso principal) +- Os backlinks permanecem intactos + +**Ao excluir uma nota conceitual:** +- Os links permanecem, mas aparecem como "menções desvinculadas" +- É possível recriá‑la a partir de qualquer ocorrência + +### Modo de extração pura + +**Extraia conceitos sem modificar o original:** + +1. Clique com o botão direito → **"Extrair conceitos (sem vinculação)"** +2. As notas conceituais são criadas +3. O arquivo original permanece inalterado + +Caso de uso: Processamento de conteúdo somente leitura ou rascunhos finais. + +## Geração de Nota Conceitual + +### Criação automática + +**Quando ativado (padrão), Notemd cria:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### Configuração + +**Pasta de saída:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Estrutura hierárquica:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**Modelo:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## Opções Avançadas + +### Janela de Contexto + +**Quantidade de texto ao redor a ser enviado:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +Maior = maior precisão, custo mais alto. + +### Ocorrências Mínimas + +**Somente vincular conceitos que aparecem várias vezes:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +Defina como 2 ou 3 para focar em temas recorrentes. + +### Padrões a Excluir + +**Pular certas palavras:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +Impede o vinculamento excessivo de termos genéricos. + +### Prompts Personalizados + +**Sobrescrever instruções padrão do LLM:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +Modifique para necessidades específicas do domínio (por exemplo, "Foco em terminologia médica"). + +## Dicas e Melhores Práticas + +### ✅ FAÇA + +- **Processe notas com >100 palavras** — Notas curtas geram poucos conceitos +- **Use modelos poderosos** para uma melhor identificação de conceitos (GPT-4o, Claude) +- **Revise antes de aceitar** — Verifique se os links sugeridos fazem sentido +- **Construa de forma iterativa** — Processe 5-10 notas, revise o grafo, ajuste as configurações + +### ❌ NÃO FAÇA + +- **Excesso de links** — Nem todo substantivo precisa de um link +- **Processe rascunhos repetidamente** — Os conceitos podem mudar, aguarde até que fiquem estáveis +- **Ignore sinônimos** — Ative a supressão para evitar "ML" vs "Machine Learning" + +## Desempenho + +### Velocidade + +| Tamanho da Nota | GPT-4o-mini | Claude Sonnet | Ollama (local) | +|-----------|-------------|---------------|----------------| +| 500 palavras | 2-3 segundos | 3-5 segundos | 5-10 segundos | +| 2000 palavras | 5-8 segundos | 10-15 segundos | 20-40 seg | +| 5000+ palavras | Em blocos (várias chamadas) | Em blocos | Em blocos | + +### Estimativa de Custo + +**Exemplo: nota de 1000 palavras com GPT-4o-mini** +- Entrada: ~1500 tokens +- Saída: ~200 tokens +- Custo: ~ + +**Processamento em lote de 100 notas:** ~ + +## Solução de problemas + +### Nenhum link adicionado + +**Verificar:** +1. LLM A chamada foi bem-sucedida (Configurações → Diagnóstico) +2. A nota tem conteúdo suficiente (>50 palavras) +3. Os conceitos são técnicos/específicos (não apenas pronomes) + +**Tente:** +- Use um modelo mais poderoso +- Aumentar a janela de contexto +- Verificar a validade da chave API + +### Muitos links + +**Soluções:** +1. Aumentar o número mínimo de ocorrências (2 ou 3) +2. Adicionar palavras comuns à lista de exclusão +3. Use um modelo menos agressivo + +### Conceitos errados vinculados + +**Correções:** +1. Use um prompt personalizado para especificidade de domínio +2. Habilite a supressão de sinônimos +3. Revise manualmente e desvincule + +### Os links quebram após renomear + +**Esse é um comportamento normal Obsidian.** + +Para atualizar todos os links: +1. Renomeie a nota conceitual +2. Obsidian atualiza automaticamente `[[old]]` → `[[new]]` + +--- + +## Próximos passos + +- 📖 [Notas Conceituais](./concept-notes) — Análise aprofundada da geração de notas conceituais +- 🔍 [Integração de Pesquisa](./research) — Combine vinculação com pesquisa na web +- 🎨 [Diagramas](./diagrams) — Visualize seu grafo de conhecimento diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..267e208a --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "Fluxos de trabalho" +description: "Encadeie várias tarefas com botões de um clique" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Fluxos de trabalho + +<TLDR> +**Notemd fluxos de trabalho encadeiam várias tarefas em uma única ação de um clique.** Defina sequências como `add-links > extract-concepts > research > diagram` usando uma DSL simples. Os fluxos de trabalho aparecem como botões na barra lateral que executam toda a cadeia na nota ou pasta atual. Vêm com fluxos de trabalho predefinidos; crie outros personalizados nas configurações. Cada etapa utiliza sua própria configuração de modelo por tarefa. + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Visão Geral + +Um fluxo de trabalho elimina a dificuldade de executar tarefas uma por uma. Em vez de clicar com o botão direito quatro vezes para adicionar links, extrair conceitos, pesquisar termos desconhecidos e gerar um diagrama, basta pressionar um botão na barra lateral e toda a cadeia é executada. Notemd cuida da sequenciamento, propagação de erros e relatórios de progresso. + +Os fluxos de trabalho são definidos em uma DSL leve (linguagem específica do domínio). Eles ficam nas configurações, aparecem como botões clicáveis na barra lateral de Obsidian e podem ser aplicados à nota atual ou a uma pasta inteira. + +## Como Funciona + +### Pipeline de Execução de Fluxos de Trabalho + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **Parse** -- A string da DSL é dividida em `>` (ou `>`) para obter uma lista ordenada de identificadores de tarefa. +2. **Resolve** -- Cada identificador é mapeado a um comando interno (add-links, extract-concepts, research, translate, diagram, etc.). +3. **Execute** -- As etapas são executadas sequencialmente. Cada etapa utiliza o provedor e modelo configurados para aquela tarefa. +4. **Tratamento de erros** -- Se uma etapa falhar, o fluxo de trabalho pode ser interrompido ou continuar para a próxima etapa, dependendo da política de erro definida. +5. **Done** -- Uma notificação aparece para informar o sucesso ou listar quaisquer etapas que falharam. + +### Formato da DSL + +Os fluxos de trabalho são definidos como uma sequência de identificadores de tarefa separados por `>`: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**Identificadores de tarefa disponíveis:** + +| Identificador | Ação | +|------------|--------| +| `process-current-add-links` | Adicionar links da wiki à nota ativa | +| `extract-concepts-current` | Extrair conceitos da nota ativa | +| `research-and-summarize` | Pesquisar o texto selecionado ou o título da nota | +| `process-current-translate` | Traduzir a nota ativa | +| `summarize-to-mermaid` | Gerar um diagrama a partir da nota ativa | +| `generate-from-title` | Gerar conteúdo a partir do título da nota | +| `extract-original-text` | Extrair o texto original (para OCR / conteúdo escaneado) | + +**Variantes em nível de pasta** substituem `current` por `folder` no nome do identificador. + +### Fluxos de trabalho predefinidos vs. personalizados + +Notemd vem com fluxos de trabalho prontos para padrões comuns: + +| Fluxo de trabalho | Cadeia | Caso de Uso | +|----------|-------|----------| +| **Extração com um clique** | adicionar-links > extrair-conceitos > pesquisar | Processar um artigo científico em uma única etapa | +| **Pipeline completo** | adicionar-links > extrair-conceitos > pesquisa > diagrama | Extração completa de conhecimento com visualização | +| **Traduzir + Link** | traduzir > adicionar-links | Traduzir e depois vincular conceitos na língua alvo | + +**Fluxos de trabalho personalizados** são criados nas configurações: + +1. Abrir **Configurações** --> **Notemd** --> **Fluxos de trabalho** +2. Clicar em **"Adicionar Fluxo de Trabalho"** +3. Inserir a cadeia DSL (por exemplo, `process-current-add-links>extract-concepts-current`) +4. Dar um nome de exibição (por exemplo, "Link Rápido + Extrair") +5. O novo botão aparece imediatamente na barra lateral + +## Configuração + +| Parâmetro | Padrão | Efeito | +|---------|---------|--------| +| `workflows` | Conjunto predefinido | Array de definições de fluxo de trabalho (nome + DSL) | +| `workflowContinueOnError` | `true` | Continuar para a próxima etapa se a atual falhar | +| `workflowShowProgress` | `true` | Exibir uma notificação de progresso após cada etapa ser concluída | + +### Modelos por Tarefa nos Fluxos de Trabalho + +Cada etapa em um fluxo de trabalho utiliza sua própria configuração de modelo por tarefa. Não é necessário especificar modelos na própria DSL. A ordem de resolução é: + +1. O provedor/modelo por tarefa se `useMultiModelSettings` estiver disponível +2. O `activeProvider` global caso contrário + +Isso significa que `add-links` pode ser executado em DeepSeek enquanto `research` é executado no GPT-4o -- tudo dentro do mesmo clique do fluxo de trabalho. + +## Exemplo + +Você acabou de importar um PDF de um artigo de aprendizado de máquina para o seu vault e deseja extração completa de conhecimento: + +1. Abra a nota importada +2. Clique no botão da barra lateral **"Full Pipeline"** +3. Notemd é executado: + - **Etapa 1**: Adicionar links da wiki -- `[[attention mechanism]]`, `[[transformer]]`, etc. + - **Etapa 2**: Extrair conceitos -- cria notas de conceito na sua pasta de conceitos + - **Etapa 3**: Pesquisar -- resume fontes da web para termos-chave + - **Etapa 4**: Diagrama -- gera um mapa mental Mermaid da estrutura do artigo +4. Após cerca de 30 segundos, sua nota terá links, as notas de conceito estarão disponíveis, a pesquisa será anexada e um arquivo de diagrama será salvo + +Tudo isso com apenas um clique. + +## Dicas + +- **Comece com fluxos de trabalho predefinidos** -- eles cobrem os padrões mais comuns. Personalize apenas quando precisar de uma sequência diferente. +- **Ative `workflowContinueOnError`** -- um erro na etapa de diagrama não deve interromper todo o pipeline. +- **Use fluxos de trabalho de pasta** para processamento em lote -- clique com o botão direito em uma pasta, escolha um fluxo de trabalho e todas as anotações serão processadas. +- **Dê nomes claros aos fluxos de trabalho** -- o espaço na barra lateral é limitado. Use nomes curtos e orientados a ação, como "Extração Rápida" ou "Traduzir + Link". + +--- + +## Próximos passos + +- [Pesquisa](./research) -- Entenda o que a etapa de pesquisa faz antes de adicioná‑la aos fluxos de trabalho +- [Links da Wiki](./wiki-links) -- Recurso básico de vinculação usado na maioria dos fluxos de trabalho +- [Notas de Conceito](./concept-notes) -- Extração de conceitos como etapa de fluxo de trabalho +- [Processamento em Lote](/docs/advanced/batch-processing) -- Concorrência e relatórios de progresso para fluxos de trabalho de pasta diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..0a2e2abf --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "Configuração" +description: "Configurar as definições e preferências de Notemd" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Configuração + +<TLDR> +**A configuração Notemd abrange 6 áreas principais:** (1) provedores LLM e chaves API, (2) seleção do modelo por tarefa, (3) caminhos e modelos de saída, (4) idioma UI e idioma de saída, (5) serviços de busca (Tavily/DuckDuckGo), (6) fluxos de trabalho personalizados. Todas as configurações estão em Obsidian Settings → Notemd. As alterações entram em vigor imediatamente. +</TLDR> + +## Visão Geral das Configurações + +Acesso: **Obsidian Settings (⚙️) → Notemd** + +### Seções Principais + +1. **Configuração do Provedor** — chaves API, URLs base, modelos +2. **Configurações da Tarefa** — seleção do modelo por tarefa +3. **Configuração de Saída** — onde salvar os arquivos gerados +4. **Configurações de Idioma** — UI e idiomas de saída +5. **Integração de Busca** — configuração Tavily/DuckDuckGo +6. **Fluxos de Trabalho** — cadeias personalizadas de botões +7. **Avançado** — diagnósticos, processamento em lote, chunking + +--- + +## 1. Configuração do Provedor + +### Adicionar um Provedor + +1. **Selecione o provedor** na lista suspensa (mais de 30 disponíveis) +2. **Insira a chave API** +3. **Opcional**: Defina uma base personalizada URL (para proxies/gateways) +4. **Clique em "Obter Lista de Modelos"** para verificar a conexão +5. **Selecione o modelo padrão** + +### Provedores Comuns + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Local) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### Vários Provedores + +Você pode configurar vários provedores e alternar entre eles por tarefa: +- **Provedor principal**: Usado como fallback +- **Provedores específicos da tarefa**: Substituem para tarefas específicas + +--- + +## 2. Modelos Específicos da Tarefa + +Configure modelos diferentes para tarefas distintas a fim de otimizar custo/qualidade: + +### Tipos de Tarefa + +| Tarefa | Modelo Padrão | Finalidade | +|------|--------------|---------| +| **Vinculação** | Provedor Principal | Identificar conceitos para links da wiki | +| **Geração de Conceitos** | Fornecedor principal | Extrair e descrever conceitos | +| **Pesquisa** | Fornecedor principal | Resumir resultados de busca na web | +| **Tradução** | Fornecedor principal | Traduzir texto | +| **Geração de Diagramas** | Fornecedor principal | Gerar diagramas Mermaid/Canvas | + +### Exemplo: Configuração otimizada em termos de custo + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### Como configurar + +1. **Configurações → Notemd → Configurações da tarefa** +2. Para cada tarefa, escolha: + - ✅ **Usar o fornecedor principal** (padrão) + - 🔄 **Usar fornecedor personalizado** → selecionar fornecedor + modelo + +--- + +## 3. Configuração de saída + +### Saída das notas dos conceitos + +**Onde as notas de conceito novas são salvas:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Modelo:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### Opções de Estrutura de Pastas + +**Opção 1: Plana (todos os conceitos em uma única pasta)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**Opção 2: Hierárquica (por pasta de origem)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +Configurar: **Configurações → Saída → Usar Pastas Hierárquicas** + +### Saída do Diagrama + +**Onde os diagramas são salvos:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**Formato:** +- `.mmd` (Mermaid origem) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. Configurações de Idioma + +### UI Idioma + +**Idioma da interface** (botões, menus, diálogos): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +Suportados: Inglês, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Русский, العربية e mais. + +### Idioma de Saída + +**Linguagem do conteúdo gerado** (notas conceituais, resumos de pesquisa): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**Caso de uso:** Chinês UI + saída em inglês para pesquisa bilíngue. + +### Alvo de tradução + +**Linguagem alvo padrão** para tarefas de tradução: + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. Integração de busca + +### Tavily (Recomendado) + +**Serviço de busca otimizado por IA:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +Obter chave: [tavily.com](https://tavily.com/) + +**Recursos:** +- Resultados de alta qualidade +- Resumos otimizados por IA +- Citações da fonte + +### DuckDuckGo (Experimental) + +**Nenhuma chave API necessária:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**Observação:** Qualidade inferior, sem personalização. + +--- + +## 6. Configuração do fluxo de trabalho + +### Criando fluxos de trabalho personalizados + +**Os fluxos de trabalho conectam várias tarefas em um único botão.** + +1. **Configurações → Fluxos de trabalho → Adicionar fluxo de trabalho** +2. **Nome**: "Fluxo de Análise de Papel" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **Salvar** + +Um novo botão aparece na barra lateral esquerda. + +### Sintaxe do DSL + +**Formato:** `action1>action2>action3` + +**Ações disponíveis:** +- `process-current-add-links` — Adicionar links da wiki à nota atual +- `extract-concepts-current` — Gerar notas conceituais +- `research-and-summarize` — Pesquisa na web + resumo +- `translate-current` — Traduzir a nota atual +- `summarize-as-mermaid` — Gerar diagrama Mermaid +- `process-folder-add-links` — Processar pastas em lote + +**Fluxos de trabalho de exemplo:** + +**Extração Rápida de Conceitos:** +``` +process-current-add-links>extract-concepts-current +``` + +**Pesquisa Profunda:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**Análise Multilíngue:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. Configurações Avançadas + +### Processamento em Lote + +**Processar vários arquivos em paralelo:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +Quanto maior, mais rápido, mas mais chamadas API. + +### Fragmentação Inteligente + +**Para notas longas, divida em fragmentos:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +Impede erros de limite de token. + +### Painel de diagnósticos + +**Visualizar logs detalhados:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +Mostra: +- API solicitações/respostas +- Uso de tokens +- Tempos de processamento +- Erros + +### Detecção de Conceitos Duplicados + +**Evite conceitos quase idênticos:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +Quanto maior, mais agressiva é a fusão. + +--- + +## Perfis de Configuração + +### Configurações de Exportação/Importação + +**Compartilhe configurações entre dispositivos:** + +1. **Configurações → Avançado → Exportar Configuração** +2. Salva `notemd-config.json` +3. Em novo dispositivo: **Importar Configuração** + +**O que está incluído:** +- Chaves do provedor API (opcional) +- Seleções de modelo +- Caminhos de saída +- Fluxos de trabalho personalizados + +--- + +## Configurações recomendadas + +### Para estudantes + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### Para pesquisadores + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### Para usuários preocupados com privacidade + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### Para trabalho bilíngue + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## Solução de problemas de configuração + +### As configurações não foram salvas +- Verifique as permissões do arquivo em `.obsidian/plugins/notemd/` +- Tente: Desativar o plugin → Reativá-lo + +### Chave API inválida +- Sem espaços extras +- Verifique a data de expiração +- Verifique os créditos no painel do provedor + +### Os modelos não estão sendo carregados +- Clique em "Obter lista de modelos" para atualizar +- Verifique a conectividade da rede +- Tente um provedor diferente + +--- + +## Próximos passos + +- 📖 [Explorar recursos](../features/wiki-links) +- 🔌 [Guias de configuração do provedor](../providers/overview) +- ❓ [FAQ](../faq) diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..108671d6 --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "Instalação" +description: "Como instalar Notemd em Obsidian" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Instalação + +<TLDR> +**Instale Notemd em menos de 2 minutos.** Duas maneiras: (1) Plugins da comunidade Obsidian (recomendado, instalação com um clique), ou (2) Instalação manual por meio das versões do GitHub. Requer Obsidian 0.15.0+. Funciona em Windows, macOS, Linux, iOS e Android. Sem dependências externas. Mais de 4k downloads, licenciado sob MIT. +</TLDR> + +## Método 1: Plugins da comunidade (Recomendado) + +1. Abra as **Configurações do Obsidian** (ícone ⚙️ ou `Ctrl/Cmd + ,`) +2. Vá para **Plugins da comunidade** +3. Clique em **Navegar** +4. Procure por **"Notemd"** +5. Clique em **Instalar** +6. Clique em **Ativar** + +**Pronto!** Você verá o ícone do Notemd na barra lateral esquerda. + +## Método 2: Instalação manual + +### Pré-requisitos +- Obsidian 0.15.0 ou superior +- Git (opcional, para clonar) + +### Passos + +1. **Baixe os arquivos** de [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest): + - `main.js` + - `styles.css` + - `manifest.json` + +2. **Localize a pasta de plugins do seu vault:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +Se a pasta `plugins` não existir, crie-a. + +3. **Crie a pasta Notemd:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **Copie os três arquivos** para a pasta `notemd`. + +5. **Recarregue Obsidian:** + - Pressione `Ctrl/Cmd + R` ou + - Reinicie Obsidian + +6. **Ative o plugin:** + - Configurações → Plugins da comunidade + - Encontre "Notemd" na lista + - Ative-o + +## Alternativa: Instale por meio de BRAT + +Se você usar o [BRAT plugin](https://github.com/TfTHacker/obsidian42-brat): + +1. Abra as configurações de BRAT +2. Clique em "Adicionar plugin Beta" +3. Insira: `Jacobinwwey/obsidian-NotEMD` +4. Clique em "Adicionar Plugin" +5. Habilite Notemd nos plugins da comunidade + +## Verificação + +Após a instalação, verifique se Notemd está funcionando: + +1. Abra qualquer nota +2. Clique com o botão direito no editor +3. Você deve ver comandos Notemd como: + - "Processar arquivo (adicionar links)" + - "Extrair conceitos" + - "Pesquisar e resumir" + +## Próximos passos + +- **Configure o provedor LLM:** [Início Rápido →](./quick-start) +- **Solução de problemas:** [Problemas Comuns →](../advanced/troubleshooting) + +## Requisitos do sistema + +| Plataforma | Versão | Status | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | Necessário | +| **Windows** | 7+ | ✅ Suportado | +| **macOS** | 10.15+ | ✅ Suportado | +| **Linux** | Qualquer | ✅ Suportado | +| **iOS** | 15+ | ✅ Suportado | +| **Android** | 5+ | ✅ Suportado | + +## Desinstalação + +Para remover Notemd: + +1. Configurações → Plugins da comunidade +2. Localize "Notemd" +3. Clique no ícone ❌ +4. Opcionalmente, exclua a pasta do plugin: `<vault>/.obsidian/plugins/notemd/` + +Seus dados (anotações, notas conceituais, etc.) permanecem intactos. + +## Atualizando + +### Atualização automática (Recomendado) +Obsidian verifica automaticamente se há atualizações de plugins. Quando uma nova versão estiver disponível: +1. Configurações → Plugins da comunidade +2. Clique em "Verificar atualizações" +3. Clique em "Atualizar" ao lado de Notemd + +### Atualização manual +Baixe a versão mais recente e substitua os três arquivos na sua pasta de plugins. + +## Obter ajuda + +- 📖 [Guia Rápido de Início](./quick-start) +- ❓ [FAQ](../faq) +- 💬 [Comunidade do Discord](https://discord.gg/qnGgsQ9W) +- 🐛 [Relatar Problemas](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..4c53789e --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "Guia Rápido de Início" +description: "Comece a usar Notemd em 5 minutos" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Guia Rápido de Início + +<TLDR> +**Comece a utilizar Notemd em 5 minutos.** Três passos: (1) Adicione uma chave LLM API (ou use Ollama local), (2) Abra uma anotação e execute "Processar arquivo (adicionar links)", (3) Explore fluxos de trabalho com um clique na barra lateral. Suporta mais de 30 provedores. Não é necessário codificar. Funciona offline com Ollama. +</TLDR> + +## Passo 1: Configure seu primeiro provedor LLM (2 min) + +### Opção A: Provedor em nuvem (OpenAI, Anthropic, etc.) + +1. Abra **Configurações** → **Notemd** +2. Em **Configuração do Provedor LLM**, selecione um provedor na lista suspensa +3. Insira sua **Chave API** +4. (Opcional) Clique em **"Obter lista de modelos"** para ver os modelos disponíveis +5. Selecione um modelo para cada tipo de tarefa + +**Escolhas populares:** +- **OpenAI**: `gpt-4o-mini` (rápido, acessível) +- **Anthropic**: `claude-sonnet-4-6` (alta qualidade) +- **DeepSeek**: `deepseek-chat` (muito acessível) + +### Opção B: Ollama local (não é necessária chave API) + +1. Instalar [Ollama](https://ollama.com/) +2. Baixar um modelo: `ollama pull llama3.1` +3. Nas configurações de Notemd, selecione **"Ollama"** como provedor +4. Nome do modelo: `llama3.1` (ou qualquer modelo que você tenha baixado) + +## Passo 2: Teste sua primeira tarefa (1 min) + +### Adicionar links da Wiki a uma nota + +1. Abra qualquer nota com conteúdo significativo +2. Clique com o botão direito no editor +3. Selecione **"Processar arquivo (adicionar links)"** +4. Aguarde alguns segundos +5. Os conceitos principais estão agora `[[wiki-linked]]`! + +**Exemplo:** + +**Antes:** +``` +Machine learning models use neural networks to process data. +``` + +**Depois:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## Passo 3: Explore os recursos (2 min) + +### Extrair notas de conceito + +1. Clique com o botão direito → **"Extrair conceitos do arquivo atual"** +2. Notemd cria arquivos separados para cada conceito +3. Verifique a pasta de conceitos configurada (padrão: `concepts/`) +4. Cada nota de conceito possui um link de retorno para sua nota original + +### Pesquisar e Resumir + +1. Destacar um tópico na sua anotação +2. Clique com o botão direito → **"Pesquisar e resumir"** +3. Notemd faz buscas na web (Tavily ou DuckDuckGo) +4. O resumo é adicionado à sua anotação com as fontes + +### Fluxos de Trabalho de Um Clique + +1. Verifique a **barra lateral esquerda** para os botões de fluxo de trabalho +2. Clique em **"Extrair com Um Clique"** em qualquer anotação +3. Ele executa: adicionar links → extrair conceitos → pesquisar → gerar diagrama +4. Tudo em um único clique! + +## Tarefas Iniciais Comuns + +### Tarefa 1: Processar um Artigo/Trabalho Acadêmico + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### Tarefa 2: Traduzir Anotações + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### Tarefa 3: Criar um Mapa de Conhecimento + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## Dicas de Personalização + +### Seleção de Modelo por Tarefa + +Você pode usar modelos diferentes para tarefas distintas: + +| Tarefa | Modelo Recomendado | Por quê | +|------|------------------|-----| +| Adicionar Links | `gpt-4o-mini`, `deepseek-chat` | Rápido, muitas chamadas | +| Extrair Conceitos | `claude-sonnet-4-6`, `gpt-4o` | Extração de Qualidade | +| Pesquisa | `perplexity`, `gpt-4o` | Baseado na Web | +| Tradução | `gemini-flash`, `gpt-4o` | Multilíngue | +| Diagramas | `claude-opus`, modelo local | Raciocínio Complexo | + +Configurar em: **Configurações → Notemd → Modelos Específicos para Tarefas** + +### Fluxos de Trabalho Personalizados + +Criar seu próprio botão: + +1. Configurações → Notemd → Fluxos de Trabalho +2. Clique em "Adicionar Fluxo de Trabalho" +3. Insira DSL: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. Nomeie como: "Meu Fluxo de Pesquisa" +5. Um novo botão aparece na barra lateral + +## Solução de problemas + +### "Chave API inválida" +- Verifique se a chave está correta (sem espaços extras) +- Confira se a conta tem créditos +- Teste com o botão "Teste de Conexão" nas configurações + +### "Modelo não encontrado" +- Clique em "Obter Lista de Modelos" para ver os modelos disponíveis +- Alguns provedores exigem nomes de modelo específicos (por exemplo, `gpt-4o` e não `gpt-4`) + +### Links não estão aparecendo +- Certifique‑se de que a nota tem conteúdo suficiente (>50 palavras) +- Tente um modelo mais potente +- Verifique se a chamada LLM foi bem‑sucedida (consulte o painel de diagnóstico) + +### Desempenho lento +- Use modelos mais rápidos (`gpt-4o-mini` em vez de `gpt-4o`) +- Reduza o tamanho do bloco nas configurações +- Habilitar processamento paralelo para tarefas em lote + +## Próximos passos + +- 📖 [Explorar todos os recursos](../features/wiki-links) +- ⚙️ [Configuração avançada](./configuration) +- 🔧 [Configuração do provedor LLM](../providers/overview) +- ❓ [FAQ](../faq) + +## Tutorial em vídeo + +Assista ao vídeo de introdução de 3 minutos (em chinês): +[【Totalmente open source e gratuito! Guia rápido de 3 minutos do NotEMD】](https://b23.tv/lqR0RlA) + +## Obter ajuda + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **Problemas**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **Documentação**: [Documentação completa](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..040d4e06 --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "Introdução ao Notemd" +description: "Construtor de base de conhecimento movido por IA para Obsidian com transformações persistentes de notas, fluxos de trabalho e diagramas focados em especificações" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Introdução ao Notemd + +<TLDR> +**Notemd** (Nota + EMD — Documentos Markdown aprimorados) é um plugin de código aberto para Obsidian que transforma a leitura impulsionada por LLM em conhecimento persistente. Diferentemente da IA baseada em chat, onde as informações desaparecem após a sessão, Notemd grava os resultados **diretamente no seu vault** na forma de links wiki, notas conceituais, resumos de pesquisa, traduções, fluxos de trabalho e diagramas. Ele foi desenvolvido para pesquisadores, estudantes e profissionais de conhecimento que desejam que a leitura, a pesquisa e as explicações visuais se acumulem em um grafo de conhecimento estruturado e em constante evolução. +</TLDR> + +## O que é Notemd? + +Notemd integra **mais de 30 modelos de linguagem grandes** (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama e outros) ao seu fluxo de trabalho Obsidian para automatizar a extração de conhecimento, sua organização, tradução, pesquisa e geração de diagramas. + +### Diferença principal: Conhecimento efêmero vs. persistente + +| Aspecto | IA baseada em chat (ChatGPT, etc.) | Notemd | +|--------|-------------------------------|--------| +| **Para onde vão os resultados** | Histórico de conversa (desaparece) | Seu vault Obsidian (permanece) | +| **Formato** | Respostas em texto simples | Arquivos estruturados: `[[wiki-links]]`, notas conceituais, diagramas | +| **Valor a longo prazo** | É preciso perguntar novamente a cada vez | Acumula em um grafo de conhecimento | +| **Acesso off-line** | Requer internet | Funciona totalmente off-line com Ollama | + +## Recursos principais + +### 1. **Vinculação automática de Wiki** +- LLM identifica conceitos-chave em suas anotações +- Insere `[[wiki-links]]` em cada ocorrência +- Cria opcionalmente anotações de conceitos vinculados +- Supressão de sinônimos para evitar duplicatas + +### 2. **Geração de anotações de conceito** +- Extraí os conceitos principais de artigos, papers e anotações +- Gera arquivos de conceito dedicados com backlinks +- Caminhos de saída e modelos personalizáveis + +### 3. **Integração de pesquisa na web** +- Consulte Tavily ou DuckDuckGo diretamente dentro de Obsidian +- LLM resume os resultados com citações das fontes +- Adiciona resultados de pesquisa à nota atual + +### 4. **Tradução Multilíngue** +- Traduz seleções ou notas inteiras +- Suporta mais de 21 UI idiomas +- Configuração independente da língua de saída +- Suporte a tradução em lote + +### 5. **Geração de Diagramas** +- **Mermaid**: Fluxogramas, sequência, classe, estado, ER, Gantt +- **JSON Canvas**: Layouts nativos Obsidian +- **Vega-Lite**: Gráficos de dados, séries temporais, gráficos de dispersão +- **HTML / HTML editável/SVG**: Artefatos de figura autônomos com anotações semânticas +- **Draw.io / limites do artefato Drawnix**: Caminhos de exportação voltados para mantenedores a partir do mesmo modelo de figura semântica +- **Roteiro de diagramas de circuito**: O suporte circuitikz/TikZJax está sendo projetado com base em referências padrão, prompts restritos, feedback de renderização e validação de topologia/layout, em vez de TikZ bruto e sem restrições. +- **Diagnósticos de visualização**: Os artefatos gerados podem exibir diagnósticos de compilação/renderização, e fontes não inline podem ser inspecionadas sem a necessidade de um ambiente LaTeX no lado do plugin +- Correção automática de sintaxe para erros Mermaid + +### 6. **Fluxos de Trabalho com Um Clique** +- Conectar várias ações em botões de barra lateral +- Definição de fluxo de trabalho baseado em DSL +- Exemplo: `add-links > extract-concepts > research > diagram` + +## Quem deve usar Notemd? + +✅ **Pesquisadores** que leem artigos e criam revisões bibliográficas +✅ **Estudantes** que organizam anotações de estudo e criam mapas conceituais +✅ **Trabalhadores do conhecimento** que desejam que as percepções de leitura sejam armazenadas +✅ **Profissionais bilíngues** que precisam de tradução + links para wiki +✅ **Usuários preocupados com privacidade** que querem suporte local LLM (Ollama) +✅ **Usuários avançados** que personalizam prompts e fluxos de trabalho + +## Por que Notemd + Obsidian? + +**Obsidian** é uma base de conhecimento focada no local, baseada em markdown. **Notemd** adiciona superpoderes de IA: +- Seus dados ficam em seu cofre (não em um serviço em nuvem) +- Funciona off-line com modelos locais +- Gratuito e de código aberto (licença MIT) +- Integra‑se aos plugins Obsidian existentes +- Escala para dezenas de milhares de notas + +## Introdução + +1. **Instalar**: Configurações → Plugins da Comunidade → Navegar → "Notemd" +2. **Configurar**: Adicione a chave do provedor LLM API (ou use o Ollama local) +3. **Testar**: Abra uma nota → Clique com o botão direito → "Processar arquivo (adicionar links)" +4. **Explorar**: Verifique a barra lateral para fluxos de trabalho com um clique + +👉 [Guia de Instalação](./getting-started/installation) | [Tutorial Rápido](./getting-started/quick-start) + +## Direção da Capacidade de Diagramas + +O trabalho com diagramas do Notemd está se afastando de "pedir ao modelo que escreva uma única string de sintaxe" e indo em direção a um pipeline em camadas: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +A implementação atual já suporta Mermaid, JSON Canvas, Vega-Lite, fallback HTML, HTML/SVG editáveis, artefatos Draw.io XML, um subconjunto mínimo de Drawnix JSON, diagnósticos de pré-visualização/fallback apenas de código-fonte, e um protótipo offline do `CircuitSpec -> circuitikz` para modelos comuns e templates dourados de inversor CMOS. Diagramas de circuito são uma classe mais difícil: o circuitikz pode expressar topologia elétrica precisa, mas a saída irrestrita do LLM frequentemente gera roteamento ilegível ou LaTeX que não é renderizado. A próxima direção é manter o circuitikz restrito com templates de referência dourada, regras de layout de grade de nós, diagnósticos de renderização e loops de feedback de captura de tela. + +Leia os detalhes em [Diagramas](./features/diagrams). + +## Arquitetura + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd vs Outros Plugins de IA do Obsidian + +A maioria dos plugins de IA do Obsidian é focada em conversação (você pergunta, a IA responde, as informações ficam no chat). O Notemd é **focado em escrita**: a IA processa suas notas e escreve resultados estruturados diretamente em seu vault. + +| Capacidade | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| Inserção automática de link wiki | Sim | Não | Não | Não | +| Geração de nota conceitual | Sim (com backlinks + eliminação de duplicatas) | Não | Não | Não | +| Geração de diagramas | Sim (Mermaid, Canvas, Vega-Lite, HTML, artefatos editáveis) | Não | Não | Não | +| Integração com pesquisa na web | Sim (Tavily + DuckDuckGo) | Não | Não | Não | +| Processamento em lote de pastas | Sim | Limitado | Não | Limitado | +| Roteamento de modelo por tarefa | Sim (7 tarefas, modelos independentes) | Não | Não | Não | +| Cadeias de fluxo de trabalho com um clique | Sim (DSL) | Não | Não | Não | +| Tradução em lote | Sim | Não | Não | Não | +| Bate-papo com vault | Não | Sim | Não | Não | +| Busca de similaridade semântica | Não | Não | Sim | Não | +| Geração baseada em templates | Não | Não | Não | Sim | +| Fornecedores LLM | 36 (nuvem + gateway + local) | 3-5 | 2-3 | 3-5 | +| Totalmente offline | Sim (Ollama) | Parcial | Parcial | Parcial | + +**Quando escolher Notemd**: você deseja que a IA crie um grafo de conhecimento persistente — e não apenas converse sobre suas anotações. + +**Quando escolher Copilot**: você quer um assistente de IA conversacional dentro de Obsidian. + +**Quando escolher Smart Connections**: você deseja descobrir relações existentes entre anotações por meio de busca semântica. + +## Filosofia + +**Notemd acredita que a IA deve complementar o trabalho de conhecimento humano, e não substituí‑lo.** O plugin: +- Mantém você no controle (revisão antes de aplicar alterações) +- Preserva o contexto (todos os resultados remetem à fonte) +- Respeita a privacidade (suporte local LLM, sem telemetria) +- Permanece extensível (arquivos API abertos, fluxos de trabalho personalizados) + +## Código Aberto + +- **Licença**: MIT +- **Fonte**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **Comunidade**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **Contribuir**: PRs bem-vindos, consulte [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +**Próximo**: [Instalação →](./getting-started/installation) diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..7fb07077 --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Obsidian Guia de Gestão de Conhecimento com IA" +description: "Guia completo para criar uma base de conhecimento interconectada com IA — desde links de wiki e extração de conceitos até pesquisa, tradução e geração de diagramas" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Obsidian Guia de Gestão de Conhecimento com IA + +<TLDR> +**Notemd transforma a leitura impulsionada por LLM em conhecimento persistente: links de wiki conectam conceitos, notas de conceito criam um grafo recuperável, a pesquisa traz informações da web para o seu repositório, a tradução quebra barreiras linguísticas, os diagramas tornam a estrutura visível e os fluxos de trabalho unem tudo com um único clique.** Este guia abrange todo o processo — desde notas brutas até uma base de conhecimento interconectada, visual e multilíngue. +</TLDR> + +## Por que Gestão de Conhecimento com IA? + +A anotação tradicional gera arquivos planos. Mesmo com links de wiki manuais, a maioria das notas permanece desconectada. Notemd utiliza LLMs para automatizar a camada de conexão: + +- **LLMs leem seu conteúdo** e identificam o que é importante — termos, métodos, pessoas, teorias +- **Os links são inseridos automaticamente** em cada ocorrência de conceito, sem ficarem escondidos em "ver também" +- **Notas de conceito são geradas** como arquivos independentes e recuperáveis +- **A pesquisa enriquece as notas** com contexto proveniente da web +- **Os diagramas tornam a estrutura visível** — mapas mentais, fluxogramas, gráficos de dados a partir do mesmo conteúdo + +O resultado: um grafo de conhecimento que cresce a cada nota que você processa, e não apenas quando se lembra de adicionar links. + +## O Processo Completo + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +Cada etapa é independente. Use uma ou todas. A sequência mais eficaz: **Adicionar Links → Notas de Conceito → Diagramas**. + +--- + +## 1. Links de Wiki: Tornando as Conexões Explícitas + +Links de wiki são a espinha dorsal de um grafo de conhecimento. Notemd utiliza um LLM para: + +1. Leia o conteúdo da sua nota (dividindo em partes para documentos longos) +2. Identifique os conceitos principais — dando prioridade a termos técnicos específicos em vez de substantivos genéricos +3. Insira `[[wiki-links]]` em cada ocorrência +4. Suprima sinônimos para que "ML" e "Machine Learning" não criem nós separados + +### Quando usar + +- **Todas as notas com mais de 100 palavras** — notas mais curtas geram poucos conceitos +- **Artigos de pesquisa, documentos técnicos, notas de reunião** — ricos em termos específicos do domínio +- **Depois que o conteúdo estiver estável** — não processe repetidamente rascunhos + +### Configurações principais + +| Parâmetro | Recomendado | Por quê | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek ou GPT-4o-mini | Boa precisão a baixo custo | +| Supressão de sinônimos | Ativado | Impede a criação de nós duplicados | +| Janela de contexto | Parágrafo | Equilíbrio entre precisão e custo | + +→ [Wiki-Links deep dive](/docs/features/wiki-links) + +--- + +## 2. Notas conceituais: Nós de conhecimento recuperáveis + +Os links da Wiki conectam ideias de forma inline, mas as notas conceituais permitem que cada ideia seja recuperada independentemente. Cada conceito possui seu próprio arquivo `.md`: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### O processo de extração + +O prompt LLM é altamente estruturado: +- Normalizar para forma singular +- Preferir conceitos de várias palavras em vez de palavras únicas ("Dielectric Relaxation" e não "Relaxation") +- Ignorar seções de referências/bibliografia +- Gerar saída em linhas `CONCEPT:` para análise determinística + +Os conceitos são deduplicados entre os blocos por meio de `Set<string>`. Erros LLM em blocos individuais não interrompem a operação. + +### Backlinks + +Quando ativado, cada nota conceitual registra quais notas de fonte a mencionam. O painel de backlinks nativo do Obsidian também exibe conexões reversas. + +### Deduplicação + +O mecanismo de deduplicação em 4 etapas do Notemd detecta: +1. **Correspondências exatas** — comparação de nomes de arquivo insensível a maiúsculas e minúsculas +2. **Formas plurais** — "Models.md" vs "Model.md" +3. **Normalização de símbolos** — "A-B.md" vs "A B.md" +4. **Contenção de palavra única** — "ML.md" é marcado quando "Machine Learning.md" existe + +### Configurações da chave + +| Parâmetro | Recomendado | Por quê | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` ou `🧠 concepts/` | Mantém o vault organizado | +| `extractConceptsAddBacklink` | Ativado | Habilita busca reversa | +| `extractConceptsMinimalTemplate` | Desativado | Modelo completo com Linked From | +| Modelo por tarefa | DeepSeek | A extração de conceitos não precisa de modelos caros | +| Supressão de sinônimos | Ativado | A mesma configuração afeta tanto a vinculação quanto a extração | + +→ [Concept Notes deep dive](/docs/features/concept-notes) + +--- + +## 3. Pesquisa: Integrando a Web + +Notemd integra a busca na Web ao seu fluxo de trabalho de anotações: + +1. **Construção da consulta** — o título ou a seleção da nota se torna uma consulta de busca +2. **Busca na Web** — Tavily (recomendado, chave API necessária) ou DuckDuckGo (grátis, sem chave) +3. **Resumo LLM** — os resultados da busca são condensados em um resumo relevante +4. **Anexar à nota** — o resumo é adicionado na posição do cursor ou como uma nova seção + +### Quando usar + +- Antes de processar um novo tópico — obtenha primeiro o contexto da Web +- Quando uma nota conceitual precisa de enriquecimento — pesquise e depois adicione links +- Para revisões bibliográficas — faça pesquisa em lote em uma pasta de notas + +### Configurações principais + +| Parâmetro | Recomendado | Por quê | +|---------|-----------|-----| +| `researchProvider` | GPT-4o ou Claude | A pesquisa requer um resumo de maior qualidade | +| Serviço de busca | Tavily | Melhor relevância, profundidade configurável | +| `maxResearchContentTokens` | 4000 | Equilíbrio entre profundidade e custo | + +→ [Pesquisa aprofundada](/docs/features/research) + +--- + +## 4. Tradução: Quebrando barreiras linguísticas + +Notemd traduz notas usando o LLM configurado por você — não um serviço de tradução dedicado API. Isso significa: + +- **Traduções com reconhecimento de contexto** — o LLM entende todo o documento, e não apenas frase por frase +- **Tratamento de termos técnicos** — "gradient descent" permanece como "梯度下降" e não "坡度向下" +- **Suporte a lotes** — traduza uma pasta inteira de notas em uma única operação +- **Modelo por tarefa** — use Gemini Flash para tradução (rápido, barato, multilíngue) + +### Suporte a idiomas + +O Notemd em si suporta 21 idiomas UI. O idioma de destino da tradução pode ser configurado por tarefa. Pares comuns: EN↔ZH, EN↔JA, EN↔KO, EN↔DE, EN↔FR, EN↔ES. + +→ [Aprofundamento em tradução](/docs/features/translation) + +--- + +## 5. Diagramas: Tornando a estrutura visível + +O pipeline de diagramas do Notemd segue primeiro as especificações: o LLM gera um `DiagramSpec` JSON estruturado, e depois os adaptadores o convertem para o formato de destino. Isso resulta em saídas mais confiáveis do que solicitar ao LLM a sintaxe bruta Mermaid. + +### Detecção de intenção + +O Notemd infere o melhor tipo de diagrama a partir do conteúdo: + +- **Tabelas com números** → gráfico de dados (Vega-Lite) +- **Vocabulário cliente/servidor** → diagrama de sequência (Mermaid) +- **Entidade/chave primária** → diagrama ER (Mermaid) +- **Etapa/fluxo de processo** → fluxograma (Mermaid) +- **Palavras-chave do mapa conceitual** → JSON Canvas (Obsidian nativo) +- **Padrão** → mapa mental (Mermaid) + +### Cadeia de renderização + +Alvo principal → fallback → fallback → HTML. Se a sintaxe Mermaid falhar, ele tenta novamente uma vez com o contexto do erro para o LLM, e depois recorre a um diagrama mínimo. + +### Configurações principais + +| Parâmetro | Recomendado | Por quê | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | Ativado | Melhor qualidade por meio de especificação em primeiro lugar | +| `experimentalDiagramCompatibilityMode` | `best-fit` | Alvo nativo por intenção | +| `summarizeToMermaidProvider` | GPT-4o ou Claude | As especificações do diagrama exigem raciocínio espacial | +| `autoMermaidFixAfterGenerate` | Ativado | Captura automaticamente erros de sintaxe LLM | +| Aumento do conhecimento local | Ativado para domínios específicos | Melhora a precisão com o contexto do vault | + +→ [Diagrams deep dive](/docs/features/diagrams) + +--- + +## 6. Fluxos de trabalho: Automação com um clique + +Os fluxos de trabalho conectam várias tarefas em um único botão da barra lateral. O formato DSL é: + +``` +task1 | task2 | task3 +``` + +Exemplo: `addLinks | extractConcepts | generateDiagram` — processa uma nota de texto bruto em um nó de conhecimento visual totalmente conectado com um único clique. + +### Fluxos de trabalho recomendados + +| Fluxo de trabalho | Cadeia | Caso de Uso | +|----------|-------|----------| +| Processo completo | `addLinks \| extractConcepts \| generateDiagram` | Novas notas | +| Pesquisa primeiro | `research \| addLinks` | Tópicos desconhecidos | +| Polyglot | `translate \| addLinks` | Notas multilíngues | +| Apenas Diagrama | `generateDiagram` | Visualização Rápida | + +→ [Análise aprofundada de fluxos de trabalho](/docs/features/workflows) + +--- + +## 7. LLM Provedores: 36 Opções do Cloud ao Local + +Notemd suporta 36 provedores em 4 tipos de transporte. Grupos principais: + +- **Nuvem Internacional**: OpenAI, Anthropic, Google, Mistral, xAI +- **Nuvem da China**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **Gateways**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **Local**: Ollama, LMStudio, OVMS — sem chave API, nenhum dado sai da sua máquina + +### Estratégia de Modelo por Tarefa + +A configuração mais econômica utiliza modelos baratos para tarefas simples e modelos poderosos para tarefas complexas: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [Visão geral dos LLM Provedores](/docs/providers/overview) + +--- + +## Lista de Verificação para Início + +1. **Instalar Notemd** — [Plugins da Comunidade](/docs/getting-started/installation) (recomendado) ou manualmente +2. **Configurar um provedor** — DeepSeek (mais fácil), OpenAI, ou Ollama (grátis) +3. **Processar sua primeira nota** — clique com o botão direito → "Processar arquivo (adicionar links)" +4. **Definir pasta de conceitos** — Configurações → Notemd → Saída → Pasta de Conceitos +5. **Extrair conceitos** — execute "Extrair conceitos" na mesma anotação +6. **Gerar um diagrama** — execute "Gerar diagrama" para visualizar as conexões +7. **Criar um fluxo de trabalho** — conecte os passos acima em um botão de um clique + +## Configurações recomendadas + +### Estudante (Orçamento) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### Pesquisador (Qualidade) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### Privacidade em Primeiro Lugar (Apenas Local) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### Bilingue (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## Padrões Comuns + +### Padrão: Processar um artigo de pesquisa + +1. Importar conteúdo PDF (ou colar) +2. **Pesquisar** — obter contexto da web sobre o tópico +3. **Adicionar Links** — identificar e vincular conceitos importantes +4. **Extrair Conceitos** — criar anotações independentes +5. **Gerar Diagrama** — visualizar a estrutura do artigo + +### Padrão: Enriquecimento de notas diárias + +1. Escrever nota diária +2. **Adicionar Links** — conecta as ideias de hoje a conceitos existentes +3. As notas de conceito são atualizadas automaticamente com backlinks + +### Padrão: Revisão Bibliográfica + +1. Criar pasta com artigos/notas +2. **Adicionar Links em Lote** — processar toda a pasta +3. **Deduplicar Conceitos** — limpar notas quase duplicadas +4. **Gerar Diagrama** — mapa mental de toda a literatura + +--- + +*Notemd é de código aberto (MIT) e funciona com Obsidian 0.15.0+ em todas as plataformas. [Instalar agora](/docs/getting-started/installation) ou [ver no GitHub](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..71d4ae94 --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "Configurar Anthropic Claude" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Anthropic Provider + +<TLDR> +**Anthropic utiliza o transporte nativo Messages API, e não o transporte compatível com OpenAI.** A predefinição atual usa `claude-3-5-sonnet-20240620`, `https://api.anthropic.com` e `temperature: 0.5` por padrão. Trate‑o como uma superfície de protocolo separada ao depurar. + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Configuração + +Crie uma chave Anthropic API, adicione um perfil de provedor `Anthropic` e mantenha o Base URL no endpoint nativo, a menos que esteja roteando por meio de um perfil de gateway dedicado. Escolha o ID do modelo Claude que deseja usar no campo modelo; o padrão mantém a linha de base do produto atual estável. + +Anthropic é um bom candidato para resumo de alta qualidade, síntese de pesquisa e extração de conceitos. Se o combinar com provedores mais baratos, use‑o apenas nas tarefas que se beneficiam da qualidade de sua saída. + +## Endpoint e Autenticação + +| Campo | Predefinição atual | +|-------|----------------| +| Transporte | `anthropic` | +| Chave API | Necessário | +| Base URL | `https://api.anthropic.com` | +| Modelo padrão | `claude-3-5-sonnet-20240620` | +| Temperatura | `0.5` | +| Teste de conexão | Apenas chat | + +O tempo de execução envia solicitações para `/v1/messages` com `x-api-key` e `anthropic-version: 2023-06-01`. Não configure um endpoint `/v1/chat/completions` no estilo OpenAI sob esta predefinição; use em vez disso uma predefinição de gateway compatível com OpenAI. + +## Descoberta de modelos + +Anthropic utiliza o modo de descoberta `anthropic-models` no registro de provedores. Se sua chave ou conta não puder listar modelos, mantenha um ID de modelo conhecido no perfil e valide por meio do teste de conexão. + +O transporte não é intercambiável com provedores compatíveis com OpenAI. Um modelo Claude roteado por OpenRouter, LiteLLM ou outro gateway deve estar no perfil desse gateway, e não no perfil nativo Anthropic. + +## Solução de problemas + +- `401` ou `403`: verifique o escopo da chave, o acesso ao workspace, a cobrança e se a chave pertence ao workspace Anthropic esperado. +- `404`: o Base URL está incorreto ou o ID do modelo selecionado não está disponível para a conta. +- IDs de modelos Claude no estilo gateway falham: mova o perfil para o provedor gateway correspondente, pois o Anthropic nativo espera nomes de modelo nativos. +- Pedidos longos falham tarde: reduza o tamanho da saída do modelo por tarefa ou use um modelo com um limite maior de tokens de saída conhecido. + +## Quando Usar + +Use Anthropic quando a qualidade na síntese, em notas de pesquisa ou em escrita estruturada for mais importante do que o custo bruto. Não o use como fallback genérico compatível com OpenAI; o transporte separado é o ponto principal, e misturar os protocolos dificulta o diagnóstico. + +--- + +## Próximos passos + +- [LLM Providers](/docs/providers/overview) -- Configuração completa, modelos por tarefa e lógica de tentativa +- [Troubleshooting](/docs/advanced/troubleshooting) -- Corrija erros 401/403 e problemas de conexão diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..89a84bea --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "Fornecedores da China" +description: "Configure Qwen, DeepSeek, GLM, etc." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Fornecedores da China + +<TLDR> +**Notemd suporta fornecedores da região e origem China por meio de endpoints majoritariamente compatíveis com OpenAI.** O conjunto atual inclui DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, MiniMax, Baidu Qianfan, SiliconFlow, Huawei Cloud MaaS e Z AI. O benefício é o alcance regional e o controle de custos; o risco está no nomeamento do modelo específico do fornecedor e nas restrições de conta. + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Configuração + +Crie a conta do fornecedor, gere uma chave API e, em seguida, escolha o preset do fornecedor Notemd correspondente em vez de usar um perfil genérico OpenAI. O preset possui o Base URL padrão, o modelo, o modo de teste API, o comportamento de descoberta de modelos e quaisquer campos UI específicos do fornecedor. + +Use a seleção de modelo por tarefa de forma intensiva aqui. Por exemplo, mantenha DeepSeek ou GLM em fluxos de trabalho com muita racionalização, use Qwen ou Moonshot para trabalhos amplos em língua chinesa e direcione tarefas de codificação para Qwen Code quando essa conta expõe os modelos de codificador. + +## Endpoint e Autenticação + +| Fornecedor | Modelo Padrão | Base URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (ID do endpoint necessário) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**Observação:** Doubao requer um ID de endpoint Ark (formato: `ep-xxxxxxxx-xxxx-xxxx`) em vez de um nome de modelo padrão. + +A maioria desses fornecedores usa o runtime compartilhado compatível com OpenAI, mas suas semânticas de conta e modelo são diferentes. Mantenha o Base URL específico do preset a menos que você tenha verificado o endpoint alternativo da conta. + +## Descoberta de modelos + +DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan e SiliconFlow utilizam a descoberta de modelos compatível com OpenAI quando o fornecedor permite listagem. Huawei Cloud MaaS usa o modo `huaweicloud-modelarts-models` porque os metadados de implantação do ModelArts não são idênticos a uma lista genérica `/v1/models`. + +Não trate a falha na descoberta como prova de que o chat é impossível. Vários fornecedores permitem chat enquanto limitam as permissões de lista de modelos. Nesse caso, mantenha um ID de modelo explícito no perfil e valide com o teste de conexão. + +## Solução de problemas + +- A autenticação tem sucesso, mas o chat falha: o nome do modelo pode estar fora dos direitos ou da região da conta. +- Doubao falha com um nome de modelo normal: use o ID de endpoint Ark no campo de modelo quando sua implantação exigir isso. +- As respostas de racionalização são truncadas: verifique o limite máximo de tokens de saída específico do fornecedor e as configurações de limite máximo de tokens sensíveis ao modelo do Notemd. +- A rede regional varia: use o endpoint da região China do fornecedor quando a máquina do vault está dentro da China; use apenas o endpoint internacional quando tanto a conta quanto o caminho de rede forem válidos. + +## Quando Usar + +Use provedores da China quando a latência regional, o acesso a pagamentos/contas, a qualidade em língua chinesa ou o custo forem a principal restrição. Prefira OpenAI diretos, Anthropic, Google ou provedores locais quando precisar de uma fronteira de protocolo mais simples ou de maior consistência na depuração entre provedores. + +--- + +## Próximos passos + +- [LLM Providers](/docs/providers/overview) -- Configuração completa, modelos por tarefa e lógica de tentativa +- [Solução de problemas](/docs/advanced/troubleshooting) -- Corrija erros de conectividade regional e de autenticação diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..63b39bce --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "Configurar Google Gemini" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Google Provider + +<TLDR> +**Google utiliza o transporte nativo de linguagem gerativa Gemini API.** A predefinição atual usa `gemini-2.0-flash-exp`, `https://generativelanguage.googleapis.com/v1` e `temperature: 0.5` por padrão. Não se trata de um perfil compatível com OpenAI. + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Configuração + +Criar uma chave Cloud API de tipo Google AI Studio ou Google com acesso ao Gemini, adicionar um perfil de provedor `Google` e manter a Base de Linguagem Gerativa nativa URL. Use o perfil padrão Gemini Flash para traduções rápidas e fluxos de trabalho de notas abrangentes, e sobrescreva os modelos por tarefa quando precisar de um modelo Gemini maior ou mais potente. + +Evite colocar IDs de modelos Gemini em um perfil compatível com OpenAI, a menos que esteja usando explicitamente uma gateway que expõe o Gemini por meio de um API compatível com OpenAI. + +## Endpoint e Autenticação + +| Campo | Predefinição atual | +|-------|----------------| +| Transporte | `google` | +| Chave API | Necessário | +| Base URL | `https://generativelanguage.googleapis.com/v1` | +| Modelo padrão | `gemini-2.0-flash-exp` | +| Temperatura | `0.5` | +| Teste de conexão | Apenas chat | + +O tempo de execução chama `/models/{model}:generateContent?key={apiKey}`. A chave é passada como parâmetro de consulta, pois é assim que o endpoint nativo do Gemini é conectado no plugin. + +## Descoberta de modelos + +Google usa o modo de descoberta `google-models`. A descoberta deve retornar os modelos Gemini disponíveis para a chave API; se o seletor estiver vazio, teste a chave contra a mesma Base URL e confirme se a família de modelos está habilitada para essa conta. + +Os limites conhecidos de tokens de saída são considerados pelo modelo no registro de provedores. Se uma tradução longa ou uma explicação de diagrama for truncada, selecione um modelo Gemini com capacidade maior de saída suportada ou reduza o tamanho da saída solicitado. + +## Solução de problemas + +- `400`: o ID do modelo geralmente não corresponde à rota nativa do Gemini ou a solicitação excede o formato suportado pelo modelo. +- `401` ou `403`: verifique as restrições da chave, a ativação do projeto/API e se a chave pode acessar o Gemini. +- `404`: o ID do modelo não está disponível na versão API configurada. +- Exemplos de gateway falham nesse perfil: use a predefinição de gateway em vez do provedor nativo Google. + +## Quando Usar + +Use Google para traduções rápidas, limpeza de grandes volumes de notas e fluxos de trabalho em que o custo/performance do Gemini é melhor do que o de OpenAI ou Anthropic diretos. Prefira outro provedor para fluxos de trabalho que exigem tratamento de modelos de raciocínio compatíveis com OpenAI. + +--- + +## Próximos passos + +- [LLM Providers](/docs/providers/overview) -- Configuração completa, modelos por tarefa e lógica de tentativa +- [Tradução](/docs/features/translation) -- O Gemini Flash é recomendado para tarefas de tradução em grande volume diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..d7bff12d --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "Modelos locais" +description: "Configure Ollama e os LLMs locais" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# Modelos locais + +<TLDR> +**Os provedores locais mantêm o conteúdo da nota fora dos APIs hospedados.** O caminho local atual cobre Ollama com o transporte nativo `ollama` e LMStudio por meio do transporte compatível com OpenAI. Nenhuma chave API é necessária para nenhum dos caminhos, mas o servidor local e o modelo já devem estar em execução. + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Configuração + +Para Ollama, instale Ollama, baixe o modelo desejado, inicie o servidor e adicione um perfil de provedor `Ollama` em Notemd. Para LMStudio, carregue um modelo no servidor local do LM Studio e adicione um perfil de provedor `LMStudio`. + +Os modelos locais são dependências operacionais, não apenas configurações. Notemd só pode chamar o que o processo local expõe, portanto verifique o modelo local fora de Obsidian antes de depurar o plugin. + +## Endpoint e Autenticação + +| Fornecedor | Base URL | Modelo Padrão | Chave API | Observações | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | Não necessário | Transmissão NDJSON; descoberta de modelos por meio de `/api/tags` | +| LMStudio | `localhost:1234/v1` | `local-model` | Não necessário | Envia `"EMPTY"` como token de portador; compatível com OpenAI | + +Ollama utiliza o caminho nativo `/chat` abaixo de seu Base URL. LMStudio segue a rota `chat/completions` compatível com OpenAI e espera um modelo carregado no servidor local. + +## Descoberta de modelos + +Ollama usa o modo de descoberta `ollama-tags` e lista as tags baixadas localmente. LMStudio usa a descoberta de modelos compatível com OpenAI quando seu servidor expõe `/v1/models`. + +Se a descoberta não retornar nada, isso geralmente é um problema de estado do servidor local: o modelo não foi baixado, não carregado ou o servidor está vinculado a um host/porta diferente do perfil. + +## Solução de problemas + +- Conexão recusada: inicie Ollama ou o LM Studio e confirme a porta configurada. +- Modelo não encontrado: baixe a tag Ollama ou carregue o modelo do LM Studio antes de testar. +- Saída lenta: reduza o tamanho do contexto, use um modelo local menor ou direcione tarefas pesadas para um provedor hospedado. +- Respostas vazias ou mal formatadas: confirme que o perfil de provedor selecionado corresponde ao protocolo do servidor local; Ollama e LMStudio não são intercambiáveis. + +## Quando Usar + +Use provedores locais para cofres privados, trabalho off-line ou tarefas repetitivas e baratas. Não presuma que o uso local seja automaticamente melhor para síntese de pesquisa ou raciocínio prolongado; a qualidade do modelo e os limites do hardware são o tradeoff. + +--- + +## Próximos passos + +- [LLM Provedores](/docs/providers/overview) -- Configuração completa e configuração do modelo por tarefa +- [Solução de problemas](/docs/advanced/troubleshooting) -- Corrija erros de connection-refused quando o servidor local não está em execução diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..9d590395 --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "Configurar OpenAI (GPT-4, GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# OpenAI Provider + +<TLDR> +**OpenAI utiliza o transporte compatível com OpenAI compartilhado.** A predefinição atual usa `gpt-4o`, `https://api.openai.com/v1`, `temperature: 0.5` e o teste de conexão `models-then-chat`. Use esta página quando precisar da semântica exata dos campos; use a visão geral [LLM Providers](/docs/providers/overview) para seleção em nível de categoria. + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Configuração + +Criar uma chave OpenAI API, adicionar um perfil de provedor `OpenAI` nas configurações Notemd e manter o Base URL padrão, a menos que esteja apontando intencionalmente para um gateway compatível com OpenAI. O campo do modelo pode permanecer em `gpt-4o` para trabalhos gerais ou ser substituído por outro ID de modelo OpenAI que sua conta possa chamar. + +Use modelos específicos para cada tarefa para controle de custos: mantenha modelos mais poderosos para pesquisa, extração de conceitos e reestruturação de textos longos; use modelos mais baratos ou rápidos para tradução, sugestões de links e resumos curtos. + +## Endpoint e Autenticação + +| Campo | Predefinição atual | +|-------|----------------| +| Transporte | `openai-compatible` | +| Chave API | Necessário | +| Base URL | `https://api.openai.com/v1` | +| Modelo padrão | `gpt-4o` | +| Temperatura | `0.5` | +| Teste de conexão | `/models`, depois `/chat/completions` | + +Notemd normaliza os Base URL compatíveis com OpenAI antes de anexar `chat/completions` ou `models`. Não inclua um `/chat/completions` final no Base URL; isso cria um caminho duplicado. + +## Descoberta de modelos + +OpenAI usa o caminho genérico de descoberta de modelos compatível com OpenAI. As configurações UI primeiro perguntam ao `/v1/models` e depois validam o modelo selecionado com uma solicitação de chat leve. Se a descoberta falhar, mas o chat ainda funcionar, verifique se sua chave tem permissão de lista de modelos ou se um gateway bloqueia a listagem de modelos. + +Modelos de raciocínio são tratados como um caso especial de protocolo: Notemd mescla o conteúdo da solicitação do sistema e do usuário para IDs de raciocínio OpenAI que rejeitam um papel separado de `system`, e exibe apenas o `reasoningEffort` onde a definição do provedor o permite. + +## Solução de problemas + +- `401` ou `403`: verifique a chave, o acesso ao projeto, o status de faturamento e se o modelo selecionado está habilitado para a chave. +- `404` no chat: o Base URL geralmente está incorreto ou já inclui o `/chat/completions`. +- O modelo aparece nos documentos, mas não no seletor: o acesso à lista de modelos e o acesso ao chat são pontos de falha separados; teste manualmente o ID exato do modelo no perfil do provedor. +- Modelo de raciocínio rejeita mensagens: use um ID de modelo coberto pelo caminho de tratamento de raciocínio OpenAI ou mude para um modelo de chat que não faça raciocínio. + +## Quando Usar + +Use OpenAI quando desejar o caminho hospedado padrão mais previsível, quando a descoberta de `/v1/models` é importante ou quando um fluxo de trabalho depende da semântica do modelo de raciocínio OpenAI. Prefira um gateway ou provedor local quando roteamento, privacidade ou controle de custos são mais importantes do que o comportamento direto de OpenAI API. + +--- + +## Próximos passos + +- [LLM Providers](/docs/providers/overview) -- Configuração completa, modelos por tarefa e lógica de tentativa +- [Solução de problemas](/docs/advanced/troubleshooting) -- Corrigir erros 401/403 e limitações de taxa diff --git a/website/i18n/pt/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/pt/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..c879e9bc --- /dev/null +++ b/website/i18n/pt/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "Provedores LLM" +description: "Configurar 36 provedores LLM — nuvem, gateway e local — com seleção de modelo por tarefa" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Provedores LLM + +<TLDR> +**Notemd suporta 36 provedores LLM em 4 tipos de transporte.** Todas as chamadas API utilizam HTTP bruto (sem SDKs), com tentativa automática, fallback de transporte e cache de resposta de 5 minutos. A seleção de modelo por tarefa permite usar modelos baratos para extração de conceitos e modelos poderosos para pesquisa. Não é necessário nenhum campo API para provedores locais (Ollama, LMStudio). +</TLDR> + +Isso faz parte do [Obsidian Guia de Gestão de Conhecimento de IA](/docs/pillar-ai-knowledge). + +## Categorias de Provedor + +### Provedores em Nuvem + +| Fornecedor | Base padrão URL | Modelo Padrão | Temperatura | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### Provedores Gateway/Proxy + +| Fornecedor | Base padrão URL | Modelo Padrão | Observações | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | Adiciona cabeçalhos `HTTP-Referer` + `X-Title` | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | Adiciona cabeçalho `X-GitHub-Api-Version` | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | Adiciona cabeçalho `APP-Code` | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | Campo API opcional | +| **Novo API** | `localhost:3000/v1` | `gpt-4.1` | Campo API opcional | +| **OpenAI Compatible** | (configurado pelo usuário) | `your-model-id` | Endpoint personalizado | + +### Fornecedores da China + +| Fornecedor | Base padrão URL | Modelo Padrão | Observações | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | Focado em programação | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (ID do endpoint necessário) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | Endpoint de Zhipu, China | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | Endpoint internacional de Zhipu | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | Plataforma de hospedagem de modelos | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao requer um ID de endpoint Ark** (formato: `ep-xxxxxxxx-xxxx-xxxx`). O placeholder padrão deve ser substituído. + +### Fornecedores locais + +| Fornecedor | Base padrão URL | Modelo Padrão | Observações | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | Sem chave API. Transmissão em fluxo NDJSON. Descoberta de modelos por meio de `/api/tags` | +| **LMStudio** | `localhost:1234/v1` | `local-model` | Envia `"EMPTY"` como token de autenticação. Descoberta compatível com OpenAI | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (configurado pelo usuário) | `gpt-4o` | Nome da implantação em URL. Cabeçalho `api-key` | + +## Seleção de Modelo por Tarefa + +Notemd suporta provedor e modelo independentes para cada tarefa. Ative com `useMultiModelSettings: true`. + +### Tarefas Disponíveis + +| Tarefa | Chave de Configurações | Provedor Padrão | +|------|-------------|-----------------| +| Adicionar Links (inserção de link da wiki) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| Pesquisa (busca na web + resumo) | `researchProvider` / `researchModel` | DeepSeek | +| Gerar a partir do Título | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| Tradução | `translateProvider` / `translateModel` | DeepSeek | +| Geração de Diagramas | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| Extração de Conceitos | `extractConceptsProvider` / `Model` | DeepSeek | +| Extração de Texto Original | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### Ordem de Resolução + +1. Se `useMultiModelSettings` estiver ativado → use o provedor e modelo específicos da tarefa +2. Se a sobrescrita do modelo da tarefa estiver vazia → recorra ao modelo padrão do provedor +3. Se o provedor da tarefa for inválido → recorra ao `activeProvider` global +4. Se `useMultiModelSettings` estiver desligado → todas as tarefas usam o global `activeProvider` + +### Configurações recomendadas + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## Arquitetura de Chamada API + +### Camadas de Transporte + +1. **Obsidian `requestUrl`** — primária (integrada, funciona em todas as plataformas) +2. **Desktop HTTP** — módulos Node.js `http`/`https` (transmissão em fluxo + solicitações longas) +3. **Web `fetch`** — fallback quando os módulos Node.js não estiverem disponíveis + +O plugin alterna automaticamente entre os transportes em caso de erros temporários de rede. + +### Lógica de Tentativa + +- **Modo normal** (`enableStableApiCall: false`): Uma única tentativa. Em caso de falha temporária, há escalonamento automático para uma tentativa estável. +- **Modo de tentativa estável** (`enableStableApiCall: true`): Até 4 tentativas (1 + 3 repetições) com intervalos de 5 segundos. +- **Erros temporários que acionam a tentativa**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **Não reutilizáveis**: HTTP 400, 401, 403, 404 + +### Armazenamento em Cache de Respostas + +Cache LRU em memória de 5 minutos, indexado por provedor + modelo + temperatura + prompt + conteúdo. Solicitações idênticas subsequentes dentro de 5 minutos retornam os resultados em cache instantaneamente. + +### Tratamento do Modelo de Raciocínio + +Modelos que não suportam o papel `system` (DeepSeek R1, OpenAI o1/o3/o4/gpt-5) têm automaticamente os prompts do sistema e do usuário combinados em uma única mensagem do usuário. + +DeepSeek-específico: `thinkingEnabled` adiciona `{ thinking: { type: 'enabled' } }` à solicitação. `reasoningEffort` (baixo/médio/alto) é passado como `reasoning_effort`. Valida que o número máximo de tokens de saída seja ≥ 8000 quando o modo de raciocínio está ativado. + +### Estimativa de Tokens + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — heurística de 4 caracteres por token. Usada para garantir `maxResearchContentTokens` antes de enviar para LLM. + +Nenhum rastreamento de custos é implementado. + +## Descoberta de modelos + +| Modo | Provedores | Ponto Final | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | Lista de Modelos API | +| `anthropic-models` | Anthropic | Lista de Modelos API | +| `openai-compatible-models` | DeepSeek, Qwen, Mistral, etc. | `/v1/models` | +| `openrouter-models` | OpenRouter | Lista de Modelos API | +| `github-models` | GitHub Models | Infereção API | +| `none` | Azure OpenAI | Desativado (requer nome de implantação) | + +## Início Rápido + +1. **Escolha um provedor** — DeepSeek (China), OpenAI (Internacional) ou Ollama (Local/Livre) +2. **Insira a chave API** — Configurações → Notemd → Provedor → Chave API +3. **Testar conexão** — Clique no botão de teste +4. **Opcional: Modelos por tarefa** — Ative `useMultiModelSettings` e configure individualmente + +Para Ollama: não é necessária a chave API. Apenas certifique‑se de que `ollama serve` esteja em execução. + +--- + +## Próximos passos + +- 📝 [Notas conceituais](/docs/features/concept-notes) — Utiliza o modelo de extração por tarefa +- 🎨 [Diagramas](/docs/features/diagrams) — Utiliza o modelo de diagrama por tarefa +- 🔍 [Pesquisa](/docs/features/research) — Utiliza o modelo específico para pesquisa +- ⚙️ [Configuração](/docs/getting-started/configuration) — Referência completa de ajustes diff --git a/website/i18n/pt/docusaurus-theme-classic/footer.json b/website/i18n/pt/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/pt/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/pt/docusaurus-theme-classic/navbar.json b/website/i18n/pt/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/pt/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/ro/code.json b/website/i18n/ro/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/ro/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/ro/docusaurus-plugin-content-docs/current.json b/website/i18n/ro/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/ro/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/ro/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/ro/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..ce29500b --- /dev/null +++ b/website/i18n/ro/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "Procesare în loturi" +description: "Procesează mai multe fișiere eficient" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# Procesare în loturi + +<TLDR> +**Notemd procesează întregi foldere într-o singură acțiune, cu concurență configurabilă și control de suprascriere.** Faceți clic dreapta pe o folderă pentru a adăuga în lot link-uri wiki, extrage concepte, efectuează cercetări sau traduce toate notițele din ea. Limitele de concurență previn erorile de rate-limiting API. Progresul este raportat pentru fiecare fișier. Comportamentul de suprascriere este configurabil: sărate existente, adăugare sau înlocuire. Fișierele eșuate sunt înregistrate fără a opri procesarea în lot. + +Acesta face parte din [Obsidian Ghidul de gestionare a cunoștințelor AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Prezentare generală + +Procesarea în loturi transformă o folderă cu notițe într-o singură operațiune. În loc să deschideți fiecare notă și să rulați comenzi individual, faceți clic dreapta pe folderă și alegeți sarcina. Notemd parcurge fiecare fișier `.md`, aplică acțiunea alesă și raportează progresul în timp real. + +Această funcție este esențială pentru extragerea cunoștințelor la nivelul întregului depozit. După importarea a zeci de PDF, de exemplu, adăugarea în lot a linkurilor urmată de extragerea în lot a conceptelor construiește graful dumneavoastră de cunoștințe în câteva minute, nu ore. + +## Cum funcționează + +### Modelul de execuție în loturi + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **Colectarea fișierelor** -- Notemd scanează foldera țintă recursiv (sau doar la nivel superior, în funcție de setările) și colectează toate fișierele `.md`. +2. **Partizionarea concurenței** -- Fișierele sunt împărțite în bucăți în funcție de setarea `batchConcurrency`. Fiecare bucăță este executată în paralel; bucățile sunt executate secvențial. +3. **Execuția** -- Fiecare fișier este procesat folosind aceeași logică ca comanda pentru un singur fișier. Sunt respectate setările furnizorului și ale modelului pentru fiecare sarcină. +4. **Raportarea progresului** -- O notificare de tip toast se actualizează după finalizarea fiecărui fișier, afișând progresul `N / Total`. +5. **Gestionarea erorilor** -- Dacă o fișier eșuează (erere API, timeout de rețea etc.), eroarea este înregistrată și procesarea în lot continuă. Rezumatul final listează toate fișierele eșuate. +6. **Finalizare** -- O notificare de rezumat raportează numărul total procesat, succesurile și eșecurile. + +### Comportamentul de suprascriere + +Atunci când se procesează un fișier care conține deja linkuri wiki, note conceptuale sau traduceri, comportamentul Notemd depinde de setarea de suprascriere: + +| Mod | Comportament | +|------|----------| +| **Sări** | Conținutul existent rămâne neschimbat. Se procesează doar fișierele nemonulate. | +| **Adaugare** (valoare implicită) | Nouul conținut este adăugat. Linkurile wiki, conceptele sau traduceri existente sunt păstrate. | +| **Înlocuire** | Fișierul este procesat complet din nou. Toate modificările anterioare efectuate de Notemd sunt suprascrise. | + +În cazul linkurilor wiki în special: dacă o notă conține deja `[[wiki-links]]`, modul **Sări** o lase pe loc, în timp ce **Înlocuirea** trimite întreagă nota către LLM pentru inserarea nouă a linkurilor. Folosiți **Sări** pentru procesare incrementală și **Înlocuire** pentru reprocesare după o actualizare a modelului. + +### Controlul concurenței + +Setarea `batchConcurrency` limitează numărul de apeluri paralele API. Acest lucru previne erorile de limitare a ratelor (HTTP 429) atunci când se procesează foldere mari la furnizori cu cote stricte. + +| Concurență | Recomandat pentru | Impactul tipic asupra limitării ratelor | +|-------------|----------------|---------------------------| +| `1` | Tiere gratuite, furnizori stricți | Niciunul (serial) | +| `3` (implicit) | Majoritatea furnizorilor cloud | Scăzut | +| `5` | Ollama (local), tiere generoase | Niciunul / Scăzut | +| `10` | Modele locale cu inferență rapidă | Niciunul | + +Dacă întâlniți erori 429 în timpul procesării în lot, reduceți concurența la 1 sau 2. + +## Configurație + +| Setare | Implicit | Efect | +|---------|---------|--------| +| `batchConcurrency` | `3` | Număr maxim de apeluri paralele API în timpul operațiilor cu foldere | +| `batchOverwriteExisting` | `false` | Scrie peste conținutul existent Notemd. `false` = modul de adăugare. | +| `batchSkipProcessed` | `false` | Săriți peste fișierele care conțin deja markeri Notemd (de exemplu, linkuri wiki) | +| `batchRecursive` | `true` | Incluzi subdirecțiile atunci când scanați folderul | +| `enableStableApiCall` | `false` | Activează logica de repetare (până la 4 încercări) pentru fiecare fișier în lot | + +### Modele per-task în lot + +Fiecare operație de lot folosește modelul corespunzător per-task. batch-add-links folosește `addLinksProvider`, batch-research folosește `researchProvider` și așa mai departe. Acest lucru înseamnă că puteți atribui modele ieftine pentru operații de volum mare și rezerva modele scumpe pentru sarcini sensibile la calitate. + +## Exemplu + +Aveți un folder `papers/` care conține 40 de note de cercetare importate. Doriți să adăugați linkuri wiki și să extrageți concepte din toate ele: + +1. Faceți clic dreapta pe folderul `papers/` +2. Selectați **"Notemd: Process folder (add links)"** +3. Notemd scanează folderul, găsește 40 fișiere `.md` și le procesează pe 3 la rând (concurrentism standard) +4. O notificare de progres arată: `12/40 files processed...` +5. După aproximativ 3 minute, o notificare de rezumat raportează: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. Repetați cu **"Notemd: Process folder (extract concepts)"** pentru a crea note conceptuale pentru toate cele 40 + +Fișierul care a eșuat este înregistrat. Puteți rula procesul doar pe acel fișier ulterior. + +## Sfaturi + +- **Începeți cu un concurrentism scăzut** -- Dacă nu sunteți siguri cu limitele de rate ale furnizorului dumneavoastră, începeți cu `1` și creșteți treptat. +- **Folosiți modul de omisie pentru actualizări incrementale** -- După prima porție completă, treceti la `batchSkipProcessed: true` astfel încât doar notele noi să fie procesate în execuțiile ulterioare. +- **Activezați apelurile stabile API** -- `enableStableApiCall: true` adaugă logică de reîncercare care se recuperează de erorile temporare de rețea în timpul loturilor lungi. +- **Rulați din nou după actualizările modelelor** -- Dacă treceti la un model mai bun, setați `batchOverwriteExisting: true` și rulați din nou pentru a obține linkuri și concepte îmbunătățite. + +--- + +## Următoarele pași + +- [Workflows](/docs/features/workflows) -- Legați sarcinile în lot în butoane de bara laterală cu un clic +- [Custom Prompts](/docs/advanced/custom-prompts) -- Personalizați prompturile pentru extracția în lot +- [Troubleshooting](/docs/advanced/troubleshooting) -- Rezolvați erorile de limită de rate și eșecurile de conexiune în timpul execuțiilor în lot +- [LLM Furnizori](/docs/providers/overview) -- Referință de configurare a modelului pe sarcină diff --git a/website/i18n/ro/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/ro/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..26546392 --- /dev/null +++ b/website/i18n/ro/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "Prompturi personalizate" +description: "Personalizați prompturile LLM în funcție de nevoile dumneavoastră" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# Prompturi personalizate + +<TLDR> +**Notemd vă permite să înlocuiți promptul implicit LLM pentru fiecare tip de sarcină.** Prompturile personalizate vă oferă control asupra ceea ce priorizează modelul: puteți limita extracția conceptelor la o anumită disciplină, modifica stilul de legare sau redirecționa tonul traducerii. Variabilele de prompt precum `{{content}}` și `{{concept}}` sunt înlocuite în timpul execuției. Funcția de domeniu de învățare concentrată adaugă înaintea textului domeniul dumneavoastră de studiu pentru a limita automat rezultatele extracției. + +Acesta face parte din [Obsidian Ghidul de gestionare a cunoștințelor AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Prezentare generală + +Prompturile integrate ale Notemd sunt scrise pentru lucrări cu cunoștințe generale. Ele funcționează bine în diferite domenii, dar lase și spațiu pentru îmbunătățiri specifice domenului. Prompturile personalizate vă permit să spuneți LLM exact cum să se comporte pentru cazul dumneavoastră – fie că este vorba de extracția doar a terminologiei medicale, legarea doar a entităților denumite sau traducerea într-un registru formal. + +Prompturile personalizate nu înlocuiesc întregul prompt sistem. Ele înlocuiesc sau completă **partea de instrucțiuni specifice sarcinii**, păstrând în același timp formatul structural al rezultatului (de exemplu, linii `CONCEPT:`, sintaxa linkurilor wiki) de care depinde Notemd pentru analiză. + +## Cum funcționează + +### Arhitectura promptului + +Fiecare sarcină Notemd urmează aceeași structură de prompt: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **Promptul sistem de bază** -- Stabilizează personalitatea asistentului. Nu poate fi înlocuit. +2. **Domeniul de învățare concentrată** -- Adaugă înaintea textului `Relevant Fields: [medicine / law / computer science / ...]` pentru a limita domeniul. Acesta este un comutator de setări, nu un prompt brut. +3. **Promptul personalizat pentru sarcină** -- Înlocuiește instrucțiunile implicite pentru sarcină (de exemplu, ce tipuri de concepte să se extragă, cât de intensiv să se facă legările). +4. **Formatul de ieșire** -- Reguli structurale (linii `CONCEPT:`, format wiki-link). Este adăugat întotdeauna de Notemd pentru a asigura analizabilitatea. +5. **Conținutul** -- Textul real al notei, înlocuit în timpul execuției prin `{{content}}`. + +### Variabilele de prompt + +Variabilele sunt înlocuite la momentul execuției. Variabilele disponibile diferă în funcție de sarcină: + +| Variable | Lucrări | Înlocuit cu | +|----------|-------|---------------| +| `{{content}}` | Toate | Textul notei sau al selecției | +| `{{concept}}` | Șablon de nota conceptuală | Numele conceptului extras | +| `{{description}}` | Șablon de nota conceptuală | Descrierea conceptului generată de LLM | +| `{{backlinks}}` | Șablon de nota conceptuală | Listă de note sursă cu linkuri | +| `{{date}}` | Șablon de nota conceptuală | Data curentă (YYYY-MM-DD) | +| `{{language}}` | Traducere | Limbajul țintă pentru output | +| `{{source}}` | Șablon de nota conceptuală | Numele bazal al notei sursă | + +### Domeniul de învățare concentrat + +Funcția de învățare concentrată reprezintă o scorțișoară pentru delimitarea domeniului. În loc să scrieți un prompt personal care menționează domeniul dumneavoastră, setați `focusedLearningDomain` în setările: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +Acest lucru adaugă `Relevant Fields: [medicine]` la începutul promptului de extracție, făcând ca LLM să priorizeze conceptele relevante pentru domeniu și să suprimă cele generice. Este mai ușor decât un prompt personal complet și funcționează în toate sarcinile de extracție. + +## Configurație + +| Setare | Implicit | Efect | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | Suprascrieți promptul implicit al sarcinii de adăugare a legăturilor | +| `customExtractConceptsPrompt` | `''` | Suprascrieți promptul implicit al extracției de concepte | +| `customResearchPrompt` | `''` | Suprascrieți promptul implicit de cercetare + rezumat | +| `customTranslatePrompt` | `''` | Suprascrieți promptul implicit de traducere | +| `customDiagramPrompt` | `''` | Suprascrieți promptul implicit de generare a diagramelor | +| `focusedLearningDomain` | `''` | Adăugați contextul disciplinar la prompturile de extracție și de legături | +| `extractConceptsMinimalTemplate` | `true` | Folosiți șablonul de notă de concept doar cu titlu (afectează domeniul șablonului `{{concept}}`) | +| `customConceptNoteTemplate` | `''` | Suprascrieți șablonul de fișier de notă de concept cu suport complet pentru variabile | + +**Când câmpul de prompt personal este gol, se folosește promptul implicit integrat.** + +## Exemplu + +Sunteți un cercetător medical care extrage concepte din notele de studii clinice. Promptul implicit extrage nume generici alături de termeni medicali, ceea ce încurcă folderul dumneavoastră de concepte. + +**Soluție:** Setați un domeniu de învățare concentrat și un prompt personal de extracție. + +1. Setați `focusedLearningDomain` la `medicine` +2. Setați `customExtractConceptsPrompt` la: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +Acum, atunci când rulați „Extract concepts” pe o notă clinică, LLM generează: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +În loc de comportamentul implicit care ar putea extrage și termeni generei nedorite precum „hospital” sau „month”. + +## Sfaturi + +- **Începeți cu domeniul de învățare specificat** înainte de a scrie un prompt personalizat complet. Acest lucru acoperă 80% dintre cazuri de utilizare cu o singură setare. +- **Păstrați formatul de ieșire** – Nu eliminați niciodată instrucțiunile de format precum „una pe linie” sau „CONCEPT: prefix” din prompturile personalizate. Parser-ul Notemd depinde de ele. +- **Testați mai întâi cu o singură notă** – Prompturile personalizate pot avea efecte neașteptate asupra amploarei extracției. Verificați pe o singură notă înainte de procesare în lot. +- **Păstrați prompturile concise** – Prompturile personalizate prea lungi consumă tokeni și pot dilua concentrarea modelului. + +--- + +## Următoarele pași + +- [Wiki-Links](/docs/features/wiki-links) – Ce este linkat atunci când personalizați promptul add-links +- [Concept Notes](/docs/features/concept-notes) – Șabloane de note conceptuale și variabila `{{concept}}` +- [Batch Processing](/docs/advanced/batch-processing) – Aplicați prompturile personalizate pe întregi foldere +- [Troubleshooting](/docs/advanced/troubleshooting) – Rezolvați problemele în care prompturile personalizate generează ieșiri neașteptate diff --git a/website/i18n/ro/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/ro/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..e924adf0 --- /dev/null +++ b/website/i18n/ro/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "Dezvoltarea de soluții" +description: "Probleme comune și soluții" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Dezvoltarea de soluții + +<TLDR> +**Majoritatea Notemd problemelor se încadrează în patru categorii: probleme majore API, conectivitatea la rețea, erori de autentificare (401/403) și limite de rată (429).** Testul de conectare integrat și panoul de diagnostic identifică rapid cauza fundamentală. Această pagină acoperă fiecare mesaj de eroare comun, cauza sa și soluția. Pentru probleme care nu sunt listate aici, raportați-le pe GitHub Issues împreună cu rezultatul de diagnostic. + +Acesta face parte din [Obsidian Ghidul de gestionare a cunoștințelor AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Prezentare generală + +Notemd depinde de servicii externe – furnizori LLM și motoare de căutare API – astfel că majoritatea problemelor provin din afara propriu-zisului plugin. Panoul de diagnostic din setările oferă o vizualizare structurată a ultimei API apeluri, inclusiv cererea URL, statutul răspunsului și corpul erorii. Verificați-l întotdeauna în primul rând înainte de a investiga mai departe. + +## Cum funcționează: Diagnostic + +### Testul de conectare + +Fiecare secțiune de configurare a furnizorului are un buton **"Testa conexiunea"**. Apăsând pe el se trimit o cerere minimă API (de obicei o listă de modele sau o completare scurtă) și se raportează succesul sau eroarea specifică HTTP. Acesta este cel mai rapid mod de a verifica dacă cheia API și baza URL sunt corecte. + +### Panoul de diagnostic + +**Setări --> Notemd --> Diagnostic** afișează: + +| Câmp | Conținut | +|-------|---------| +| Ultimul furnizor | Care furnizor a fost apelat ultim | +| Ultimul model | Care model a fost apelat ultim | +| Starea ultimă | Codul de stare HTTP sau eroare de transport | +| Eroarea ultimă | Mesajul brut de eroare din API | +| Cererea ultimă URL | Contenutul complet URL al cererii ultime (cuvintele cheie API redactate) | +| Corpul răspunsului ultim | Corpul răspunsului trunchiat (primele 500 de caractere) | + +Copiați întregul output al diagnosticurilor atunci când raportați probleme pe GitHub. + +## Eroare comune + +### Cuvântul cheie API invalid sau lipsit + +**Simptom:** HTTP 401 sau „Cuvântul cheie API furnizat este incorect” + +**Cauză:** Cuvântul cheie API este lipsit, conține spații sau aparține unui furnizor diferit. + +**Soluție:** +1. Verificați că cuvântul cheie nu are spații la început/sfârșit +2. Confirmați că cuvântul cheie corespunde furnizorului selectat (un cuvânt cheie OpenAI nu va funcționa cu Anthropic) +3. Verificați dacă contul dumneavoastră are credite sau o abonare activă +4. Faceți clic pe **"Test Connection"** pentru a verifica + +### Erori de rețea / conexiune + +**Simptom:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**Cauză:** Endpointul API nu este accesibil din mașina dumneavoastră. + +**Soluție:** +1. Verificați conexiunea cu internet +2. Dacă sunteți în spatele unui proxy sau firewall, verificați că domeniul API nu este blocat +3. Pentru Ollama: confirmați că `ollama serve` rulează (`ollama list` ar trebui să returneze modele) +4. Pentru LMStudio: confirmați că serverul rulează pe `localhost:1234` +5. Încercați un transport diferit – utilizatorii mobile ar trebui să se asigure că transportul `requestUrl` este activ +6. Activeazați `enableStableApiCall` pentru repetări automatice în cazul erorilor temporare + +### 403 Forbidden + +**Simptom:** HTTP 403 + +**Cauză:** Cheia API dumneavoastră este validă, dar nu are permisiuni pentru resursa solicitată. + +**Soluție:** +1. Unele modele necesită acces special (de exemplu, GPT-4 prin Azure necesită un nume de implementare) +2. Unii furnizori restricționează modelele în funcție de nivelul planului – verificați contul dumneavoastră +3. Pot exista restricții regionale (unii furnizori din China blochează IP-urile internaționale și invers) +4. Verificați dacă numele modelului este scris corect (de exemplu, `gpt-4o` nu `gpt-4o-mini` atunci când modelul mini este tot ceea ce permite planul dumneavoastră) + +### Limita de rate (429) + +**Simptom:** HTTP 429 sau „Limita de rate a fost depășită“ + +**Cauză:** Prea multe cereri într-o perioadă scurtă de timp. + +**Soluție:** +1. Reduceți `batchConcurrency` la `1` sau `2` +2. Așteptați câteva minute înainte de a încerca din nou +3. Verificați documentația furnizorului dumneavoastră privind limita de rate pentru nivelul planului +4. Activeazăți `enableStableApiCall` pentru repetări automatice cu backoff +5. Luați în considerare trecerea la un furnizor cu limite mai mari (DeepSeek, Ollama) + +### Modelul nu a fost găsit + +**Simptom:** „Modelul nu a fost găsit“ sau HTTP 404 + +**Cauză:** Numele modelului nu există la furnizorul selectat. + +**Rezolvare:** +1. Faceți clic pe **"Obține lista modelurilor"** pentru a vedea toate modelele disponibile pentru furnizorul dumneavoastră +2. Unele nume de modele se schimbă cu timpul -- verificați numele actual în documentația furnizorului +3. Pentru Ollama: rulați `ollama list` pentru a vedea modelele extrase; doar modelele descărcate sunt disponibile + +### Fără legături / Fără concepte generate + +**Simptom:** Comanda se execută dar nu produce nicio ieșire + +**Cauză:** LLM a returnat o răspunsă golă sau necompilabilă. + +**Rezolvare:** +1. Verificați panoul de diagnostic pentru răspunsul real de la LLM +2. Încercați un model mai puternic (unele modele mici au dificultăți cu ieșirea structurată) +3. Asigurați-vă că nota conține suficient conținut (>50 de cuvinte) +4. Revizuiți promptul personal pentru instrucțiuni conflictuale +5. Desactiveazăți temporar suprimarea sinonimelor pentru a vedea dacă aceasta filtrează prea agresiv + +### ID-ul endpointului Doubao lipsește + +**Simptom:** Erroare la utilizarea furnizorului ByteDance Doubao + +**Cauză:** Doubao necesită un ID de endpoint Ark (format: `ep-xxxxxxxx-xxxx-xxxx`) în loc de un nume de model. + +**Rezolvare:** Înlocuiți modelul placeholder implicit cu ID-ul real al endpointului dumneavoastră din consola Volcengine. + +## Configurație + +| Setarea de diagnostic | Locație | Scop | +|--------------------|----------|---------| +| **Testare a conexiunii** | Secțiunea Settings --> Provider | Verificați cheia API și conectivitatea | +| **Obținerea listei de modele** | Secțiunea Settings --> Provider | Confirmați care modele sunt accesibile | +| `enableStableApiCall` | Settings --> Avansate | Activeazăți repetări cu backoff | +| `batchConcurrency` | Settings --> Batch | Controlați paralelismul pentru a evita limitele de rată | + +## Cum să raportați probleme + +Dacă problema dumneavoastră nu este acoperită mai sus: + +1. Deschideți **Setări --> Notemd --> Diagnostic** +2. Copiați întregul rezultat al diagnosticului +3. Deschideți o problemă pe GitHub la [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +4. Includeți: versiunea Obsidian, versiunea Notemd, furnizorul, modelul, rezultatul diagnosticului și pașii pentru a reproduce problema +5. Redactați cheia API din orice jurnale partajate + +--- + +## Următoarele pași + +- [LLM Furnizori](/docs/providers/overview) -- Referință completă de configurare a furnizorilor +- [Procesare în lot](/docs/advanced/batch-processing) -- Setări de concurență și reîncercare pentru operații mari +- [Prompturi personalizate](/docs/advanced/custom-prompts) -- Corectați comportamentul neașteptat al LLM prin ajustarea prompturilor diff --git a/website/i18n/ro/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/ro/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..3fa5a047 --- /dev/null +++ b/website/i18n/ro/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "Întrebări frecvente" +description: "Întrebări comune despre instalarea, caracteristicile și utilizarea Notemd" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# Întrebări frecvente + +<TLDR> +**Răspunsuri rapide la cele mai frecvente întrebări despre Notemd.** Acoperă instalarea (setare în 5 minute), suport pentru peste 30 de furnizori LLM, opțiuni de model local/cloud, fluxuri de lucru cu un clic, UI multilingvist (21 de limbi), automatizare a legăturilor wiki, integrare cu cercetări, fluxuri de lucru de citire PDF, generare de diagrame și licențiere open-source. Toate caracteristicile funcționează offline cu Ollama. +</TLDR> + +--- + +## Instalare și setare + +### Cum instalez Notemd în Obsidian? + +Deschidez Obsidian **Settings → Community Plugins → Browse** → caut **"Notemd"** → **Install** → **Enable**. + +**Cerințe:** +- Obsidian 0.15.0+ +- Suportat pe desktop (Windows, macOS, Linux) și pe mobil (iOS, Android) + +**Instalare manuală:** +1. Descarcă `main.js`, `styles.css`, `manifest.json` de la [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) +2. Plasează-le în `<your-vault>/.obsidian/plugins/notemd/` +3. Reîncarcează Obsidian și activează pluginul + +**Statistici:** peste 4k de descărcări, 44 de lansări, licențiat cu MIT. + +--- + +## Configurația LLM + +### Care provizori LLM suportă Notemd? + +Notemd suportă **peste 30 de provizori**: + +**Provizori cloud:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonnet, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**Focusat pe China:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**Local/self-hosted:** +- Ollama +- LM Studio +- Orice endpoint compatibil cu OpenAI + +**Gateways:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models, Fireworks, LiteLLM, Nebius, Cerebras +- Hugging Face, Vercel AI Gateway, Requesty + +### Poate Notemd să funcționeze cu LLM locale? + +**Da, este complet suportat.** Notemd funcționează cu: +- **Ollama** (integrare nativă) +- **LM Studio** (prin endpoint compatibil cu OpenAI) +- **vLLM, LocalAI, text-generation-webui** (prin modul compatibil cu OpenAI) + +Toate sarcinile funcționează cu modele locale: legare, generare de concepte, traducere, cercetare și generare de diagrame. + +**Exemplu de combinare:** +- Ollama (local) pentru legare → rapid, privat, fără cost +- OpenAI pentru cercetare → calitate ridicată, integrare cu căutarea web +- Gemini pentru traducere → suport multimodal + +### Cum pot configura modele diferite pentru sarcini diferite? + +În **Setările Notemd**, fiecare sarcină are selectoare independente de furnizor/model: + +| Sarcină | Configurare exemplară | +|------|----------------------| +| **Legături** | DeepSeek (rapid, ieftin) | +| **Generare a conceptului** | Claude Opus (calitate ridicată) | +| **Cercetare** | Perplexity sau GPT-4o (web-grounded) | +| **Traducere** | Gemini Flash (multimodal) | +| **Generarea diagramelor** | Ollama (local, privat) | + +Această optimizare pe sarcină echilibrează viteza, costul și calitatea. + +--- + +## Funcții principale + +### Cum diferă Notemd de ChatGPT în ceea ce privește citirea pe hârtie? + +| Dimensiune | ChatGPT | Notemd | +|-----------|---------|--------| +| **Locația de ieșire** | Istoricul de chat (efemer) | Obsidian depozit (fișiere persistente) | +| **Formatul rezultatului** | Răspuns textual | Legături wiki, note conceptuale, diagrame, traduceri | +| **Valoarea pe termen lung** | Dispare după sesiune | Se acumulează în baza de cunoștințe | +| **Reutilizabilitatea** | Trebuie să se interogheze din nou | Fișierele rămân, linkurile evoluează | + +**Utilizați ChatGPT pentru:** Interogări rapide și explicații uneori utilizate +**Utilizați Notemd pentru:** Crearea unei baze de cunoștințe persistente și structurate pe săptămâni/luni + +### Cum adaugă Notemd legături wiki în notele? + +**Procesul:** +1. Rulați „Process file (add links)“ asupra unei note +2. Notemd trimite textul către LLM configurat de dumneavoastră +3. LLM identifică conceptele cheie în context +4. Notemd inserează `[[wiki-links]]` la fiecare apariție a unui concept +5. Opțional, creează automat note de concept într-o folder specificată + +**Caracteristici:** +- Suprimarea sinonimelor (evită duplicatele între "transformer" și "transformers") +- Backlink-uri din notele de concept către sursă +- Integritatea linkurilor la renumire/eliminare +- Modul de extracție pură (extrage concepte fără a modifica originalul) + +### Ce este fluxul de lucru cu un clic Notemd? + +**Fluxuri de lucru cu un clic** leagă mai multe acțiuni într-un **singur buton din bara laterală**. + +**Fluxul de lucru implicit:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**Rezultat:** Un clic execută următoarele acțiuni: +1. Adaugă linkuri wiki la nota curentă +2. Generează note de concept pentru termenii noi +3. Cercetare și adăugare de informații de fundal +4. Comprime într-un diagram Mermaid + +**Fluxuri de lucru personalizate:** Definiți propriile în Setări folosind formatul DSL. Fiecare flux de lucru devine un buton reutilizabil în bara laterală. + +### Cum se compară Notemd cu Copilot sau Smart Connections? + +Aceste plugin-uri rezolvă probleme diferite: + +- **Copilot** — Prioritatea este conversația. Vă conversați cu o IA despre notele dumneavoastră. Răspunsurile AI rămân în panoul de chat; ele nu modifică seiful dumneavoastră. +- **Smart Connections** — Prioritatea este descoperirea. Acesta găsește note semantic similare folosind embed-uri. Nu creează sau modifică conținut. +- **Notemd** — Prioritatea este scrierea. IA procesează notele dumneavoastră și scrie rezultate structurate (linkuri wiki, note conceptuale, cercetare, diagrame, traduceri) direct în seiful dumneavoastră ca fișiere persistente. + +| Ceea ce aveți nevoie | Plugin recomandat | +|----------------|-------------------| +| Conversație cu IA despre note | Copilot | +| Găsirea de note similare/relate | Smart Connections | +| Inserare automată a linkurilor wiki și construirea unui graf de cunoștințe | **Notemd** | +| Generarea de note conceptuale cu backlink-uri | **Notemd** | +| Crearea de diagrame din conținutul notei | **Notemd** | +| Cercetați un subiect și adăugați rezumate | **Notemd** | + +Toate cele trei pot fi folosite împreună — ele se completă, nu concurează. + +--- + +## Cercetare și Traducere + +### Care servicii de căutare funcționează cu cercetarea Notemd? + +| Serviciu | Este necesar API Key | Calitate | Note | +|---------|-----------------|---------|-------| +| **Tavily** | Da | Înalt | Căutare recomandată, optimizată cu AI | +| **DuckDuckGo** | Nu | Experimental | Fără configurare, calitate mai scăzută | + +**Cum funcționează „Cercetare și rezumat“:** +1. Alegeți un subiect sau executați-l pe nota curentă +2. Notemd interoghează serviciul de căutare +3. Rezultate → rezumatul LLM +4. Rezumatul este adăugat la nota dumneavoastră cu citate din surse + +**Rezultat:** Tracțiu persistent de cercetare în seiful dumneavoastră, nu în ferestele browserului. + +### O sprijine Notemd limba chineză sau alte limbaje? + +**Limbile UI:** peste 21 suportate +- English, 中文 (简体), 中文 (繁體), 日本語, 한국어 +- Arabic, German, French, Spanish, Russian, Portuguese, Italian +- Hindi, Bengali, Thai, Vietnamese, Turkish, Polish, Czech și altele + +**Limbajul de ieșire a sarcinii:** configurare independentă +- UI în chineză + ieșire în engleză: ✅ +- UI în engleză + ieșire în chineză: ✅ + +**Caz de utilizare:** Cercetătorii bilingvi pot păstra UI în limba lor nativă și genera note în engleză pentru publicare. + +--- + +## PDF și fluxuri de lucru academice + +### Pot folosi Notemd pentru citirea de lucrări/PDF? + +**Da.** Fluxul de lucru este următorul: +1. **Convertește PDF în Markdown** folosind [MinerU](https://github.com/opendatalab/MinerU) (recomandat pentru lucrări academice) +2. Deschide fișierul Markdown în Obsidian +3. Efectuează sarcinile Notemd: + - **Adaugă linkuri wiki** la termenii cheie + - **Generează note conceptuale** pentru terminologie necunoscută + - **Extrage textul original** prin întrebări personalizate (de exemplu, "Care sunt limitările?") + - **Cercetează contextul** al metodelor/dataset-urilor citate + - **Traduce** secțiunile dificile + - **Comprime în diagramă Mermaid** pentru o înțelegere structurală + +**Versiunea 1.9.1+:** Extragerea structurii capitolelor cu suport TOC + +**Rezultat:** Citirea ta a lucrărilor devine un articol de cunoaștere structurat și linkabil în depozitul tău. + +--- + +## Diagrame și vizualizări + +### Ce tipuri de grafice/diagrame poate genera Notemd? + +| Tip | Suport | Funcții | +|------|---------|----------| +| **Mermaid** | Complet | Diagramă de flux, secvență, clasă, stare, ER, Gantt, corectare automată a sintaxei, validare în lot | +| **JSON Canvas** | Complet | Layout-uri native pentru canvas Obsidian | +| **Vega-Lite** | Complet | Grafiци de date, serii temporale, bare, dispersii, personalizabile | +| **HTML** | Alternativă | Pentru tipuri de diagrame necumplate | +| **Editable HTML/SVG** | Țintă explicită | Inline autonom SVG cu anotații semantice în stil Draw.io | +| **Draw.io / Drawnix artefacte** | Export limită | Deterministic XML/JSON din `SemanticFigureModel`; fără dependențe de timp de rulare ale editorului | + +**Mermaid auto-fix:** Mod de depanare profundă pentru reparări: +- Săgeți stricate (`-->`, `-.->`, `==>`) +- Etichete invalide, comentarii +- Erori de sintaxă în subgraf +- Notația de formă (`[`, `(`, `{`, `((`) +- Caracterele pipe în etichete +- Anexele de notițe + +**Flux de lucru:** +1. Rulați „Summarize as Mermaid diagram” pe o notă +2. Prévisualizare în modal +3. Exportați ca SVG sau PNG +4. Sau salvați ca fișier `.mmd` în vault + +--- + +## Cod sursă deschis și comunitate + +### Este Notemd gratuit și cu sursă deschisă? + +**Da.** +- **Licență:** MIT (permisivă, utilizare comercială permisă) +- **Cod sursă:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **Fără niveluri plătite, fără blocare în cloud, fără telemetrie** +- **Comunitate:** 234+ stele pe GitHub, Discord activ + +**Deții:** +- Datele dumneavoastră (rămân în seiful dumneavoastră) +- Fluxurile de lucru ale dumneavoastră (personalizați prompturile, modelele, lanțurile) +- Confidențialitatea dumneavoastră (sprijin local LLM) + +**Contribuieți:** Sunt binevenite cererile de pull request. Consultați [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +## Dezvoltarea de soluții + +### Apelurile mele LLM eșuează. Ce ar trebui să verific? + +1. **API cheia este validă?** Verificați Setările → Configurația furnizorului +2. **Numele modelului este corect?** Folosiți butonul „获取模型列表” (Get Model List) din setări. +3. **Este accesibil prin rețea?** Unii furnizori cer VPN +4. **Limite de rată?** Verificați panoul de control al furnizorului +5. **Diagnosticare:** Rulați „Connection Test“ în setările pentru jurnale detaliate de erori + +### Notemd este lent. Cum pot accelerați-l? + +1. **Utilizați modele mai rapide:** DeepSeek, Gemini Flash, GPT-4o-mini +2. **Reduceți dimensiunea buclelor:** Setări → Smart Chunking → reduceți numărul de cuvinte +3. **Procesare paralelă:** Setări → Batch Processing → creșteți concurența +4. **Modele locale:** Ollama pentru sarcini care nu au nevoie de căutare pe web + +### Poate Notemd funcționa 100% offline? + +**Da, cu Ollama.** Fără cheia API, fără internet, fără date care părăsesc mașina dumneavoastră: + +1. Instalați [Ollama](https://ollama.com) și rulați `ollama serve` +2. În setările Notemd, selectați **Ollama** ca furnizor +3. Trageți un model: `ollama pull llama3` (sau qwen2.5, gemma2 etc.) +4. Toate funcțiile funcționează: linkuri wiki, note conceptuale, traducere, diagrame + +**Cercetarea DuckDuckGo** funcționează și fără cheia API (calitate experimentală). + +Cu furnizorii cloud (OpenAI, Anthropic, Google, DeepSeek etc.), conținutul notei dumneavoastră este trimis ca intrare API. Verificați politica de confidențialitate a fiecărui furnizor pentru detalii privind gestionarea datelor. + +### Sunt datele mele trimise în cloud? + +**Depinde de furnizorul dumneavoastră:** + +| Tip furnizor | Date trimise în cloud? | Note | +|--------------|---------------------|-------| +| **Ollama (local)** | Nu | Totul rămâne pe calculatorul dumneavoastră | +| **LMStudio (local)** | Nu | La fel ca Ollama | +| **DeepSeek, OpenAI, etc.** | Da | Conținutul notei este trimis ca intrare API pentru procesare | +| **OpenRouter, AIHubMix** | Da | Gateway care direcționează către furnizorii cloud | + +Notemd însuși nu colectează **nicio telemetrie, nici analize, nici date de utilizator**. Plugin-ul este complet open source (MIT). Singurele date care părăsesc mașina dumneavoastră sunt cele pe care le trimiteți explicit către furnizorul LLM configurat. + +### Care plugin AI Obsidian este cel mai bun pentru cercetare? + +Depinde de fluxul dumneavoastră de lucru de cercetare: + +| Necesit | Plugin | De ce | +|------|--------|-----| +| Găsi articole/note relevante | Smart Connections | Descoperire a similarității semantice | +| Discutare despre sursele dumneavoastră | Copilot | Conversație cu contextul vault | +| Legă automat concepte + generează note | **Notemd** | AI identifică concepte, inserează linkuri, creează note | +| Cercetare pe web + rezumare în note | **Notemd** | Tavily/DuckDuckGo căutare → LLM rezumat → adăugat în notă | +| Genera diagrame din cercetare | **Notemd** | Mermaid/Canvas/Vega-Lite din conținutul notei | + +**Combinare recomandată:** Smart Connections (descoperire) + Notemd (structurare) + Copilot (discuție). + +--- + +## Obținere de ajutor + +- **Documentație:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **Probleme GitHub:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **Sponsor:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/ro/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/ro/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..b105e9bc --- /dev/null +++ b/website/i18n/ro/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "Note conceptuale" +description: "Genera și gestionează note conceptuale — note independente pentru conceptele cheie extrase din seiful dumneavoastră" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# Note conceptuale + +<TLDR> +**Notemd extrage conceptele cheie din notele tale și creează fișiere independente de tip concept note.** LLM identifică termenii esențiali, generează o fișier `.md` pentru fiecare concept într-o folder configurabilă și, opțional, adaugă backlink-uri către nota sursă. Suportă suprimarea sinonimelor, selecția modelului pentru fiecare sarcină, sanitizarea numelurilor fișierelor și un motor de deduplicare în 4 pași. Acesta face parte din [Obsidian Ghidul de Management al Cunoștințelor AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Prezentare generală + +Notele conceptuale reprezintă elementele de bază ale unei baze de cunoștințe interconectate. Atunci când procesați o notă, Notemd: + +1. **Trimite textul tău către un LLM** cu o instrucțiune de extracție structurată +2. **Analizează rândurile `CONCEPT:`** din răspunsul LLM +3. **Creează un fișier `.md` pentru fiecare concept** într-o foldere specificată +4. **Adaugă backlink-uri** în nota sursă (atunci când este activat) + +## Cum funcționează + +### Pipeline de extracție + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### Promptul de extracție + +LLM primește un mesaj care îl instruiește să: + +- Extrageți **substantivele sau expresiile substantivale** esențiale pentru subiectul documentului +- **Prioritați specificitatea** — „Dielectric Relaxation” în loc de „Relaxation” +- **Normalizează la singular** — „models” devine „model” +- **Suprimă sub-conceptele** — dacă apare „dielectric relaxation“, nu extrageți și „relaxation“. +- **Sărate** secțiuni de referințe/bibliografie, substantive comune, nume de companii/produse +- Afișa un concept pe linie ca `CONCEPT: Term Name` + +**Suprimarea sinonimilor** (opțional): se adaugă înainte „Evita extragerea sinonimilor, conceptelor centrale semantic similare sau cuvintelor cheie ori de câte ori este posibil“ la prompt. + +**Domeniul de învățare concentrat** (opțional): se adaugă `Relevant Fields: [domain]` înainte pentru a limita extragerea la o anumită disciplină. + +**Suprascrierea limbajului** (opțional): se adaugă în final „Conceptele de ieșire MUST fi în [language].“ + +### Fragmentare + +Notele lungi sunt împărțite prin `settings.chunkWordCount`. Fiecare fragment este trimis independent. Conceptele din toate fragmentele sunt acumulate într-un `Set` — duplicatele dintre fragmente sunt eliminate în tăcere. Erorile LLM de pe fiecare fragment nu opresc operația. + +## Crearea notei de concept + +### Reguli pentru numele fișierului + +| Regulă | Comportament | +|------|----------| +| Hifene/subliniere | Sunt înlocuite cu spații | +| Caractere speciale | Sunt eliminate: backslash, forward slash, colon, asterisk, question mark, quote-uri, angle brackets, pipe, hash, caret, bracketuri | +| Spațiile golă | Sunt comprimate și curățate | +| Lungime maximă | 100 de caractere (truncat + retrimat) | +| Rezultat gol/tot puncte | Sărit în tăcere | + +Exemplu: `A-B: Key*Term` devine `A B KeyTerm.md` + +### Șabloane + +**Șablon complet** (backlink-uri activate, șablon minimal dezactivat): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**Șablon minimal** (când `extractConceptsMinimalTemplate: true`): + +```markdown +# Concept Name +``` + +### Actualizarea noteurilor existente + +Când un fișier de concept există deja: + +1. Dacă backlink-urile sunt activate și nota sursă nu este deja listată, se adaugă un backlink +2. Dacă există o secțiune `## Linked From`, se inseră înainte de următorul titlu `##` +3. Dacă nu există `## Linked From`, se adaugă secțiunea la sfârșit +4. Se verifică și se sărute backlink-urile duplicate + +### Configurație + +| Setare | Implicit | Efect | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | Comutator principal. Dezactivat = fără note create | +| `conceptNoteFolder` | `''` (dezactivat) | Căilărea de folder pentru note conceptuale | +| `extractConceptsMinimalTemplate` | `true` | Note doar cu titlu (fără Linked From) | +| `extractConceptsAddBacklink` | `false` | Adaugă backlink-uri în timpul extracției independente | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | LLM pe sarcină pentru extracția conceptelor | +| `extractConceptsLanguage` | `'en'` | Limba de ieșire pentru numele conceptelor | +| `replaceSynonymsDuringConceptExtraction` | `false` | Activează suprimarea sinonimilor în prompt | +| `generateConceptLogFile` | `false` | Scrie o listă `.log` cu conceptele create | + +**Important:** Setările `extractConceptsAddBacklink` și `extractConceptsMinimalTemplate` afectează doar **comanda de extracție dedicată**. Comanda „Adaugă Linkuri” creează întotdeauna note cu model complet și backlink-uri. + +## Deduplare + +Comanda dedup (`Notemd: Check & remove duplicate concept notes`) efectuează o analiză în 5 pași: + +### Pasul 1: Coincidență exactă a numelui fișier + +Comparare fără a ține cont de majuscule a numelui bazal în întregul domeniu configurat. + +### Pasul 2: Detectarea formei plurielle + +Îndepărtează sufixele: `-ies` până la `-y`, `-es` eliminat, `-s` eliminat. Compare forma singulară cu fișierele din domeniu. Nu gestionează pluralele iregulare (children/child). + +### Pasul 3: Normalizare a simbolurilor + +Se aplică: `toLowerCase()`, înlocuiți tirele/sublinierele cu spații, eliminați elementele nealfanumerice, reduceți spațiile goale. Cele care se normalizează în mod identic sunt marcate. + +### Pasul 4: Conținut unic de cuvânt + +Notele cu concepte de un singur cuvânt sunt verificate în raport cu numele fișierelor de scop cu mai multe cuvinte. Nu se execută atunci când scopul este `concept_folder_only`. + +### Pasul 5: Confirmare și ștergere + +Toate candidații sunt afișate într-un modal de confirmare. Elementele aprobate sunt mutate în coșul sistemului. Operația poate fi anulată între fiecare ștergere. + +### Modele de scop + +| Mod | Comparat cu | +|------|-------------------| +| `vault` (implicit) | Toate fișierele vault `.md` cu excepția folderului concept | +| `concept_folder_only` | Alte note de concept din același folder | +| `include` | Fișierele din folderele specificate | +| `exclude` | Toate fișierele vault cu excepția folderului concept + folderele specificate | + +## Utilizare + +### Extrage concepte (Standalone) + +1. Deschideți o notă +2. Rulați **"Notemd: Extrage concepte"** din palettea de comenzi +3. Notele de concept sunt create în folderul configurat + +### Extrage și generează conținut + +**"Notemd: Extrage concepte și generează titluri"** — extrage conceptele, apoi rulează „Generează din Titlu” pentru fiecare notă din folderul de concepte. Acest lucru generează conținut pentru **toate** notele de concept din folder, nu doar pentru cele create recent. + +### Creează un link wiki din selecție + +1. Highlight text in editor +2. Rulează **"Notemd: Creează link wiki din selecție"** +3. Textul este înconjurat de `[[...]]` și se creează o notă de concept + +## Sfaturi + +- **Setați mai întâi folderul de concepte** — fără el, nu se creează note. Apare un modal de avertizare dacă nu este setat. +- **Folosiți modele pentru fiecare sarcină** — extragerea conceptelor funcționează bine cu modele mai ieftine (GPT-4o-mini, DeepSeek). Păstrați modelele scumpe pentru cercetare/traducere. +- **Activezați suprimarea sinonimilor** în domenii tehnice unde mai multe termeni se referă la același concept. +- **Dedupați regulat** — ruleazăți comanda de deduplație după procesarea în lot pentru a detecta duplicate apropiate. +- **Fișierul de log este suprascris** la fiecare rulare, nu adăugat. Copiați-l dacă aveți nevoie de rezultate anterioare. + +--- + +## Următoarele pași + +- [Wiki-Links](./wiki-links) — Cum se fac linkuri între concepte în text +- [Diagrams](./diagrams) — Visualizarea relațiilor dintre concepte +- [Workflows](./workflows) — Îmbinarea extragerii cu alte sarcini diff --git a/website/i18n/ro/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/ro/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..67d5d9e5 --- /dev/null +++ b/website/i18n/ro/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "Diagrame" +description: "Generă Mermaid, JSON Canvas, Vega-Lite, HTML, artefacte de figură editabile, precum și diagrame circuitikz limitate pentru viitor din notele dumneavoastră, folosind o arhitectură bazată pe specificații" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Diagrame + +<TLDR> +**Notemd generează diagrame din notele dumneavoastră printr-un pipeline bazat pe specificații.** LLM produce un `DiagramSpec` JSON independent de renderer, apoi adapteri specializați îl traduc în Mermaid, JSON Canvas, Vega-Lite, HTML sau în rezultate editabile HTML/SVG. Suportă 8 tipuri de intenție, lanțuri automatice de fallback, previsualizare în timp real cu export în SVG/PNG, verificare semantică și generare îmbunătățită cu cunoștințe locale. +</TLDR> + +Acesta face parte din [Obsidian Ghidul de gestionare a cunoștințelor AI](/docs/pillar-ai-knowledge). + +## Arhitectură: Pipeline bazat pe specificații + +Notemd nu cere niciodată LLM să genereze direct sintaxa Mermaid/Vega/Canvas. În schimb: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**De ce specificații în primul rând?** LLM generează adesea sintaxă inválidă pentru rendereri (Mermaid în special). Un `DiagramSpec` structurat poate fi validat înainte de renderizare, iar aceeași specificație poate fi utilizată ca fallback pentru mai mulți rendereri. + +## Tipuri de diagrame suportate + +| Intenție | Renderer principal | Fallback-uri | Caz de utilizare | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | Descompunere hierarhică a subiectelor | +| `flowchart` | Mermaid | HTML | Fluxuri de proces, arbori de decizie | +| `sequence` | Mermaid | HTML | Interacțiuni client-server, protocoale | +| `classDiagram` | Mermaid | HTML | Relații între clase OOP | +| `erDiagram` | Mermaid | HTML | Schema-uri de baze de date, relații între entități | +| `stateDiagram` | Mermaid | HTML | Machinile de stare, modelele de ciclu de viață | +| `canvasMap` | JSON Canvas | Mermaid → HTML | Hărți conceptuale, grafe de cunoaștere | +| `dataChart` | Vega-Lite | Mermaid → HTML | Charte: bar, linie, zonă, dispersie, piatră, tabele | + +## Detectarea intenției + +Notemd inferă cel mai bun tip de diagramă din conținutul notei folosind scorare pe baza cuvintelor cheie: + +| Intenție | Trigere | Confidență | +|--------|----------|------------| +| `dataChart` | Tabele, celule numerice, cuvinte cheie legate de metrice/tendințe, procente | 0.88 | +| `sequence` | Vocabularul cererii/răspunsului (4+ corespondențe) sau markeri `->`/`=>` | 0.82 | +| `erDiagram` | Cheie primară, cheie străină, entitate, schema (2+ corespondențe) | 0.80 | +| `stateDiagram` | Stare, tranziție, așteptare, în execuție, eșuat (3+ corespondențe) | 0.76 | +| `flowchart` | Pași numerotați (2+) sau vocabular if/then/else/workflow | 0.74 | +| `canvasMap` | Hartă conceptuală, graf de cunoștințe, spațial, cluster | 0.72 | +| `mindmap` | Valoare implicită de rezervă | 0.55 | + +Să se suprascrie cu setarea **Tipul preferat de diagramă**, selectorul din bara laterală sau o opțiune explicită din panoul de comenzi. + +## Selectarea țintei de afișare + +Pipeline-ul experimental bazat pe specificații are acum două controale independente: + +| Control | Setare | Efect | +|---------|---------|--------| +| Tipul preferat de diagramă | `preferredDiagramIntent` | Ghidează forma semantică a `DiagramSpec` generatului | +| Ținta preferată de afișare | `preferredDiagramRenderTarget` | Alege rendererul pentru artefact în funcție de opțiunile **Genera diagramă** și **Previsualizare a diagramării** | + +Setați **Ținta preferată de afișare** la **Auto** ca valoare implicită pentru planificator, sau alegeți explicit Mermaid, JSON Canvas, Vega-Lite, HTML sau Editable HTML/SVG. Suprascrierea se aplică doar la comenzile de generare a artefactului și previsualizare. Comanda standard **Summarise as Mermaid diagram** rămâne legată de ieșire compatibilă cu Mermaid, astfel încât fluxurile existente în Markdown nu se schimbă fără observație de format. + +Această separare este importantă deoarece o intenție `flowchart` poate fi acum afișată ca Mermaid pentru notele în Markdown, ca HTML pentru o valoare de rezervă robustă, sau ca Editable HTML/SVG pentru editare ulterioară. Draw.io și Drawnix rămân exportatori de artefacte CLI, nu ținte de afișare din interiorul pluginului. + +## Utilizare + +### Genera un diagramă + +1. Deschideți o notă +2. Rulați **"Notemd: Genera diagramă"** din panoul de comenzi +3. Notemd detectează intenția, generează specificația, afișează și salvează artefactul + +**Fișierele de ieșire după țintă:** + +| Target | Extensie | Patternul de nume al fișierului | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| Editable HTML/SVG | `.html` | `{note}_diagram.html` | + +### Previsualizare a unui diagram + +1. Rulați **"Notemd: Previsualizare diagram"** +2. Se deschide o fereastră modală cu diagrama generată +3. Exportați ca SVG sau PNG folosind butoanele din bara de instrumente + +**Deschiderea automată a previsualizării** este disponibilă în setările — după generare, fereastra modală de previsualizare se deschide automat. + +Fereastra modală de previsualizare are și un panou de diagnostic al artefactelor. Rendererele și verificările smoke pot atașa `RenderArtifact.diagnostics`; fereastra afișează o rezumată diagnostică cu numărurile de erori/avertismente/informații, apoi severitatea, tipul diagnosticului, mesajul și sfaturile de reparare lângă previsualizare. Aceeași rezumată este afișată în intrările istoricului de previsualizare, astfel încât tentativele repetate de circuitikz smoke pot fi comparate fără a deschide fiecare intrare. Pentru artefactele care au conținut sursă dar nu pot fi renderizate inline sau prin calea iframe-ului HTML, fereastra modală recurge acum la o previsualizare doar cu sursă în loc să forțeze un iframe gol. Acest lucru oferă circuitikz de compilare/render smoke, SVG de verificare a tokenilor text, verificări PNG cu captură de ecran golă și rapoarte viabile de suprapunere viitoare fără a face din TikZJax sau LaTeX o dependență strictă la timpul rulării pluginului sau fără a pretinde că textul sursă este o renderizare vizuală verificată. + +### Modul legacy Mermaid + +Când `enableExperimentalDiagramPipeline` este dezactivat, Notemd trimite un prompt direct Mermaid către LLM. Acest lucru omite complet pipeline-ul spec. Dacă pipeline-ul experimental eșuează, se recurge la acest mod. + +## Backend-urile de renderizare + +### Mermaid + +6 adapteri (mindmap, flowchart, sequence, ER, class, state) traduc `DiagramSpec` în sintaxa Mermaid. După generare, `mermaid.parse()` validează rezultatul. Dacă validarea eșuează: + +1. **Reîncercare LLM** — o tentativă cu mesajul de eroare Mermaid ca context +2. **Fallback minim** — un diagram simplu Mermaid din ID-urile nodurilor spec + +**Legacy Mermaid Fixer** repară automat erorile de sintaxe comune LLM: normalizarea directivei note, evitarea problemelor cu pipe-label, repositionarea punctului și virgulă, citatele inteligente, săgețile cu dublu tiret, neconcordanțele de formă și altele. + +### JSON Canvas + +Creează format Obsidian JSON Canvas cu o distribuție spațială: +- Node-urile sunt poziționate în funcție de adâncime (x = adâncime × 420) și index (y = index × 170) +- Lățimea se estimează pe baza lungimii etichetei +- Edge-urile conțin `fromSide: 'right'`, `toSide: 'left'`, `toEnd: 'arrow'` + +### Vega-Lite + +Construiește specificațiile complete Vega-Lite v5 JSON cu codificare automată: +- **Chart-uri carteziene** (bară/linie/arie/punct/dispersie): canale x + y plus culoare pentru mai multe serii +- **Pie**: theta = y (cantitativ), culoare = x (nominal) +- **Tabel**: rând = x, text = y + coloană = serie + +Patch-urile de tema întunecată și luminosă sunt fuzionate profund înainte de compilare. + +### HTML + +Soluție universală. Document HTML autonom cu: +- Header-urile CSP +- Modul luminos/intunecat prin `prefers-color-scheme` +- Etichete UI localizate pentru 20 de locale +- Secțiuni: hero, structură (arbore de node), relații, note, tabele cu serii de date + +### Editabil HTML/SVG + +Scop explicit pentru figurile în fluxurile de export editabile. Acesta proiectează `DiagramSpec` într-un `SemanticFigureModel` determinist, apoi generează un document autonom HTML cu grupuri inline SVG care conțin annotații în stil Draw.io: + +- `data-drawio-type`, `data-drawio-id` și `data-drawio-role` pe nodurile semantice +- `data-drawio-source` și `data-drawio-target` pe marginile semantice +- identificatori stabili de nod/margină după normalizarea spațiilor goluri și gestionarea coliziunilor +- fără scripturi, fără fonturi externe și fără resurse distante + +Acest scop nu este intenționat să fie ruta implicită a planificatorului. Este disponibil ca scop de renderizare explicit până când traseul produs dovedește comportamentul de editare în instrumentele reale. + +### Draw.io și Drawnix Granițele de export + +Implementarea actuală păstrează suportul editorilor de terți la granița artifactului: + +| Scop | Contract | Dependență de execuție | +|--------|----------|--------------------| +| Draw.io | `mxfile` XML dezcomprimat determinist din `SemanticFigureModel` | niciunul în timpul execuției pluginului sau în CI | +| Drawnix | subset minim de `.drawnix` JSON folosind elementele `geometry` și `arrow-line` | niciunul în timpul execuției pluginului sau în CI | + +Compromisul este intenționat: Notemd poate verifica etichete vizibile, ID stabili și acoperirea primitivelor suportate fără a integra diagram.net Desktop, Drawnix, Plait sau starea editorului doar pentru browser în plugin. + +### circuitikz / TikZJax Direcție + +Diagramele de circuite nu reprezintă același problemă ca fluxarele generice. Șablonul sintactic corect pentru circuitele electrice este de obicei **circuitikz**, afișat în Obsidian prin pluginuri precum TikZJax. TikZJax poate încărca pachete precum `circuitikz`, `pgfplots`, `tikz-cd` și `chemfig`, ceea ce îl face atrăgător pentru notele de fizică, circuite, chimie și matematică. + +Riscul constă în faptul că TikZ generat direct din LLM este fragil: + +- o topologie complexă a circuitului poate fi corectă din punct de vedere electric, dar nerezistibilă din punct de vedere vizual; +- fiiarele și etichetele suprapuse pot face ca o listă de rețea corectă să fie inutilizabilă pentru notele de studiu; +- faltul de preambule ale pachetelor, ancorele greșite sau numele incorecte ale componentelor pot împiedica afișarea; +- feedback-ul furnizat de renderer este de obicei la nivel de imagine, în timp ce LLM generează geometrie la nivel de text. + +Arhitectura mai bună constă în a trata circuitikz ca un șablon de diagramă cu restricții, nu ca o instrucțiune liberă: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +Modelul de clasa întâi ar trebui să descrie separat topologia și dispunerea circuitului: + +| Strat | Responsabilitate | Exemplu | +|-------|----------------|---------| +| Topologie | nodurile electrice și conexiunile componentelor | `VDD -> RD -> drain(M1)`, `source(M1) -> GND` | +| Dispunere | plasarea în rețea, orientarea, căile de rutare | `M1 at (3,2.2)`, intrare stânga, ieșire dreapta | +| Stil | pachet, convenție de tensiune, etichete, ancore | `\begin{circuitikz}[american voltages]` | +| Validare | jurnal de compilare, ancore lipsă, verificări de suprapunere/scrinshot | TikZJax/Diagnosticuri LaTeX plus revizuire vizuală | + +### Prototipul actual circuitikz + +Notemd include acum primul prototip de repository restricționat pentru această direcție. Este intenționat offline și limitat de șablonuri: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +Prototipul adaugă o frontieră separată `CircuitSpec` și un exporter determinist pentru șase familii de referință aurie: + +| Tip circuit | Referință aurie | Garanție de curent | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | validă `VDD -> R_D -> M1.D`, `vin -> M1.G`, `M1.S -> GND` și `M1.D -> vout` înainte de a scrie LaTeX | +| `cmos-inverter` | `cmos-inverter-v1` | validă topologia PMOS-over-NMOS, intrare comună de poartă, ieșire comună de drenaj, `VDD -> MP.S` și `MN.S -> GND` înainte de a scrie LaTeX | +| `cmos-buffer` | `cmos-buffer-v1` | validă două etape de inversor cascade, nod intermediar `vmid`, `vout` restabilit și railuri VDD/GND partajate înainte de a scrie LaTeX | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | validă dispozitive paralele PMOS/NMOS între `vin` și `vout` cu controale complementare `phib` / `phi` înainte de a scrie LaTeX | +| `cmos-nand2` | `cmos-nand2-v1` | validează tracțiunea paralelă cu PMOS, tracțiunea seri cu NMOS, intrările duble `va` / `vb` și `vout` înainte de scriere în LaTeX | +| `cmos-nor2` | `cmos-nor2-v1` | validează tracțiunea seri cu PMOS, tracțiunea paralelă cu NMOS, intrările duble `va` / `vb` și `vout` înainte de scriere în LaTeX | + +Acesta nu este încă un generator general TikZ. Nu compilează LaTeX, nu apelează TikZJax, nu inspectează ecranele de captură și nu rulează reparări automate prin feedback de imagine. Aceste funcții rămân pentru etape ulterioare. + +Comanda Diagrama de previsualizare poate redeschide direct artefactele sărate circuitikz atunci când extensia fișierului este `.tex` sau `.tikz` și sursa conține `\usepackage{circuitikz}` sau `\begin{circuitikz}`. Această rută este o previsualizare doar a sursei circuitikz: modalul afișează sursa, diagnosticele, controalele de copiere/sărit și metadatele istoricului, dar nu compilează LaTeX sau nu apelează TikZJax în timpul execuției pluginului. + +Același limitru de previsualizare doar a sursei acoperă acum artefactele sărate Draw.io și Drawnix. Fișierele `.drawio` sunt acceptate atunci când arată ca Draw.io XML (`mxfile` sau `mxGraphModel`), iar fișierele `.drawnix` sunt acceptate atunci când sunt Drawnix JSON cu `type: "drawnix"` și un array `elements`. Pluginul nu integrează încă diagram.net sau gazda tabloului alb Drawnix; aceste previsualizări afișează sursa, diagnosticele și istoricul artefactelor fără a pretinde un editor vizual în cadrul pluginului. + +Pentru reparare care păstrează topologia, transmiteți specificația pre-reparare ca referință înainte de a accepta un candidat reparat: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +Guard-ul de reparare folosește `createCircuitTopologySignature` și `assertCircuitTopologyUnchanged` pentru a compara `circuitKind`, `goldenReferenceId`, rețelele, ID-urile/tipurile/terminalurile componentelor și extreptele conexiunilor nedirecționate înainte de a genera rezultat. Etichetele, textul titlu, indiciile de layout, ordinea conexiunilor și etichetele conexiunilor sunt ignorate intenționat. Un candidat care adaugă un element scurt sau rewirează un terminal e respins cu `Circuit topology drift detected` înainte ca fișierul `.tex` să fie scris. + +CLI poate acum analiza un log existent de compilare LaTeX/TikZJax fără a executa un compiler: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +Acest traseu diagnostic raportează pachetele lipsă precum `circuitikz.sty`, cheile necunoscute TikZ/circuitikz, erori de sintaxă în calea TikZ cum ar fi semnulele puncte și virgulă lipsă, argumente excesive din paranteze neechilibrate sau etichete neterminate, secvențe de control nedefinite, erori generice LaTeX, oprieri de urgență și avertismente de supraplinire `\hbox`. Rămâne bazat pe log: execuția locală LaTeX/TikZJax și gate-urile de calitate a ecranelor de captură sunt încă lucruri viitoare separate. + +Pentru verificările de funcționare pentru administratorii, același CLI poate rula opțional un renderer configurat explicit fără analizarea comenzelor shell: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Executatorul de compilare folosește `shell: false`, extinde `{tex}`, `{outputDir}` și `{jobName}` în valori de array de argumente, citește `{jobName}.log` generat și returnează `compileExecution` plus `compileDiagnostics` în ieșirea CLI JSON. `--compile-executable` este doar calea binaryului sau wrapper-ului renderer; flag-urile rendererului aparțin valorilor repetate `--compile-arg`. Executabilele goale eșuează ca `compile-executable-invalid`, cele fără binary eșuează ca `compile-executable-not-found`, iar șirurile executabile în formă de comandă shell primesc sfaturi pentru a împărți argumentele astfel încât Windows, Linux și macOS să respecte același contract de execuție directă. Cu `--expected-artifact`, raportează și `compileExecution.renderSmoke` și eșuează la CLI dacă rendererul nu creează un artifact necruțit. Pluginul nu integrează încă LaTeX, nu face din TikZJax o dependență a timpului de execuție pluginului și nu efectuează reparări vizuale la nivel de ecran de captură. + +Dacă artifactul așteptat este `.svg`, verificarea de funcționare intră într-un strat mai profund: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +Verificarea de fum SVG confirmă rădăcina `<svg>`, dimensiunile pozitive sau `viewBox`, cel puțin un element vizibil după exclusia elementelor ascunse/transparente, orice tokenuri de text solicitate, elemente evidente în afara `viewBox`, etichete evidente suprapuse `<text>` / `<tspan>` poziționate și etichete de text evidente suprapuse peste elementele vizuale prin `render-svg-label-overlap`. Textul așteptat este căutat în textul vizibil și decodificat din metadatele de accesibilitate precum `aria-label`, `<title>` și `<desc>`, astfel încât rendererii care păstrează etichete semantice în afara `<text>` vizibile pot răspunde totuși la verificarea tokenurilor de text fără a necesita OCR. Passul geometric este acum geometrie conștientă de transformare pentru atributele comune de grup și element `transform`, astfel încât cutiile SVG traduse, scalate, rotite, deformate sau transformate prin matrice sunt verificate după compunerea transformărilor. Acesta acoperă limitele exacte ale arcurilor pentru extreptele arcului A/a, limitele exacte ale curbelor Bezier pentru extreptele curbelor C/S/Q/T, limitele SVG conștiente de grosimea tracției și verificările de suprapunere a etichetelor, geometria de desen `polyline` / `polygon` și rezolvă și poziționarea doar a glyphurilor din `<use href="#...">` astfel încât etichetele convertite în trasee de glyph reutilizabile pot totuși eșua la verificările de canvas limitat atunci când geometria glyph-ului plasat escapează din `viewBox`. Multiple etichete poziționate `tspan` sub un părinte `<text>` sunt comparate ca cutii separate de etichetă, ceea ce detectează output-ul în stil LaTeX SVG care altfel ar reduce etichetele distincte într-un singur nod de text. Cutiile poziționate SVG `text` și `tspan` respectă valorile `text-anchor` `start`, `middle` și `end`, astfel încât etichetele centrate și aliniate în dreapta pot declanșa diagnostice de suprapunere text/text și etichetă-versus-desen fără a pretinde o distribuție a textului la nivel de browser. Traseele de glyph doar de definiție din `<defs>` nu sunt numărate ca elemente vizibile de desen, dar propriile lor atribute locale `transform` sunt aplicate înainte de plasare `<use>` astfel încât definițiile de glyph scalate sau reflectate nu sunt subnumărate. Verificarea etichetă-versus-desen folosește o toleranță mică pentru cutiile de desen și `stroke-width` declarat, astfel încât firele subțiri, firele groase și contururile componente poligonale pot fi tratate toate ca posibile eșecuri de legibilitate a etichetelor atunci când tracțiunea lor vizibilă ajunge la o etichetă. Etichetele de glyph doar de traseu rezolvate din `<use href="#...">` sunt, de asemenea, comparate cu cutiile de desen și eșuează cu `render-svg-path-glyph-overlap` atunci când geometria glyph-ului reutilizabil suprapune firele sau componentele. Dacă un renderer convertește etichetele în glyphuri de traseu reutilizabile în loc de `<text>` cărora se pot căuta și nu păstrează metadatele de accesibilitate, raportul de fum înregistrează `pathOnlyGlyphUseCount` și eșuează tokenul de text solicitat prin `render-svg-text-path-only` în loc să pretindă că eticheta este pur și simplu absentă. Alte eșecuri sunt raportate prin `render-svg-invalid`, `render-svg-dimension-missing`, `render-svg-no-visible-elements`, `render-svg-text-missing`, `render-svg-out-of-bounds`, `render-svg-text-overlap`, `render-svg-label-overlap` sau `render-svg-path-glyph-overlap`. Verificările tokenurilor de text și de suprapunere ar trebui tratate doar ca verificări structurale pentru rendererii care păstrează etichetele ca text SVG cărora se pot căuta sau ca metadate de accesibilitate; output-ul doar de traseu SVG necesită totuși gate-ul ulterior de ecran de captură/OCR pentru a dovedi legibilitatea vizuală a etichetelor, iar acest pass de fum nu pretinde încă acoperire completă a SVG traseului. + +Grupurile și elementele ascunse SVG sunt omise în mod constant în timpul numărării elementelor vizibile și colectării geometriei. Atributele sau stilurile inline `display:none`, `visibility:hidden`, `visibility:collapse` și cel general `opacity:0` nu pot face ca un artifact de renderizare altfel gol să treacă verificarea de output vizibil. + +Definițiile de glyph doar de traseu pot fi trasee directe sau conteneuri grupate/simbolice în interiorul `<defs>`. Passul de fum rezolvă geometria traseului copil din `<g id="...">` și `<symbol id="...">` înainte de plasarea `<use>`, astfel încât output-ul glyph învelit alimentează totuși `pathOnlyGlyphUseCount`, verificările de canvas limitat și `render-svg-path-glyph-overlap`. + +Parserul de traseu urmărește și starturile subtraseului și resetează punctul curent pe `Z/z`, astfel încât comenzele relative după un subtraseu închis continuă de la punctul corect SVG în loc să creeze diagnostice false `render-svg-out-of-bounds`. + +Același proces de geometrie urmează gramatica SVG pentru zecimale cu punct înainte și semne plus explicite, astfel încât coordonatele compacte dvisvgm precum `.5`, `-.5` sau `+.5` rămân fracționale în timpul verificărilor de limite, în loc să devină geometrie nevalidă din cauza depășirii limitelor sau să fie ignorate. + +Dacă rendererul emit `.png`, același drum pentru artifactul așteptat devine prima captură de ecran: Notemd decodifică fișiere PNG cu culori indexate de 1/2/4/8 biți, fără interlacing, fișiere PNG în gri de 1/2/4/8/16 biți și fișiere PNG în gri-alpha/RGB/RGBA de 8/16 biți. Imaginile cu culori indexate și cele în gri sub-bit suportă eșantioane compactate; imaginile cu culori indexate suportă, de asemenea, date PLTE și opționale tRNS; imaginile în gri/RGB suportă eșantioane transparente tRNS. Eșantioanele directe de 16 biți sunt normalizate în același spațiu de comparație RGBA de 8 biți folosit de verificările smoke. Verificarea smoke verifică dimensiunile pozitive, înregistrează limitele fundalului ca `foregroundBounds`, înregistrează densitatea fundalului în interiorul acelei box-uri ca `foregroundDensity`, eșuează cu `render-png-blank` atunci când fiecare pixel vizibil corespunde culorii fundalului din colțul stâng sus, eșuează cu `render-png-content-clipped` atunci când conținutul fundalului atinge limitele imaginii, eșuează cu `render-png-foreground-too-small` atunci când o captură de ecran mare are mai puțini de patru pixeli de fundal și eșuează cu `render-png-foreground-dense` atunci când pixelii fundalului sunt excesiv densi în interiorul unei box-uri de delimitare non-triviale. Formatele PNG nesusținute eșuează cu `render-png-unsupported`, fiind oferite indicări specifice pentru PNG-urile interlaced Adam7 sau adâncimile de biți cu culori indexate nesusținute. Acest sistem detectează capturile de ecran goale, clipările evidente de pe canvas, urmările fundalului subrenderizate, eșecurile de aglomerație la nivel de pixel și setările greșite de export PNG ale rendererului, fără a necesita dependențe specifice platformei. Nu este încă o metodă de recunoaștere a etichetelor la nivel OCR, o detectare precisă a suprapunerii textului sau o reparare a imaginilor care păstrează topologia. + +Când diagnostica arată o compilare eșuată sau o execuție a scriptului render-smoke eșuată, CLI poate scrie și un raport de reparare care păstrează topologia: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +Descrierea reparării folosește schema `notemd.circuitikz.repair-brief.v1` și conține sursa `CircuitSpec`, semnătura topologiei, diagnostice de compilare/renderizare, editări permise, editări interzise ale topologiei, pașii următori de verificare și un `repairPrompt` structurat. Rolul promptului este `topology-preserving-circuitikz-repair`; lista sa `diagnosticFocus` este derivată din diagnosticele de compilare/renderizare, iar cerințele sale `acceptanceCriteria` necesită validare a candidaților, precum și verificări noi de compilare și renderizare. Acesta este formatul de transfer pentru o iterare ulterioară de reparare, nu o afirmație că Notemd execută deja repararea vizuală autonomă. + +După ce este generat un candidat de reparare, același CLI poate să-l valideze în raport cu specificațiile inițiale înainte de a scrie rezultatul: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief` verifică semnătura topologiei candidate din brief și este exclusiv mutual cu `--topology-reference`. Trecerea acestei verificări dovedește doar păstrarea topologiei; candidatul are încă nevoie de diagnostice de compilare și verificări render-smoke. + +Rezultatul `--repair-brief` include și dovezi `repairAcceptance` în formatul `notemd.circuitikz.repair-acceptance.v1`. Acesta raportează gate-urile `topology-signature`, `compile-diagnostics` și `render-smoke` ca fiind `passed`, `failed` sau `missing`; dezvăluie `remainingChecks`; și păstrează valoarea `readyForVisualAcceptance` dreaptă până când execuția candidatului include toate dovezile necesare. + +Folosiți `--repair-acceptance-output` împreună cu `--repair-brief` atunci când dovezile CI sau ale lansării necesită un fișier durabil JSON: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +Pentru dovezi legate de lansare sau de întreținere, rulați fiecare familie „golden” suportată prin tool-ul aggregate fixture runner: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Executorul folosește `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json` și `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json`, apelează același drum de export fără shell pentru fiecare fixture și returnează un raport agregat JSON cu valorile `compileExecution` și `compileDiagnostics` pentru fiecare fixture. Rămâne o comandă de întreținere, nu o dependență la timpul rulări a unui plugin. + +Când o mașină de întreținere nu are încă un renderer configurat, rulați același comandă de fixture fără `--compile-executable` și mențineți în mod explicit poarta de mediu: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +Acel drum continuă să scrie artefactele deterministe `.tex`, dar returnează `ok: false` cu `rendererAvailability.status` setat la `missing-configuration` și un diagnostic `compile-executable-invalid`. Tratez-l doar ca dovadă de disponibilitate a rendererului; nu reprezintă o verificare de compilare, render-smoke sau acceptare vizuală. + +### Forma de prompt de referință aurie + +Pentru utilizare pe termen scurt, furnizați o referință de aur reprezentabilă înainte de a solicita o variantă a circuitului. Un prompt restrâns ar trebui să păstreze preambulul, scala de coordonate, stilul de ancrare și convențiile de rutare: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +Pentru un inversor CMOS, instrucțiunea ar trebui să solicite o topologie explicită precum și constrângeri de planare, nu doar „desenați un inversor CMOS”: + +- Păstrează `VDD` în partea de sus, `GND` în partea de jos, intrarea la stânga, ieșirea la dreapta; +- Folosi `pmos` deasupra `nmos`, cu poartele și drenajele partajate; +- Păstrează nodul de ieșire la joncțiunea drenajului și marchează-l cu `*-o`; +- Folosește ancore cu nume (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) în loc de coordonate deduse vizual; +- Evită firele diagonale sau intersectante, cu excepția cazurilor necesare din punct de vedere electric. + +### Progresul actual și fazele următoare + +| Area | Starea actuală | Următorul pas | +|------|----------------|-----------| +| Diagrame generale | Pipeline bazat pe specificații implementat pentru Mermaid, JSON Canvas, Vega-Lite, HTML | Continuă extinderea acoperirii de verificare semantică | +| Figuri editabile | Granițele artefactelor `editable-html-svg`, Draw.io XML și Drawnix JSON implementate | Adaugă primitive mai complexe doar după ce testele dovedesc editabilitatea | +| Suport CLI | `npm run diagram:export-artifact` exportează fișiere editabile HTML/SVG, Draw.io și Drawnix dintr-un singur `DiagramSpec` | Adaugă componente de fum specificate pentru ținte atunci când se livrează noi ținte | +| circuitikz | `CircuitSpec -> circuitikz` prototipul exportează surse comune, inversor CMOS, `cmos-buffer` / `cmos-buffer-v1`, `cmos-transmission-gate` / `cmos-transmission-gate-v1`, `cmos-nand2` / `cmos-nand2-v1` și `cmos-nor2` / `cmos-nor2-v1` template-uri goldene, proiectele `layoutHints.inputSide` și `layoutHints.outputSide` într-o plasare deterministică a porturilor de intrare/ieșire fără a schimba topologia, respinge derivația topologică prin `--topology-reference`, emite briefuri de reparare care păstrează topologia prin `--repair-brief-output` și schema `notemd.circuitikz.repair-brief.v1`, include conținut structurat de transfer `repairPrompt` cu `diagnosticFocus`, `acceptanceCriteria` și rolul `topology-preserving-circuitikz-repair`, validează candidații la reparare prin `--repair-brief`, returnează dovezi de poartă `repairAcceptance` prin schema `notemd.circuitikz.repair-acceptance.v1` cu `readyForVisualAcceptance` și `remainingChecks`, păstrează acele dovezi prin `--repair-acceptance-output`, parsează jurnalele de compilare, poate rula rendereri locale explicite plus `--expected-artifact`, SVG `--expected-svg-text`, verificări de metadate de accesibilitate prin `aria-label`, `<title>` și `<desc>`, exclusiunea elementelor SVG ascunse/transparente, clasificarea `render-svg-text-path-only` / `pathOnlyGlyphUseCount` pentru etichete doar cu cale, verificări de plasare a glyph-urilor doar cu cale pentru `<use href="#...">`, diagnostice de suprapunere a glyph-urilor doar cu cale prin `render-svg-path-glyph-overlap`, gestionarea punctului curent al căilor închise pentru `Z/z`, limite exacte ale arcelor A/a la extremități, limite exacte ale curbelor Bezier pentru extremitățile curbelor C/S/Q/T, verificări de suprapunere a etichet cu limite conștiente de lățimea traseului și SVG, verificări de geometrie de desen `polyline` / `polygon`, geometria etichetelor poziționate `tspan`, geometria textului poziționat conștientă de `text-anchor`, geometrie conștientă de transformare pentru SVG bounded-canvas/text-overlap și fumul etichetă-versus-desen prin `render-svg-label-overlap`, precum și verificări de screenshot PNG nonblank / clipped / dense-foreground, inclusiv alfa din paleta de culori indexate, eșantioane transparente grayscale/RGB tRNS și ghiduri specifice formatului `render-png-unsupported` pentru PNG-uri interlaced Adam7 și eșecuri de adâncime de biți indexată, prin `foregroundBounds`, `foregroundDensity`, `render-png-content-clipped` și `render-png-foreground-dense` fără parsare în shell, include componente de fum aggregate pentru administratori prin `npm run diagram:smoke-circuitikz`, înregistrează configurația rendererului lipsă prin `rendererAvailability.status: "missing-configuration"` și `compile-executable-invalid`, și are diagnostice generice de previsualizare, numere de sumar diagnostic, intrări de istoric conștiente de diagnostice și fallback doar din sursă prin `RenderArtifact.diagnostics` și modalul de previsualizare | Adaugă recunoaștere a etichet la nivel OCR pentru textul vizual doar cu cale, verificări precise de suprapunere la nivel de pixel, acoperire mai largă a căilor SVG unde este necesar, instalare/discoverie automată a rendererului doar dacă poate rămâne opțională, și executare automată a reparărilor care păstrează topologia | +| Integrare TikZJax | Host de renderizare pentru afișarea de pe partea Obsidian | Păstrați-l opțional; nu faceți din TikZJax o dependență obligatorie la timpul rulării plugin-ului | + +## Configurație + +| Setare | Implicit | Efect | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | Schimb între modul spec-first și legacy Mermaid | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = Mermaid doar; `'best-fit'` = ținte native + fallback-uri | +| `preferredDiagramIntent` | `undefined` (auto) | Suprascrie detectarea automată a intenției | +| `summarizeToMermaidLanguage` | `'en'` | Limbajul țintei pentru etichetele diagramelor | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | LLM per sarcină pentru generarea diagramelor | +| `autoMermaidFixAfterGenerate` | (din constante) | Rulare automată a fixerului legacy pe rezultatul Mermaid | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | Amplifică sursa cu cunoștințele din vault local | + +### Amplificare a cunoștințelor locale + +Când este activat, Notemd extrage fragmente de context relevant din baza de cunoștințe locală a seifului dumneavoastră (bazată pe MiniSearch) și le adaugă în începutul markdown-ului sursă. Nota de augmentare spune: "Doar referință de sprijin; păstrați structura principală fidelă notei sursă." + +### Modele de compatibilitate + +- **`legacy-mermaid`**: Toate intențiile sunt direcționate către Mermaid. Intențiile care nu sunt Mermaid (canvasMap, dataChart) sunt forțate să fie procesate prin `flowchart` sau `mindmap`. Nu există lanț de fallback. +- **`best-fit`**: Fiecare intenție este direcționată către ținta sa nativă. Dacă aceasta eșuează, se parcurge lanțul de fallback (de exemplu, Vega-Lite → Mermaid → HTML). + +## Prévisualizare și export + +| Acțiune | Metodă | +|--------|--------| +| SVG export | Constructor `mermaid.render()` / `vega.View.toSVG()` / SVG pentru Canvas | +| Export în PNG | SVG → Image → Canvas (ratio de pixeli a dispozitivului 1x-3x) → PNG ArrayBuffer | +| Salvare a sursării | Conținutul brut al artefactului este salvat cu extensia specifică țintei | +| Prévisualizare doar a sursării | Artefactele care nu sunt inline sunt afișate ca cod împreună cu diagnostice, fără renderizare în iframe | +| Audit semantic | Mermaid, JSON Canvas, Vega-Lite, și HTML/SVG editabil verificat de `scripts/diagram-semantic-verification.js` | + +**Caching**: RenderCache folosește cheia deterministică JSON a `{spec, target, theme}`. Deduplarea în timp real previne afișările duplicate. + +## Sfaturi + +- **Începeți cu modul `best-fit`** — acesta produce cea mai bună rezultat vizual pentru fiecare tip de intenție +- **Folosiți modele puternice pentru diagrame complexe** — diagramele de flux și ER beneficiază de GPT-4o sau Claude +- **Activeazăți cunoștințele locale** pentru diagrame specifice domenului — contextul relevant din vault îmbunătățește precizia +- **Setați `autoMermaidFixAfterGenerate`** — erorile de sintaxă Mermaid sunt frecvente fără el +- **Tool-ul de reparare legacy este complet** — dacă previsualizarea Mermaid eșuează, rularea manuală a comenzii de reparare rezolvă adesea problema + +--- + +## Următoarele pași + +- 🔗 [Wiki-Links](./wiki-links) — Cum sunt linkate conceptele în linie +- 📝 [Concept Notes](./concept-notes) — Extrageți concepte pentru materialul sursă al diagramelor +- 🔍 [Research](./research) — Îmbunătățiți diagramele cu date provenite din web diff --git a/website/i18n/ro/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/ro/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..87af3e57 --- /dev/null +++ b/website/i18n/ro/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "Cercetare și căutare pe web" +description: "Integra căutarea pe web în notele tale" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Cercetare și căutare pe web + +<TLDR> +**Notemd citește pe web și injectează rezultatele LLM-summarizate direct în notele tale.** Tavily API este backend-ul principal de căutare; DuckDuckGo servește drept opțiune fără configurare. Rezultatele sunt sumarizate cu citate din surse și adăugate sub o titlul `## Research`. Suportă cercetare într-o singură notă, cercetare în folderuri în lot și selecție a modelului pentru pasul de sumarizare în funcție de sarcină. + +Acesta face parte din [Obsidian Ghidul de gestionare a cunoștințelor AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Prezentare generală + +Cercetarea este una dintre cele mai puternice integrări ale Notemd: ea încheie ciclul între citire, căutare și scriere. În loc să treci la un browser pentru a căuta un termen necunoscut, poți evidenția-l și lăsa pe Notemd să caute, să sumarizeze și să adauge rezultatele – totul în cadrul seifului tău. + +Procesul este complet configurabil. Alegi furnizorul de căutare, LLM care scrie sumarul și dacă rezultatele sunt adăugate în nota activă sau scrise în fișiere separate. Modul în lot îți permite să cercetezi toate notele dintr-un folder cu un singur clic. + +## Cum funcționează + +### Pipeline-ul Căutare-apoi-Sumarizare + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **Extragerea interogărilor** -- Notemd extrage termenii de căutare din selecția ta sau din titlul notei. +2. **Căutarea pe web** -- Mai întâi se încearcă Tavily. Dacă nu este configurată nicio cheie API, se folosește automat DuckDuckGo (fără nevoie de cheie). +3. **Sumarizarea cu LLM** -- Rezultatele brute de căutare sunt trimise către LLM configurat, care generează un sumar concis cu citate din surse inline. +4. **Adăugare** -- Sumarul format este adăugat sub o titlul `## Research` în nota activă. + +### Tavily vs. DuckDuckGo + +| Aspect | Tavily | DuckDuckGo | +|--------|--------|------------| +| Cheia API | Requerit (există nivel gratuit) | Nu este necesar | +| Calitatea rezultatului | Superioară (construită special pentru AI) | Adevată pentru interogări generale | +| Limite de rată | Nivel gratuit generos | Supus throttling-ului | +| Configurație | `tavilyApiKey` în setările | Fără configurație – fallback automat | + +### Cercetare în folderul în lot + +Faceți clic dreapta pe un folder și alegeți **"Notemd: Folder de cercetare"**. Fiecare fișier `.md` din folder este procesat secvențial (sau paralel până la concurența configurată). Fiecare notă primește propriul său rezumat de cercetare. + +## Configurație + +| Setare | Implicit | Efect | +|---------|---------|--------| +| `tavilyApiKey` | `''` | Cheia Tavily API. Când este golă, se folosește exclusiv DuckDuckGo. | +| `researchProvider` / `researchModel` | DeepSeek | LLM pe sarcină pentru rezumarea rezultatelor de căutare | +| `maxResearchContentTokens` | `4000` | Bugetul de tokeni pentru conținutul trimis la LLM. Excesul este trunchiat. | +| `researchAppendToNote` | `true` | Adaugă rezumatul la nota sursă. Dacă este false, se creează un fișier separat. | +| `researchLanguage` | `'en'` | Limba de ieșire pentru cercetarea rezumată | + +### Recomandare de model pe sarcină + +Cercetarea beneficiază de un model care gestionează conținutul multilingv și produce texturi bine structurate. Luați în considerare: + +- **DeepSeek** -- standard, accesibil, calitate bună +- **GPT-4o** -- rezumări de calitate superioară, cost mai ridicat +- **Gemini Flash** -- rapid și ieftin, potrivit pentru interogări simple + +## Exemplu + +Citiți un articol despre *mecanismele de atenție transformer* și întâlniți un termen necunoscut: *relative positional encoding*. În loc să lăsați Obsidian: + +1. Highlightați **"relative positional encoding"** +2. Faceți clic dreapta --> **"Notemd: Cercetare și rezumare"** +3. Notemd căută pe web, rezumă cele mai bune rezultate și adaugă: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +Rezumatul face acum parte din depozitul dumneavoastră, fiabil pentru căutare, linkabil și accesibil offline. + +## Sfaturi + +- **Setați o cheie Tavily pentru cele mai bune rezultate** -- chiar nivelul gratuit oferă o relevanță mai bună decât DuckDuckGo brut. +- **Folosiți un model de rezumare capabil** -- modelele ieftine pot simplifica conținutul tehnic subtil. +- **Cercetați în lot** după o citire inițială pentru a umple lacunele din multiple note simultan. +- **Verificați rezumaturile adăugate** -- LLM poate inventa detalii despre sursă. Verificați afirmațiile esențiale. + +--- + +## Următoarele pași + +- [Concept Notes](./concept-notes) -- Extrageți și păstrați termenii cheie din rezultatele cercetării +- [Wiki-Links](./wiki-links) -- Legați conceptele obținute din cercetare între ele în depozitul dumneavoastră +- [Translation](./translation) -- Traduceți rezumaturile de cercetare într-o altă limbă +- [LLM Furnizori](/docs/providers/overview) -- Configura modelul utilizat pentru rezumat diff --git a/website/i18n/ro/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/ro/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..14bb8b06 --- /dev/null +++ b/website/i18n/ro/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "Traducere" +description: "Traduce notele și selecțiile" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# Traducere + +<TLDR> +**Notemd traduce textul între peste 21 de limbi folosind tehnologiea LLM.** Suportă traducerea a unei selecții, a întregii note și a unui folder în lot. Fiecare sarcină de traducere poate folosi un furnizor și un model dedicat prin setări specifice pentru acea sarcină. Limba de ieșire poate fi configurată independent de limbă UI. Rezultatele sunt adăugate sau scrise într-un fișier nou în funcție de preferințele dumneavoastră. + +Acesta face parte din [Obsidian Ghidul de gestionare a cunoștințelor AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Prezentare generală + +Traducerea în Notemd nu este o căutare din dicționar – este o traducere bazată pe LLM, conștientă de context. Modelul vede întreg paragraful sau nota, păstrând tonul, terminologia specifică domeniu și structura propozițiilor. Acest lucru oferă rezultate de calitate mai ridicată decât serviciile de traducere cuvânt cu cuvânt, în special pentru texte tehnice, academice și creative. + +Funcția suportă trei domenii: selecție, nota activă și întreg folder. În combinație cu selectarea modelului pentru fiecare sarcină, puteți folosi un model rapid (Gemini Flash) pentru traduceri obișnuite și un model puternic (Claude Sonnet) pentru conținut care necesită sensibilitate la nuanțe – fără a schimba furnizorul global. + +## Cum funcționează + +### Comanda Translate + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **Detectarea sursă** – LLM deduce limbajul sursă din conținut. Nu este nevoie să-l specificați manual. +2. **Construcția promptului** – Notemd creează un prompt care include limba țintă, o sugestie opțională de domeniu și conținutul care trebuie tradus. +3. **Traducerea LLM** – `translateProvider` / `translateModel` configurat procesează cererea. Modelul păstrează formatarea markdown, linkurile wiki și blocurile de cod. +4. **Ieșire** – Textul tradus este fie adăugat sub original, fie scris într-un fișier nou din depozit. + +### Perechi de limbi + +Notemd suportă orice pereche de limbi pe care LLM o susține. Printre perechile comune se numără: + +| Sursă | Target | Calitate tipică | +|--------|--------|----------------| +| Engleză | Chineză simplificată | Excelent | +| Chineză | Engleză | Excelent | +| Engleză | Japoneză | Foarte bun | +| Engleză | Germană / Franțuzea / Spaniolă | Foarte bun | +| Orice limbă suportată | Orice limbă suportată | Depinde de model | + +Setarea `translateLanguage` controlează **limbajul de ieșire**. Limbajul sursă este detectat automat. + +### Selectare a modelului pe sarcină + +Calitatea traducerii variază semnificativ în funcție de model. Notemd vă permite să atribuiți un model dedicat doar pentru traducere: + +| Model | Viteza | Calitate | Costul | Cel mai potrivit pentru | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | Rapid | Bun | Scăzut | Casual, volum mare | +| `gpt-4o-mini` | Rapid | Bun | Scăzut | Căutări rapide | +| `deepseek-chat` | Mediu | Bun | Foarte scăzut | Budjet multilingv | +| `claude-3-5-sonnet` | Mediu | Excelent | Mediu | Tehnic / academic | +| `gpt-4o` | Mediu | Excelent | Mediu | Proză sensibilă la nuanțe | + +### Traducere a folderului în lot + +Faceți clic dreapta pe un folder și selectați **"Notemd: Translate folder"** pentru a traduce toate notele din acel folder. Fiecare fișier este procesat independent. Setarea de concurență controlează câte fișiere se traduc simultan. + +## Configurație + +| Setare | Implicit | Efect | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | Provider dedicat pentru sarcini de traducere | +| `translateLanguage` | `'en'` | Limbajul țintă pentru output | +| `translationAppendToNote` | `true` | Adăugați textul tradus sub textul original. Dacă este setat pe false, se creează un fișier nou. | +| `batchConcurrency` | `3` | Numărul de fișiere procesate simultan în timpul traducerii în lot | + +## Exemplu + +Citiți o notă de cercetare în chineză și doriți o versiune în engleză: + +1. Deschideți nota +2. Clic dreapta --> **"Notemd: Translate current file"** +3. Notemd detectează limba chineză, o traduce în limbă țintă configurată (engleză) și adaugă: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +Textul chinez original rămâne neschimbat deasupra traducerii. Titlul `## Translation` păstrează ambele versiuni în același fișier pentru ușor referință. + +## Sfaturi + +- **Utilizați Gemini Flash pentru volume** -- este cea mai rapidă și ieftină opțiune pentru traducerea în lot a folderurilor mari. +- **Păstra linkurile wiki** -- instrucțiunea Notemd solicită LLM să păstreze `[[wiki-links]]` intact în traducere. Verificați după traducere, deoarece unele modele le dezpachetează ocazional. +- **Setează limba de ieșire explicit** -- detectarea automată funcționează pentru sursă, dar configurați întotdeauna `translateLanguage` pentru a evita ambiguitățile legate de țintă. +- **Traducere în lot a notițelor conceptuale** -- dacă folderul dumneavoastră cu concepte este într-o limbă și doriți el să fie în alta, traducerea la nivel de folder o gestionează într-un singur pas. + +--- + +## Următoarele pași + +- [Cercetare](./research) -- Căutați și rezumați în orice limbă, apoi traduceți rezultatele +- [Fluxuri de lucru](./workflows) -- Înșirați traducerea cu linkuri wiki sau extracție a conceptelor +- [Procesare în lot](/docs/advanced/batch-processing) -- Concurgență și comportamentul de suprascriere pentru operațiile pe folder +- [LLM Furnizori](/docs/providers/overview) -- Alegeți cel mai bun model pentru perechea dumneavoastră de limbi diff --git a/website/i18n/ro/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/ro/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..2a4549f6 --- /dev/null +++ b/website/i18n/ro/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "Wiki-Linkuri" +description: "Generare automată a linkurilor wiki pentru conceptele cheie" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# Wiki-Linkuri + +<TLDR> +**Notemd adaugă automat `[[wiki-links]]` la conceptele cheie din notele tale.** LLM citește conținutul tău, identifică termenii importanți în context și inserează linkuri wiki în stil Obsidian la fiecare apariție. Opțional, creează fișiere de note conceptuale cu backlink-uri. Suportă suprimarea sinonimelor, integritatea linkurilor la renumire/eliminare și modul de extracție pură (fără modificări ale fișierelor). Spre deosebire de Auto Link care se potrivește doar cu titlurile existente ale notelor, Notemd folosește IA pentru a identifica concepte noi și creează note corespunzătoare. Acesta face parte din [Obsidian Ghidul de gestionare a cunoștințelor cu IA](/docs/pillar-ai-knowledge). +</TLDR> + +## Prezentare generală + +Linkarea wiki este caracteristica principală a Notemd. Ea transformă textul simplu într-o grafică de cunoștințe conectată prin: + +1. **Analizarea notei tale** cu un LLM +2. **Identificarea conceptelor cheie** (termeni, persoane, metode, teorii) +3. **Inserearea `[[wiki-links]]`** la fiecare apariție +4. **Crearea de note conceptuale** (opțional) cu backlink-uri + +## Cum funcționează + +### Proces + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### Exemplu + +**Înainte:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**După:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## Utilizare + +### Bună: Adaugare a linkurilor în nota curentă + +1. Deschideți o notă +2. Face clic dreapta în editor → **"Procesează fișierul (adaugă linkuri)"** +3. Așteaptă câteva secunde +4. Conceptele sunt acum linkate! + +### Lot: Procesare a mai multor note + +1. Faceți clic dreapta pe o folderă în Explorerul fișierelor +2. Selectați **"Notemd: Process folder (add links)"** +3. Configurație: + - Concurrentism (câte fișiere în paralel) + - Scrie peste linkurile existente (da/nu) +4. Apăsați **Procesare** + +### Selectiv: Linkare a unui text specific + +1. Evidențiați textul care urmează procesat +2. Faceți clic dreapta → **"Procesare a selecției (adăugare linkuri)"** +3. Doar partea evidențiată este analizată + +## Notemd versus Linkare automată + +Obsidian are două abordări pentru linkarea automată la wiki: + +| | **Linkare automată** | **Notemd** | +|--|---------------|-------------| +| Sursa linkului | Titlurile noteurilor existente în depozit | Conceptele identificate de LLM în conținut | +| Poate crea legături între noile concepte | Nu — titlul trebuie să existe deja | Da — IA identifică conceptele și creează note | +| Gestionarea sinonimelor | Nu | Da — suprimarea sinonimelor | +| Crearea notei de concept | Nu | Da — cu backlink-uri și eliminare a duplicatelor | +| Procesare în lot | Nu (fișier unic) | Da (la nivel de folder) | +| Ruteare a modelului pe sarcină | Nu | Da | + +**Auto Link** se bazează pe corespondența titlurilor: dacă există o notă numită „Machine Learning“, aceasta încadrează aparițiile în `[[Machine Learning]]`. Dacă nota nu există, nu se întâmplă nimic. + +**Notemd** este pilotat de IA: LLM citește conținutul dumneavoastră, înțelege contextul, identifică conceptele care *ar trebui* legate — chiar dacă nu există încă nicio notă — și creează atât legătura, cât și nota de concept. + +## Funcții + +### Suprimarea sinonimelor + +**Problema:** „transformer“, „transformers“, „Transformer architecture“ → 3 concepte separate + +**Soluția:** Notemd detectează duplicatele apropiate și folosește forma canonicală. + +**Configurație:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### Integritatea linkurilor + +**Când renumești o notă de concept:** +- Toate linkurile wiki se actualizează automat (Obsidian caracteristică principală) +- Linkurile inverse rămân intacte + +**Când ștergi o notă de concept:** +- Linkurile rămân, dar apar ca „mențiuni nelinkate" +- Poți recrea-o din orice apariție + +### Modul de extracție pură + +**Extrage concepte fără a modifica originalul:** + +1. Clic dreapta → **„Extrage concepte (fără linkare)"** +2. Sunt create note de concept +3. Fișierul original rămâne neschimbat + +Cas de utilizare: Procesarea conținutului doar pentru citire sau a drafturilor finale. + +## Generarea notei de concept + +### Creare automată + +**Când este activat (valoare implicită), Notemd creează:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### Configurație + +**Folderul de ieșire:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Structura ierarhică:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**Șablonul:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## Opțiuni avansate + +### Fenestra de context + +**Cât text înconjurător să fie trimis:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +Mai mare = precizie mai bună, cost mai ridicat. + +### Apariții minime + +**Linka doar conceptele care apar de mai multe ori:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +Setați la 2 sau 3 pentru a vă concentra asupra temelor recurente. + +### Modele de exclusie + +**Săriți peste anumite cuvinte:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +Împiedică linkarea excesivă a termenilor generici. + +### Prompturi personalizate + +**Să înlocuiți instrucțiunile default ale LLM:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +Modificați-le pentru nevoi specifice domeniu (de exemplu, "Concentrați-vă pe terminologia medicală"). + +## Sfaturi și cele mai bune practici + +### ✅ DA + +- **Procesează notele cu >100 de cuvinte** — Notele scurte conțin puține concepte +- **Folosiți modele puternice** pentru o identificare mai bună a conceptelor (GPT-4o, Claude) +- **Revizionare înainte de acceptare** — Verificați dacă linkurile sugerate sunt logice +- **Construiește în mod iterativ** — Procesează 5-10 note, revizui graful, ajustează setările + +### ❌ NU + +- **Over-link** — Nu fiecare substantiv necesită un link +- **Procesează proiectele în mod repetat** — Conceptele se pot schimba, așteaptă până devin stabile +- **Ignora sinonimele** — Activează suprimarea pentru a evita „ML” în loc de „Machine Learning” + +## Performanță + +### Viteza + +| Dimensiunea notei | GPT-4o-mini | Claude Sonnet | Ollama (local) | +|-----------|-------------|---------------|----------------| +| 500 de cuvinte | 2-3 secunde | 3-5 secunde | 5-10 secunde | +| 2000 de cuvinte | 5-8 secunde | 10-15 secunde | 20-40 secunde | +| 5000+ cuvinte | În bucăți (calle multiple) | În bucăți | În bucăți | + +### Estimare a costurilor + +**Exemplu: Notă de 1000 de cuvinte cu GPT-4o-mini** +- Entrare: ~1500 tokeni +- Rezultat: ~200 tokeni +- Cost: ~ + +**Procesare în lot a 100 de note:** ~ + +## Dezvoltarea de soluții + +### Niciun link adăugat + +**Verificare:** +1. LLM apelul a avut succes (Setări → Diagnosticare) +2. Noteta conține suficient conținut (>50 de cuvinte) +3. Conceptele sunt tehnice/specifice (nu doar pronume). + +**Încercați:** +- Folosește un model mai puternic +- Crește fereastra de context +- Verifică validitatea cheii API + +### Prea multe linkuri + +**Soluții:** +1. Crește numărul minim de apariții (2 sau 3) +2. Adaugă cuvinte comune în lista de exclusii +3. Folosește un model mai puțin agresiv + +### Concepte greșite legate + +**Correcții:** +1. Folosiți un prompt personalizat pentru specificitatea domeniu +2. Activeazăți suprimarea sinonimelor +3. Revizuiți manual și dezlegați + +### Legăturile se strică după redenumire + +**Acesta este un comportament normal Obsidian.** + +Pentru a actualiza toate legăturile: +1. Redenumiți nota conceptuală +2. Obsidian actualizează automat `[[old]]` → `[[new]]` + +--- + +## Următoarele pași + +- 📖 [Note conceptuale](./concept-notes) — O analiză aprofundată a generării notelor conceptuale +- 🔍 [Integrare cercetării](./research) — Combinați legături cu cercetarea pe web +- 🎨 [Diagrame](./diagrams) — Vizualizați graful dumneavoastră de cunoștințe diff --git a/website/i18n/ro/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/ro/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..5067f214 --- /dev/null +++ b/website/i18n/ro/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "Fluxuri de lucru" +description: "Ligați mai multe sarcini cu butoane într-un clic" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Fluxuri de lucru + +<TLDR> +**Notemd Fluxurile de lucru leagă mai multe sarcini într-o singură acțiune cu un clic.** Definiți secvențe precum `add-links > extract-concepts > research > diagram` folosind un DSL simplu. Fluxurile de lucru apar ca butoane în bara laterală care execută întreaga lanțare pe nota curentă sau folderul. Sunt incluse fluxuri de lucru predefinite; creați altele personalizate în setările aplicației. Fiecare pas folosește propria sa configurare de model pentru sarcina respectivă. + +Acesta face parte din [Obsidian Ghidul de gestionare a cunoștințelor AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Prezentare generală + +O fluxură de lucru elimină dificultățile legate de executarea sarcinilor una câte una. În loc să faceți clic dreapta de patru ori pentru a adăuga linkuri, extrage concepte, căutați termeni necunoscuti și generați un diagramă, apăsați un buton din bara laterală și întreaga lanțare se execută. Notemd gestionează secvențierea, propagarea erorilor și raportarea progresului. + +Fluxurile de lucru sunt definite într-un DSL ușor (limbaj specific domeniu). Ele se găsesc în setările aplicației, apar ca butoane clicabile în bara laterală Obsidian și pot fi aplicate fie pe nota curentă, fie pe întregul folder. + +## Cum funcționează + +### Pipeline-ul de executare a fluxurilor de lucru + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **Analizare** -- Șirul DSL este împărțit la `>` (sau `>`) într-o listă ordonată de identificatoare de sarcini. +2. **Resolvare** -- Fiecare identificator se referă la o comandă internă (add-links, extract-concepts, research, translate, diagram etc.). +3. **Executare** -- Pașii se execută secvențial. Fiecare pas folosește furnizorul și modelul configurat pentru sarcina respectivă. +4. **Gestionarea erorilor** -- Dacă un pas eșuează, fluxura de lucru fie se oprește, fie continuă la următorul pas, în funcție de politica dumneavoastră de gestionare a erorilor. +5. **Finalizare** -- O notificare tip toast raportează succesul sau listează orice pași eșuați. + +### Formatul DSL + +Fluxurile de lucru sunt definite ca o secvență de identificatoare de sarcini separate prin `>`: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**Identificatoarele de sarcină disponibile:** + +| Identificator | Acțiune | +|------------|--------| +| `process-current-add-links` | Adaugă linkuri wiki în nota activă | +| `extract-concepts-current` | Extrage concepte din nota activă | +| `research-and-summarize` | Cercetează textul selectat sau titlul notei | +| `process-current-translate` | Traduce nota activă | +| `summarize-to-mermaid` | Generează un diagram din nota activă | +| `generate-from-title` | Generează conținut din titlul notei | +| `extract-original-text` | Extrage textul original (pentru OCR / conținut scanat) | + +**Variante la nivel de folder** înlocuiește `current` cu `folder` în numele identificatorului. + +### Fluxuri de lucru predefinite versus personalizate + +Notemd vine cu fluxuri de lucru gata preparate pentru pattern-uri comune: + +| Flux de lucru | Lanț | Caz de utilizare | +|----------|-------|----------| +| **Extragere cu un clic** | add-links > extract-concepts > research | Procesează o lucrare de cercetare într-o singură trecere | +| **Pipeline complet** | add-links > extract-concepte > cercetare > diagramă | Extragerea completă a cunoștințelor cu vizualizare | +| **Traduce + Legătură** | traduce > add-links | Traduce apoi legă conceptele în limbajul țintă | + +**Fluxuri de lucru personalizate** se creează în setările: + +1. Deschide **Setările** --> **Notemd** --> **Fluxuri de lucru** +2. Face clic pe **"Adaugare flux de lucru"** +3. Introdu lanțul DSL (de exemplu, `process-current-add-links>extract-concepts-current`) +4. Dă-i un nume de afișare (de exemplu, "Legătură rapidă + Extragere") +5. Noul buton apare imediat în bara laterală + +## Configurație + +| Setare | Implicit | Efect | +|---------|---------|--------| +| `workflows` | Set predefinit | Array de definiții de fluxuri de lucru (nume + DSL) | +| `workflowContinueOnError` | `true` | Continuă la pasul următor dacă pasul actual eșuează | +| `workflowShowProgress` | `true` | Afișează un toast cu progres după finalizarea fiecărui pas | + +### Modele pe sarcină în fluxurile de lucru + +Fiecare pas dintr-un flux de lucru utilizează propria sa configurare de model pentru fiecare sarcină. Nu este necesar să specificați modele în propriul DSL. Ordinea de rezolvare este: + +1. Provider/model pentru fiecare sarcină dacă `useMultiModelSettings` este disponibil +2. `activeProvider` global în caz contrar + +Asta înseamnă că `add-links` poate fi rulat pe DeepSeek în timp ce `research` este rulat pe GPT-4o – toate în cadrul aceluiași flux de lucru. + +## Exemplu + +Ați importat recent un PDF dintr-un articol de științe în seiful dumneavoastră și doriți extragerea completă a cunoștințelor: + +1. Deschideți nota importată +2. Faceți clic pe butonul din bara laterală **"Full Pipeline"** +3. Notemd execută: + - **Pasul 1**: Adăugați linkuri wiki – `[[attention mechanism]]`, `[[transformer]]` etc. + - **Pasul 2**: Extrageți concepte – creează note de concept în folderul dumneavoastră de concepte + - **Pasul 3**: Cercetare – rezumă sursele web pentru termenii cheie + - **Pasul 4**: Diagramă – generează o mapă mentală Mermaid a structurii articolului +4. După aproximativ 30 de secunde, nota dumneavoastră conține linkuri, există note de concept, cercetarea este adăugată și un fișier de diagramă este salvat + +Totul prin un singur clic. + +## Sfaturi + +- **Începeți cu fluxuri de lucru predefinite** – acestea acoperă cele mai comune pattern-uri. Personalizați doar atunci când aveți nevoie de o secvență diferită. +- **Activeazăți `workflowContinueOnError`** – o etapă de diagramă eșuată nu ar trebui să oprească întregul pipeline. +- **Folosi fluxuri de lucru pentru foldere** pentru procesare în masă -- faceți clic dreapta pe o folderă, alegeți un flux de lucru, și fiecare notă este procesată. +- **Denumiți fluxurile de lucru clar** -- spațiul din bara laterală este limitat. Folosiți nume scurte, orientate spre acțiune, cum ar fi „Extractare rapidă“ sau „Traduc + Link“. + +--- + +## Următoarele pași + +- [Cercetare](./research) -- Înțelegeți ce face pasul de cercetare înainte de a-l adăuga în fluxurile de lucru +- [Legături Wiki](./wiki-links) -- Funcția principală de legături utilizată în majoritatea fluxurilor de lucru +- [Note conceptuale](./concept-notes) -- Extracția de concepte ca pas al unui flux de lucru +- [Procesare în masă](/docs/advanced/batch-processing) -- Concurență și raportare a progresului pentru fluxurile de lucru ale folderelor diff --git a/website/i18n/ro/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/ro/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..2eefee78 --- /dev/null +++ b/website/i18n/ro/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "Configurație" +description: "Configurați setările și preferințele Notemd" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Configurație + +<TLDR> +**Configurația Notemd acoperă 6 domenii principale:** (1) furnizori LLM și chei API, (2) selecția modelului pentru fiecare sarcină, (3) căile de ieșire și șabloanele, (4) limbajul UI și limbajul de ieșire, (5) serviciile de căutare (Tavily/DuckDuckGo), (6) fluxuri de lucru personalizate. Toate setările se găsesc în Obsidian Settings → Notemd. Schimbările intră în vigoare imediat. +</TLDR> + +## Prezentare generală a setărilor + +Acces: **Obsidian Settings (⚙️) → Notemd** + +### Secțiuni principale + +1. **Configurația furnizorului** — chei API, URLs de bază, modele +2. **Setările sarcinii** — selecția modelului pentru fiecare sarcină +3. **Configurația ieșirii** — unde se salvează fișierele generate +4. **Setările limbajului** — UI și limbajul de ieșire +5. **Integrarea căutării** — configurarea Tavily/DuckDuckGo +6. **Fluxuri de lucru** — lanțuri personalizate de butoane +7. **Avansate** — diagnostic, procesare în lot, fragmentare + +--- + +## 1. Configurația furnizorului + +### Adăugarea unui furnizor + +1. **Selectați furnizorul** din listă deschisă (peste 30 disponibile) +2. **Introduceți cheia API** +3. **Opțional**: Setați o bază personalizată URL (pentru proxy-uri/gatewee) +4. **Faceți clic pe „Get Model List"** pentru a verifica conexiunea +5. **Selectați modelul implicit** + +### Provideri comuni + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Local) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### Provideri multiple + +Puteți configura mai mulți provideri și să schimbați între ei pentru fiecare sarcină: +- **Providerul principal**: Folosit ca soluție de rezervă +- **Provideri specifici pentru sarcini**: Suprascrie pentru sarcini specifice + +--- + +## 2. Modele specifice sarcinii + +Configurați modele diferite pentru sarcini diferite pentru a optimiza costul/calitatea: + +### Tipuri de sarcini + +| Sarcină | Modelul implicit | Scop | +|------|--------------|---------| +| **Legături** | Providerul principal | Identificați conceptele pentru link-urile wiki | +| **Generare a conceptului** | furnizor principal | Extrage și descrie conceptele | +| **Cercetare** | furnizor principal | Rezumă rezultatele căutării pe web | +| **Traducere** | furnizor principal | Traduce textul | +| **Generarea diagramelor** | furnizor principal | Generează diagrame Mermaid/Canvas | + +### Exemplu: Configurație optimizată din punct de vedere al costurilor + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### Cum se configurează + +1. **Setări → Notemd → Setări ale sarcinii** +2. Pentru fiecare sarcină, alegeți: + - ✅ **Utiliza furnizorul principal** (valoare implicită) + - 🔄 **Utiliza furnizor personalizat** → selectați furnizor + model + +--- + +## 3. Configurația de ieșire + +### Outputul notițelor despre concepte + +**Unde sunt salvate notele de concept nou:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Șablonul:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### Opțiuni de structură a folderului + +**Opțiunea 1: Plată (toate conceptele într-un singur folder)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**Opțiunea 2: Ierarhică (după folderul sursă)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +Configurație: **Settings → Output → Use Hierarchical Folders** + +### Rezultatul diagramului + +**Unde sunt salvate diagramele:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**Format:** +- `.mmd` (Mermaid sursă) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. Setări de limbă + +### UI Limbă + +**Limbajul interfeței** (butoane, meniuri, dialoguri): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +Suportate: English, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Русский, العربية și altele. + +### Limbajul de ieșire + +**Limba conținutului generat** (note conceptuale, rezumate de cercetare): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**Caz de utilizare:** Chineză UI + rezultate în engleză pentru cercetare bilingvă. + +### Destinația traduceri + +**Limba țintă implicită** pentru sarcinile de traducere: + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. Integrare cu căutare + +### Tavily (Recomandat) + +**Serviciu de căutare optimizat pentru AI:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +Obține cheie: [tavily.com](https://tavily.com/) + +**Caracteristici:** +- Rezultate de înaltă calitate +- Rezumate optimizate pentru AI +- Citești sursă + +### DuckDuckGo (Experimental) + +**Nu este necesară cheia API:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**Notă:** Calitate mai scăzută, fără personalizare. + +--- + +## 6. Configurarea fluxului de lucru + +### Crearea de fluxuri de lucru personalizate + +**Fluxurile de lucru combină mai multe sarcini într-un singur buton.** + +1. **Setări → Fluxuri de lucru → Adăuga flux de lucru** +2. **Nume**: "Paper Analysis Flow" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **Salvează** + +Un nou buton apare în bara laterală stângă. + +### Sintaxa DSL + +**Format:** `action1>action2>action3` + +**Acțiuni disponibile:** +- `process-current-add-links` — Adaugă linkuri wiki în nota curentă +- `extract-concepts-current` — Generează note conceptuale +- `research-and-summarize` — Cercetare pe web + rezumat +- `translate-current` — Traduce nota curentă +- `summarize-as-mermaid` — Generează diagrama Mermaid +- `process-folder-add-links` — Procesează în lot folderul + +**Exemple de fluxuri de lucru:** + +**Extracție rapidă a conceptelor:** +``` +process-current-add-links>extract-concepts-current +``` + +**Cercetare profundă:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**Analiză multilingvă:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. Setări avansate + +### Procesare în loturi + +**Procesează mai multe fișiere în paralel:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +Valoare mai mare = mai rapid, dar mai multe apeluri API. + +### Fragmentare inteligentă + +**Pentru note lungi, împarteți-le în fragmente:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +Previnerea erorilor din cauza limitelor de token. + +### Panoul de diagnostic + +**Vizualizați jurnale detaliate:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +Afișează: +- API cereri/răspunsuri +- Utilizarea tokenilor +- Timpurile de procesare +- Erori + +### Detectarea conceptelor duplicate + +**Evita concepte aproape duplicate:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +Cât mai mare = fuziune mai agresivă. + +--- + +## Profiluri de configurare + +### Setări de export/import + +**Partajează configurațiile între dispozitive:** + +1. **Setări → Avansate → Exporta configurație** +2. Salvează `notemd-config.json` +3. Pe un dispozitiv nou: **Importa configurație** + +**Ce este inclus:** +- Chei API ale furnizorului (opțional) +- Selecții de model +- Căi de ieșire +- Fluxuri de lucru personalizate + +--- + +## Configurații recomandate + +### Pentru studenți + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### Pentru cercetători + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### Pentru utilizatorii care se preocupează de confidențialitate + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### Pentru lucrări bilingve + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## Dezolvarea problemelor de configurare + +### Setările nu sunt salvate +- Verificați permisiunile fișierului în `.obsidian/plugins/notemd/` +- Încercați: Dezactivați pluginul → Reactivați-l + +### Cheia API este invalidă +- Fără spații suplimentare +- Verificați expirarea +- Verificați creditele în panoul de control al furnizorului + +### Modelele nu se încarcă +- Faceți clic pe „Obține lista modelelor“ pentru a actualiza +- Verificați conectivitatea rețelei +- Încercați un alt furnizor + +--- + +## Următoarele pași + +- 📖 [Explorați funcțiile](../features/wiki-links) +- 🔌 [Ghiduri de configurare a furnizorului](../providers/overview) +- ❓ [FAQ](../faq) diff --git a/website/i18n/ro/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/ro/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..d3bac5fd --- /dev/null +++ b/website/i18n/ro/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "Instalare" +description: "Cum să instalați Notemd în Obsidian" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Instalare + +<TLDR> +**Instalați Notemd în mai puțin de 2 minute.** Două metode: (1) Pluginuri comunitare Obsidian (recomandate, instalare cu un clic), sau (2) Instalare manuală prin GitHub Releases. Este necesar Obsidian 0.15.0+. Funcționează pe Windows, macOS, Linux, iOS și Android. Fără dependențe externe. Peste 4k de descărcări, licențiat cu MIT. +</TLDR> + +## Metodul 1: Pluginuri comunitare (Recomandat) + +1. Deschideți **Setările Obsidian** (icona ⚙️ sau `Ctrl/Cmd + ,`) +2. Alăturați-vă la **Pluginurile comunitare** +3. Apăsați pe **Cautare** +4. Căutați **"Notemd"** +5. Apăsați pe **Instalare** +6. Apăsați pe **Activare** + +**Gata!** Veți vedea icona Notemd în bara laterală din stânga. + +## Metoda 2: Instalare manuală + +### Prerechizite +- Obsidian 0.15.0 sau o versiune mai nouă +- Git (opțional, pentru clonare) + +### Pași + +1. **Descărcați fișierele** de la [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest): + - `main.js` + - `styles.css` + - `manifest.json` + +2. **Găsiți folderul plugin-ului vault-ului dumneavoastră:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +Dacă folderul `plugins` nu există, creați-l. + +3. **Creați folderul Notemd:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **Copiați cele trei fișiere** în folderul `notemd`. + +5. **Reîncărcați Obsidian:** + - Apăsați `Ctrl/Cmd + R`, sau + - Reînnoi Obsidian + +6. **Activează pluginul:** + - Setări → Pluginuri comunitare + - Găsește „Notemd“ în listă + - Activează-l + +## Alternativă: Instalează prin BRAT + +Dacă folosești pluginul [BRAT](https://github.com/TfTHacker/obsidian42-brat): + +1. Deschide setările BRAT +2. Face clic pe „Adaugă plugin beta“ +3. Introdu: `Jacobinwwey/obsidian-NotEMD` +4. Face clic pe „Adaugă plugin“ +5. Activează Notemd în Pluginuri comunitare + +## Verificare + +După instalare, verificați dacă Notemd funcționează corect: + +1. Deschideți orice notată +2. Faceți clic dreapta în editor +3. Ar trebui să vedeți comenzi Notemd precum: + - "Procesează fișierul (adaugă linkuri)" + - "Extrage concepte" + - "Cercetează și rezumă" + +## Următoarele pași + +- **Configurați furnizorul LLM:** [Quick Start →](./quick-start) +- **Rezolvare a problemelor:** [Common Issues →](../advanced/troubleshooting) + +## Requisite de sistem + +| Platformă | Versiune | Stare | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | Requerit | +| **Windows** | 7+ | ✅ Suportat | +| **macOS** | 10.15+ | ✅ Suportat | +| **Linux** | Orice | ✅ Suportat | +| **iOS** | 15+ | ✅ Suportat | +| **Android** | 5+ | ✅ Suportat | + +## Dezinstalare + +Pentru a elimina Notemd: + +1. Setări → Pluginuri comunitare +2. Găsiți „Notemd“ +3. Faceți clic pe icona ❌ +4. Opțional, ștergeți folderul pluginului: `<vault>/.obsidian/plugins/notemd/` + +Datele dumneavoastră (note, note conceptuale etc.) rămân neschimbate. + +## Actualizare + +### Actualizare automată (Recomandată) +Obsidian verifică automat actualizările pluginului. Când apare o versiune nouă: +1. Setări → Pluginuri comunitare +2. Faceți clic pe „Verifică actualizări“ +3. Faceți clic pe „Actualizează“ lângă Notemd + +### Actualizare manuală +Descărcați cea mai recentă versiune și înlocuiți cele trei fișiere din folderul dumneavoastră de plugin. + +## Obținere de ajutor + +- 📖 [Ghid rapid de începere](./quick-start) +- ❓ [FAQ](../faq) +- 💬 [Comunitatea Discord](https://discord.gg/qnGgsQ9W) +- 🐛 [Raportați probleme](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/ro/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/ro/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..ad5bfa74 --- /dev/null +++ b/website/i18n/ro/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "Ghid rapid de începere" +description: "Începeți cu Notemd în 5 minute" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Ghid rapid de începere + +<TLDR> +**Începeți să utilizați Notemd în 5 minute.** Trei pași: (1) Adăugați o cheie LLM API (sau folosiți Ollama local), (2) Deschideți o notă și rulați „Process file (add links)“, (3) Explorați fluxurile de lucru cu un clic din bara laterală. Suportează peste 30 de furnizori. Nu este necesar codificare. Funcționează offline cu Ollama. +</TLDR> + +## Pasul 1: Configurați primul dumneavoastră furnizor LLM (2 minute) + +### Opțiunea A: Furnizor cloud (OpenAI, Anthropic, etc.) + +1. Deschideți **Settings** → **Notemd** +2. Sub **Configurarea furnizorului LLM**, selectați un furnizor din listă descendentă +3. Introduceți **Cheia API** a dumneavoastră +4. (Opțional) Faceți clic pe **„Get Model List“** pentru a vedea modelele disponibile +5. Selectați un model pentru fiecare tip de sarcină + +**Alegeri populare:** +- **OpenAI**: `gpt-4o-mini` (rapid, accesibil) +- **Anthropic**: `claude-sonnet-4-6` (calitate ridicată) +- **DeepSeek**: `deepseek-chat` (foarte accesibil) + +### Opțiunea B: Ollama local (nu este necesară cheia API) + +1. Instalează [Ollama](https://ollama.com/) +2. Descarcă un model: `ollama pull llama3.1` +3. În setările Notemd, selectează **"Ollama"** ca furnizor +4. Numele modelului: `llama3.1` (sau orice model pe care l-ai descărcat) + +## Pasul 2: Încerce-ți prima sarcină (1 minut) + +### Adaugă legături Wiki într-o notă + +1. Deschide orice notă cu conținut semnificativ +2. Faceți clic dreapta în editor +3. Selectează **"Procesează fișierul (adaugă legături)"** +4. Așteaptă câteva secunde +5. Conceptele cheie sunt acum `[[wiki-linked]]`! + +**Exemplu:** + +**Înainte:** +``` +Machine learning models use neural networks to process data. +``` + +**După:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## Pasul 3: Explorați funcțiile (2 min) + +### Extraeți notele de concept + +1. Faceți clic dreapta → **"Extrae concepte din fișierul curent"** +2. Notemd creează fișiere separate pentru fiecare concept +3. Verificați folderul dumneavoastră configurat pentru concepte (implicit: `concepts/`) +4. Fiecare notă de concept are un link invers către nota originală + +### Cercetare și rezumat + +1. Selectați un subiect din nota dumneavoastră +2. Faceți clic dreapta → **"Cercetare și rezumat"** +3. Notemd efectuează căutări pe web (Tavily sau DuckDuckGo) +4. Rezumatul se adaugă la nota ta împreună cu sursele + +### Fluxuri de lucru cu un clic + +1. Verifică **baza laterală stângă** pentru butoanele de flux de lucru +2. Faceți clic pe **"Extragere cu un clic"** în orice notă +3. Acesta rulează: adaugare linkuri → extragere concepte → cercetare → generare diagramă +4. Totul într-un clic! + +## Sarcini obișnuite de început + +### Sarcină 1: Procesarea unui articol/jurnal + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### Sarcină 2: Traducerea notelor + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### Sarcină 3: Crearea unei hărți de cunoștințe + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## Sfaturi pentru personalizare + +### Selectare a modelului pe sarcină + +Puteți folosi modele diferite pentru sarcini diferite: + +| Sarcină | Model recomandat | De ce | +|------|------------------|-----| +| Adăuga linkuri | `gpt-4o-mini`, `deepseek-chat` | Rapid, multe apeluri | +| Extrag concepte | `claude-sonnet-4-6`, `gpt-4o` | Extracție de calitate | +| Cercetare | `perplexity`, `gpt-4o` | Bazat pe web | +| Traducere | `gemini-flash`, `gpt-4o` | Multilingvist | +| Diagrame | `claude-opus`, model local | Raționament complex | + +Configurați în: **Setări → Notemd → Modele specifice sarcinii** + +### Fluxuri de lucru personalizate + +Creați propriul dumneavoastră buton: + +1. Setări → Notemd → Fluxuri de lucru +2. Faceți clic pe „Adăuga flux de lucru” +3. Introduce DSL: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. Numește-l: „My Research Flow” +5. O nouă buton apare în bara laterală + +## Dezvoltarea de soluții + +### "API Cheia invalidă" +- Verifică dacă cheia este corectă (fără spații în plus) +- Verifică dacă contul are credite +- Testați cu butonul „Test de conexiune” din setări + +### „Modelul nu a fost găsit” +- Faceți clic pe „Obține lista modelurilor” pentru a vedea modelele disponibile +- Unii furnizori necesită nume specifice de modele (de exemplu, `gpt-4o` nu `gpt-4`) + +### Linkurile nu apar +- Asigurați-vă că nota conține suficient conținut (>50 de cuvinte) +- Încercați un model mai puternic +- Verificați dacă apelul LLM a avut succes (vezi panoul de diagnostic) + +### Performanță lentă +- Folosiți modele mai rapide (`gpt-4o-mini` în loc de `gpt-4o`) +- Reduceți dimensiunea buclei în setările +- Activeazăți procesare paralelă pentru sarcini în lot + +## Următoarele pași + +- 📖 [Explorați toate funcțiile](../features/wiki-links) +- ⚙️ [Configurație avansată](./configuration) +- 🔧 [Configurarea furnizorului LLM](../providers/overview) +- ❓ [FAQ](../faq) + +## Tutorial video + +Urmări videoclipul de introducere de 3 minute (chineză): +[【Complet open source și gratuit! NotEMD – Ghid rapid de 3 minute】](https://b23.tv/lqR0RlA) + +## Obținere de ajutor + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **Probleme**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **Documentație**: [Documentație completă](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/ro/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/ro/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..30e21ec0 --- /dev/null +++ b/website/i18n/ro/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "Introducere în Notemd" +description: "Constructor de baze de cunoștințe cu inteligență artificială pentru Obsidian, care oferă transformări persistente ale notițelor, fluxuri de lucru și diagrame bazate pe specificații" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Introducere în Notemd + +<TLDR> +**Notemd** (Note + EMD — Documente Markdown îmbunătățite) este un plugin open-source pentru Obsidian care transformă lecturile realizate cu LLM în cunoștințe persistente. Spre deosebire de IA bazată pe chat, unde informațiile dispar după sesiune, Notemd scrie rezultatele **direct în vault-ul dumneavoastră** sub formă de linkuri wiki, note conceptuale, rezumate de cercetare, traduceri, fluxuri de lucru și diagrame. Este conceput pentru cercetători, studenți și profesioniști care doresc ca lecturile, cercetările și explicațiile vizuale să se acumuleze într-o grafică a cunoștințelor structurată și în evoluție. +</TLDR> + +## Ce este Notemd? + +Notemd integrează **peste 30 de modele mari de limbaj** (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama și altele) în fluxul de lucru Obsidian al dumneavoastră pentru a automatiza extragerea cunoștințelor, organizarea lor, traducerea, cercetarea și generarea diagramelor. + +### Diferența cheie: Cunoștințe efemere vs. persistente + +| Aspect | IA bazată pe chat (ChatGPT etc.) | Notemd | +|--------|-------------------------------|--------| +| **Unde ajung rezultatele** | Istoricul de chat (dispare) | Vault-ul dumneavoastră Obsidian (rămâne) | +| **Format** | Răspunsuri în text simplu | Fișiere structurate: `[[wiki-links]]`, note conceptuale, diagrame | +| **Valoarea pe termen lung** | Trebuie întrebat din nou de fiecare dată | Se acumulează într-un graf de cunoștințe | +| **Acces offline** | Necesită internet | Funcționează complet offline cu Ollama | + +## Capacități de bază + +### 1. **Legături automatice la Wiki** +- LLM identifică conceptele cheie din notele tale +- Inserează `[[wiki-links]]` la fiecare apariție +- Opțional creează note conceptuale legate +- Suprimarea sinonimelor pentru a evita duplicatele + +### 2. **Generarea Notei de Concept** +- Extrage conceptele esențiale din lucrări, articole, note +- Generează fișiere dedicate cu linkuri inverse +- Căi de ieșire și șabloane personalizabile + +### 3. **Integrare cu Cercetarea Web** +- Cauta Tavily sau DuckDuckGo din interiorul Obsidian +- LLM rezumă rezultatele cu citate din surse +- Adaugă descoperirile de cercetare la nota curentă + +### 4. **Traducere Multilingvă** +- Traduce selecții sau întregi note +- Sprijină peste 21 limbă UI +- Configurație independentă a limbii de ieșire +- Suport pentru traducere în loturi + +### 5. **Generare de diagrame** +- **Mermaid**: Diagrame de flux, secvențe, clase, stări, ER, Gantt +- **JSON Canvas**: Layout-uri native Obsidian +- **Vega-Lite**: Grafice de date, serii temporale, grafice de dispersie +- **HTML / HTML editabil/SVG**: Artefacte de figură autonome cu anotații semantice +- **Draw.io / limitele artefactului Drawnix**: Căi de export destinate administratorilor din același model semantic de figură +- **Planul de dezvoltare pentru diagramele de circuite**: Suportul circuitikz/TikZJax este proiectat pe baza referințelor goldene, prompturilor restrânse, feedback-ului de renderizare și validării topologiei/layoutului, în loc de TikZ neconstrâns și brut +- **Diagnosticuri de previsualizare**: Artefactele de renderizare pot afișa diagnosticuri privind compilarea/renderizarea, iar sursele non-inline pot fi inspectate fără a fi necesar un runtime LaTeX pe partea plugin-ului +- Corectare automată a sintaxei pentru erorile Mermaid + +### 6. **Fluxuri de lucru cu un clic** +- Conectează mai multe acțiuni în butoane de bara laterală +- Definiție a fluxului de lucru pe baza DSL +- Exemplu: `add-links > extract-concepts > research > diagram` + +## Cine ar trebui să folosească Notemd? + +✅ **Cercetătorii** care citesc articole și creează recenzii literare +✅ **Studenții** care organizează notele de studiu și creează hărți conceptuale +✅ **Lucrătorii cu cunoștințe** care doresc ca informațiile de lectură să rămână persistente +✅ **Profesioniștii bilingvi** care au nevoie de traducere + linkuri wiki +✅ **Utilizatorii preocupați de confidențialitate** care doresc suport local LLM (Ollama) +✅ **Utilizatorii avansați** care personalizează prompturile și fluxurile de lucru + +## De ce Notemd + Obsidian? + +**Obsidian** este o bază de cunoștințe local-first, pe baza markdown. **Notemd** adaugă superputeri AI: +- Datele dumneavoastră rămân în seiful dumneavoastră (nu într-un serviciu cloud) +- Funcționează offline cu modele locale +- Gratuit și cu cod sursă deschis (licența MIT) +- Se integrează cu pluginurile Obsidian existente +- Se scală până la zeci de mii de note + +## Introducere + +1. **Instalare**: Setări → Pluginuri comunitare → Cautare → "Notemd" +2. **Configurare**: Adăugați cheia providerului LLM API dumneavoastră (sau folosiți Ollama local) +3. **Testare**: Deschideți o notă → Click dreapta → "Process file (add links)" +4. **Explorare**: Verificați bara laterală pentru fluxuri de lucru cu un clic + +👉 [Ghid de instalare](./getting-started/installation) | [Tutorial rapid de începere](./getting-started/quick-start) + +## Capacitatea de diagrame, direcția dezvoltării + +Lucrul cu diagramele Notemd se îndreaptă departe de metodologia de a cere modelului să scrie o singură șir de sintaxă și spre un pipeline stratificat: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +Implementarea actuală suportă deja Mermaid, JSON Canvas, Vega-Lite, fallback-ul HTML, HTML/SVG editabile, artefactele Draw.io XML, un subset minim al Drawnix JSON, diagnosticuri de previsualizare/fallback doar cu sursă, și un prototip offline `CircuitSpec -> circuitikz` pentru șabloanele goldene comune și a invertorilor CMOS. Diagramele de circuite reprezintă o categorie mai dificilă: circuitikz poate exprima topologia electrică precisă, dar ieșirea necontrolată a LLM produce adesea trasee nerecitabile sau LaTeX care nu se afișează. Direcția următoare este să menținem circuitikz restricționat cu șabloane de referință goldene, reguli de layout cu rețea de noduri, diagnosticuri de afișare și bucle de feedback prin captură de ecran. + +Citiți detalii în [Diagrams](./features/diagrams). + +## Arhitectură + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd comparativ cu alte pluginuri AI Obsidian + +Majoritatea pluginurilor AI Obsidian sunt orientate pe conversație (vă întrebați, IA răspunde, informațiile rămân în chat). Notemd este **orientat pe scriere**: IA procesează notele dumneavoastră și scrie rezultate structurate direct în vault-ul dumneavoastră. + +| Capacități | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| Inserare automată a linkurilor wiki | Da | Nu | Nu | Nu | +| Generare a notițelor conceptuale | Da (cu backlink-uri + eliminare a duplicatelor) | Nu | Nu | Nu | +| Generare de diagrame | Da (Mermaid, Canvas, Vega-Lite, HTML, artefacte editabile) | Nu | Nu | Nu | +| Integrare cu cercetarea web | Da (Tavily + DuckDuckGo) | Nu | Nu | Nu | +| Procesare a folderelor în lot | Da | Limitat | Nu | Limitat | +| Ruteare a modelului pe sarcină | Da (7 sarcini, modele independente) | Nu | Nu | Nu | +| Lanțuri de flux de lucru cu un clic | Da (DSL) | Nu | Nu | Nu | +| Traducere (în lot) | Da | Nu | Nu | Nu | +| Conversație cu vault | Nu | Da | Nu | Nu | +| Căutare prin similaritate semantică | Nu | Nu | Da | Nu | +| Generare pe baza de șabloane | Nu | Nu | Nu | Da | +| furnizori LLM | 36 (cloud + gateway + local) | 3-5 | 2-3 | 3-5 | +| Complet offline | Da (Ollama) | Parțial | Parțial | Parțial | + +**Când alegeți Notemd**: Doriți ca IA să creeze un graf de cunoștințe persistent — nu doar să discute despre notele dumneavoastră. + +**Când alegeți Copilot**: Doriți un asistent AI conversațional în interiorul Obsidian. + +**Când alegeți Smart Connections**: Doriți să descoperiți relațiile existente între note prin căutare semantică. + +## Filozofie + +**Notemd consideră că IA ar trebui să completeze munca umană de cunoaștere, nu să o înlocuiască.** Pluginul: +- Te menține sub control (revizuire înainte de aplicare a modificărilor) +- Păstrează contextul (toate rezultatele fac referire la sursă) +- Respectează confidențialitatea (sprijin local LLM, fără telemetrie) +- Rămâne extensibil (API deschise APIs, fluxuri de lucru personalizate) + +## Open Source + +- **Licență**: MIT +- **Sursă**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **Comunitate**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **Contribuiește**: Sunt binevenite PR-uri, consultați [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +**Următor**: [Installation →](./getting-started/installation) diff --git a/website/i18n/ro/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/ro/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..2df9280b --- /dev/null +++ b/website/i18n/ro/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Obsidian Ghid de management al cunoștințelor cu AI" +description: "Ghid complet pentru construirea unei baze de cunoștințe conectate cu AI — de la legături wiki și extracția conceptelor până la cercetare, traducere și generare de diagrame" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Obsidian Ghid de management al cunoștințelor cu AI + +<TLDR> +**Notemd transformă citirea alimentată de LLM în cunoștințe persistente: legături wiki conectează conceptele, notele conceptuale creează un grafic recuperabil, cercetarea aduce web-ul în depozitul dumneavoastră, traducerea dărâmă barierele lingvistice, diagramele fac structura vizibilă, iar fluxurile de lucru le leagă toate cu un singur clic.** Acest ghid acoperă întregul proces — de la notele brute până la o bază de cunoștințe conectată, vizuală și multilingvă. +</TLDR> + +## De ce managementul cunoștințelor cu AI? + +Notele tradiționale generează fișiere plane. Chiar și cu legături wiki manuale, majoritatea notelor rămân dezconectate. Notemd folosește LLM pentru a automatiza stratul de conectare: + +- **LLMs citesc conținutul dumneavoastră** și identifică ce este important — termeni, metode, persoane, teorii +- **Legăturile sunt inserate automat** la fiecare apariție a unui concept, nu ascunse în „vezi și“ +- **Notele conceptuale sunt generate** ca fișiere independente recuperabile +- **Cercetarea îmbogățește notele** cu context din web +- **Diagramele fac structura vizibilă** — hărți mentale, fluxare, grafice de date din același conținut + +Rezultatul: un grafic de cunoștințe care crește cu fiecare notă pe care o procesați, nu doar atunci când vă amintiți să adăugați legături. + +## Pipelineul complet + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +Fiecare pas este independent. Se poate folosi unul sau toți. Secvența ce are cel mai mare impact: **Adăugare de linkuri → Note conceptuale → Diagrame**. + +--- + +## 1. Linkuri wiki: Crearea de conexiuni explicite + +Linkurile wiki reprezintă spatele unui graf de cunoștințe. Notemd folosește un LLM pentru a: + +1. Citi conținutul notei (împărțit în bucăți pentru documentele lungi) +2. Identifica conceptele esențiale — priorizând termeni tehnici specifice față de nume generice +3. Inserează `[[wiki-links]]` la fiecare apariție +4. Suprimă sinonimele astfel încât „ML“ și „Machine Learning“ nu să creeze noduri separate + +### Când se folosește + +- **Fiecare notă cu peste 100 de cuvinte** — notele mai scurte oferă puține concepte +- **Articole de cercetare, documente tehnice, note de ședință** — bogate în termeni specifice domeniuului +- **După ce conținutul este stabil** — nu procesați în mod repetat drafturile + +### Setări cheie + +| Setare | Recomandat | De ce | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek sau GPT-4o-mini | Precizie bună la un cost scăzut | +| Suprimarea sinonimilor | Activ | Previnde nodurile duplicate | +| Fenestra de context | Paragraf | Echilibrul între precizie și cost | + +→ [Wiki-Links deep dive](/docs/features/wiki-links) + +--- + +## 2. Note conceptuale: Noduri de cunoaștere recuperabile + +Legăturile Wikipedia conectează idei în linie, însă notele de concept fac ca fiecare idee să poată fi recuperată independent. Fiecare concept primește propriul său fișier `.md`: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### Procesul de extracție + +Promptul LLM este foarte structurat: +- Normalizați la formă singulară +- Preferați concepte cu mai multe cuvinte în loc de cuvinte singure ("Dielectric Relaxation" nu "Relaxation") +- Ignorați secțiunile de referințe/bibliografie +- Outputați ca linii `CONCEPT:` pentru o analiză deterministică + +Conceptele sunt deduplicate între bucăți prin `Set<string>`. Erorile LLM din fiecare bucată nu opresc operația. + +### Backlinks + +Când este activat, fiecare notă de concept urmărește care note sursă o menționează. Panoul nativ de backlinks al Obsidian arată și conexiunile inverse. + +### Deduplare + +Motorul de deduplicare în 4 pași al Notemd detectează: +1. **Coincidențe exacte** — comparație fără a se lua în considerare majusculele și minusculele numelui fișier +2. **Forme plurielle** — "Models.md" vs "Model.md" +3. **Normalizare a simbolurilor** — "A-B.md" vs "A B.md" +4. **Conținut într-un singur cuvânt** — "ML.md" este marcat atunci când există "Machine Learning.md" + +### Setări cheie + +| Setare | Recomandat | De ce | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` sau `🧠 concepts/` | Păstrează vault-ul organizat | +| `extractConceptsAddBacklink` | Activ | Permite căutare inversă | +| `extractConceptsMinimalTemplate` | Inactiv | Model complet cu Linked From | +| Model pe sarcină | DeepSeek | Extracția de concepte nu necesită modele costisitoare | +| Suprimarea sinonimilor | Activ | Aceeași setare afectează atât linkarea cât și extracția | + +→ [Concept Notes deep dive](/docs/features/concept-notes) + +--- + +## 3. Cercetare: Integrarea Web-ului + +Notemd integrează căutarea pe Web în fluxul dumneavoastră de lucru de note-tare: + +1. **Construcția interogării** — titlul sau selecția notei devine o interogare de căutare +2. **Căutarea pe Web** — Tavily (recomandat, cheie API necesară) sau DuckDuckGo (gratuit, fără cheie) +3. **Sumarizarea LLM** — rezultatele căutării sunt condenseate într-un rezumat relevant +4. **Adăugare în nota** — rezumatul este adăugat la poziția cursorului sau ca o secțiune nouă + +### Când să fi se folosit + +- Înainte de a procesa un subiect nou — obțineți mai întâi contextul web +- Când o notă conceptuală necesită îmbogățire — cercetați apoi adăugați linkuri +- Pentru revizuii literare — efectuați cercetări în lot pe un folder de note + +### Setări cheie + +| Setare | Recomandate | De ce | +|---------|-----------|-----| +| `researchProvider` | GPT-4o sau Claude | Cercetările necesită o rezumare de calitate mai ridicată | +| Serviciu de căutare | Tavily | Relevanță mai bună, adâncime configurabilă | +| `maxResearchContentTokens` | 4000 | Echilibru între adâncime și cost | + +→ [Research deep dive](/docs/features/research) + +--- + +## 4. Traducere: Înfrângerea barierelor lingvistice + +Notemd traduce notele folosind LLM configurat de tine — nu este o soluție de traducere dedicată API. Acest lucru înseamnă: + +- **Traduceri conștiente de context** — LLM înțelege întregul document, nu doar propoziția câte propoziție +- **Gestionarea termenilor tehnici** — „gradient descent“ rămâne „梯度下降“, nu „坡度向下" +- **Suport pentru loturi** — tradu un întreg folder de note într-o singură operație +- **Model specific pentru fiecare sarcină** — folosește Gemini Flash pentru traducere (rapid, ieftin, multilingvist) + +### Suport lingvistic + +Notemd însuși suportă 21 de limbaje UI. Limba țintă a traduceriilor poate fi configurată pentru fiecare sarcină. Perechi comune: EN↔ZH, EN↔JA, EN↔KO, EN↔DE, EN↔FR, EN↔ES. + +→ [Analiză detaliată a traducerii](/docs/features/translation) + +--- + +## 5. Diagrame: Făcând structura vizibilă + +Pipeline-ul de diagrame al Notemd este bazat pe specificații: LLM generează un `DiagramSpec` JSON structurat, apoi adapterii îl traduc în formatul țintă. Acest lucru oferă rezultate mai fiabile decât a solicita de la LLM sintaxa brută Mermaid. + +### Detectarea intenției + +Notemd inferă cel mai bun tip de diagramă din conținut: + +- **Tabele cu numere** → grafic de date (Vega-Lite) +- **Vocabularul client/server** → diagramă de secvență (Mermaid) +- **Entitate/cheie principală** → diagramă ER (Mermaid) +- **Pas/flux de proces** → fluxogramă (Mermaid) +- **Cuvinte cheie ale hărții conceptuale** → JSON Canvas (Obsidian nativ) +- **Valoare implicită** → hartă mentală (Mermaid) + +### Lanțul de renderizare + +Țintă principală → fallback → fallback → HTML. Dacă sintaxa Mermaid eșuează, se încerce din nou o dată cu contextul erorii către LLM, apoi se recurge la o diagramă minimală. + +### Setări cheie + +| Setare | Recomandat | De ce | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | Activ | Calitate mai bună prin specificații în primul rând | +| `experimentalDiagramCompatibilityMode` | `best-fit` | Țintă nativă pentru fiecare intenție | +| `summarizeToMermaidProvider` | GPT-4o sau Claude | Specificațiile diagramelor necesită raționament spațial | +| `autoMermaidFixAfterGenerate` | Activat | Prinde automat erorile de sintaxă LLM | +| Amplificare a cunoștințelor locale | Activat pentru domenii specifice | Îmbunătățește precizia cu contextul vault | + +→ [Diagrams deep dive](/docs/features/diagrams) + +--- + +## 6. Fluxuri de lucru: Automatizare cu un clic + +Fluxurile de lucru leagă mai multe sarcini într-un singur buton din bara laterală. Formatul DSL este: + +``` +task1 | task2 | task3 +``` + +Exemplu: `addLinks | extractConcepts | generateDiagram` — procesează o notă din text brut într-un nod de cunoaștere vizual, complet conectat, cu doar un clic. + +### Fluxuri de lucru recomandate + +| Flux de lucru | Lanț | Caz de utilizare | +|----------|-------|----------| +| Procesul complet | `addLinks \| extractConcepts \| generateDiagram` | Note noi | +| Cercetare întâi | `research \| addLinks` | Subiecte necunoscute | +| Polyglot | `translate \| addLinks` | Note multilingve | +| Doar diagramă | `generateDiagram` | Vizualizare rapidă | + +→ [Analiză aflușată a fluxurilor de lucru](/docs/features/workflows) + +--- + +## 7. LLM Furnizori: 36 opțiuni, de la cloud la local + +Notemd suportă 36 de furnizori în 4 tipuri de transport. Grupuri de chei: + +- **Cloud internațional**: OpenAI, Anthropic, Google, Mistral, xAI +- **Cloud China**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **Gateways**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **Local**: Ollama, LMStudio, OVMS — fără cheie API, nu există date care părăsesc mașina dumneavoastră + +### Strategia modelului pe sarcină + +Cea mai eficientă configurare folosește modele ieftine pentru sarcini simple și modele puternice pentru cele complexe: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [LLM Prezentare generală a furnizorilor](/docs/providers/overview) + +--- + +## Lista de verificare pentru începere + +1. **Instalați Notemd** — [Community Plugins](/docs/getting-started/installation) (recomandat) sau manual +2. **Configurați un furnizor** — DeepSeek (cel mai ușor), OpenAI, sau Ollama (gratuit) +3. **Procesați prima nota** — clic dreapta → „Process file (add links)“ +4. **Setează folderul concept** — Setări → Notemd → Rezultat → Folderul Concept +5. **Extrage concepte** — rulează „Extract concepts” pe aceeași notă +6. **Generează un diagram** — rulează „Generate diagram” pentru a vizualiza conexiunile +7. **Creează un flux de lucru** — conectează cele de mai sus într-un buton cu un clic + +## Configurații recomandate + +### Student (Budget) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### Researcher (Quality) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### Privacy-First (Local Only) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### Bilingual (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## Patternuri comune + +### Pattern: Procesarea unei lucrări de cercetare + +1. Importează conținutul PDF (sau lipiți-l) +2. **Cercetare** — obține contextul web despre subiect +3. **Adăugare de linkuri** — identificare și legare a conceptelor cheie +4. **Extragere de concepte** — creare de note independente +5. **Generare diagramă** — vizualizare a structurii lucrării + +### Model: Îmbogățire zilnică a notei + +1. Scrie nota zilnică +2. **Adăugare de linkuri** — conectează ideile de astăzi cu conceptele existente +3. Notele de concept se actualizează automat cu backlink-uri + +### Model: Revizuire literară + +1. Creează un folder cu lucrări/noti +2. **Adăugare în lot a linkurilor** — procesare a întregului folder +3. **Deduplare a conceptelor** — curățare a notele aproape duplicate +4. **Generare diagramă** — hartă mentală a întregii literaturi + +--- + +*Notemd este cu sursă deschisă (MIT) și funcționează cu Obsidian 0.15.0+ pe toate platformele. [Instala acum](/docs/getting-started/installation) sau [vizualizează pe GitHub](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/ro/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/ro/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..cd70794a --- /dev/null +++ b/website/i18n/ro/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "Configura Anthropic Claude" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Providerul Anthropic + +<TLDR> +**Anthropic utilizează transportul nativ Messages API, nu transportul compatibil cu OpenAI.** Presetul curent este setat în mod implicit pe `claude-3-5-sonnet-20240620`, `https://api.anthropic.com` și `temperature: 0.5`. Tratează-l ca o suprafață de protocol separată atunci când depanarezi. + +Acesta face parte din [Obsidian Ghidul de gestionare a cunoștințelor AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Configurare + +Crea o cheie Anthropic API, adaugă un profil de provider `Anthropic` și lăsa Base URL la endpointul nativ, cu excepția cazului în care direcționezi printr-un profil de gateway dedicat. Alege ID-ul modelului Claude pe care dorești să-l folosești în câmpul model; valoarea implicită menține stabilă linia de bază a produsului existent. + +Anthropic este un candidat bun pentru sumarizare de înaltă calitate, sinteză a cercetărilor și extracție a conceptelor. Dacă îl combinzi cu provideri mai ieftini, setează-l doar pe sarcinile care beneficiază de calitatea sa de rezultat. + +## Endpoint și autentificare + +| Câmp | Presetul curent | +|-------|----------------| +| Transport | `anthropic` | +| Cheia API | Requerit | +| Base URL | `https://api.anthropic.com` | +| Modelul implicit | `claude-3-5-sonnet-20240620` | +| Temperature | `0.5` | +| Test de conectare | Doar chat | + +Momentul de rulare trimite cereri la `/v1/messages` cu `x-api-key` și `anthropic-version: 2023-06-01`. Nu configurați un endpoint de tip OpenAI-style `/v1/chat/completions` în cadrul acestui preset; folosiți în schimb un preset de gateway compatibil cu OpenAI. + +## Descoperirea modelelor + +Anthropic utilizează modul de descoperire `anthropic-models` în registruul furnizorilor. Dacă cheia sau contul dumneavoastră nu poate lista modele, păstrați o ID cunoscută a unei modele în profil și validați prin testul de conectare. + +Transportul nu este interschimbabil cu furnizorii compatibili cu OpenAI. O model Claude rutată prin OpenRouter, LiteLLM sau un alt gateway aparține acelui profil de gateway, nu în profilul nativ Anthropic. + +## Dezvoltarea de soluții + +- `401` sau `403`: verificați domeniul cheii, accesul la spațiul de lucru, facturarea și dacă cheia aparține spațiului de lucru Anthropic așteptat. +- `404`: Basea URL este greșită sau ID-ul modelei selectate nu este disponibil pentru cont. +- ID-urile modelelor Claude de tip gateway eșuează: mutați profilul către furnizorul gateway corespunzător, deoarece Anthropic nativ așteaptă nume de modele native. +- Cererile lungi eșuează târziu: reduceți dimensiunea outputului modelului pe sarcină sau folosiți o model cu un limit superior cunoscut mai mare pentru tokenuri de output. + +## Când să fiți utilizatori + +Folosiți Anthropic atunci când calitatea în sinteză, notele de cercetare sau scrierea structurată sunt mai importante decât costul brut. Nu îl folosiți ca soluție generică compatibilă cu OpenAI; caracterul separat al transportului este esențial, iar amestecarea protocoalelor face diagnosticul mai dificil. + +--- + +## Următoarele pași + +- [LLM Furnizori](/docs/providers/overview) -- Configurație completă, modele pentru fiecare sarcină și logică de reîncercare +- [Rezolvarea problemelor](/docs/advanced/troubleshooting) -- Corectare a erorilor 401/403 și a erorilor de conexiune diff --git a/website/i18n/ro/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/ro/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..bed4af74 --- /dev/null +++ b/website/i18n/ro/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "furnizorii din China" +description: "Configurați Qwen, DeepSeek, GLM etc." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# furnizorii din China + +<TLDR> +**Notemd suportă furnizorii din regiunea China și cu origine din China prin endpoint-uri în mare parte compatibile cu OpenAI.** Setul actual include DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, MiniMax, Baidu Qianfan, SiliconFlow, Huawei Cloud MaaS și Z AI. Valorile sunt acces regional și controlul costurilor; riscurile sunt denumirile modelelor specifice furnizorului și mecanismele de blocare a conturilor. + +Acesta face parte din [Obsidian Ghidul de gestionare a cunoștințelor AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Configurare + +Creați contul furnizorului, generați o cheie API, apoi alegeți presetul corespunzător de furnizor Notemd în loc de a folosi un profil generic OpenAI. Presetul include valorile default pentru Base URL, model, modul de test API, comportamentul de descoperire a modelelor și orice câmpuri specifice furnizorului UI. + +Folosiți selectarea modelelor în funcție de sarcină în mod intensiv aici. De exemplu, păstrați DeepSeek sau GLM în fluxurile de lucru cu multe calcule, folosiți Qwen sau Moonshot pentru activități largi în limba chineză și direcționați sarcinile de programare către Qwen Code atunci când acel cont oferă modele pentru programatori. + +## Endpoint și autentificare + +| Furnizor | Modelul implicit | Base URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (eșantionul endpointului este obligatoriu) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**Notă:** Doubao necesită un eșantion de endpoint Ark (format: `ep-xxxxxxxx-xxxx-xxxx`) în loc de un nume standard al modelei. + +Majoritatea acestor furnizori folosesc runtime-ul comun compatibil cu OpenAI, dar semantica conturilor și a modelelor lor diferă. Păstrați valorile default pentru Base URL dacă nu ați verificat endpointul alternativ al contului. + +## Descoperirea modelelor + +DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan și SiliconFlow folosesc descoperirea modelelor compatibilă cu OpenAI atunci când furnizorul permite listarea. Huawei Cloud MaaS folosește modul `huaweicloud-modelarts-models` deoarece metadatele de implementare ModelArts nu sunt identice cu o listă generică `/v1/models`. + +Nu considerați eșecul descoperirii drept dovadă că chat-ul este imposibil. Mai mulți furnizori permit chatul în timp ce limitează permisiunile de listare a modelelor. În acest caz, păstrați un ID explicit al modelei în profil și validați cu testul de conexiune. + +## Dezvoltarea de soluții + +- Autentificarea are succes, dar chat-ul eșuează: numele modelului ar putea fi în afara drepturilor sau regiunii contului. +- Doubao eșuează cu un nume normal al modelului: utilizați ID-ul endpoint-ului Ark în câmpul model atunci când implementarea dumneavoastră este necesară. +- Răspunsurile de raționament sunt trunchiate: verificați limita maximă de tokeni de ieșire specifică furnizorului și setările Notemd de tokeni max sensibile la model. +- Rețelele regionale variază: utilizați endpoint-ul regiunii China al furnizorului atunci când mașina vault se află în China; utilizați doar endpointul internațional atunci când contul și calea de rețea sunt ambele valide. + +## Când să fiți utilizatori + +Utilizați furnizorii din China atunci când latența regională, accesul la plăți/conturi, calitatea în limba chineză sau costul reprezintă principala restricție. Preferați OpenAI, Anthropic, Google directe sau furnizorii locali atunci când aveți nevoie de o graniță de protocol mai simplă sau o consistență mai mare în depanarea între furnizori. + +--- + +## Următoarele pași + +- [LLM Furnizori](/docs/providers/overview) -- Configurație completă, modele pentru fiecare sarcină și logică de reîncercare +- [Depanare](/docs/advanced/troubleshooting) -- Rezolvați erorile de conectivitate regională și autentificare diff --git a/website/i18n/ro/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/ro/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..8a154938 --- /dev/null +++ b/website/i18n/ro/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "Configura Google Gemini" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Providerul Google + +<TLDR> +**Google utilizează transportul nativ de limbaj generativ Gemini API.** Presetul curent este setat în mod implicit pe `gemini-2.0-flash-exp`, `https://generativelanguage.googleapis.com/v1` și `temperature: 0.5`. Acesta nu este un profil compatibil cu OpenAI. + +Acesta face parte din [Obsidian Ghidul de gestionare a cunoștințelor AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Configurare + +Crea o cheie Cloud API de tip Google AI Studio sau Google cu acces la Gemini, adaugă un profil de furnizor `Google` și păstrează baza nativă de limbaj generativ URL. Folosește profilul Gemini Flash implicit pentru traduceri rapide și fluxuri de lucru extinse, apoi suprascrie modelele pe fiecare sarcină atunci când ai nevoie de un model Gemini mai puternic. + +Evită plasarea ID-urilor modelelor Gemini într-un profil compatibil cu OpenAI decât dacă folosești explicit o gateway care expune Gemini prin intermediul unui API compatibil cu OpenAI. + +## Endpoint și autentificare + +| Câmp | Presetul curent | +|-------|----------------| +| Transport | `google` | +| Cheia API | Requerit | +| Base URL | `https://generativelanguage.googleapis.com/v1` | +| Modelul implicit | `gemini-2.0-flash-exp` | +| Temperature | `0.5` | +| Test de conectare | Doar chat | + +La execuție se apelează `/models/{model}:generateContent?key={apiKey}`. Cheia este transmisă ca parametru de interogare, deoarece așa este conectat endpoint-ul nativ Gemini în plugin. + +## Descoperirea modelelor + +Google folosește modul de descoperire `google-models`. Descoperirea ar trebui să returneze modelele Gemini disponibile pentru cheia API; dacă selectorul este gol, testează cheia cu aceeași bază URL și confirmă că familia de modele este activată pentru acel cont. + +Limitările cunoscute ale token-urilor de ieșire sunt conștiente de model în registruul furnizorilor. Dacă o traducere lungă sau o explicație a unui diagram este trunchiată, selectează un model Gemini cu capacitate mai mare de ieșire sau reduce dimensiunea solicitată a rezultatului. + +## Dezvoltarea de soluții + +- `400`: ID-ul modelului de obicei nu se potrivește cu rutea nativă Gemini sau cererea depășește forma suportată de model. +- `401` sau `403`: verifică restricțiile cheii, activarea proiectului/API și dacă cheia poate accesa Gemini. +- `404`: ID-ul modelului nu este disponibil la versiunea configurată API. +- Exemplele de gateway eșuează în acest profil: folosește presetul gateway în loc de furnizorul nativ Google. + +## Când să fiți utilizatori + +Folosește Google pentru traduceri rapide, curățarea volumelor mari de note și fluxuri de lucru unde echilibrul cost/performanță al Gemini este mai bun decât cel al unui OpenAI sau Anthropic direct. Preferă alt furnizor pentru fluxuri de lucru care necesită gestionare a modelelor de raționament compatibile cu OpenAI. + +--- + +## Următoarele pași + +- [LLM Furnizori](/docs/providers/overview) -- Configurație completă, modele pentru fiecare sarcină și logică de reîncercare +- [Traducerea](/docs/features/translation) -- Gemini Flash este recomandat pentru sarcini de traducere cu volum mare diff --git a/website/i18n/ro/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/ro/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..ff8088ad --- /dev/null +++ b/website/i18n/ro/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "Modele locale" +description: "Configurați Ollama și LLM-urile locale" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# Modele locale + +<TLDR> +**Furnizorii locali nu stochează conținutul note-urilor pe APIs găzduite.** Calea locală actuală acoperă Ollama cu transportul nativ `ollama` și LMStudio prin transportul compatibil cu OpenAI. Nu este necesar niciun cheie API pentru niciuna dintre căile acestea, dar serverul local și modelul trebuie deja să ruleze. + +Acesta face parte din [Obsidian Ghidul de gestionare a cunoștințelor AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Configurare + +Pentru Ollama, instalați Ollama, trageți modelul dorit, porniți serverul și adăugați un profil de furnizor `Ollama` în Notemd. Pentru LMStudio, încărcați un model pe serverul local al LM Studio și adăugați un profil de furnizor `LMStudio`. + +Modelele locale sunt dependențe operaționale, nu doar setări. Notemd poate apela doar ceea ce procesul local expune, așa că verificați modelul local din afara Obsidian înainte de a depana pluginul. + +## Endpoint și autentificare + +| Furnizor | Base URL | Modelul implicit | API Cheie | Note | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | Nu este necesar | NDJSON streaming; descoperirea modelului prin `/api/tags` | +| LMStudio | `localhost:1234/v1` | `local-model` | Nu este necesar | Trimite `"EMPTY"` ca token de poartă; compatibil cu OpenAI | + +Ollama utilizează calea nativă `/chat` de sub Base-ul său URL. LMStudio urmează rutina compatibilă cu OpenAI, specificată de `chat/completions`, și așteaptă un model care este încărcat pe serverul local. + +## Descoperirea modelelor + +Ollama utilizează modul de descoperire `ollama-tags` și afișează etichetele extrase local. LMStudio folosește descoperirea modelurilor compatibile cu OpenAI atunci când serverul său expune `/v1/models`. + +Dacă descoperirea nu returnează nimic, este de obicei o problemă legată de starea serverului local: modelul nu a fost extrat, nu a fost încărcat, sau serverul este conectat la un host/port diferit față de cel specificat în profil. + +## Dezvoltarea de soluții + +- Refuz de conexiune: porniți Ollama sau LM Studio și confirmați portul configurat. +- Modelul nu a fost găsit: trageți eticheta Ollama sau încărcați modelul LM Studio înainte de testare. +- Rezultate lente: reduceți dimensiunea contextului, folosiți un model local mai mic sau direcționați sarcini grele către un furnizor găzduit. +- Răspunsuri goale sau malformate: confirmați că profilul furnizorului selectat corespunde protocolului serverului local; Ollama și LMStudio nu pot fi interschimbate. + +## Când să fiți utilizatori + +Folosiți furnizori locali pentru seifuri private, lucru offline sau sarcini repetitive ieftine. Nu presupuneți că varianta locală este automat mai bună pentru sinteză de cercetare sau raționament lung; calitatea modelului și limitele hardware sunt factorii de echilibru. + +--- + +## Următoarele pași + +- [LLM Furnizori](/docs/providers/overview) -- Configurație completă și setare a modelului pentru fiecare sarcină +- [Dezolvarea problemelor](/docs/advanced/troubleshooting) -- Corectați erorile de refuz de conexiune atunci când serverul local nu este rulat diff --git a/website/i18n/ro/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/ro/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..7e80bce7 --- /dev/null +++ b/website/i18n/ro/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "Configura OpenAI (GPT-4, GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# Providerul OpenAI + +<TLDR> +**OpenAI utilizează transportul compatibil cu OpenAI.** Setarea predefinită actuală este `gpt-4o`, `https://api.openai.com/v1`, `temperature: 0.5` și testul de conectare `models-then-chat`. Folosiți această pagină atunci când aveți nevoie de semantica exactă a câmpurilor; folosiți prezentarea [LLM Providers](/docs/providers/overview) pentru selecția la nivel de categorie. + +Acesta face parte din [Obsidian Ghidul de gestionare a cunoștințelor AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Configurare + +Creați o cheie OpenAI API, adăugați un profil de furnizor `OpenAI` în setările Notemd și păstrați valorile predefinite ale Base URL, cu excepția cazului în care intenționat vă orientați spre o gateway compatibilă cu OpenAI. Câmpul model poate rămâne la `gpt-4o` pentru lucrări generale sau poate fi înlocuit cu un alt ID de model OpenAI pe care contul dumneavoastră îl poate apela. + +Folosiți modele specifice sarcinilor pentru controlul costurilor: păstrați modele mai puternice pentru cercetare, extracție a conceptelor și restructurare a textelor lungi; folosiți modele mai ieftine sau mai rapide pentru traducere, sugestii de linkuri și rezumate scurte. + +## Endpoint și autentificare + +| Câmp | Presetul curent | +|-------|----------------| +| Transport | `openai-compatible` | +| Cheia API | Requerit | +| Base URL | `https://api.openai.com/v1` | +| Modelul implicit | `gpt-4o` | +| Temperature | `0.5` | +| Test de conectare | `/models`, apoi `/chat/completions` | + +Notemd normalizează bazele URL compatibile cu OpenAI înainte de a adăuga `chat/completions` sau `models`. Nu includeți un `/chat/completions` la sfârșit în Base URL; acest lucru creează o cale dublată. + +## Descoperirea modelelor + +OpenAI folosește calea generică de descoperire a modelurilor compatibile cu OpenAI. Setările UI întreabă mai întâi `/v1/models`, apoi validează modelul selectat printr-o cerere ușoară de chat. Dacă descoperirea eșuează dar chatul funcționează, verificați dacă cheia dumneavoastră are permisiunea model-list sau dacă o gateway blochează listarea modelurilor. + +Modelele de raționament sunt tratate ca un caz de limită al protocolului: Notemd mergechează conținutul sistemului și al promptului utilizatorului pentru ID-urile de raționament OpenAI care resping un rol separat `system`, și expune doar `reasoningEffort` acolo unde definiția furnizorului o suportă. + +## Dezvoltarea de soluții + +- `401` sau `403`: verificați cheia, accesul la proiect, starea facturării și dacă modelul selectat este activat pentru cheie. +- `404` în chat: Base URL este de obicei greșită sau include deja `/chat/completions`. +- Modelul apare în documentație dar nu în selector: accesul model-list și accesul chat sunt puncte de eșec separate; testați ID-ul exact al modelului manual în profilul furnizorului. +- Modelul de raționament respinge mesajele: folosiți un ID de model acoperit de calea de gestionare a raționamentului OpenAI sau treceti la un model de chat fără funcție de raționament. + +## Când să fiți utilizatori + +Folosiți OpenAI atunci când doriți calea implicită găzduită cea mai previzibilă, atunci când descoperirea prin `/v1/models` este importantă, sau atunci când un flux de lucru depinde de semantica modelului de raționament OpenAI. Preferați un gateway sau un furnizor local atunci când rutarea, confidențialitatea sau controlul costurilor sunt mai importante decât comportamentul direct OpenAI API. + +--- + +## Următoarele pași + +- [LLM Furnizori](/docs/providers/overview) -- Configurație completă, modele pentru fiecare sarcină și logică de reîncercare +- [Rezolvare a problemelor](/docs/advanced/troubleshooting) -- Corectați erorile 401/403 și problemele de rate-limiting diff --git a/website/i18n/ro/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/ro/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..7f07ebd8 --- /dev/null +++ b/website/i18n/ro/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "Provezoare LLM" +description: "Configurați 36 de provezoare LLM – cloud, gateway și local – cu selecție a modelului pe sarcină" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Provezoare LLM + +<TLDR> +**Notemd susține 36 de provezoare LLM în 4 tipuri de transport.** Toate apelurile API folosesc HTTP brut (fără SDK-uri) cu reîncercări automate, fallback de transport și cacheare a răspunsurilor pe 5 minute. Seleția modelului pe sarcină vă permite să utilizați modele ieftine pentru extracția conceptelor și modele puternice pentru cercetare. Nu este necesară nicio cheie API pentru provezoarele locale (Ollama, LMStudio). +</TLDR> + +Acesta face parte din [Obsidian Ghidul de gestionare a cunoștințelor AI](/docs/pillar-ai-knowledge). + +## Categorie de provezoare + +### Provezoare cloud + +| Furnizor | Baza implicită URL | Modelul implicit | Temperature | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### Provezoare gateway/proxy + +| Furnizor | Baza implicită URL | Modelul implicit | Note | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | Adaugă en-titlurile `HTTP-Referer` + `X-Title` | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | Adaugă en-titlul `X-GitHub-Api-Version` | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | Adaugă en-titlul `APP-Code` | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | Cheie opționala API | +| **New API** | `localhost:3000/v1` | `gpt-4.1` | Cheie opționala API | +| **OpenAI Compatible** | (configurat de utilizator) | `your-model-id` | Endpoint personalizat | + +### furnizorii din China + +| Furnizor | Base implicită URL | Modelul implicit | Note | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | Focusat pe programare | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (eșantionul endpointului este obligatoriu) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | Endpoint Zhipu, China | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | Zhipu, endpoint internațional | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | Platformă de găzduire a modelelor | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao necesită un ID de endpoint Ark** (format: `ep-xxxxxxxx-xxxx-xxxx`). Placeholder-ul implicit trebuie înlocuit. + +### furnizori locali + +| Furnizor | Base implicită URL | Modelul implicit | Note | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | Fără cheie API. Streamare NDJSON. Descoperire a modelelor prin `/api/tags` | +| **LMStudio** | `localhost:1234/v1` | `local-model` | Trimite `"EMPTY"` ca token de portare. Descoperire compatibilă cu OpenAI | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (configurat de utilizator) | `gpt-4o` | Numele de implementare în URL. Înaltarea `api-key` | + +## Selectare a modelului pe sarcină + +Notemd suportă un furnizor și o model independentă pentru fiecare sarcină. Activează cu `useMultiModelSettings: true`. + +### Sarcini disponibile + +| Sarcină | Cheia de setări | Furnizor implicit | +|------|-------------|-----------------| +| Adăugare de linkuri (insertare de link wiki) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| Cercetare (căutare pe web + rezumat) | `researchProvider` / `researchModel` | DeepSeek | +| Generare din titlu | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| Traducere | `translateProvider` / `translateModel` | DeepSeek | +| Generare de diagrame | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| Extracție de concepte | `extractConceptsProvider` / `Model` | DeepSeek | +| Extracție de text original | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### Ordine de rezolvare + +1. Dacă `useMultiModelSettings` este activ → se folosește furnizorul și modelul specific pentru sarcină +2. Dacă suprascrierea modelului pentru sarcină este golă → se revine la modelul implicit al furnizorului +3. Dacă furnizorul pentru sarcină este invalid → se revine la `activeProvider` global +4. Dacă `useMultiModelSettings` este dezactivat → toate sarcinile folosesc `activeProvider` global + +### Configurații recomandate + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## Arhitectura de apel a API + +### Straturile de transport + +1. **Obsidian `requestUrl`** — principal (în integrare, funcționează pe toate platformele) +2. **Desktop HTTP** — module Node.js `http`/`https` (streaming + cereri lungi) +3. **Web `fetch`** — soluție de rezervă atunci când modulele Node.js nu sunt disponibile + +Pluginul cascadează automat între straturile de transport în cazul erorilor temporare de rețea. + +### Logică de repetare + +- **Mod normal** (`enableStableApiCall: false`): O tentativă singură. În caz de eșec temporar, se face o escaladare automată la o repetare stabilă. +- **Mod de repetare stabilă** (`enableStableApiCall: true`): Până la 4 tentative (1 + 3 repetări) cu intervale de 5 secunde. +- **Erorile temporare care declanșează repetare**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **Nerepetabile**: HTTP 400, 401, 403, 404 + +### Cachearea răspunsurilor + +Cache LRU în memorie pe 5 minute, indexată după provider + model + temperatură + prompt + conținut. Cererile identice ulterioare în decurs de 5 minute returnează instantaneu rezultatele din cache. + +### Gestionarea modelelor de raționament + +Modelele care nu suportă rolul `system` (DeepSeek R1, OpenAI o1/o3/o4/gpt-5) au automat prompturile sistemului + ale utilizatorului combinate într-un singur mesaj de utilizator. + +Specific pentru DeepSeek: `thinkingEnabled` adaugă `{ thinking: { type: 'enabled' } }` la cerere. `reasoningEffort` (scăzut/mediu/alt) este transmis ca `reasoning_effort`. Verifică că numărul maxim de tokeni de ieșire este ≥ 8000 atunci când este activată gândirea. + +### Estimarea tokenilor + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — heuristică de 4 caractere pe token. Folosită pentru a respecta `maxResearchContentTokens` înainte de trimitere către LLM. + +Nu este implementată urmărire a costurilor. + +## Descoperirea modelelor + +| Mod | Provideri | Endpoint | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | Lista modelelor API | +| `anthropic-models` | Anthropic | Lista modelelor API | +| `openai-compatible-models` | DeepSeek, Qwen, Mistral, etc. | `/v1/models` | +| `openrouter-models` | OpenRouter | Lista modelelor API | +| `github-models` | GitHub Models | Inferența API | +| `none` | Azure OpenAI | Desactivat (se necesită numele de implementare) | + +## Start rapid + +1. **Alegeți un furnizor** — DeepSeek (China), OpenAI (Internațional), sau Ollama (Local/Free) +2. **Introduceți cheia API** — Setări → Notemd → Furnizor → Cheie API +3. **Testați conexiunea** — Faceți clic pe butonul de test +4. **Opțional: Modele pe sarcină** — Activați `useMultiModelSettings` și configurați-le individual + +Pentru Ollama: nu este necesară cheia API. Asigurați-vă doar că `ollama serve` este în funcțiune. + +--- + +## Următoarele pași + +- 📝 [Notițe conceptuale](/docs/features/concept-notes) — Folosește modelul de extracție pe sarcină +- 🎨 [Diagrame](/docs/features/diagrams) — Folosește modelul de diagramă pe sarcină +- 🔍 [Cercetare](/docs/features/research) — Folosește model specific pentru cercetare +- ⚙️ [Configurație](/docs/getting-started/configuration) — Referință completă a setărilor diff --git a/website/i18n/ro/docusaurus-theme-classic/footer.json b/website/i18n/ro/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/ro/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/ro/docusaurus-theme-classic/navbar.json b/website/i18n/ro/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/ro/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/ru/code.json b/website/i18n/ru/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/ru/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current.json b/website/i18n/ru/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..ec818df7 --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "Пакетная обработка" +description: "Эффективная обработка нескольких файлов" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# Пакетная обработка + +<TLDR> +**Notemd выполняет обработку всих папок за один шаг с возможностью настройки параллельности и контроля за перезаписью.** Щелкните правой кнопкой мыши по папке, чтобы пакетно добавить ссылки на wiki, извлечь концепции, провести исследование или перевести все записи внутри неё. Ограничения параллельности предотвращают ошибки ограничения скорости API. Прогресс отображается по каждому файлу. Поведение при перезаписи настраивается: пропустить существующие данные, добавить их или заменить. Ошибки при обработке файлов записываются без прерывания пакетной обработки. + +Это часть [Obsidian Руководства по управлению знаниями с ИИ](/docs/pillar-ai-knowledge). +</TLDR> + +## Обзор + +Пакетная обработка превращает папку с записями в одну операцию. Вместо того чтобы открывать каждую запись и выполнять команды отдельно, достаточно щелкнуть правой кнопкой мыши по папке и выбрать задачу. Notemd проходит по каждому `.md` файлу, применяет выбранную операцию и отображает прогресс в реальном времени. + +Эта функция крайне важна для извлечения знаний из всего хранилища. Например, после импорта десятков PDF сначала выполняется пакетное добавление ссылок, а затем пакетное извлечение концепций, что позволяет создать граф знаний за несколько минут, а не часов. + +## Как это работает + +### Модель пакетной выполнения + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **Сбор файлов** -- Notemd рекурсивно сканирует целевую папку (или только верхний уровень в зависимости от настроек) и собирает все `.md` файлы. +2. **Разделение на параллельные группы** -- Файлы делятся на группы в соответствии с настройками `batchConcurrency`. Каждая группа обрабатывается параллельно; группы могут обрабатываться последовательно. +3. **Выполнение** -- Каждый файл обрабатывается с использованием той же логики, что и команда для одного файла. Соблюдаются настройки поставщика и модели для каждой задачи. +4. **Отчёт о прогрессе** -- После завершения обработки каждого файла появляется уведомление, показывающее прогресс `N / Total`. +5. **Обработка ошибок** -- Если файл обрабатывается с ошибкой (API ошибка, тайм-аут сети и т.д.), ошибка записывается, а пакетная обработка продолжается. В итоговом отчёте указываются все необработанные файлы. +6. **Завершение** -- Уведомление с итогами сообщает общее количество обработанных файлов, количестве успешных и неудачных операций. + +### Поведение перезаписи + +При обработке файла, который уже содержит wiki-ссылки, концептуальные заметки или переводы, поведение Notemd зависит от настройки перезаписи: + +| Режим | Поведение | +|------|----------| +| **Пропустить** | Существующий контент остается нетронутым. Обрабатываются только неизменённые файлы. | +| **Добавить в конец** (по умолчанию) | Новый контент добавляется в конец. Существующие wiki-ссылки, концепции или переводы сохраняются. | +| **Заменить** | Файл полностью перерабатывается. Все предыдущие изменения Notemd перезаписываются. | + +Что касается wiki-ссылок в частности: если заметка уже содержит `[[wiki-links]]`, режим **Пропустить** оставляет её без изменений, тогда как режим **Заменить** пересылает всю заметку в LLM для вставки новых ссылок. Используйте **Пропустить** для поэтапной обработки и **Заменить** для повторной обработки после обновления модели. + +### Контроль параллельности + +Настройка `batchConcurrency` ограничивает количество одновременных API вызовов. Это предотвращает ошибки ограничения скорости (HTTP 429) при обработке больших папок у провайдеров с строгими лимитами. + +| Параллельность | Рекомендуется для | Типичное влияние на ограничение скорости | +|-------------|----------------|---------------------------| +| `1` | Бесплатные тарифы, строгие поставщики | Нет (серийный номер) | +| `3` (по умолчанию) | Большинство облачных поставщиков | Низкий | +| `5` | Ollama (локально), щедрые тарифы | Нет / Низкий | +| `10` | Локальные модели с быстрым выводом | Нет | + +Если при пакетной обработке возникают ошибки 429, уменьшите одновременность до 1 или 2. + +## Конфигурация + +| Параметр | По умолчанию | Эффект | +|---------|---------|--------| +| `batchConcurrency` | `3` | Максимальное количество параллельных API вызовов во время операций с папками | +| `batchOverwriteExisting` | `false` | Записать существующий контент Notemd заново. `false` означает режим дополнения. | +| `batchSkipProcessed` | `false` | Пропустить файлы, которые уже содержат маркеры Notemd (например, ссылки на wiki) | +| `batchRecursive` | `true` | Включать подкаталоги при сканировании папки | +| `enableStableApiCall` | `false` | Включить логику повторных попыток (до 4 попыток) для каждого файла в рамках пакетной обработки | + +### Модели для отдельных задач в пакетной обработке + +Каждая операция пакета использует соответствующую модель для конкретной задачи. batch-add-links использует `addLinksProvider`, batch-research использует `researchProvider` и так далее. Это позволяет использовать дешёвые модели для операций с большим объёмом данных и сохранять дорогие модели для задач, требующих высокого качества. + +## Пример + +У вас есть папка `papers/`, в которой находится 40 импортированных заметок по исследованиям. Вы хотите добавить ссылки на wiki и извлечь концепции из всех них: + +1. Нажмите правой кнопкой мыши на папку `papers/` +2. Выберите **"Notemd: Обработка папки (добавление ссылок)"** +3. Notemd сканирует папку, находит 40 файлов `.md` и обрабатывает по 3 файла за раз (стандартная конкурентность) +4. Появляется подсказка с прогрессом: `12/40 files processed...` +5. Через примерно 3 минуты появляется подсказка с итогами: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. Повторите действие с **"Notemd: Обработка папки (извлечение концепций)"** чтобы создать записи концепций для всех 40 файлов + +Файл, обработка которого не удалась, записывается в лог. Позже можно перезапустить обработку только этого файла. + +## Советы + +- **Начните с низкой конкурентности** -- Если вы не уверены в лимитах скорости вашего провайдера, начните с `1` и постепенно увеличивайте значение. +- **Используйте режим пропуска для поэтапных обновлений** -- После первой полной партии переключитесь на `batchSkipProcessed: true`, чтобы при последующих запусках обрабатывались только новые записи. +- **Включите стабильные вызовы API** -- `enableStableApiCall: true` добавляет логику повторных попыток, позволяющую восстанавливаться после временных сетевых сбоев при длительных обработках. +- **Перезапустите после обновления модели** -- Если вы перейдете на более совершенную модель, установите `batchOverwriteExisting: true` и запустите процесс заново, чтобы получить улучшенные ссылки и концепции. + +--- + +## Следующие шаги + +- [Рабочие процессы](/docs/features/workflows) -- Связывайте задачи пакетной обработки в однокликные кнопки на боковой панели +- [Персонализированные промпты](/docs/advanced/custom-prompts) -- Настройте промпты для пакетного извлечения +- [Устранение неполадок](/docs/advanced/troubleshooting) -- Устраняйте ошибки лимитов скорости и сбои подключения во время пакетных запусков +- [LLM Провайдеры](/docs/providers/overview) -- Справочник конфигурации модели по задаче diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..af4159f2 --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "Пользовательские промпты" +description: "Настройка промптов LLM под ваши потребности" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# Пользовательские промпты + +<TLDR> +**Notemd позволяет заменить стандартный промпт LLM для каждого типа задач.** Пользовательские промпты дают возможность контролировать то, что модель будет приоритизировать: вы можете ограничить извлечение концепций определённой дисциплиной, изменить стиль связывания или скорректировать тон перевода. Переменные промпта, такие как `{{content}}` и `{{concept}}`, заменяются во время выполнения. Функция сфокусированной области обучения добавляет название вашей области исследований в начало, чтобы автоматически ограничить результаты извлечения. + +Это часть [Obsidian Руководства по управлению знаниями с ИИ](/docs/pillar-ai-knowledge). +</TLDR> + +## Обзор + +Встроенные промпты Notemd написаны для работы с общими знаниями. Они хорошо работают в разных областях, но также позволяют улучшить их под конкретную область. Пользовательские промпты позволяют указать LLM точно, как ему действовать в вашем случае — будь то извлечение только медицинской терминологии, связывание только именованных сущностей или перевод в формальном стиле. + +Пользовательские промпты не заменяют всё системное сообщение. Они заменяют или дополняют **часть инструкций, специфичную для задачи**, сохраняя при этом структурный формат вывода (например, строки `CONCEPT:`, синтаксис wiki-ссылок), от которого зависит парсинг Notemd. + +## Как это работает + +### Архитектура промпта + +Каждая задача Notemd следует одной и той же структуре промпта: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **Основное системное сообщение** — устанавливает персонаж помощника. Заменить нельзя. +2. **Сфокусированная область обучения** — добавляет `Relevant Fields: [medicine / law / computer science / ...]` в начало для ограничения объёма. Это переключатель настроек, а не прямой промпт. +3. **Пользовательский промпт задачи** — заменяет стандартные инструкции к задаче (например, какие концепции извлекать, насколько активно связывать). +4. **Формат вывода** — правила структуры (строки `CONCEPT:`, формат wiki-ссылок). Всегда добавляется Notemd для обеспечения возможности парсинга. +5. **Содержимое** — фактический текст заметки, который заменяется во время выполнения с помощью `{{content}}`. + +### Переменные промпта + +Переменные заменяются в момент выполнения. Доступные переменные различаются в зависимости от задачи: + +| Переменная | Задачи | Заменено на | +|----------|-------|---------------| +| `{{content}}` | Все | Текст заметки или выделения | +| `{{concept}}` | Шаблон концептуальной заметки | Имя извлечённой концепции | +| `{{description}}` | Шаблон концептуальной заметки | Описание концепции, сгенерированное LLM | +| `{{backlinks}}` | Шаблон концептуальной заметки | Список исходных заметок с ссылками | +| `{{date}}` | Шаблон концептуальной заметки | Текущая дата (YYYY-MM-DD) | +| `{{language}}` | Перевод | Целевой язык вывода | +| `{{source}}` | Шаблон концептуальной заметки | Имя базового файла исходной заметки | + +### Область сфокусированного обучения + +Функция сфокусированного обучения представляет собой сокращённый способ ограничения домена. Вместо того чтобы писать пользовательский промпт, в котором указывается ваша область, вы устанавливаете `focusedLearningDomain` в настройках: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +Это добавляет `Relevant Fields: [medicine]` в начало промпта для извлечения, заставляя LLM отдавать приоритет концепциям, связанным с доменом, и игнорировать общие. Этот подход проще, чем полностью пользовательский промпт, и работает во всех задачах извлечения. + +## Конфигурация + +| Параметр | По умолчанию | Эффект | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | Переопределить стандартный промпт задачи добавления ссылок | +| `customExtractConceptsPrompt` | `''` | Переопределить стандартный промпт извлечения концепций | +| `customResearchPrompt` | `''` | Переопределить стандартный промпт исследования + краткого обзора | +| `customTranslatePrompt` | `''` | Переопределить стандартный промпт перевода | +| `customDiagramPrompt` | `''` | Переопределить стандартный промпт генерации диаграмм | +| `focusedLearningDomain` | `''` | Добавить контекст дисциплины в промпты для извлечения и создания ссылок | +| `extractConceptsMinimalTemplate` | `true` | Использовать шаблон концептуальной заметки только с названием (это влияет на область применения шаблона `{{concept}}`) | +| `customConceptNoteTemplate` | `''` | Переопределить шаблон файла концептуальной заметки с полной поддержкой переменных | + +**Если поле пользовательского промпта пустое, используется встроенный стандартный промпт.** + +## Пример + +Вы — исследователь в медицине, извлекающий концепции из записей клинических испытаний. Стандартный промпт извлекает общие существительные наряду с медицинскими терминами, что засоряет вашу папку с концепциями. + +**Решение:** Установить область сфокусированного обучения и пользовательский промпт для извлечения. + +1. Установить `focusedLearningDomain` равным `medicine` +2. Установить `customExtractConceptsPrompt` как: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +Теперь, когда вы запускаете команду "Extract concepts" на клинической заметке, LLM генерирует следующее: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +В отличие от стандартного поведения, при котором могут быть извлечены нежелательные общие термины, такие как "hospital" или "month". + +## Советы + +- **Начните с конкретной области обучения** перед созданием полностью персонализированного запроса. Одно настройка покрывает 80% случаев использования. +- **Сохраняйте формат вывода** — никогда не удаляйте инструкции по формату, такие как "один на строку" или "CONCEPT: prefix", из персонализированных запросов. Парсер Notemd зависит от них. +- **Сначала протестируйте с одной заметкой** — персонализированные запросы могут оказать неожиданный эффект на объем извлечения. Проверьте их на одной заметке перед пакетной обработкой. +- **Сохраняйте запросы краткими** — слишком длинные персонализированные запросы потребляют токены и могут снизить фокус модели. + +--- + +## Следующие шаги + +- [Wiki-Links](/docs/features/wiki-links) — что будет ссылаться при настройке запроса add-links +- [Concept Notes](/docs/features/concept-notes) — шаблоны концептуальных заметок и переменная `{{concept}}` +- [Batch Processing](/docs/advanced/batch-processing) — применение персонализированных запросов ко всем папкам +- [Troubleshooting](/docs/advanced/troubleshooting) — устранение проблем, когда персонализированные запросы дают неожиданный результат diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..b73ae5e7 --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "Устранение неполадок" +description: "Распространённые проблемы и способы их решения" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Устранение неполадок + +<TLDR> +**Большинство Notemd проблем делятся на четыре категории: ключевые проблемы API, подключение к сети, ошибки аутентификации (401/403) и ограничения по скорости (429).** Встроенный тест подключения и панель диагностики позволяют быстро определить корневую причину. На этой странице описаны все распространённые сообщения об ошибках, их причины и способы устранения. По проблемам, не указанным здесь, сообщайте о них в разделе GitHub Issues вместе с результатами диагностики. + +Это часть [Obsidian Руководства по управлению знаниями с ИИ](/docs/pillar-ai-knowledge). +</TLDR> + +## Обзор + +Notemd зависит от внешних сервисов — поставщиков LLM и сервисов поиска API, поэтому большинство проблем возникает не в самом плагине. Панель диагностики в настройках предоставляет структурированный обзор последнего API запроса, включая запрос URL, статус ответа и тело ошибки. Всегда сначала проверяйте её перед дальнейшим расследованием. + +## Как это работает: Диагностика + +### Тест подключения + +В каждом разделе настроек поставщика есть кнопка **"Проверить подключение"**. При нажатии на неё отправляется минимальный API запрос (обычно список моделей или краткое завершение) и сообщается о успехе или конкретной HTTP ошибке. Это самый быстрый способ проверить, правильны ли ваш ключ API и база URL. + +### Панель диагностики + +**Настройки --> Notemd --> Диагностика** отображает следующее: + +| Поле | Содержимое | +|-------|---------| +| Последний поставщик | Какой поставщик был вызван в последний раз | +| Последняя модель | Какая модель была вызвана в последний раз | +| Последний статус | Код статуса HTTP или ошибка передачи данных | +| Последняя ошибка | Чистое сообщение об ошибке от API | +| Последний запрос URL | Полный URL последнего запроса (зашифрован ключ API) | +| Тело последнего ответа | Обрезанное тело ответа (первые 500 символов) | + +При сообщении о проблемах на GitHub скопируйте полный вывод диагностики. + +## Частые ошибки + +### Ключ API недействителен или отсутствует + +**Симптом:** HTTP 401 или "Предоставлен неверный ключ API" + +**Причина:** Ключ API отсутствует, содержит пробельные символы или принадлежит другому поставщику. + +**Решение:** +1. Проверьте, что у ключа нет пробелов в начале и в конце +2. Убедитесь, что ключ соответствует выбранному поставщику (ключ OpenAI не будет работать с Anthropic) +3. Проверьте, есть ли у вас кредиты на счету или активная подписка +4. Нажмите **"Test Connection"**, чтобы проверить это + +### Ошибки сети / соединения + +**Симптомы:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**Причина:** Конечная точка API недоступна с вашего устройства. + +**Решение:** +1. Проверьте свое интернет-соединение +2. Если вы находитесь за прокси или брандмауэром, убедитесь, что домен API не заблокирован +3. Для Ollama: проверьте, запущен ли `ollama serve` (`ollama list` должен возвращать модели) +4. Для LMStudio: проверьте, запущен ли сервер на `localhost:1234` +5. Попробуйте другой способ передачи данных — пользователи мобильных устройств должны убедиться, что способ `requestUrl` активен +6. Включите `enableStableApiCall` для автоматической попытки повтора при временных ошибках + +### 403 Forbidden + +**Симптомы:** HTTP 403 + +**Причина:** Ваш ключ API действителен, но не имеет разрешений на запрашиваемый ресурс. + +**Решение:** +1. Некоторые модели требуют специального доступа (например, GPT-4 через Azure требует указания имени развертывания) +2. Некоторые провайдеры ограничивают модели по уровню тарифа — проверьте свой аккаунт +3. Могут действовать региональные ограничения (некоторые китайские провайдеры блокируют международные IP, и наоборот) +4. Убедитесь, что имя модели написано правильно (например, `gpt-4o`, а не `gpt-4o-mini`, если мини‑модель — единственная, которую разрешает ваш тариф) + +### Ограничение скорости запросов (429) + +**Симптом:** HTTP 429 или сообщение «Превышено ограничение скорости запросов» + +**Причина:** слишком много запросов за короткий промежуток времени. + +**Решение:** +1. Уменьшите `batchConcurrency` до `1` или `2` +2. Подождите несколько минут перед повторной попыткой +3. Ознакомьтесь с документацией провайдера о лимитах скорости для вашего уровня тарифа +4. Включите `enableStableApiCall` для автоматической повторной попытки с задержками +5. Рассмотрите возможность перехода на провайдера с более высокими лимитами (DeepSeek, Ollama) + +### Модель не найдена + +**Симптом:** сообщение «Модель не найдена» или HTTP 404 + +**Причина:** имя модели отсутствует у выбранного провайдера. + +**Решение:** +1. Нажмите **"Get Model List"**, чтобы увидеть все доступные модели для вашего поставщика +2. Названия некоторых моделей могут меняться со временем — проверьте текущее название в документации поставщика +3. Для Ollama: запустите `ollama list`, чтобы увидеть загруженные модели; доступны только те модели, которые были скачаны + +### Никаких ссылок / никаких концепций не генерируется + +**Симптом:** команда выполняется, но не выводит ничего + +**Причина:** LLM возвращает пустой или непарсируемый ответ. + +**Решение:** +1. Проверьте панель диагностики на реальный ответ LLM +2. Попробуйте более мощную модель (некоторые небольшие модели плохо справляются со структурированным выводом) +3. Убедитесь, что заметка содержит достаточно информации (>50 слов) +4. Проверьте вашу пользовательскую инструкцию на наличие противоречивых указаний +5. Временно отключите подавление синонимов, чтобы узнать, не фильтрует ли оно слишком строго + +### Отсутствует ID конца Doubao + +**Симптом:** ошибка при использовании поставщика ByteDance Doubao + +**Причина:** Doubao требует ID конца Ark (формат: `ep-xxxxxxxx-xxxx-xxxx`) вместо названия модели. + +**Исправление:** Замените стандартную модель-заглушку на реальный ID конечной точки из консоли Volcengine. + +## Конфигурация + +| Настройка диагностики | Местоположение | Цель | +|--------------------|----------|---------| +| **Проверка подключения** | Раздел «Провайдер» в настройках | Проверьте ключ API и работоспособность подключения | +| ** Получение списка моделей** | Раздел «Провайдер» в настройках | Убедитесь, какие модели доступны | +| `enableStableApiCall` | Раздел «Расширенные настройки» | Включите повторные попытки с задержками | +| `batchConcurrency` | Раздел «Пакетная обработка» | Контролируйте параллелизм, чтобы избежать ограничений по скорости | + +## Как сообщать о проблемах + +Если ваша проблема не описана выше: + +1. Открыть **Настройки --> Notemd --> Диагностика** +2. Скопировать полный вывод диагностики +3. Открыть задачу в GitHub по адресу [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +4. Включить: версию Obsidian, версию Notemd, поставщика, модель, вывод диагностики и шаги для воспроизведения +5. Замаскировать ваш ключ API из любых общедоступных логов + +--- + +## Следующие шаги + +- [LLM Поставщики](/docs/providers/overview) -- Полный справочник настроек поставщиков +- [Пакетная обработка](/docs/advanced/batch-processing) -- Настройки параллельной работы и повторных попыток для крупных операций +- [Персонализированные промпты](/docs/advanced/custom-prompts) -- Исправление неожиданного поведения LLM путем настройки промптов diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..2719d47c --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "Часто задаваемые вопросы" +description: "Общие вопросы об установке, функциях и использовании Notemd" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# Часто задаваемые вопросы + +<TLDR> +**Краткие ответы на самые распространённые вопросы о Notemd.** Рассматриваются установка (настройка за 5 минут), поддержка более 30 провайдеров LLM, варианты локальной и облачной моделей, однокликовые рабочие процессы, многоязычная поддержка UI (21 язык), автоматизация ссылок на wiki, интеграция с исследованиями, рабочие процессы чтения PDF, генерация диаграмм и лицензирование под открытым исходным кодом. Все функции работают офлайн с Ollama. +</TLDR> + +--- + +## Установка и настройка + +### Как установить Notemd в Obsidian? + +Откройте Obsidian → **Настройки → Плагины сообщества → Просмотр** → найдите **"Notemd"** → **Установить** → **Включить**. + +**Требования:** +- Obsidian 0.15.0+ +- Поддерживается на ПК (Windows, macOS, Linux) и мобильных устройствах (iOS, Android) + +**Ручная установка:** +1. Скачайте `main.js`, `styles.css`, `manifest.json` с [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) +2. Разместите их в `<your-vault>/.obsidian/plugins/notemd/` +3. Перезагрузите Obsidian и включите плагин + +**Статистика:** более 4 тыс. загрузок, 44 версии, лицензия MIT. + +--- + +## Конфигурация LLM + +### Какие провайдеры LLM поддерживаетсь Notemd? + +Notemd поддерживает **более 30 провайдеров**: + +**Облачные провайдеры:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonnet, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**С акцентом на Китай:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**Локальные/самостоятельно развернутые:** +- Ollama +- LM Studio +- Любой конечный пункт, совместимый с OpenAI + +**Шлюзы:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models, Fireworks, LiteLLM, Nebius, Cerebras +- Hugging Face, Vercel AI Gateway, Requesty + +### Может ли Notemd работать с локальными LLM? + +**Да, полностью поддерживается.** Notemd работает с: +- **Ollama** (нативная интеграция) +- **LM Studio** (через конечную точку, совместимую с OpenAI) +- **vLLM, LocalAI, text-generation-webui** (в режиме, совместимом с OpenAI) + +Все задачи работают с локальными моделями: связывание, генерация концепций, перевод, исследования и генерация диаграмм. + +**Пример смешивания:** +- Ollama (локальный) для связывания → быстро, приватно, бесплатно +- OpenAI для исследований → высокое качество, интеграция с поиском в интернете +- Gemini для перевода → мультимодальная поддержка + +### Как настроить разные модели для разных задач? + +В **Настройках Notemd** у каждой задачи есть отдельные выборщики поставщика/модели: + +| Задача | Пример настройки | +|------|----------------------| +| **Создание ссылок** | DeepSeek (быстро, дешево) | +| **Генерация концепций** | Claude Opus (высокое качество) | +| **Исследования** | Perplexity или GPT-4o (основано на вебе) | +| **Перевод** | Gemini Flash (мультиформатный) | +| **Генерация диаграмм** | Ollama (локально, приватно) | + +Такая оптимизация под каждую задачу балансирует скорость, стоимость и качество. + +--- + +## Основные функции + +### Чем Notemd отличается от ChatGPT при чтении документов? + +| Размер | ChatGPT | Notemd | +|-----------|---------|--------| +| **Местоположение вывода** | История чатов (временная) | Obsidian хранилище (постоянные файлы) | +| **Формат результата** | Текстовый ответ | Вики-ссылки, заметки по концепциям, диаграммы, переводы | +| **Долгосрочная ценность** | Исчезает после сессии | Накапливается в базе знаний | +| **Возможность повторного использования** | Необходимо повторно выполнять запрос | Файлы остаются, ссылки развиваются | + +**Когда использовать ChatGPT:** для быстрых вопросов и ответов, однократных объяснений +**Когда использовать Notemd:** для создания постоянной, структурированной базы знаний в течение недель/месяцев + +### Как Notemd добавляет вики-ссылки к заметкам? + +**Процесс:** +1. Вы запускаете команду "Обработать файл (добавить ссылки)" для заметки +2. Notemd отправляет текст на вашу настроенную LLM +3. LLM определяет ключевые понятия в контексте +4. Notemd вставляет `[[wiki-links]]` при каждом вхождении концепта +5. По желанию программа автоматически создаёт концептуальные заметки в указанной вами папке + +**Особенности:** +- Супрессия синонимов (избегает дубликатов «transformer» и «transformers») +- Обратные ссылки из концептуальных заметок на источник +- Целостность ссылки при переименовании/удалении +- Режим чистой экстракции (извлекать концепции без изменения оригинала) + +### Что такое однокликовый рабочий процесс Notemd? + +**Рабочие процессы одним кликом** объединяют несколько действий в **одну кнопку на боковой панели**. + +**Стандартный рабочий процесс:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**Результат:** Одним кликом запускается: +1. Добавить ссылки на Вики в текущую записку +2. Сгенерировать концептуальные записки для новых терминов +3. Исследование и добавление информации о контексте +4. Сжать в диаграмму Mermaid + +**Пользовательские рабочие процессы:** Определите собственные в Разделе настроек с использованием формата DSL. Каждый рабочий процесс превращается в кнопку вбоковой панели, которую можно использовать повторно. + +### Как Notemd сравнивается с Copilot или Smart Connections? + +Эти плагины решают разные задачи: + +- **Copilot** — сначала общение. Вы общаетесь с ИИ о своих заметках. Ответы ИИ остаются в панели чата; они не изменяют ваш хранилище. +- **Smart Connections** — сначала поиск. Он находит семантически похожие заметки с помощью эмбеддингов. Он не создает и не изменяет содержимое. +- **Notemd** — сначала написание. ИИ обрабатывает ваши заметки и генерирует структурированные результаты (ссылки на wiki, концепт-заметки, исследования, диаграммы, переводы), которые сохраняются в виде постоянных файлов в вашем хранилище. + +| Что вам нужно | Рекомендуемый плагин | +|----------------|-------------------| +| Общение с ИИ о заметках | Copilot | +| Поиск похожих/связанных заметок | Smart Connections | +| Автоматическое вставление ссылок на wiki и создание графа знаний | **Notemd** | +| Генерация концепт-заметок с обратными ссылками | **Notemd** | +| Создание диаграмм из содержимого заметок | **Notemd** | +| Исследовать тему и добавить краткое резюме | **Notemd** | + +Все три варианта можно использовать вместе — они дополняют друг друга, а не конкурируют. + +--- + +## Исследование и перевод + +### Какие сервисы поиска работают с исследованиями Notemd? + +| Сервис | Требуется ключ API | Качество | Примечания | +|---------|-----------------|---------|-------| +| **Tavily** | Да | Высокое | Рекомендуемый поиск с оптимизацией под ИИ | +| **DuckDuckGo** | Нет | Экспериментальный | Нет настройки, более низкое качество | + +**Как работает функция «Исследование и краткое изложение»:** +1. Вы выбираете тему или запускаете её в текущей заметке +2. Notemd запрашивает информацию у поисковой службы +3. Результаты → краткое изложение LLM +4. Краткое изложение добавляется к вашей заметке с ссылками на источники + +**Результат:** Постоянная история исследований в вашем хранилище, а не в вкладках браузера. + +### Поддерживает ли Notemd китайский язык или другие языки? + +**Языки UI:** поддерживается 21+ языка +- Английский, 中文 (简体), 中文 (繁體), 日本語, 한국어 +- Арабский, Немецкий, Французский, Испанский, Русский, Португальский, Итальянский +- Хинди, Бенгальский, Тайский, Вьетнамский, Турецкий, Польский, Чешский и другие + +**Язык вывода задачи:** независимая настройка +- UI на китайском + вывод на английском: ✅ +- UI на английском + вывод на китайском: ✅ + +**Сфера применения:** Двуязычные исследователи могут использовать UI на родном языке, создавая при этом английские заметки для публикации. + +--- + +## PDF и академические рабочие процессы + +### Могу ли я использовать Notemd для чтения статей/PDF? + +**Да.** Порядок действий: +1. **Преобразовать PDF в Markdown** с помощью [MinerU](https://github.com/opendatalab/MinerU) (рекомендуется для академических статей) +2. Открыть файл в формате Markdown в Obsidian +3. Выполнить задачи Notemd: + - **Добавить wiki-ссылки** к ключевым терминам + - **Сгенерировать концептуальные заметки** для незнакомой терминологии + - **Извлечь исходный текст** с помощью пользовательских вопросов (например, «Каковы ограничения?») + - **Исследовать фон** цитируемых методов/наборов данных + - **Перевести** сложные разделы + - **Сжать до диаграммы в Mermaid** для лучшего понимания структуры + +**Версия 1.9.1+:** извлечение структуры глав с поддержкой оглавления + +**Результат:** чтение вашей статьи превращается в структурированный, связанный знанием объект в вашем хранилище. + +--- + +## Диаграммы и визуализация + +### Какие типы графов/диаграмм может генерировать Notemd? + +| Тип | Поддержка | Функции | +|------|---------|----------| +| **Mermaid** | Полная | Диаграммы потоков, последовательности, классов, состояний, ER, Ганта, автоматическая коррекция синтаксиса, пакетная проверка | +| **JSON Canvas** | Полная | Разметки холста нативно для Obsidian | +| **Vega-Lite** | Полная | Графики данных, временные ряды, столбчатые, точечные, настраиваемые | +| **HTML** | Альтернативный вариант | Для неподдерживаемых типов диаграмм | +| **Редактируемый HTML/SVG** | Явная цель | Самодостаточный встроенный SVG с аннотациями в стиле Draw.io-стиля | +| **Draw.io / Drawnix artifacts** | Граница экспорта | Детерминистичный XML/JSON от `SemanticFigureModel`; отсутствие зависимостей от среды редактирования во время выполнения | + +**Автоматическое исправление Mermaid:** Режим глубокой отладки для восстановления: +- Некорректные стрелки (`-->`, `-.->`, `==>`) +- Недопустимые метки и комментарии +- Ошибки синтаксиса подграфов +- Обозначение формы (`[`, `(`, `{`, `((`) +- Знаки трубки в метках +- Приложения примечаний + +**Рабочий процесс:** +1. Выполните команду "Суммировать как диаграмму Mermaid" для примечания +2. Предварительный просмотр в модальном окне +3. Экспорт в формате SVG или PNG +4. Или сохраните как файл `.mmd` в хранилище + +--- + +## Открытый исходный код и сообщество + +### Является ли Notemd бесплатным и открытым исходным кодом? + +**Да.** +- **Лицензия:** MIT (разрешительная, допускается коммерческое использование) +- **Исходный код:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **Нет платных тарифов, нет привязки к облаку, нет телеметрии** +- **Сообщество:** более 234 звезды на GitHub, активный Discord + +**Вам принадлежит:** +- Ваши данные (остаются в вашем хранилище) +- Ваши рабочие процессы (настройка подсказок, моделей, цепочек) +- Ваша конфиденциальность (локальная поддержка LLM) + +**Внесите вклад:** приветствуются pull‑requests. Смотрите [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +## Устранение неполадок + +### Мои вызовы LLM не работают. Что проверить? + +1. **Действительна ли ключ API?** Проверьте Разделы настроек → Настройка поставщика +2. **Правильно ли указано имя модели?** Используйте кнопку "获取模型列表" (Get Model List) в настройках +3. **Доступно ли через сеть?** Некоторые провайдеры требуют VPN +4. **Ограничения по скорости?** Проверьте панель управления провайдера +5. **Диагностика:** Запустите «Тест подключения» в настройках для получения подробных логов ошибок + +### Notemd работает медленно. Как ускорить его? + +1. **Используйте более быстрые модели:** DeepSeek, Gemini Flash, GPT-4o-mini +2. **Уменьшите размер кусков:** Настройки → Умное разделение на куски → снизьте количество слов +3. **Параллельная обработка:** Настройки → Пакетная обработка → увеличьте одновременность +4. **Локальные модели:** Ollama для задач, которым не нужен поиск в интернете + +### Может ли Notemd работать на 100% офлайн? + +**Да, с Ollama.** Без ключа API, без интернета, данные не покидают ваш компьютер: + +1. Установите [Ollama](https://ollama.com) и запустите `ollama serve` +2. В настройках Notemd выберите **Ollama** в качестве провайдера +3. Загрузите модель: `ollama pull llama3` (или qwen2.5, gemma2 и т.д.) +4. Все функции работают: ссылки на wiki, заметки о концепциях, перевод, диаграммы + +**Исследования с DuckDuckGo** также возможны без ключа API (экспериментальное качество). + +При использовании облачных провайдеров (OpenAI, Anthropic, Google, DeepSeek и т.д.) содержимое ваших заметок отправляется в качестве входных данных API. Проверьте политику конфиденциальности каждого провайдера для получения информации о обработке данных. + +### Мои данные отправляются в облако? + +**Это зависит от вашего поставщика:** + +| Тип поставщика | Данные отправляются в облако? | Примечания | +|--------------|---------------------|-------| +| **Ollama (локально)** | Нет | Всё остаётся на вашем устройстве | +| **LMStudio (локально)** | Нет | То же самое, что и Ollama | +| **DeepSeek, OpenAI и т. д.** | Да | Примечание: содержимое отправляется в виде API для обработки | +| **OpenRouter, AIHubMix** | Да | Шлюз, осуществляющий маршрутизацию к облачным провайдерам | + +Notemd сам по себе не собирает **никакой телеметрии, никаких аналитических данных и никаких данных пользователей**. Плагин полностью открытый исходный код (MIT). Единственные данные, которые покидают ваш компьютер, — это те, что вы явно отправляете на настроенного LLM провайдера. + +### Какой плагин ИИ Obsidian лучше всего подходит для исследований? + +Это зависит от вашей рабочей процедуры исследований: + +| Требуется | Плагин | Почему | +|------|--------|-----| +| Найти связанные статьи/заметки | Smart Connections | Обнаружение семантического сходства | +| Обсуждение источников | Copilot | Беседа с контекстом хранилища | +| Автоматическое создание ссылок на концепции + генерация заметок | **Notemd** | ИИ выявляет концепции, вставляет ссылки и создает заметки | +| Исследование в интернете + подведение итогов в виде заметок | **Notemd** | Tavily/DuckDuckGo поиск → LLM краткое содержание → добавляется в заметку | +| Создание диаграмм на основе исследований | **Notemd** | Mermaid/Canvas/Vega-Lite из содержимого заметки | + +**Рекомендуемая комбинация:** Smart Connections (обнаружение) + Notemd (структурирование) + Copilot (обсуждение). + +--- + +## Получение помощи + +- **Документация:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **Проблемы в GitHub:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **Спонсор:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..a58f8bb0 --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "Заметки концепций" +description: "Создание и управление заметками концепций — отдельные заметки для ключевых концепций, извлечённых из вашего хранилища" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# Заметки концепций + +<TLDR> +**Notemd извлекает ключевые концепции из ваших заметок и создаёт отдельные файлы заметок концепций.** LLM определяет основные термины, генерирует один файл `.md` для каждой концепции в настраиваемой папке и по желанию добавляет обратные ссылки на исходную заметку. Поддерживается подавление синонимов, выбор модели для каждой задачи, очистка имён файлов и четырёхэтапный механизм удаления дубликатов. Это является частью [Obsidian Руководства по управлению знаниями с ИИ](/docs/pillar-ai-knowledge). +</TLDR> + +## Обзор + +Заметки концепций являются строительными блоками связанной базы знаний. При обработке заметки Notemd выполняет следующее: + +1. **Отправляет ваш текст в LLM** с структурированным запросом на извлечение +2. **Анализирует строки `CONCEPT:`** из ответа LLM +3. **Создаёт один файл `.md` для каждой концепции** в указанной папке +4. **Добавляет обратные ссылки** на исходную заметку (при включении) + +## Как это работает + +### Пайплайн извлечения + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### Запрос на извлечение + +LLM получает запрос, который указывает ему следующее: + +- Извлекать **существительные или существительные фразы**, являющиеся центральными для темы документа +- **Уделять приоритет специфичности** — «Dielectric Relaxation» вместо «Relaxation» +- **Приводить к единственному числу** — «models» превращается в «model» +- **Подавлять подконцепции** — если появляется «dielectric relaxation», не извлекать также «relaxation» +- Пропустить** разделы ссылок/библиографии, общие существительные, названия компаний/продуктов +- Вывести по одной концепции на строку в формате `CONCEPT: Term Name` + +**Подавление синонимов** (необязательно): добавить в начало запроса фразу «Избегайте извлечения синонимов, семантически похожих основных концепций или ключевых слов, когда это возможно». + +**Сфера сосредоточенного обучения** (необязательно): добавить `Relevant Fields: [domain]` в начало для ограничения извлечения конкретной дисциплиной. + +**Переопределение языка** (необязательно): добавить в конец фразу «Выводимые концепции ДОЛЖНЫ быть на [языке].» + +### Чанкирование + +Длинные заметки разделяются символом `settings.chunkWordCount`. Каждый чанк отправляется отдельно. Концепции из всех чанков собираются в `Set` — дубликаты между чанками удаляются без уведомления. Ошибки LLM в отдельных чанках не прерывают операцию. + +## Создание заметки о концепции + +### Правила имён файлов + +| Правило | Поведение | +|------|----------| +| Дефисы/подчеркивания | Заменяются на пробелы | +| Особые символы | Удаляются: обратный слеш, прямой слеш, двоеточие, звёздочка, вопросительный знак, кавычки, угловые скобки, труба, хеш, каретель, скобки | +| Пробелы | Сжимаются и обрезаются | +| Максимальная длина | 100 символов (обрезано + снова обрезано) | +| Результат пустой/с точками | Пропускается без сообщений | + +Пример: `A-B: Key*Term` превращается в `A B KeyTerm.md` + +### Шаблоны + +**Полный шаблон** (обратные ссылки включены, минимальный шаблон отключен): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**Минимальный шаблон** (когда `extractConceptsMinimalTemplate: true`): + +```markdown +# Concept Name +``` + +### Обновление существующих заметок + +Когда файл концепции уже существует: + +1. Если обратные ссылки включены и источная заметка ещё не указана, добавить обратную ссылку +2. Если существует раздел `## Linked From`, вставить его перед следующим заголовком `##` +3. Если `## Linked From` отсутствует, добавить раздел в конец +4. Дублирующиеся обратные ссылки проверяются и пропускаются + +### Конфигурация + +| Параметр | По умолчанию | Эффект | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | Переключатель главного файла. Выключено = заметки не создаются | +| `conceptNoteFolder` | `''` (отключено) | Путь к папке для концепт-заметок | +| `extractConceptsMinimalTemplate` | `true` | Заметки только с названием (без ссылки на источник) | +| `extractConceptsAddBacklink` | `false` | Добавление обратных ссылок во время автономной экстракции | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | LLM на уровне задачи для экстракции концептов | +| `extractConceptsLanguage` | `'en'` | Язык вывода для названий концептов | +| `replaceSynonymsDuringConceptExtraction` | `false` | Включение подавления синонимов в промпте | +| `generateConceptLogFile` | `false` | Написать список созданных концептов в формате `.log` | + +**Важно:** Настройки `extractConceptsAddBacklink` и `extractConceptsMinimalTemplate` влияют только на **специальную команду экстракции**. Команда "Добавить ссылки" всегда создает заметки полного шаблона с обратными ссылками. + +## Удаление дубликатов + +Команда удаления дубликатов (`Notemd: Check & remove duplicate concept notes`) выполняет анализ в 5 шагов: + +### Шаг 1: Полное совпадение имени файла + +Сравнение без учета регистра базового имени в предустановленном диапазоне. + +### Шаг 2: Обнаружение множественной формы + +Удаление суффиксов: `-ies` до `-y`, `-es` удаляется, `-s` удаляется. Сравнение с единственной формой с файлами диапазона. Не обрабатывает неправильные множественные формы (children/child). + +### Шаг 3: Нормализация символов + +Применяется к: `toLowerCase()`, заменяются дефисы/подчеркивания пробелами, удаляются неалфавитно-цифровые символы, сокращаются пробелы. Замечаются элементы, которые нормализуются одинаково. + +### Шаг 4: Контейнер из одного слова + +Заметки с однословными концепциями проверяются по именам файлов с многословным диапазоном. Не выполняется, когда диапазон — `concept_folder_only`. + +### Шаг 5: Подтверждение и удаление + +Все кандидаты отображаются в модальном окне подтверждения. Утверждённые элементы перемещаются в системный корзину. Операция может быть отменена между каждым удалением. + +### Режимы диапазона + +| Режим | Сравнивается с | +|------|-------------------| +| `vault` (по умолчанию) | Всеми файлами хранилища `.md` за исключением папки концепций | +| `concept_folder_only` | Другими заметками концепций внутри папки | +| `include` | Файлами в определённых указанных папках | +| `exclude` | Всеми файлами хранилища за исключением папки концепций + указанных папок | + +## Использование + +### Извлечение концепций (автономно) + +1. Открыть заметку +2. Запустить **"Notemd: Извлечение концепций"** из палитры команд +3. Заметки концепций создаются в настроенной папке + +### Извлечение + генерация контента + +**"Notemd: Извлекать концепции и генерировать заголовки"** — извлекает концепции, затем запускает команду "Генерировать из заголовка" для каждой записи в папке с концепциями. Это генерирует контент для **всех** записей с концепциями в папке, а не только для новосозданных. + +### Создание ссылки на Вики из выбранного текста + +1. Выделить текст в редакторе +2. Запустить команду **"Notemd: Создать ссылку на Вики из выбранного текста"** +3. Текст заключается в `[[...]]` и создается запись с концепцией + +## Советы + +- **Сначала укажите папку с концепциями** — без неё записи не будут созданы. Если она не указана, появляется модальное окно с предупреждением. +- **Используйте модели для отдельных задач** — извлечение концепций лучше всего работает с более дешёвыми моделями (GPT-4o-mini, DeepSeek). Дорогие модели сохраняйте для исследований/перевода. +- **Включите подавление синонимов** в технических областях, где несколько терминов относятся к одной и той же концепции. +- **Регулярно удаляйте дубликаты** — запускайте команду удаления дубликатов после пакетной обработки, чтобы обнаружить почти одинаковые записи. +- **Файл журнала перезаписывается** при каждом запуске, а не добавляется к нему. Скопируйте его, если вам нужны предыдущие результаты. + +--- + +## Следующие шаги + +- [Wiki-Links](./wiki-links) — Как концепции связываются внутри текста +- [Diagrams](./diagrams) — Визуализация связей между концепциями +- [Workflows](./workflows) — Связывание извлечения с другими задачами diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..983b5ebf --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "Диаграммы" +description: "Генерация Mermaid, JSON Canvas, Vega-Lite, HTML, редактируемых графических объектов, а также будущих ограниченных circuitikz диаграмм на основе ваших заметок с использованием архитектуры, ориентированной на спецификации" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Диаграммы + +<TLDR> +**Notemd генерирует диаграммы из ваших заметок посредством конвейера, ориентированного на спецификации.** LLM создает независимый от рендерера `DiagramSpec` JSON, после чего специальные адаптеры преобразуют его в Mermaid, JSON Canvas, Vega-Lite, HTML или редактируемый вывод HTML/SVG. Поддерживаются 8 типов намерений, автоматические цепочки фолбэка, прямой просмотр с экспортом в SVG/PNG, семантическая проверка и генерация с усилением локальных знаний. +</TLDR> + +Это часть [Obsidian Руководства по управлению знаниями с ИИ](/docs/pillar-ai-knowledge). + +## Архитектура: конвейер, ориентированный на спецификации + +Notemd никогда не просит LLM генерировать синтаксис Mermaid/Vega/Canvas напрямую. Вместо этого: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**Почему ориентация на спецификации?** LLM часто создают недействительный синтаксис рендерера (особенно Mermaid). Структурированный `DiagramSpec` можно проверить перед отрисовкой, а та же спецификация может использоваться для нескольких рендереров в качестве фолбэка. + +## Поддерживаемые типы диаграмм + +| Намерение | Основной рендерер | Фолбэки | Сценарий применения | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | Иерархическое разделение тем | +| `flowchart` | Mermaid | HTML | Потоки процессов, деревья принятия решений | +| `sequence` | Mermaid | HTML | Взаимодействие клиент-сервер, протоколы | +| `classDiagram` | Mermaid | HTML | Отношения классов OOP | +| `erDiagram` | Mermaid | HTML | Схемы баз данных, отношения между сущностями | +| `stateDiagram` | Mermaid | HTML | Машины состояний, модели жизненного цикла | +| `canvasMap` | JSON Canvas | Mermaid → HTML | Карты концептов, графы знаний | +| `dataChart` | Vega-Lite | Mermaid → HTML | Столбчатые, линейные, площадные, разбросные, круговые диаграммы, таблицы | + +## Обнаружение намерений + +Notemd определяет наилучший тип диаграммы на основе содержимого вашей записи с использованием оценки ключевых слов: + +| Намерение | Триггеры | Уровень уверенности | +|--------|----------|------------| +| `dataChart` | Таблицы, числовые ячейки, ключевые слова, связанные с метриками и тенденциями, проценты | 0.88 | +| `sequence` | Лексика запросов/ответов (4+ совпадения) или маркеры `->`/`=>` | 0.82 | +| `erDiagram` | Первичный ключ, внешний ключ, сущность, схема (2+ совпадения) | 0.80 | +| `stateDiagram` | Состояние, переход, в ожидании, выполняется, не удалось (3+ совпадения) | 0.76 | +| `flowchart` | Нумерованные шаги (2+) или лексика if/then/else/workflow | 0.74 | +| `canvasMap` | Карта концептов, граф знаний, пространственные данные, кластеры | 0.72 | +| `mindmap` | Значение по умолчанию | 0.55 | + +Переопределите его с помощью настройки **Тип диаграммы по умолчанию**, выбора в боковой панели или явного опция палитры команд. + +## Выбор цели отрисовки + +Экспериментальный подход, основанный на спецификации, теперь имеет два независимых контроллера: + +| Контроллер | Параметр | Эффект | +|---------|---------|--------| +| Тип диаграммы по умолчанию | `preferredDiagramIntent` | Определяет семантическую форму генерируемого `DiagramSpec` | +| Цель отрисовки по умолчанию | `preferredDiagramRenderTarget` | Выбирает инструмент отрисовки для операций **Сгенерировать диаграмму** и **Предварительный просмотр диаграммы** | + +Установите **Цель отрисовки по умолчанию** в значение **Автоматически** для значения по умолчанию планировщика, или явно выберите Mermaid, JSON Canvas, Vega-Lite, HTML или редактируемый HTML/SVG. Это переопределение применяется только к командам создания артефактов и предварительного просмотра. Стандартная команда **Суммировать в диаграмму Mermaid** остается привязана к выводу, совместимому с Mermaid, чтобы существующие рабочие процессы в Markdown не меняли формат незаметно. + +Это разделение важно, потому что намерение `flowchart` теперь может быть отрисовано в виде Mermaid для заметок в Markdown, HTML в качестве надежного запасного варианта или в редактируемом виде HTML/SVG для дальнейшей обработки. Draw.io и Drawnix остаются экспортерами артефактов в формате CLI, а не целями отрисовки внутри плагина. + +## Использование + +### Сгенерировать диаграмму + +1. Открыть заметку +2. Выполните команду **"Notemd: Сгенерировать диаграмму"** из палитры команд +3. Notemd определяет намерение, генерирует спецификацию, отрисовывает результат и сохраняет артефакт + +**Файлы вывода по цели:** + +| Цель | Расширение | Шаблон имени файла | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| Редактируемо HTML/SVG | `.html` | `{note}_diagram.html` | + +### Просмотр диаграммы + +1. Запустить **"Notemd: Просмотр диаграммы"** +2. Открывается модальное окно с отрендеренной диаграммой +3. Экспортировать в SVG или PNG с помощью кнопок панели инструментов + +Опция **Автозапуск просмотра** доступна в настройках — после генерации модальное окно просмотра открывается автоматически. + +В модальном окне просмотра также есть панель диагностики артефактов. Рендереры и проверки типа smoke могут добавлять `RenderArtifact.diagnostics`; в окне отображается краткое резюме с количеством ошибок/предупреждений/информаций, затем степень серьезности, тип диагностики, сообщение и советы по устранению рядом с просмотром. То же резюме показывается в записях истории просмотров, так что повторные попытки smoke типа circuitikz можно сравнивать без необходимости открывать каждую запись. Для артефактов, у которых есть исходный контент, но который нельзя отрендерить встроенно или через путь iframe HTML, теперь модальное окно переходит к просмотру только исходного кода вместо того, чтобы заставлять использовать пустой iframe. Это позволяет выполнять проверки компиляции/рендеринга типа circuitikz, проверки текстовых токенов SVG, проверки пустого скриншота в формате PNG и будущие отчеты о перекрытии предоставлять видимую информацию UI без необходимости делать TikZJax или LaTeX обязательной зависимостью во время выполнения плагина или притворяться, что исходный текст является проверенным визуальным отображением. + +### Режим устаревшего Mermaid + +Когда `enableExperimentalDiagramPipeline` выключен, Notemd отправляет прямой запрос Mermaid в LLM. Это полностью обходит стандартную цепочку обработки. Если экспериментальная цепочка обработки сбивается, система переходит в этот режим. + +## Фреймворки рендеринга + +### Mermaid + +6 адаптеров (ментальная карта, диаграмма потоков, последовательность, ER, класс, состояние) преобразуют `DiagramSpec` в синтаксис Mermaid. После генерации `mermaid.parse()` проверяет результат. Если проверка не проходит: + +1. **Попытка LLM повторно** — одна попытка с сообщением об ошибке Mermaid в качестве контекста +2. **Минимальный вариант обхода** — простая диаграмма Mermaid, составленная на основе идентификаторов узлов спецификации + +**Legacy Mermaid Fixer** автоматически исправляет распространённые синтаксические ошибки LLM: нормализацию директивы note, экранирование обозначений pipe-label, перенос точек с запятой, умные кавычки, стрелки с двойными тире, несоответствия форм и многое другое. + +### JSON Canvas + +Генерирует формат Obsidian JSON Canvas с пространственной компоновкой: +- Узлы располагаются по глубине (x = глубина × 420) и индексу (y = индекс × 170) +- Ширина определяется по длине метки +- Рёбра с `fromSide: 'right'`, `toSide: 'left'`, `toEnd: 'arrow'` + +### Vega-Lite + +Создаёт полные спецификации Vega-Lite v5 JSON с автоматической кодировкой: +- **Картезианские диаграммы** (столбчатая/линейная/площадная/точечная/рассеянная): каналы x + y плюс цвет для нескольких серий +- **Круговая диаграмма**: theta = y (количественное), цвет = x (номинальное) +- **Таблица**: строка = x, текст = y плюс столбец = серия + +Патчи тёмной и светлой темы глубоко сливаются перед компиляцией. + +### HTML + +Универсальный запасной вариант. Самодостаточный документ HTML с: +- Мета-заголовками CSP +- Режим светлый/тёмный через `prefers-color-scheme` +- Локализованные метки UI для 20 языковых регионов +- Разделы: главная, структура (дерево узлов), взаимосвязи, примечания, таблицы данных серий + +### Редактируемый HTML/SVG + +Явная цель для рабочих процессов экспорта с возможностью редактирования. Она преобразует `DiagramSpec` в детерминированный `SemanticFigureModel`, затем генерирует самодостаточный документ HTML с встроенными группами SVG, содержащими аннотации в стиле Draw.io: + +- `data-drawio-type`, `data-drawio-id` и `data-drawio-role` на семантических узлах +- `data-drawio-source` и `data-drawio-target` на семантических ребрах +- стабильные идентификаторы узлов/ребер после нормализации пробелов и обработки коллизий +- без скриптов, без внешних шрифтов и без удалённых ресурсов + +Эта цель намеренно пока не является стандартным маршрутом планировщика. Она доступна как явная цель отрисовки до тех пор, пока путь продукта не подтвердит поведение редактирования в реальных инструментах. + +### Границы экспорта Draw.io и Drawnix + +В текущей реализации поддержка сторонних редакторов ограничивается границей артефакта: + +| Цель | Контракт | Зависимость во время выполнения | +|--------|----------|--------------------| +| Draw.io | детерминированный несжатый `mxfile` XML от `SemanticFigureModel` | ничего во время работы плагина или в CI | +| Drawnix | минимальный набор `.drawnix` JSON с использованием элементов `geometry` и `arrow-line` | ничего во время работы плагина или в CI | + +Этот компромисс сделан намеренно: Notemd может проверять видимые метки, стабильные ID и поддерживаемую охватность примитивов, не встраивая Diagrams.net Desktop, Drawnix, Plait или состояние редактора только для браузера в плагин. + +### circuitikz / TikZJax Направление + +Схемы цепей — это не то же самое, что общие диаграммы потоков. Правильным синтаксическим форматом для электрических схем обычно является **circuitikz**, который отображается в Obsidian с помощью плагинов, таких как TikZJax. TikZJax может загружать пакеты, такие как `circuitikz`, `pgfplots`, `tikz-cd` и `chemfig`, что делает его подходящим для записей по физике, электронике, химии и математике. + +Риск заключается в том, что необработанный TikZ, сгенерированный LLM, крайне чувствителен к изменениям: + +- сложная топология цепи может быть электрически корректной, но визуально нечитаемой; +- перекрывающиеся провода и метки могут сделать корректный список компонентов непригодным для использования в учебных записях; +- отсутствие вступительных частей пакетов, неверные анкеры или некорректные имена компонентов могут помешать отображению; +- обратная связь от генератора обычно представлена на уровне изображения, тогда как LLM генерирует геометрию на уровне текста. + +Лучшей архитектурой является рассмотрение circuitikz как ограниченной цели для диаграммы, а не как свободного запроса: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +Модель первого класса должна описывать топологию и разметку цепи отдельно: + +| Слой | Обязанности | Пример | +|-------|----------------|---------| +| Топология | электрические узлы и соединения компонентов | `VDD -> RD -> drain(M1)`, `source(M1) -> GND` | +| Разметка | размещение в сетке, ориентация, маршрутизация линий | `M1 at (3,2.2)`, вход слева, выход справа | +| Стиль | пакет, конвенция напряжений, метки, якоря | `\begin{circuitikz}[american voltages]` | +| Проверка корректности | лог компиляции, отсутствующие якоря, проверки на перекрытие/скриншот | TikZJax/Диагностика LaTeX плюс визуальный анализ | + +### Текущий прототип circuitikz + +Notemd теперь включает первый ограниченный прототип репозитория для этого направления. Он намеренно находится в автономном режиме и связан с шаблоном: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +Прототип добавляет отдельную границу `CircuitSpec` и детерминистичный экспортер для шести семейств золотых эталонов: + +| Тип схемы | Золотой эталон | Гарантия тока | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | проверяет `VDD -> R_D -> M1.D`, `vin -> M1.G`, `M1.S -> GND` и `M1.D -> vout` перед записью в LaTeX | +| `cmos-inverter` | `cmos-inverter-v1` | проверяет топологию PMOS-over-NMOS, общий вход на воротах, общий выход на дренаже, `VDD -> MP.S` и `MN.S -> GND` перед записью в LaTeX | +| `cmos-buffer` | `cmos-buffer-v1` | проверяет два каскадированных инверторных уровня, промежуточный узел `vmid`, восстановленный `vout` и общие линии VDD/GND перед записью в LaTeX | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | проверяет параллельные устройства PMOS/NMOS между `vin` и `vout` с дополнительным управлением `phib` / `phi` перед записью в LaTeX | +| `cmos-nand2` | `cmos-nand2-v1` | проверяет параллельный подъемный PMOS, последовательный опускающий NMOS, двойные входы `va` / `vb` и `vout` перед записью LaTeX | +| `cmos-nor2` | `cmos-nor2-v1` | проверяет последовательный подъемный PMOS, параллельный опускающий NMOS, двойные входы `va` / `vb` и `vout` перед записью LaTeX | + +Это пока не универсальный генератор TikZ. Он не компилирует LaTeX, не вызывает TikZJax, не анализирует скриншоты и не выполняет автоматическую коррекцию изображений. Эти функции остаются в будущих версиях. + +Команда Preview diagram может снова открыть сохраненные исходные файлы circuitikz напрямую, если их расширение — `.tex` или `.tikz`, а в коде присутствуют `\usepackage{circuitikz}` или `\begin{circuitikz}`. Этот режим — предварительный просмотр только исходного кода: модальное окно показывает код, диагностику, контроллеры копирования/сохранения и метаданные истории, но не компилирует LaTeX и не вызывает TikZJax во время работы плагина. + +Теперь тот же режим предварительного просмотра только исходного кода охватывает сохраненные файлы Draw.io и Drawnix. Файлы `.drawio` принимаются, если они выглядят как Draw.io XML (`mxfile` или `mxGraphModel`), а файлы `.drawnix` — если они представлены в формате Drawnix JSON с `type: "drawnix"` и массивом `elements`. Плагин по‑прежнему не встраивает diagrams.net и хост белой доски Drawnix; эти превью показывают исходный код, диагностику и историю файлов без использования встроенного визуального редактора. + +Для восстановления структуры передавайте спецификацию до восстановления в качестве ссылки перед принятием исправленного варианта: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +Защитный механизм использует `createCircuitTopologySignature` и `assertCircuitTopologyUnchanged` для сравнения `circuitKind`, `goldenReferenceId`, сетей, идентификаторов/типов/терминалов компонентов и концов неразрешенных соединений перед выводом. Метки, текст заголовка, подсказки по разметке, порядок соединений и метки соединений намеренно игнорируются. Кандидат, добавляющий короткую линию или переподключающий терминал, получает ошибку `Circuit topology drift detected` до записи файла `.tex`. + +Теперь CLI может парсить существующий журнал компиляции LaTeX/TikZJax без запуска компилятора: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +Этот диагностический путь сообщает о отсутствующих пакетах, таких как `circuitikz.sty`, неизвестных ключах TikZ/circuitikz, синтаксических ошибках в пути TikZ, например отсутствии точек с запятой, чрезмерном количестве аргументов из неравномерных скобок или незакрытых меток, неопределенных контрольных последовательностях, общих ошибках LaTeX, аварийных остановках и предупреждениях о переполнении `\hbox`. Это по‑прежнему основано на журнале: локальная компиляция LaTeX/TikZJax и механизмы качества скриншотов остаются отдельными задачами будущего. + +Для проверки работоспособности разработчика тот же CLI может по желанию запустить явно настроенный рендерер без парсинга команд оболочки: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Запускающий процесс использует `shell: false`, заменяет местоимения `{tex}`, `{outputDir}` и `{jobName}` на значения массива аргументов, читает сгенерированный файл `{jobName}.log` и возвращает `compileExecution` вместе с `compileDiagnostics` в формате CLI JSON. `--compile-executable` — это только путь к бинарнику рендерера или обертке; флаги рендерера указываются в повторяющихся значениях `--compile-arg`. Пустые исполняемые файлы считаются ошибкой `compile-executable-invalid`, отсутствующие бинарники — `compile-executable-not-found`, а строки исполняемых файлов в формате команды оболочки получают рекомендацию разделить аргументы, чтобы Windows, Linux и macOS соблюдали одинаковый протокол прямого запуска. С помощью `--expected-artifact` также сообщается о `compileExecution.renderSmoke`, и проверка CLI проваливается, если рендерер не создает непустой файл. Плагин по‑прежнему не встраивает LaTeX, не делает TikZJax зависимостью времени выполнения плагина и не выполняет визуальную коррекцию на уровне скриншотов. + +Если ожидаемый результат — файл `.svg`, проверка углубляется еще на один уровень: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +Проверка SVG убеждается в существовании корня `<svg>`, положительных размерах или `viewBox`, наличии хотя бы одного видимого элемента рисунка после исключения скрытых/прозрачных элементов, наличии любых запрошенных токенов текста, заметных элементов вне `viewBox`, заметных перекрывающихся позиционированных меток `<text>` / `<tspan>` и заметных текстовых меток, перекрывающих элементы рисунка через `render-svg-label-overlap`. Ожидаемый текст ищется в видимом тексте и декодируются метаданные доступности, такие как `aria-label`, `<title>` и `<desc>`, поэтому рендереры, сохраняющие семантические метки вне видимого `<text>`, все равно могут удовлетворить проверку токенов текста без использования OCR. Проверка геометрии теперь учитывает преобразования для распространенных атрибутов групп и элементов `transform`, так что преобразованные, масштабированные, повернутые, искаженные или преобразованные матрицей коробки SVG проверяются после комбинирования преобразований. Она охватывает точные границы дуг для крайних точек дуги A/a, точные границы кривых Bezier для крайних точек кривых C/S/Q/T, границы SVG с учетом толщины линии и проверки перекрытия меток, геометрию рисования `polyline` / `polygon`, а также разрешает размещение глифов только по пути из `<use href="#...">`, так что метки, преобразованные в повторно используемые пути глифов, могут все равно провалить проверку ограниченной рамки, если геометрия размещенного глифа выходит за пределы `viewBox`. Несколько позиционированных меток `tspan` под одним родителем `<text>` сравниваются как отдельные коробки меток, что позволяет обнаружить вывод в стиле LaTeX SVG, который иначе объединил бы разные метки в один текстовый узел. Позиционированные коробки SVG `text` и `tspan` соблюдают значения `start`, `middle` и `end`, поэтому центрированные и выравниваемые по правому краю метки могут вызывать диагностику перекрытия текста/меток и рисунка без необходимости использования браузерного форматирования текста. Глифовые пути, существующие только в определении, внутри `<defs>`, не считаются видимыми элементами рисунка, но их собственные локальные атрибуты `transform` применяются перед размещением `<use>`, чтобы масштабированные или отраженные определения глифов не учитывались недостаточно. Проверка меток и рисунка использует небольшую толерантность крошечных коробок рисунка и объявленные `stroke-width`, поэтому тонкие провода, толстые провода и контуры многоугольных компонентов могут считаться потенциальными причинами плохой читаемости меток, если их видимая линия достигает метки. Глифовые метки, определенные только по пути из `<use href="#...">`, также сравниваются с коробками рисунка и проваливаются с ошибкой `render-svg-path-glyph-overlap`, если повторно используемая геометрия глифа перекрывает провода или компоненты. Если рендерер преобразует метки в повторно используемые пути глифов вместо поисковых `<text>` и не сохраняет метаданные доступности, отчет о проверке записывает `pathOnlyGlyphUseCount` и проваливает запрошенный токен текста через `render-svg-text-path-only`, вместо того чтобы считать метку просто отсутствующей. Другие ошибки сообщаются через `render-svg-invalid`, `render-svg-dimension-missing`, `render-svg-no-visible-elements`, `render-svg-text-missing`, `render-svg-out-of-bounds`, `render-svg-text-overlap`, `render-svg-label-overlap` или `render-svg-path-glyph-overlap`. Проверки токенов текста и перекрытия следует рассматривать только как структурные проверки для рендереров, сохраняющих метки в виде поискового SVG текста или метаданных доступности; вывод только по пути SVG все еще требует последующей проверки скриншота/OCR для подтверждения читаемости визуальных меток, и эта проверка по‑прежнему не обеспечивает полного покрытия SVG путей. + +Скрытые группы и элементы SVG систематически пропускаются во время подсчета видимых элементов и сбора геометрии. Атрибуты или стили inline `display:none`, `visibility:hidden`, `visibility:collapse` и общий стиль `opacity:0` не могут сделать иначе пустой результат рендеринга проходящим проверку видимого вывода. + +Определения глифов только по пути могут быть прямыми путями или группированными/символьными контейнерами внутри `<defs>`. Проверка разрешает геометрию дочерних путей из `<g id="...">` и `<symbol id="...">` перед размещением `<use>`, поэтому вывод обернутых глифов все равно поступает в `pathOnlyGlyphUseCount`, проверки ограниченной рамки и `render-svg-path-glyph-overlap`. + +Парсер путей также отслеживает начало подпутей и сбрасывает текущую точку на `Z/z`, так что относительные команды после закрытого подпути продолжаются с правильной точки SVG вместо того, чтобы создавать ложные диагнозы `render-svg-out-of-bounds`. + +Тот же пасс геометрии следует грамматике SVG для десятичных чисел с ведущей точкой и явных знаков плюса, поэтому компактные координаты dvisvgm, такие как `.5`, `-.5` или `+.5`, остаются дробными во время проверки границ, вместо того чтобы приводить к ложному считыванию геометрии за пределами границ или их игнорированию. + +Если рендерер генерирует `.png`, то тот же путь ожидаемого артефакта превращается в первый скриншот для проверки: Notemd декодирует файлы PNG с индексированным цветом 1/2/4/8 бит без интерлейса, файлы PNG в сером цвете 1/2/4/8/16 бит, а также файлы PNG в сером цвете с альфа-каналом/RGB/RGBA 8/16 бит. Изображения с индексированным цветом и подбайтовым серым цветом поддерживают упакованные образцы; изображения с индексированным цветом также поддерживают PLTE и необязательные данные tRNS; изображения в сером/RGB цвете поддерживают прозрачные образцы tRNS. 16-битные прямые образцы нормализуются в тот же пространство сравнения 8-битного RGBA, которое используется при проверках. Проверка убеждается в наличии положительных размеров, записывает границы фонового слоя как `foregroundBounds`, записывает плотность фонового слоя внутри этой области как `foregroundDensity`, считается неудачной при `render-png-blank`, когда каждый видимый пиксель совпадает с цветом верхнего левого угла фона, считается неудачной при `render-png-content-clipped`, когда содержимое фонового слоя касается границы изображения, считается неудачной при `render-png-foreground-too-small`, когда у большого скриншота меньше четырех пикселей фонового слоя, и считается неудачной при `render-png-foreground-dense`, когда пиксели фонового слоя чрезмерно плотны внутри непростой области границ. Не поддерживаемые форматы PNG приводят к ошибке `render-png-unsupported`, а также предоставляются рекомендации по конкретным форматам для интерлейсированных PNG Adam7 или не поддерживаемых глубин цвета с индексированием. Это позволяет обнаружить пустые скриншоты, очевидное обрезание холста, недостаточно отрендеренные следы фонового слоя, первые ошибки перегрузки на уровне пикселей и неправильные настройки экспорта PNG рендерером, без необходимости добавления зависимостей от конкретной платформы. Это еще не распознавание меток на уровне OCR, точное обнаружение перекрытия текста или восстановление изображения с сохранением топологии. + +Когда диагностика показывает неудачную компиляцию или выполнение проверки render-smoke, CLI также может создать краткое описание для восстановления с сохранением топологии: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +Это описание использует схему `notemd.circuitikz.repair-brief.v1` и содержит исходный код `CircuitSpec`, подпись топологии, диагностику компиляции/рендеринга, разрешенные изменения, запрещенные изменения топологии, следующие шаги проверки и структурированный `repairPrompt`. Роль промпта — `topology-preserving-circuitikz-repair`; его список `diagnosticFocus` формируется на основе диагностики компиляции/рендеринга, а его требования `acceptanceCriteria` включают проверку кандидата, а также новую компиляцию и проверку render-smoke. Это формат передачи данных для последующего цикла восстановления, а не утверждение о том, что Notemd уже выполняет автономное визуальное восстановление. + +После создания кандидата на восстановление тот же CLI может проверить его по сравнению с описанием перед записью результата: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief` проверяет подпись топологии кандидата из описания, и эта проверка является взаимоисключающей с `--topology-reference`. Прохождение этого этапа подтверждает только сохранение топологии; кандидат все еще требует диагностики компиляции и проверки render-smoke. + +Результат работы `--repair-brief` также включает доказательства `repairAcceptance` с использованием схемы `notemd.circuitikz.repair-acceptance.v1`. Он сообщает о прохождении этапов `topology-signature`, `compile-diagnostics` и `render-smoke` как `passed`, `failed` или `missing`; раскрывает информацию `remainingChecks`; и сохраняет значение `readyForVisualAcceptance` как ложное до тех пор, пока кандидат не будет содержать все необходимые доказательства. + +Используйте `--repair-acceptance-output` вместе с `--repair-brief`, когда для доказательств CI или релиза требуется надежный файл JSON: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +Для доказательств релиза или обслуживания запустите каждую поддерживаемую золотую семью через инструмент агрегации фикстур: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Этот инструмент использует `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json` и `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json`, вызывает тот же путь экспортера без использования оболочки для каждой фикстуры и возвращает агрегированный отчет JSON с данными `compileExecution` и `compileDiagnostics` для каждой фикстуры. Это по-прежнему команда для обслуживающего персонала, а не зависимость времени выполнения плагина. + +Когда у машины обслуживающего персонала еще нет настроенного рендерера, запустите ту же команду фикстуры без `--compile-executable` и явно сохраните информацию о состоянии среды: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +Этот путь все равно создает детерминированные артефакты фикстуры `.tex`, но возвращает `ok: false` с `rendererAvailability.status` установленным в значение `missing-configuration` и диагностикой `compile-executable-invalid`. Считайте это только доказательством наличия рендерера; это не является доказательством компиляции, проверки render-smoke или визуального принятия. + +### Форма золотого эталонного промпта + +Для краткосрочного использования предоставьте отрендеримый золотой эталон перед запросом варианта схемы. Ограниченный промпт должен сохранять вступление, масштаб координат, стиль анкоров и правила маршрутизации: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +Для инвертора CMOS промпт должен содержать явные требования к топологии и ограничениям размещения, а не просто «нарисуйте инвертор CMOS»: + +- должно быть `VDD` сверху, `GND` снизу, вход слева, выход справа; +- используйте `pmos` выше `nmos` с общими воротами и общими дренажами; +- оставьте выходной узел на стыке дренажей и отметьте его `*-o`; +- используйте именованные якоря (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) вместо координат, определяемых визуально; +- избегайте диагональных или пересекающихся проводов, если это не требуется электрически. + +### Текущий прогресс и следующие этапы + +| Площадь | Текущее состояние | Следующий шаг | +|------|----------------|-----------| +| Общие схемы | Реализована схема работы, ориентированная на спецификации, для Mermaid, JSON Canvas, Vega-Lite, HTML | Продолжаем расширять охват семантической проверки | +| Редактируемые графики | Реализованы границы объектов `editable-html-svg`, Draw.io XML и Drawnix JSON | Добавляйте более сложные примитивы только после того, как тесты подтвердят возможность редактирования | +| Поддержка CLI | `npm run diagram:export-artifact` экспортирует редактируемые файлы HTML/SVG, Draw.io и Drawnix из одного `DiagramSpec` | Добавление специфичных для целей устройств дымового эффекта при поставке новых целей | +| circuitikz | `CircuitSpec -> circuitikz` прототип экспортирует общие источники, инвертор CMOS, `cmos-buffer` / `cmos-buffer-v1`, `cmos-transmission-gate` / `cmos-transmission-gate-v1`, `cmos-nand2` / `cmos-nand2-v1`, а также `cmos-nor2` / `cmos-nor2-v1` золотые шаблоны, проекты `layoutHints.inputSide` и `layoutHints.outputSide` с определённым размещением входных/выходных портов без изменения топологии, отклоняет изменения топологии при ремонте с помощью `--topology-reference`, генерирует инструкции по ремонту с сохранением топологии через `--repair-brief-output` и схему `notemd.circuitikz.repair-brief.v1`, включает структурированный контент передачи `repairPrompt` с `diagnosticFocus`, `acceptanceCriteria` и ролью `topology-preserving-circuitikz-repair`, проверяет кандидаты на ремонт через `--repair-brief`, возвращает доказательства работы `repairAcceptance` через схему `notemd.circuitikz.repair-acceptance.v1` с `readyForVisualAcceptance` и `remainingChecks`, сохраняет эти доказательства через `--repair-acceptance-output`, парсит логи компиляции, может запускать явные локальные рендереры плюс `--expected-artifact`, SVG `--expected-svg-text`, проверки метаданных доступности через `aria-label`, `<title>` и `<desc>`, исключение скрытых/прозрачных элементов SVG, классификация `render-svg-text-path-only` / `pathOnlyGlyphUseCount` для меток только с путём, проверки размещения глифов только с путём для `<use href="#...">`, диагностика перекрытия глифов только с путём через `render-svg-path-glyph-overlap`, обработка точки тока при закрытом пути для `Z/z`, точные границы дуги для крайних точек дуги A/a, точные границы кривых Bezier для крайних точек кривых C/S/Q/T, проверки границ с учётом толщины линии SVG и перекрытия меток, проверки геометрии рисования `polyline` / `polygon`, геометрия расположенных меток `tspan`, геометрия текста с учётом `text-anchor`, геометрия с учётом преобразований для SVG ограниченной канваса/перекрытия текста и дымового эффекта меток и рисунка через `render-svg-label-overlap`, а также проверки скриншотов PNG без пустоты/обрезки/плотного фона, включая альфа-канал индексированной палитры цветов, прозрачные образцы в сером/RGB режиме tRNS и руководства `render-png-unsupported` для интерлейсированных PNG Adam7 и ошибок индексированной глубины битов через `foregroundBounds`, `foregroundDensity`, `render-png-content-clipped` и `render-png-foreground-dense` без парсинга оболочки, включает агрегированные устройства дымового эффекта для поддержания, записывает отсутствующую конфигурацию рендерера через `rendererAvailability.status: "missing-configuration"` и `compile-executable-invalid`, а также имеет универсальные диагностики превью, подсчёты краткого обзора диагностик, записи истории с учётом диагностик и резервный вариант только из исходного кода через `RenderArtifact.diagnostics` и модальное окно превью | Добавление распознавания меток на уровне OCR для визуального текста только с путём, точные проверки перекрытия на уровне пикселей, более широкое покрытие путей SVG там, где это необходимо, автоматическая установка/обнаружение рендерера только если он может оставаться факультативным, и автоматизированная реализация ремонта с сохранением топологии | +| Интеграция TikZJax | Кандидат на хост рендеринга для отображения с стороны Obsidian | Сохранить его как факультативный; не делать TikZJax обязательной зависимостью времени выполнения плагина | + +## Конфигурация + +| Параметр | По умолчанию | Эффект | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | Переключение между подходом, основанным на спецификации, и устаревшим вариантом Mermaid | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = Mermaid только; `'best-fit'` = нативные цели + резервы | +| `preferredDiagramIntent` | `undefined` (автоматически) | Переопределение автоматического обнаружения намерения | +| `summarizeToMermaidLanguage` | `'en'` | Язык цели для меток диаграмм | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | LLM на каждой задаче для генерации диаграмм | +| `autoMermaidFixAfterGenerate` | (из констант) | Автоматический запуск устаревшего исправителя на выводе Mermaid | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | Дополнение исходного кода знаниями локального хранилища | + +### Усиление локальных знаний + +При включении Notemd извлекает соответствующие фрагменты контекста из локальной базы знаний вашего хранилища (на основе MiniSearch) и добавляет их в начало исходного markdown. В промпте для дополнения указано: "только вспомогательная ссылка; сохраняйте первоначальную структуру верной исходной записи." + +### Режимы совместимости + +- **`legacy-mermaid`**: Все интенты направляются к Mermaid. Интенты, не являющиеся Mermaid (canvasMap, dataChart), принудительно перенаправляются в `flowchart` или `mindmap`. Нет цепочки резервных вариантов. +- **`best-fit`**: Каждый интент направляется к своей нативной цели. Если основная цель не сработала, происходит переход по цепочке резервных вариантов (например, Vega-Lite → Mermaid → HTML). + +## Предварительный просмотр и экспорт + +| Действие | Метод | +|--------|--------| +| Экспорт SVG | Создатель `mermaid.render()` / `vega.View.toSVG()` / SVG для Canvas | +| Экспорт в PNG | SVG → Изображение → Canvas (коэффициент пикселей устройства 1x-3x) → PNG ArrayBuffer | +| Сохранение исходника | Контент сырого артефакта сохраняется с расширением, специфичным для цели | +| Предварительный просмотр только исходника | Нелинейные артефакты с содержимым исходника отображаются в виде кода вместе с диагностикой, без отрисовки iframe | +| Семантический аудит | Mermaid, JSON Canvas, Vega-Lite, и редактируемый HTML/SVG проверяется `scripts/diagram-semantic-verification.js` | + +**Кэширование**: RenderCache использует детерминированный ключ JSON от `{spec, target, theme}`. Удаление дубликатов во время обработки предотвращает повторные генерации. + +## Советы + +- **Начните с режима `best-fit`** — он обеспечивает наилучший визуальный результат для каждого типа намерения +- **Используйте мощные модели для сложных диаграмм** — диаграммы потоков и ER-диаграммы получают преимущества от GPT-4o или Claude +- **Включите локальные знания** для диаграмм специфических областей — соответствующий контекст хранилища повышает точность +- **Установите `autoMermaidFixAfterGenerate`** — без него часто возникают синтаксические ошибки Mermaid +- **Утилита для устаревших случаев очень полная** — если предварительный просмотр Mermaid не работает, ручное выполнение команды фиксатора часто решает проблему + +--- + +## Следующие шаги + +- 🔗 [Wiki-Links](./wiki-links) — Как связывать концепции внутри текста +- 📝 [Concept Notes](./concept-notes) — Извлекать концепции для исходного материала диаграмм +- 🔍 [Research](./research) — Дополнять диаграммы данными из интернета diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..a8aaaeaa --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "Исследования и поиск в Интернете" +description: "Интегрируйте поиск в Интернете в ваши заметки" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Исследования и поиск в Интернете + +<TLDR> +**Notemd выполняет поиск в сети и вставляет LLM-кратко подведенные итоги непосредственно в ваши заметки.** Tavily API является основным движком поиска; DuckDuckGo служит резервным вариантом без настройки. Результаты подводятся кратко с указанием источников и добавляются под заголовком `## Research`. Поддерживается исследование в одной заметке, пакетное исследование папок и выбор модели для шага подведения итогов для каждой задачи. + +Это часть [Obsidian Руководства по управлению знаниями с ИИ](/docs/pillar-ai-knowledge). +</TLDR> + +## Обзор + +Исследования — одна из самых мощных интеграций Notemd: она создает замкнутый цикл между чтением, поиском и записью. Вместо того чтобы переходить в браузер, чтобы найти незнакомый термин, вы выделяете его, и Notemd выполняет поиск, подводит итоги и добавляет результаты — все это прямо в вашем хранилище. + +Процесс полностью настраиваем. Вы можете выбрать поставщика поиска, LLM, который будет писать краткое содержание, и определить, будут ли результаты добавляться в активную заметку или сохраняться в отдельные файлы. Режим пакетной обработки позволяет провести исследование всех заметок в папке одним кликом. + +## Как это работает + +### Пайплайн «Поиск, затем подведение итогов» + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **Извлечение запроса** — Notemd извлекает термины поиска из выбранного элемента или названия заметки. +2. **Поиск в Интернете** — сначала пробуется использовать Tavily. Если не настроен ключ API, автоматически используется DuckDuckGo (ключ не требуется). +3. **LLM подведение итогов** — сырые результаты поиска отправляются в настроенный LLM, который генерирует краткое содержание с встроенными ссылками на источники. +4. **Добавление** — отформатированное краткое содержание добавляется под заголовком `## Research` в активную заметку. + +### Tavily против DuckDuckGo + +| Аспект | Tavily | DuckDuckGo | +|--------|--------|------------| +| Ключ API | Требуется (доступна бесплатная версия) | Не требуется | +| Качество результата | Высокое (специально разработано для ИИ) | Достаточное для обычных запросов | +| Ограничения по скорости | Щедрый бесплатный тариф | Подвержено ограничению скорости | +| Конфигурация | `tavilyApiKey` в настройках | Нулевая конфигурация — автоматический переход на запасной вариант | + +### Исследование папки пакетами + +Щелкните правой кнопкой по папке и выберите **"Notemd: Папка для исследования"**. Каждый файл `.md` в папке обрабатывается последовательно (или параллельно до заданной конкурентности). Каждая заметка получает свой собственный краткий отчет. + +## Конфигурация + +| Параметр | По умолчанию | Эффект | +|---------|---------|--------| +| `tavilyApiKey` | `''` | Ключ Tavily API. Если он пуст, используется исключительно DuckDuckGo. | +| `researchProvider` / `researchModel` | DeepSeek | LLM на задачу для подведения итогов поисковых результатов | +| `maxResearchContentTokens` | `4000` | Бюджет токенов для контента, отправляемого в LLM. Избыточный объем обрезается. | +| `researchAppendToNote` | `true` | Добавить краткий отчет к исходной заметке. Если значение false, создается отдельный файл. | +| `researchLanguage` | `'en'` | Язык вывода для краткого отчета о результатах исследования | + +### Рекомендация модели для каждой задачи + +Исследования получают преимущества от модели, способной обрабатывать многоязычный контент и генерировать хорошо структурированный текст. Рассмотрим следующее: + +- **DeepSeek** -- стандартный вариант, доступный по цене и высокого качества +- **GPT-4o** -- более качественное резюмирование, но более высокая стоимость +- **Gemini Flash** -- быстрый и недорогой инструмент, подходящий для простых запросов + +## Пример + +Вы читаете статью о *механизмах внимания transformer* и сталкиваетесь с незнакомым термином: *относительная позиционная кодировка*. Вместо того чтобы оставить Obsidian: + +1. Выделите **"относительная позиционная кодировка"** +2. Кликните правой кнопкой мыши --> **"Notemd: Исследование и резюмирование"** +3. Notemd ищет в интернете, резюмирует лучшие результаты и добавляет: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +Теперь резюме является частью вашего архива, его можно искать, создавать ссылки на него и использовать в автономном режиме. + +## Советы + +- **Установите ключ Tavily для лучших результатов** -- даже бесплатный тариф обеспечивает более точные результаты, чем простое DuckDuckGo. +- **Используйте мощную модель резюмирования** -- дешевые модели могут упрощать сложный технический контент. +- **Проводите пакетные исследования** после первого прочтения, чтобы одновременно заполнить пробелы во многих заметках. +- **Проверьте добавленные резюме** -- LLM могут выдумывать детали источников. Проверяйте ключевые утверждения. + +--- + +## Следующие шаги + +- [Concept Notes](./concept-notes) -- Извлекайте и сохраняйте ключевые термины из результатов исследований +- [Wiki-Links](./wiki-links) -- Соединяйте концепции, полученные в ходе исследований, внутри вашего архива +- [Translation](./translation) -- Переводите резюме исследований на другой язык +- [LLM Провайдеры](/docs/providers/overview) -- Настроить модель, используемую для краткого изложения diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..5b2b1772 --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "Перевод" +description: "Переводить заметки и выделенные фрагменты" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# Перевод + +<TLDR> +**Notemd переводит текст между 21+ языками с использованием технологий LLM.** Поддерживается перевод отдельно выделенных фрагментов, полных заметок и папок целиком. Для каждой задачи можно указать отдельного поставщика и модель через настройки задачи. Язык вывода можно настроить отдельно от языка UI. Результаты могут быть добавлены под оригинал или сохранены в новом файле в зависимости от ваших предпочтений. + +Это часть [Obsidian Руководства по управлению знаниями с ИИ](/docs/pillar-ai-knowledge). +</TLDR> + +## Обзор + +Перевод в Notemd — это не просто поиск в словаре, а перевод с учетом контекста с использованием технологий LLM. Модель рассматривает полный абзац или заметку, сохраняя тон, специфическую терминологию и структуру предложений. Это обеспечивает более качественные результаты по сравнению с сервисами перевода по фразам, особенно для технического, академического и художественного текста. + +Функция поддерживает три уровня обработки: выделенный фрагмент, активная заметка и вся папка. В сочетании с возможностью выбора модели для каждой задачи можно использовать быструю модель (Gemini Flash) для повседневных переводов и мощную модель (Claude Sonnet) для контента, требующего точного восприятия нюансов — без необходимости менять глобального поставщика. + +## Как это работает + +### Команда Translate + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **Обнаружение исходного языка** — LLM определяет исходный язык на основе содержимого. Вам не нужно указывать его вручную. +2. **Создание промпта** — Notemd формирует промпт, включающий целевой язык, опциональные указания по домену и текст для перевода. +3. **Перевод LLM** — настроенные компоненты `translateProvider` / `translateModel` обрабатывают запрос. Модель сохраняет форматирование Markdown, ссылки вики и блоки кода. +4. **Вывод** — переведенный текст либо добавляется под оригинал, либо сохраняется в новом файле в хранилище. + +### Пары языков + +Notemd поддерживает любые пары языков, которые поддерживаются основными технологиями LLM. Среди распространенных пар: + +| Исходный язык | Цель | Типичное качество | +|--------|--------|----------------| +| Английский | Китайский (упрощенный) | Отличное | +| Китайский | Английский | Отлично | +| Английский | Японский | Очень хорошо | +| Английский | Немецкий / Французский / Испанский | Очень хорошо | +| Любой поддерживаемый | Любой поддерживаемый | Зависит от модели | + +Параметр `translateLanguage` управляет **языком вывода**. Язык исходного текста определяется автоматически. + +### Выбор модели для каждой задачи + +Качество перевода сильно различается в зависимости от модели. Notemd позволяет назначить специальную модель исключительно для перевода: + +| Модель | Скорость | Качество | Стоимость | Для кого | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | Быстро | Хорошо | Низкий | Для неформального использования с большим объемом данных | +| `gpt-4o-mini` | Быстро | Хорошо | Низкий | Быстрые поиски | +| `deepseek-chat` | Средне | Хорошо | Очень низкая | Бюджетный мультиязычный вариант | +| `claude-3-5-sonnet` | Средне | Отлично | Средне | Технический/академический | +| `gpt-4o` | Средний | Отличный | Средний | Проза, чувствительная к нюансам | + +### Перевод папки пакетом + +Щелкните правой кнопкой мыши по папке и выберите **"Notemd: Translate folder"**, чтобы перевести все заметки в этой папке. Каждый файл обрабатывается независимо. Параметр параллельности определяет, сколько файлов обрабатываются одновременно. + +## Конфигурация + +| Параметр | По умолчанию | Эффект | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | Специализированный провайдер для задач перевода | +| `translateLanguage` | `'en'` | Целевой язык вывода | +| `translationAppendToNote` | `true` | Добавьте переведённый текст под оригинальным. Если значение false, создаётся новый файл. | +| `batchConcurrency` | `3` | Количество файлов, обрабатываемых параллельно во время пакетного перевода | + +## Пример + +Вы читаете китайскую научную заметку и хотите её английскую версию: + +1. Откройте заметку +2. Щелкните правой кнопкой мыши --> **"Notemd: Translate current file"** +3. Notemd распознаёт китайский язык, переводит его на настроенный целевой язык (английский) и добавляет: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +Оригинальный китайский текст остаётся нетронутым выше перевода. Заголовок `## Translation` сохраняет обе версии в одном файле для удобства справки. + +## Советы + +- **Используйте Gemini Flash для больших объёмов** — это самый быстрый и дешёвый вариант для пакетного перевода крупных папок. +- **Сохранять ссылки на вики** -- инструкция Notemd предписывает LLM оставлять `[[wiki-links]]` нетронутым при переводе. Проверьте результат после перевода, так как некоторые модели иногда разбирают их. +- **Явно указать язык вывода** -- автоматическое обнаружение работает для исходного текста, но всегда настраивайте `translateLanguage`, чтобы избежать неоднозначности относительно целевого языка. +- **Пакетный перевод концептуальных заметок** -- если папка с концепциями написана на одном языке, а вам нужен другой, перевод на уровне папки решает эту задачу за один шаг. + +--- + +## Следующие шаги + +- [Исследования](./research) -- Поиск и краткое изложение на любом языке, затем перевод результатов +- [Рабочие процессы](./workflows) -- Последовательный перевод с использованием ссылок на вики или извлечения концепций +- [Пакетная обработка](/docs/advanced/batch-processing) -- Конкурентность и поведение при перезаписи при операциях с папками +- [LLM Провайдеры](/docs/providers/overview) -- Выберите лучшую модель для вашей пары языков diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..e28f987c --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "Wiki-Links" +description: "Автоматическое создание wiki-ссылок для ключевых понятий" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# Wiki-Links + +<TLDR> +**Notemd автоматически добавляет `[[wiki-links]]` к ключевым понятиям в ваших заметках.** LLM читает ваш контент, находит важные термины в контексте и вставляет wiki-ссылки в стиле Obsidian при каждом их появлении. По желанию создаются файлы концепт-заметок с обратными ссылками. Поддерживается подавление синонимов, сохранение целостности ссылок при переименовании/удалении и режим чистой выгрузки (без изменения файлов). В отличие от Auto Link, который соответствует только существующим заголовкам заметок, Notemd использует ИИ для выявления новых понятий и создания соответствующих заметок. Это часть [Obsidian Руководства по управлению знаниями с использованием ИИ](/docs/pillar-ai-knowledge). +</TLDR> + +## Обзор + +Создание wiki-ссылок — это основная функция Notemd. Она преобразует обычный текст в связанную графу знаний путем: + +1. **Анализа вашей заметки** с помощью LLM +2. **Выявления ключевых понятий** (терминов, людей, методов, теорий) +3. **Вставки `[[wiki-links]]`** при каждом их появлении +4. **Создания концепт-заметок** (по желанию) с обратными ссылками + +## Как это работает + +### Процесс + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### Пример + +**До:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**После:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## Использование + +### Базовый вариант: Добавление ссылок в текущую заметку + +1. Открыть заметку +2. Клик правой кнопкой в редакторе → **"Обработать файл (добавить ссылки)"** +3. Ждите несколько секунд +4. Теперь понятия связаны между собой! + +### Пакетная обработка: обработка нескольких заметок + +1. Щелкните правой кнопкой мыши по папке в File Explorer +2. Выберите **"Notemd: Обработка папки (добавление ссылок)"** +3. Настройки: + - Многозадачность (сколько файлов одновременно) + - Записать существующие ссылки (да/нет) +4. Нажмите **Обработать** + +### Избирательная обработка: ссылка на конкретный текст + +1. Выделите текст для обработки +2. Щелкните правой кнопкой → **"Обработать выделенное (добавить ссылки)"** +3. Анализируется только выделенная часть + +## Notemd против Автоматической ссылки + +Obsidian предлагает два способа автоматического создания wiki-ссылок: + +| | **Автоматическая ссылка** | **Notemd** | +|--|---------------|-------------| +| Источник ссылки | Названия существующих заметок в хранилище | Концепции, идентифицированные LLM в содержимом | +| Можно создавать ссылки на новые концепции | Нет — заголовок уже должен существовать | Да — ИИ идентифицирует концепции и создает заметки | +| Обработка синонимов | Нет | Да — подавление синонимов | +| Создание заметки о концепции | Нет | Да — с обратными ссылками и удалением дубликатов | +| Пакетная обработка | Нет (один файл) | Да (на уровне папки) | +| Маршрутизация модели по задачам | Нет | Да | + +**Auto Link** основан на совпадении заголовков: если существует заметка с названием "Machine Learning", она оборачивает встречающиеся элементы в `[[Machine Learning]]`. Если такой заметки нет, ничего не происходит. + +**Notemd** работает с помощью ИИ: LLM анализирует ваш контент, понимает контекст, выявляет концепции, которые *должны* быть связаны — даже если заметки ещё нет — и создаёт как ссылку, так и заметку о концепции. + +## Функции + +### Подавление синонимов + +**Проблема:** "transformer", "transformers", "Transformer architecture" → 3 отдельные концепции + +**Решение:** Notemd обнаруживает почти дубликаты и использует каноническую форму. + +**Конфигурация:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### Целостность ссылок + +**При переименовании концепт-заметки:** +- Все вики-ссылки автоматически обновляются (Obsidian основная функция) +- Обратные ссылки остаются нетронутыми + +**При удалении концепт-заметки:** +- Ссылки сохраняются, но отображаются как "несвязанные упоминания" +- Вы можете воссоздать её из любого вхождения + +### Режим чистой выгрузки + +**Выгружайте концепты без изменения оригинала:** + +1. Клик правой кнопкой → **"Выгрузить концепты (без связей)"** +2. Создаются концепт-заметки +3. Оригинальный файл остаётся нетронутым + +Сценарий применения: обработка только для чтения контента или окончательных черновиков. + +## Генерация концепт-заметок + +### Автоматическое создание + +**При включении (по умолчанию), Notemd создает:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### Конфигурация + +**Папка вывода:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Иерархическая структура:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**Шаблон:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## Расширенные параметры + +### Окно контекста + +**Количество окружающего текста для отправки:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +Чем больше — тем выше точность, но и стоимость. + +### Минимальное количество вхождений + +**Связывать только те понятия, которые встречаются несколько раз:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +Установите значение 2 или 3, чтобы сосредоточиться на повторяющихся темах. + +### Исключить шаблоны + +**Пропустить определённые слова:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +Это предотвращает чрезмерное связывание общих терминов. + +### Пользовательские промпты + +**Переопределить стандартные инструкции LLM:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +Измените их для специфических потребностей домена (например, «Сосредоточьтесь на медицинской терминологии»). + +## Советы и лучшие практики + +### ✅ ДЕЛАТЬ + +- **Обрабатывайте заметки длиной более 100 слов** — Короткие заметки содержат мало концепций +- **Используйте мощные модели** для лучшего выявления концепций (GPT-4o, Claude) +- **Проверяйте перед принятием** — Убедитесь, что предложенные ссылки имеют смысл +- **Разрабатывайте поэтапно** — Обработайте 5-10 заметок, проверьте структуру, скорректируйте настройки + +### ❌ НЕ ДЕЛАТЬ + +- **Чрезмерное использование ссылок** — Не каждому существительному нужна ссылка +- **Повторная обработка черновиков** — Концепции могут измениться, подождите до стабильности +- **Игнорирование синонимов** — Включите функцию подавления, чтобы избежать различий между "ML" и "Machine Learning" + +## Производительность + +### Скорость + +| Размер заметки | GPT-4o-mini | Claude Sonnet | Ollama (локально) | +|-----------|-------------|---------------|----------------| +| 500 слов | 2-3 секунды | 3-5 секунд | 5-10 секунд | +| 2000 слов | 5-8 секунд | 10-15 секунд | 20-40 секунд | +| 5000+ слов | По частям (несколько вызовов) | Разбито на чанки | Разбито на чанки | + +### Оценка стоимости + +**Пример: заметка из 1000 слов с GPT-4o-mini** +- Вход: ~1500 токенов +- Вывод: ~200 токенов +- Стоимость: ~ + +**Пакетная обработка 100 заметок:** ~ + +## Устранение неполадок + +### Ссылки не добавлены + +**Проверка:** +1. LLM вызов выполнен с успехом (Настройки → Диагностика) +2. В записке достаточно содержимого (>50 слов). +3. Концепции являются техническими/специфическими (а не просто местоимениями). + +**Попробуйте:** +- Используйте более мощную модель +- Увеличить окно контекста +- Проверить действительность ключа API + +### Слишком много ссылок + +**Решения:** +1. Увеличьте минимальное количество вхождений (2 или 3) +2. Добавить распространённые слова в список исключений +3. Используйте менее агрессивную модель + +### Связаны неверные концепции + +**Исправления:** +1. Использовать пользовательский промпт для уточнения домена +2. Включить подавление синонимов +3. Вручную проверить и развязать связи + +### Ссылки ломаются после переименования + +**Это нормальное Obsidian поведение.** + +Чтобы обновить все ссылки: +1. Переименовать концепт-заметку +2. Obsidian автоматически обновляет `[[old]]` → `[[new]]` + +--- + +## Следующие шаги + +- 📖 [Концепт-заметки](./concept-notes) — подробный обзор создания концепт-заметок +- 🔍 [Интеграция исследований](./research) — объединение ссылок с веб-исследованиями +- 🎨 [Диаграммы](./diagrams) — визуализация вашей графа знаний diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..d658cdeb --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "Рабочие процессы" +description: "Связывайте несколько задач с помощью кнопок одним кликом" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Рабочие процессы + +<TLDR> +**Notemd Рабочие процессы объединяют несколько задач в одно действие одним кликом.** Порядок выполнения задач можно определить с помощью `add-links > extract-concepts > research > diagram` с использованием простого DSL. Рабочие процессы отображаются как кнопки в боковой панели, которые запускают всю цепочку действий в текущей записи или папке. Приложение поставляется с заранее определенными рабочими процессами; пользователи могут создавать собственные в настройках. Каждый шаг использует свою собственную конфигурацию модели для данной задачи. + +Это часть [Obsidian Руководства по управлению знаниями с ИИ](/docs/pillar-ai-knowledge). +</TLDR> + +## Обзор + +Рабочий процесс устраняет неудобства, связанные с выполнением задач по отдельности. Вместо того чтобы четыре раза щелкнуть правой кнопкой мыши для добавления ссылок, извлечения концепций, поиска незнакомых терминов и создания диаграммы, достаточно нажать одну кнопку в боковой панели, и вся цепочка действий будет выполнена. Notemd обрабатывает порядок выполнения, передачу ошибок и отчетность о прогрессе. + +Рабочие процессы определяются с помощью легкого DSL (языка, специфичного для данной области). Они хранятся в настройках, отображаются как кликабельные кнопки в боковой панели Obsidian и могут применяться к текущей записи или к всей папке. + +## Как это работает + +### Пайплайн выполнения рабочих процессов + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **Анализ** -- Строка DSL разбивается по `>` (или `>`) на упорядоченный список идентификаторов задач. +2. **Преобразование** -- Каждый идентификатор соответствует внутреннему команде (add-links, extract-concepts, research, translate, diagram и т.д.). +3. **Выполнение** -- Шаги выполняются последовательно. Каждый шаг использует настроенного поставщика и модель для данной задачи. +4. **Обработка ошибок** -- Если какой-либо шаг завершается с ошибкой, рабочий процесс либо прерывается, либо продолжает выполнение следующего шага в зависимости от настроенной политики обработки ошибок. +5. **Завершение** -- Уведомление в формате toast сообщает о успехе или перечисляет все неудачные шаги. + +### Формат DSL + +Рабочие процессы определяются как последовательность идентификаторов задач, разделенных `>`: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**Доступные идентификаторы задач:** + +| Идентификатор | Действие | +|------------|--------| +| `process-current-add-links` | Добавить ссылки на Вики в активную запись | +| `extract-concepts-current` | Извлечь концепции из активной записи | +| `research-and-summarize` | Исследовать выбранный текст или заголовок записи | +| `process-current-translate` | Перевести активную запись | +| `summarize-to-mermaid` | Сгенерировать диаграмму на основе активной записи | +| `generate-from-title` | Сгенерировать контент по заголовку записи | +| `extract-original-text` | Извлечь исходный текст (для OCR/сканированного контента) | + +**Варианты на уровне папки** — замените `current` на `folder` в имени идентификатора. + +### Заданные заранее и пользовательские рабочие процессы + +Notemd поставляется с готовыми рабочими процессами для распространённых сценариев: + +| Рабочий процесс | Цепочка | Сценарий применения | +|----------|-------|----------| +| **Извлечение одним кликом** | add-links > extract-concepts > research | Обработать научную статью за один проход | +| **Полная цепочка обработки** | add-links > extract-concepts > research > diagram | Полное извлечение знаний с визуализацией | +| **Перевести + Ссылка** | translate > add-links | Перевести, а затем создать ссылки на концепции на целевом языке | + +**Персонализированные рабочие процессы** создаются в настройках: + +1. Открыть **Настройки** --> **Notemd** --> **Рабочие процессы** +2. Нажать **"Добавить рабочий процесс"** +3. Ввести цепочку DSL (например, `process-current-add-links>extract-concepts-current`) +4. Указать имя для отображения (например, "Быстрая ссылка + извлечение") +5. Новая кнопка появляется в боковой панели сразу же + +## Конфигурация + +| Параметр | По умолчанию | Эффект | +|---------|---------|--------| +| `workflows` | Заранее определённый набор | Массив определений рабочих процессов (имя + DSL) | +| `workflowContinueOnError` | `true` | Продолжить к следующему шагу, если текущий не удался | +| `workflowShowProgress` | `true` | Показать уведомление о прогрессе после завершения каждого шага | + +### Модели для отдельных задач в рабочих процессах + +Каждый шаг в рабочем процессе использует **свою** конфигурацию модели для отдельной задачи. Вам не нужно указывать модели непосредственно в DSL. Порядок разрешения следующий: + +1. Провайдер/модель для конкретной задачи, если `useMultiModelSettings` указан +2. Глобальный `activeProvider` в противном случае + +Это означает, что `add-links` может работать на DeepSeek, в то время как `research` работает на GPT-4o — всё это в рамках одного и того же рабочего процесса. + +## Пример + +Вы только что импортировали PDF статьи по машинному обучению в свой хранилище и хотите полное извлечение знаний: + +1. Откройте импортированную запись +2. Нажмите кнопку в боковой панели **"Полный поток работ"** +3. Notemd выполняет следующее: + - **Шаг 1**: Добавление ссылок на wiki — `[[attention mechanism]]`, `[[transformer]]` и т.д. + - **Шаг 2**: Извлечение концепций — создание записей о концепциях в вашей папке с концепциями + - **Шаг 3**: Исследование — краткое изложение источников в интернете по ключевым терминам + - **Шаг 4**: Диаграмма — генерация Mermaid ментальной карты структуры статьи +4. Через примерно 30 секунд у вас будут ссылки, записи о концепциях, результаты исследования и сохранённый файл диаграммы + +Всё это — одним кликом. + +## Советы + +- **Начните с заранее определённых рабочих процессов** — они охватывают наиболее распространённые схемы. Настройте их только тогда, когда вам нужна другая последовательность. +- **Включите `workflowContinueOnError`** — сбой на шаге создания диаграммы не должен прерывать весь поток работ. +- **Используйте рабочие процессы папок** для массовой обработки — щелкните правой кнопкой по папке, выберите рабочий процесс, и каждая заметка будет обработана. +- **Давайте понятные названия рабочих процессов** — место в боковой панели ограничено. Используйте короткие, ориентированные на действие названия вроде «Быстрый извлечение» или «Перевести + Ссылка». + +--- + +## Следующие шаги + +- [Исследование](./research) — Понять, что делает шаг исследования, прежде чем добавлять его в рабочие процессы +- [Ссылки на Вики](./wiki-links) — Основная функция создания ссылок, используемая в большинстве рабочих процессов +- [Заметки концепций](./concept-notes) — Извлечение концепций как шаг рабочего процесса +- [Пакетная обработка](/docs/advanced/batch-processing) — Многозадачность и отчеты о прогрессе для рабочих процессов папок diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..03c480be --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "Конфигурация" +description: "Настройка параметров и предпочтений Notemd" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Конфигурация + +<TLDR> +**Конфигурация Notemd охватывает 6 основных областей:** (1) поставщики LLM и ключи API, (2) выбор модели для каждой задачи, (3) пути сохранения и шаблоны вывода, (4) язык UI и язык вывода, (5) сервисы поиска (Tavily/DuckDuckGo), (6) пользовательские рабочие процессы. Все настройки находятся в разделе Obsidian Settings → Notemd. Изменения вступают в силу немедленно. +</TLDR> + +## Обзор настроек + +Доступ: **Obsidian Settings (⚙️) → Notemd** + +### Основные разделы + +1. **Настройка поставщика** — ключи API, базовые URLs, модели +2. **Настройки задачи** — выбор модели для каждой задачи +3. **Настройка вывода** — место сохранения генерируемых файлов +4. **Настройки языка** — UI и язык вывода +5. **Интеграция поиска** — настройка Tavily/DuckDuckGo +6. **Рабочие процессы** — пользовательские цепочки кнопок +7. **Расширенные настройки** — диагностика, пакетная обработка, разбиение на части + +--- + +## 1. Настройка поставщика + +### Добавление поставщика + +1. **Выберите поставщика** из выпадающего списка (более 30 доступных) +2. **Введите ключ API** +3. **Необязательно**: укажите собственную базу URL (для прокси/шлюзов) +4. **Нажмите "Получить список моделей"**, чтобы проверить подключение +5. **Выберите стандартную модель** + +### Распространённые поставщики + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Локальный) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### Множественные поставщики + +Вы можете настроить несколько поставщиков и переключаться между ними для каждой задачи: +- **Основной поставщик**: используется в качестве резерва +- **Поставщики, специфичные для задачи**: заменяются для конкретных задач + +--- + +## 2. Модели, специфичные для задачи + +Настройте разные модели для разных задач, чтобы оптимизировать стоимость/качество: + +### Типы задач + +| Задача | Стандартная модель | Цель | +|------|--------------|---------| +| **Создание ссылок** | Основной поставщик | Идентификация концепций для ссылок вики | +| **Генерация концепций** | Основной поставщик | Извлекать и описывать концепции | +| **Исследования** | Основной поставщик | Кратко обобщать результаты поиска в интернете | +| **Перевод** | Основной поставщик | Переводить текст | +| **Генерация диаграмм** | Основной поставщик | Генерировать диаграммы Mermaid/Canvas | + +### Пример: Оптимизированная конфигурация с точки зрения затрат + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### Как настроить + +1. **Настройки → Notemd → Настройки задачи** +2. Для каждой задачи выберите: + - ✅ **Использовать основной поставщик** (по умолчанию) + - 🔄 **Использовать пользовательского поставщика** → выбрать поставщика + модель + +--- + +## 3. Настройки вывода + +### Вывод заметок о концепциях + +**Где сохраняются новые заметки с концепциями:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Шаблон:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### Варианты структуры папок + +**Вариант 1: Плоская (все концепции в одной папке)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**Вариант 2: Иерархическая (по исходной папке)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +Настройка: **Параметры → Результат → Использовать иерархические папки** + +### Результат в виде диаграмм + +**Где сохраняются диаграммы:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**Формат:** +- `.mmd` (Mermaid источник) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. Настройки языка + +### UI Язык + +**Язык интерфейса** (кнопки, меню, диалоговые окна): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +Поддерживаемые языки: английский, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Русский, العربية и другие. + +### Язык вывода + +**Язык генерируемого контента** (концептуальные заметки, краткие обзоры исследований): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**Сценарий использования:** китайский UI + английский вывод для двуязычных исследований. + +### Цель перевода + +**Стандартный язык цели** для задач перевода: + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. Интеграция с поиском + +### Tavily (рекомендуется) + +**Сервис поиска, оптимизированный для ИИ:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +Ключ получения: [tavily.com](https://tavily.com/) + +**Особенности:** +- Высококачественные результаты +- Резюме, оптимизированные для ИИ +- Цитаты из источников + +### DuckDuckGo (экспериментально) + +**Ключ API не требуется:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**Примечание:** ниже качество, отсутствует настройка. + +--- + +## 6. Настройка рабочего процесса + +### Создание пользовательских рабочих процессов + +**Рабочие процессы объединяют несколько задач в одну кнопку.** + +1. **Настройки → Рабочие процессы → Добавить рабочий процесс** +2. **Имя**: "Анализ документа" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **Сохранить** + +Новая кнопка появляется в левой панели. + +### Синтаксис DSL + +**Формат:** `action1>action2>action3` + +**Доступные действия:** +- `process-current-add-links` — Добавить ссылки на wiki в текущую запись +- `extract-concepts-current` — Сгенерировать концептуальные заметки +- `research-and-summarize` — Исследование в интернете + краткое резюме +- `translate-current` — Перевести текущую запись +- `summarize-as-mermaid` — Сгенерировать диаграмму Mermaid +- `process-folder-add-links` — Обработка папки пакетно + +**Примеры рабочих процессов:** + +**Быстрое извлечение концепций:** +``` +process-current-add-links>extract-concepts-current +``` + +**Глубокое исследование:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**Мультиязычный анализ:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. Расширенные настройки + +### Пакетная обработка + +**Обработка нескольких файлов параллельно:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +Чем выше значение, тем быстрее работа, но увеличивается количество API вызовов. + +### Умное разбиение на части + +**Для длинных заметок: разделите их на части:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +Предотвращает ошибки из-за ограничения количества токенов. + +### Панель диагностики + +**Просмотр подробных логов:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +Отображает следующее: +- API запросов/ответов +- Использование токенов +- Время обработки +- Ошибки + +### Обнаружение дублирующихся концепций + +**Избегайте почти одинаковых концепций:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +Чем выше значение, тем агрессивнее происходит слияние. + +--- + +## Профили конфигурации + +### Экспорт/импорт настроек + +**Обмен конфигурациями между устройствами:** + +1. **Настройки → Расширенные → Экспорт конфигурации** +2. Сохраняет `notemd-config.json` +3. На новом устройстве: **Импорт конфигурации** + +**Что входит в комплект:** +- Ключи провайдера API (необязательно) +- Выбор моделей +- Пути вывода +- Персонализированные рабочие процессы + +--- + +## Рекомендуемые конфигурации + +### Для студентов + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### Для исследователей + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### Для пользователей, заботящихся о конфиденциальности + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### Для двуязычной работы + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## Устранение неполадок конфигурации + +### Настройки не сохраняются +- Проверьте права доступа к файлу в `.obsidian/plugins/notemd/` +- Попробуйте: отключить плагин → снова включить + +### Ключ API недействителен +- Нет лишних пробелов +- Проверьте срок действия +- Проверьте кредиты на панели управления провайдера + +### Модели не загружаются +- Нажмите «Получить список моделей», чтобы обновить +- Проверьте подключение к сети +- Попробуйте другого провайдера + +--- + +## Следующие шаги + +- 📖 [Изучить функции](../features/wiki-links) +- 🔌 [Руководства по настройке провайдера](../providers/overview) +- ❓ [FAQ](../faq) diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..a70f976a --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "Установка" +description: "Как установить Notemd в Obsidian" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Установка + +<TLDR> +**Установите Notemd менее чем за 2 минуты.** Существует два способа: (1) плагины сообщества Obsidian (рекомендуется, установка одним кликом), или (2) ручная установка через GitHub Releases. Требуется версия Obsidian 0.15.0+ и выше. Работает на Windows, macOS, Linux, iOS и Android. Нет внешних зависимостей. Более 4k загрузок, лицензия MIT. +</TLDR> + +## Способ 1: Плагины сообщества (рекомендуется) + +1. Откройте **Настройки Obsidian** (иконка ⚙️ или `Ctrl/Cmd + ,`) +2. Перейдите в раздел **Плагины сообщества** +3. Нажмите **Обзор** +4. Поищите **"Notemd"** +5. Нажмите **Установить** +6. Нажмите **Включить** + +**Готово!** Вы увидите иконку Notemd в левой панели. + +## Способ 2: Ручная установка + +### Предварительные требования +- Obsidian 0.15.0 или новее +- Git (необязательно, для клонирования) + +### Шаги + +1. **Скачайте файлы** с [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest): + - `main.js` + - `styles.css` + - `manifest.json` + +2. **Найдите папку плагинов вашего хранилища:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +Если папка `plugins` отсутствует, создайте её. + +3. **Создайте папку Notemd:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **Скопируйте три файла** в папку `notemd`. + +5. **Перезагрузите Obsidian:** + - Нажмите `Ctrl/Cmd + R` или + - Перезапустите Obsidian + +6. **Включите плагин:** + - Настройки → Плагины сообщества + - Найдите "Notemd" в списке + - Включите его + +## Альтернатива: Установка через BRAT + +Если вы используете плагин [BRAT](https://github.com/TfTHacker/obsidian42-brat): + +1. Откройте настройки BRAT +2. Нажмите "Добавить плагин Beta" +3. Введите: `Jacobinwwey/obsidian-NotEMD` +4. Нажмите "Добавить плагин" +5. Включите Notemd в плагинах сообщества + +## Проверка + +После установки проверьте, работает ли Notemd: + +1. Откройте любую записку +2. Щелкните правой кнопкой мыши в редакторе +3. Вы должны увидеть команды Notemd вида: + - "Обработать файл (добавить ссылки)" + - "Извлечь концепции" + - "Провести исследование и подготовить краткое изложение" + +## Следующие шаги + +- **Настройка поставщика LLM:** [Быстрый старт →](./quick-start) +- **Устранение неполадок:** [Частые проблемы →](../advanced/troubleshooting) + +## Требования к системе + +| Платформа | Версия | Статус | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | Требуется | +| **Windows** | 7+ | ✅ Поддерживается | +| **macOS** | 10.15+ | ✅ Поддерживается | +| **Linux** | Любая | ✅ Поддерживается | +| **iOS** | 15+ | ✅ Поддерживается | +| **Android** | 5+ | ✅ Поддерживается | + +## Удаление + +Чтобы удалить Notemd: + +1. Настройки → Плагины сообщества +2. Найти "Notemd" +3. Нажмите значок ❌ +4. По желанию удалите папку плагина: `<vault>/.obsidian/plugins/notemd/` + +Ваши данные (заметки, концепт-заметки и т. д.) останутся нетронутыми. + +## Обновление + +### Автоматическое обновление (рекомендуется) +Obsidian автоматически проверяет наличие обновлений плагинов. Когда появляется новая версия: +1. Настройки → Плагины сообщества +2. Нажмите "Проверить обновления" +3. Нажмите "Обновить" рядом с Notemd + +### Ручное обновление +Скачайте последнюю версию и замените три файла в папке вашего плагина. + +## Получение помощи + +- 📖 [Руководство для быстрого старта](./quick-start) +- ❓ [FAQ](../faq) +- 💬 [Сообщество Discord](https://discord.gg/qnGgsQ9W) +- 🐛 [Сообщить о проблемах](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..3d907a3e --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "Руководство по быстрому старту" +description: "Начните работу с Notemd за 5 минут" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Руководство по быстрому старту + +<TLDR> +**Начните использовать Notemd за 5 минут.** Три шага: (1) Добавьте ключ LLM API (или используйте локальный Ollama), (2) Откройте записку и запустите «Обработка файла (добавление ссылок)», (3) Изучите рабочие процессы одним кликом в боковой панели. Поддерживается более 30 поставщиков. Кодирование не требуется. Работает офлайн с Ollama. +</TLDR> + +## Шаг 1: Настройте ваш первый поставщик LLM (2 минуты) + +### Вариант А: Облачный поставщик (OpenAI, Anthropic и т.д.) + +1. Откройте **Настройки** → **Notemd** +2. В разделе **Настройка поставщика LLM** выберите поставщика из выпадающего списка +3. Введите ваш **Ключ API** +4. (Необязательно) Нажмите **«Получить список моделей»**, чтобы увидеть доступные модели +5. Выберите модель для каждого типа задачи + +**Популярные варианты:** +- **OpenAI**: `gpt-4o-mini` (быстро, недорого) +- **Anthropic**: `claude-sonnet-4-6` (высокое качество) +- **DeepSeek**: `deepseek-chat` (очень недорого) + +### Вариант Б: Локальный Ollama (ключ API не требуется) + +1. Установить [Ollama](https://ollama.com/) +2. Скачать модель: `ollama pull llama3.1` +3. В настройках Notemd выберите **"Ollama"** в качестве поставщика +4. Имя модели: `llama3.1` (или любая другая скачанная модель) + +## Шаг 2: Попробуйте выполнить первое задание (1 минута) + +### Добавить ссылки из Вики в заметку + +1. Откройте любую заметку с содержимым +2. Щелкните правой кнопкой мыши в редакторе +3. Выберите **"Обработать файл (добавить ссылки)"** +4. Ждите несколько секунд +5. Ключевые понятия теперь `[[wiki-linked]]`! + +**Пример:** + +**До:** +``` +Machine learning models use neural networks to process data. +``` + +**После:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## Шаг 3: Изучите функции (2 минуты) + +### Извлечь заметки с концепциями + +1. Клик правой кнопкой → **"Извлечь концепции из текущего файла"** +2. Notemd создает отдельные файлы для каждой концепции +3. Проверьте настроенную папку с концепциями (по умолчанию: `concepts/`) +4. Каждая заметка с концепцией содержит обратную ссылку на исходную заметку + +### Исследование и краткое изложение + +1. Выделить тему в вашей записи +2. Клик правой кнопкой → **"Исследовать и кратко изложить"** +3. Notemd запросы к поиску в интернете (Tavily или DuckDuckGo) +4. Резюме добавляется к вашей записи вместе с источниками + +### Однокликовые рабочие процессы + +1. Посмотрите **левую панель инструментов** для кнопок рабочих процессов +2. Нажмите **"Однокликовая выгрузка"** в любой записи +3. Процесс выполняется: добавление ссылок → извлечение концепций → исследование → генерация диаграммы +4. Всё за один клик! + +## Распространённые первые задачи + +### Задание 1: Обработка статьи/документа + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### Задание 2: Перевод записей + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### Задание 3: Создание карты знаний + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## Советы по настройке + +### Выбор модели для каждой задачи + +Вы можете использовать разные модели для разных задач: + +| Задача | Рекомендуемая модель | Почему | +|------|------------------|-----| +| Добавить ссылки | `gpt-4o-mini`, `deepseek-chat` | Быстро, множество вызовов | +| Извлечение концепций | `claude-sonnet-4-6`, `gpt-4o` | Качественное извлечение | +| Исследования | `perplexity`, `gpt-4o` | Основано на вебе | +| Перевод | `gemini-flash`, `gpt-4o` | Многоязычно | +| Диаграммы | `claude-opus`, локальная модель | Сложное рассуждение | + +Настроить в: **Настройки → Notemd → Модели для конкретных задач** + +### Персонализированные рабочие процессы + +Создать собственную кнопку: + +1. Настройки → Notemd → Рабочие процессы +2. Нажмите «Добавить рабочий процесс» +3. Введите DSL: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. Назовите его: "Мой поток исследований" +5. В боковой панели появляется новая кнопка + +## Устранение неполадок + +### "Ключ API недействителен" +- Проверьте, правильный ли ключ (без лишних пробелов) +- Убедитесь, что у аккаунта есть кредиты +- Протестируйте с помощью кнопки "Тест подключения" в настройках + +### "Модель не найдена" +- Нажмите "Получить список моделей", чтобы увидеть доступные модели +- Некоторые поставщики требуют конкретных имен моделей (например, `gpt-4o`, а не `gpt-4`) + +### Ссылки не отображаются +- Убедитесь, что заметка содержит достаточно текста (>50 слов) +- Попробуйте более мощную модель +- Проверьте, успешна ли вызов LLM (смотрите панель диагностики) + +### Медленная производительность +- Используйте более быстрые модели (`gpt-4o-mini` вместо `gpt-4o`) +- Уменьшите размер кусков в настройках +- Включить параллельную обработку для пакетных задач + +## Следующие шаги + +- 📖 [Изучить все функции](../features/wiki-links) +- ⚙️ [Расширенная настройка](./configuration) +- 🔧 [Настройка провайдера LLM](../providers/overview) +- ❓ [FAQ](../faq) + +## Видео-обучение + +Посмотрите 3-минутное видео с быстрым стартом (китайский язык): +[【Полностью открытый исходный код, бесплатно! Быстрый старт с NotEMD за 3 минуты】](https://b23.tv/lqR0RlA) + +## Получение помощи + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **Проблемы**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **Документация**: [Полная документация](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..6a6094fd --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "Введение в Notemd" +description: "Инструмент создания базы знаний на основе ИИ для Obsidian с возможностью сохранения преобразованных заметок, рабочих процессов и диаграмм, ориентированных на спецификации" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Введение в Notemd + +<TLDR> +**Notemd** (Note + EMD — улучшенные Markdown-документы) — это open-source плагин для Obsidian, который преобразует чтение с использованием LLM в постоянно сохраняемые знания. В отличие от чат‑базированных ИИ, где вывод исчезает после сессии, Notemd записывает результаты **непосредственно в ваш хранилище** в виде wiki‑ссылок, заметок о концепциях, кратких обзоров исследований, переводов, рабочих процессов и диаграмм. Он предназначен для исследователей, студентов и специалистов, которые хотят, чтобы чтение, исследования и визуальные объяснения накапливались в структурированной, развивающейся графе знаний. +</TLDR> + +## Что такое Notemd? + +Notemd интегрирует **более 30 крупных языковых моделей** (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama и др.) в ваш рабочий процесс Obsidian для автоматизации извлечения знаний, их организации, перевода, исследования и генерации диаграмм. + +### Ключевое отличие: временные vs. постоянные знания + +| Аспект | Чат‑базированные ИИ (ChatGPT и т.д.) | Notemd | +|--------|-------------------------------|--------| +| **Куда уходят результаты** | История чата (исчезает) | Ваше хранилище Obsidian (сохраняется) | +| **Формат** | Ответы в простом тексте | Структурированные файлы: `[[wiki-links]]`, заметки о концепциях, диаграммы | +| **Долгосрочная ценность** | Необходимо задавать вопрос заново каждый раз | Накапливается в графе знаний | +| **Офлайн-режим** | Требуется интернет | Работает полностью офлайн с Ollama | + +## Основные функции + +### 1. **Автоматическое создание ссылок на Вики** +- LLM выявляет ключевые понятия в ваших заметках +- Вставляет `[[wiki-links]]` при каждом вхождении +- По желанию создает связанные заметки с понятиями +- Супрессия синонимов для избежания дубликатов + +### 2. **Генерация заметок о понятиях** +- Извлекает основные понятия из статей, документов и заметок +- Создаёт специальные файлы с понятиями с обратными ссылками +- Возможность настройки путей вывода и шаблонов + +### 3. **Интеграция с веб-исследованиями** +- Поиск Tavily или DuckDuckGo прямо внутри Obsidian +- LLM подводит итоги результатов с указанием источников +- Добавляет результаты исследований в текущую запись + +### 4. **Многоязычный перевод** +- Переводить отдельные фрагменты или всю запись +- Поддержка более 21 UI языка +- Независимая настройка языка вывода +- Поддержка пакетного перевода + +### 5. **Генерация диаграмм** +- **Mermaid**: диаграммы потоков, последовательности, классов, состояний, ER, Ганта +- **JSON Canvas**: нативные макеты Obsidian +- **Vega-Lite**: графики данных, временные ряды, диаграммы разброса +- **HTML / Редактируемые HTML/SVG**: самодостаточные графические объекты с семантическими аннотациями +- **Draw.io / Границы объектов Drawnix**: пути экспорта для администраторов, основанные на том же семантическом моделировании графиков +- **План развития схем цепей**: поддержка circuitikz/TikZJax разрабатывается с учетом золотых стандартов, ограниченных запросов, обратной связи по рендерингу и проверки топологии/макета, а не с использованием неограниченного формата LLM TikZ +- **Диагностика предварительного просмотра**: генерируемые объекты могут показывать информацию о проблемах компиляции/рендеринга, а источники, не встроенные в текст, можно проверять без необходимости использования LaTeX на стороне плагина +- Автоматическая коррекция синтаксиса для ошибок Mermaid + +### 6. **Рабочие процессы одним кликом** +- Связывание нескольких действий в кнопки боковой панели +- Определение рабочего процесса на основе DSL +- Пример: `add-links > extract-concepts > research > diagram` + +## Кто должен использовать Notemd? + +✅ **Исследователи**, читающие статьи и составляющие обзоры литературы +✅ **Студенты**, организующие учебные заметки и создающие карты концепций +✅ **Специалисты, работающие с знаниями**, которые хотят сохранять выводы из чтения +✅ **Билингвальные профессионалы**, нуждающиеся в переводе + ссылках на вики +✅ **Пользователи, заботящиеся о конфиденциальности**, желающие локальной поддержки LLM (Ollama) +✅ **Эксперты**, настраивающие промпты и рабочие процессы + +## Почему Notemd + Obsidian? + +**Obsidian** — это база знаний, ориентированная на локальное хранение и основанная на Markdown. **Notemd** добавляет ИИ‑способности: +- Ваши данные остаются в вашем хранилище (а не в облачном сервисе) +- Работает офлайн с локальными моделями +- Бесплатно и с открытым исходным кодом (лицензия MIT) +- Интегрируется с существующими плагинами Obsidian +- Масштабируется до десятков тысяч заметок + +## Начало работы + +1. **Установка**: Настройки → Плагины сообщества → Просмотр → "Notemd" +2. **Настройка**: Добавьте ключ вашего провайдера LLM API (или используйте локальный Ollama) +3. **Попробуйте**: Откройте заметку → Клик правой кнопкой → "Обработать файл (добавить ссылки)" +4. **Исследование**: Посмотрите в боковой панели однокликовые рабочие процессы + +👉 [Руководство по установке](./getting-started/installation) | [Учебное руководство для быстрого старта](./getting-started/quick-start) + +## Направление развития диаграмм + +Работа с диаграммами в Notemd переходит от подхода "запросить у модели написать одну строку синтаксиса" к слоистой системе обработки: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +Текущая реализация уже поддерживает Mermaid, JSON Canvas, Vega-Lite, резервный вариант HTML, редактируемые HTML/SVG, артефакты Draw.io XML, минимальный набор Drawnix JSON, диагностику предварительного просмотра/резервный вариант только исходника, а также офлайн-прототип `CircuitSpec -> circuitikz` для стандартных схем и золотых шаблонов инверторов CMOS. Схемы представляют собой более сложную категорию: circuitikz может отображать точную электрическую топологию, но без ограничений LLM часто приводит к неразборчивым маршрутам или к LaTeX, который не отрисовывается. Следующим шагом является сохранение ограничений circuitikz с помощью золотых шаблонов ссылок, правил разметки в виде сетки узлов, диагностики отрисовки и циклов обратной связи в виде скриншотов. + +Подробнее читайте в разделе [Диаграммы](./features/diagrams). + +## Архитектура + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd против других плагинов ИИ Obsidian + +Большинство плагинов ИИ Obsidian ориентированы на общение (вы задаете вопрос, ИИ отвечает, вывод остается в чате). Notemd работает по принципу «сначала написать»: ИИ обрабатывает ваши заметки и записывает структурированные результаты непосредственно в ваш хранилище. + +| Функциональность | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| Вставка автоматических ссылок на вики | Да | Нет | Нет | Нет | +| Создание концептуальной записки | Да (с обратными ссылками + удалением дубликатов) | Нет | Нет | Нет | +| Генерация диаграмм | Да (Mermaid, Canvas, Vega-Lite, HTML, редактируемые артефакты) | Нет | Нет | Нет | +| Интеграция с веб-исследованиями | Да (Tavily + DuckDuckGo) | Нет | Нет | Нет | +| Обработка папок пакетами | Да | Ограничено | Нет | Ограничено | +| Маршрутизация модели по задачам | Да (7 задач, независимые модели) | Нет | Нет | Нет | +| Цепочки рабочих процессов одним кликом | Да (DSL) | Нет | Нет | Нет | +| Перевод пакетами | Да | Нет | Нет | Нет | +| Чат с хранилищем | Нет | Да | Нет | Нет | +| Поиск по семантическому сходству | Нет | Нет | Да | Нет | +| Генерация на основе шаблонов | Нет | Нет | Нет | Да | +| провайдеры LLM | 36 (облако + шлюз + локальный) | 3-5 | 2-3 | 3-5 | +| Полностью офлайн | Да (Ollama) | Частичный | Частичный | Частичный | + +**Когда выбирать Notemd**: если вы хотите, чтобы ИИ создавал постоянную графу знаний, а не просто обсуждал ваши заметки. + +**Когда выбирать Copilot**: если вам нужен помощник-ИИ для общения внутри Obsidian. + +**Когда выбирать Smart Connections**: если вы хотите выявить существующие связи между заметками с помощью семантического поиска. + +## Философия + +**Notemd считает, что ИИ должен дополнять работу людей, связанную с получением знаний, а не заменять её.** Плагин: +- Позволяет сохранять контроль (просмотр перед применением изменений) +- Сохраняется контекст (все результаты ведут обратно к исходному источнику) +- Соблюдает конфиденциальность (локальная поддержка LLM, отсутствие телеметрии) +- Остаётся расширяемым (открытые APIs, пользовательские рабочие процессы) + +## Открытый исходный код + +- **Лицензия**: MIT +- **Источник**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **Сообщество**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **Внесите вклад**: приветствуются PR, см. [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +**Далее**: [Installation →](./getting-started/installation) diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..f3a3e098 --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Obsidian Руководство по управлению знаниями с ИИ" +description: "Полное руководство по созданию связанной базы знаний с использованием ИИ — от вики-ссылок и извлечения концепций до исследований, перевода и генерации диаграмм" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Obsidian Руководство по управлению знаниями с ИИ + +<TLDR> +**Notemd превращает чтение с использованием LLM в постоянные знания: вики-ссылки связывают концепции, заметки о концепциях создают доступную для поиска графику, исследования вносят контекст из интернета, перевод устраняет языковые барьеры, диаграммы делают структуру видимой, а рабочие процессы объединяют всё это одним кликом.** Это руководство охватывает весь процесс — от сырых заметок до связанной, визуальной, многоязычной базы знаний. +</TLDR> + +## Почему управление знаниями с ИИ? + +Традиционное ведение заметок создаёт плоские файлы. Даже при ручном добавлении вики-ссылок большинство заметок остаются разрозненными. Notemd использует LLM для автоматизации слоя связей: + +- **LLM читает ваш контент** и определяет то, что важно — термины, методы, люди, теории +- **Ссылки вставляются автоматически** при каждом упоминании концепции, а не скрыты в разделе «см. также» +- **Заметки о концепциях генерируются** как отдельные файлы для поиска +- **Исследования обогащают заметки** контекстом из интернета +- **Диаграммы делают структуру видимой** — карты мышления, диаграммы потоков, графики данных на основе того же контента + +Результат: граф знаний, который растёт с каждой обработанной заметкой, а не только тогда, когда вы вспомните добавить ссылки. + +## Полный процесс + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +Каждый шаг является независимым. Можно использовать один или все. Наиболее эффективная последовательность: **Добавление ссылок → Заметки о концепциях → Диаграммы**. + +--- + +## 1. Вики-ссылки: явное создание связей + +Вики-ссылки являются основой графа знаний. Notemd использует LLM для: + +1. Читайте содержимое своей заметки (разбивайте на части для длинных документов) +2. Определяйте ключевые концепции — отдавайте приоритет конкретным техническим терминам перед общими существительными +3. Вставляйте `[[wiki-links]]` в каждом месте появления +4. Подавляйте синонимы, чтобы «ML» и «Machine Learning» не создавали отдельных узлов + +### Когда использовать + +- **Каждая заметка длиной более 100 слов** — короткие заметки содержат мало концепций +- **Научные статьи, техническая документация, записи совещаний** — богатые специфическими для области терминами +- **После того, как содержимое стабилизировалось** — не обрабатывайте черновики повторно + +### Основные настройки + +| Параметр | Рекомендуемые | Почему | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek или GPT-4o-mini | Хорошая точность при низкой стоимости | +| Подавление синонимов | Включено | Предотвращает создание дублирующихся узлов | +| Окно контекста | Параграф | Баланс между точностью и стоимостью | + +→ [Углублённый обзор Wiki-ссылок](/docs/features/wiki-links) + +--- + +## 2. Заметки о концепциях: узлы знаний, доступные для извлечения + +Wiki-ссылки соединяют идеи внутри текста, но заметки о концепциях позволяют извлекать каждую идею отдельно. Каждая концепция имеет свой `.md` файл: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### Процесс извлечения + +Просьба к LLM имеет высокую структурированность: +- Привести к единственному числу +- В первую очередь использовать многословные концепции вместо однословных («Dielectric Relaxation», а не «Relaxation») +- Игнорировать разделы с ссылками и библиографией +- Вывести результат в виде `CONCEPT:` строк для однозначной обработки + +Концепции удаляются дубликаты между блоками с помощью `Set<string>`. Ошибки LLM в отдельных блоках не прерывают работу. + +### Обратные ссылки + +При включении каждая заметка о концепции отслеживает, какие источниковые заметки на неё ссылаются. Встроенная панель обратных ссылок Obsidian также показывает обратные связи. + +### Удаление дубликатов + +4-этапный двойниковый двигатель Notemd выявляет: +1. **Полные совпадения** — сравнение имен файлов без учёта регистра +2. **Множественные формы** — "Models.md" против "Model.md" +3. **Нормализация символов** — "A-B.md" против "A B.md" +4. **Содержание одного слова** — "ML.md" отмечается, если существует "Machine Learning.md" + +### Настройки ключей + +| Параметр | Рекомендуемый | Почему | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` или `🧠 concepts/` | Поддерживает организованность хранилища | +| `extractConceptsAddBacklink` | Вкл | Включает обратный поиск | +| `extractConceptsMinimalTemplate` | Выкл | Полная шаблон с ссылками | +| Модель для каждой задачи | DeepSeek | Для извлечения концепций не требуются дорогие модели | +| Подавление синонимов | Вкл | Одна и та же настройка влияет как на ссылки, так и на извлечение | + +→ [Подробный обзор концептуальных заметок](/docs/features/concept-notes) + +--- + +## 3. Исследование: интеграция веба + +Notemd объединяет поиск в интернете с процессом ведения заметок: + +1. **Создание запроса** — название заметки или выбранный фрагмент превращается в запрос к поиску +2. **Поиск в интернете** — Tavily (рекомендуется, требуется ключ API) или DuckDuckGo (бесплатно, без ключа) +3. **LLM подведение итогов** — результаты поиска сжимаются в релевантное резюме +4. **Добавление в заметку** — резюме вставляется в позицию курсора или как новый раздел + +### Когда использовать + +- Перед обработкой новой темы — сначала получите контекст из интернета +- Когда концептуальной заметке требуется дополнение — сначала проведите исследование, затем добавьте ссылки +- Для обзоров литературы — проведите пакетное исследование папки с заметками + +### Основные настройки + +| Параметр | Рекомендуемые | Почему | +|---------|-----------|-----| +| `researchProvider` | GPT-4o или Claude | Для исследований требуется более качественное подведение итогов | +| Служба поиска | Tavily | Лучшая релевантность, настраиваемая глубина | +| `maxResearchContentTokens` | 4000 | Баланс между глубиной и стоимостью | + +→ [Исследование подробно](/docs/features/research) + +--- + +## 4. Перевод: преодоление языковых барьеров + +Notemd переводит заметки с использованием настроенного LLM — а не специализированного переводчика API. Это означает: + +- **Перевод с учетом контекста** — LLM понимает весь документ, а не по предложениям +- **Обработка технических терминов** — «gradient descent» остается как «梯度下降», а не «坡度向下」 +- **Поддержка пакетного перевода** — можно перевести целую папку заметок за одну операцию +- **Модель для каждой задачи** — используется Gemini Flash для перевода (быстро, дешево, многоязычно) + +### Поддержка языков + +Сам Notemd поддерживает 21 UI язык. Целевой язык перевода можно настраивать для каждой задачи. Распространенные пары: EN↔ZH, EN↔JA, EN↔KO, EN↔DE, EN↔FR, EN↔ES. + +→ [Подробное рассмотрение перевода](/docs/features/translation) + +--- + +## 5. Диаграммы: визуализация структуры + +Пайплайн диаграмм Notemd основан на спецификации: LLM генерирует структурированный `DiagramSpec` JSON, после чего адаптеры преобразуют его в целевой формат. Это даёт более надёжный результат, чем запрос к LLM на необработанный Mermaid синтаксис. + +### Обнаружение намерений + +Notemd определяет наилучший тип диаграммы на основе содержимого: + +- **Таблицы с числами** → график данных (Vega-Lite) +- **Словарь клиента/сервера** → диаграмма последовательности (Mermaid) +- **Энтитет/ключ первичности** → диаграмма ER (Mermaid) +- **Шаг/поток процесса** → диаграмма потока (Mermaid) +- **Ключевые слова карты концепций** → JSON Canvas (Obsidian native) +- **По умолчанию** → диаграмма ментальной карты (Mermaid) + +### Цепочка отрисовки + +Основная цель → резервный вариант → резервный вариант → HTML. Если синтаксис Mermaid не сработает, система попытается ещё раз с контекстом ошибки для LLM, затем перейдёт к минимальной диаграмме. + +### Основные настройки + +| Параметр | Рекомендуемое | Почему | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | Вкл. | Лучшее качество за счёт спецификации в первую очередь | +| `experimentalDiagramCompatibilityMode` | `best-fit` | Нативная цель в зависимости от намерения | +| `summarizeToMermaidProvider` | GPT-4o или Claude | Спецификации диаграмм требуют пространственного мышления | +| `autoMermaidFixAfterGenerate` | Вкл. | Автоматически обнаруживает синтаксические ошибки LLM | +| Усиление локальных знаний | Включено для доменно-специфичных случаев | Повышает точность с учётом контекста хранилища | + +→ [Подробный обзор диаграмм](/docs/features/diagrams) + +--- + +## 6. Рабочие процессы: автоматизация одним кликом + +Рабочие процессы объединяют несколько задач в одну кнопку на панели боковой области. Формат DSL следующий: + +``` +task1 | task2 | task3 +``` + +Пример: `addLinks | extractConcepts | generateDiagram` — преобразовать заметку из сырого текста в полностью связанный визуальный узел знаний одним кликом. + +### Рекомендуемые рабочие процессы + +| Рабочий процесс | Цепочка | Сценарий применения | +|----------|-------|----------| +| Полный процесс | `addLinks \| extractConcepts \| generateDiagram` | Новые заметки | +| Исследование сначала | `research \| addLinks` | Неизвестные темы | +| Полиглот | `translate \| addLinks` | Многоязычные заметки | +| Только диаграмма | `generateDiagram` | Быстрая визуализация | + +→ [Подробный обзор рабочих процессов](/docs/features/workflows) + +--- + +## 7. LLM Провайдеры: 36 вариантов от облачных до локальных + +Notemd поддерживает 36 провайдеров в 4 типах транспортировки. Основные группы: + +- **Международные облака**: OpenAI, Anthropic, Google, Mistral, xAI +- **Китайские облака**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **Шлюзы**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **Локальные**: Ollama, LMStudio, OVMS — нет ключа API, данные не покидают ваш компьютер + +### Стратегия моделей по задачам + +Наиболее экономичная конфигурация использует дешевые модели для простых задач и мощные модели для сложных: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [Обзор LLM Провайдеров](/docs/providers/overview) + +--- + +## Чек-лист для начала работы + +1. **Установите Notemd** — [Community Plugins](/docs/getting-started/installation) (рекомендуется) или вручную +2. **Настройте провайдера** — DeepSeek (самый простой способ), OpenAI или Ollama (бесплатно) +3. **Обработайте первую запись** — щелкните правой кнопкой → "Обработать файл (добавить ссылки)" +4. **Установка папки концепций** — Настройки → Notemd → Результаты → Папка концепций +5. **Извлечение концепций** — запустить команду "Извлечение концепций" для той же записи +6. **Создание диаграммы** — запустить команду "Создать диаграмму", чтобы визуализировать связи +7. **Создание рабочего процесса** — объединить вышеуказанные шаги в одну кнопку нажатия + +## Рекомендуемые конфигурации + +### Студент (бюджетный) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### Исследователь (качество) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### Приватность превыше всего (только локально) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### Двуязычный (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## Общие шаблоны + +### Шаблон: обработка научной статьи + +1. Импорт контента PDF (или вставка) +2. **Исследование** — получение информации из Интернета по теме +3. **Добавление ссылок** — выявление и привязка ключевых концепций +4. **Извлечение концепций** — создание отдельных записей +5. **Создание диаграммы** — визуализация структуры статьи + +### Шаблон: обогащение ежедневной записи + +1. Записать ежедневную заметку +2. **Добавить ссылки** — связывает сегодняшние идеи с существующими концепциями +3. Заметки о концепциях автоматически обновляются с обратными ссылками + +### Шаблон: Обзор литературы + +1. Создать папку для статей/заметок +2. **Пакетное добавление ссылок** — обработка всей папки +3. **Удаление дублирующихся концепций** — очистка почти одинаковых заметок +4. **Создание диаграммы** — ментальная карта всей литературы + +--- + +*Notemd является программным обеспечением с открытым исходным кодом (MIT) и работает с Obsidian 0.15.0+ на всех платформах. [Установить сейчас](/docs/getting-started/installation) или [посмотреть на GitHub](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..fd46324b --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "Настроить Anthropic Claude" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Провайдер Anthropic + +<TLDR> +**Anthropic использует встроенный транспорт сообщений API, а не транспорт, совместимый с OpenAI.** Текущий предустановленный режим по умолчанию использует `claude-3-5-sonnet-20240620`, `https://api.anthropic.com` и `temperature: 0.5`. При отладке рассматривайте его как отдельную протокольную поверхность. + +Это часть [Obsidian Руководства по управлению знаниями с ИИ](/docs/pillar-ai-knowledge). +</TLDR> + +## Настройка + +Создайте ключ Anthropic API, добавьте профиль провайдера `Anthropic` и оставьте Base URL на встроенном конце, если только вы не направляете трафик через специальный профиль шлюза. В поле модели выберите ID модели Claude, которую хотите использовать; по умолчанию сохраняется существующий базовый уровень продукта. + +Anthropic является хорошим вариантом для качественного резюмирования, синтеза исследований и извлечения концепций. Если вы сочетаете его с более дешевыми провайдерами, используйте его только в задачах, где важно качество вывода. + +## Конец и аутентификация + +| Поле | Текущий предустановленный режим | +|-------|----------------| +| Транспорт | `anthropic` | +| Ключ API | Требуется | +| Base URL | `https://api.anthropic.com` | +| По умолчанию модель | `claude-3-5-sonnet-20240620` | +| Температура | `0.5` | +| Тест подключения | Только чат | + +Время выполнения отправляет запросы в `/v1/messages` с `x-api-key` и `anthropic-version: 2023-06-01`. Не настраивайте конец `/v1/chat/completions` в стиле OpenAI в этом предустановленном режиме; вместо этого используйте предустановленный режим шлюза, совместимый с OpenAI. + +## Обнаружение моделей + +Anthropic использует режим обнаружения `anthropic-models` в реестре поставщиков. Если ваш ключ или аккаунт не может перечислить модели, сохраните известный ID модели в профиле и проверьте его с помощью теста подключения. + +Транспорт несовместим с поставщиками, совместимыми с OpenAI. Модель Claude, направленная через OpenRouter, LiteLLM или другой шлюз, должна находиться в профиле соответствующего шлюза, а не в нативном профиле Anthropic. + +## Устранение неполадок + +- `401` или `403`: проверьте диапазон ключа, доступ к рабочему пространству, финансовый учёт и то, принадлежит ли ключ ожидаемому рабочему пространству Anthropic. +- `404`: неверен базовый URL или выбранный ID модели недоступен для аккаунта. +- ID моделей в стиле шлюза не работают: переместите профиль к соответствующему поставщику‑шлюзу, поскольку нативный Anthropic ожидает нативные имена моделей. +- Длинные запросы завершаются с ошибкой поздно: уменьшите размер вывода модели на каждую задачу или используйте модель с более высоким известным лимитом токенов вывода. + +## Когда использовать + +Используйте Anthropic, когда качество синтеза, исследовательских заметок или структурированного текста важнее чистой стоимости. Не используйте его в качестве общего запасного варианта, совместимого с OpenAI; отдельный транспорт — в этом суть, а смешивание протоколов затрудняет диагностику. + +--- + +## Следующие шаги + +- [LLM Providers](/docs/providers/overview) -- Полная конфигурация, модели для каждой задачи и логика повторных попыток +- [Troubleshooting](/docs/advanced/troubleshooting) -- Устранение ошибок 401/403 и проблем с подключением diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..b1de0712 --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "Поставщики из Китая" +description: "Настроить Qwen, DeepSeek, GLM и т.д." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Поставщики из Китая + +<TLDR> +**Notemd поддерживает поставщиков из региона Китая и с происхождением из Китая через в основном OpenAI-совместимые конечные точки.** В текущий набор входят DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, MiniMax, Baidu Qianfan, SiliconFlow, Huawei Cloud MaaS и Z AI. Преимущества — региональный охват и контроль затрат; риски — уникальное название модели для каждого поставщика и ограничения на аккаунт. + +Это часть [Obsidian Руководства по управлению знаниями с ИИ](/docs/pillar-ai-knowledge). +</TLDR> + +## Настройка + +Создайте аккаунт поставщика, сгенерируйте ключ API, затем выберите соответствующую предустановку поставщика Notemd вместо использования общего профиля OpenAI. Предустановка содержит стандартный Base URL, модель, режим тестирования API, поведение обнаружения моделей и любые уникальные поля UI для конкретного поставщика. + +Здесь следует активно использовать выбор модели в зависимости от задачи. Например, для задач с интенсивным использованием логики оставляйте DeepSeek или GLM, для широких задач на китайском языке используйте Qwen или Moonshot, а для задач по программированию направляйте их на Qwen Code, если этот аккаунт предоставляет модели для программистов. + +## Конец и аутентификация + +| Поставщик | Стандартная модель | Base URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (требуется ID конечной точки) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**Примечание:** Doubao требует ID конечной точки Ark (формат: `ep-xxxxxxxx-xxxx-xxxx`) вместо стандартного имени модели. + +Большинство этих поставщиков используют общую среду выполнения, совместимую с OpenAI, но их аккаунты и семантика моделей отличаются. Используйте стандартный Base URL для конкретной предустановки, если вы не проверили альтернативную конечную точку аккаунта. + +## Обнаружение моделей + +DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan и SiliconFlow используют обнаружение моделей, совместимое с OpenAI, когда поставщик поддерживает список. Huawei Cloud MaaS использует режим `huaweicloud-modelarts-models`, потому что метаданные развертывания ModelArts не идентичны обычному списку `/v1/models`. + +Не считайте неудачу обнаружения доказательством невозможности чата. Некоторые поставщики позволяют чат, ограничивая права на список моделей. В таком случае сохраняйте явный ID модели в профиле и проверяйте его с помощью теста подключения. + +## Устранение неполадок + +- Аутентификация прошла, но чат не работает: имя модели может находиться за пределами разрешений или региона аккаунта. +- Doubao выдает ошибку при использовании стандартного имени модели: используйте ID конечной точки Ark в поле модели, если ваше развертывание этого требует. +- Ответы с логическими рассуждениями обрезаются: проверьте максимальное количество токенов вывода, установленное поставщиком, и настройки максимального количества токенов, основанные на модели, у Notemd. +- Региональная сетевая инфраструктура различается: используйте конечную точку поставщика для региона Китая, когда машина хранилища находится в Китае; используйте международную конечную точку только тогда, когда аккаунт и сетевой путь оба действительны. + +## Когда использовать + +Используйте китайских поставщиков, когда основными ограничениями являются региональная задержка, доступ к платежам/аккаунтам, качество на китайском языке или стоимость. Предпочитайте прямые OpenAI, Anthropic, Google или местных поставщиков, если вам нужны более простые границы протокола или более надежная согласованность при отладке между поставщиками. + +--- + +## Следующие шаги + +- [LLM Providers](/docs/providers/overview) -- Полная конфигурация, модели для каждой задачи и логика повторных попыток +- [Устранение неполадок](/docs/advanced/troubleshooting) -- Устранение ошибок региональной связности и аутентификации diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..4df9fa9d --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "Настроить Google Gemini" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Провайдер Google + +<TLDR> +**Google использует встроенный транспорт языка генеративного типа Gemini API.** Текущий предустановленный профиль по умолчанию — `gemini-2.0-flash-exp`, `https://generativelanguage.googleapis.com/v1` и `temperature: 0.5`. Это не профиль, совместимый с OpenAI. + +Это часть [Obsidian Руководства по управлению знаниями с ИИ](/docs/pillar-ai-knowledge). +</TLDR> + +## Настройка + +Создать ключ Cloud API типа Google AI Studio или Google с доступом к Gemini, добавить профиль поставщика `Google` и сохранить встроенную базу языка генеративного типа URL. Используйте стандартный профиль Gemini Flash для быстрого перевода и работы с большим объемом заметок, а затем заменяйте модели в зависимости от задачи, если требуется более мощная модель Gemini. + +Избегайте размещения идентификаторов моделей Gemini в профиле, совместимом с OpenAI, если вы явно не используете шлюз, который обеспечивает доступ к Gemini через профиль типа OpenAI и API. + +## Конец и аутентификация + +| Поле | Текущий предустановленный режим | +|-------|----------------| +| Транспорт | `google` | +| Ключ API | Требуется | +| Base URL | `https://generativelanguage.googleapis.com/v1` | +| По умолчанию модель | `gemini-2.0-flash-exp` | +| Температура | `0.5` | +| Тест подключения | Только чат | + +Во время выполнения вызывается `/models/{model}:generateContent?key={apiKey}`. Ключ передается в виде параметра запроса, поскольку именно так подключен встроенный конечный пункт Gemini в плагине. + +## Обнаружение моделей + +Google использует режим обнаружения `google-models`. Обнаружение должно возвращать модели Gemini, доступные для ключа API; если выборщик пуст, протестируйте ключ на той же базе URL и убедитесь, что семейство моделей включено для данного аккаунта. + +Известные пределы количества выходных токенов зависят от модели в реестре поставщиков. Если длинный перевод или объяснение диаграммы обрезается, выберите модель Gemini с более высоким разрешенным лимитом выходных данных или уменьшите размер запрашиваемого вывода. + +## Устранение неполадок + +- `400`: идентификатор модели обычно не совпадает с встроенным маршрутом Gemini или запрос превышает допустимую структуру модели. +- `401` или `403`: проверьте ограничения ключа, включение проекта/API и возможность доступа ключа к Gemini. +- `404`: идентификатор модели недоступен для настроенной версии API. +- Примеры шлюзов не работают в этом профиле: используйте предустановленный шлюз вместо встроенного поставщика Google. + +## Когда использовать + +Используйте Google для быстрого перевода, очистки больших объемов заметок и задач, где соотношение стоимости и производительности Gemini лучше, чем у прямого использования OpenAI или Anthropic. Для задач, требующих обработки моделей рассуждения, совместимых с OpenAI, предпочтите другого поставщика. + +--- + +## Следующие шаги + +- [LLM Providers](/docs/providers/overview) -- Полная конфигурация, модели для каждой задачи и логика повторных попыток +- [Перевод](/docs/features/translation) — для больших объемов перевода рекомендуется использовать Gemini Flash diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..7b994711 --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "Локальные модели" +description: "Настройка Ollama и локальных LLMs" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# Локальные модели + +<TLDR> +**Локальные поставщики не сохраняют содержимое заметок на хостинговых APIs.** Текущий локальный путь охватывает Ollama с использованием нативного транспорта `ollama` и LMStudio через транспорт, совместимый с OpenAI. Для обоих путей не требуется ключ API, но локальный сервер и модель должны уже работать. + +Это часть [Obsidian Руководства по управлению знаниями с ИИ](/docs/pillar-ai-knowledge). +</TLDR> + +## Настройка + +Для Ollama установите Ollama, загрузите нужную модель, запустите сервер и добавьте профиль поставщика `Ollama` в Notemd. Для LMStudio загрузите модель в локальный сервер LM Studio и добавьте профиль поставщика `LMStudio`. + +Локальные модели являются операционными зависимостями, а не просто настройками. Notemd может вызывать только те функции, которые предоставляет локальный процесс, поэтому перед отладкой плагина проверьте локальную модель вне Obsidian. + +## Конец и аутентификация + +| Поставщик | Base URL | Стандартная модель | Ключ API | Примечания | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | Не требуется | Стриминг NDJSON; обнаружение моделей через `/api/tags` | +| LMStudio | `localhost:1234/v1` | `local-model` | Не требуется | Отправляет `"EMPTY"` в качестве токена-носителя; совместимо с OpenAI | + +Ollama использует нативный путь `/chat` под своим Base URL. LMStudio следует маршруту `chat/completions`, совместимому с OpenAI, и ожидает модель, загруженную в локальном сервере. + +## Обнаружение моделей + +Ollama использует режим обнаружения `ollama-tags` и выводит локально загруженные теги. LMStudio использует обнаружение моделей, совместимое с OpenAI, когда его сервер предоставляет `/v1/models`. + +Если обнаружение ничего не возвращает, это обычно проблема состояния локального сервера: модель не была загружена или не загружена, либо сервер подключен к другому хосту/порту, чем указано в профиле. + +## Устранение неполадок + +- Отказ в соединении: запустите Ollama или LM Studio и убедитесь, что указан правильный порт. +- Модель не найдена: загрузите тег Ollama или загрузите модель LM Studio перед тестированием. +- Медленный вывод: уменьшите размер контекста, используйте более маленькую локальную модель или направляйте тяжелые задачи к хостинговому поставщику. +- Пустые или некорректные ответы: убедитесь, что выбранный профиль поставщика соответствует протоколу локального сервера; Ollama и LMStudio не являются взаимозаменяемыми. + +## Когда использовать + +Используйте локальных поставщиков для частных хранилищ, работы офлайн или дешевых повторяющихся задач. Не предполагайте, что локальный вариант автоматически лучше для синтеза исследований или длительных рассуждений; качество модели и ограничения оборудования являются факторами, которые необходимо учитывать. + +--- + +## Следующие шаги + +- [LLM Поставщики](/docs/providers/overview) -- Полная конфигурация и настройка модели для каждой задачи +- [Устранение неполадок](/docs/advanced/troubleshooting) -- Устранение ошибок connection-refused, когда локальный сервер не запущен diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..38b3d26e --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "Настроить OpenAI (GPT-4, GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# Провайдер OpenAI + +<TLDR> +**OpenAI использует общий транспорт, совместимый с OpenAI.** Текущий предустановленный режим по умолчанию — `gpt-4o`, `https://api.openai.com/v1`, `temperature: 0.5` и тест подключения `models-then-chat`. Используйте эту страницу, когда вам нужна точная семантика полей; для выбора по категориям используйте обзор [LLM Провайдеры](/docs/providers/overview). + +Это часть [Obsidian Руководства по управлению знаниями с ИИ](/docs/pillar-ai-knowledge). +</TLDR> + +## Настройка + +Создайте ключ OpenAI API, добавьте профиль провайдера `OpenAI` в настройках Notemd и оставьте значение Base URL по умолчанию, если только вы не намеренно не указываете на шлюз, совместимый с OpenAI. Поле модели может оставаться `gpt-4o` для общей работы или быть заменено другим идентификатором модели OpenAI, доступным в вашем аккаунте. + +Для контроля затрат используйте модели, предназначенные для конкретных задач: храните более мощные модели для исследований, извлечения концепций и структурирования длинных текстов; используйте более дешевые или быстрые модели для перевода, предложений ссылок и кратких резюме. + +## Конец и аутентификация + +| Поле | Текущий предустановленный режим | +|-------|----------------| +| Транспорт | `openai-compatible` | +| Ключ API | Требуется | +| Base URL | `https://api.openai.com/v1` | +| По умолчанию модель | `gpt-4o` | +| Температура | `0.5` | +| Тест подключения | `/models`, затем `/chat/completions` | + +Notemd нормализует базовые URL, совместимые с OpenAI, перед добавлением `chat/completions` или `models`. Не включайте завершающий `/chat/completions` в Base URL; это приводит к дублированию пути. + +## Обнаружение моделей + +OpenAI использует универсальный путь обнаружения моделей, совместимый с OpenAI. Настройки UI сначала запрашивают `/v1/models`, затем проверяют выбранную модель с помощью легкого запроса в чате. Если обнаружение не удалось, но чат продолжает работать, проверьте, есть ли у вашего ключа разрешение на список моделей или блокирует ли шлюз отображение списка моделей. + +Модели для рассуждений рассматриваются как особый случай протокола: Notemd объединяет содержимое системных и пользовательских запросов для получения идентификаторов рассуждений OpenAI, которые отклоняют отдельную роль `system`, и они отображаются `reasoningEffort` только там, где это поддерживается определением провайдера. + +## Устранение неполадок + +- `401` или `403`: проверьте ключ, доступ к проекту, статус оплаты и то, включена ли выбранная модель для этого ключа. +- `404` в чате: Base URL обычно неверен или уже содержит `/chat/completions`. +- Модель указана в документации, но отсутствует в списке: доступ к списку моделей и доступ к чату — это разные причины сбоя; вручную проверьте точный идентификатор модели в профиле провайдера. +- Модель для рассуждений отклоняет сообщения: используйте идентификатор модели, охватываемый путем обработки рассуждений OpenAI, или переключитесь на модель чата без рассуждений. + +## Когда использовать + +Используйте OpenAI, когда вам нужен наиболее предсказуемый стандартный хостинговый путь, когда важно обнаружение `/v1/models` или когда рабочий процесс зависит от семантики модели рассуждений OpenAI. Предпочтите шлюз или локального провайдера, когда важнее маршрутизация, конфиденциальность или контроль затрат, чем прямое поведение OpenAI API. + +--- + +## Следующие шаги + +- [LLM Providers](/docs/providers/overview) -- Полная конфигурация, модели для каждой задачи и логика повторных попыток +- [Устранение неполадок](/docs/advanced/troubleshooting) -- Исправление ошибок 401/403 и ограничений по скорости diff --git a/website/i18n/ru/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/ru/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..cc40c28d --- /dev/null +++ b/website/i18n/ru/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "Поставщики LLM" +description: "Настройка 36 поставщиков LLM — облачных, шлюзовых и локальных — с возможностью выбора модели для каждой задачи" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Поставщики LLM + +<TLDR> +**Notemd поддерживает 36 поставщиков LLM в 4 типах транспорта.** Все вызовы API осуществляются напрямую через HTTP (без SDK), с автоматической попыткой повтора, переключением на альтернативный транспорт и кэшированием ответов в течение 5 минут. Возможность выбора модели для каждой задачи позволяет использовать дешёвые модели для извлечения концепций и мощные модели для исследований. Для локальных поставщиков (Ollama, LMStudio) ключ API не требуется. +</TLDR> + +Это часть [Obsidian Руководства по управлению знаниями с ИИ](/docs/pillar-ai-knowledge). + +## Категории поставщиков + +### Облачные поставщики + +| Поставщик | Базовый URL по умолчанию | Стандартная модель | Температура | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### Шлюзовые/прокси‑поставщики + +| Поставщик | Базовый URL по умолчанию | Стандартная модель | Примечания | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | Добавляет заголовки `HTTP-Referer` + `X-Title` | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | Добавляет заголовок `X-GitHub-Api-Version` | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | Добавляет заголовок `APP-Code` | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | Необязательный ключ API | +| **Новый API** | `localhost:3000/v1` | `gpt-4.1` | Необязательный ключ API | +| **OpenAI Compatible** | (настроено пользователем) | `your-model-id` | Персонализированный конечный пункт | + +### Поставщики из Китая + +| Поставщик | Базовый шаблон URL | Стандартная модель | Примечания | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | Ориентировано на программирование | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (требуется ID конечной точки) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | Конечный пункт Zhipu, Китай | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | Конечный пункт Zhipu, международный | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | Платформа хостинга моделей | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao требует идентификатора конечного пункта Ark** (формат: `ep-xxxxxxxx-xxxx-xxxx`). По умолчанию этот местоимение необходимо заменить. + +### Локальные поставщики + +| Поставщик | Базовый шаблон URL | Стандартная модель | Примечания | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | Отсутствует ключ API. Стриминг NDJSON. Обнаружение моделей через `/api/tags` | +| **LMStudio** | `localhost:1234/v1` | `local-model` | Отправляет `"EMPTY"` в качестве токена авторизации. Обнаружение совместимое с OpenAI | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (настроено пользователем) | `gpt-4o` | Имя развертывания в URL. Заголовок `api-key` | + +## Выбор модели для каждой задачи + +Notemd поддерживает независимого поставщика и модель для каждой задачи. Включить с помощью `useMultiModelSettings: true`. + +### Доступные задачи + +| Задача | Ключ настроек | Стандартный поставщик | +|------|-------------|-----------------| +| Добавление ссылок (вставка wiki-ссылки) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| Исследование (поиск в интернете + краткое изложение) | `researchProvider` / `researchModel` | DeepSeek | +| Генерация из заголовка | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| Перевод | `translateProvider` / `translateModel` | DeepSeek | +| Создание диаграмм | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| Извлечение концепций | `extractConceptsProvider` / `Model` | DeepSeek | +| Извлечение оригинального текста | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### Порядок разрешения + +1. Если `useMultiModelSettings` включён → использовать поставщика и модель, специфичные для задачи +2. Если параметр переопределения модели задачи пуст — вернуться к стандартной модели поставщика +3. Если поставщик задачи недействителен — вернуться к глобальному `activeProvider` +4. Если `useMultiModelSettings` выключен → все задачи используют глобальный `activeProvider` + +### Рекомендуемые конфигурации + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## Архитектура вызова API + +### Слои передачи + +1. **Obsidian `requestUrl`** — основной (встроенный, работает на всех платформах) +2. **Desktop HTTP** — модули Node.js `http`/`https` (стриминг + длинные запросы) +3. **Web `fetch`** — альтернатива при отсутствии модулей Node.js + +Плагин автоматически переключается между способами передачи при временных сетевых ошибках. + +### Логика повторных попыток + +- **Обычный режим** (`enableStableApiCall: false`): одна попытка. При временной неудаче автоматически переходит к стабильному повтору. +- **Режим стабильного повтора** (`enableStableApiCall: true`): до 4 попыток (1 + 3 повтора) с интервалом в 5 секунд. +- **Временные ошибки, вызывающие повтор**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **Не подлежат повтору**: HTTP 400, 401, 403, 404 + +### Кэширование ответов + +5-минутный кэш LRU в памяти, ключи формируются из провайдера + модели + температуры + запроса + содержимого. Последующие идентичные запросы в течение 5 минут возвращают результаты из кэша мгновенно. + +### Обработка моделей рассуждений + +Модели, которые не поддерживают роль `system` (DeepSeek R1, OpenAI o1/o3/o4/gpt-5), автоматически объединяют системные и пользовательские запросы в одно сообщение пользователя. + +DeepSeek-специфично: `thinkingEnabled` добавляет `{ thinking: { type: 'enabled' } }` в запрос. `reasoningEffort` (низкий/средний/высокий) передаётся как `reasoning_effort`. Проверяется, что максимальное количество токенов вывода ≥ 8000 при включённом режиме размышлений. + +### Оценка количества токенов + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — гипотеза 4 символа на токен. Используется для обеспечения `maxResearchContentTokens` перед отправкой в LLM. + +Отслеживание затрат не реализовано. + +## Обнаружение моделей + +| Режим | Провайдеры | Конечная точка | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | Список моделей API | +| `anthropic-models` | Anthropic | Список моделей API | +| `openai-compatible-models` | DeepSeek, Qwen, Mistral и т. д. | `/v1/models` | +| `openrouter-models` | OpenRouter | Список моделей API | +| `github-models` | GitHub Models | Инференс API | +| `none` | Azure OpenAI | Отключено (требуется имя развертывания) | + +## Быстрый старт + +1. **Выберите провайдера** — DeepSeek (Китай), OpenAI (Международный) или Ollama (Локальный/бесплатный) +2. **Введите ключ API** — Настройки → Notemd → Провайдер → Ключ API +3. **Проверить соединение** — Нажмите кнопку теста +4. **Необязательно: модели для каждой задачи** — Включите `useMultiModelSettings` и настройте их отдельно + +Для Ollama: ключ API не требуется. Просто убедитесь, что `ollama serve` работает. + +--- + +## Следующие шаги + +- 📝 [Заметки по концепции](/docs/features/concept-notes) — Использует модель извлечения для каждой задачи +- 🎨 [Диаграммы](/docs/features/diagrams) — Использует модель диаграмм для каждой задачи +- 🔍 [Исследования](/docs/features/research) — Использует специальную модель для исследований +- ⚙️ [Настройки](/docs/getting-started/configuration) — Полный список параметров diff --git a/website/i18n/ru/docusaurus-theme-classic/footer.json b/website/i18n/ru/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/ru/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/ru/docusaurus-theme-classic/navbar.json b/website/i18n/ru/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/ru/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/sv/code.json b/website/i18n/sv/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/sv/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/sv/docusaurus-plugin-content-docs/current.json b/website/i18n/sv/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/sv/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/sv/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/sv/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..5248608a --- /dev/null +++ b/website/i18n/sv/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "Batchbearbetning" +description: "Bearbeta flera filer effektivt" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# Batchbearbetning + +<TLDR> +**Notemd bearbetar hela mappar i en enda åtgärd med konfigurerbar samtidighet och kontroll över överskrivning.** Klicka med höger mus på en mapp för att batch-lägga till wiki-länkar, extrahera koncept, utföra forskning eller översätta alla anteckningar därin. Samtidighetsgränser förhindrar API-rate-limit-fel. Framsteg rapporteras för varje fil. Överskrivningsbeteendet är konfigurerbart: skippa befintliga, lägg till eller ersätt. Misslyckade filer loggas utan att batchen avbruts. + +Detta ingår i [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Översikt + +Batchbearbetning omvandlar en mapp med anteckningar till en enda operation. Istället för att öppna varje anteckning och köra kommandon separat klickar du med höger mus på mappen och väljer uppgiften. Notemd itererar genom varje `.md`-fil, tillämpar den valda åtgärden och rapporterar framsteg i realtid. + +Denna funktion är avgörande för kunskapsextraktion i hela vaulten. Efter att ha importerat dussintals PDF, till exempel, kan batch-lägg-till-länkar följt av batch-extrahera-koncept bygga din kunskapsgraph på minuter istället för timmar. + +## Så här fungerar det + +### Batchexekveringsmodell + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **Filinsamling** -- Notemd skannar målmappen rekursivt (eller endast på toppnivå, beroende på inställningarna) och samlar in alla `.md`-filer. +2. **Samtidighetsindelning** -- Filerna delas in i chunkar baserat på `batchConcurrency`-inställningen. Varje chunk körs parallellt; chunkar körs sekventiellt. +3. **Exekvering** -- Varje fil bearbetas med samma logik som kommandot för en enskild fil. Inställningar för leverantör och modell per uppgift respekteras. +4. **Framstegsrapportering** -- En toast-notifikation uppdateras efter varje fil är klar och visar `N / Total`-framstegen. +5. **Felhantering** -- Om en fil misslyckas (API-fel, nätverkstidout etc.) loggas felet och batchen fortsätter. Den slutgiltiga sammanfattningen listar alla misslyckade filer. +6. **Slut** -- En sammanfattande toast-rapport ger information om totalt bearbetat, framgångar och misslyckanden. + +### Överskriva beteende + +När en fil som redan innehåller wiki-länkar, konceptanteckningar eller översättningar bearbetas, beror Notemds beteende på inställningen för överskrivning: + +| Modus | Beteende | +|------|----------| +| **Undvik** | Det befintliga innehållet lämnas orört. Endast oändrade filer bearbetas. | +| **Lägg till** (standard) | Nytt innehåll läggs till. De befintliga wiki-länkarna, koncepten eller översättningarna bevaras. | +| **Ersetta** | Filen bearbetas helt om. Alla tidigare Notemd-ändringar överskrivs. | + +Specifikt för wiki-länkar: om en anteckning redan innehåller `[[wiki-links]]` lämnar **Undvik**-modusen den orörd, medan **Ersetta** skickar hela anteckningen till LLM för ny länkinsertion. Använd **Undvik** för inkrementell bearbetning och **Ersetta** för ombearbetning efter en modellupgradering. + +### Konkurrenskontroll + +Inställningen `batchConcurrency` begränsar parallella API-anrop. Detta förhindrar rate-limit-fel (HTTP 429) vid bearbetning av stora mappar hos leverantörer med strikta kvoter. + +| Konkurrens | Rekommenderat för | Typiskt rate-limit-inverkan | +|-------------|----------------|---------------------------| +| `1` | Gratis nivåer, strikta leverantörer | Ingen (seriell) | +| `3` (standard) | De flesta molnleverantörer | Låg | +| `5` | Ollama (lokal), generösa nivåer | Ingen / Låg | +| `10` | Lokala modeller med snabb inferens | Ingen | + +Om du stöter på 429-fel under batchbearbetning, sänk samtidigheten till 1 eller 2. + +## Konfiguration + +| Inställning | Standard | Effekt | +|---------|---------|--------| +| `batchConcurrency` | `3` | Maximal antal parallella API-anrop under mappoperationer | +| `batchOverwriteExisting` | `false` | Överskriva den befintliga Notemd-innehållet. `false` = lägg till-läge. | +| `batchSkipProcessed` | `false` | Undvik filer som redan innehåller Notemd-markörer (t.ex. wiki-länkar) | +| `batchRecursive` | `true` | inkludera undermappar vid skanning av mappen | +| `enableStableApiCall` | `false` | Aktivera återförsökslogik (upp till 4 försök) per fil under batchprocessen | + +### Per-uppgiftsmodeller i batch + +Varje batchoperation använder den motsvarande per-uppgiftsmodellen. Batch-add-links använder `addLinksProvider`, batch-research använder `researchProvider`, osv. Detta innebär att du kan tilldela billiga modeller för stora volymer av operationer och reservera dyra modeller för uppgifter där kvaliteten är viktig. + +## Exempel + +Du har en mapp `papers/` som innehåller 40 importerade forskningsanteckningar. Du vill lägga till wiki-länkar och extrahera koncept från dem alla: + +1. Klicka höger på mappen `papers/` +2. Välj **"Notemd: Processa mapp (lägg till länkar)"** +3. Notemd skannar mappen, hittar 40 `.md`-filer och bearbetar 3 i taget (standardkonkurrens) +4. En framstegsnotis visar: `12/40 files processed...` +5. Efter cirka 3 minuter ger en sammanfattningsnotis information om: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. Upprepa med **"Notemd: Processa mapp (extrahera koncept)"** för att skapa konceptnotiser för alla 40 + +Den enda misslyckade filen registreras. Du kan köra om endast den filen senare. + +## Tips + +- **Börja med låg konkurrens** -- Om du är osäker på din leverantörs hastighetsgränser, börja med `1` och öka gradvis. +- **Använd avbrytningsläge för inkrementella uppdateringar** -- Efter den första fulla batchen byt till `batchSkipProcessed: true` så att endast nya notiser bearbetas vid efterföljande körningar. +- **Aktivera stabila API-anrop** -- `enableStableApiCall: true` lägger till återförsökslogik som återhämtar sig från tillfälliga nätverksfel under långa batchar. +- **Kör om efter modellupgraderingar** -- Om du byter till en bättre modell, ställ in `batchOverwriteExisting: true` och kör om för att få förbättrade länkar och koncept. + +--- + +## Nästa steg + +- [Workflows](/docs/features/workflows) -- Kedja samman batchuppgifter till enkla sidofältsknappar +- [Custom Prompts](/docs/advanced/custom-prompts) -- Anpassa prompter för batchextraktion +- [Troubleshooting](/docs/advanced/troubleshooting) -- Läsa till på hastighetsgränsfel och anslutningsfel under batchkörningar +- [LLM Tjänsteleverantörer](/docs/providers/overview) -- Referens för modellkonfiguration per uppgift diff --git a/website/i18n/sv/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/sv/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..a66ce0c4 --- /dev/null +++ b/website/i18n/sv/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "Särskilda prompter" +description: "Anpassa LLM prompterna enligt dina behov" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# Särskilda prompter + +<TLDR> +**Notemd gör det möjligt att överskriva den standard LLM prompten för varje typ av uppgift.** Särskilda prompter ger dig kontroll över vad modellen prioriterar: du kan begränsa konceptutvinning till en specifik disciplin, ändra länkstilen eller styra översättningstonen. Promptvariabler som `{{content}}` och `{{concept}}` ersätts vid körning. Funktionen för fokuserad inlärningsområde lägger till ditt studieområde för att automatiskt begränsa utvinningresultaten. + +Detta ingår i [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Översikt + +De inbyggda prompterna för Notemd är skrivna för allmännt användningsomfattande kunskapsarbete. De fungerar bra över olika områden, men de lämnar också utrymme för områdespecifik förbättringar. Särskilda prompter låter dig specificera exakt hur LLM ska bete sig för din användningsfall – vare sig det handlar om att endast utvinna medicinsk terminologi, endast länka namngivna entiteter eller översätta i en formell stil. + +Särskilda prompter ersätter inte hela systemprompten. De överskrivs eller kompletterar den **uppgiftsspecifika instruktionstecknet** samtidigt som de bevarar den strukturella utdataformaten (t.ex. `CONCEPT:`-rader, wiki-länksyntax) som Notemd behöver för att kunna analysera. + +## Så här fungerar det + +### Promptarkitektur + +Varje Notemd-uppgift följer samma promptstruktur: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **Bassystemprompt** -- Ställer in assistentens personlighet. Oöverskrivbar. +2. **Fokuserad inlärningsområde** -- Lägger till `Relevant Fields: [medicine / law / computer science / ...]` för att begränsa omfattningen. Detta är en inställningstumblare, inte en rå prompt. +3. **Särskild uppgiftsprompt** -- Ersetter de standarduppgiftsinstruktionerna (t.ex. vilka koncept som ska utvinnas, hur aggressivt länkar ska görs). +4. **Utdataformat** -- Strukturella regler (`CONCEPT:`-rader, wiki-länkformat). Alltid läggs till av Notemd för att säkerställa analyserbarhet. +5. **Innehåll** -- Den faktiska texten, som ersätts vid körning med hjälp av `{{content}}`. + +### Promptvariabler + +Variabler ersätts vid exekvering. Tillgängliga variabler varierar beroende på uppgiften: + +| Variable | Uppgifter | Erstatts med | +|----------|-------|---------------| +| `{{content}}` | Alla | Notatens eller utvald texten | +| `{{concept}}` | Mall för konceptnotat | Det extraherade konceptnamnet | +| `{{description}}` | Mall för konceptnotat | Beskrivning av konceptet genererad av LLM | +| `{{backlinks}}` | Mall för konceptnotat | Lista över källnotat med länkar | +| `{{date}}` | Mall för konceptnotat | Nuvarande datum (YYYY-MM-DD) | +| `{{language}}` | Översättning | Måloutputspråk | +| `{{source}}` | Mall för konceptnotat | Basnamn på källnotat | + +### Fokuserat inlärningsområde + +Funktionen för fokuserat lärande är en genväg för att definiera området. Istället för att skriva en anpassad instruktion som nämner ditt område, ställer du in `focusedLearningDomain` i inställningarna: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +Detta lägger till `Relevant Fields: [medicine]` i början av extraktionsinstruktionen, vilket får LLM att prioritera domänrelaterade koncept och undertrycka de generiska. Det är lättare än en fullständig anpassad instruktion och fungerar för alla extraktionsuppgifter. + +## Konfiguration + +| Inställning | Standard | Effekt | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | Överskriva standardfrågan för add-links-uppgiften | +| `customExtractConceptsPrompt` | `''` | Överskriva standardfrågan för konceptextraktion | +| `customResearchPrompt` | `''` | Överskriva standardfrågan för forskning + sammanfatta | +| `customTranslatePrompt` | `''` | Överskriva standardöversättningsinstruktionen | +| `customDiagramPrompt` | `''` | Överskriva standardfrågan för diagramgenerering | +| `focusedLearningDomain` | `''` | Lägg till disciplinkontext i utvinning- och länkingsinstruktionerna | +| `extractConceptsMinimalTemplate` | `true` | Använd endast titel-formatet för konceptnoter (påverkar `{{concept}}`-templates omfattning) | +| `customConceptNoteTemplate` | `''` | Överskriva mallen för konceptnotatfilen med full stöd för variabler | + +**När ett anpassat prompt-fält är tomt används den inbyggda standardprompten.** + +## Exempel + +Du är en medicinsk forskare som extraherar koncept från protokoll för kliniska prövningar. Standardprompten extraherar generiska substantiv tillsammans med medicinska termer, vilket förstör din konceptmapp. + +**Lösning:** Ställ in en fokuserad inlärningsområde och en anpassad extraktionsfråga. + +1. Ställ in `focusedLearningDomain` på `medicine` +2. Ställ in `customExtractConceptsPrompt` till: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +Nu när du kör "Extract concepts" på en klinisk anteckning, genererar LLM: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +Istället för det standardbeteende som också kan extrahera oönskade generiska termer som "hospital" eller "month". + +## Tips + +- **Börja med den fokuserade inlärningsområdet** innan du skriver en fullständig anpassad prompt. Det täcker 80% av användningsfallen med en enda inställning. +- **Bevara utdataformatet** -- Ta aldrig bort formatinstruktioner som "one per line" eller "CONCEPT: prefix" från anpassade prompts. Notemds parser är beroende av dem. +- **Testa med en enda anteckning först** -- Anpassade prompts kan ha oväntade effekter på extraktionsomfattningen. Kontrollera på en anteckning innan batchbearbetning. +- **Håll prompterna korta** -- Överlånga anpassade prompts förbrukar tokener och kan minska modellens fokus. + +--- + +## Nästa steg + +- [Wiki-Links](/docs/features/wiki-links) -- Vad som länkas när du anpassar add-links prompten +- [Concept Notes](/docs/features/concept-notes) -- Konceptanteckningsmallar och `{{concept}}`-variabeln +- [Batch Processing](/docs/advanced/batch-processing) -- Tillämpa anpassade prompts på hela mappar +- [Troubleshooting](/docs/advanced/troubleshooting) -- Lösa problem där anpassade prompts ger oväntad utdata diff --git a/website/i18n/sv/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/sv/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..40dd262c --- /dev/null +++ b/website/i18n/sv/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "Felaktighetsfelsökning" +description: "Vanliga problem och lösningar" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Felaktighetsfelsökning + +<TLDR> +**De flesta Notemd-problemen faller in i fyra kategorier: viktiga API-problem, nätverksanslutning, autentiseringsfel (401/403) och hastighetsgränser (429).** Den inbyggda anslutningstesten och diagnostikpanelen identifierar orsaken snabbt. Denna sida täcker varje vanligt felmeddelande, dess orsak och lösningen. För problem som inte listas här, rapportera dem på GitHub Issues tillsammans med diagnostikutdata. + +Detta ingår i [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Översikt + +Notemd är beroende av externa tjänster -- LLM-tillhandahållare och sök API-tjänster -- så de flesta problem har sitt ursprung utanför pluginet självt. Diagnostikpanelen i inställningarna ger en strukturerad visning av den senaste API-anropet, inklusive förfrågan URL, svarsstatus och felkroppen. Kontrollera den alltid först innan du undersöker vidare. + +## Hur det fungerar: Diagnostik + +### Anslutningstest + +Varje konfigurationsavsnitt för tillhandahållare har en knapp **"Testa anslutning"**. Genom att klicka på den skickas en minimal API-förfrågan (vanligtvis en modelllista eller en kort komplettering) och det rapporteras om det lyckades eller vilket specifika HTTP-fel som uppstod. Detta är snabbast sättet att verifiera att din API-nyckel och basen URL är korrekta. + +### Diagnostikpanelen + +**Inställningar --> Notemd --> Diagnostik** visar: + +| Fält | Innehåll | +|-------|---------| +| Sista tillhandahållare | Vilken tillhandahållare som anropades senast | +| Sista modell | Vilken modell som anropades senast | +| Sista status | HTTP statuskod eller transportfel | +| Sista fel | Rå felmeddelande från API | +| Sista begäran URL | Hela URL av den senaste förfrågan (redigerad API-nyckel) | +| Sista svarskroppen | Avklippt svarskropp (första 500 tecken) | + +Kopiera hela diagnostikutdata när du rapporterar problem på GitHub. + +## Vanliga fel + +### API Nyckel ogiltig eller saknad + +**Symptom:** HTTP 401 eller “Felaktig API-nyckel angedd” + +**Orsak:** Nyckeln API saknas, innehåller mellanrum eller tillhör en annan leverantör. + +**Lösning:** +1. Kontrollera att nyckeln inte har ledande/avslutande mellanrum +2. Bekräfta att nyckeln stämmer överens med den valda leverantören (en OpenAI-nyckel fungerar inte med Anthropic) +3. Kontrollera att ditt konto har krediter eller en aktiv prenumeration +4. Klicka på **"Test Connection"** för att verifiera + +### Nätverks-/anslutsfel + +**Symptom:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**Orsak:** API-endpointen är otillgänglig från din dator. + +**Lösning:** +1. Kontrollera din internetanslutning +2. Om du är bakom en proxy eller brandvägg, se till att API-domänen inte är blockerad +3. För Ollama: bekräfta att `ollama serve` körs (`ollama list` bör returnera modeller) +4. För LMStudio: bekräfta att servern körs på `localhost:1234` +5. Prova en annan transport – mobilanvändare bör se till att `requestUrl`-transporten är aktiv +6. Aktivera `enableStableApiCall` för automatiska försök vid tillfälliga fel + +### 403 Forbidden + +**Symptom:** HTTP 403 + +**Orsak:** Ditt API-nyckel är giltig men har inga rättigheter till den begärda resursen. + +**Lösning:** +1. Vissa modeller kräver särskild åtkomst (t.ex. GPT-4 via Azure kräver en deploymentnamn) +2. Vissa leverantörer begränsar modeller efter plannivå – kontrollera ditt konto +3. Regionala begränsningar kan gälla (vissa kinesiska leverantörer blockerar internationella IP:er och vice versa) +4. Kontrollera att modellnamnet stavs korrekt (t.ex. `gpt-4o` inte `gpt-4o-mini` när den minimodell som din plan tillåter är den enda) + +### Rate Limit (429) + +**Symptom:** HTTP 429 eller "Rate limit exceeded" + +**Orsak:** För många förfrågningar under en kort tidsperiod. + +**Lösning:** +1. Minska `batchConcurrency` till `1` eller `2` +2. Vänta några minuter innan du försöker igen +3. Kontrollera din leverantörs dokumentation om rate limit för ditt plannivå +4. Aktivera `enableStableApiCall` för automatisk återförsök med backoff +5. Överväg att byta till en leverantör med högre gränser (DeepSeek, Ollama) + +### Model Not Found + +**Symptom:** "Model not found" eller HTTP 404 + +**Orsak:** Modellnamnet existerar inte hos den valda leverantören. + +**Lösning:** +1. Klicka på **"Get Model List"** för att se alla tillgängliga modeller för din leverantör +2. Vissa modellnamn förändras med tiden -- kontrollera det aktuella namnet i leverantörens dokumentation +3. För Ollama: kör `ollama list` för att se de hämtade modellerna; endast nedladdade modeller är tillgängliga + +### Inga länkar / inga koncept genererade + +**Symptom:** Kommandot körs men ger inget utdata + +**Orsak:** LLM returnerade en tom eller oanalyserbar svar. + +**Lösning:** +1. Kontrollera diagnostikpanelen för det faktiska LLM-svaret +2. Prova en mer kapabel modell (vissa små modeller har svårt med strukturerad utdata) +3. Se till att notan har tillräckligt med innehåll (>50 ord) +4. Granska din anpassade prompt för konflikterande instruktioner +5. Stäng av synonymsuppression tillfälligt för att se om det filtrerar för aggressivt + +### Doubao Endpoint ID saknas + +**Symptom:** Fel vid användning av ByteDance Doubao-leverantören + +**Orsak:** Doubao kräver en Ark endpoint ID (format: `ep-xxxxxxxx-xxxx-xxxx`) istället för en modellnamn. + +**Lösning:** Byt ut den standardmässiga placeringsmodellen mot din egentliga endpoint-ID från Volcengine-konsolen. + +## Konfiguration + +| Diagnostikinställningar | Plats | Syfte | +|--------------------|----------|---------| +| **Testa anslutning** | Inställningar --> Provider-avsnitt | Kontrollera API-nyckeln och anslutningen | +| **Ta emot modelllista** | Inställningar --> Provider-avsnitt | Bekräfta vilka modeller som är tillgängliga | +| `enableStableApiCall` | Inställningar --> Avancerat | Aktivera omföringsfunktion med backoff | +| `batchConcurrency` | Inställningar --> Batch | Styr parallellismen för att undvika hastighetsgränser | + +## Så här rapporterar du problem + +Om ditt problem inte täcks ovan: + +1. Öppna **Inställningar --> Notemd --> Diagnostik** +2. Kopiera hela diagnostikutdatalet +3. Öppna en GitHub-issue på [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +4. Inkludera: Obsidian version, Notemd version, leverantör, modell, diagnostikutdata och steg för att återupprepa problemet +5. Redigera din API-nyckel från alla delade loggar + +--- + +## Nästa steg + +- [LLM Leverantörer](/docs/providers/overview) -- Fullständig referens för leverantörsinställningar +- [Batch Processing](/docs/advanced/batch-processing) -- Konkurrens och återförsökssättningar för stora operationer +- [Custom Prompts](/docs/advanced/custom-prompts) -- Fixa oväntat LLM-beteende genom att justera prompter diff --git a/website/i18n/sv/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/sv/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..20656d8d --- /dev/null +++ b/website/i18n/sv/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "Vanliga frågor" +description: "Vanliga frågor om installationen, funktionerna och användningen av Notemd" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# Vanliga frågor + +<TLDR> +**Snabba svar på de vanligaste Notemd-frågorna.** Omfattar installation (5 minuters inställning), stöd för 30+ LLM-leverantörer, alternativ för lokalt/cloud-modell, en-klicks-arbetsflöden, flerspråkig UI (21 språk), automatisering av wiki-länkar, integrering med forskning, PDF-läsararbetsflöden, diagramgenerering och licensiering enligt open source. Alla funktioner fungerar offline med Ollama. +</TLDR> + +--- + +## Installation & Inställning + +### Hur installerar jag Notemd i Obsidian? + +Öppna Obsidian **Settings → Community Plugins → Browse** → sök efter **"Notemd"** → **Install** → **Enable**. + +**Krav:** +- Obsidian 0.15.0+ +- Stöds på desktop (Windows, macOS, Linux) och mobil (iOS, Android) + +**Manuell installation:** +1. Ladda ner `main.js`, `styles.css`, `manifest.json` från [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) +2. Placera dem i `<your-vault>/.obsidian/plugins/notemd/` +3. Ladda om Obsidian och aktivera pluginet + +**Statistik:** 4k+ nedladdningar, 44 versioner, licensierat enligt MIT. + +--- + +## LLM Konfiguration + +### Vilka LLM-tjänsteleverantörer stöds av Notemd? + +Notemd stöder **30+ leverantörer**: + +**Molntjänsteleverantörer:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonnet, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**Fokuserat på Kina:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**Lokal/självhostad:** +- Ollama +- LM Studio +- Alla OpenAI-kompatibla endpointer + +**Gångvägar:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models, Fireworks, LiteLLM, Nebius, Cerebras +- Hugging Face, Vercel AI Gateway, Requesty + +### Kan Notemd fungera med lokala LLMs? + +**Ja, fullt stödd.** Notemd fungerar med: +- **Ollama** (inbyggd integration) +- **LM Studio** (genom OpenAI-kompatibelt endpoint) +- **vLLM, LocalAI, text-generation-webui** (genom OpenAI-kompatibel modus) + +Alla uppgifter fungerar med lokala modeller: länkning, konceptgenerering, översättning, forskning och diagramgenerering. + +**Exempel på blandning:** +- Ollama (lokalt) för länkning → snabbt, privat, utan kostnad +- OpenAI för forskning → hög kvalitet, integrering med webbsökning +- Gemini för översättning → multimodal stöd + +### Hur konfigurerar jag olika modeller för olika uppgifter? + +I **Notemd Settings** har varje uppgift självständiga valare för leverantör/modell: + +| Uppgift | Exempel på konfiguration | +|------|----------------------| +| **Länkning** | DeepSeek (snabb, billig) | +| **Konceptgenerering** | Claude Opus (hög kvalitet) | +| **Forskning** | Perplexity eller GPT-4o (webbbaserat) | +| **Översättning** | Gemini Flash (multimodal) | +| **Diagramgenerering** | Ollama (lokal, privat) | + +Denna optimering per uppgift balanserar hastighet, kostnad och kvalitet. + +--- + +## Kärnfunktioner + +### Hur skiljer Notemd sig från ChatGPT vid läsning av artiklar? + +| Dimension | ChatGPT | Notemd | +|-----------|---------|--------| +| **Utdataplats** | Chatthistorik (temporär) | Obsidian vault (persistenta filer) | +| **Resultatformat** | Textuell svar | Wiki-länkar, konceptnoter, diagram, översättningar | +| **Långsiktig värde** | Forsvinner efter session | Samlas till en kunskapsbas | +| **Återanvändbarhet** | Måste frågas om igen | Filerna stannar kvar, länkarna utvecklas | + +**Använd ChatGPT för:** Snabba Q&A, enstaka förklaringar +**Använd Notemd för:** Att bygga en persistent, strukturierad kunskapsbas under veckor/månader + +### Hur lägger Notemd till wiki-länkar i noter? + +**Process:** +1. Du kör "Processera fil (lägg till länkar)" på en nota +2. Notemd skickar texten till din konfigurerade LLM +3. Den LLM identifierar viktiga koncept i sammanhanget +4. Notemd infogar `[[wiki-links]]` vid varje förekomst av ett koncept +5. Valfritt kan det automatiskt skapa konceptanteckningar i en mapp du anger + +**Funktioner:** +- Synonymsuppression (undviker duplikat som "transformer" vs "transformers") +- Backlänkar från konceptanteckningar till källan +- Länkintegritet vid omnamnning/eliminering +- Ren extraktionsläge (extraherar koncept utan att ändra det ursprungliga) + +### Vad är Notemd-enklicksarbetsflödet? + +**Enklicksarbetsflöden** kopplar samman flera åtgärder i en **enda sidofältsknapp**. + +**Standardarbetsflöde:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**Resultat:** En klick körs för att: +1. Lägga till wiki-länkar till den aktuella anteckningen +2. Generera konceptanteckningar för nya termer +3. Undersöka och lägga till bakgrundsinformation +4. Komprimera till en Mermaid-diagram + +**Anpassade arbetsflöden:** Definiera dina egna i Inställningar med DSL-formatet. Varje arbetsflöde blir en återanvändbar sidoflanksknapp. + +### Hur jämförs Notemd med Copilot eller Smart Connections? + +Dessa plugin-lösningar löser olika problem: + +- **Copilot** — Samtal i första hand. Du chatterar med en AI om dina anteckningar. AI:s svar stannar i chattpanelen; de modifierar inte din säkerhetslåda. +- **Smart Connections** — Upptäckt i första hand. Den hittar semantiskt liknande anteckningar med hjälp av embeddings. Den skapar eller modifierar inte innehåll. +- **Notemd** — Skrivning i första hand. AI bearbetar dina anteckningar och skriver strukturerade resultat (wiki-länkar, konceptanteckningar, forskning, diagram, översättningar) direkt till din säkerhetslåda som permanenta filer. + +| Vad du behöver | Rekommenderad plugin | +|----------------|-------------------| +| Chattera med AI om anteckningar | Copilot | +| Hitta liknande/relaterade anteckningar | Smart Connections | +| Auto-insätta wiki-länkar och bygga en kunskapsgraph | **Notemd** | +| Generera konceptanteckningar med baklänkar | **Notemd** | +| Skapa diagram från anteckningsinnehåll | **Notemd** | +| Undersök ett ämne och lägg till sammanfattningar | **Notemd** | + +Alla tre kan användas tillsammans – de kompletterar varandra istället för att konkurrera. + +--- + +## Undersökning & Översättning + +### Vilka söktjänster fungerar med Notemd-undersökningar? + +| Tjänst | **API** nödvändigt | Kvalitet | Noter | +|---------|-----------------|---------|-------| +| **Tavily** | Ja | Hög | Rekommenderad, AI-optimerad sökning | +| **DuckDuckGo** | Nej | Experimentell | Ingen inställning, lägre kvalitet | + +**Hur "Research & summarize" fungerar:** +1. Du väljer ett ämne eller kör det på den nuvarande anteckningen +2. Notemd frågar söktyget +3. Resultat → LLM sammanfattning +4. Sammanfattningen läggs till i din anteckning med källciteringar + +**Resultat:** En permanent forskningsspår i din säkerhetslåda, inte i webbläsartabeller. + +### Stöder Notemd kinesiska eller andra språk? + +**UI språk:** 21+ stödda +- Engelska, 中文 (简体), 中文 (繁體), 日本語, 한국어 +- Arabiska, tyska, franska, spanska, ryska, portugisiska, italienska +- Hindi, bengalska, thailändska, vietnamesiska, turkiska, polska, tjeckiska och mer + +**Språk för utdata från uppgift:** Oberoende konfiguration +- UI på kinesiska + utdata på engelska: ✅ +- UI på engelska + utdata på kinesiska: ✅ + +**Användningsfall:** Bilinguala forskare kan behålla UI på sin modersmål samtidigt som de genererar engelskspråkiga anteckningar för publicering. + +--- + +## PDF och akademiska arbetsflöden + +### Kan jag använda Notemd för att läsa artiklar/PDF? + +**Ja.** Arbetsflöde: +1. **Konvertera PDF till Markdown** med [MinerU](https://github.com/opendatalab/MinerU) (rekommenderat för akademiska artiklar) +2. Öppna Markdown-filen i Obsidian +3. Kör Notemd-uppgifter: + - **Lägg till wiki-länkar** till viktiga termer + - **Generera konceptnoter** för okänd terminologi + - **Extrahera ursprungstexten** med anpassade frågor (t.ex. "Vilka är begränsningarna?") + - **Undersöka bakgrunden** för citerade metoder/dataset + - **Översätta** svåra delar + - **Komprimera till Mermaid-diagram** för strukturell förståelse + +**Version 1.9.1+:** Extraktion av kapitelstruktur med TOC-stöd + +**Resultat:** Din artikelläsning blir ett strukturerat, länkbart kunskapsobjekt i din vault. + +--- + +## Diagram & visualisering + +### Vilka graf/diagramtyper kan Notemd generera? + +| Typ | Stöd | Funktioner | +|------|---------|----------| +| **Mermaid** | Fullt | Flödesschema, sekvens, klass, tillstånd, ER, Gantt, syntaxautokorrektur, batchvalidering | +| **JSON Canvas** | Fullt | Obsidian-inbyggda canvaslayouter | +| **Vega-Lite** | Fullt | Datacharter, tidsserier, stavar, spridning, anpassningsbar | +| **HTML** | Fallback | För osupportade diagramtyper | +| **Redigerbart HTML/SVG** | Explicit mål | Självständig inbyggd SVG med semantiska Draw.io-stil annoteringar | +| **Draw.io / Drawnix artefakter** | Exportgräns | Deterministisk XML/JSON från `SemanticFigureModel`; inga editor-runtidsberoenden | + +**Mermaid auto-fix:** Djup felsökningsläge för att reparera: +- Brottna pilar (`-->`, `-.->`, `==>`) +- Ogiltiga etiketter, kommentarer +- Syntaxfel i undergraf +- Formnotering (`[`, `(`, `{`, `((`) +- Pipeltecken i etiketter +- Notbilagor + +**Arbetsflöde:** +1. Kör "Summarize as Mermaid diagram" på en not +2. Förhandsvisning i modalrutan +3. Exportera som SVG eller PNG +4. Eller spara som `.mmd`-fil i vault + +--- + +## Öppen källkod och gemenskap + +### Är Notemd gratis och öppen källkod? + +**Ja.** +- **Licens:** MIT (lax, kommersiellt användning tillåtet) +- **Källkoden:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **Inga betalda nivåer, inget molnlock-in, inga telemetriska data** +- **Gemenskap:** 234+ GitHub-stjärnor, aktiv Discord + +**Du äger:** +- Dina data (stannar i din vault) +- Dina arbetsflöden (anpassa prompts, modeller, kedjor) +- Din integritet (lokal LLM-stöd) + +**Bidra:** Pull requests välkomna. Se [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +## Felaktighetsfelsökning + +### Mina LLM-anrop misslyckas. Vad ska jag kontrollera? + +1. **Är API-nyckeln giltig?** Kontrollera Settings → Provider Configuration +2. **Är modellnamnet korrekt?** Använd “获取模型列表” (Get Model List)-knappen i inställningarna +3. **Är nätverket tillgängligt?** Vissa leverantörer kräver VPN +4. **Takthetsgränser?** Kolla leverantörs dashboard +5. **Diagnostik:** Kör "Connection Test" i inställningarna för detaljerade felloggar + +### Notemd är långsamt. Hur kan jag öka hastigheten? + +1. **Använd snabbare modeller:** DeepSeek, Gemini Flash, GPT-4o-mini +2. **Minsk chunk-storleken:** Inställningar → Smart Chunking → sänk ordantal +3. **Parallel bearbetning:** Inställningar → Batch Processing → öka samtidighet +4. **Lokala modeller:** Ollama för uppgifter som inte behöver webbsökning + +### Kan Notemd fungera 100% offline? + +**Ja, med Ollama.** Ingen API-nyckel, inget internet, inga data lämnar din dator: + +1. Installera [Ollama](https://ollama.com) och kör `ollama serve` +2. I Notemd inställningar, välj **Ollama** som din leverantör +3. Ladda ner en modell: `ollama pull llama3` (eller qwen2.5, gemma2, osv.) +4. Alla funktioner fungerar: wiki-länkar, konceptnoter, översättning, diagram + +**DuckDuckGo-forskning** fungerar också utan API-nyckel (experimentell kvalitet). + +Med molnlleverantörer (OpenAI, Anthropic, Google, DeepSeek, osv.) skickas din notens innehåll som API-inmatning. Kolla varje leverantörs integritetspolicy för detaljer om datahantering. + +### Är mina data skickade till molnet? + +**Det beror på din leverantör:** + +| Typ av leverantör | Skickas data till molnet? | Noter | +|--------------|---------------------|-------| +| **Ollama (lokal)** | Nej | Allt stannar på din dator | +| **LMStudio (lokal)** | Nej | Samma som Ollama | +| **DeepSeek, OpenAI, osv.** | Ja | Obs! Innehållet skickas som API-inmatning för bearbetning | +| **OpenRouter, AIHubMix** | Ja | Gateway som dirigerar till molntjänsteleverantörer | + +Notemd samlar i sig **ingen telemetri, inga analyser, inga användardata**. Pluginet är helt öppen källkod (MIT). Den enda datan som lämnar din dator är det du uttryckligen skickar till din konfigurerade LLM-leverantör. + +### Vilket Obsidian AI-plugin är bäst för forskning? + +Det beror på din forskningsarbetsflöde: + +| Behov | Plugin | Anledning | +|------|--------|-----| +| Hitta relaterade artiklar/noter | Smart Connections | Upptäckt av semantisk likhet | +| Chatta om dina källor | Copilot | Samtal med vault-kontext | +| Automatiskt länka koncept + skapa noter | **Notemd** | AI identifierar koncept, infogar länkar, skapar noter | +| Webbutforskning + sammanfatta till noter | **Notemd** | Tavily/DuckDuckGo sökning → LLM sammanfattning → läggs till i anteckningen | +| Generera diagram från forskning | **Notemd** | Mermaid/Canvas/Vega-Lite från anteckningens innehåll | + +**Rekommenderad kombination:** Smart Connections (upptäckt) + Notemd (strukturering) + Copilot (diskussion). + +--- + +## Få hjälp + +- **Dokumentation:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **GitHub Issues:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **Sponsör:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/sv/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/sv/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..89990912 --- /dev/null +++ b/website/i18n/sv/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "Konceptnoter" +description: "Generera och hantera konceptnoter – fristående noter för viktiga koncept som extraheras från din säkerhetslåda" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# Konceptnoter + +<TLDR> +**Notemd extraherar viktiga koncept från dina noter och skapar fristående konceptnotefiler.** LLM identifierar kärntermer, genererar en `.md` fil per koncept i en konfigurerbar mapp och kan valfritt lägga till baklänkar till den ursprungliga noten. Stöd för synonymsuppression, modellval per uppgift, namnfilsanering samt en 4-stegs deduplikeringsmotor. Detta ingår i [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Översikt + +Konceptnoter är byggstenarna i en sammanlänkad kunskapsbas. När du bearbetar en not, Notemd: + +1. **Skickar din text till en LLM** med en strukturerad extraktionsinstruktion +2. **Parserar `CONCEPT:` rader** från LLM svar +3. **Skapar en `.md` fil per koncept** i en angiven mapp +4. **Lägger till baklänkar** till den ursprungliga noten (när det är aktiverat) + +## Så här fungerar det + +### Extraktionspipelinen + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### Extraktionsinstruktionen + +LLM tar emot en instruktion som instruerar den att: + +- Extrahera **substantiv eller substantivfraser** som är centrala för dokumentets tema +- **Prioritera specificitet** – "Dielectric Relaxation" framför "Relaxation" +- **Normalisera till singular** – "models" blir "model" +- **Supprimera underkoncept** – om "dielectric relaxation" förekommer, extrahera inte även "relaxation" +- **Ignorera** referenser/bibliografisektioner, vanliga substantiv, företags/productnamn +- Skriv ut ett koncept per rad som `CONCEPT: Term Name` + +**Undanhållning av synonym** (valfritt): lägg till "Undvik att extrahera synonym, semantiskt liknande kärnkoncept eller nyckelord när det är möjligt" i början av instruktionen. + +**Fokuserad inlärningsområde** (valfritt): lägg till `Relevant Fields: [domain]` i början för att begränsa extraktionen till ett visst område. + +**Språksoverställning** (valfritt): lägg till "Utdatakoncepten MÅSTE vara på [språk]." + +### Delning i chunkar + +Långa noter delas med `settings.chunkWordCount`. Varje chunk skickas separat. Koncept från alla chunkar samlas i en `Set` — dubbletter mellan chunkar tas bort tystligen. LLM-fel i enskilda chunkar avbryter inte operationen. + +## Skapande av konceptnoter + +### Regler för filnamn + +| Regel | Beteende | +|------|----------| +| Striktecken/underskott | Erstatts med mellanrum | +| Särskilda tecken | Ta bort: bakstrikt, framsikt, kolon, stjärka, frågetecken, citattecken, vinkelmärken, rör, hash-tecken, caret-tecken, parenteser | +| Whitespace | Kollapsas och trimmas | +| Max längd | 100 tecken (avklippat + återtrimmat) | +| Tom/alla punkter resultat | Övergå tyst | + +Exempel: `A-B: Key*Term` blir `A B KeyTerm.md` + +### Mallar + +**Fullständig mall** (baklänkar aktiverade, minimal mall avstängd): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**Minimal mall** (när `extractConceptsMinimalTemplate: true`): + +```markdown +# Concept Name +``` + +### Uppdatera befintliga anteckningar + +När en konceptfil redan existerar: + +1. Om baklänkar är aktiverade och källanteckningen inte redan listas, lägg till en baklänk +2. Om en `## Linked From`-sektion existerar, infog den före nästa `##`-huvud +3. Om inget `## Linked From` finns, lägg till sektionen i slutet +4. Duplicerade baklänkar kontrolleras och överskogs + +### Konfiguration + +| Inställning | Standard | Effekt | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | Huvudstängare. Avstängt = inga anteckningar skapas | +| `conceptNoteFolder` | `''` (inaktiverat) | Mappväg för konceptanteckningar | +| `extractConceptsMinimalTemplate` | `true` | Endast titel-anteckningar (inga Linked From) | +| `extractConceptsAddBacklink` | `false` | Lägg till backlänkar vid fristående extraktion | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | Per-uppgift LLM för konceptextraktion | +| `extractConceptsLanguage` | `'en'` | Utdata språk för konceptnamn | +| `replaceSynonymsDuringConceptExtraction` | `false` | Aktivera synonymsuppression i prompten | +| `generateConceptLogFile` | `false` | Skriv en `.log`-lista över skapade koncept | + +**Viktigt:** Inställningarna `extractConceptsAddBacklink` och `extractConceptsMinimalTemplate` påverkar endast **den dedikerade extraktionskommandot**. Kommandot "Lägg till länkar" skapar alltid anteckningar med fullständigt mallformat och backlänkar. + +## Deduplikering + +Dedup-kommandot (`Notemd: Check & remove duplicate concept notes`) kör en 5-stegsanalys: + +### Steg 1: Exakt filnamnmatchning + +Jämförelse av basnamn oberoende av storlek inom den konfigurerade omfattningen. + +### Steg 2: Detektering av pluralform + +Ta bort suffixer: `-ies` till `-y`, `-es` tas bort, `-s` tas bort. Jämför singularformen med omfattningsfilerna. Hanterar inte oregelbundna pluraler (children/child). + +### Steg 3: Normalisering av symboler + +Gäller: `toLowerCase()`, byt ut streck- och underströk tecken mot mellanrum, ta bort icke-alfanumeriska tecken, sammanfoga whitespace. De som normaliseras på samma sätt märks. + +### Steg 4: Enordig innehållshållning + +Enordiga konceptanteckningar kontrolleras mot basnamn på flerordiga scope-filer. Ej köras när scope är `concept_folder_only`. + +### Steg 5: Bekräftelse och radering + +Alla kandidater visas i en bekännelse-modal. Godkända objekt flyttas till systemets soptask. Operationen kan ställas in mellan varje radering. + +### Scope-läges + +| Modus | Jämförs mot | +|------|-------------------| +| `vault` (standard) | Alla vault `.md`-filer utom konceptmappen | +| `concept_folder_only` | Andra konceptanteckningar i mappen | +| `include` | Filer i specifika listade mappar | +| `exclude` | Alla vault-filer utom konceptmappen + listade mappar | + +## Användning + +### Extrahera koncept (Standalone) + +1. Öppna en anteckning +2. Kör **"Notemd: Extrahera koncept"** från kommandopalletten +3. Konceptanteckningar skapas i den konfigurerade mappen + +### Extrahera och generera innehåll + +**"Notemd: Extrahera koncept och skapa titlar"** — extraherar koncept och kör sedan "Generera från titel" för varje anteckning i konceptmappen. Detta genererar innehåll för **alla** konceptanteckningar i mappen, inte bara de nyligen skapade. + +### Skapa wiki-länk från val + +1. Highlightera text i redigeraren +2. Kör **"Notemd: Skapa wiki-länk från val"** +3. Texten omsluts av `[[...]]` och en konceptanteckning skapas + +## Tips + +- **Ställ in konceptmappen först** — utan den skapas inga anteckningar. En varningsdialog visas om den inte är inställd. +- **Använd modeller per uppgift** — konceptextraktion fungerar bra med billigare modeller (GPT-4o-mini, DeepSeek). Spara dyra modeller för forskning/översättning. +- **Aktivera synonymsuppression** för tekniska domäner där flera termer syftar till samma koncept. +- **Dedupliera regelbundet** — kör dedup-kommandot efter batchbearbetning för att upptäcka nära-duplikater. +- **Loggfilen skrivs över** vid varje körning, inte till den. Kopiera den om du behöver tidigare resultat. + +--- + +## Nästa steg + +- [Wiki-länkar](./wiki-links) — Hur koncept länkas inlinet +- [Diagram](./diagrams) — Visualisera konceptrelationer +- [Arbetsflöden](./workflows) — Kedja extraktion med andra uppgifter diff --git a/website/i18n/sv/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/sv/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..cc720c08 --- /dev/null +++ b/website/i18n/sv/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "Diagram" +description: "Generera Mermaid, JSON Canvas, Vega-Lite, HTML, redigerbara figurartefakter samt framtida begränsade circuitikz-diagram från dina anteckningar med hjälp av en specifikationsfokuserad arkitektur" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Diagram + +<TLDR> +**Notemd genererar diagram från dina anteckningar genom en spec-first-pipeline.** LLM skapar en renderer-agnostic `DiagramSpec` JSON, vilket sedan översätts till Mermaid, JSON Canvas, Vega-Lite, HTML eller redigerbar HTML/SVG-utdata av specialiserade adapter. Stöder 8 typ av avsikter, automatiserade fallback-kedjor, live-preview med export till SVG/PNG, semantisk verifiering samt generering förbättrad med lokalt kunskap. +</TLDR> + +Detta ingår i [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). + +## Arkitektur: Spec-First Pipeline + +Notemd ber aldrig LLM att skapa Mermaid/Vega/Canvas-syntax direkt. Istället: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**Varför specifikationen först?** LLM-filer producerar ofta ogiltig renderer-syntax (särskilt Mermaid). En strukturierad `DiagramSpec` kan valideras innan rendering, och samma specifikation kan användas av flera renderare som fallback. + +## Stödda diagramtyper + +| Avsikt | Huvudrenderare | Fallback-mekanismer | Användningsfall | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | Hierarkisk delning av ämnen | +| `flowchart` | Mermaid | HTML | Processflöden, beslutsträd | +| `sequence` | Mermaid | HTML | Klient-server-interaktioner, protokoll | +| `classDiagram` | Mermaid | HTML | OOP-klassrelationer | +| `erDiagram` | Mermaid | HTML | Databassschema, entitetsrelationer | +| `stateDiagram` | Mermaid | HTML | Statemaskiner, livscykelmodeller | +| `canvasMap` | JSON Canvas | Mermaid → HTML | Konceptkartor, kunskapsgrapher | +| `dataChart` | Vega-Lite | Mermaid → HTML | Stavar, linjer, areor, spridning, pizza, tabeller | + +## Avsiktsdetektering + +Notemd införder den bästa diagramtypen utifrån innehållet i din anteckning med hjälp av nyckelordbedömning: + +| Avsikt | Utlösare | Säkerhet | +|--------|----------|------------| +| `dataChart` | Tabeller, numeriska celler, nyckelord för mätvärden/trender, procenttal | 0.88 | +| `sequence` | Förfrågan/svarsvokabulär (4+ matchningar) eller `->`/`=>`-märkare | 0.82 | +| `erDiagram` | Primäryckel, främmande yckel, entitet, schema (2+ matchningar) | 0.80 | +| `stateDiagram` | Stadium, övergång, väntande, i kö, misslyckat (3+ matchningar) | 0.76 | +| `flowchart` | Numrerade steg (2+) eller if/then/else/workflow-vokabulär | 0.74 | +| `canvasMap` | Konceptkarta, kunskapsgraph, rumslig, kluster | 0.72 | +| `mindmap` | Standardåtergång | 0.55 | + +Överskriv med inställningen **Förväntad diagramtyp**, sidofältsselaren eller en explicit kommandopanelval. + +## Utval av rendermål + +Den experimentella spec-first-pipelinesystemet har nu två oberoende kontroller: + +| Kontroll | Inställning | Effekt | +|---------|---------|--------| +| Förväntad diagramtyp | `preferredDiagramIntent` | Styr den semantiska formen av den genererade `DiagramSpec` | +| Förväntat rendermål | `preferredDiagramRenderTarget` | Väljer artefaktrenderaren för **Generera diagram** och **Förhandsvisning av diagram** | + +Ställ **Förväntat rendermål** in på **Auto** som standard för planeraren, eller välj explicit Mermaid, JSON Canvas, Vega-Lite, HTML eller Editable HTML/SVG. Överskrivningen gäller endast artefakt- och förhandsvisningskommandon. Standardkommandot **Sammanfatta som Mermaid diagram** förblir fäst vid Mermaid-kompatibelt utdata så att befintliga Markdown-arbetsflöden inte tyst byter format. + +Denna separation är viktig eftersom en `flowchart`-intention nu kan renderas som Mermaid för Markdown-noter, HTML som robust återgång, eller Editable HTML/SVG för efterföljande redigering. Draw.io och Drawnix förblir CLI-artefaktexporterare istället för rendermål inom pluginet. + +## Användning + +### Generera ett diagram + +1. Öppna en anteckning +2. Kör **"Notemd: Generera diagram"** från kommandopanelen +3. Notemd upptäcker intentionen, genererar specifikationen, renderar och sparar artefakten + +**Utdatafiler efter mål:** + +| Mål | Utökning | Filnamnsmönster | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| Redigerbar HTML/SVG | `.html` | `{note}_diagram.html` | + +### Visa förhandsvisning av en diagram + +1. Kör **"Notemd: Preview diagram"** +2. En modalruta öppnas med den renderade diagrammet +3. Exportera som SVG eller PNG med hjälp av verktygsfältets knappar + +**Auto-open preview** finns tillgängligt i inställningarna – efter generering öppnas förhandsvisningsfönstret automatiskt. + +Förhandsvisningsmodalen har också en panel för diagnostik av artefakter. Renderare och röktest kan ansluta `RenderArtifact.diagnostics`; modalen visar en sammanfattning av diagnostiken med antal fel/varningar/informationer, därefter allvarlighetsgrad, typ av diagnostik, meddelande och reparationstips bredvid förhandsvisningen. Samma sammanfattning visas i posterna i förhandsvisningshistoriken, så att upprepadra circuitikz röktest kan jämföras utan att behöva öppna varje post. För artefakter som har källinnehåll men inte kan renderas inline eller via HTML iframe-sväret faller modalen nu tillbaka till en förhandsvisning endast med källkoden istället för att tvinga en tom iframe. Detta ger circuitikz kompilerings-/renderingsröktest, SVG texttokenkontroller, PNG-blankskärmbildskontroller samt framtida överskridningsrapporter en synlig UI yta utan att göra TikZJax eller LaTeX till en strikt plugin-körningsskicklighet eller låtsas att källtexten är en verifierad visuell rendering. + +### Legacy Mermaid-läge + +När `enableExperimentalDiagramPipeline` är av skickar Notemd en direkt Mermaid-fråga till LLM. Detta kringgår hela spec-pipelinen. Om den experimentella pipelinen misslyckas faller det tillbaka till denna modus. + +## Rendering-backender + +### Mermaid + +6 adapter (mindmap, flödesschema, sekvens, ER, klass, tillstånd) översätter `DiagramSpec` till Mermaid-syntax. Efter generering validerar `mermaid.parse()` utdata. Om valideringen misslyckas: + +1. **LLM försök igen** — ett försök med Mermaid-felmeddelandet som kontext +2. **Minimal fallback** — ett enkelt Mermaid-diagram från spec-nod-ID:er + +**Legacy Mermaid Fixer** reparerar automatiskt vanliga LLM syntaxfel: normalisering av note-directiv, undkomst av pipe-label, omplacering av semikolon, smart quotes, dubbelstrich-pilar, formmismatchningar och mer. + +### JSON Canvas + +Genererar Obsidian JSON Canvas-format med rumslig layout: +- Noder placeras enligt djup (x = djup × 420) och index (y = index × 170) +- Bredden uppskattas utifrån etikettlängden +- Kanter med `fromSide: 'right'`, `toSide: 'left'`, `toEnd: 'arrow'` + +### Vega-Lite + +Skapar kompletta Vega-Lite v5 JSON-specifikationer med automatisk kodning: +- **Cartesiska diagram** (stavar/linjer/yta/punkt/späck): x + y-kanaler + färg för flera serier +- **Paj**: theta = y (kvantitativt), färg = x (nominalt) +- **Tabell**: rad = x, text = y + kolumn = serie + +Mörka och ljusa teman slås samman före kompilering. + +### HTML + +Universell fallback. Självständig HTML-dokument med: +- CSP-meta-huvudraden +- Ljus/mörkt läge via `prefers-color-scheme` +- Lokaliserade UI-etiketter för 20 språk +- Sektioner: hero, struktur (nodträd), relationer, anmärkningar, tabeller för dataserier + +### Redigerbar HTML/SVG + +Explicit figurmål för redigerbara exportarbetsflöden. Det projicerar `DiagramSpec` till en deterministisk `SemanticFigureModel`, och renderar därefter en självständig HTML-dokument med inbyggda SVG-grupper som innehåller Draw.io-stil annoteringar: + +- `data-drawio-type`, `data-drawio-id` och `data-drawio-role` på semantiska noder +- `data-drawio-source` och `data-drawio-target` på semantiska kantor +- stabila nod/kantidentifierare efter normalisering av mellanrum och hantering av kollisioner +- inga skript, inga externa teckenföringar och inga fjärrresurser + +Detta mål är avsiktligt inte standardplaneringsvägen än. Det finns tillgängligt som ett explicit rendermål tills produktvägen bevisat redigeringsbeteende i verkliga verktyg. + +### Draw.io och Drawnix Exportgränser + +Den nuvarande implementationen håller stöd för tredjepartsredigerare vid artefaktsgränsen: + +| Mål | Kontrakt | Körningssberoendighet | +|--------|----------|--------------------| +| Draw.io | deterministisk, okomprimerad `mxfile` XML från `SemanticFigureModel` | ingen i pluginkörningen eller CI | +| Drawnix | minimal `.drawnix` JSON-undermängd med `geometry` och `arrow-line`-element | ingen i pluginkörningen eller CI | + +Avvägningen är avsiktlig: Notemd kan verifiera synliga etiketter, stabila ID:er och stödd primitiv täckning utan att inkludera diagrams.net Desktop, Drawnix, Plait eller endast webbläsarbaserad redigeringsstatus i pluginet. + +### circuitikz / TikZJax riktning + +Kretsdiagram är inte samma problem som generiska flödesscheman. Den korrekta syntaxmålet för elektriska kretsar är vanligtvis **circuitikz**, renderad i Obsidian med hjälp av plugin som TikZJax. TikZJax kan ladda paket som `circuitikz`, `pgfplots`, `tikz-cd` och `chemfig`, vilket gör det attraktivt för anteckningar inom fysik, kretsar, kemi och matematik. + +Risken är att rått LLM-genererat TikZ är bräckligt: + +- komplex kretstopologi kan vara elektriskt korrekt men visuellt oläsbar; +- överlappande ledningar och etiketter kan göra en korrekt netlist ofunktionell för studieanteckningar; +- bristande paketpreambuler, felankor eller ogiltiga komponentnamn kan förhindra rendering; +- återkopplingen från renderaren är vanligtvis på bildnivå, medan LLM genererar textnivås geometri. + +Den bättre arkitekturen är att behandla circuitikz som ett begränsat diagrammål, inte som en friformig prompt: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +Modellen av första klassen bör beskriva kretstopologi och layout separat: + +| Lager | Ansvar | Exempel | +|-------|----------------|---------| +| Topologi | elektriska noder och komponentanslutningar | `VDD -> RD -> drain(M1)`, `source(M1) -> GND` | +| Layout | gridplacering, orientering, routningsbanor | `M1 at (3,2.2)`, inmatning vänster, utmatning höger | +| Stil | paket, spänningskonvention, etiketter, ankare | `\begin{circuitikz}[american voltages]` | +| Validering | kompilationslogg, saknade ankare, överskridnings-/skärmbildsgranskningar | TikZJax/LaTeX-diagnostik plus visuell granskning | + +### Nuvarande circuitikz-prototyp + +Notemd inkluderar nu den första begränsade repository-prototypen för denna riktning. Den är avsiktligt offline och bunden till mallar: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +Prototypen lägger till en separat `CircuitSpec`-gräns samt en deterministisk exporter för sex gyllene referensfamiljer: + +| Kretstyp | Gyllen referens | Strömkompensation | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | validerar `VDD -> R_D -> M1.D`, `vin -> M1.G`, `M1.S -> GND` och `M1.D -> vout` innan skrivning till LaTeX | +| `cmos-inverter` | `cmos-inverter-v1` | validerar PMOS-over-NMOS-topologi, delad gatteinmatning, delad drainutmatning, `VDD -> MP.S` och `MN.S -> GND` innan skrivning till LaTeX | +| `cmos-buffer` | `cmos-buffer-v1` | validerar två kaskerade inverterskikt, mellanliggande nod `vmid`, återställd `vout` samt delade VDD/GND-ledd innan skrivning till LaTeX | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | validerar parallella PMOS/NMOS-passenheter mellan `vin` och `vout` med komplementära `phib` / `phi`-kontroller innan skrivning till LaTeX | +| `cmos-nand2` | `cmos-nand2-v1` | Validerar parallell PMOS pull-up, seriell NMOS pull-down, dubbel inmatning `va` / `vb` och `vout` innan LaTeX skrivs | +| `cmos-nor2` | `cmos-nor2-v1` | Validerar seriell PMOS pull-up, parallell NMOS pull-down, dubbel inmatning `va` / `vb` och `vout` innan LaTeX skrivs | + +Detta är ännu inte en allmän TikZ-generator. Den kompilerar inte LaTeX, anropar inte TikZJax, undersöker inte skärmdumpar eller kör inte automatiserad bild-feedback-reparation. Detta är fortfarande framtida funktioner. + +Kommandot Preview diagram kan öppna direkt sparade circuitikz-källartefakter när filändelsen är `.tex` eller `.tikz` och källan innehåller `\usepackage{circuitikz}` eller `\begin{circuitikz}`. Denna metod är en circuitikz-källa-endast-preview: fönstret visar källan, diagnostik, kopierings/sparningskontroller och historiksmetadata, men den kompilerar inte LaTeX eller anropar inte TikZJax under plugins körning. + +Samma källa-endast-preview-grenser omfattar nu sparade Draw.io- och Drawnix-artefakter. `.drawio`-filer accepteras när de ser ut som Draw.io XML (`mxfile` eller `mxGraphModel`), och `.drawnix`-filer accepteras när de är Drawnix JSON med `type: "drawnix"` och en `elements`-array. Pluginen inkluderar fortfarande inte diagrams.net eller Drawnix-whiteboard-värd; dessa previewer visar källan, diagnostik och artefaktshistorik utan att ha en in-plugin-visuell redigerare. + +För topologiförvarande reparering skickas den förreparationsspecifikationen som referens innan en reparerad kandidat accepteras: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +Reparationsväktaren använder `createCircuitTopologySignature` och `assertCircuitTopologyUnchanged` för att jämföra `circuitKind`, `goldenReferenceId`, nätverk, komponentids/typer/terminaler samt oriktade anslutningsändpunkter innan utdata. Etiketter, titeltext, layouttips, anslutningsordning och anslutningsetiketter ignoreras avsiktligt. En kandidat som lägger till en kort eller omkopplar en terminal misslyckas med `Circuit topology drift detected` innan `.tex`-filen skrivs. + +Den CLI kan nu analysera en befintlig LaTeX/TikZJax-kompilationslogg utan att köra en kompilerare: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +Denna diagnostikväg rapporterar saknade paket som `circuitikz.sty`, okända TikZ/circuitikz-nycklar, TikZ-syntaxfel som saknade semikoloner, otillräckliga argument från obalanserade parenteser eller oavslutade etiketter, odefinierade kontrollsekvenser, allmänna LaTeX-fel, nödstopp och varningsmeddelanden om överfull `\hbox`. Det förblir logbaserat: lokalt LaTeX/TikZJax-körning och skärmdumpkvalitetskontroller är fortfarande separat framtida arbete. + +För underhållars rökprövningar kan samma CLI valfritt köra en explicit konfigurerad renderer utan att analysera shellkommandon: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Kompilationsköraren använder `shell: false`, expanderar `{tex}`, `{outputDir}` och `{jobName}`-placemarker till argumentarrayvärden, läser den genererade `{jobName}.log` och returnerar `compileExecution` plus `compileDiagnostics` i CLI JSON-utdata. `--compile-executable` är endast rendererbinärfilen eller väggen; rendererflaggor tillhör upprepadna `--compile-arg`-värden. Tomma exekverbara filer misslyckas som `compile-executable-invalid`, saknade binärfiler misslyckas som `compile-executable-not-found`, och exekverbara strängar i shell-kommandoform attar rekommendationer om att dela argument så att Windows, Linux och macOS följer samma direktkörningskontrakt. Med `--expected-artifact` rapporteras även `compileExecution.renderSmoke` och det misslyckas med CLI om rendereren inte skapar ett icke-tomt artefakt. Den inkluderar fortfarande inte LaTeX, gör inte TikZJax till en plugins körningsberoende eller utför skärmdumpnivåvis visuell reparering. + +Om det förväntade artefakten är `.svg` går rökprövningen en lag djupare: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +SVG-rökprövningen verifierar `<svg>`-rotten, positiva dimensioner eller `viewBox`, åtminstone ett synligt teckningselement efter uteslutning av dolda/transparenta element, alla begärda texttokener, uppenbara element utanför `viewBox`, uppenbara överskridande placerade `<text>` / `<tspan>`-etiketter samt uppenbara textetiketter som överskrider teckningselement genom `render-svg-label-overlap`. Förväntad text söks i synlig text och avkodas tillgänglighetsmetadata som `aria-label`, `<title>` och `<desc>`, så att rendererar som bevarar semantiska etiketter utanför synliga `<text>` fortfarande kan uppfylla texttoken-rökprövningen utan att behöva OCR. Geometrin passar nu för transformerad geometri för vanliga grupp- och element `transform`-attribut, så översatt, skalade, roterade, snedvridna eller matristransformerade SVG-rutor kontrolleras efter transformationskomposition. Det täcker exakta båggränser för A/a-bågextrema, exakta Bezier-kurvgränser för C/S/Q/T-kurvextrema, SVG-gränser med hänsyn till strökkontur och etiketteröverskridningskontroller, `polyline` / `polygon`-teckningsgeometri samt löser även path-endast-glyfplacering från `<use href="#...">`-referenser så att etiketter som konverterats till återanvändbara glyfpathar fortfarande kan misslyckas med begränsad-kanvas-kontroller när placerade glyfgeometrin slipper `viewBox`. Flera placerade `tspan`-etiketter under en `<text>`-förälder jämförs som separata etiketterutor, vilket upptäcker LaTeX-stil SVG-utdata som annars skulle sammanfoga olika etiketter till en enda textnod. Placerade SVG `text`- och `tspan`-rutor respekterar `text-anchor`-värdena `start`, `middle` och `end`, så centrerade och högerjusterade etiketter kan utlösa text/text- och etikett-mot-teckning-rödkontroller utan att kräva browsergradig textlayout. Definition-endast-glyfpathar inom `<defs>` räknas inte som synliga teckningselement, men deras egna definition-lokalna `transform`-attribut tillämpas innan `<use>`-placering så att skalade eller speglade glyfdefinitioner inte underskattas. Etikett-mot-teckning-kontrollen använder en liten tolerans för teckningsrutor och de deklarerade `stroke-width`, så tunna trådar, tjocka trådar och polygonala komponentkonturer kan alla betraktas som potentiella etiketterläsbarhetsfel när deras synliga strök når en etikett. Path-endast-glyfetiketter som lösts från `<use href="#...">` jämförs också med teckningsrutor och misslyckas med `render-svg-path-glyph-overlap` när återanvändbara glyfgeometrier överskrider trådar eller komponenter. Om en renderer konverterar etiketter till återanvändbara path-glyfer istället för sökbara `<text>` och inte bevarar tillgänglighetsmetadata registreras `pathOnlyGlyphUseCount` i rökrapporten och den efterfrågade texttokenen misslyckas genom `render-svg-text-path-only` istället för att låtsas att etiketten helt saknas. Andra fel rapporteras genom `render-svg-invalid`, `render-svg-dimension-missing`, `render-svg-no-visible-elements`, `render-svg-text-missing`, `render-svg-out-of-bounds`, `render-svg-text-overlap`, `render-svg-label-overlap` eller `render-svg-path-glyph-overlap`. Texttoken- och överskridningskontroller bör endast betraktas som strukturell rök för rendererar som bevarar etiketter som sökbart SVG-text eller tillgänglighetsmetadata; path-endast SVG-utdata behöver fortfarande den senare skärmdump/OCR-gatan för att bevisa visuell etiketterläsbarhet, och denna rökpass gör fortfarande inte anspråk på fullständig SVG-path-översikt. + +Dolda SVG-grupper och element hoppas konsekvent bort under räkning av synliga element och geometrikinsamling. Attribut eller inline-stil `display:none`, `visibility:hidden`, `visibility:collapse` samt det övergripande `opacity:0` kan inte få en annars tom renderartefakt att klara synlig-utdata-rökprövningen. + +Path-endast-glyfdefinitioner kan vara direkta pathar eller grupperade/symbolcontainer inom `<defs>`. Rökpassen löser barnpathgeometri från `<g id="...">` och `<symbol id="...">` innan `<use>`-placering, så inlindade glyfutdata bidrar fortfarande till `pathOnlyGlyphUseCount`, begränsad-kanvas-kontroller och `render-svg-path-glyph-overlap`. + +Path-parsern spårar också subpath-startpunkter och sätter om den aktuella punkten på `Z/z`, så relativkommandon efter en stängd subpath fortsätter från den korrekta SVG-punkten istället för att skapa falska `render-svg-out-of-bounds`-diagnostiker. + +Samma geometriprocess följer SVG-nummerska grammatik för decimaltal med ledande punkter och uttryckliga plusstecken, så kompakta dvisvgm-koordinater som `.5`, `-.5` eller `+.5` förblir bråkta under gränskontroller istället för att bli falska utanför-gräns geometri eller skippas. + +Om renderaren avger `.png` blir samma förväntade-artefaktspåg att en första skärmbildsmoke: Notemd decodar icke-interlacerade 1/2/4/8-bit indexerade färg-PNG-filer, 1/2/4/8/16-bit gråskala PNG-filer samt 8/16-bit gråskala-alpha/RGB/RGBA PNG-filer. Indexerade färg- och sub-byte gråskalbildar stöder packade prover; indexerade färgbildar stöder även PLTE och valfri tRNS-data; gråskala/RGB-bildar stöder tRNS-transparenta prover. 16-bit direkta prover normaliseras till samma 8-bit RGBA-jämförelsesrum som används av smoke-checkerna. Smoke-checken verifierar positiva dimensioner, registrerar förgrundsgränserna som `foregroundBounds`, registrerar förgrunds täthet inuti den boxen som `foregroundDensity`, misslyckas med `render-png-blank` när varje synlig pixel matchar den övre vänstra bakgrundsfärgen, misslyckas med `render-png-content-clipped` när förgrundsinnehållet rör sig mot bildens gränser, misslyckas med `render-png-foreground-too-small` när en stor skärmbild har färre än fyra förgrundspixeler, och misslyckas med `render-png-foreground-dense` när förgrundspixelerna är ovanligt täta inuti en icke-trivial gränsbox. Ostödda PNG-format misslyckas med `render-png-unsupported` samt formatspecifik vägledning för Adam7 interlacerade PNG:er eller ostödda indexerade färgbitdjup. Detta upptäcker tomma skärmbilder, uppenbar canvas-klippering, underrenderad förgrundsavtryck, första pixellnivås trängningsfel samt felaktiga renderer-PNG-exportinställningar utan att lägga till plattformspecifika shell-beroenden. Det är ännu inte OCR-nivås etikettering, exakt textöverlappningsskanning eller topologibehållande bildreparation. + +När diagnostiken visar ett misslyckat kompilering eller render-smoke-kör kan CLI även skriva en topologibehållande reparationsförteckning: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +Reparationsförteckningen använder schema `notemd.circuitikz.repair-brief.v1` och innehåller källkoden `CircuitSpec`, topologisignatur, kompilering/render-diagnostik, tillåtna ändringar, förbjudna topologiändringar, nästa verifieringssteg samt en strukturierad `repairPrompt`. Prompt-rollen är `topology-preserving-circuitikz-repair`; dess `diagnosticFocus`-lista härrör från kompilering/render-diagnostiken, och dess `acceptanceCriteria` kräver kandidatvalidering samt nya kompilering- och render-smoke-checker. Det är överföringsformatet för en senare reparationscykel, inte en påstående om att Notemd redan kör autonom visuell reparation. + +Efter att en reparationskandidat har producerats kan samma CLI validera den mot förteckningen innan utdata skrivs: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief` kontrollerar kandidatens topologisignatur från förteckningen och är exklusivt med `--topology-reference`. Att klara denna gräns bevisar endast topologibehållande; kandidaten behöver fortfarande kompilationsdiagnostik och render-smoke-checker. + +Resultatet från `--repair-brief` inkluderar även `repairAcceptance`-bevis med schema `notemd.circuitikz.repair-acceptance.v1`. Det rapporterar `topology-signature`, `compile-diagnostics` och `render-smoke`-gränser som `passed`, `failed` eller `missing`; exponerar `remainingChecks`; och håller `readyForVisualAcceptance` falskt tills kandidatkörningen innehåller allt nödvändigt bevis. + +Använd `--repair-acceptance-output` tillsammans med `--repair-brief` när CI eller releasebekräftelser behöver en varaktig JSON-fil: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +För releas- eller underhållsbekräftelser kör alla stödda guldfamiljer genom den sammanställda fixture-köraren: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Köraren använder `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json` och `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json`, anropar samma shell-fri exporteringsväg för varje fixture och returnerar en sammanställd JSON-rapport med per-fixture `compileExecution` och `compileDiagnostics`. Det är fortfarande en underhållarkommando, inte en plugin-runtidsberoende. + +När en underhållsmaskin ännu inte har konfigurerat en renderer, kör samma fixture-kommando utan `--compile-executable` och bevar gränsskärmen explicit: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +Den vägen skriver fortfarande den deterministiska fixture-`.tex`-artefakterna, men returnerar `ok: false` med `rendererAvailability.status` satt till `missing-configuration` och en `compile-executable-invalid`-diagnostik. Betrakta det endast som bevis på renderer-tillgänglighet; det är inte kompilering, render-smoke eller visuell godkännande. + +### Guldreferenspromptform + +För nära framtida användning, ange en renderbar guldreferens innan du ber om en kretsvariant. En begränsad prompt bör bevara inledningen, koordinatskalan, ankurstilen och routningskonventionerna: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +För en CMOS-inverter bör prompten begära en explicit topologi samt layoutrestriktioner, inte bara “rita en CMOS-inverter”: + +- Håll `VDD` längst upp, `GND` längst ner, ingång på vänster, utgång på höger; +- Använd `pmos` ovanför `nmos`, med delade gatter och delade drainar; +- Håll utdatanoden vid drainanslutningen och märk den med `*-o`; +- Använd namngivna ankare (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) istället för visuellt införda koordinater; +- Undvik diagonala eller korsande ledningar om det inte krävs elektriskt. + +### Nuvarande framsteg och kommande faser + +| Yta | Nuvarande status | Nästa steg | +|------|----------------|-----------| +| Allmänna diagram | Spec-first-pipeline implementerad för Mermaid, JSON Canvas, Vega-Lite, HTML | fortsätt utöka semantisk verifieringsomfattning | +| Redigerbara figurer | `editable-html-svg`, Draw.io XML, och Drawnix JSON-artefaktgränser implementerade | Lägg till mer avancerade primitiver endast efter att tester har bevisat redigerbarhet | +| CLI-stöd | `npm run diagram:export-artifact` exporterar redigerbara HTML/SVG, Draw.io, och Drawnix från ett `DiagramSpec` | Lägg till målspecifika rökinställningar när nya mål levereras | +| circuitikz | `CircuitSpec -> circuitikz` prototypexporterar gemensamma källor, CMOS-inverter, `cmos-buffer` / `cmos-buffer-v1`, `cmos-transmission-gate` / `cmos-transmission-gate-v1`, `cmos-nand2` / `cmos-nand2-v1`, samt `cmos-nor2` / `cmos-nor2-v1` gyllene mallar, projekt `layoutHints.inputSide` och `layoutHints.outputSide` till deterministisk placering av in-/utgångsportar utan att förändra topologin, avvisar topologiförändringar genom `--topology-reference`, skickar ut topologiförvarande reparationsförslag via `--repair-brief-output` och schema `notemd.circuitikz.repair-brief.v1`, inkluderar strukturerad `repairPrompt` överlämningsinnehåll med `diagnosticFocus`, `acceptanceCriteria` och roll `topology-preserving-circuitikz-repair`, validerar reparationskandidater genom `--repair-brief`, returnerar `repairAcceptance` gränsebevis via schema `notemd.circuitikz.repair-acceptance.v1` med `readyForVisualAcceptance` och `remainingChecks`, sparar dessa bevis genom `--repair-acceptance-output`, parserar kompilationslogggar, kan köra explisita lokala renderare plus `--expected-artifact`, SVG `--expected-svg-text`, kontroller av tillgänglighetsmetadata via `aria-label`, `<title>` och `<desc>`, uteslutning av dolda/transparenta SVG element, `render-svg-text-path-only` / `pathOnlyGlyphUseCount` klassificering för endast vägsbaserade etiketter, kontroller av endast vägsbaserad glyph-placering för `<use href="#...">`, diagnostik för överlappning av endast vägsbaserade glyphar via `render-svg-path-glyph-overlap`, hantering av nulägesström för slutna vägar för `Z/z`, exakta bågargränser för A/a bågextrema, exakta Bezier-kurvigränser för C/S/Q/T kurvextrema, SVG gränser med hänsyn till strykthjuk och kontroller av etiketteröverlappning, `polyline` / `polygon` kontroller av ritgeometri, placerad `tspan` etikettgeometri, `text-anchor`-medveten placerad textgeometri, geometri med hänsyn till transformation för SVG begränsad canvas/textöverlappning och etikett-mot-ritning rökkontroller via `render-svg-label-overlap`, samt PNG-kontroller för icke-tomta/klippta/tätte framtjänster, inklusive indexerad färgpalett alfa, gråskala/RGB tRNS transparenta prover, och formatspecifik `render-png-unsupported` vägledning för Adam7 interlacerade PNG:er och indexerade bitdjupfel, via `foregroundBounds`, `foregroundDensity`, `render-png-content-clipped` och `render-png-foreground-dense` utan shell-parsing, inkluderar sammanställda underhållsinställningar via `npm run diagram:smoke-circuitikz`, registrerar saknade rendererkonfigurationer via `rendererAvailability.status: "missing-configuration"` och `compile-executable-invalid`, samt generiska förhandsvisningsdiagnostik, sammanfattning av diagnostikresultat, diagnostikmedvetna historiepostningar och fallback endast från källkoden via `RenderArtifact.diagnostics` och förhandsvisningsmodalen | Lägg till OCR-nivåsiktbarhet för endast vägsbaserad visuell text, exakta pixelnivåsöverlappningskontroller, bredare SVG väg täckning där det behövs, automatisk installering/hittande av renderer endast om det kan förbli valfritt, samt automatiserad topologiförvarande reparationsutföring | +| TikZJax integration | Kandidatrenderingsvärd för Obsidian-sida visning | Håll det valfritt; gör inte TikZJax till en obligatorisk pluginkörningsberoendighet | + +## Konfiguration + +| Inställning | Standard | Effekt | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | Växla mellan specifikationstillvägagångssätt och gammaldags Mermaid | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = Mermaid endast; `'best-fit'` = nativa mål + fallbackar | +| `preferredDiagramIntent` | `undefined` (auto) | Överskriva automatisk avsiktsdetektering | +| `summarizeToMermaidLanguage` | `'en'` | Måländning för diagrametiketter | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | Per-uppgift LLM för diagramgenerering | +| `autoMermaidFixAfterGenerate` | (från konstanter) | Kör automatiskt gammaldags fixerare på Mermaid utdata | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | Tillägg till källkoden med lokalt vault-kunskap | + +### Lokal kunskapsförstärkning + +När det aktiveras hämtar Notemd relevanta kontextsnutdelningar från din vaults lokala kunskapsbas (baserad på MiniSearch) och lägger dem inför i källamarkdorn. Augmenteringsinstruktionen anger: "Endast stödjande referens; håll den primära strukturen trogen källanotat.", + +### Kompatibilitetsläge + +- **`legacy-mermaid`**: Alla avsikter dirigeras till Mermaid. Icke-Mermaid avsikter (canvasMap, dataChart) tvingas använda `flowchart` eller `mindmap`. Ingen fallbackkedja. +- **`best-fit`**: Varje avsikt dirigeras till sin egna nativa målplats. Om den primära misslyckas, följs fallbackkedjan (t.ex. Vega-Lite → Mermaid → HTML). + +## Förhandsvisning & Export + +| Aktion | Metod | +|--------|--------| +| SVG export | `mermaid.render()` / `vega.View.toSVG()` / SVG builder för Canvas | +| PNG-export | SVG → Image → Canvas (device pixel ratio 1x-3x) → PNG ArrayBuffer | +| Spara källa | Rå artefaktinnehåll sparas med målspecifik extension | +| Endast källa-förhandsvisning | Icke-inline artefakter med källinnehåll visas som kod tillsammans med diagnostik, utan iframe-rendering | +| Semantisk granskning | Mermaid, JSON Canvas, Vega-Lite, och redigerbar HTML/SVG kontrollerad av `scripts/diagram-semantic-verification.js` | + +**Caching**: RenderCache använder en deterministisk JSON-nyckel från `{spec, target, theme}`. In-flight deduplikering förhindrar dubbla renderingar. + +## Tips + +- **Börja med `best-fit`-läge** — det ger den bästa visuella resultatet för varje typ av intent +- **Använd kraftfulla modeller för komplexa diagram** — flödesscheman och ER-diagram drar nytta av GPT-4o eller Claude +- **Aktivera lokalt kunskap** för domänspecifika diagram — relevant vault-kontext förbättrar noggrannheten +- **Ställ in `autoMermaidFixAfterGenerate`** — Mermaid-syntaxfel är vanliga utan det +- **Den gamla fixern är omfattande** — om Mermaid-preview misslyckas löser det ofta att köra fixeringskommandot manuellt + +--- + +## Nästa steg + +- 🔗 [Wiki-Links](./wiki-links) — Hur koncept länkas inlås +- 📝 [Concept Notes](./concept-notes) — Extrahera koncept för diagramkällmaterialet +- 🔍 [Research](./research) — Komplettera diagram med data från webben diff --git a/website/i18n/sv/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/sv/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..4101b4a1 --- /dev/null +++ b/website/i18n/sv/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "Forskning och webbsökning" +description: "Integrera webbsökning i dina anteckningar" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Forskning och webbsökning + +<TLDR> +**Notemd söker på webben och inför LLM-sammanfattade resultat direkt i dina anteckningar.** Tavily API är huvudsakliga sökbackenden; DuckDuckGo fungerar som en nollkonfigurerad fallback. Resultaten sammanfattas med källhänvisningar och läggs till under en `## Research`-rubrik. Stöder forskning i enskilda anteckningar, batch-forskning i mappar samt val av modell för sammanfattningsstegen per uppgift. + +Detta ingår i [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Översikt + +Forskning är en av Notemd’s mest kraftfulla integrationer: den slutar cykeln mellan läsning, sökning och skrivning. Istället för att byta till en webbläsare för att söka efter ett okänt termer markerar du det och låter Notemd söka, sammanfatta och lägga till resultaten – allt inom din säkerhetslåda. + +Processen är fullt konfigurerbar. Du väljer sökleverantören, den LLM som skriver sammanfattningen samt om resultaten läggs till i den aktiva anteckningen eller skrivs till separata filer. Batch-läge gör det möjligt att forska i alla anteckningar i en mapp med en enda klick. + +## Så här fungerar det + +### Pipeline för sökning och sammanfattning + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **Frågetextraktion** -- Notemd extraherar söktermen från din selection eller anteckningstitel. +2. **Webbsökning** -- Tavily försöks först. Om inget API-nyckel är konfigurerat används DuckDuckGo automatiskt (inget nyckel behövs). +3. **LLM-sammanfattning** -- Råa sökresultaten skickas till den konfigurerade LLM, som producerar en kort sammanfattning med inbyggda källhänvisningar. +4. **Lägg till** -- Den formaterade sammanfattningen läggs till under en `## Research`-rubrik i den aktiva anteckningen. + +### Tavily kontra DuckDuckGo + +| Aspekt | Tavily | DuckDuckGo | +|--------|--------|------------| +| API-nyckel | Nödvändigt (gratis plan tillgänglig) | Inte nödvändigt | +| Resultkvalitet | Högre (särskilt utformat för AI) | Tillräckligt för allmänna frågor | +| Takträckningar | Generös gratisnivå | Ställs under taktering | +| Konfiguration | `tavilyApiKey` i inställningarna | Ingen konfiguration -- automatisk fallback | + +### Batch Folder Research + +Klicka med höger på en mapp och välj **"Notemd: Research folder"**. Varje `.md`-fil i mappen bearbetas sekventiellt (eller parallellt upp till den konfigurerade samtidigheten). Varje anteckning får sin egen sammanfattning av undersökningen. + +## Konfiguration + +| Inställning | Standard | Effekt | +|---------|---------|--------| +| `tavilyApiKey` | `''` | Tavily API-nyckel. När den är tom används endast DuckDuckGo. | +| `researchProvider` / `researchModel` | DeepSeek | Per-uppgift LLM för att sammanfatta sökresultat | +| `maxResearchContentTokens` | `4000` | Tokenbudget för innehåll som skickas till LLM. Överskott skärs av. | +| `researchAppendToNote` | `true` | Lägg till sammanfattning i källanteckningen. Om värdet är falskt skapas en separat fil. | +| `researchLanguage` | `'en'` | Utdata språk för den sammanfattade undersökningen | + +### Rekommendationer för modell per uppgift + +Forskning drar nytta av en modell som hanterar flerspråkig innehåll och skapar välstrukturerad prosa. Betrakta följande: + +- **DeepSeek** -- standard, prisvärt, god kvalitet +- **GPT-4o** -- högre kvalitetssammanfattning, högre kostnad +- **Gemini Flash** -- snabb och billig, bra för enkla frågor + +## Exempel + +Du läser en artikel om *transformer attention mechanisms* och stöter på ett okänt termer: *relative positional encoding*. Istället för att lämna Obsidian: + +1. Highlightera **"relative positional encoding"** +2. Högerklicka --> **"Notemd: Forskning och sammanfattning"** +3. Notemd söker på webben, sammanfattar de bästa resultaten och lägger till: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +Sammanfattningen är nu en del av din arkiv, sökbart, länkbart och tillgänglig offline. + +## Tips + +- **Ställ in en Tavily-nyckel för bästa resultat** -- även den gratisnivån ger bättre relevans än ren DuckDuckGo. +- **Använd en kraftig sammanfattningsmodell** -- billiga modeller kan försvaga nyanserade tekniska innehåll. +- **Gör batch-forskning** efter en första genomläsning för att fylla luckor i många anteckningar på en gång. +- **Granska de läggda till sammanfattningarna** -- LLM kan skapa falska källinformationer. Kontrollera viktiga påståenden. + +--- + +## Nästa steg + +- [Concept Notes](./concept-notes) -- Extrahera och spara viktiga termer från forskningsresultat +- [Wiki-Links](./wiki-links) -- Länka koncept från forskningen i din arkiv +- [Translation](./translation) -- Översätta forskningssammanfattningar till ett annat språk +- [LLM Tjänsteleverantörer](/docs/providers/overview) -- Konfigurera modellen som används för sammanfattning diff --git a/website/i18n/sv/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/sv/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..c8e7b8ef --- /dev/null +++ b/website/i18n/sv/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "Översättning" +description: "Översätta anteckningar och utvalda delar" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# Översättning + +<TLDR> +**Notemd översätter text mellan 21+ språk med hjälp av LLM-drivna översättningsteknologier.** Det stöder översättning av enstaka delar, hela anteckningar samt batch-översättning av mappar. Varje översättningsuppgift kan använda en egen leverantör och modell genom inställningar per uppgift. UtdataSpråket kan konfigureras separat från UI-språket. Resultaten läggs till eller skrivs i en ny fil beroende på dina preferenser. + +Detta ingår i [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Översikt + +Översättning i Notemd är inte en ordförrådsökning – det är LLM-drivna, kontextmedvetna översättningar. Modellen ser hela paragraphen eller anteckningen och bevarar tonen, terminologin inom området samt meningsskapen. Detta ger högre kvalitetsresultat än serviceer som endast översätter fraser för fraser, särskilt för teknisk, akademisk och kreativ skrivning. + +Funktionen stöder tre omfattningar: utvald del, aktuell anteckning och hela mapp. Tillsammans med möjligheten att välja modell per uppgift kan du använda en snabb modell (Gemini Flash) för vardagliga översättningar och en kraftig modell (Claude Sonnet) för innehåll där nyanser är viktiga – utan att ändra din globala leverantör. + +## Så här fungerar det + +### Översättningskommandot + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **Källspråkdetektering** -- LLM infärder källspråket från innehållet. Du behöver inte ange det manuellt. +2. **Promptkonstruktion** -- Notemd bygger en prompt som inkluderar målspråket, valfri områdesindikation samt det innehåll som ska översättas. +3. **LLM-översättning** -- Den konfigurerade `translateProvider` / `translateModel`-teknologin bearbetar förfrågan. Modellen bevarar markdown-formatering, wiki-länkar och kodblock. +4. **Utdata** -- Den översatta texten läggs antingen till under den ursprungliga eller skrivs i en ny fil i arkivet. + +### Språkpärningar + +Notemd stöder alla språkpärningar som den underliggande LLM stöder. Vanliga pärningar inkluderar: + +| Källspråk | Mål | Typisk kvalitet | +|--------|--------|----------------| +| Engelska | Kinesiska (simplificerat) | Utmärkt | +| Kinesiska | Engelska | Utmärkt | +| Engelska | Japanska | Mycket bra | +| Engelska | Tyska / Franska / Spanska | Mycket bra | +| Allt stödd | Allt stödd | Beroende på modell | + +Inställningen `translateLanguage` styr **utdata språket**. Källspråket detekteras automatiskt. + +### Modellval per uppgift + +Översättningskvaliteten varierar avsevärt beroende på modellen. Notemd gör det möjligt att tilldela en exklusiv modell enbart för översättning: + +| Modell | Hastighet | Kvalitet | Kostnad | Bäst för | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | Snabb | God | Låg | Casual, hög volym | +| `gpt-4o-mini` | Snabb | God | Låg | Snabba sökningar | +| `deepseek-chat` | Medel | God | Mycket låg | Budget, flerspråkig | +| `claude-3-5-sonnet` | Medel | Utmärkt | Medel | Teknisk / akademisk | +| `gpt-4o` | Medel | Utmärkt | Medel | Prosa känslig för nyanser | + +### Översättning av mappar i batch + +Klicka höger på en mapp och välj **"Notemd: Översätt mapp"** för att översätta alla anteckningar i den mappen. Varje fil bearbetas oberoende av andra. Konfigurationen för samtidighet styr hur många filer som översätts parallellt. + +## Konfiguration + +| Inställning | Standard | Effekt | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | Specialiserad tjänste för översättningstjänster | +| `translateLanguage` | `'en'` | Måloutputspråk | +| `translationAppendToNote` | `true` | Lägg till den översatta texten under den ursprungliga. Om det är falskt skapas en ny fil. | +| `batchConcurrency` | `3` | Antal filer som bearbetas parallellt vid batchöversättning | + +## Exempel + +Du läser ett kinesiskt forskningsanteckning och vill ha en engelsk version: + +1. Öppna anteckningen +2. Klicka höger --> **"Notemd: Översätt aktuell fil"** +3. Notemd upptäcker kinesiska text, översätter till den av dig konfigurerade målspråket (engelska) och lägger till: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +Den ursprungliga kinesiska texten förblir oförändrad ovanför översättningen. `## Translation`-rubriken håller båda versionerna i samma fil för enkel referens. + +## Tips + +- **Använd Gemini Flash för stora mängder** -- det är den snabbaste och billigaste alternativet för batchöversättning av stora mappar. +- **Bevara wiki-länkar** -- Notemd's instruktioner uppmanar LLM att hålla `[[wiki-links]]` orimlig i översättningen. Kontrollera efter översättning, eftersom vissa modeller ibland avpackar dem. +- **Ställ in utdata språket explicit** -- automatisk detektering fungerar för källan, men konfigurera alltid `translateLanguage` för att undvika osäkerhet angående målet. +- **Översätta konceptanteckningar i batch** -- om din konceptmapp är på ett språk och du behöver den på ett annat, hanteras mappnivåsöversättning det i en enda steg. + +--- + +## Nästa steg + +- [Research](./research) -- Sök och sammanfatta på vilket språk som helst, sedan översätta resultaten +- [Workflows](./workflows) -- Kedja översättningar med wiki-länkar eller konceptextraktion +- [Batch Processing](/docs/advanced/batch-processing) -- Samtidighet och överskrivningsbeteende för mappoperationer +- [LLM Providers](/docs/providers/overview) -- Välj den bästa modellen för ditt språkpar diff --git a/website/i18n/sv/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/sv/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..28756b76 --- /dev/null +++ b/website/i18n/sv/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "Wiki-länkar" +description: "Automatisk generering av wiki-länkar för nyckelkoncept" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# Wiki-länkar + +<TLDR> +**Notemd lägger automatiskt till `[[wiki-links]]` i nyckelkoncepten i dina anteckningar.** LLM läser din innehåll, identifierar viktiga termer i sammanhanget och infogar wiki-länkar i Obsidian-stil vid varje förekomst. Valfritt skapas konceptanteckningar med baklänkar. Stöd för synonymsuppression, länkintegritet vid omnamnning/radering samt ren extraktionsläge (ingen filändring). Till skillnad från Auto Link som endast matchar befintliga anteckningstitlar, använder Notemd AI för att identifiera nya koncept och skapa motsvarande anteckningar. Detta ingår i [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Översikt + +Wiki-länkning är Notemd:s kärnfunktion. Den omvandlar vanlig text till en sammanlänkad kunskapsgraph genom att: + +1. **Analysera dina anteckningar** med ett LLM +2. **Identifiera nyckelkoncept** (termer, personer, metoder, teorier) +3. **Infoga `[[wiki-links]]`** vid varje förekomst +4. **Skapa konceptanteckningar** (valfritt) med baklänkar + +## Så här fungerar det + +### Process + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### Exempel + +**Förut:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**Efter:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## Användning + +### Basis: Lägg till länkar i nuvarande anteckning + +1. Öppna en anteckning +2. Klicka höger i redigeraren → **"Process file (add links)"** +3. Vänta några sekunder +4. Koncepten är nu länkade! + +### Batch: Processera flera anteckningar + +1. Klicka med högerklick på en mapp i filexplorern +2. Välj **"Notemd: Processa mapp (lägg till länkar)"** +3. Konfigurera: + - Samtidighet (hur många filer samtidigt) + - Överskriva befintliga länkar (ja/nej) +4. Klicka på **Process** + +### Selektivt: Länka specifik text + +1. Highlightera text som ska bearbetas +2. Klicka med högerklick → **"Process selection (add links)"** +3. Endast den highlighterade delen analyseras + +## Notemd kontra Auto Link + +Obsidian har två metoder för automatisk wiki-länkning: + +| | **Auto Link** | **Notemd** | +|--|---------------|-------------| +| Länkkälla | Befintliga anteckningsnamn i vault | Koncept identifierade av LLM i innehållet | +| Kan länka nya koncept | Nej – titeln måste redan existera | Ja – AI identifierar koncept och skapar anteckningar | +| Hantering av synonymer | Nej | Ja – suppression av synonymer | +| Skapande av konceptanteckningar | Nej | Ja – med baklänkar och deduplikering | +| Batchbearbetning | Nej (endast en fil) | Ja (papperskorgsnivå) | +| Modellrutning per uppgift | Nej | Ja | + +**Auto Link** matchar titlar: om en anteckning vid namn "Machine Learning" existerar, omsluter det förekomster i `[[Machine Learning]]`. Om anteckningen inte existerar sker ingenting. + +**Notemd** drivs av AI: den LLM läser din innehåll, förstår kontexten, identifierar koncept som *bör* länkas – även om ingen anteckning finns ännu – och skapar både länken och konceptanteckningen. + +## Funktioner + +### Suppression av synonymer + +**Problem:** "transformer", "transformers", "Transformer architecture" → 3 separata koncept + +**Lösning:** Notemd upptäcker nära-duplikat och använder kanonisk form. + +**Konfiguration:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### Länkintegritet + +**När du omnam en konceptnotis:** +- Alla wiki-länkar uppdateras automatiskt (Obsidian kärnfunktion) +- Baklänkar förblir intakta + +**När du raderar en konceptnotis:** +- Länkarna förblir men visas som "oanknutna mentioner" +- Du kan skapa om från vilken occurrence som helst + +### Ren extraktionsläge + +**Extrahera koncept utan att ändra det ursprungliga:** + +1. Högerklick → **"Extrahera koncept (inga länkar)"** +2. Konceptnotiser skapas +3. Ursprungliga filen förblir oförändrad + +Användningsfall: Bearbetning av endast läsbar innehåll eller slutgiltiga utkast. + +## Konceptnotisgenerering + +### Automatisk skapning + +**När det är aktiverat (standard), skapar Notemd:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### Konfiguration + +**Utdatamapp:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Hierarkisk struktur:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**Mall:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## Avancerade alternativ + +### Sammanhangsfönster + +**Hur mycket omgivande text som ska skickas:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +Större = bättre noggrannhet, högre kostnad. + +### Minsta förekomster + +**Endast länka koncept som förekommer flera gånger:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +Ställ in på 2 eller 3 för att fokusera på upprepada teman. + +### Utsluta mönster + +**Skipta vissa ord:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +Förhindrar överlänkning av generiska termer. + +### Särskilda prompter + +**Överställ standard LLM-instruktioner:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +Anpassa för domänsspecifika behov (t.ex. "Fokusera på medicinsk terminologi"). + +## Tips och bästa praxis + +### ✅ GÖR + +- **Bearbeta anteckningar med >100 ord** — Korta anteckningar ger få koncept +- **Använd kraftfulla modeller** för bättre identifiering av koncept (GPT-4o, Claude) +- **Granska innan du accepterar** — Kontrollera om de föreslagna länkarna är logiska +- **Bygg iterativt** — Bearbeta 5-10 anteckningar, granska grafen, justera inställningarna + +### ❌ MÅSTE INTE + +- **Överlänka** — Inte varje substantiv behöver en länk +- **Bearbeta utkast upprepade gånger** — Koncept kan förändras, vänta tills de är stabila +- **Ignorera synonym** — Aktivera suppression för att undvika "ML" kontra "Machine Learning" + +## Prestanda + +### Hastighet + +| Anteckningsstorlek | GPT-4o-mini | Claude Sonnet | Ollama (lokal) | +|-----------|-------------|---------------|----------------| +| 500 ord | 2-3 sekunder | 3-5 sekunder | 5-10 sekunder | +| 2000 ord | 5-8 sekunder | 10-15 sekunder | 20-40 sekunder | +| 5000+ ord | Delad (flera anrop) | Delad i chunkar | Delad i chunkar | + +### Kostnadsuppskattning + +**Exempel: 1000-ordig notis med GPT-4o-mini** +- Inmatning: ~1500 tokener +- Utdata: ~200 tokener +- Kostnad: ~ + +**Batchbearbetning av 100 anteckningar:** ~ + +## Felaktighetsfelsökning + +### Inga länkar lagda till + +**Kontrollera:** +1. LLM anropet lyckades (Inställningar → Diagnostik) +2. Notan innehåller tillräckligt med innehåll (>50 ord) +3. Koncept är tekniska/spesifika (inte bara pronomen) + +**Prova:** +- Använd en kraftigare modell +- Öka kontextfönstret +- Kontrollera giltigheten på API-nyckeln + +### För många länkar + +**Lösningar:** +1. Öka minimiantal av förekomster (2 eller 3) +2. Lägg till vanliga ord till exkluderingslistan +3. Använd en mindre aggressiv modell + +### Felaktiga koncept kopplade + +**Felsökningar:** +1. Använd anpassad prompt för domänspecifikitet +2. Aktivera synonymsuppression +3. Granska manuellt och avsluta kopplingen + +### Länkar bryts efter omnamn + +**Detta är normalt Obsidian beteende.** + +För att uppdatera alla länkar: +1. Omnamn konceptnotan +2. Obsidian uppdateras automatiskt `[[old]]` → `[[new]]` + +--- + +## Nästa steg + +- 📖 [Konceptnoter](./concept-notes) — Djupgång i generering av konceptnoter +- 🔍 [Forskningsintegration](./research) — Kombinera länkning med webbforskning +- 🎨 [Diagram](./diagrams) — Visualisera din kunskapsgraph diff --git a/website/i18n/sv/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/sv/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..7935846d --- /dev/null +++ b/website/i18n/sv/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "Arbetsflöden" +description: "Koppla samman flera uppgifter med en-klick-knappar" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Arbetsflöden + +<TLDR> +**Notemd Arbetsflöden kopplar samman flera uppgifter till en enda en-klick-handling.** Definiera sekvenser som `add-links > extract-concepts > research > diagram` med en enkel DSL. Arbetsflöden visas som knappar i sidofältet och kör hela kedjan i den aktuella anteckningen eller mappen. Produktet levereras med fördefinierade arbetsflöden; skapa egna i inställningarna. Varje steg använder sin egen modellkonfiguration per uppgift. + +Detta ingår i [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Översikt + +Ett arbetsflöde eliminerar besväret med att köra uppgifter en efter en. Istället för att klicka höger fyra gånger för att lägga till länkar, extrahera koncept, undersöka okända termer och generera en diagram, trycker du på en knapp i sidofältet och hela kedjan exekveras. Notemd hanterar sekvenseringen, felöverföring och framstegsrapportering. + +Arbetsflöden definieras med en lättviktig DSL (domänsspecifik språk). De finns i inställningarna, visas som klickbara knappar i Obsidian sidofältet och kan tillämpas antingen på den aktuella anteckningen eller en hel mapp. + +## Så här fungerar det + +### Arbetsflödesexekveringspipelinen + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **Parse** -- DSL-strängen delas upp med `>` (eller `>`) till en ordnad lista av uppgiftsidentifikatorer. +2. **Resolve** -- Varje identifikator kopplas till en intern kommando (add-links, extract-concepts, research, translate, diagram osv.). +3. **Execute** -- Stegen körsekventiellt. Varje steg använder den konfigurerade leverantören och modellen per uppgift. +4. **Error handling** -- Om ett steg misslyckas avbryts arbetsflödet eller fortsätts till nästa steg, beroende på din felpolicy. +5. **Done** -- En toast-notifikation rapporterar framgång eller listar eventuella misslyckade steg. + +### DSL-formatet + +Arbetsflöden definieras som en `>`-skildd sekvens av uppgiftsidentifikatorer: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**Tillgängliga uppgiftsidentifikatorer:** + +| Identifier | Aktion | +|------------|--------| +| `process-current-add-links` | Lägg till wiki-länkar i den aktiva anteckningen | +| `extract-concepts-current` | Extrahera koncept från den aktiva anteckningen | +| `research-and-summarize` | Undersöka det valda texten eller anteckningsnamnet | +| `process-current-translate` | Översätta den aktiva anteckningen | +| `summarize-to-mermaid` | Generera en diagram från den aktiva anteckningen | +| `generate-from-title` | Generera innehåll från anteckningsnamnet | +| `extract-original-text` | Extrahera ursprunglig text (för OCR / skannat innehåll) | + +**Varianter på mappnivå** ersätter `current` med `folder` i identifieringsnamnet. + +### Fördefinierade kontra anpassade arbetsflöden + +Notemd levereras med färdiga arbetsflöden för vanliga mönster: + +| Arbetsflöde | Kedja | Användningsfall | +|----------|-------|----------| +| **En-klick-extraktion** | add-links > extract-concepts > research | Bearbeta en forskningsartikel i en enda gång | +| **Fullständig pipeline** | add-links > extract-concepter > forskning > diagram | Fullständig kunskapsextraktion med visualisering | +| **Översätta + Länka** | översätt > add-links | Översätt och länka koncept på mållspråket | + +**Anpassade arbetsflöden** skapas i inställningarna: + +1. Öppna **Inställningar** --> **Notemd** --> **Arbetsflöden** +2. Klicka på **"Lägg till arbetsflöde"** +3. Ange DSL-kedjan (t.ex. `process-current-add-links>extract-concepts-current`) +4. Ge det en visningsnamn (t.ex. "Snabb länk + Extrahera") +5. Den nya knappen visas omedelbart i sidofältet + +## Konfiguration + +| Inställning | Standard | Effekt | +|---------|---------|--------| +| `workflows` | Fördefinierad uppsättning | Array av arbetsflödesdefinitioner (namn + DSL) | +| `workflowContinueOnError` | `true` | Gå vidare till nästa steg om det nuvarande steget misslyckas | +| `workflowShowProgress` | `true` | Visa en framstegsnotis efter varje steg är slutfört | + +### Modeller per uppgift i arbetsflöden + +Varje steg i en arbetsflöde använder sin egen modellkonfiguration per uppgift. Du behöver inte ange modeller i DSL:n själv. Resolveringsordningen är: + +1. Provider/modell per uppgift om `useMultiModelSettings` finns där +2. Global `activeProvider` i annat fall + +Detta innebär att `add-links` kan köras på DeepSeek medan `research` köras på GPT-4o -- allt inom samma arbetsflödesklick. + +## Exempel + +Du har precis importerat en PDF från en maskininlärningsartikel till din säkerhetslåda och vill ha fullständig kunskapsextraktion: + +1. Öppna den importerade anteckningen +2. Klicka på sidofältssknappen **"Full Pipeline"** +3. Notemd kör: + - **Steg 1**: Lägg till wiki-länkar -- `[[attention mechanism]]`, `[[transformer]]` osv. + - **Steg 2**: Extrahera koncept -- skapar konceptanteckningar i din konceptmapp + - **Steg 3**: Forska -- sammanfattar webbkällor för nyckelord + - **Steg 4**: Diagram -- genererar en Mermaid-mindmap av artikels struktur +4. Efter cirka 30 sekunder har din anteckning länkar, konceptanteckningar finns, forskningen har lagts till och en diagramfil har sparas + +Allt från en enda klick. + +## Tips + +- **Börja med fördefinierade arbetsflöden** -- de täcker de vanligaste mönstren. Anpassa endast när du behöver en annan sekvens. +- **Aktivera `workflowContinueOnError`** -- ett misslyckat diagramsteg bör inte avbryta hela pipeline:n. +- **Använd mapparbetsscheman** för massbearbetning -- klicka med höger på en mapp, välj ett arbetsschema, och varje anteckning bearbetas. +- **Ge arbets scheman tydliga namn** -- utrymmet i sidofältet är begränsat. Använd korta, handlingstillriktade namn som "Snabb extraktion" eller "Översätta + Länka". + +--- + +## Nästa steg + +- [Research](./research) -- Förstå vad forskningssteget gör innan du lägger till det i arbets scheman +- [Wiki-Links](./wiki-links) -- Kärnfunktionen för länkning som används i de flesta arbets scheman +- [Concept Notes](./concept-notes) -- Konceptextraktion som ett arbets schemastege +- [Batch Processing](/docs/advanced/batch-processing) -- Samtidighet och progressrapportering för mapparbetsscheman diff --git a/website/i18n/sv/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/sv/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..afa70af4 --- /dev/null +++ b/website/i18n/sv/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "Konfiguration" +description: "Konfigurera Notemd inställningar och preferenser" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Konfiguration + +<TLDR> +**Notemd konfigurationen omfattar 6 huvudområden:** (1) LLM leverantörer och API nycklar, (2) Modellval per uppgift, (3) Utdatavägar och mallar, (4) UI språk och utdataspråk, (5) Söktyper (Tavily/DuckDuckGo), (6) Anpassade arbetsflöden. Alla inställningar finns i Obsidian Inställningar → Notemd. Förändringar träder omedelbart i kraft. +</TLDR> + +## Översikt över inställningarna + +Access: **Obsidian Inställningar (⚙️) → Notemd** + +### Huvudavsnitt + +1. **Leverantörskonfiguration** — API nycklar, bas URLs, modeller +2. **Uppgiftsinställningar** — Modellval per uppgift +3. **Utdatakonfiguration** — Var genererade filer sparas +4. **Språkinsättningar** — UI och utdataspråk +5. **SökinTEGRATION** — Tavily/DuckDuckGo inställning +6. **Arbetsflöden** — Anpassade knappkedjor +7. **Avancerat** — Diagnostik, batchbearbetning, chunking + +--- + +## 1. Leverantörskonfiguration + +### Lägga till en leverantör + +1. **Välj leverantör** från rullgardinslistan (30+ tillgängliga) +2. **Ange API nyckel** +3. **Valfritt**: Ställ in en anpassad bas URL (för proxyer/gatewayer) +4. **Klicka på "Få modelllista"** för att verifiera anslutningen +5. **Välj standardmodell** + +### Vanliga leverantörer + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Lokal) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### Flera leverantörer + +Du kan konfigurera flera leverantörer och byta mellan dem per uppgift: +- **Huvudleverantör**: Används som fallback +- **Uppgiftsspecifika leverantörer**: Överskrivs för specifika uppgifter + +--- + +## 2. Uppgiftsspecifika modeller + +Konfigurera olika modeller för olika uppgifter för att optimera kostnad/kvalitet: + +### Uppgiftstyper + +| Uppgift | Standardmodell | Syfte | +|------|--------------|---------| +| **Länkning** | Huvudleverantör | Identifiera koncept för wiki-länkar | +| **Konceptgenerering** | Huvudleverantör | Extrahera och beskriva koncept | +| **Forskning** | Huvudleverantör | Sammanfatta webbsökningresultat | +| **Översättning** | Huvudleverantör | Översätta text | +| **Diagramgenerering** | Huvudleverantör | Generera Mermaid/Canvas-diagram | + +### Exempel: Kostnadsoptimerad inställning + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### Så här konfigurerar du + +1. **Inställningar → Notemd → Uppgiftsinställningar** +2. För varje uppgift, välj: + - ✅ **Använd huvudleverantören** (standard) + - 🔄 **Använd anpassad leverantör** → välj leverantör + modell + +--- + +## 3. Utdatakonfiguration + +### Utdata av konceptnoter + +**Var nya konceptanteckningar sparas:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Mall:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### Alternativ för mappstruktur + +**Alternativ 1: Platt (alla koncept i en mapp)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**Alternativ 2: Hierarkisk (enligt källmapp)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +Konfigurera: **Inställningar → Utdata → Använd hierarkiska mappar** + +### Diagramutdata + +**Var diagram sparas:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**Format:** +- `.mmd` (Mermaid källa) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. Språkinställningar + +### UI Språk + +**Gränssnittsspråk** (knappar, menyer, dialogrutor): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +Stödd: Engelska, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Русский, العربية, och mer. + +### UtdataSpråk + +**Språk för genererad innehåll** (konceptnoter, forskningssammanfattningar): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**Användningsfall:** Kinesiska UI + engelsk utdata för tvåspråkig forskning. + +### Översättningsmål + +**Standardmål språk** för översättningstjänster: + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. Sökintegration + +### Tavily (Rekommenderat) + +**AI-optimerad söktjänst:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +Skaffa nyckel: [tavily.com](https://tavily.com/) + +**Funktioner:** +- Högkvalitativa resultat +- AI-optimerade sammanfattningar +- Källciteringar + +### DuckDuckGo (Experimentellt) + +**Ingen API-nyckel nödvändig:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**Obs!** Lägre kvalitet, inget anpassning. + +--- + +## 6. Arbetssökvenskonfiguration + +### Skapa anpassade arbetssökvenser + +**Arbetsflöden kopplar samman flera uppgifter i en knapp.** + +1. **Inställningar → Arbetsflöden → Lägg till arbetsflöde** +2. **Namn**: "Paper Analysis Flow" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **Spara** + +En ny knapp dyker upp i vänstra sidofältet. + +### DSL-syntax + +**Format:** `action1>action2>action3` + +**Tillgängliga åtgärder:** +- `process-current-add-links` — Lägg till wiki-länkar till aktuell anteckning +- `extract-concepts-current` — Generera konceptanteckningar +- `research-and-summarize` — Webbsökning + sammanfattning +- `translate-current` — Översätta aktuell anteckning +- `summarize-as-mermaid` — Generera Mermaid-diagram +- `process-folder-add-links` — Batchprocessa mapp + +**Exempel på arbetsflöden:** + +**Snabb konceptextraktion:** +``` +process-current-add-links>extract-concepts-current +``` + +**Djup forskning:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**Flerspråkig analys:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. Avancerade inställningar + +### Batchbearbetning + +**Bearbeta flera filer parallellt:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +Högre = snabbare men fler API anrop. + +### Smart chunking + +**För långa anteckningar, dela upp i chunkar:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +Förhindrar fel på grund av tokengräns. + +### Diagnostikpanelen + +**Visa detaljerade loggar:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +Visar: +- API förfrågningar/svar +- Tokenanvändning +- Bearbetningstider +- Fel + +### Detektering av dubblella koncept + +**Undvik nära-duplika koncept:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +Högre = mer aggressiv sammanfogning. + +--- + +## Konfigurationsprofiler + +### Exportera/Importera inställningar + +**Dela konfigurationer mellan enheter:** + +1. **Inställningar → Avancerat → Exportera konfiguration** +2. Sparar `notemd-config.json` +3. På ny enhet: **Importera konfiguration** + +**Vad som ingår:** +- Provider API-nycklar (valfritt) +- Modellval +- Utdatavägar +- Anpassade arbetsflöden + +--- + +## Rekommenderade konfigurationer + +### För studenter + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### För forskare + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### För användare med integritetsfokus + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### För tvåspråkig arbete + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## Felaktighetsfelsökning i konfigurationen + +### Inställningar sparas inte +- Kontrollera filrättigheter i `.obsidian/plugins/notemd/` +- Prova: Inaktivera plugin → Aktivera igen + +### API-nyckeln är ogiltig +- Inga extra mellanrum +- Kontrollera giltighetsperioden +- Kontrollera krediterna i leverantörspanelen + +### Modeller laddas inte +- Klicka på "Få modelllista" för att uppdatera +- Kontrollera nätverksanslutning +- Prova en annan leverantör + +--- + +## Nästa steg + +- 📖 [Utforska funktioner](../features/wiki-links) +- 🔌 [Leverantörsinställningsguider](../providers/overview) +- ❓ [FAQ](../faq) diff --git a/website/i18n/sv/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/sv/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..7fa090e4 --- /dev/null +++ b/website/i18n/sv/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "Installation" +description: "Så här installerar du Notemd i Obsidian" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Installation + +<TLDR> +**Installera Notemd på under 2 minuter.** Två metoder: (1) Obsidian Community Plugins (rekommenderat, en-klicksinstallation), eller (2) Manuell installation via GitHub Releases. Krävs Obsidian 0.15.0+. Fungerar på Windows, macOS, Linux, iOS och Android. Inga externa beroenden. 4k+ nedladdningar, licensierat enligt MIT. +</TLDR> + +## Metod 1: Community Plugins (Rekommenderat) + +1. Öppna **Obsidian Settings** (⚙️-ikonen eller `Ctrl/Cmd + ,`) +2. Gå till **Community plugins** +3. Klicka på **Browse** +4. Sök efter **"Notemd"** +5. Klicka på **Install** +6. Klicka på **Enable** + +**Klart!** Du kommer att se Notemd-ikonen i din vänstra sidofält. + +## Metod 2: Manuell installation + +### Förutsättningar +- Obsidian 0.15.0 eller nyare +- Git (valfritt, för klonning) + +### Steg + +1. **Ladda ner filer** från [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest): + - `main.js` + - `styles.css` + - `manifest.json` + +2. **Hitta pluginsmappan för din skåp:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +Om `plugins`-mappen inte existerar, skapa den. + +3. **Skapa Notemd-mappen:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **Kopiera de tre filerna** in i `notemd`-mappen. + +5. **Ladda om Obsidian:** + - Tryck på `Ctrl/Cmd + R`, eller + - Starta om Obsidian + +6. **Aktivera pluginet:** + - Inställningar → Community-plugins + - Hitta "Notemd" i listan + - Slå på det + +## Alternativ: Installera via BRAT + +Om du använder [BRAT pluginet](https://github.com/TfTHacker/obsidian42-brat): + +1. Öppna BRAT-inställningarna +2. Klicka på "Lägg till Beta-plugin" +3. Skriv in: `Jacobinwwey/obsidian-NotEMD` +4. Klicka på "Lägg till Plugin" +5. Aktivera Notemd i Community-plugins + +## Verifikation + +Efter installationen, verifiera att Notemd fungerar: + +1. Öppna en vilken anteckning som helst +2. Klicka med höger mus i redigeraren +3. Du bör se Notemd-kommandon som: + - "Processera fil (lägg till länkar)" + - "Extrahera koncept" + - "Undersöka och sammanfatta" + +## Nästa steg + +- **Konfigurera LLM-leverantören:** [Snabbstart →](./quick-start) +- **Felaktighetsfelsökning:** [Vanliga problem →](../advanced/troubleshooting) + +## Systemkrav + +| Plattform | Version | Status | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | Required | +| **Windows** | 7+ | ✅ Stöds | +| **macOS** | 10.15+ | ✅ Stöds | +| **Linux** | Allt | ✅ Stöds | +| **iOS** | 15+ | ✅ Stöds | +| **Android** | 5+ | ✅ Stöds | + +## Avinstallering + +För att ta bort Notemd: + +1. Inställningar → Gemenskapsplugins +2. Hitta "Notemd" +3. Klicka på ❌-ikonen +4. Vill du kan du ta bort pluginsmappen: `<vault>/.obsidian/plugins/notemd/` + +Dina data (anteckningar, konceptanteckningar osv.) förblir oförändrade. + +## Uppdatering + +### Automatisk uppdatering (rekommenderas) +Obsidian kontrollerar automatiskt efter pluginsuppdateringar. När en ny version finns tillgänglig: +1. Inställningar → Gemenskapsplugins +2. Klicka på "Kolla efter uppdateringar" +3. Klicka på "Uppdatera" bredvid Notemd + +### Manuell uppdatering +Ladda ner den senaste versionen och byt ut de tre filerna i din pluginsmappa. + +## Få hjälp + +- 📖 [Snabbstartguide](./quick-start) +- ❓ [FAQ](../faq) +- 💬 [Discord-gemenskapen](https://discord.gg/qnGgsQ9W) +- 🐛 [Rapportera problem](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/sv/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/sv/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..010323bc --- /dev/null +++ b/website/i18n/sv/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "Snabbstartguide" +description: "Börja använda Notemd på 5 minuter" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Snabbstartguide + +<TLDR> +**Börja använda Notemd på 5 minuter.** Tre steg: (1) Lägg till en LLM API-nyckel (eller använd lokalt Ollama), (2) Öppna en anteckning och kör “Processera fil (lägg till länkar)”, (3) Utforska enkla arbetsflöden i sidofältet. Stöder över 30 leverantörer. Ingen kodning nödvändig. Fungerar offline med Ollama. +</TLDR> + +## Steg 1: Konfigurera din första LLM-leverantör (2 min) + +### Alternativ A: Molnleverantör (OpenAI, Anthropic osv.) + +1. Öppna **Inställningar** → **Notemd** +2. Under **LLM-leverantörskonfiguration** välj en leverantör från rullgardinen +3. Ange din **API-nyckel** +4. (Valfritt) Klicka på **“Få modelllista”** för att se tillgängliga modeller +5. Välj en modell för varje typ av uppgift + +**Populära val:** +- **OpenAI**: `gpt-4o-mini` (snabb, prisvärt) +- **Anthropic**: `claude-sonnet-4-6` (hög kvalitet) +- **DeepSeek**: `deepseek-chat` (mycket prisvärt) + +### Alternativ B: Lokalt Ollama (inget API-nyckel nödvändigt) + +1. Installera [Ollama](https://ollama.com/) +2. Ladda ner en modell: `ollama pull llama3.1` +3. I Notemd inställningar, välj **"Ollama"** som leverantör +4. Modellnamn: `llama3.1` (eller vilken modell du som helst har laddat ner) + +## Steg 2: Prova din första uppgift (1 min) + +### Lägg till Wiki-länkar i en anteckning + +1. Öppna en vilken anteckning som helst med meningsfull innehåll +2. Klicka med höger mus i redigeraren +3. Välj **"Processera fil (lägg till länkar)"** +4. Vänta några sekunder +5. Nyckelkoncepten är nu `[[wiki-linked]]`! + +**Exempel:** + +**Förut:** +``` +Machine learning models use neural networks to process data. +``` + +**Efter:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## Steg 3: Utforska funktionerna (2 min) + +### Extrahera konceptanteckningar + +1. Högerklicka → **"Extrahera koncept från aktuell fil"** +2. Notemd skapar separata filer för varje koncept +3. Kontrollera din konfigurerade konceptmapp (standard: `concepts/`) +4. Varje konceptanteckning har en baklänk till din ursprungliga anteckning + +### Forskning och sammanfattning + +1. Highlightera ett ämne i din anteckning +2. Högerklicka → **"Forskning och sammanfattning"** +3. Notemd söker i webben (Tavily eller DuckDuckGo) +4. Sammanfattningen läggs till i din anteckning tillsammans med källor + +### En-klicks-arbetsflöden + +1. Kolla **vänstra sidofältet** efter arbetsflödesknappar +2. Klicka på **"En-klicks-extrahera"** i vilken anteckning som helst +3. Det körs: lägg till länkar → extrahera koncept → forskning → generera diagram +4. Allt i en klick! + +## Vanliga första uppgifter + +### Uppgift 1: Bearbeta en artikel/papper + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### Uppgift 2: Översätta anteckningar + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### Uppgift 3: Skapa en kunskapskarta + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## Tips för anpassning + +### Modellval per uppgift + +Du kan använda olika modeller för olika uppgifter: + +| Uppgift | Rekommenderad modell | Anledning | +|------|------------------|-----| +| Lägg till länkar | `gpt-4o-mini`, `deepseek-chat` | Snabb, många anrop | +| Extrahera koncept | `claude-sonnet-4-6`, `gpt-4o` | Kvalitetsfull extraktion | +| Forskning | `perplexity`, `gpt-4o` | Webbbaserat | +| Översättning | `gemini-flash`, `gpt-4o` | Flerspråkigt | +| Diagram | `claude-opus`, lokalt modell | Komplex resonemang | + +Konfigurera i: **Inställningar → Notemd → Task-specifika modeller** + +### Anpassade arbetsflöden + +Skapa din egen knapp: + +1. Inställningar → Notemd → Arbetsflöden +2. Klicka på "Lägg till arbetsflöde" +3. Ange DSL: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. Namnge det: "Min forskningsflöde" +5. En ny knapp visas i sidofältet + +## Felaktighetsfelsökning + +### "API Nyckel ogiltig" +- Kontrollera om nyckeln är korrekt (inga extra rum) +- Kontrollera om kontot har krediter +- Testa med "Connection Test"-knappen i inställningarna + +### "Modell inte hittad" +- Klicka på "Get Model List" för att se tillgängliga modeller +- Vissa leverantörer kräver specifika modellnamn (t.ex. `gpt-4o` istället för `gpt-4`) + +### Länkar visas inte +- Se till att notan har tillräckligt med innehåll (>50 ord) +- Prova en mer kraftig modell +- Kontrollera om LLM-anropet lyckades (se diagnostikpanelen) + +### Långsam prestanda +- Använd snabbare modeller (`gpt-4o-mini` istället för `gpt-4o`) +- Minsk chunk-storleken i inställningarna +- Aktivera parallell bearbetning för batchuppgifter + +## Nästa steg + +- 📖 [Utforska alla funktioner](../features/wiki-links) +- ⚙️ [Avancerad konfiguration](./configuration) +- 🔧 [LLM Provider-inställning](../providers/overview) +- ❓ [FAQ](../faq) + +## Videotutorial + +Titta på den 3-minutersa snabbstartvideon (kinesisk): +[【Fullständigt öppen källkod, gratis! NotEMD 3 minuter i snabbt gång】](https://b23.tv/lqR0RlA) + +## Få hjälp + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **Problemer**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **Dokumentation**: [Fullständig dokumentation](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/sv/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/sv/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..d17738fb --- /dev/null +++ b/website/i18n/sv/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "Introduktion till Notemd" +description: "AI-drivad byggverktyg för ett kunskapsbas för Obsidian med persistenta notertransformationer, arbetsflöden och diagram baserade på specifikationer" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Introduktion till Notemd + +<TLDR> +**Notemd** (Note + EMD — Enhanced Markdown Documents) är en öppen källkodig Obsidian-plugin som omvandlar läsning med LLM till persistent kunskap. Till skillnad från chat-baserad AI där insikter försvinner efter sessionen skriver Notemd resultaten **direkt in i din vault** som wiki-länkar, konceptnoter, forskningssammanfattningar, översättningar, arbetsflöden och diagram. Det är byggt för forskare, studenter och kunskapsarbetare som vill att läsning, forskning och visuella förklaringar ska ackumuleras till en strukturierad, utvecklande kunskapsgraph. +</TLDR> + +## Vad är Notemd? + +Notemd integrerar **30+ stora språkmodeller** (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama och fler) i ditt Obsidian-arbetsflöde för att automatisera kunskapsutvinning, organisering, översättning, forskning och diagramgenerering. + +### Nyckelforskell: Tillfällig kontra persistent kunskap + +| Aspekt | Chat-baserad AI (ChatGPT osv.) | Notemd | +|--------|-------------------------------|--------| +| **Vart resultaten hamnar** | Chathistorik (försvinner) | Din Obsidian vault (förblir kvar) | +| **Format** | Vanlig textantworter | Strukturerade filer: `[[wiki-links]]`, konceptnoter, diagram | +| **Långsiktig värde** | Måste fråga om igen varje gång | Ackumuleras till en kunskapsgraph | +| **Offlineåtkomst** | Kräver internet | Fungerar fullt offline med Ollama | + +## Kärnfunktioner + +### 1. **Automatisk wiki-länkning** +- LLM identifierar viktiga koncept i dina anteckningar +- Infogar `[[wiki-links]]` vid varje förekomst +- Skapar valfritt länkade konceptanteckningar +- Synonymsuppression för att undvika duplicater + +### 2. **Generering av konceptanteckningar** +- Extraherar kärnkoncept från artiklar, rapporter och anteckningar +- Genererar specialiserade konceptfiler med baklänkar +- Anpassningsbara utdatavägar och mallar + +### 3. **Integration av webbundersökning** +- Söker Tavily eller DuckDuckGo inom Obsidian +- LLM sammanfattar resultaten med källciteringar +- Lägger till forskningsresultat i den nuvarande anteckningen + +### 4. **Flerspråkig översättning** +- Översätta utvalda delar eller hela anteckningar +- Stöder över 21 UI språk +- Oberoende konfiguration av utdataSpråk +- Stöd för batchöversättning + +### 5. **Diagramgenerering** +- **Mermaid**: Flödesscheman, sekvens-, klass-, tillstånds-, ER- och Gantt-diagram +- **JSON Canvas**: Obsidian inhemska layouter +- **Vega-Lite**: Datachartar, tidsserier och spridningsdiagram +- **HTML / Redigerbara HTML/SVG**: Självständiga figurartefakter med semantiska annoteringar +- **Draw.io / Gränser för Drawnix-artefakter**: Exportvägar för underhållare från samma semantiska figurmodell +- **Vägkartan för kretsdiagram**: Stöd för circuitikz/TikZJax utformas kring guldreferenser, begränsade prompter, renderingsfeedback och validering av topologi/layout istället för råa, obegränsade LLM TikZ +- **Förhandsvisningsdiagnostik**: Renderade artefakter kan visa kompilations- och renderingsdiagnostik, och icke-inline-källor kan inspekteras utan att ett LaTeX-körningssystem på plugin-sidan krävs +- Automatisk syntaxrätting för Mermaid-fel + +### 6. **En-klicks-arbetsflöden** +- Koppla samman flera åtgärder till sidofältsknappar +- DSL-baserad definition av arbetsflöde +- Exempel: `add-links > extract-concepts > research > diagram` + +## Vem bör använda Notemd? + +✅ **Forskare** som läser artiklar och skapar litteraturöversikter +✅ **Studenter** som organiserar studieanteckningar och skapar konceptkartor +✅ **Kunskapsarbetare** som vill att läsinsikterna ska förbli kvar +✅ **Tvåspråkiga experter** som behöver översättning + wiki-länkar +✅ **Privatskapsinriktade användare** som vill ha lokalt LLM-stöd (Ollama) +✅ **Kraftanvändare** som anpassar instruktioner och arbetsflöden + +## Varför Notemd + Obsidian? + +**Obsidian** är en lokalt fokuserad, markdown-baserad kunskapsbas. **Notemd** tillför AI-superpoder: +- Dina data förblir i din säkerhetslåda (inte en molntjänst) +- Fungerar offline med lokala modeller +- Gratis och öppen källkod (MIT-licens) +- Integrerar med befintliga Obsidian-pluginer +- Skalas till tiotusentals noter + +## Starta + +1. **Installera**: Inställningar → Community Plugins → Sök → "Notemd" +2. **Konfigurera**: Lägg till din LLM-leverantörs API-nyckel (eller använd lokalt Ollama) +3. **Prova**: Öppna en nota → Högerklick → "Processera fil (lägg till länkar)" +4. **Utforska**: Kolla i sidofältet efter en-klicks-arbetsflöden + +👉 [Installation guide](./getting-started/installation) | [Snabbstartstutorial](./getting-started/quick-start) + +## Riktning för diagramfunktioner + +Notemds diagramarbete flyttar sig bort från att "be modellen skriva en syntaxsträng" mot en lagrad pipeline: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +Den nuvarande implementationen stöder redan Mermaid, JSON Canvas, Vega-Lite, HTML-fallback, redigerbara HTML/SVG, Draw.io XML-artefakter, en minimal Drawnix JSON-undermängd, förhandsvisningsdiagnostik/källor-endast-fallback samt en offline `CircuitSpec -> circuitikz`-prototyp för vanliga källor och CMOS-inverter-guldmallar. Kretsdiagram är en svårare klass: circuitikz kan uttrycka exakt elektrisk topologi, men obegränsad LLM-utdata ger ofta oläsbar routning eller LaTeX som inte renderas. Nästa riktning är att hålla circuitikz begränsad med guldreferensmallar, nodgridslayoutregler, renderingsdiagnostik och skärmbildsåterkopplingsloopar. + +Läs detaljerna i [Diagrams](./features/diagrams). + +## Arkitektur + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd kontra andra Obsidian AI-plugin + +De flesta Obsidian AI-plugin är samtalstillförlitna (du frågar, AI svarar, insikter stannar i chatten). Notemd är **skrivningstillförlitligt**: AI bearbetar dina noter och skriver strukturerade resultat direkt till din säkerhetslåda. + +| Funktioner | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| Automatisk wiki-länkinsättning | Ja | Nej | Nej | Nej | +| Konceptnotergenerering | Ja (med baklänkar + deduplikering) | Nej | Nej | Nej | +| Diagramgenerering | Ja (Mermaid, Canvas, Vega-Lite, HTML, redigerbara artefakter) | Nej | Nej | Nej | +| Integration av webbenheter | Ja (Tavily + DuckDuckGo) | Nej | Nej | Nej | +| Batchhantering av mappar | Ja | Begränsad | Nej | Begränsad | +| Modellrutning per uppgift | Ja (7 uppgifter, oberoende modeller) | Nej | Nej | Nej | +| En-klicks-arbetsflödeskedjor | Ja (DSL) | Nej | Nej | Nej | +| Översättning (batch) | Ja | Nej | Nej | Nej | +| Chatt med säkerhetslådan | Nej | Ja | Nej | Nej | +| Semantisk likhetsökning | Nej | Nej | Ja | Nej | +| Generering baserad på mallar | Nej | Nej | Nej | Ja | +| LLM leverantörer | 36 (cloud + gateway + lokal) | 3-5 | 2-3 | 3-5 | +| Fullt offline | Ja (Ollama) | Delvis | Delvis | Delvis | + +**När du väljer Notemd**: Du vill att AI ska skapa en permanent kunskapsgraph – inte bara chatta om dina anteckningar. + +**När du väljer Copilot**: Du vill ha en konversationsbaserad AI-assistent inuti Obsidian. + +**När du väljer Smart Connections**: Du vill upptäcka befintliga samband mellan anteckningar med hjälp av semantisk sökning. + +## Filosofi + +**Notemd anser att AI bör komplettera mänskligt kunskapsarbete, inte ersätta det.** Pluginen: +- Håller dig under kontroll (granska innan du tillämpar förändringar) +- Bevarar kontexten (alla resultat länkar tillbaka till källan) +- Respekterar integriteten (lokalt LLM-stöd, inga telemetriedata) +- Kan utökas (öppna APIs, anpassade arbetsflöden) + +## Öppen källkod + +- **Licens**: MIT +- **Källkod**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **Samhälle**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **Bidra**: PR:er välkomna, se [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +**Nästa steg**: [Installation →](./getting-started/installation) diff --git a/website/i18n/sv/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/sv/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..9053fea3 --- /dev/null +++ b/website/i18n/sv/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Obsidian Guide till AI-kunskapshantering" +description: "Kompletthandledning för att bygga en sammanlänkad kunskapsbas med AI – från wiki-länkar och konceptextraktion till forskning, översättning och diagramgenerering" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Obsidian Guide till AI-kunskapshantering + +<TLDR> +**Notemd omvandlar LLM-driven läsning till permanent kunskap: wiki-länkar kopplar samman koncept, konceptanteckningar skapar en hämtbar graf, forskning tar in webben i din förvaring, översättning bryter språkbarriärer, diagram gör strukturen synlig, och arbetsflöden sammanfogar allt med en klick.** Denna guide täcker hela processkedjan – från råa anteckningar till en sammanlänkad, visuell, flerspråkig kunskapsbas. +</TLDR> + +## Varför AI-kunskapshantering? + +Traditionell anteckningsfattning ger platta filer. Även med manuella wiki-länkar förblir de flesta anteckningar oanslutna. Notemd använder LLM för att automatisera anslutningslagret: + +- **LLM läser din innehåll** och identifierar vad som är viktigt – termer, metoder, personer, teorier +- **Länkar införs automatiskt** vid varje konceptuppträdande, inte gömda i “se även” +- **Konceptanteckningar genereras** som självständiga, hämtbara filer +- **Forskning berikar anteckningarna** med webbbasad kontext +- **Diagram gör strukturen synlig** – tankkartor, flödesscheman, datagram från samma innehåll + +Resultatet: en kunskapsgraf som växer med varje anteckning du bearbetar, inte bara när du minns att lägga till länkar. + +## Hela processkedjan + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +Varje steg är oberoende. Använd ett eller alla. Den mest effektiva sekvensen: **Lägg till länkar → Konceptanteckningar → Diagram**. + +--- + +## 1. Wiki-länkar: Att göra kopplingar explicita + +Wiki-länkar är ryggraden i en kunskapsgraf. Notemd använder en LLM för att: + +1. Läs innehållet i din anteckning (delas upp i delar för långa dokument) +2. Identifiera kärnkoncept – ge prioritet till specifika, tekniska termer framför generiska substantiv +3. Infoga `[[wiki-links]]` vid varje förekomst +4. Skrämma in synonym så att "ML" och "Machine Learning" inte skapar separata noder + +### När att använda + +- **Varje anteckning >100 ord** – kortare anteckningar ger få koncept +- **Forskningsartiklar, tekniska dokument, mötesanteckningar** – rika på domänspecifika termer +- **Efter att innehållet är stabilt** – bearbeta inte upprepade utkast + +### Viktiga inställningar + +| Inställning | Rekommenderat | Anledning | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek eller GPT-4o-mini | God noggrannhet till låg kostnad | +| Synonymskrämmning | Aktiv | Förhindrar dubbledda noder | +| Context window | Paragraf | Balans mellan noggrannhet och kostnad | + +→ [Wiki-Links deep dive](/docs/features/wiki-links) + +--- + +## 2. Konceptnoter: Återvinnabara kunskapsnodlar + +Wiki-länkar kopplar idéer inlänt, men konceptnoter gör att varje idé kan återvinnas oberoende. Varje koncept får sin egen `.md`-fil: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### Extraktionsprocessen + +Prompten för LLM är mycket strukturerad: +- Normalisera till singularform +- Föredra flerordiga koncept framför enstaka ord (“Dielectric Relaxation” inte “Relaxation”) +- Hoppa över referens- och bibliografisektioner +- Exportera som `CONCEPT:`-rader för deterministisk parsing + +Koncept dedupliceras mellan delar med hjälp av `Set<string>`. LLM-fel i enskilda delar avbryter inte operationen. + +### Backlänkar + +När det aktiveras spårar varje konceptnot vilka källanoter som nämner den. Obsidian:s inbyggda backlänkpanel visar också omvända kopplingar. + +### Deduplikering + +Notemd:s 4-stegs dedupleringsmotor fångar upp: +1. **Exakt match** — jämförelse av filnamn oberoende av stavning +2. **Mångform** — "Models.md" kontra "Model.md" +3. **Symbolnormalisering** — "A-B.md" kontra "A B.md" +4. **Enordig innehåll** — "ML.md" markeras när "Machine Learning.md" finns + +### Nyckelinställningar + +| Inställning | Rekommenderat | Anledning | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` eller `🧠 concepts/` | Håller säkringsarkivet organiserat | +| `extractConceptsAddBacklink` | Aktivt | Möjliggör omvänd sökning | +| `extractConceptsMinimalTemplate` | Inaktivt | Komplettt mall med Linked From | +| Modell per uppgift | DeepSeek | Konceptextraktion behöver inte dyra modeller | +| Synonymsuppression | Aktivt | Samma inställning påverkar både länkning och extraktion | + +→ [Concept Notes deep dive](/docs/features/concept-notes) + +--- + +## 3. Forskning: Att integrera webben + +Notemd integrerar webbsökning i din anteckningsarbetsflöde: + +1. **Frågekonstruktion** — ditt anteckningstitel eller utvald del blir en sökfråga +2. **Webbsökning** — Tavily (rekommenderat, krävs API-nyckel) eller DuckDuckGo (gratis, inga nycklar) +3. **LLM sammanfattning** — sökresultaten sammanfattas till en relevant sammanfattning +4. **Lägg till i anteckning** — sammanfattningen läggs till vid markörspositionen eller som en ny sektion + +### När att använda + +- För innan du bearbetar ett nytt ämne — få först webbkontext +- När en konceptanteckning behöver berikning — forska sedan och lägg till länkar +- För litteraturöversikter — forska i batch på en mapp med anteckningar + +### Viktiga inställningar + +| Inställning | Rekommenderat | Anledning | +|---------|-----------|-----| +| `researchProvider` | GPT-4o eller Claude | Forskning kräver högre kvalitet på sammanfattning | +| Sökservice | Tavily | Bättre relevans, konfigurerbar djup | +| `maxResearchContentTokens` | 4000 | Balans mellan djup och kostnad | + +→ [Research deep dive](/docs/features/research) + +--- + +## 4. Översättning: Att bryta språkbarriärer + +Notemd översätter anteckningar med den konfigurerade LLM-en din – inte en dedikerad översättnings API-en. Det innebär att. + +- **Kontextmedvetna översättningar** – LLM förstår hela dokumentet, inte bara mening för mening +- **Hantering av tekniska termer** – "gradient descent" förblir "梯度下降" och inte "坡度向下" +- **Batch-stöd** – översätt en hel mapp med anteckningar i en enda operation +- **Modell per uppgift** – använd Gemini Flash för översättning (snabb, billig, flerspråkig) + +### Språkstöd + +Notemd stöder självt 21 UI-språk. Översättningsmålsspråket kan konfigureras per uppgift. Vanliga par: EN↔ZH, EN↔JA, EN↔KO, EN↔DE, EN↔FR, EN↔ES. + +→ [Translation deep dive](/docs/features/translation) + +--- + +## 5. Diagram: Att göra strukturen synlig + +Notemd-s diagrampipeläine är specifikationsfokuserad: LLM skapar en strukturierad `DiagramSpec` JSON, och sedan översättningsadapter översätter den till målformatet. Det ger mer tillförlitlig utdata än att be LLM om rå Mermaid-syntax. + +### Avsiktsdetektering + +Notemd infär den bästa diagramtypen från innehållet: + +- **Tabeller med siffror** → datachart (Vega-Lite) +- **Klient/server-vokabulär** → sekvensdiagram (Mermaid) +- **Entitet/huvudnyckel** → ER-diagram (Mermaid) +- **Steg/processflöde** → flödesschema (Mermaid) +- **Konceptkartas nyckelord** → JSON Canvas (Obsidian native) +- **Standard** → tankkartan (Mermaid) + +### Rendering Chain + +Huvudmål → fallback → fallback → HTML. Om Mermaid-syntaxen misslyckas försöker systemet en gång till med felkontext till LLM, och faller sedan tillbaka till ett minimalt diagram. + +### Nyckelinställningar + +| Inställning | Rekommenderat | Anledning | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | Aktivt | Bättre kvalitet genom specifikation först | +| `experimentalDiagramCompatibilityMode` | `best-fit` | Native-mål per avsikt | +| `summarizeToMermaidProvider` | GPT-4o eller Claude | Diagramspecifikationer kräver rumslig resonemang | +| `autoMermaidFixAfterGenerate` | Aktivt | Fångar LLM-syntaxfel automatiskt | +| Lokal kunskapsförstärkning | Aktiverat för domänspecifikt användning | Förbättrar noggrannheten med vault-kontext | + +→ [Diagramdjupdykning](/docs/features/diagrams) + +--- + +## 6. Arbetsscheman: En-klicksautomatisering + +Arbetsscheman kopplar samman flera uppgifter i en enda sidofältsknapp. DSL-formatet är: + +``` +task1 | task2 | task3 +``` + +Exempel: `addLinks | extractConcepts | generateDiagram` — bearbeta en anteckning från råtext till en fullt kopplad, visuell kunskapsnod med en enda klick. + +### Rekommenderade arbetsscheman + +| Arbetsflöde | Kedja | Användningsfall | +|----------|-------|----------| +| Fullständig process | `addLinks \| extractConcepts \| generateDiagram` | Nya anteckningar | +| Forskning först | `research \| addLinks` | Okända ämnen | +| Polyglot | `translate \| addLinks` | Flerspråkiga anteckningar | +| Endast diagram | `generateDiagram` | Snabb visualisering | + +→ [Workflows deep dive](/docs/features/workflows) + +--- + +## 7. LLM leverantörer: 36 alternativ från moln till lokalt + +Notemd stöder 36 leverantörer över 4 transporttyper. Nyckelgrupper: + +- **Internationellt moln**: OpenAI, Anthropic, Google, Mistral, xAI +- **Kinesiskt moln**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **Gångvägar**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **Lokalt**: Ollama, LMStudio, OVMS — inget API-nyckel, inga data lämnar din dator + +### Strategi för modellhantering per uppgift + +Den mest kostnadseffektiva konfigurationen använder billiga modeller för enkla uppgifter och kraftfulla modeller för komplexa uppgifter: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [LLM Leverantöröversikt](/docs/providers/overview) + +--- + +## Kontrolllista för att börja + +1. **Installera Notemd** — [Community Plugins](/docs/getting-started/installation) (rekommenderat) eller manuellt +2. **Konfigurera en leverantör** — DeepSeek (enklast), OpenAI, eller Ollama (gratis) +3. **Bearbeta din första notis** — högerklick → "Processa fil (lägg till länkar") +4. **Ställ in konceptmapp** — Inställningar → Notemd → Utdata → Konceptmapp +5. **Extrahera koncept** — kör "Extrahera koncept" på samma anteckning +6. **Generera en diagram** — kör "Generera diagram" för att visualisera kopplingarna +7. **Skapa en arbetsflöde** — koppla ihop ovanstående till en en-klick-knapp + +## Rekommenderade konfigurationer + +### Student (Budget) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### Forskare (Kvalitet) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### Privatskapsfokuserad (Endast lokalt) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### Tvåspråkig (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## Vanliga mönster + +### Mönster: Bearbeta en forskningsartikel + +1. Importera PDF-innehåll (eller klistra in) +2. **Forskning** — hämta webbkontext om ämnet +3. **Lägg till länkar** — identifiera och länka till nyckelkoncept +4. **Extrahera koncept** — skapa självständiga anteckningar +5. **Generera diagram** — visualisera artikelnas struktur + +### Mönster: Dagliga anteckningars berikning + +1. Skriv daglig anteckning +2. **Lägg till länkar** — kopplar idagens idéer till befintliga koncept +3. Konceptanteckningar uppdateras automatiskt med baklänkar + +### Mönster: Literaturöversikt + +1. Skapa mapp med artiklar/anteckningar +2. **Lägg till länkar i batch** — bearbeta hela mappen +3. **Avdupliera koncept** — rensa nära-duplika anteckningar +4. **Generera diagram** — tankkartan över hela litteraturen + +--- + +*Notemd är öppen källkod (MIT) och fungerar med Obsidian 0.15.0+ på alla plattformar. [Installera nu](/docs/getting-started/installation) eller [se på GitHub](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/sv/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/sv/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..5220fa05 --- /dev/null +++ b/website/i18n/sv/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "Konfigurera Anthropic Claude" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Anthropic Provider + +<TLDR> +**Anthropic använder den inbyggda Messages API-transporten, inte den OpenAI-kompatibla transporten.** Den nuvarande förinställningen använder standardmässigt `claude-3-5-sonnet-20240620`, `https://api.anthropic.com` och `temperature: 0.5`. Betrakta det som en separat protokollyta vid felsökning. + +Detta ingår i [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Inställning + +Skapa en Anthropic API-nyckel, lägg till en `Anthropic`-providerprofil och låt Base URL vara på den inbyggda endpointen om du inte routerar via en dedikerad gatewayprofil. Välj den Claude-modell-ID du vill använda i fältet för modell; standardvärdet håller den nuvarande produktbaslinjen stabil. + +Anthropic är en bra valmöjlighet för högkvalitativ sammanfattning, forskningssynthes och konceptextraktion. Om du blandar det med billigare leverantörer, använd det endast för de uppgifter som drar nytta av dess utdatakvalitet. + +## Endpoint och autentisering + +| Fält | Nuvarande förinställning | +|-------|----------------| +| Transport | `anthropic` | +| API-nyckel | Required | +| Base URL | `https://api.anthropic.com` | +| Standardmodell | `claude-3-5-sonnet-20240620` | +| Temperature | `0.5` | +| Anslutningstest | Endast chatt | + +Körningen skickar förfrågningar till `/v1/messages` med `x-api-key` och `anthropic-version: 2023-06-01`. Konfigurera inte en OpenAI-stil `/v1/chat/completions`-endpoint under denna förinställning; använd istället en OpenAI-kompatibel gatewayförinställning. + +## Modellupptäckt + +Anthropic använder `anthropic-models`-upptäckningsläget i leverantörregistret. Om din nyckel eller konto inte kan lista modeller, behåll en känd modell-ID i profilen och validera genom anslutningstestet. + +Transporten är inte utbytbar med OpenAI-kompatibla leverantörer. En Claude-modell som dirigeras via OpenRouter, LiteLLM eller en annan gateway tillhör den gateway-profilen, inte den inhemska Anthropic-profilen. + +## Felaktighetsfelsökning + +- `401` eller `403`: kontrollera nyckelskoppling, arbetsplatsåtkomst, fakturering och om nyckeln tillhör den förväntade Anthropic-arbetsplatsen. +- `404`: Den inhemska URL-basen är felaktig eller den valda modell-ID:n är inte tillgänglig för kontot. +- Gateway-stil Claude-modell-ID:er misslyckas – flytta profilen till den motsvarande gateway-leverantören eftersom inhemska Anthropic-system förväntar sig inhemska modellnamn. +- Långa förfrågningar misslyckas sent: minska modellutdatastorleken per uppgift eller använd en modell med ett högre kändt utdata-tokengräns. + +## När att använda + +Använd Anthropic när kvaliteten på syntes, forskningsanteckningar eller strukturerad skrivning är viktigare än råkostnader. Använd det inte som en generell OpenAI-kompatibel fallback; den separata transporten är poängen, och att blanda protokoll gör diagnostiken svårare. + +--- + +## Nästa steg + +- [LLM Leverantörer](/docs/providers/overview) -- Full konfiguration, modeller per uppgift och återförsöklogik +- [Felaktighetsfelsökning](/docs/advanced/troubleshooting) -- Fixa 401/403-och anslutningsfel diff --git a/website/i18n/sv/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/sv/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..25d7aa8f --- /dev/null +++ b/website/i18n/sv/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "Kinesiska leverantörer" +description: "Konfigurera Qwen, DeepSeek, GLM, osv." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Kinesiska leverantörer + +<TLDR> +**Notemd stöder leverantörer i Kina och med ursprung i Kina genom främst OpenAI-kompatibla slutpunkter.** Den nuvarande uppsättningen inkluderar DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, MiniMax, Baidu Qianfan, SiliconFlow, Huawei Cloud MaaS och Z AI. Värdet är regional tillgänglighet och kostkontroll; risken är leverantörsspecifika modellnamn och kontokontroller. + +Detta ingår i [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Inställning + +Skapa leverantörskontot, generera en API-nyckel, och välj sedan den motsvarande Notemd-presettet istället för att använda ett generiskt OpenAI-profil. Presetet innehåller standarden Base URL, modell, API-testläge, modellupptäcktsbeteende samt alla leverantörsspecifika UI-fält. + +Använd aggressiv modellval för varje uppgift här. Till exempel håll DeepSeek eller GLM vid arbetsflöden med mycket resonemang, använd Qwen eller Moonshot för breda kinesiska språkuppgifter, och dirigera kodningstasker till Qwen Code när det kontot exponerar kodermodeller. + +## Endpoint och autentisering + +| Leverantör | Standardmodell | Base URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (krävs slutpunkts-ID) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**Obs!** Doubao kräver ett Ark-slutpunkts-ID (format: `ep-xxxxxxxx-xxxx-xxxx`) istället för en standardmodellnamn. + +De flesta av dessa leverantörer använder den delade OpenAI-kompatibla körmiljön, men deras konto- och modellsemantik skiljer sig. Håll den presettspecifika Base URL om du inte har verifierat kontotets alternativa slutpunkt. + +## Modellupptäckt + +DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan och SiliconFlow använder OpenAI-kompatibell modellupptäckt när leverantören stöder listning. Huawei Cloud MaaS använder `huaweicloud-modelarts-models`-läget eftersom ModelArts-deployeringsmetadatan inte är identisk med en generisk `/v1/models`-lista. + +Behandla misslyckanden vid upptäckt inte som bevis på att chatt är omöjlig. Flera leverantörer tillåter chatt samtidigt som de begränsar rättigheterna till modelllistor. I så fall håll en explicit modell-ID i profilen och validera med anslutningstestet. + +## Felaktighetsfelsökning + +- Autentiseringen lyckas men chatten misslyckas: modellnamnet kan ligga utanför kontotets rättigheter eller region. +- Doubao misslyckas med en vanlig modellnamn: använd Ark-slutpunkts-ID:t i modellfältet när din deployment kräver det. +- Resonemangsresponser är avklippta: kontrollera leverantörsspecifika maximala utdata-token samt Notemd-s modellmedvetna maximala-tokeninställningar. +- Regional nätverk skiljer sig: använd leverantörens Kina-regionslutpunkt när vault-maskinen finns i Kina; använd den internationella slutpunkten endast när både kontot och nätverksvägen är giltiga. + +## När att använda + +Använd kinesiska leverantörer när regional latens, betalnings-/kontoåtkomst, kinesisk språkkvalitet eller kostnad är den huvudsakliga begränsningen. Välj direkta OpenAI, Anthropic, Google eller lokala leverantörer om du behöver en enklare protokollgräns eller starkare enhetlighet vid felsökning mellan olika leverantörer. + +--- + +## Nästa steg + +- [LLM Leverantörer](/docs/providers/overview) -- Full konfiguration, modeller per uppgift och återförsöklogik +- [Felsökning](/docs/advanced/troubleshooting) -- Lägg till räddning på regionala anslutnings- och autentiseringsfel diff --git a/website/i18n/sv/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/sv/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..2c2320ee --- /dev/null +++ b/website/i18n/sv/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "Konfigurera Google Gemini" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Google Provider + +<TLDR> +**Google använder den inbyggda Gemini Generative Language API-transporten.** Den aktuella inställningen standardiseras till `gemini-2.0-flash-exp`, `https://generativelanguage.googleapis.com/v1` och `temperature: 0.5`. Det är inte en OpenAI-kompatibel profil. + +Detta ingår i [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Inställning + +Skapa en Google AI Studio eller Google Cloud API-nyckel med Gemini-åtkomst, lägg till en `Google`-leverantörprofil och behåll den inbyggda Generative Language Base URL. Använd den standardmässiga Gemini Flash-profilen för snabb översättning och breda noterarbetsflöden, och överskriv sedan modeller per uppgift när du behöver en större eller mer kapabel Gemini-modell. + +Undvik att placera Gemini-modell-ID:er i en OpenAI-kompatibel profil om du inte uttryckligen använder en gateway som exponerar Gemini via en OpenAI-kompatibel API. + +## Endpoint och autentisering + +| Fält | Nuvarande förinställning | +|-------|----------------| +| Transport | `google` | +| API-nyckel | Required | +| Base URL | `https://generativelanguage.googleapis.com/v1` | +| Standardmodell | `gemini-2.0-flash-exp` | +| Temperature | `0.5` | +| Anslutningstest | Endast chatt | + +Körningen anropar `/models/{model}:generateContent?key={apiKey}`. Nyckeln skickas som en frågeparametrar eftersom det är så den inbyggda Gemini-ändpunkten är ansluten i pluginet. + +## Modellupptäckt + +Google använder `google-models`-upptäckningsläget. Upptäckningen bör returnera Gemini-modeller som är tillgängliga för API-nyckeln; om selektorn är tom, testa nyckeln mot samma Base URL och bekräfta att modellfamiljen är aktiverad för det kontot. + +Kända gränser för utdata-token är modellberoende i leverantörregistret. Om en lång översättning eller diagramförklaring trunkeras, välj en Gemini-modell med ett större stödd utdatagrad eller sänk den begärda utdatastorleken. + +## Felaktighetsfelsökning + +- `400`: Modell-ID:n matchar vanligtvis inte den inbyggda Gemini-rutan eller förfrågan överskrider modellens stödda struktur. +- `401` eller `403`: Kontrollera nyckelrestriktioner, projekt/API-aktivering och om nyckeln kan komma åt Gemini. +- `404`: Modell-ID:n är inte tillgänglig i den konfigurerade API-versionen. +- Exempel på gatewayer misslyckas under denna profil: Använd istället gateway-inställningen istället för den inbyggda Google-leverantören. + +## När att använda + +Använd Google för snabb översättning, stort omfattande noterrengöring och arbetsflöden där Gemini:s kostnads/prestanda-balans är bättre än direkt OpenAI eller Anthropic. Välj en annan leverantör för arbetsflöden som kräver OpenAI-kompatibel resonemangsmodellhantering. + +--- + +## Nästa steg + +- [LLM Leverantörer](/docs/providers/overview) -- Full konfiguration, modeller per uppgift och återförsöklogik +- [Översättning](/docs/features/translation) -- Gemini Flash rekommenderas för högvolymiga översättningsuppgifter diff --git a/website/i18n/sv/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/sv/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..5bdb54fa --- /dev/null +++ b/website/i18n/sv/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "Lokala modeller" +description: "Konfigurera Ollama och lokala LLMs" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# Lokala modeller + +<TLDR> +**Lokala leverantörer håller innehållet bort från hostade APIs.** Den aktuella lokala vägen täcker Ollama med den inhemska `ollama`-transporten och LMStudio via den OpenAI-kompatibla transporten. Ingen API-nyckel krävs för någon av vägarna, men den lokala servren och modellen måste redan vara igång. + +Detta ingår i [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Inställning + +För Ollama installera Ollama, hämta den modell du vill ha, starta servren och lägg till en `Ollama`-leverantörsprofil i Notemd. För LMStudio ladda en modell i LM Studios lokala server och lägg till en `LMStudio`-leverantörsprofil. + +Lokala modeller är operativa beroenden, inte bara inställningar. Notemd kan endast anropa det som den lokala processen exponerar, så kontrollera den lokala modellen utanför Obsidian innan du felsöker pluginet. + +## Endpoint och autentisering + +| Leverantör | Base URL | Standardmodell | API-nyckel | Noter | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | Inte nödvändigt | NDJSON strömning; modellupptäckt via `/api/tags` | +| LMStudio | `localhost:1234/v1` | `local-model` | Inte nödvändigt | Sänder `"EMPTY"` som bearer-token; OpenAI-kompatibelt | + +Ollama använder den inhemska `/chat`-vägen under sin Base URL. LMStudio följer den OpenAI-kompatibla `chat/completions`-rutan och förväntar sig en modell som är laddad i den lokala servern. + +## Modellupptäckt + +Ollama använder `ollama-tags`-upptäcktsläget och listar lokalt hämtade taggar. LMStudio använder OpenAI-kompatibel modellupptäckt när dess server exponerar `/v1/models`. + +Om upptäckten returnerar ingenting är det vanligtvis en problem med den lokala servrens tillstånd: modellen har inte hämtats, inte laddats, eller servren är binderad till en annan värde/port än profilen. + +## Felaktighetsfelsökning + +- Anslutning nekterades: starta Ollama eller LM Studio och kontrollera den konfigurerade porten. +- Modell hittades inte: hämta Ollama-taggen eller ladda den LM Studio-modellen innan du testar. +- Långsamt utdata: sänk kontextstorleken, använd en mindre lokal modell eller dirigera tunga uppgifter till en hostad leverantör. +- Tomma eller felformaterade svar: se till att den valda leverantörsprofilen stämmer överens med den lokala serverns protokoll; Ollama och LMStudio är inte utbytbara. + +## När att använda + +Använd lokala leverantörer för privata skåp, offline-arbete eller billiga, upprepadar uppgifter. Anta inte automatiskt att det lokala är bättre för forskningssynthes eller långvarigt resonemang; modellkvalitet och hårdvarugränser är utbytet. + +--- + +## Nästa steg + +- [LLM Leverantörer](/docs/providers/overview) -- Full konfiguration och modellinställning per uppgift +- [Felaktighetsfelsökning](/docs/advanced/troubleshooting) -- Läs till rättningar för connection-refused-fel när den lokala servern inte körs diff --git a/website/i18n/sv/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/sv/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..7a3286c0 --- /dev/null +++ b/website/i18n/sv/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "Konfigurera OpenAI (GPT-4, GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# OpenAI Provider + +<TLDR> +**OpenAI använder den delade OpenAI-kompatibla transporten.** Den aktuella förinställningen är `gpt-4o`, `https://api.openai.com/v1`, `temperature: 0.5` samt `models-then-chat`-kontakttesten. Använd denna sida när du behöver exakta fältsemantik; använd översikten [LLM Providers](/docs/providers/overview) för val på kategorinivå. + +Detta ingår i [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). +</TLDR> + +## Inställning + +Skapa en OpenAI API-nyckel, lägg till en `OpenAI`-leverantörprofil i Notemd-inställningarna och behåll den standardmässiga Base URL om du inte avsiktligt pekar på en OpenAI-kompatibel gateway. Modellfältet kan stanna på `gpt-4o` för allmännt arbete eller ersättas med en annan OpenAI-modell-ID som ditt konto kan anropa. + +Använd modeller specifika för uppgifter för kostkontroll: behåll starkare modeller för forskning, konceptextraktion och långformig omstrukturering; använd billigare eller snabbare modeller för översättning, länksförslag och korta sammanfattningar. + +## Endpoint och autentisering + +| Fält | Nuvarande förinställning | +|-------|----------------| +| Transport | `openai-compatible` | +| API-nyckel | Required | +| Base URL | `https://api.openai.com/v1` | +| Standardmodell | `gpt-4o` | +| Temperature | `0.5` | +| Anslutningstest | `/models`, sedan `/chat/completions` | + +Notemd normaliserar OpenAI-kompatibla base URL:er innan det läggs till `chat/completions` eller `models`. Inkludera inte en avslutande `/chat/completions` i Base URL; det skapar en dubbeld tagg. + +## Modellupptäckt + +OpenAI använder den generiska OpenAI-kompatibla modellupptäcktsvägen. Inställningarna UI frågar först `/v1/models` och verifierar sedan den valda modellen med en lättviktig chattförfrågan. Om upptäckt misslyckas men chatten fortfarande fungerar, kontrollera om din nyckel har rätt till model-list eller om en gateway blockerar modelllistning. + +Reasoning-modeller behandlas som en protokollrandfall: Notemd sammanfogar system- och användarpromptinnehåll för OpenAI-reasoning-ID:er som avvisar en separat `system`-roll, och det exponerar bara `reasoningEffort` där leverantördefinitionen stöder det. + +## Felaktighetsfelsökning + +- `401` eller `403`: Kontrollera nyckeln, projektåtkomst, faktureringstillstånd och om den valda modellen är aktiverad för nyckeln. +- `404` i chatten: Base URL är vanligtvis felaktigt eller innehåller redan `/chat/completions`. +- Modellen visas i dokumenten men inte i selektorn: model-list-åtkomst och chattåtkomst är separata felpunkter; testa den exakta modell-ID:n manuellt i leverantörprofilen. +- Reasoning-modellen avvisar meddelanden: Använd en modell-ID som omfattas av OpenAI-reasoninghanteringsvägen eller byt till en icke-reasoning-chattmodell. + +## När att använda + +Använd OpenAI när du vill ha den mest förutsägbara standardhostade vägen, när `/v1/models`-upptäckt är viktig, eller när en arbetsflöde beror på OpenAI-reasoningmodellsemantik. Välj en gateway eller lokal leverantör när routning, integritet eller kostkontroll är viktigare än direkt OpenAI API-beteende. + +--- + +## Nästa steg + +- [LLM Leverantörer](/docs/providers/overview) -- Full konfiguration, modeller per uppgift och återförsöklogik +- [Troubleshooting](/docs/advanced/troubleshooting) -- Fixa 401/403- och rate-limit-fel diff --git a/website/i18n/sv/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/sv/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..e3a17e06 --- /dev/null +++ b/website/i18n/sv/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "LLM Tjänsteleverantörer" +description: "Konfigurera 36 LLM tjänsteleverantörer — moln, gateway och lokalt — med val av modell per uppgift" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# LLM Tjänsteleverantörer + +<TLDR> +**Notemd stöder 36 LLM tjänsteleverantörer över 4 transporttyper.** Alla API anrop använder rå HTTP (inga SDK:er) med automatisk återförsök, transportfallback och 5-minuters cache för svar. Val av modell per uppgift gör att du kan använda billiga modeller för konceptextraktion och kraftfulla modeller för forskning. Ingen API nyckel behövs för lokala leverantörer (Ollama, LMStudio). +</TLDR> + +Detta ingår i [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge). + +## Kategorier för tjänsteleverantörer + +### Molntjänsteleverantörer + +| Leverantör | Standardbas URL | Standardmodell | Temperature | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### Gateway-/Proxy-tjänsteleverantörer + +| Leverantör | Standardbas URL | Standardmodell | Noter | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | Lägger till `HTTP-Referer` + `X-Title`-header | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | Lägger till `X-GitHub-Api-Version`-header | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | Lägger till `APP-Code`-header | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | Valfri API-nyckel | +| **Nytt API** | `localhost:3000/v1` | `gpt-4.1` | Valfri API-nyckel | +| **OpenAI Compatible** | (användarkonfigurerat) | `your-model-id` | Custom endpoint | + +### Kinesiska leverantörer + +| Leverantör | Default Base URL | Standardmodell | Noter | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | Inriktat på kodning | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (krävs slutpunkts-ID) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | Zhipu, Kinas endpoint | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | Zhipu, internationell endpoint | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | Plattform för modellhosting | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao kräver en Ark-endpoint-ID** (format: `ep-xxxxxxxx-xxxx-xxxx`). Den standardmässiga placeringen måste ersättas. + +### Lokala leverantörer + +| Leverantör | Default Base URL | Standardmodell | Noter | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | Ingen API-nyckel. NDJSON-strömning. Modellupptäckt via `/api/tags` | +| **LMStudio** | `localhost:1234/v1` | `local-model` | Skickar `"EMPTY"` som bearer-token. OpenAI-kompatibel upptäckt | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (anpassat av användaren) | `gpt-4o` | Namnet på distributionen i URL. `api-key`-header | + +## Modellval per uppgift + +Notemd stöder en oberoende leverantör och modell för varje uppgift. Aktivera med `useMultiModelSettings: true`. + +### Tillgängliga uppgifter + +| Uppgift | Inställningsnyckel | Standardleverantör | +|------|-------------|-----------------| +| Lägg till länkar (insering av wiki-länkar) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| Forskning (webbsökning + sammanfattning) | `researchProvider` / `researchModel` | DeepSeek | +| Generera från titel | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| Översättning | `translateProvider` / `translateModel` | DeepSeek | +| Diagramgenerering | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| Konceptextraktion | `extractConceptsProvider` / `Model` | DeepSeek | +| Ursprungstextextraktion | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### Lösningsordning + +1. Om `useMultiModelSettings` är aktiverat → använd den uppgiftsspecifika leverantören + modellen +2. Om överskrivningen av uppgiftsmodellen är tom → fall tillbaka till leverantörens standardmodell +3. Om uppgiftsleverantören är ogiltig → fall tillbaka till den globala `activeProvider` +4. Om `useMultiModelSettings` är avstängt → alla uppgifter använder den globala `activeProvider` + +### Rekommenderade konfigurationer + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## API Call Architecture + +### Transportlagrar + +1. **Obsidian `requestUrl`** — primär (inbyggd, fungerar på alla plattformar) +2. **Desktop HTTP** — Node.js `http`/`https`-moduler (strömning + långa förfrågningar) +3. **Web `fetch`** — fallback när Node.js-moduler inte är tillgängliga + +Pluginen kaskaderas automatiskt mellan transportlagrar vid tillfälliga nätverksfel. + +### Återförsökslogik + +- **Normalläge** (`enableStableApiCall: false`): En enda försök. Vid tillfällig misslyckande eskaleras det automatiskt till ett stabilt återförsök. +- **Stabilt återförsöksläge** (`enableStableApiCall: true`): Upp till 4 försök (1 + 3 återförsök) med 5 sekunders intervallar. +- **Tillfälliga fel som utlöser återförsök**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **Inte återförsökbara**: HTTP 400, 401, 403, 404 + +### Svarcaching + +5-minuters LRU-cache i minnet med nycklar baserade på leverantör + modell + temperatur + prompt + innehåll. Efterföljande identiska förfrågningar inom 5 minuter returnerar omedelbart cacherade resultat. + +### Hantering av resonemangsmodeller + +Modeller som inte stöder `system`-rollen (DeepSeek R1, OpenAI o1/o3/o4/gpt-5) har automatiskt system- och användarprompts sammanfogade till en enda användarmeddelande. + +DeepSeek-specifik: `thinkingEnabled` lägger till `{ thinking: { type: 'enabled' } }` i förfrågan. `reasoningEffort` (låg/mellanlig/hög) skickas som `reasoning_effort`. Kontrollerar att maximal utdataantal token är ≥ 8000 när tänkning är aktiverad. + +### Tokenuppskattning + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — heuristik med 4 tecken per token. Används för att upprätthålla `maxResearchContentTokens` innan det skickas till LLM. + +Ingen kostnadsförfoljning är implementerad. + +## Modellupptäckt + +| Modus | Tillhandahållare | Endpoint | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | Modelllista API | +| `anthropic-models` | Anthropic | Modelllista API | +| `openai-compatible-models` | DeepSeek, Qwen, Mistral, osv. | `/v1/models` | +| `openrouter-models` | OpenRouter | Modelllista API | +| `github-models` | GitHub Models | Inférsion API | +| `none` | Azure OpenAI | Inaktiverat (kräver distributionsnamn) | + +## Snabbstart + +1. **Välj en tillhandahållare** — DeepSeek (Kina), OpenAI (Internationellt) eller Ollama (Lokal/Gratis) +2. **Ange API-nyckeln** — Inställningar → Notemd → Tillhandahållare → API-nyckel +3. **Testa anslutningen** — Klicka på testknappen +4. **Valfritt: Modeller per uppgift** — Aktivera `useMultiModelSettings` och konfigurera separat + +För Ollama: inget API-nyckel behövs. Se bara till att `ollama serve` körs. + +--- + +## Nästa steg + +- 📝 [Konceptnoter](/docs/features/concept-notes) — Använder modell för extraktion per uppgift +- 🎨 [Diagram](/docs/features/diagrams) — Använder diagrammodell per uppgift +- 🔍 [Forskning](/docs/features/research) — Använder modell specifik för forskning +- ⚙️ [Konfiguration](/docs/getting-started/configuration) — Fullständig referens för inställningar diff --git a/website/i18n/sv/docusaurus-theme-classic/footer.json b/website/i18n/sv/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/sv/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/sv/docusaurus-theme-classic/navbar.json b/website/i18n/sv/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/sv/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/th/code.json b/website/i18n/th/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/th/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/th/docusaurus-plugin-content-docs/current.json b/website/i18n/th/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/th/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/th/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/th/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..1869fc1d --- /dev/null +++ b/website/i18n/th/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "การประมวลผลแบบกลุ่ม" +description: "ประมวลผลไฟล์หลายไฟล์ได้อย่างมีประสิทธิภาพ" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# การประมวลผลแบบกลุ่ม + +<TLDR> +**Notemd จะประมวลผลโฟลเดอร์ทั้งหมดในครั้งเดียว โดยสามารถกำหนดค่าความพร้อมใช้งานพร้อมกันและการควบคุมการเขียนทับได้** คลิกขวาที่โฟลเดอร์เพื่อเพิ่มลิงก์ wiki แบบกลุ่ม ดึงข้อมูลแนวคิด ทำการวิจัย หรือแปลบันทึกทั้งหมดภายในโฟลเดอร์ ขีดจำกัดความพร้อมใช้งานพร้อมกันจะช่วยป้องกันข้อผิดพลาดด้านการจำกัดอัตรา API จะมีการรายงานความคืบหน้าสำหรับแต่ละไฟล์ พฤติกรรมการเขียนทับสามารถกำหนดได้ ได้แก่ ข้ามไฟล์ที่มีอยู่ แทรกท้าย หรือแทนที่ ไฟล์ที่ล้มเหลวจะถูกบันทึกไว้โดยไม่ทำให้การประมวลผลแบบกลุ่มหยุดลง + +นี่เป็นส่วนหนึ่งของ [Obsidian คู่มือการจัดการความรู้ด้วย AI](/docs/pillar-ai-knowledge) +</TLDR> + +## ภาพรวม + +การประมวลผลแบบกลุ่มจะเปลี่ยนโฟลเดอร์ที่มีบันทึกให้กลายเป็นการดำเนินการเพียงครั้งเดียว แทนที่จะเปิดบันทึกแต่ละไฟล์แล้วรันคำสั่งแยกกัน คุณเพียงแค่คลิกขวาที่โฟลเดอร์แล้วเลือกงานที่ต้องการ Notemd จะทำการดำเนินการกับไฟล์ `.md` ทุกไฟล์ ใช้คำสั่งที่เลือกไว้ และรายงานความคืบหน้าแบบเรียลไทม์ + +คุณสมบัตินี้มีความสำคัญอย่างยิ่งสำหรับการดึงข้อมูลความรู้ทั่วทั้ง vault ตัวอย่างเช่น หลังจากนำเข้า PDF หลายสิบไฟล์ การเพิ่มลิงก์แบบกลุ่มตามด้วยการดึงข้อมูลแนวคิดแบบกลุ่มจะช่วยสร้างกราฟความรู้ของคุณได้ภายในไม่กี่นาที แทนที่จะใช้เวลาหลายชั่วโมง + +## หลักการทำงาน + +### แบบจำลองการดำเนินการแบบกลุ่ม + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **การรวบรวมไฟล์** -- Notemd จะสแกนโฟลเดอร์เป้าหมายแบบเรียกซ้ำ (หรือเฉพาะระดับบนสุดตามการตั้งค่า) และรวบรวมไฟล์ `.md` ทั้งหมด +2. **การแบ่งกลุ่มความพร้อมใช้งานพร้อมกัน** -- ไฟล์จะถูกแบ่งออกเป็นส่วนย่อยตามการตั้งค่า `batchConcurrency` แต่ละส่วนย่อยจะทำงานพร้อมกัน ในขณะที่ส่วนอื่นๆ จะทำงานตามลำดับ +3. **การดำเนินการ** -- แต่ละไฟล์จะถูกประมวลผลโดยใช้ตรรกะเดียวกันกับคำสั่งสำหรับไฟล์เดี่ยว การตั้งค่าของผู้ให้บริการและโมเดลสำหรับแต่ละงานจะได้รับการเคารพ +4. **การรายงานความคืบหน้า** -- จะมีการแจ้งเตือนแบบ toast อัปเดตหลังจากที่แต่ละไฟล์เสร็จสิ้น โดยแสดงความคืบหน้า `N / Total` +5. **การจัดการข้อผิดพลาด** -- หากไฟล์ใดล้มเหลว (ข้อผิดพลาด API การหมดเวลาการเชื่อมต่อเครือข่าย ฯลฯ) ข้อผิดพลาดนั้นจะถูกบันทึกไว้และการประมวลผลแบบกลุ่มจะดำเนินต่อไป สรุปสุดท้ายจะแสดงรายชื่อไฟล์ที่ล้มเหลวทั้งหมด +6. **การเสร็จสิ้น** -- จะมีการแจ้งเตือนแบบ toast สรุปจำนวนไฟล์ที่ประมวลผลเสร็จสิ้น จำนวนที่ประสบความสำเร็จ และจำนวนที่ล้มเหลว + +### พฤติกรรมการเขียนทับ + +เมื่อประมวลผลไฟล์ที่มีลิงก์ wiki, บันทึกแนวคิด หรือการแปลอยู่แล้ว พฤติกรรมของ Notemd จะขึ้นอยู่กับการตั้งค่าการเขียนทับ: + +| โหมด | พฤติกรรม | +|------|----------| +| **ข้าม** | เนื้อหาที่มีอยู่จะไม่ถูกแก้ไข จะมีการประมวลผลเฉพาะไฟล์ที่ยังไม่ได้รับการแก้ไขเท่านั้น. | +| **เพิ่มท้าย** (ค่าเริ่มต้น) | จะมีการเพิ่มเนื้อหาใหม่เข้าไป ส่วนลิงก์ wiki, แนวคิด หรือการแปลที่มีอยู่เดิมจะยังคงอยู่. | +| **แทนที่** | จะมีการประมวลผลไฟล์ใหม่ทั้งหมด การแก้ไขก่อนหน้านี้ทั้งหมดของ Notemd จะถูกเขียนทับ. | + +สำหรับการสร้างลิงก์ wiki โดยเฉพาะ: หากบันทึกใดมี `[[wiki-links]]` อยู่แล้ว โหมด **ข้าม** จะไม่แตะต้องบันทึกนั้น ในขณะที่โหมด **แทนที่** จะส่งบันทึกทั้งหมดไปยัง LLM เพื่อให้มีการสร้างลิงก์ใหม่ ควรใช้ **ข้าม** สำหรับการประมวลผลแบบทีละน้อย และใช้ **แทนที่** สำหรับการประมวลผลใหม่หลังจากอัปเกรดโมเดล. + +### การควบคุมความพร้อมกัน + +การตั้งค่า `batchConcurrency` จะจำกัดจำนวนการเรียกใช้ API แบบขนาน ซึ่งช่วยป้องกันข้อผิดพลาดด้านอัตราการใช้งาน (HTTP 429) เมื่อประมวลผลโฟลเดอร์ขนาดใหญ่กับผู้ให้บริการที่มีข้อจำกัดอัตราการใช้งานที่เข้มงวด. + +| ความพร้อมกัน | แนะนำสำหรับ | ผลกระทบต่ออัตราการใช้งานโดยทั่วไป | +|-------------|----------------|---------------------------| +| `1` | ระดับฟรี, ผู้ให้บริการที่เข้มงวด | ไม่มี (serial) | +| `3` (ค่าเริ่มต้น) | ผู้ให้บริการคลาวด์ส่วนใหญ่ | ต่ำ | +| `5` | Ollama (ท้องถิ่น), ระดับที่ใจกว้าง | ไม่มี / ต่ำ | +| `10` | โมเดลท้องถิ่นที่มีการประมวลผลเร็ว | ไม่มี | + +หากคุณพบข้อผิดพลาด 429 ระหว่างการประมวลผลแบบชุด ให้ลดจำนวนการทำงานพร้อมกันเหลือ 1 หรือ 2 + +## การตั้งค่า + +| การกำหนดค่า | ค่าเริ่มต้น | ผลกระทบ | +|---------|---------|--------| +| `batchConcurrency` | `3` | จำนวนการเรียกใช้ API แบบขนานสูงสุดระหว่างการดำเนินการกับโฟลเดอร์ | +| `batchOverwriteExisting` | `false` | เขียนทับเนื้อหา Notemd ที่มีอยู่แล้ว `false` = โหมดการเพิ่มเติม. | +| `batchSkipProcessed` | `false` | ข้ามไฟล์ที่มีตัวกำหนด Notemd อยู่แล้ว (เช่น ลิงก์ wiki) | +| `batchRecursive` | `true` | รวมไดเรกทอรีย่อยเมื่อสแกนโฟลเดอร์ | +| `enableStableApiCall` | `false` | เปิดใช้งานตรรกะการทดลองใหม่ (สูงสุด 4 ครั้ง) ต่อไฟล์ในรูปแบบแบตช์ | + +### Per-Task Models in Batch + +แต่ละการดำเนินการแบตช์จะใช้โมเดลที่สอดคล้องกับแต่ละงาน โดย batch-add-links ใช้ `addLinksProvider`, batch-research ใช้ `researchProvider` และอื่นๆ เช่นกัน ซึ่งหมายความว่าคุณสามารถกำหนดโมเดลราคาถูกสำหรับการดำเนินการจำนวนมาก และเก็บโมเดลราคาแพงไว้สำหรับงานที่ต้องการคุณภาพสูง. + +## Example + +คุณมีโฟลเดอร์ `papers/` ที่มีบันทึกการวิจัยที่นำเข้ามา 40 ไฟล์ คุณต้องการเพิ่มลิงก์ wiki และดึงคอนเซ็ปต์จากไฟล์เหล่านั้นทั้งหมด: + +1. คลิกขวาที่โฟลเดอร์ `papers/` +2. เลือก **"Notemd: Process folder (add links)"** +3. Notemd จะสแกนโฟลเดอร์ ค้นหาไฟล์ `.md` จำนวน 40 ไฟล์ และประมวลผลทีละ 3 ไฟล์ (ความสามารถในการทำงานพร้อมกันตามค่าเริ่มต้น) +4. จะมีแถบข้อความแสดงความคืบหน้าว่า: `12/40 files processed...` +5. หลังจากประมาณ 3 นาที จะมีแถบข้อความสรุปรายงานว่า: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. ให้ทำซ้ำด้วย **"Notemd: Process folder (extract concepts)"** เพื่อสร้างบันทึกแนวคิดสำหรับไฟล์ทั้ง 40 ไฟล์ + +ไฟล์ที่ล้มเหลวจะถูกบันทึกไว้ คุณสามารถรันอีกครั้งเฉพาะกับไฟล์นั้นได้ในภายหลัง. + +## เคล็ดลับ + +- **เริ่มต้นด้วยความสามารถในการทำงานพร้อมกันในระดับต่ำ** -- หากคุณไม่แน่ใจเกี่ยวกับขีดจำกัดอัตราการใช้งานของผู้ให้บริการ ให้เริ่มต้นด้วย `1` แล้วค่อยๆ เพิ่มขึ้น +- **ใช้โหมดข้ามเพื่อการอัปเดตแบบทีละน้อย** -- หลังจากดำเนินการครั้งแรกจนครบ ให้เปลี่ยนไปใช้ `batchSkipProcessed: true` เพื่อให้มีการประมวลผลเฉพาะบันทึกใหม่ๆ เท่านั้นในการรันครั้งต่อไป +- **เปิดใช้งานการเรียกใช้ API ที่มั่นคง** -- `enableStableApiCall: true` จะเพิ่มตรรกะการทดลองใหม่เพื่อฟื้นตัวจากข้อผิดพลาดเครือข่ายชั่วคราวระหว่างการประมวลผลจำนวนมาก +- **รันอีกครั้งหลังจากอัปเกรดโมเดล** -- หากคุณเปลี่ยนไปใช้โมเดลที่ดีขึ้น ให้ตั้งค่า `batchOverwriteExisting: true` แล้วรันอีกครั้งเพื่อให้ได้ลิงก์และแนวคิดที่ดีขึ้น + +--- + +## ขั้นตอนต่อไป + +- [Workflows](/docs/features/workflows) -- รวมงานหมู่เข้าด้วยกันเป็นปุ่มบนแถบด้านข้างที่คลิกได้หนึ่งครั้ง +- [Custom Prompts](/docs/advanced/custom-prompts) -- ปรับแต่งคำสั่งสำหรับการดึงข้อมูลแบบหมู่ +- [Troubleshooting](/docs/advanced/troubleshooting) -- แก้ไขข้อผิดพลาดด้านขีดจำกัดอัตราการใช้งานและปัญหาการเชื่อมต่อระหว่างการรันแบบหมู่ +- [LLM ผู้ให้บริการ](/docs/providers/overview) -- ข้อมูลอ้างอิงการกำหนดค่าโมเดลต่องาน diff --git a/website/i18n/th/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/th/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..b912c57b --- /dev/null +++ b/website/i18n/th/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "คำสั่งกำหนดเอง" +description: "ปรับแต่งคำสั่งกำหนดเอง LLM ให้เหมาะกับความต้องการของคุณ" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# คำสั่งกำหนดเอง + +<TLDR> +**Notemd ช่วยให้คุณสามารถเปลี่ยนคำสั่งกำหนดเอง LLM มาตรฐานสำหรับแต่ละประเภทของงานได้** คำสั่งกำหนดเองช่วยให้คุณควบคุมสิ่งที่โมเดลควรให้ความสำคัญ: คุณสามารถจำกัดการดึงข้อมูลแนวคิดให้อยู่ในสาขาเฉพาะ ปรับเปลี่ยนรูปแบบการเชื่อมโยง หรือเปลี่ยนโทนการแปลได้ ตัวแปรคำสั่งเช่น `{{content}}` และ `{{concept}}` จะถูกแทนที่ในขณะที่ระบบทำงาน ฟีเจอร์ด้านการเรียนรู้ที่มุ่งเป้าจะเติมหน้าด้วยสาขาการศึกษาของคุณเพื่อจำกัดผลลัพธ์การดึงข้อมูลโดยอัตโนมัติ + +นี่เป็นส่วนหนึ่งของ [Obsidian คู่มือการจัดการความรู้ด้วย AI](/docs/pillar-ai-knowledge) +</TLDR> + +## ภาพรวม + +คำสั่งกำหนดเองที่มีมาในตัวของ Notemd ถูกเขียนขึ้นสำหรับงานด้านความรู้ทั่วไป คำสั่งเหล่านี้ทำงานได้ดีในหลายสาขา แต่ก็ยังมีพื้นที่สำหรับการปรับปรุงให้เหมาะกับสาขาเฉพาะอีกด้วย คำสั่งกำหนดเองช่วยให้คุณบอก LLM ได้อย่างชัดเจนว่าควรทำงานอย่างไรสำหรับกรณีการใช้งานของคุณ -- ไม่ว่าจะเป็นการดึงเฉพาะศัพท์ทางการแพทย์ การเชื่อมโยงเฉพาะองค์ประกอบที่มีชื่อ หรือการแปลในรูปแบบที่เป็นทางการ + +คำสั่งกำหนดเองไม่ได้แทนที่คำสั่งระบบทั้งหมด คำสั่งเหล่านี้จะเปลี่ยนแปลงหรือเสริม **ส่วนคำสั่งเฉพาะงาน** โดยยังคงรักษารูปแบบผลลัพธ์โครงสร้าง (เช่น บรรทัด `CONCEPT:` รูปแบบลิงก์ wiki) ที่ Notemd ใช้ในการแปลงข้อมูลไว้ + +## หลักการทำงาน + +### สถาปัตยกรรมคำสั่ง + +ทุกงาน Notemd จะใช้โครงสร้างคำสั่งเดียวกัน ได้แก่ + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **คำสั่งระบบพื้นฐาน** -- กำหนดบุคลิกของผู้ช่วย ไม่สามารถเปลี่ยนแปลงได้ +2. **ด้านการเรียนรู้ที่มุ่งเป้า** -- เติมหน้าด้วย `Relevant Fields: [medicine / law / computer science / ...]` เพื่อจำกัดขอบเขต นี่เป็นตัวเลือกการตั้งค่า ไม่ใช่คำสั่งดิบ +3. **คำสั่งงานกำหนดเอง** -- แทนที่คำสั่งงานมาตรฐาน (เช่น จะดึงข้อมูลแนวคิดประเภทใด จะเชื่อมโยงอย่างเข้มข้นเพียงใด) +4. **รูปแบบผลลัพธ์** -- กฎเกณฑ์โครงสร้าง (บรรทัด `CONCEPT:` รูปแบบลิงก์ wiki) จะถูกเติมเสมอโดย Notemd เพื่อให้สามารถแปลงข้อมูลได้ +5. **เนื้อหา** -- ข้อความบันทึกจริง ซึ่งจะถูกแทนที่ในขณะที่ระบบทำงานผ่าน `{{content}}` + +### ตัวแปรคำสั่ง + +ตัวแปรจะถูกแทนที่ในขณะที่ระบบทำงาน ตัวแปรที่มีอยู่จะแตกต่างกันไปตามแต่ละงาน: + +| Variable | งาน | ถูกแทนที่ด้วย | +|----------|-------|---------------| +| `{{content}}` | ทั้งหมด | ข้อความบันทึกหรือข้อความที่เลือก | +| `{{concept}}` | แบบฟอร์มบันทึกแนวคิด | ชื่อแนวคิดที่ถูกดึงออกมา | +| `{{description}}` | แบบฟอร์มบันทึกแนวคิด | คำอธิบายแนวคิดที่สร้างขึ้นโดย LLM | +| `{{backlinks}}` | แบบฟอร์มบันทึกแนวคิด | รายการบันทึกต้นทางพร้อมลิงก์ | +| `{{date}}` | แบบฟอร์มบันทึกแนวคิด | วันที่ปัจจุบัน (YYYY-MM-DD) | +| `{{language}}` | การแปล | ภาษาผลลัพธ์ที่ต้องการ | +| `{{source}}` | แบบฟอร์มบันทึกแนวคิด | ชื่อไฟล์บันทึกต้นทาง | + +### ด้านการเรียนรู้ที่มุ่งเน้น + +ฟีเจอร์การเรียนรู้ที่มุ่งเน้นคือวิธีย่อสำหรับการกำหนดขอบเขตด้าน แทนที่จะเขียนพรอมป์แบบกำหนดเองที่ระบุสาขาของคุณ คุณสามารถตั้งค่า `focusedLearningDomain` ในการตั้งค่าได้: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +วิธีนี้จะเติม `Relevant Fields: [medicine]` ไว้ท้ายพรอมป์การดึงข้อมูล ทำให้ LLM ให้ความสำคัญกับแนวคิดที่เกี่ยวข้องกับด้านนั้นมากขึ้นและลดการแสดงผลแนวคิดทั่วไป วิธีนี้มีน้ำหนักเบากว่าพรอมป์แบบกำหนดเองที่สมบูรณ์และสามารถใช้งานได้กับงานดึงข้อมูลทุกประเภท + +## การตั้งค่า + +| การกำหนดค่า | ค่าเริ่มต้น | ผลกระทบ | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | เปลี่ยนพรอมป์งาน add-links ตามค่าเริ่มต้น | +| `customExtractConceptsPrompt` | `''` | เปลี่ยนพรอมป์การดึงแนวคิดตามค่าเริ่มต้น | +| `customResearchPrompt` | `''` | เปลี่ยนพรอมป์การค้นคว้าและสรุปข้อมูลตามค่าเริ่มต้น | +| `customTranslatePrompt` | `''` | เปลี่ยนพรอมป์การแปลตามค่าเริ่มต้น | +| `customDiagramPrompt` | `''` | เปลี่ยนพรอมป์การสร้างแผนภาพตามค่าเริ่มต้น | +| `focusedLearningDomain` | `''` | เติมบริบทของสาขาวิชาไว้ท้ายพรอมป์การดึงข้อมูลและการเชื่อมโยง | +| `extractConceptsMinimalTemplate` | `true` | ใช้แม่แบบบันทึกแนวคิดที่มีเพียงชื่อเรื่อง (ส่งผลต่อขอบเขตของแม่แบบ `{{concept}}`) | +| `customConceptNoteTemplate` | `''` | เปลี่ยนแม่แบบไฟล์บันทึกแนวคิดให้รองรับตัวแปรได้อย่างเต็มที่ | + +**เมื่อช่องพรอมป์แบบกำหนดเองว่าง จะใช้พรอมป์ค่าเริ่มต้นที่มีอยู่ในตัวโปรแกรม** + +## Example + +คุณเป็นนักวิจัยทางการแพทย์ที่กำลังดึงแนวคิดจากบันทึกการทดลองทางคลินิก พรอมป์ค่าเริ่มต้นจะดึงคำนามทั่วไปมาพร้อมกับคำศัพท์ทางการแพทย์ ซึ่งทำให้โฟลเดอร์แนวคิดของคุณรก + +**วิธีแก้ไข:** ตั้งค่าด้านการเรียนรู้ที่มุ่งเน้นและพรอมป์การดึงข้อมูลแบบกำหนดเอง + +1. ตั้งค่า `focusedLearningDomain` เป็น `medicine` +2. ตั้งค่า `customExtractConceptsPrompt` เป็น: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +เมื่อคุณรันคำสั่ง "Extract concepts" บนบันทึกทางการแพทย์ ตัว LLM จะสร้างผลลัพธ์ดังนี้: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +แทนที่จะใช้พฤติกรรมเริ่มต้นซึ่งอาจดึงคำทั่วไปที่ไม่ต้องการ เช่น "hospital" หรือ "month" ออกมาด้วย. + +## เคล็ดลับ + +- **เริ่มต้นด้วยขอบเขตการเรียนรู้ที่เฉพาะเจาะจง** ก่อนที่จะเขียน prompt แบบกำหนดเองทั้งหมด วิธีนี้สามารถครอบคลุมกรณีการใช้งานได้ 80% ด้วยการตั้งค่าเพียงอย่างเดียว. +- **รักษารูปแบบผลลัพธ์ไว้** -- อย่าลบคำสั่งเกี่ยวกับรูปแบบ เช่น "one per line" หรือ "CONCEPT: prefix" ออกจาก prompt แบบกำหนดเองเด็ดขาด เพราะตัว parser ของ Notemd ต้องพึ่งพาคำสั่งเหล่านี้. +- **ทดสอบกับบันทึกเพียงฉบับเดียวก่อน** -- Prompt แบบกำหนดเองอาจส่งผลต่อความกว้างของการดึงข้อมูลในแบบที่ไม่คาดคิด ควรตรวจสอบกับบันทึกหนึ่งฉบับก่อนทำการประมวลผลแบบจำนวนมาก. +- **ทำให้ prompt มีความกระชับ** -- Prompt แบบกำหนดเองที่ยาวเกินไปจะใช้ token มากเกินไปและอาจทำให้โมเดลสูญเสียความเฉพาะเจาะจง. + +--- + +## ขั้นตอนต่อไป + +- [Wiki-Links](/docs/features/wiki-links) -- สิ่งที่จะถูกเชื่อมโยงเมื่อคุณปรับแต่ง prompt add-links +- [Concept Notes](/docs/features/concept-notes) -- แบบฟอร์มบันทึกแนวคิดและตัวแปร `{{concept}}` +- [Batch Processing](/docs/advanced/batch-processing) -- การนำ prompt แบบกำหนดเองไปใช้กับโฟลเดอร์ทั้งหมด +- [Troubleshooting](/docs/advanced/troubleshooting) -- วิธีแก้ไขปัญหาที่ prompt แบบกำหนดเองสร้างผลลัพธ์ที่ไม่คาดคิด diff --git a/website/i18n/th/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/th/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..9ce5b09d --- /dev/null +++ b/website/i18n/th/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "การแก้ไขปัญหา" +description: "ปัญหาที่พบบ่อยและวิธีแก้ไข" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# การแก้ไขปัญหา + +<TLDR> +**ปัญหา Notemd ส่วนใหญ่แบ่งออกเป็น 4 ประเภท ได้แก่ ปัญหาหลัก API ปัญหาการเชื่อมต่อเครือข่าย ข้อผิดพลาดการยืนยันตัวตน (401/403) และข้อจำกัดด้านอัตราการใช้งาน (429)** ตัวทดสอบการเชื่อมต่อและแผงวินิจฉัยที่มีมาในตัวจะช่วยระบุสาเหตุหลักได้อย่างรวดเร็ว หน้านี้จะอธิบายข้อความแสดงข้อผิดพลาดที่พบบ่อยทุกประเภท สาเหตุ และวิธีแก้ไข สำหรับปัญหาที่ไม่ได้ระบุไว้ที่นี่ ให้รายงานไปที่ GitHub Issues พร้อมกับผลลัพธ์จากการวินิจฉัย + +นี่เป็นส่วนหนึ่งของ [Obsidian คู่มือการจัดการความรู้ด้วย AI](/docs/pillar-ai-knowledge) +</TLDR> + +## ภาพรวม + +Notemd ต้องอาศัยบริการภายนอก -- ผู้ให้บริการ LLM และเครื่องมือค้นหา API -- ดังนั้นปัญหาส่วนใหญ่จึงเกิดขึ้นนอกเหนือจากตัวปลั๊กอินเอง แผงวินิจฉัยในส่วนการตั้งค่าจะแสดงข้อมูลการเรียกใช้งานครั้งล่าสุด API ในรูปแบบที่เป็นระเบียบ ซึ่งรวมถึงคำขอ URL สถานะการตอบกลับ และเนื้อหาข้อผิดพลาด ควรตรวจสอบส่วนนี้ก่อนเสมอก่อนที่จะทำการสืบสวนเพิ่มเติม + +## วิธีการทำงาน: การวินิจฉัย + +### การทดสอบการเชื่อมต่อ + +แต่ละส่วนของการตั้งค่าผู้ให้บริการจะมีปุ่ม **“Test Connection”** การคลิกปุ่มนี้จะส่งคำขอ API ที่มีขนาดเล็กที่สุด (โดยปกติจะเป็นรายชื่อโมเดลหรือการแสดงผลสั้นๆ) และจะรายงานว่าสำเร็จหรือมีข้อผิดพลาด HTTP ที่เฉพาะเจาะจง นี่คือวิธีที่เร็วที่สุดในการตรวจสอบว่าคีย์ API และฐานข้อมูล URL ของคุณถูกต้องหรือไม่ + +### แผงวินิจฉัย + +**Settings --> Notemd --> Diagnostics** จะแสดงดังนี้: + +| Field | Content | +|-------|---------| +| Last provider | ผู้ให้บริการที่ถูกเรียกใช้งานล่าสุด | +| Last model | โมเดลที่ถูกเรียกใช้งานล่าสุด | +| สถานะล่าสุด | รหัสสถานะ HTTP หรือข้อผิดพลาดการส่งข้อมูล | +| ข้อผิดพลาดล่าสุด | ข้อความข้อผิดพลาดดิบจาก API | +| คำขอล่าสุด URL | ข้อมูล URL ทั้งหมดของคำขอล่าสุด (ปิดบังคีย์ API) | +| เนื้อหาตอบกลับล่าสุด | เนื้อหาตอบกลับที่ถูกตัดทอน (500 ตัวอักษรแรก) | + +คัดลอกผลลัพธ์การวินิจฉัยทั้งหมดเมื่อรายงานปัญหาบน GitHub. + +## ข้อผิดพลาดที่พบบ่อย + +### คีย์ API ไม่ถูกต้องหรือขาดหายไป + +**อาการ:** HTTP 401 หรือ "คีย์ API ที่ให้มาไม่ถูกต้อง" + +**สาเหตุ:** คีย์ API ขาดหายไป มีช่องว่าง หรือเป็นของผู้ให้บริการอื่น + +**วิธีแก้ไข:** +1. ตรวจสอบให้แน่ใจว่าคีย์ไม่มีช่องว่างด้านหน้าหรือด้านหลัง +2. ยืนยันว่าคีย์ตรงกับผู้ให้บริการที่เลือก (คีย์ OpenAI จะใช้งานไม่ได้กับ Anthropic) +3. ตรวจสอบให้แน่ใจว่าบัญชีของคุณมีคะแนนเครดิตหรือมีการสมัครใช้งานที่ยังมีผลบังคับใช้อยู่ +4. คลิก **"Test Connection"** เพื่อทำการยืนยัน + +### ข้อผิดพลาดด้านเครือข่าย / การเชื่อมต่อ + +**อาการ:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**สาเหตุ:** จุดปลายทาง API ไม่สามารถเข้าถึงได้จากเครื่องของคุณ. + +**วิธีแก้ไข:** +1. ตรวจสอบการเชื่อมต่ออินเทอร์เน็ตของคุณ +2. หากอยู่หลังโปรกซีหรือไฟร์วอลล์ ให้ตรวจสอบว่าโดเมน API ไม่ถูกบล็อก +3. สำหรับ Ollama: ตรวจสอบให้แน่ใจว่า `ollama serve` กำลังทำงานอยู่ (`ollama list` ควรจะส่งคืนโมเดล) +4. สำหรับ LMStudio: ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์กำลังทำงานบน `localhost:1234` +5. ลองใช้วิธีการส่งข้อมูลอื่น -- ผู้ใช้มือถือควรตรวจสอบให้แน่ใจว่าวิธีการส่งข้อมูล `requestUrl` กำลังทำงานอยู่ +6. เปิดใช้งาน `enableStableApiCall` เพื่อทำการพยายามใหม่โดยอัตโนมัติเมื่อเกิดข้อผิดพลาดชั่วคราว + +### 403 Forbidden + +**อาการ:** HTTP 403 + +**สาเหตุ:** คีย์ API ของคุณมีผลบังคับใช้แต่ไม่มีสิทธิ์ในการเข้าถึงทรัพยากรที่ร้องขอ. + +**วิธีแก้ไข:** +1. บางโมเดลต้องการสิทธิ์พิเศษ (เช่น GPT-4 ผ่าน Azure จำเป็นต้องมีชื่อการติดตั้ง) +2. บางผู้ให้บริการจำกัดโมเดลตามระดับแผน -- กรุณาตรวจสอบบัญชีของคุณ +3. อาจมีข้อจำกัดตามภูมิภาค (ผู้ให้บริการในจีนบางรายปิดกั้น IP ระหว่างประเทศและในทางกลับกัน) +4. ตรวจสอบให้แน่ใจว่าชื่อโมเดลสะกดถูกต้อง (เช่น `gpt-4o` ไม่ใช่ `gpt-4o-mini` เมื่อโมเดลขนาดเล็กคือทั้งหมดที่แผนของคุณอนุญาต) + +### Rate Limit (429) + +**อาการ:** HTTP 429 หรือ "Rate limit exceeded" + +**สาเหตุ:** มีการร้องขอจำนวนมากในช่วงเวลาสั้นๆ. + +**วิธีแก้ไข:** +1. ลด `batchConcurrency` เป็น `1` หรือ `2` +2. รอสักครู่ก่อนพยายามอีกครั้ง +3. ตรวจสอบเอกสารข้อจำกัดด้านอัตราการร้องขอของผู้ให้บริการสำหรับระดับแผนของคุณ +4. เปิดใช้งาน `enableStableApiCall` เพื่อการพยายามอีกครั้งโดยอัตโนมัติพร้อมการหยุดพัก +5. พิจารณาเปลี่ยนไปใช้ผู้ให้บริการที่มีขีดจำกัดสูงกว่า (DeepSeek, Ollama) + +### Model Not Found + +**อาการ:** "Model not found" หรือ HTTP 404 + +**สาเหตุ:** ชื่อโมเดลไม่มีอยู่ในผู้ให้บริการที่เลือก + +**วิธีแก้ไข:** +1. คลิก **"Get Model List"** เพื่อดูรายชื่อโมเดลทั้งหมดที่มีให้สำหรับผู้ให้บริการของคุณ +2. ชื่อโมเดลบางตัวอาจเปลี่ยนแปลงไปตามกาลเวลา -- กรุณาตรวจสอบชื่อปัจจุบันในเอกสารประกอบของผู้ให้บริการ +3. สำหรับ Ollama: ให้รัน `ollama list` เพื่อดูโมเดลที่ถูกดึงมา; จะมีเฉพาะโมเดลที่ถูกดาวน์โหลดเท่านั้นที่ใช้งานได้ + +### ไม่มีลิงก์ / ไม่มีแนวคิดใดๆ ถูกสร้างขึ้น + +**อาการ:** คำสั่งทำงานแต่ไม่มีผลลัพธ์ใดๆ ปรากฏ + +**สาเหตุ:** LLM ส่งคืนคำตอบที่ว่างเปล่าหรืออ่านไม่ได้. + +**วิธีแก้ไข:** +1. ตรวจสอบแผงการวินิจฉัยเพื่อดูคำตอบ LLM ที่แท้จริง +2. ลองใช้โมเดลที่มีความสามารถมากกว่า (โมเดลขนาดเล็กบางตัวมีปัญหาในการสร้างผลลัพธ์แบบมีโครงสร้าง) +3. ตรวจสอบให้แน่ใจว่าบันทึกมีเนื้อหาเพียงพอ (>50 คำ) +4. ตรวจสอบคำสั่งพิเศษของคุณเพื่อหาคำสั่งที่ขัดแย้งกัน +5. ปิดการยับยั้งคำพ้องความหมายชั่วคราวเพื่อดูว่ามีการกรองที่รุนแรงเกินไปหรือไม่ + +### Doubao Endpoint ID หายไป + +**อาการ:** เกิดข้อผิดพลาดเมื่อใช้ผู้ให้บริการ ByteDance Doubao + +**สาเหตุ:** Doubao ต้องการ ID จุดปลายทาง Ark (รูปแบบ: `ep-xxxxxxxx-xxxx-xxxx`) แทนชื่อโมเดล. + +**แก้ไข:** แทนที่โมเดลตัวอย่างเริ่มต้นด้วย ID จุดปลายทางจริงของคุณจากคอนโซล Volcengine. + +## การตั้งค่า + +| การตั้งค่าการวินิจฉัย | ตำแหน่ง | วัตถุประสงค์ | +|--------------------|----------|---------| +| **ทดสอบการเชื่อมต่อ** | ส่วน Settings --> Provider | ตรวจสอบคีย์ API และความสามารถในการเชื่อมต่อ | +| **ดูรายการโมเดล** | ส่วน Settings --> Provider | ยืนยันว่ามีโมเดลใดบ้างที่สามารถเข้าถึงได้ | +| `enableStableApiCall` | Settings --> Advanced | เปิดใช้งานการพยายามใหม่พร้อมการหยุดพัก | +| `batchConcurrency` | Settings --> Batch | ควบคุมความขนานเพื่อหลีกเลี่ยงข้อจำกัดด้านอัตราการใช้งาน | + +## วิธีรายงานปัญหา + +หากปัญหาของคุณไม่ได้รับการกล่าวถึงข้างต้น: + +1. เปิด **Settings --> Notemd --> Diagnostics** +2. คัดลอกผลลัพธ์การวินิจฉัยทั้งหมด +3. สร้าง Issue บน GitHub ที่ [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +4. ระบุข้อมูลดังนี้: Obsidian version, Notemd version, provider, model, diagnostics output และขั้นตอนในการทำซ้ำ +5. ลบคีย์ API ของคุณออกจากไฟล์บันทึกที่แชร์กัน + +--- + +## ขั้นตอนต่อไป + +- [LLM Providers](/docs/providers/overview) -- คู่มือการตั้งค่า provider แบบครบถ้วน +- [Batch Processing](/docs/advanced/batch-processing) -- การตั้งค่าความสามารถในการทำงานพร้อมกันและการทดลองใหม่สำหรับงานขนาดใหญ่ +- [Custom Prompts](/docs/advanced/custom-prompts) -- แก้ไขพฤติกรรมที่ไม่คาดคิดของ LLM โดยการปรับแต่ง prompt diff --git a/website/i18n/th/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/th/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..d869d749 --- /dev/null +++ b/website/i18n/th/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "คำถามที่พบบ่อย" +description: "คำถามทั่วไปเกี่ยวกับการติดตั้ง คุณสมบัติ และวิธีใช้งาน Notemd" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# คำถามที่พบบ่อย + +<TLDR> +**คำตอบสั้นๆ สำหรับคำถาม Notemd ที่พบบ่อยที่สุด** ครอบคลุมการติดตั้ง (ตั้งค่าใช้เวลา 5 นาที), การรองรับผู้ให้บริการ LLM มากกว่า 30 ราย, ตัวเลือกรูปแบบทำงานแบบโลคัล/คลาวด์, กระบวนการทำงานแบบคลิกเดียว, ภาษา UI หลายภาษา (21 ภาษา), การอัตโนมัติการเชื่อมโยงวิกิ, การผสานรวมกับงานวิจัย, กระบวนการอ่าน PDF, การสร้างแผนภาพ และใบอนุญาตโอเพนซอร์ส คุณสมบัติทั้งหมดสามารถทำงานแบบออฟไลน์ได้โดยใช้ Ollama. +</TLDR> + +--- + +## การติดตั้งและการตั้งค่า + +### ฉันจะติดตั้ง Notemd ใน Obsidian ได้อย่างไร? + +เปิด Obsidian → **Settings → Community Plugins → Browse** → ค้นหา **"Notemd"** → **Install** → **Enable**. + +**ข้อกำหนด:** +- Obsidian 0.15.0+ +- รองรับบนเดสก์ท็อป (Windows, macOS, Linux) และมือถือ (iOS, Android) + +**การติดตั้งด้วยตนเอง:** +1. ดาวน์โหลด `main.js`, `styles.css`, `manifest.json` จาก [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) +2. วางไฟล์เหล่านั้นไว้ใน `<your-vault>/.obsidian/plugins/notemd/` +3. รีโหลด Obsidian และเปิดใช้งานปลั๊กอิน + +**สถิติ:** มีการดาวน์โหลดมากกว่า 4k ครั้ง มีการปล่อยเวอร์ชัน 44 ครั้ง ใช้ใบอนุญาต MIT. + +--- + +## การตั้งค่า LLM + +### Notemd รองรับผู้ให้บริการ LLM อะไรบ้าง? + +Notemd รองรับ **ผู้ให้บริการมากกว่า 30 ราย**: + +**ผู้ให้บริการคลาวด์:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonnet, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**ที่เน้นตลาดจีน:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**แบบท้องถิ่น/ติดตั้งเอง:** +- Ollama +- LM Studio +- Endpoint ใดก็ได้ที่สอดคล้องกับ OpenAI + +**เกตเวย์:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models, Fireworks, LiteLLM, Nebius, Cerebras +- Hugging Face, Vercel AI Gateway, Requesty + +### Notemd สามารถทำงานร่วมกับ LLM ในเครื่องได้หรือไม่? + +**ใช่ รองรับอย่างเต็มที่** Notemd สามารถใช้งานได้กับ: +- **Ollama** (การผสานรวมแบบดั้งเดิม) +- **LM Studio** (ผ่านจุดสิ้นสุดที่รองรับ OpenAI) +- **vLLM, LocalAI, text-generation-webui** (ผ่านโหมดที่รองรับ OpenAI) + +งานทั้งหมดสามารถทำงานร่วมกับโมเดลในเครื่องได้ ได้แก่ การเชื่อมโยง การสร้างแนวคิด การแปล การค้นคว้า และการสร้างแผนภาพ + +**ตัวอย่างการผสมผสาน:** +- Ollama (local) สำหรับการเชื่อมโยง → รวดเร็ว ปลอดภัย ไม่มีค่าใช้จ่าย +- OpenAI สำหรับการวิจัย → คุณภาพสูง มีการผสานรวมกับการค้นหาในเว็บ +- Gemini สำหรับการแปล → รองรับหลายรูปแบบ + +### ฉันจะกำหนดค่าโมเดลที่แตกต่างกันสำหรับงานที่แตกต่างกันได้อย่างไร? + +ใน **Notemd Settings** แต่ละงานจะมีตัวเลือกผู้ให้บริการ/โมเดลที่แยกจากกัน: + +| งาน | การกำหนดค่าตัวอย่าง | +|------|----------------------| +| **การเชื่อมโยง** | DeepSeek (เร็ว ราคาถูก) | +| **การสร้างแนวคิด** | Claude Opus (คุณภาพสูง) | +| **การวิจัย** | Perplexity หรือ GPT-4o (มีข้อมูลจากเว็บ) | +| **การแปล** | Gemini Flash (หลายรูปแบบ) | +| **การสร้างแผนภาพ** | Ollama (ใช้งานในเครื่อง ส่วนตัว) | + +การปรับแต่งตามงานแต่ละอย่างนี้ช่วยให้สมดุลระหว่างความเร็ว ต้นทุน และคุณภาพ. + +--- + +## คุณสมบัติหลัก + +### Notemd แตกต่างจาก ChatGPT ในด้านการอ่านเอกสารอย่างไร? + +| มิติ | ChatGPT | Notemd | +|-----------|---------|--------| +| **ตำแหน่งการส่งผลลัพธ์** | ประวัติการสนทนา (ชั่วคราว) | Obsidian vault (ไฟล์ที่คงอยู่) | +| **รูปแบบผลลัพธ์** | คำตอบแบบข้อความ | ลิงก์วิกิ บันทึกแนวคิด แผนภาพ การแปล | +| **คุณค่าระยะยาว** | หายไปหลังจากสิ้นสุดセッション | สะสมเข้าเป็นฐานความรู้ | +| **ความสามารถในการใช้ซ้ำ** | ต้องสอบถามใหม่ | ไฟล์ยังคงอยู่ ลิงก์ยังคงอยู่ พัฒนาต่อไป | + +**ใช้ ChatGPT เพื่อ:** คำถาม-คำตอบแบบรวดเร็ว คำอธิบายแบบครั้งเดียว +**ใช้ Notemd เพื่อ:** สร้างฐานความรู้ที่มีโครงสร้างและคงอยู่เป็นเวลาหลายสัปดาห์/หลายเดือน + +### Notemd เพิ่มลิงก์วิกิเข้าไปในบันทึกได้อย่างไร? + +**กระบวนการ:** +1. คุณรันคำสั่ง "Process file (add links)" กับบันทึกหนึ่ง +2. Notemd จะส่งข้อความไปยัง LLM ที่คุณตั้งค่าไว้ +3. LLM จะระบุแนวคิดสำคัญในบริบท +4. Notemd จะแทรก `[[wiki-links]]` เข้าไปที่จุดที่มีการปรากฏของแนวคิดแต่ละครั้ง +5. สามารถสร้างบันทึกแนวคิดโดยอัตโนมัติในโฟลเดอร์ที่คุณกำหนดได้ตามต้องการ + +**คุณสมบัติ:** +- การลดคำพ้องความหมาย (ป้องกันการมีข้อมูลซ้ำระหว่าง "transformer" กับ "transformers") +- ลิงก์ย้อนกลับจากบันทึกแนวคิดไปยังแหล่งที่มา +- การรักษาความสมบูรณ์ของลิงก์เมื่อมีการเปลี่ยนชื่อ/ลบ +- โหมดการดึงข้อมูลแบบบริสุทธิ์ (ดึงแนวคิดโดยไม่แก้ไขข้อมูลต้นฉบับ) + +### วิธีการทำงานแบบคลิกเดียวของ Notemd คืออะไร? + +**วิธีการทำงานแบบคลิกเดียว** จะเชื่อมโยงการดำเนินการหลายอย่างเข้าด้วยกันใน **ปุ่มแถบข้างเดียว**. + +**วิธีการทำงานเริ่มต้น:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**ผลลัพธ์:** เมื่อคลิกเดียวจะทำการดังนี้: +1. เพิ่มลิงก์ wiki ลงในบันทึกปัจจุบัน +2. สร้างบันทึกแนวคิดสำหรับคำศัพท์ใหม่ +3. ทำการค้นคว้าและเพิ่มข้อมูลพื้นหลัง +4. บีบอัดข้อมูลเป็นแผนภาพ Mermaid + +**กระบวนการทำงานแบบกำหนดเอง:** คุณสามารถกำหนดกระบวนการของตัวเองในส่วน Settings โดยใช้รูปแบบ DSL โดยแต่ละกระบวนการจะกลายเป็นปุ่มที่สามารถใช้ซ้ำได้ในแถบด้านข้าง. + +### Notemd มีความแตกต่างจาก Copilot หรือ Smart Connections อย่างไร? + +ปลั๊กอินเหล่านี้ช่วยแก้ปัญหาที่แตกต่างกัน: + +- **Copilot** — เน้นการสนทนาเป็นหลัก คุณสามารถพูดคุยกับ AI เกี่ยวกับบันทึกของคุณได้ คำตอบจาก AI จะอยู่ในแผงสนทนาเท่านั้น โดยไม่มีการปรับเปลี่ยนเนื้อหาใน vault ของคุณ. +- **Smart Connections** — เน้นการค้นหาเป็นหลัก มันจะค้นหาบันทึกที่มีความหมายใกล้เคียงกันโดยใช้ embeddings โดยไม่มีการสร้างหรือปรับเปลี่ยนเนื้อหา. +- **Notemd** — เน้นการเขียนเป็นหลัก AI จะประมวลผลบันทึกของคุณและสร้างผลลัพธ์ที่มีโครงสร้าง (ลิงก์ wiki, บันทึกแนวคิด, งานวิจัย, แผนภาพ, การแปล) โดยตรงเข้าไปใน vault ของคุณในรูปแบบไฟล์ที่คงอยู่. + +| สิ่งที่คุณต้องมี | ปลั๊กอินที่แนะนำ | +|----------------|-------------------| +| พูดคุยกับ AI เกี่ยวกับบันทึก | Copilot | +| ค้นหาบันทึกที่คล้ายกันหรือเกี่ยวข้อง | Smart Connections | +| แทรกลิงก์ wiki อัตโนมัติและสร้างกราฟความรู้ | **Notemd** | +| สร้างบันทึกแนวคิดพร้อมลิงก์ย้อนกลับ | **Notemd** | +| สร้างแผนภาพจากเนื้อหาบันทึก | **Notemd** | +| ทำการวิจัยหัวข้อและเพิ่มสรุปลงไป | **Notemd** | + +สามอย่างนี้สามารถใช้ร่วมกันได้ — พวกมันเสริมกันมากกว่าที่จะแข่งขันกัน. + +--- + +## Research & Translation + +### บริการค้นหาใดบ้างที่ทำงานร่วมกับการวิจัย Notemd? + +| Service | ต้องมี API Key | Quality | Notes | +|---------|-----------------|---------|-------| +| **Tavily** | ใช่ | สูง | แนะนำ คือบริการค้นหาที่ปรับให้เหมาะกับ AI | +| **DuckDuckGo** | ไม่ | อยู่ในระหว่างทดลอง | ไม่ต้องตั้งค่า, คุณภาพต่ำกว่า | + +**วิธีการทำงานของ "Research & summarize":** +1. คุณเลือกหัวข้อหรือใช้งานกับบันทึกปัจจุบัน +2. Notemd ส่งคำขอไปยังบริการค้นหา +3. ผลลัพธ์ → การสรุปด้วย LLM +4. สรุปจะถูกเพิ่มเข้าไปในบันทึกของคุณพร้อมกับการอ้างอิงแหล่งที่มา + +**ผลลัพธ์:** มีร่องรอยการวิจัยที่คงอยู่ในตู้เก็บของคุณ ไม่ใช่ในแท็บเบราว์เซอร์ + +### Notemd รองรับภาษาจีนหรือภาษาอื่นๆ หรือไม่? + +**ภาษาที่ UI รองรับ:** มากกว่า 21 ภาษา +- ภาษาอังกฤษ, 中文 (简体), 中文 (繁體), 日本語, 한국어 +- Arabic, German, French, Spanish, Russian, Portuguese, Italian +- Hindi, Bengali, Thai, Vietnamese, Turkish, Polish, Czech และอื่นๆ อีกมากมาย + +**ภาษาที่ใช้แสดงผลงาน:** สามารถตั้งค่าแยกกันได้ +- UI เป็นภาษาจีน + แสดงผลเป็นภาษาอังกฤษ: ✅ +- UI เป็นภาษาอังกฤษ + แสดงผลเป็นภาษาจีน: ✅ + +**กรณีการใช้งาน:** นักวิจัยที่ใช้สองภาษาสามารถใช้ UI ในภาษาแม่ของตนได้ พร้อมทั้งสร้างบันทึกภาษาอังกฤษสำหรับการเผยแพร่ + +--- + +## PDF และกระบวนการทำงานทางวิชาการ + +### ฉันสามารถใช้ Notemd สำหรับการอ่านเอกสาร/PDF ได้หรือไม่? + +**ได้ครับ.** ขั้นตอนดำเนินการคือ: +1. **แปลง PDF เป็น Markdown** โดยใช้ [MinerU](https://github.com/opendatalab/MinerU) (แนะนำสำหรับบทความทางวิชาการ) +2. เปิดไฟล์ Markdown ใน Obsidian +3. ดำเนินการตามกิจกรรมของ Notemd ดังนี้: + - **เพิ่มลิงก์ wiki** สำหรับคำศัพท์สำคัญ + - **สร้างบันทึกแนวคิด** สำหรับคำศัพท์ที่ไม่คุ้นเคย + - **ดึงข้อความต้นฉบับ** โดยใช้คำถามที่กำหนดเอง (เช่น "ข้อจำกัดคืออะไร?") + - **ค้นคว้าพื้นหลัง** สำหรับวิธีการ/ชุดข้อมูลที่อ้างอิง + - **แปล** ส่วนที่ยาก + - **บีบอัดเป็นแผนภาพ Mermaid** เพื่อให้เข้าใจโครงสร้างได้ดีขึ้น + +**เวอร์ชัน 1.9.1+:** การดึงโครงสร้างบทกับการสนับสนุน TOC + +**ผลลัพธ์:** การอ่านเอกสารของคุณจะกลายเป็นสิ่งของความรู้ที่มีโครงสร้างและสามารถเชื่อมโยงได้ในคลังข้อมูลของคุณ + +--- + +## แผนภาพและการแสดงผล + +### Notemd สามารถสร้างกราฟ/แผนภาพประเภทใดได้บ้าง? + +| ประเภท | การสนับสนุน | คุณสมบัติ | +|------|---------|----------| +| **Mermaid** | เต็มรูปแบบ | แผนภาพไหล ลำดับ เคลส สถานะ ER Gantt การแก้ไขไวยากรณ์อัตโนมัติ การตรวจสอบแบบชุด | +| **JSON Canvas** | เต็มรูปแบบ | รูปแบบคันวาสซึ่งเป็นของ Obsidian โดยตรง | +| **Vega-Lite** | เต็มรูปแบบ | แผนภูมิข้อมูล ซีรีส์เวลา แท่ง กระจาย สามารถปรับแต่งได้ | +| **HTML** | ทางเลือกสำรอง | สำหรับประเภทแผนภาพที่ไม่ได้รับการสนับสนุน | +| **Editable HTML/SVG** | เป้าหมายที่ชัดเจน | ไฟล์แบบอินไลน์ที่สมบูรณ์ในตัว SVG พร้อมคำอธิบายแบบ Draw.io-style | +| **Draw.io / Drawnix artifacts** | ขอบเขตการส่งออก | ค่า XML/JSON ที่แน่นอนจาก `SemanticFigureModel`; ไม่ต้องพึ่งพาเวลาทำงานของโปรแกรมแก้ไข | + +**Mermaid auto-fix:** โหมดดีบักลึกสำหรับการซ่อมแซม: +- ลูกศรที่เสียหาย (`-->`, `-.->`, `==>`) +- ป้ายกำกับและความคิดเห็นที่ไม่ถูกต้อง +- ข้อผิดพลาดด้านไวยากรณ์ของซับกราฟ +- สัญลักษณ์รูปทรง (`[`, `(`, `{`, `((`) +- ตัวอักษร Pipe ในป้ายกำกับ +- ไฟล์แนบหมายเหตุ + +**กระบวนการทำงาน:** +1. รัน "Summarize as Mermaid diagram" บนหมายเหตุ +2. ดูตัวอย่างในหน้าต่างแสดงผล +3. ส่งออกเป็น SVG หรือ PNG +4. หรือบันทึกเป็นไฟล์ `.mmd` ใน vault + +--- + +## Open Source & Community + +### Notemd เป็นโอเพนซอร์สและฟรีหรือไม่? + +**ใช่** +- **ใบอนุญาต:** MIT (เปิดกว้าง สามารถใช้เพื่อการค้าได้) +- **โค้ดแหล่งที่มา:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **ไม่มีแผนราคาที่ต้องจ่าย ไม่มีการผูกมัดกับคลาวด์ ไม่มีการติดตามข้อมูล** +- **ชุมชน:** มีดาวบน GitHub มากกว่า 234 ดวง มี Discord ที่มีกิจกรรมอยู่ + +**สิ่งที่คุณเป็นเจ้าของ:** +- ข้อมูลของคุณ (อยู่ใน vault ของคุณ) +- วิธีการทำงานของคุณ (สามารถปรับแต่ง prompt, model, chain ได้) +- ความเป็นส่วนตัวของคุณ (มีการสนับสนุน LLM แบบฝังในเครื่อง) + +**การมีส่วนร่วม:** ยินดีรับ Pull request ดู [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +## การแก้ไขปัญหา + +### การเรียกใช้ LLM ของฉันล้มเหลว ฉันควรตรวจสอบอะไรบ้าง? + +1. **กุญแจ API ถูกต้องหรือไม่?** ตรวจสอบที่ Settings → Provider Configuration +2. **ชื่อ model ถูกต้องหรือไม่?** ใช้ปุ่ม "获取模型列表" (Get Model List) ในการตั้งค่า +3. **สามารถเข้าถึงเครือข่ายได้หรือไม่?** ผู้ให้บริการบางรายกำหนดให้ต้องใช้ VPN +4. **มีการจำกัดอัตราการใช้งานหรือไม่?** ตรวจสอบแดชบอร์ดของผู้ให้บริการ +5. **การวินิจฉัย:** รัน "Connection Test" ในการตั้งค่าเพื่อดูบันทึกข้อผิดพลาดโดยละเอียด + +### Notemd ทำงานช้า ฉันจะเร่งความเร็วได้อย่างไร? + +1. **ใช้โมเดลที่เร็วขึ้น:** DeepSeek, Gemini Flash, GPT-4o-mini +2. **ลดขนาดชิ้นงาน:** การตั้งค่า → Smart Chunking → ลดจำนวนคำ +3. **การประมวลผลแบบขนาน:** การตั้งค่า → Batch Processing → เพิ่มความสามารถในการทำงานพร้อมกัน +4. **โมเดลภายในเครื่อง:** Ollama สำหรับงานที่ไม่ต้องการค้นหาบนเว็บ + +### Notemd สามารถทำงานแบบออฟไลน์ 100% ได้หรือไม่? + +**ได้ โดยใช้ Ollama ไม่มีคีย์ API ไม่มีอินเทอร์เน็ต ข้อมูลจะไม่ออกจากเครื่องของคุณ: + +1. ติดตั้ง [Ollama](https://ollama.com) แล้วรัน `ollama serve` +2. ในการตั้งค่าของ Notemd เลือก **Ollama** เป็นผู้ให้บริการของคุณ +3. ดึงโมเดล: `ollama pull llama3` (หรือ qwen2.5, gemma2 ฯลฯ) +4. ฟีเจอร์ทั้งหมดทำงานได้: ลิงก์วิกิ, บันทึกแนวคิด, การแปล, แผนภาพ + +**การวิจัย DuckDuckGo** ก็สามารถทำงานได้โดยไม่ต้องใช้คีย์ API (คุณภาพเป็นแบบทดลอง) + +เมื่อใช้ผู้ให้บริการคลาวด์ (OpenAI, Anthropic, Google, DeepSeek ฯลฯ) เนื้อหาบันทึกของคุณจะถูกส่งเป็นอินพุตแบบ API ตรวจสอบนโยบายความเป็นส่วนตัวของผู้ให้บริการแต่ละรายเพื่อดูรายละเอียดการจัดการข้อมูล + +### ข้อมูลของฉันถูกส่งไปยังคลาวด์หรือไม่? + +**ขึ้นอยู่กับผู้ให้บริการของคุณ:** + +| ประเภทผู้ให้บริการ | ข้อมูลถูกส่งไปยังคลาวด์หรือไม่? | หมายเหตุ | +|--------------|---------------------|-------| +| **Ollama (lokal)** | ไม่ | ทุกอย่างจะยังคงอยู่บนเครื่องของคุณ | +| **LMStudio (lokal)** | ไม่ | เหมือนกับ Ollama | +| **DeepSeek, OpenAI, ฯลฯ** | ใช่ | หมายเหตุว่าเนื้อหาจะถูกส่งในรูปแบบ API เพื่อการประมวลผล | +| **OpenRouter, AIHubMix** | ใช่ | เกตเวย์ที่ใช้สำหรับส่งต่อไปยังผู้ให้บริการคลาวด์ | + +Notemd เองจะไม่รวบรวมข้อมูลเทเลมีเตอรี ข้อมูลวิเคราะห์ หรือข้อมูลผู้ใช้ใดๆ ทั้งสิ้น ปลั๊กอินนี้เป็นโอเพนซอร์สอย่างเต็มรูปแบบ (MIT) ข้อมูลเพียงอย่างเดียวที่ออกจากเครื่องของคุณคือข้อมูลที่คุณส่งไปยังผู้ให้บริการ LLM ที่คุณตั้งค่าไว้อย่างชัดเจน + +### ปลั๊กอิน AI ของ Obsidian ตัวไหนดีที่สุดสำหรับการวิจัย? + +ขึ้นอยู่กับกระบวนการทำงานด้านการวิจัยของคุณ: + +| ต้องการ | ปลั๊กอิน | เหตุผล | +|------|--------|-----| +| ค้นหาบทความ/บันทึกที่เกี่ยวข้อง | Smart Connections | การค้นหาความคล้ายคลึงกันทางความหมาย | +| พูดคุยเกี่ยวกับแหล่งข้อมูลของคุณ | Copilot | การสนทนาโดยใช้บริบทของไวลด์ | +| การเชื่อมโยงแนวคิดโดยอัตโนมัติ + สร้างบันทึก | **Notemd** | AI จะระบุแนวคิด ใส่ลิงก์ และสร้างบันทึก | +| การค้นคว้าบนเว็บ + สรุปเป็นบันทึก | **Notemd** | Tavily/DuckDuckGo ค้นหา → LLM สรุป → เพิ่มเข้าไปในบันทึก | +| สร้างแผนภาพจากการวิจัย | **Notemd** | Mermaid/Canvas/Vega-Lite จากเนื้อหาบันทึก | + +**ชุดที่แนะนำ:** Smart Connections (การค้นพบ) + Notemd (การจัดรูปแบบ) + Copilot (การอภิปราย). + +--- + +## ขอความช่วยเหลือ + +- **เอกสารประกอบ:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **GitHub Issues:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **ผู้สนับสนุน:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/th/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/th/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..3737d401 --- /dev/null +++ b/website/i18n/th/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "บันทึกแนวคิด" +description: "สร้างและจัดการบันทึกแนวคิด — บันทึกแยกต่างหากสำหรับแนวคิดสำคัญที่ดึงมาจากคลังข้อมูลของคุณ" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# บันทึกแนวคิด + +<TLDR> +**Notemd จะดึงเอาแนวคิดสำคัญออกมาจากบันทึกของคุณและสร้างไฟล์บันทึกแนวคิดที่ใช้งานได้โดยอิสระ** ส่วน LLM จะระบุคำศัพท์หลัก สร้างไฟล์ `.md` หนึ่งไฟล์ต่อแนวคิดในโฟลเดอร์ที่สามารถตั้งค่าได้ และยังสามารถเพิ่มลิงก์ย้อนกลับไปยังบันทึกต้นทางได้ตามต้องการ รองรับการลดคำพ้องความหมาย การเลือกรูปแบบโมเดลตามงาน การทำความสะอาดชื่อไฟล์ และเครื่องมือกำจัดข้อมูลซ้ำแบบ 4 ขั้นตอน นี่เป็นส่วนหนึ่งของ [Obsidian คู่มือการจัดการความรู้ด้วย AI](/docs/pillar-ai-knowledge) +</TLDR> + +## ภาพรวม + +บันทึกแนวคิดคือองค์ประกอบพื้นฐานของฐานความรู้ที่เชื่อมโยงกัน เมื่อคุณประมวลผลบันทึกหนึ่ง Notemd: + +1. **ส่งข้อความของคุณไปยัง LLM** พร้อมกับคำขอสกัดข้อมูลแบบมีโครงสร้าง +2. **แยกวรรค `CONCEPT:`** จากคำตอบ LLM +3. **สร้างไฟล์ `.md` หนึ่งไฟล์ต่อแนวคิด** ในโฟลเดอร์ที่กำหนด +4. **เพิ่มลิงก์ย้อนกลับ** เข้าไปในบันทึกต้นทาง (เมื่อเปิดใช้งาน) + +## หลักการทำงาน + +### กระบวนการสกัดข้อมูล + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### คำสั่งสำหรับการดึงข้อมูล + +LLM จะได้รับคำสั่งที่ให้มันทำดังนี้: + +- ดึง **คำนามหรือวลีคำนาม** ที่เป็นหัวใจสำคัญของหัวข้อเอกสาร +- **ให้ความสำคัญกับความเฉพาะเจาะจง** — ใช้ “Dielectric Relaxation” แทน “Relaxation” +- **ปรับให้อยู่ในรูปเอกพจน์** — “models” จะกลายเป็น “model” +- **ยับยั้งแนวคิดย่อย** — หากปรากฏคำว่า “dielectric relaxation” อย่านำ “relaxation” มาดึงข้อมูลด้วย +- **ข้าม** ส่วนอ้างอิง/บรรณานุกรม คำนามทั่วไป ชื่อบริษัท/ผลิตภัณฑ์ +- แสดงผลแนวคิดหนึ่งต่อบรรทัดในรูปแบบ `CONCEPT: Term Name` + +**การยับยั้งคำพ้องความหมาย** (ไม่บังคับ): เติมข้อความ "หลีกเลี่ยงการดึงคำพ้องความหมาย แนวคิดหลักที่มีความหมายใกล้เคียง หรือคำสำคัญเท่าที่จะเป็นไปได้" ไว้ที่ต้นคำขอ + +**ด้านการเรียนรู้ที่เน้น** (ไม่บังคับ): เติม `Relevant Fields: [domain]` เพื่อจำกัดการดึงข้อมูลให้อยู่ในสาขาหนึ่ง + +**การเปลี่ยนภาษา** (ไม่บังคับ): เติมข้อความ "แนวคิดที่ได้จะต้องอยู่ใน [language]" ไว้ท้าย + +### การแบ่งส่วน + +บันทึกที่ยาวจะถูกแบ่งด้วย `settings.chunkWordCount` โดยแต่ละส่วนจะถูกส่งไปแยกกัน แนวคิดจากทุกส่วนจะถูกรวบรวมไว้ใน `Set` — ค่าซ้ำกันระหว่างส่วนต่างๆ จะถูกลบออกโดยไม่แจ้งเตือน ข้อผิดพลาด LLM ในส่วนใดส่วนหนึ่งจะไม่ทำให้การดำเนินการหยุดลง + +## การสร้างบันทึกแนวคิด + +### กฎเกณฑ์ชื่อไฟล์ + +| กฎ | พฤติกรรม | +|------|----------| +| เครื่องหมายขีดกลาง/เครื่องหมายอัญประกาศ | จะถูกแทนที่ด้วยช่องว่าง | +| อักขระพิเศษ | จะถูกลบออก: เครื่องหมายแบ็คสลัช เครื่องหมายฟอร์เวิร์ดสลัช เครื่องหมายโคลอน เครื่องหมายดาว เครื่องหมายคำถาม เครื่องหมายอัญประกาศ เครื่องหมายท่อ เครื่องหมายแฮช เครื่องหมายแคร์ท เครื่องหมายวงเล็บ | +| ช่องว่าง | จะถูกรวมและตัดข้อความส่วนเกินออก | +| ความยาวสูงสุด | 100 ตัวอักษร (ตัดทอนแล้วปรับขอบอีกครั้ง) | +| ผลลัพธ์ว่าง/จุดทั้งหมด | ข้ามโดยไม่แสดงผล | + +ตัวอย่าง: `A-B: Key*Term` จะกลายเป็น `A B KeyTerm.md` + +### แม่แบบ + +**แม่แบบเต็มรูปแบบ** (เปิดใช้งานลิงก์ย้อนกลับ, ปิดแม่แบบขั้นต่ำ): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**แม่แบบขั้นต่ำ** (เมื่อ `extractConceptsMinimalTemplate: true`): + +```markdown +# Concept Name +``` + +### การอัปเดตบันทึกที่มีอยู่แล้ว + +เมื่อมีไฟล์แนวคิดอยู่แล้ว: + +1. หากเปิดใช้งานลิงก์ย้อนกลับและบันทึกต้นทางยังไม่ได้ระบุไว้ ให้เพิ่มลิงก์ย้อนกลับ +2. หากมีส่วน `## Linked From` อยู่ ให้แทรกไว้ก่อนหัวข้อ `##` ถัดไป +3. หากไม่มี `## Linked From` ให้เพิ่มส่วนนั้นไว้ท้ายสุด +4. จะตรวจสอบและข้ามลิงก์ย้อนกลับที่ซ้ำกัน + +### การตั้งค่า + +| การกำหนดค่า | ค่าเริ่มต้น | ผลกระทบ | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | สวิตช์หลัก ปิด = ไม่สร้างบันทึกใดๆ | +| `conceptNoteFolder` | `''` (ปิดใช้งาน) | เส้นทางโฟลเดอร์สำหรับบันทึกแนวคิด | +| `extractConceptsMinimalTemplate` | `true` | บันทึกที่มีเพียงชื่อเรื่อง (ไม่มี Linked From) | +| `extractConceptsAddBacklink` | `false` | เพิ่มลิงก์ย้อนกลับระหว่างการสกัดข้อมูลแบบอิสระ | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | LLM ตามงานสำหรับการสกัดแนวคิด | +| `extractConceptsLanguage` | `'en'` | ภาษาที่ใช้แสดงชื่อแนวคิด | +| `replaceSynonymsDuringConceptExtraction` | `false` | เปิดใช้งานการยับยั้งคำพ้องความหมายในคำสั่ง | +| `generateConceptLogFile` | `false` | เขียนรายการ `.log` ของแนวคิดที่สร้างขึ้น | + +**สำคัญ:** การตั้งค่า `extractConceptsAddBacklink` และ `extractConceptsMinimalTemplate` จะมีผลเฉพาะกับ **คำสั่งสกัดข้อมูลที่กำหนดไว้โดยเฉพาะ** เท่านั้น ส่วนคำสั่ง "Add Links" จะสร้างบันทึกแบบแม่แบบเต็มพร้อมลิงก์ย้อนกลับเสมอ + +## การลดความซ้ำกัน + +คำสั่ง dedup (`Notemd: Check & remove duplicate concept notes`) จะทำการวิเคราะห์ 5 ขั้นตอนดังนี้: + +### ขั้นตอนที่ 1: การตรวจสอบชื่อไฟล์ที่ตรงกันพอดี + +การเปรียบเทียบชื่อไฟล์โดยไม่สนใจตัวพิมพ์ใหญ่/เล็กภายในขอบเขตที่กำหนด + +### ขั้นตอนที่ 2: การตรวจจับรูปแบบพหูพจน์ + +การลบส่วนต่อท้าย: `-ies` ถึง `-y`, `-es` ถูกลบ, `-s` ถูกลบ จากนั้นเปรียบเทียบรูปแบบเอกพจน์กับไฟล์ในขอบเขต ไม่สามารถจัดการกับรูปแบบพหูพจน์ที่ผิดปกติ (children/child) ได้ + +### ขั้นตอนที่ 3: การปรับให้สัญลักษณ์เป็นมาตรฐาน + +ใช้งานได้กับ: `toLowerCase()`, แทนที่เครื่องหมายขีดกลาง/จุดล่างด้วยช่องว่าง, ลบสัญลักษณ์ที่ไม่ใช่ตัวอักษรและตัวเลข, รวมช่องว่างเข้าด้วยกัน ข้อความที่ผ่านการปรับให้เหมือนกันจะถูกทำเครื่องหมาย. + +### ขั้นตอนที่ 4: การกักเก็บคำเดียว + +จะมีการตรวจสอบบันทึกแนวคิดที่เป็นคำเดียวเทียบกับชื่อไฟล์ขอบเขตที่มีหลายคำ จะไม่ดำเนินการเมื่อขอบเขตคือ `concept_folder_only`. + +### ขั้นตอนที่ 5: การยืนยันและการลบ + +จะมีการแสดงรายการผู้สมัครทั้งหมดในหน้าต่างยืนยัน รายการที่ได้รับการอนุมัติจะถูกย้ายไปยังถังขยะของระบบ สามารถยกเลิกการดำเนินการระหว่างการลบแต่ละครั้งได้. + +### โหมดขอบเขต + +| โหมด | เปรียบเทียบกับ | +|------|-------------------| +| `vault` (ค่าเริ่มต้น) | ไฟล์ `.md` ทั้งหมดในคลังข้อมูลยกเว้นโฟลเดอร์แนวคิด | +| `concept_folder_only` | บันทึกแนวคิดอื่นๆ ภายในโฟลเดอร์ | +| `include` | ไฟล์ในโฟลเดอร์ที่ระบุไว้เป็นพิเศษ | +| `exclude` | ไฟล์ `.md` ทั้งหมดในคลังข้อมูลยกเว้นโฟลเดอร์แนวคิดและโฟลเดอร์ที่ระบุไว้ | + +## วิธีการใช้งาน + +### ดึงแนวคิด (แบบอิสระ) + +1. เปิดบันทึก +2. รัน **"Notemd: Extract concepts"** จากแผงคำสั่ง +3. บันทึกแนวคิดจะถูกสร้างขึ้นในโฟลเดอร์ที่ตั้งค่าไว้ + +### ดึงข้อมูลและสร้างเนื้อหา + +**"Notemd: ดึงแนวคิดและสร้างหัวข้อ"** — ดึงแนวคิดก่อน จากนั้นจะรันคำสั่ง "Generate from Title" กับบันทึกทุกตัวในโฟลเดอร์แนวคิด ซึ่งจะสร้างเนื้อหาสำหรับ **บันทึกแนวคิดทั้งหมด** ในโฟลเดอร์ ไม่ใช่เฉพาะบันทึกที่เพิ่งสร้างขึ้นเท่านั้น. + +### สร้างลิงก์วิกิจากสิ่งที่เลือก + +1. เน้นข้อความในตัวแก้ไข +2. รันคำสั่ง **"Notemd: สร้างลิงก์วิกิจากสิ่งที่เลือก"** +3. ข้อความจะถูกห่อด้วย `[[...]]` และจะมีการสร้างบันทึกแนวคิดขึ้นมา + +## เคล็ดลับ + +- **ตั้งค่าโฟลเดอร์แนวคิดก่อน** — หากไม่มีโฟลเดอร์นี้ จะไม่มีการสร้างบันทึกใดๆ หากยังไม่ได้ตั้งค่า จะมีหน้าต่างแจ้งเตือนปรากฏขึ้น. +- **ใช้โมเดลตามงาน** — การดึงแนวคิดสามารถทำได้ดีด้วยโมเดลราคาถูก (GPT-4o-mini, DeepSeek) ควรเก็บโมเดลราคาแพงไว้สำหรับการวิจัย/การแปล. +- **เปิดใช้งานการยับยั้งคำพ้องความหมาย** สำหรับด้านเทคนิคที่มีคำหลายคำหมายถึงแนวคิดเดียวกัน. +- **ลบข้อมูลซ้ำอย่างสม่ำเสมอ** — รันคำสั่งลบข้อมูลซ้ำหลังจากการประมวลผลแบบชุด เพื่อตรวจจับข้อมูลที่ใกล้เคียงกัน. +- **ไฟล์บันทึกจะถูกเขียนทับ** ในแต่ละครั้งที่รัน ไม่ใช่การเพิ่มเนื้อหาท้ายไฟล์ หากต้องการดูผลลัพธ์ก่อนหน้า ให้คัดลอกไฟล์นั้น. + +--- + +## ขั้นตอนต่อไป + +- [Wiki-Links](./wiki-links) — วิธีที่แนวคิดถูกเชื่อมโยงภายในข้อความ +- [Diagrams](./diagrams) — แสดงความสัมพันธ์ระหว่างแนวคิดในรูปแบบกราฟิก +- [Workflows](./workflows) — การเชื่อมโยงการดึงข้อมูลเข้ากับงานอื่นๆ diff --git a/website/i18n/th/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/th/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..ddaa533e --- /dev/null +++ b/website/i18n/th/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "แผนภาพ" +description: "สร้าง Mermaid, JSON Canvas, Vega-Lite, HTML, ไฟล์รูปภาพที่สามารถแก้ไขได้ รวมถึงแผนภาพ circuitikz ที่มีข้อจำกัดในอนาคต จากบันทึกของคุณโดยใช้อาร์คิเทคเจอร์ที่เน้นสเป็คเป็นหลัก" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# แผนภาพ + +<TLDR> +**Notemd จะสร้างแผนภาพจากบันทึกของคุณโดยใช้กระบวนการที่เน้นสเป็กเป็นอันดับแรก** LLM จะสร้างผลลัพธ์ `DiagramSpec` JSON ที่สามารถใช้งานได้กับเครื่องมือแสดงผลใดก็ได้ จากนั้นตัวปรับแต่งพิเศษจะแปลงผลลัพธ์ดังกล่าวให้เป็นรูปแบบ Mermaid, JSON Canvas, Vega-Lite, HTML หรือรูปแบบ HTML/SVG ที่สามารถแก้ไขได้ รองรับประเภทความตั้งใจ 8 ประเภท มีระบบสำรองการทำงานโดยอัตโนมัติ มีฟีเจอร์ดูตัวอย่างแบบเรียลไทม์พร้อมการส่งออกในรูปแบบ SVG/PNG มีการตรวจสอบความถูกต้องทางด้านความหมาย และมีระบบสร้างเนื้อหาที่เสริมด้วยข้อมูลในท้องถิ่น +</TLDR> + +นี่เป็นส่วนหนึ่งของ [Obsidian คู่มือการจัดการความรู้ด้วย AI](/docs/pillar-ai-knowledge) + +## สถาปัตยกรรม: ไพป์ไลน์แบบกำหนดสเปคก่อน + +Notemd จะไม่มีวันขอให้ LLM สร้างไวยากรณ์ Mermaid/Vega/Canvas โดยตรง แต่จะทำในลักษณะนี้แทน: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**ทำไมต้องเริ่มจากสเปคก่อน?** LLM มักจะสร้างไวยากรณ์ของเครื่องแสดงผลที่ไม่ถูกต้องบ่อยครั้ง (โดยเฉพาะ Mermaid) ส่วน `DiagramSpec` ที่มีโครงสร้างชัดเจนสามารถตรวจสอบความถูกต้องได้ก่อนการแสดงผล และสเปคเดียวกันนี้ก็สามารถนำไปใช้กับเครื่องแสดงผลหลายตัวเพื่อใช้เป็นทางเลือกสำรองได้ + +## ประเภทแผนภาพที่รองรับ + +| เจตนา | ตัวแสดงผลหลัก | วิธีแก้ปัญหาทดแทน | กรณีการใช้งาน | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | การแบ่งหัวข้อตามลำดับชั้น | +| `flowchart` | Mermaid | HTML | กระบวนการไหล ต้นไม้การตัดสินใจ | +| `sequence` | Mermaid | HTML | การโต้ตอบระหว่างไคลเอนต์กับเซิร์ฟเวอร์, โปรโตคอล | +| `classDiagram` | Mermaid | HTML | ความสัมพันธ์ระหว่างคลาสใน OOP | +| `erDiagram` | Mermaid | HTML | สเกลาของฐานข้อมูล, ความสัมพันธ์ระหว่างเอนทิตี | +| `stateDiagram` | Mermaid | HTML | เครื่องจักรสถานะ, แบบจำลองวงจรชีวิต | +| `canvasMap` | JSON Canvas | Mermaid → HTML | แผนที่แนวคิด, กราฟความรู้ | +| `dataChart` | Vega-Lite | Mermaid → HTML | แผนภูมิแท่ง, แผนภูมิเส้น, แผนภูมิพื้นที่, แผนภูมิกระจาย, แผนภูมิวงกลม, ตาราง | + +## การตรวจจับเจตนา + +Notemd จะประมวลผลหาประเภทแผนภูมิที่เหมาะสมที่สุดจากเนื้อหาบันทึกของคุณโดยใช้การให้คะแนนคำสำคัญ: + +| เจตนา | ตัวกระตุ้น | ระดับความมั่นใจ | +|--------|----------|------------| +| `dataChart` | ตาราง, เซลล์ตัวเลข, คำสำคัญที่บ่งบอกตัวชี้วัด/แนวโน้ม, เปอร์เซ็นต์ | 0.88 | +| `sequence` | คำศัพท์การร้องขอ/การตอบกลับ (4 ครั้งขึ้นไป) หรือตัวกำหนด `->`/`=>` | 0.82 | +| `erDiagram` | คีย์หลัก, คีย์ภายนอก, เอนทิตี, สเกลา (2 ครั้งขึ้นไป) | 0.80 | +| `stateDiagram` | สถานะ, การเปลี่ยนแปลงสถานะ, รออยู่, กำลังทำงาน, ล้มเหลว (3 ครั้งขึ้นไป) | 0.76 | +| `flowchart` | ขั้นตอนที่มีหมายเลข (2 ขั้นตอนขึ้นไป) หรือคำศัพท์ workflow เช่น if/then/else | 0.74 | +| `canvasMap` | แผนภาพแนวคิด, กราฟความรู้, แบบพื้นที่, กลุ่ม | 0.72 | +| `mindmap` | ค่าเริ่มต้นสำหรับกรณีที่ไม่มีตัวเลือกอื่น | 0.55 | + +สามารถเปลี่ยนแปลงได้โดยใช้การตั้งค่า **Preferred diagram type**, ตัวเลือกที่แถบด้านข้าง หรือตัวเลือกในพาเล็ตคำสั่งโดยตรง + +## การเลือกจุดหมายปลายทางสำหรับการแสดงผล + +กระบวนการที่อิงตามสเป็คเชิงทดลองในปัจจุบันมีตัวควบคุมที่แยกจากกันสองตัว: + +| ตัวควบคุม | การกำหนดค่า | ผลกระทบ | +|---------|---------|--------| +| Preferred diagram type | `preferredDiagramIntent` | ใช้กำหนดรูปร่างเชิงความหมายของ `DiagramSpec` ที่ถูกสร้างขึ้น | +| Preferred render target | `preferredDiagramRenderTarget` | ใช้เลือกตัวแปลงผลลัพธ์สำหรับการ **Generate diagram** และ **Preview diagram** | + +ตั้งค่า **Preferred render target** เป็น **Auto** เพื่อใช้เป็นค่าเริ่มต้นของตัววางแผน หรือเลือก Mermaid, JSON Canvas, Vega-Lite, HTML หรือ Editable HTML/SVG โดยตรง การเปลี่ยนแปลงนี้จะมีผลเฉพาะกับคำสั่งสร้างผลลัพธ์และการดูตัวอย่างเท่านั้น ส่วนคำสั่งมาตรฐาน **Summarise as Mermaid diagram** จะยังคงใช้รูปแบบที่เข้ากันได้กับ Mermaid เพื่อไม่ให้กระบวนการทำงานแบบ Markdown เปลี่ยนรูปแบบโดยไม่แจ้งให้ทราบ + +การแยกส่วนนี้มีความสำคัญเพราะตอนนี้ `flowchart` สามารถถูกแสดงผลเป็น Mermaid สำหรับบันทึกแบบ Markdown, เป็น HTML สำหรับค่าเริ่มต้นที่มั่นคง หรือเป็น Editable HTML/SVG สำหรับการแก้ไขต่อยอด ส่วน Draw.io และ Drawnix ยังคงเป็นตัวส่งออกผลลัพธ์แบบ CLI มากกว่าจะเป็นจุดหมายปลายทางสำหรับการแสดงผลภายในปลั๊กอิน + +## วิธีการใช้งาน + +### สร้างแผนภาพ + +1. เปิดบันทึก +2. รันคำสั่ง **"Notemd: Generate diagram"** จากพาเล็ตคำสั่ง +3. Notemd จะตรวจจับเจตนา สร้างสเปค แสดงผล และบันทึกผลลัพธ์ + +**ไฟล์ผลลัพธ์ตามจุดหมายปลายทาง:** + +| เป้าหมาย | รูปแบบการขยาย | รูปแบบชื่อไฟล์ | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| สามารถแก้ไข HTML/SVG ได้ | `.html` | `{note}_diagram.html` | + +### ดูตัวอย่างแผนภาพ + +1. รัน **"Notemd: ดูตัวอย่างแผนภาพ"** +2. หน้าต่างแบบโมดัลจะปรากฏพร้อมแผนภาพที่แสดงผล +3. สามารถส่งออกเป็น SVG หรือ PNG โดยใช้ปุ่มบนแถบเครื่องมือ + +**การเปิดดูตัวอย่างโดยอัตโนมัติ** มีให้ใช้งานในการตั้งค่า — หลังจากสร้างแล้ว หน้าต่างดูตัวอย่างจะเปิดขึ้นโดยอัตโนมัติ + +หน้าต่างดูตัวอย่างยังมีแผงวินิจฉัยข้อผิดพลาดของอาร์ทิแฟคอีกด้วย ตัวแปลงและการตรวจสอบสเมกสามารถเชื่อมต่อ `RenderArtifact.diagnostics` ได้; หน้าต่างจะแสดงสรุปผลวินิจฉัยพร้อมจำนวนข้อผิดพลาด/คำเตือน/ข้อมูล ตามด้วยระดับความรุนแรง ประเภทการวินิจฉัย ข้อความ และคำแนะนำในการแก้ไขข้างๆ ตัวอย่าง สรุปผลเดียวกันนี้จะแสดงในรายการประวัติการดูตัวอย่างด้วย ทำให้สามารถเปรียบเทียบความพยายามการตรวจสอบสเมก circuitikz ที่ซ้ำกันได้โดยไม่ต้องเปิดแต่ละรายการ สำหรับอาร์ทิแฟคที่มีเนื้อหาต้นฉบับแต่ไม่สามารถแสดงผลแบบในไลน์หรือผ่านทาง URL HTML ได้ หน้าต่างจะย้อนกลับไปใช้การดูตัวอย่างเฉพาะต้นฉบับแทนที่จะบังคับใช้ iframe ที่ว่างเปล่า ซึ่งช่วยให้สามารถทำการตรวจสอบการคอมไพล์/การแสดงผลของ circuitikz การตรวจสอบโทเค็นข้อความของ SVG การตรวจสอบภาพหน้าจอที่ว่างของ PNG และรายงานการทับซ้อนในอนาคตได้อย่างเห็นได้ชัดผ่าน UI โดยไม่ต้องทำให้ TikZJax หรือ LaTeX เป็นไลบรารีที่จำเป็นต้องใช้งานขณะรัน หรือปลอมแปลงว่าเนื้อหาต้นฉบับคือการแสดงผลที่ได้รับการยืนยันแล้ว + +### โหมด Mermaid แบบเก่า + +เมื่อ `enableExperimentalDiagramPipeline` ปิดอยู่ Notemd จะส่งคำขอ Mermaid โดยตรงไปยัง LLM ซึ่งจะหลีกเลี่ยงกระบวนการตามสเป็คทั้งหมด หากกระบวนการทดลองล้มเหลว จะย้อนกลับไปใช้โหมดนี้ + +## แบ็กเอนด์สำหรับการแสดงผล + +### Mermaid + +มีอะดาปเตอร์ 6 ตัว (mindmap, flowchart, sequence, ER, class, state) ที่แปลง `DiagramSpec` เป็นไวยากรณ์ Mermaid หลังจากสร้างแล้ว `mermaid.parse()` จะทำการตรวจสอบผลลัพธ์ หากการตรวจสอบล้มเหลว: + +1. **LLM ลองใหม่** — ทำการทดลองอีกครั้งโดยใช้ข้อความแสดงข้อผิดพลาดของ Mermaid เป็นข้อมูลประกอบ +2. **การย้อนกลับขั้นต่ำ** — แผนภาพ Mermaid แบบง่ายๆ ที่สร้างจาก ID ของโหนดตามสเป็ค + +**Legacy Mermaid Fixer** จะซ่อมแซมข้อผิดพลาดด้านไวยากรณ์ LLM ที่พบบ่อยโดยอัตโนมัติ เช่น การปรับรูปแบบคำสั่ง note การหลบหนีของ pipe-label การจัดตำแหน่งเครื่องหมายจุลภาคใหม่ การใช้เครื่องหมายอัญประกาศอัจฉริยะ ลูกศรสองเส้นตรง ความไม่ตรงกันของรูปทรง และอื่นๆ อีกมากมาย. + +### JSON Canvas + +สร้างรูปแบบ Obsidian JSON Canvas พร้อมการจัดวางในระบบพื้นที่: +- ตำแหน่งของโหนดถูกกำหนดโดยความลึก (x = ความลึก × 420) และดัชนี (y = ดัชนี × 170) +- ความกว้างถูกประมาณค่าจากความยาวของป้าย +- เส้นที่มี `fromSide: 'right'`, `toSide: 'left'`, `toEnd: 'arrow'` + +### Vega-Lite + +สร้างสเป็ก Vega-Lite v5 JSON ที่สมบูรณ์พร้อมการเข้ารหัสโดยอัตโนมัติ: +- **แผนภูมิแบบคาร์ทีเซียน** (แท่ง/เส้น/พื้นที่/จุด/กระจาย): ช่อง x + y รวมถึงสีสำหรับหลายซีรีส์ +- **แผนภูมิพาย**: theta = y (ค่าปริมาณ), สี = x (ค่าชื่อ) +- **ตาราง**: แถว = x, ข้อความ = y + คอลัมน์ = ซีรีส์ + +โมดูลธีมสีเข้มและสีอ่อนจะถูกรวมเข้าด้วยกันอย่างลึกซึ้งก่อนการคอมไพล์. + +### HTML + +เป็นตัวเลือกสำรองที่ใช้ได้ทั่วไป มีเอกสาร HTML ที่สามารถใช้งานได้ด้วยตัวเองซึ่งประกอบด้วย: +- หัวข้อ CSP meta +- โหมดสีอ่อน/สีเข้มผ่าน `prefers-color-scheme` +- ป้าย UI ที่ปรับให้เหมาะกับภาษา 20 ภาษา +- ส่วนต่างๆ ได้แก่ hero, structure (ต้นไม้โหนด), relationships, callouts, ตารางซีรีส์ข้อมูล + +### สามารถแก้ไข HTML/SVG ได้ + +เป้าหมายตัวเลขที่ชัดเจนสำหรับกระบวนการส่งออกแบบแก้ไขได้ โดยจะนำ `DiagramSpec` มาประมวลผลเป็น `SemanticFigureModel` ที่มีค่าแน่นอน จากนั้นจึงสร้างเอกสาร HTML ที่สามารถใช้งานได้ด้วยตนเองพร้อมกลุ่ม SVG แบบฝังที่มีคำอธิบายแบบ Draw.io: + +- `data-drawio-type`, `data-drawio-id` และ `data-drawio-role` บนโหนดเชิงความหมาย +- `data-drawio-source` และ `data-drawio-target` บนขอบเขตเชิงความหมาย +- รหัสประจำโหนด/ขอบเขตที่มั่นคงหลังจากการปรับรูปแบบช่องว่างและการจัดการการชนกัน +- ไม่มีสคริปต์ ไม่มีฟอนต์ภายนอก และไม่มีทรัพยากรจากระยะไกล + +เป้าหมายนี้ยังไม่ได้ถูกตั้งเป็นเส้นทางผู้วางแผนเริ่มต้นโดยเจตนา แต่สามารถใช้เป็นเป้าหมายการแสดงผลที่ชัดเจนได้ในขณะที่เส้นทางผลิตภัณฑ์ยังคงพิสูจน์พฤติกรรมการแก้ไขในเครื่องมือจริงๆ + +### Draw.io และ Drawnix ขอบเขตการส่งออก + +การใช้งานในปัจจุบันจะรักษาการสนับสนุนจากโปรแกรมแก้ไขของบุคคลที่สามไว้ที่ขอบเขตของผลงาน: + +| เป้าหมาย | สัญญา | ความต้องการในระหว่างการทำงาน | +|--------|----------|--------------------| +| Draw.io | `mxfile` XML ที่ไม่ถูกบีบอัดและมีค่าแน่นอนจาก `SemanticFigureModel` | ไม่มีอะไรในช่วงเวลาการทำงานของปลั๊กอินหรือ CI | +| Drawnix | ชุดย่อยของ `.drawnix` JSON ที่จำเป็นที่สุดโดยใช้องค์ประกอบ `geometry` และ `arrow-line` | ไม่มีอะไรในช่วงเวลาการทำงานของปลั๊กอินหรือ CI | + +การตัดสินใจนี้ทำขึ้นโดยเจตนา: Notemd สามารถตรวจสอบป้ายที่มองเห็นได้ รหัสที่มั่นคง และการครอบคลุมของพื้นฐานที่รองรับได้ โดยไม่จำเป็นต้องฝัง Diagram.net Desktop, Drawnix, Plait หรือสถานะของโปรแกรมแก้ไขที่ใช้งานได้เฉพาะในเบราว์เซอร์เข้าไปในปลั๊กอิน + +### circuitikz / TikZJax ทิศทาง + +แผนภาพวงจรไม่ใช่ปัญหาเดียวกันกับแผนภาพกระแสทั่วไป รูปแบบไวยากรณ์ที่ถูกต้องสำหรับวงจรไฟฟ้ามักจะเป็น **circuitikz** โดยจะถูกแสดงใน Obsidian ผ่านปลั๊กอินต่าง ๆ เช่น TikZJax TikZJax สามารถโหลดแพ็กเกจต่าง ๆ เช่น `circuitikz`, `pgfplots`, `tikz-cd` และ `chemfig` ได้ ซึ่งทำให้มันเหมาะสำหรับบันทึกเกี่ยวกับฟิสิกส์ วงจรไฟฟ้า เคมี และคณิตศาสตร์ + +ความเสี่ยงคือ TikZ ที่สร้างขึ้นจาก LLM ในรูปแบบดิบนั้นมีความเปราะบาง: + +- โครงสร้างวงจรที่ซับซ้อนอาจถูกต้องทางไฟฟ้าแต่อ่านไม่ออกทางสายตา; +- สายไฟและป้ายที่ทับกันอาจทำให้เน็ตลิสต์ที่ถูกต้องใช้งานไม่ได้สำหรับบันทึกการเรียน; +- การขาดส่วนนำหน้าของแพ็กเกจ การใช้จุดยึดที่ผิด หรือชื่อองค์ประกอบที่ไม่ถูกต้องอาจทำให้ไม่สามารถแสดงผลได้; +- ข้อมูลตอบกลับจากเครื่องแสดงผลมักจะอยู่ในระดับภาพ ในขณะที่ LLM สร้างเรขาคณิตในระดับข้อความ + +สถาปัตยกรรมที่ดีกว่าคือการมอง circuitikz เป็นเป้าหมายของแผนภาพที่มีข้อจำกัด ไม่ใช่คำสั่งแบบอิสระ: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +โมเดลระดับหนึ่งควรอธิบายโครงสร้างวงจรและการจัดวางแยกกัน: + +| ชั้น | หน้าที่ | Example | +|-------|----------------|---------| +| โครงสร้าง | จุดต่อไฟฟ้าและการเชื่อมต่อองค์ประกอบ | `VDD -> RD -> drain(M1)`, `source(M1) -> GND` | +| การจัดวาง | การวางตำแหน่งบนกริด การจัดทิศทาง และเส้นทางการเดินสาย | `M1 at (3,2.2)`, อินพุตด้านซ้าย, เอาต์พุตด้านขวา | +| สไตล์ | แพ็กเกจ, รูปแบบแรงดันไฟฟ้า, ป้ายกำกับ, จุดยึด | `\begin{circuitikz}[american voltages]` | +| การยืนยันความถูกต้อง | ไฟล์บันทึกการคอมไพล์, จุดยึดที่ขาดหาย, การตรวจสอบการทับซ้อน/ภาพหน้าจอ | TikZJax/การวินิจฉัย LaTeX ร่วมกับการตรวจสอบแบบมองเห็นได้ | + +### โปรโตทไทป์ circuitikz ปัจจุบัน + +Notemd ในปัจจุบันรวมโปรโตทไทป์ของคลังข้อมูลที่มีข้อจำกัดตัวแรกสำหรับทิศทางนี้ โดยถูกตั้งให้อยู่นอกเครือข่ายและถูกจำกัดด้วยแม่แบบ: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +โปรโตทไทป์นี้เพิ่มขอบเขต `CircuitSpec` ที่แยกต่างหากและตัวส่งออกที่มีค่าแน่นอนสำหรับครอบครัวอ้างอิงทองคำหกชนิด: + +| ประเภทวงจร | อ้างอิงทองคำ | การรับประกันค่ากระแสไฟฟ้า | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | ตรวจสอบ `VDD -> R_D -> M1.D`, `vin -> M1.G`, `M1.S -> GND` และ `M1.D -> vout` ก่อนที่จะเขียน LaTeX | +| `cmos-inverter` | `cmos-inverter-v1` | ตรวจสอบโครงสร้าง PMOS-over-NMOS, อินพุตประตูร่วมกัน, เอาต์พุตดรีนร่วมกัน, `VDD -> MP.S` และ `MN.S -> GND` ก่อนที่จะเขียน LaTeX | +| `cmos-buffer` | `cmos-buffer-v1` | ตรวจสอบสองขั้นตอนของอินเวอร์เตอร์ที่เชื่อมต่อกัน, โหนดกลาง `vmid`, `vout` ที่ได้รับการฟื้นฟู, และราง VDD/GND ที่ใช้ร่วมกันก่อนที่จะเขียน LaTeX | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | ตรวจสอบอุปกรณ์ PMOS/NMOS ที่ทำงานพร้อมกันระหว่าง `vin` และ `vout` โดยมีการควบคุม `phib` / `phi` ที่เป็นคู่กันก่อนที่จะเขียน LaTeX | +| `cmos-nand2` | `cmos-nand2-v1` | ตรวจสอบการทำงานของ PMOS แบบดึงขึ้นแบบขนาน, NMOS แบบดึงลงแบบอนุกรม, อินพุตคู่ `va` / `vb` และ `vout` ก่อนที่จะเขียน LaTeX | +| `cmos-nor2` | `cmos-nor2-v1` | ตรวจสอบความถูกต้องของการใช้ PMOS สำหรับการดึงขึ้น, NMOS สำหรับการดึงลงแบบขนาน, อินพุตคู่ `va` / `vb` และ `vout` ก่อนที่จะเขียน LaTeX | + +นี่ยังไม่ใช่เครื่องมือสร้างไฟล์ TikZ แบบทั่วไป มันไม่สามารถคอมไพล์ LaTeX โทรหา TikZJax ตรวจสอบภาพหน้าจอ หรือดำเนินการซ่อมแซมภาพโดยอัตโนมัติได้ ฟีเจอร์เหล่านั้นจะถูกเพิ่มเข้ามาในขั้นตอนต่อไป + +คำสั่ง Preview diagram สามารถเปิดไฟล์ต้นฉบับ circuitikz ที่บันทึกไว้อีกครั้งได้โดยตรง เมื่อนามสกุลไฟล์เป็น `.tex` หรือ `.tikz` และไฟล์ต้นฉบับนั้นมีเนื้อหาเป็น `\usepackage{circuitikz}` หรือ `\begin{circuitikz}` วิธีนี้เป็นการดูตัวอย่างแบบมีเฉพาะต้นฉบับเท่านั้นซึ่งเรียกว่า circuitikz โดยหน้าต่างแสดงผลจะแสดงต้นฉบับ ข้อมูลวินิจฉัย ปุ่มสำหรับคัดลอก/บันทึก และข้อมูลเมตาดาต้าเกี่ยวกับประวัติการดำเนินการ แต่จะไม่มีการคอมไพล์ LaTeX หรือเรียกใช้ TikZJax ภายในช่วงเวลาที่ปลั๊กอินทำงาน + +ขอบเขตการดูตัวอย่างแบบใช้เฉพาะซอร์สโค้ดเดิมนี้ตอนนี้ครอบคลุมไฟล์ผลลัพธ์ที่ถูกบันทึกไว้ Draw.io และ Drawnix ด้วย ไฟล์ `.drawio` จะได้รับการยอมรับก็ต่อเมื่อมีลักษณะคล้ายกับ Draw.io XML (`mxfile` หรือ `mxGraphModel`) ส่วนไฟล์ `.drawnix` จะได้รับการยอมรับก็ต่อเมื่อมีลักษณะเป็น Drawnix JSON พร้อมกับ `type: "drawnix"` และอาร์เรย์ `elements` ปลั๊กอินยังคงไม่รวมฟีเจอร์ diagrams.net หรือเซิร์ฟเวอร์กระดานขาว Drawnix เข้ามาด้วย การดูตัวอย่างเหล่านี้จะแสดงให้เห็นซอร์สโค้ด ข้อมูลวินิจฉัย และประวัติไฟล์ผลลัพธ์ โดยไม่มีการระบุว่ามีเครื่องมือแก้ไขภาพภายในปลั๊กอิน + +สำหรับการซ่อมแซมที่รักษาโครงสร้างเดิมไว้ ให้ส่งข้อมูลสเปกก่อนการซ่อมแซมมาเป็นข้อมูลอ้างอิงก่อนที่จะยอมรับผลลัพธ์ที่ได้รับการซ่อมแซม: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +ตัวควบคุมการซ่อมแซมจะใช้ `createCircuitTopologySignature` และ `assertCircuitTopologyUnchanged` เพื่อเปรียบเทียบ `circuitKind`, `goldenReferenceId`, เครือข่าย, รหัส/ประเภท/ขั้วต่อของชิ้นส่วน รวมถึงจุดปลายทางการเชื่อมต่อแบบไม่มีทิศทางก่อนที่จะแสดงผลลัพธ์ ส่วนป้ายกำกับ ข้อความหัวข้อ คำแนะนำเรื่องการจัดวาง ลำดับการเชื่อมต่อ และป้ายกำกับการเชื่อมต่อจะถูกละเลยโดยเจตนา ผลลัพธ์ที่เสนอซึ่งเพิ่มองค์ประกอบใหม่เข้ามาหรือปรับเปลี่ยนการเชื่อมต่อของขั้วต่อจะล้มเหลวด้วย `Circuit topology drift detected` ก่อนที่ไฟล์ `.tex` จะถูกเขียนขึ้น + +ตอนนี้ CLI สามารถวิเคราะห์ไฟล์บันทึกการคอมไพล์ LaTeX/TikZJax ที่มีอยู่ได้โดยไม่ต้องรันโปรแกรมคอมไพเลอร์: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +เส้นทางการวินิจฉัยนี้จะรายงานถึงแพ็กเกจที่หายไป เช่น `circuitikz.sty`, คีย์ TikZ/circuitikz ที่ไม่รู้จัก, ข้อผิดพลาดด้านไวยากรณ์ของเส้นทาง TikZ เช่น การขาดเครื่องหมายจุลภาค, อาร์กิวเมนต์ที่เกินมาจากวงเล็บที่ไม่สมดุลหรือป้ายที่ไม่ได้ปิด, ลำดับควบคุมที่ยังไม่ได้นิยาม, ข้อผิดพลาดทั่วไปของ LaTeX, การหยุดทำงานฉุกเฉิน, และคำเตือนเกี่ยวกับการเต็ม `\hbox` เกินขีดจำกัด โดยระบบยังคงใช้ไฟล์บันทึกเหตุการณ์เป็นหลัก: การรัน LaTeX/TikZJax แบบท้องถิ่นและการตรวจสอบคุณภาพในระดับภาพหน้าจอยังคงเป็นงานที่ต้องพัฒนาต่อไปในอนาคต + +สำหรับการตรวจสอบเบื้องต้นของผู้ดูแลระบบ CLI เดียวกันสามารถเรียกใช้เครื่องมือแสดงผลที่กำหนดค่าไว้อย่างชัดเจนได้โดยไม่ต้องมีการประมวลผลคำสั่งในเชลล์: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +ตัวรันคอมไพล์จะใช้ `shell: false` และขยายตัวแทน `{tex}`, `{outputDir}` รวมถึง `{jobName}` เป็นค่าในอาร์เรย์อาร์กิวเมนต์ จากนั้นอ่าน `{jobName}.log` ที่ถูกสร้างขึ้น และส่งคืน `compileExecution` พร้อมกับ `compileDiagnostics` ในรูปแบบผลลัพธ์ CLI JSON `--compile-executable` คือเพียงที่อยู่ของไฟล์ไบนารีหรือวอร์เปอร์ของเรนเดอร์เท่านั้น ส่วนฟลากของเรนเดอร์จะอยู่ในค่า `--compile-arg` ที่ถูกใช้ซ้ำ ไฟล์ที่ไม่มีเนื้อหาจะล้มเหลวในลักษณะ `compile-executable-invalid` ไฟล์ไบนารีที่ขาดหายไปจะล้มเหลวในลักษณะ `compile-executable-not-found` ส่วนสตริงคำสั่งแบบชェลล์จะได้รับคำแนะนำให้แยกอาร์กิวเมนต์ เพื่อให้ Windows, Linux และ macOS ทำงานตามข้อตกลงการรันโปรแกรมแบบตรงไปตรงมาเดียวกัน เมื่อมี `--expected-artifact` จะมีการรายงาน `compileExecution.renderSmoke` ด้วย และจะล้มเหลวใน CLI หากเรนเดอร์ไม่สร้างไฟล์ผลลัพธ์ที่มีเนื้อหา นอกจากนี้ยังไม่มีการบรรจุไฟล์ LaTeX หรือทำให้ TikZJax เป็นไลบรารีที่จำเป็นสำหรับการรันโปรแกรม รวมถึงไม่มีการซ่อมแซมภาพหน้าจอด้วย + +หากผลลัพธ์ที่คาดหวังคือ `.svg` การตรวจสอบ Smoke Check จะทำการตรวจสอบในระดับที่ลึกขึ้นอีกหนึ่งชั้น: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +SVG การตรวจสอบควันจะยืนยัน `<svg>` ราก มิติเชิงบวกหรือ `viewBox` โดยมีองค์ประกอบภาพที่มองเห็นได้อย่างน้อยหนึ่งอย่างหลังจากตัดองค์ประกอบที่ซ่อน/โปร่งใสออก มีโทเค็นข้อความที่ร้องขอทั้งหมด องค์ประกอบที่ชัดเจนซึ่งอยู่นอก `viewBox` ป้าย `<text>` / `<tspan>` ที่วางตำแหน่งซ้อนกันอย่างชัดเจน และป้ายข้อความที่ซ้อนกับองค์ประกอบภาพผ่าน `render-svg-label-overlap` ข้อความที่คาดหวังจะถูกค้นหาในข้อความที่มองเห็นได้และข้อมูลเมตาด้านความสามารถในการเข้าถึง เช่น `aria-label`, `<title>` และ `<desc>` ดังนั้นเครื่องแสดงผลที่รักษาป้ายเชิงความหมายไว้นอก `<text>` ก็ยังสามารถผ่านการตรวจสอบโทเค็นข้อความแบบควันได้โดยไม่จำเป็นต้องใช้ OCR ขั้นตอนการตรวจสอบเรขาคณิตตอนนี้รองรับการแปลงรูปทรงสำหรับแอตทริบิวต์กลุ่มและองค์ประกอบทั่วไป `transform` ดังนั้นกล่อง SVG ที่ถูกแปลง ขยายขนาด หมุน บิด หรือถูกแปลงด้วยเมทริกซ์จะถูกตรวจสอบหลังจากการรวมการแปลงรูปทรง ขั้นตอนนี้ครอบคลุมขอบเขตเส้นโค้งที่แม่นยำสำหรับจุดสุดขอบของเส้นโค้ง A/a ขอบเขตเส้นโค้ง Bezier ที่แม่นยำสำหรับจุดสุดขอบของเส้นโค้ง C/S/Q/T การตรวจสอบขอบเขตที่คำนึงถึงความหนาของเส้น SVG และการตรวจสอบการซ้อนกันของป้าย รวมถึงเรขาคณิตการวาดภาพ `polyline` / `polygon` และยังแก้ไขการวางตำแหน่งไกลฟ์ที่มีเพียงเส้นทางจากการอ้างอิง `<use href="#...">` ด้วย ดังนั้นป้ายที่ถูกแปลงเป็นเส้นทางไกลฟ์ที่สามารถใช้ซ้ำได้ก็ยังอาจล้มเหลวในการตรวจสอบขอบเขตแคนวาสเมื่อเรขาคณิตของไกลฟ์ที่วางอยู่นั้นออกนอก `viewBox` ป้าย `tspan` หลายอันที่วางตำแหน่งอยู่ใต้พ่อแม่ `<text>` เดียวกันจะถูกเปรียบเทียบเป็นกล่องป้ายแยกกัน ซึ่งช่วยตรวจจับผลลัพธ์แบบ LaTeX SVG ที่มิฉะนั้นอาจทำให้ป้ายที่แยกจากกันถูกรวมเป็นโหนดข้อความเดียว กล่อง `text` และ `tspan` ที่วางตำแหน่งจะปฏิบัติตามค่า `text-anchor` `start` และ `middle` ดังนั้นป้ายที่อยู่ตรงกลางและเรียงตัวทางขวาจึงสามารถกระตุ้นการตรวจสอบการซ้อนกันของข้อความ/ข้อความและป้ายกับภาพได้ โดยไม่จำเป็นต้องใช้การจัดวางข้อความระดับเบราว์เซอร์ ไกลฟ์เส้นทางที่มีเพียงคำนิยามอยู่ภายใน `<defs>` จะไม่ถูกนับเป็นองค์ประกอบภาพที่มองเห็นได้ แต่แอตทริบิวต์ `transform` ที่อยู่ในคำนิยามของมันเองจะถูกนำมาใช้ก่อนการวางตำแหน่ง `<use>` เพื่อไม่ให้คำนิยามไกลฟ์ที่ถูกขยายขนาดหรือสะท้อนถูกนับน้อยเกินไป การตรวจสอบป้ายกับภาพจะใช้ค่าทนทานของกล่องภาพที่ต่ำและค่า `stroke-width` ที่ระบุไว้ ดังนั้นสายไฟที่บาง สายไฟที่หนา และเส้นขอบขององค์ประกอบรูปหลายเหลี่ยมก็สามารถถูกมองว่าเป็นสาเหตุที่ทำให้อ่านป้ายได้ยากได้ เมื่อเส้นที่มองเห็นได้ของพวกมันไปถึงป้าย ป้ายไกลฟ์ที่มีเพียงเส้นทางและถูกแก้ไขจาก `<use href="#...">` ก็จะถูกเปรียบเทียบกับกล่องภาพเช่นกัน และจะล้มเหลวด้วย `render-svg-path-glyph-overlap` เมื่อเรขาคณิตไกลฟ์ที่สามารถใช้ซ้ำได้ซ้อนกับสายไฟหรือองค์ประกอบต่างๆ หากเครื่องแสดงผลแปลงป้ายให้เป็นไกลฟ์เส้นทางที่สามารถใช้ซ้ำได้แทนข้อความที่สามารถค้นหาได้ `<text>` และไม่รักษาข้อมูลเมตาด้านความสามารถในการเข้าถึงไว้ รายงานควันจะบันทึก `pathOnlyGlyphUseCount` และจะล้มเหลวในการตรวจสอบโทเค็นข้อความที่ร้องขอผ่าน `render-svg-text-path-only` แทนที่จะทำเป็นว่าป้ายนั้นไม่มีอยู่จริง ความล้มเหลวอื่นๆ จะถูกรายงานผ่าน `render-svg-invalid`, `render-svg-dimension-missing`, `render-svg-no-visible-elements`, `render-svg-text-missing`, `render-svg-out-of-bounds`, `render-svg-text-overlap`, `render-svg-label-overlap` หรือ `render-svg-path-glyph-overlap` การตรวจสอบโทเค็นข้อความและการซ้อนกันควรถูกมองเป็นเพียงการตรวจสอบโครงสร้างสำหรับเครื่องแสดงผลที่รักษาป้ายไว้ในรูปแบบข้อความที่สามารถค้นหาได้ SVG หรือข้อมูลเมตาด้านความสามารถในการเข้าถึงเท่านั้น ส่วนผลลัพธ์ที่มีเพียงเส้นทาง SVG ยังคงต้องมีการตรวจสอบด้วยภาพหน้าจอ/OCR เพื่อพิสูจน์ความชัดเจนของป้ายในแง่ของการมองเห็น และการตรวจสอบควันนี้ก็ยังไม่ได้รับการยืนยันว่าครอบคลุมเส้นทางทั้งหมด SVG + +กลุ่มและองค์ประกอบที่ซ่อนอยู่ SVG จะถูกข้ามไปอย่างสม่ำเสมอในระหว่างการนับองค์ประกอบที่มองเห็นได้และการรวบรวมข้อมูลเชิงเรขาคณิต คุณสมบัติหรือสไตล์แบบใส่ภายใน `display:none`, `visibility:hidden`, `visibility:collapse` รวมถึง `opacity:0` โดยรวม ไม่สามารถทำให้ผลลัพธ์การแสดงผลที่ปกติแล้วว่างเปล่าผ่านการทดสอบผลลัพธ์ที่มองเห็นได้ + +นิยามไกลฟ์ที่ใช้เพียงพาธสามารถเป็นพาธโดยตรง หรือเป็นคอนเทนเนอร์ที่รวมกลุ่ม/สัญลักษณ์ภายใน `<defs>` ขั้นตอน smoke pass จะประมวลผลรูปทรงของพาธย่อยจาก `<g id="...">` และ `<symbol id="...">` ก่อนการวางตำแหน่งที่ `<use>` เพื่อให้ผลลัพธ์ไกลฟ์ที่ถูกห่อหุ้มยังคงถูกส่งต่อไปยัง `pathOnlyGlyphUseCount` การตรวจสอบบนแคนวาสที่มีขอบเขต และ `render-svg-path-glyph-overlap` ได้อยู่ดี + +ตัวแยกเส้นทางยังติดตามจุดเริ่มต้นของส่วนย่อยของเส้นทางและตั้งค่าจุดปัจจุบันใหม่ที่ `Z/z` ดังนั้นคำสั่งแบบสัมพัทธ์ที่อยู่หลังส่วนย่อยของเส้นทางที่ปิดลงจะเริ่มต้นจากจุด SVG ที่ถูกต้องแทนที่จะสร้างข้อผิดพลาด `render-svg-out-of-bounds` ที่ไม่ถูกต้อง + +การประมวลผลเรขาคณิตแบบเดียวกันจะใช้ไวยากรณ์ SVG สำหรับทศนิยมที่มีจุดนำหน้าและเครื่องหมายบวกที่ชัดเจน ดังนั้นพิกัด dvisvgm ที่กระชับเช่น `.5`, `-.5` หรือ `+.5` จึงยังคงอยู่ในรูปแบบเศษส่วนระหว่างการตรวจสอบขอบเขต แทนที่จะกลายเป็นเรขาคณิตที่อยู่นอกขอบเขตหรือถูกละเว้น. + +หากตัวแสดงผลส่ง `.png` มา พาธที่คาดหวังสำหรับผลลัพธ์จะกลายเป็นภาพสเก็ตช็อตแรก โดย Notemd จะถอดรหัสไฟล์ PNG ที่มีสีด้วยการจัดอินเด็กซ์ 1/2/4/8 บิตที่ไม่ใช่แบบอินเตอร์เลส ไฟล์ PNG สีเทา 1/2/4/8/16 บิต และไฟล์ PNG สีเทา-อัลฟ่า/RGB/RGBA 8/16 บิต รูปภาพสีด้วยการจัดอินเด็กซ์และสีเทาแบบย่อยบิตรองรับตัวอย่างที่ถูกบีบอัด รูปภาพสีด้วยการจัดอินเด็กซ์ยังรองรับข้อมูล PLTE และข้อมูล tRNS ที่เลือกได้ รูปภาพสีเทา/RGB รองรับตัวอย่างโปร่งใส tRNS ตัวอย่างแบบตรง 16 บิตจะถูกปรับให้อยู่ในพื้นที่เปรียบเทียบ RGBA 8 บิตเดียวกันที่ใช้ในการตรวจสอบแบบสโมค การตรวจสอบแบบสโมคจะตรวจสอบขนาดที่เป็นบวก บันทึกขอบเขตของภาพหน้าจอเป็น `foregroundBounds` บันทึกความหนาแน่นของภาพหน้าจอภายในกล่องนั้นเป็น `foregroundDensity` จะล้มเหลวด้วย `render-png-blank` เมื่อพิกเซลที่มองเห็นทั้งหมดมีสีเท่ากับสีพื้นหลังที่มุมซ้ายบน จะล้มเหลวด้วย `render-png-content-clipped` เมื่อเนื้อหาของภาพหน้าจอสัมผัสกับขอบของรูปภาพ จะล้มเหลวด้วย `render-png-foreground-too-small` เมื่อภาพสเก็ตช็อตขนาดใหญ่มีพิกเซลของภาพหน้าจอน้อยกว่าสี่ตัว และจะล้มเหลวด้วย `render-png-foreground-dense` เมื่อพิกเซลของภาพหน้าจอมีความหนาแน่นสูงผิดปกติภายในกล่องขอบเขตที่ไม่ใช่แบบง่าย รูปแบบ PNG ที่ไม่รองรับจะล้มเหลวด้วย `render-png-unsupported` พร้อมคำแนะนำเฉพาะสำหรับรูปแบบ PNG แบบอินเตอร์เลส Adam7 หรือความลึกบิตของสีด้วยการจัดอินเด็กซ์ที่ไม่รองรับ วิธีนี้ช่วยตรวจจับภาพสเก็ตช็อตที่ว่างเปล่า การตัดต่อแคนวาสที่เห็นได้ชัด รอยเท้าของภาพหน้าจอที่ไม่ได้รับการแสดงผลเพียงพอ ความล้มเหลวในระดับพิกเซลแรก และการตั้งค่าการส่งออก PNG ของตัวแสดงผลที่ผิด โดยไม่ต้องเพิ่มความขึ้นอยู่กับเชลล์ที่เฉพาะเจาะจงกับแพลตฟอร์ม นี่ยังไม่ใช่การรู้จำป้ายระดับ OCR การตรวจจับการทับซ้อนของข้อความอย่างแม่นยำ หรือการซ่อมแซมรูปภาพโดยรักษาโครงสร้างไว้. + +เมื่อการวินิจฉัยแสดงให้เห็นว่ามีการคอมไพล์หรือการทำงาน render-smoke ล้มเหลว CLI ก็สามารถเขียนรายงานการซ่อมแซมที่รักษาโครงสร้างไว้ได้เช่นกัน: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +รายงานการซ่อมแซมใช้สคีมา `notemd.circuitikz.repair-brief.v1` และมีข้อมูลต้นทาง `CircuitSpec` ลายเซ็นโครงสร้าง ข้อมูลวินิจฉัยการคอมไพล์/การแสดงผล การแก้ไขที่อนุญาต การแก้ไขโครงสร้างที่ห้าม ขั้นตอนการตรวจสอบถัดไป และ `repairPrompt` ที่มีโครงสร้าง บทบาทของพรอมป์คือ `topology-preserving-circuitikz-repair` รายการ `diagnosticFocus` ของมันมาจากข้อมูลวินิจฉัยการคอมไพล์/การแสดงผล และ `acceptanceCriteria` ต้องการการยืนยันตัวเลือกพร้อมการคอมไพล์และการทำงาน render-smoke ใหม่ นี่คือรูปแบบการส่งต่อสำหรับวงจรการซ่อมแซมในภายหลัง ไม่ใช่การอ้างว่า Notemd ได้ทำการซ่อมแซมภาพโดยอัตโนมัติแล้ว. + +หลังจากสร้างตัวเลือกการซ่อมแซมแล้ว CLI เดียวกันนี้ก็สามารถตรวจสอบความถูกต้องของมันกับรายงานก่อนที่จะเขียนผลลัพธ์ออกมาได้: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief` จะตรวจสอบลายเซ็นโครงสร้างของตัวเลือกจากรายงาน และมีความขัดแย้งกับ `--topology-reference` การผ่านด่านนี้พิสูจน์ได้เพียงการรักษาโครงสร้างเท่านั้น ตัวเลือกยังต้องมีข้อมูลวินิจฉัยการคอมไพล์และการทำงาน render-smoke อีกด้วย. + +ผลลัพธ์ของ `--repair-brief` ยังรวมถึงหลักฐาน `repairAcceptance` พร้อมสคีมา `notemd.circuitikz.repair-acceptance.v1` ด้วย มันจะรายงานด่าน `topology-signature`, `compile-diagnostics` และ `render-smoke` เป็น `passed`, `failed` หรือ `missing` เปิดเผย `remainingChecks` และรักษาให้ `readyForVisualAcceptance` เป็น false จนกว่าการทำงานของตัวเลือกจะมีหลักฐานที่จำเป็นทั้งหมด. + +ใช้ `--repair-acceptance-output` ร่วมกับ `--repair-brief` เมื่อหลักฐานสำหรับ CI หรือการปล่อยต้องการไฟล์ JSON ที่ทนทาน: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +สำหรับหลักฐานการปล่อยหรือผู้ดูแลระบบ ให้ทำการทดสอบครอบครัว golden ที่รองรับทั้งหมดผ่านตัวทำงาน fixture รวม: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +ตัวทำงานนี้ใช้ `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json` และ `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json` เรียกใช้เส้นทางผู้ส่งออกที่ไม่ต้องใช้เชลล์เหมือนกันสำหรับแต่ละ fixture และส่งคืนรายงานรวม JSON พร้อม `compileExecution` และ `compileDiagnostics` สำหรับแต่ละ fixture ยังคงเป็นคำสั่งของผู้ดูแลระบบ ไม่ใช่ความขึ้นอยู่กับไลบรารีในระหว่างการทำงาน. + +เมื่อเครื่องของผู้ดูแลระบบยังไม่มีตัวแสดงผลที่กำหนดไว้ ให้ทำการทดสอบคำสั่ง fixture เดียวกันโดยไม่ใช้ `--compile-executable` และบันทึกด่านสภาพแวดล้อมอย่างชัดเจน: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +เส้นทางนั้นยังคงเขียน artifact ของ fixture ที่มีค่าแน่นอน `.tex` แต่จะส่งคืน `ok: false` โดยตั้ง `rendererAvailability.status` เป็น `missing-configuration` พร้อมข้อมูลวินิจฉัย `compile-executable-invalid` ให้ถือว่าเป็นหลักฐานเกี่ยวกับความพร้อมของตัวแสดงผลเท่านั้น ไม่ใช่การคอมไพล์ การทำงาน render-smoke หรือการยอมรับในแง่ของภาพ. + +### รูปร่างพรอมป์อ้างอิง Golden + +สำหรับการใช้งานในระยะสั้น ให้จัดเตรียมตัวอย่างอ้างอิงที่สามารถแสดงผลได้ก่อนที่จะขอรูปแบบวงจรที่แตกต่างกัน พรอมป์ที่มีข้อจำกัดควรรักษาส่วนนำ มาตราส่วนพิกัด สไตล์จุดยึด และข้อตกลงการเชื่อมต่อไว้: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +สำหรับอินเวอร์เตอร์ CMOS พรอมป์ควรระบุโครงสร้างที่ชัดเจนพร้อมข้อจำกัดด้านการวางแผน ไม่ใช่แค่ ‘วาดอินเวอร์เตอร์ CMOS’: + +- ให้วาง `VDD` ไว้ด้านบน วาง `GND` ไว้ด้านล่าง ใส่ข้อมูลทางด้านซ้าย และใส่ผลลัพธ์ทางด้านขวา; +- ใช้ `pmos` ด้านบน `nmos` โดยมีกัตว์และเดรนที่ใช้ร่วมกัน; +- ให้ทิ้งโหนดผลลัพธ์ไว้ที่จุดต่อของเดรนและทำเครื่องหมายด้วย `*-o`; +- ใช้แอนคอร์เรอร์ที่มีชื่อ (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) แทนการคำนวณพิกัดจากภาพ; +- หลีกเลี่ยงการใช้สายไฟที่เป็นมุมหรือตัดกัน เว้นแต่จะจำเป็นทางไฟฟ้า. + +### ความก้าวหน้าปัจจุบันและขั้นตอนถัดไป + +| พื้นที่ | สถานะปัจจุบัน | ขั้นตอนต่อไป | +|------|----------------|-----------| +| แผนภาพทั่วไป | ได้มีการนำระบบ pipeline ที่เน้นสเปคมาใช้สำหรับ Mermaid, JSON Canvas, Vega-Lite, HTML | ยังคงขยายขอบเขตการตรวจสอบเชิงความหมายต่อไป | +| รูปภาพที่สามารถแก้ไขได้ | ได้มีการกำหนดขอบเขตของ artifact สำหรับ `editable-html-svg`, Draw.io XML และ Drawnix JSON แล้ว | เพิ่ม primitive ที่มีความซับซ้อนมากขึ้นก็ต่อเมื่อการทดสอบยืนยันว่าสามารถแก้ไขได้ | +| การสนับสนุน CLI | `npm run diagram:export-artifact` สามารถส่งออก HTML/SVG, Draw.io และ Drawnix ที่สามารถแก้ไขได้จาก `DiagramSpec` เดียว | เพิ่มอุปกรณ์สร้างควันที่กำหนดเป้าหมายเฉพาะเมื่อมีการส่งมอบเป้าหมายใหม่ | +| circuitikz | `CircuitSpec -> circuitikz` ต้นแบบส่งออกแหล่งข้อมูลร่วมกัน, อินเวอร์เตอร์ CMOS, `cmos-buffer` / `cmos-buffer-v1`, `cmos-transmission-gate` / `cmos-transmission-gate-v1`, `cmos-nand2` / `cmos-nand2-v1`, และ `cmos-nor2` / `cmos-nor2-v1` แบบจำลองทองคำ, โปรเจกต์ `layoutHints.inputSide` และ `layoutHints.outputSide` เข้าสู่การจัดวางพอร์ตอินพุต/เอาต์พุตที่แน่นอนโดยไม่เปลี่ยนโครงสร้าง, ปฏิเสธการเปลี่ยนแปลงโครงสร้างผ่าน `--topology-reference`, สร้างรายงานการซ่อมแซมที่รักษาโครงสร้างผ่าน `--repair-brief-output` และสเกลา `notemd.circuitikz.repair-brief.v1`, รวมเนื้อหาการส่งต่อที่มีโครงสร้าง `repairPrompt` พร้อมกับ `diagnosticFocus`, `acceptanceCriteria` และบทบาท `topology-preserving-circuitikz-repair`, ยืนยันตัวเลือกการซ่อมแซมผ่าน `--repair-brief`, ส่งกลับหลักฐานประตู `repairAcceptance` ผ่านสเกลา `notemd.circuitikz.repair-acceptance.v1` พร้อมกับ `readyForVisualAcceptance` และ `remainingChecks`, บันทึกหลักฐานนั้นไว้ผ่าน `--repair-acceptance-output`, วิเคราะห์ไฟล์บันทึกการคอมไพล์, สามารถรันเครื่องมือแสดงผลในท้องถิ่นโดยตรงรวมถึง `--expected-artifact`, SVG `--expected-svg-text`, ตรวจสอบข้อมูลมีเดียที่เข้าถึงได้ผ่าน `aria-label`, `<title>` และ `<desc>`, การตัดองค์ประกอบ SVG ที่ซ่อน/โปร่งใส, การจำแนก `render-svg-text-path-only` / `pathOnlyGlyphUseCount` สำหรับป้ายที่มีเพียงเส้นทาง, ตรวจสอบการวางไกลฟ์ที่มีเพียงเส้นทางสำหรับ `<use href="#...">`, การวินิจฉัยการทับซ้อนของไกลฟ์ที่มีเพียงเส้นทางผ่าน `render-svg-path-glyph-overlap`, การจัดการจุดกระแสสำหรับเส้นทางปิดสำหรับ `Z/z`, ขอบเขตเส้นโค้งที่แม่นยำสำหรับจุดสุดของเส้นโค้ง A/a, ขอบเขตเส้นโค้ง Bezier ที่แม่นยำสำหรับจุดสุดของเส้นโค้ง C/S/Q/T, การตรวจสอบขอบเขตที่คำนึงถึงความหนาของเส้น SVG และการทับซ้อนของป้าย, `polyline` / `polygon` การตรวจสอบเรขาคณิตการวาดภาพ, เรขาคณิตของป้ายที่มีตำแหน่งกำหนด, เรขาคณิตข้อความที่มีตำแหน่งกำหนดโดยคำนึงถึง `text-anchor`, เรขาคณิตที่คำนึงถึงการแปลงสำหรับ SVG การทับซ้อนข้อความบนคันวาด/ขอบเขต และการตรวจสอบควันระหว่างป้ายกับภาพผ่าน `render-svg-label-overlap`, รวมถึงการตรวจสอบภาพหน้าจอ PNG ที่ไม่ว่าง/ถูกตัด/มีพื้นหลังหนา, รวมถึงอัลฟาของพาเล็ตสีแบบมีดัชนี, ตัวอย่างโปร่งใสแบบกราฟิกสีเทา/RGB tRNS, และคำแนะนำเฉพาะรูปแบบ `render-png-unsupported` สำหรับ PNG แบบ Adam7 ที่มีการเชื่อมต่อกันและข้อผิดพลาดด้านความลึกของบิตที่มีดัชนี, ผ่าน `foregroundBounds`, `foregroundDensity`, `render-png-content-clipped` และ `render-png-foreground-dense` โดยไม่ต้องวิเคราะห์เชลล์, รวมอุปกรณ์สร้างควันสำหรับผู้ดูแลระบบทั่วไปผ่าน `npm run diagram:smoke-circuitikz`, บันทึกการตั้งค่าเครื่องมือแสดงผลที่ขาดหายไปผ่าน `rendererAvailability.status: "missing-configuration"` และ `compile-executable-invalid`, และมีการวินิจฉัยตัวอย่างทั่วไป, จำนวนสรุปการวินิจฉัย, รายการประวัติที่คำนึงถึงการวินิจฉัย, และการใช้งานแบบ fallback เฉพาะแหล่งข้อมูลผ่าน `RenderArtifact.diagnostics` และโหมดการดูตัวอย่าง | เพิ่มการรู้จำป้ายในระดับ OCR สำหรับข้อความที่มีเพียงเส้นทาง, การตรวจสอบการทับซ้อนในระดับพิกเซลที่แม่นยำ, การครอบคลุมเส้นทาง SVG ที่กว้างขึ้นตามความจำเป็น, การติดตั้ง/ค้นหาเครื่องมือแสดงผลโดยอัตโนมัติก็ต่อเมื่อยังสามารถเป็นตัวเลือกได้, และการดำเนินการซ่อมแซมที่รักษาโครงสร้างโดยอัตโนมัติ | +| การผสานรวม TikZJax | เครื่องโฮสต์สำหรับการแสดงผลด้าน Obsidian | ให้เป็นตัวเลือก; อย่าทำให้ TikZJax เป็นความต้องการ runtime ของปลั๊กอินที่บังคับ | + +## การตั้งค่า + +| การกำหนดค่า | ค่าเริ่มต้น | ผลกระทบ | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | สลับระหว่างรูปแบบที่เน้นสเปคก่อนและรูปแบบเก่า Mermaid | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = Mermaid เท่านั้น; `'best-fit'` = เป้าหมายดั้งเดิม + ตัวเลือก fallback | +| `preferredDiagramIntent` | `undefined` (อัตโนมัติ) | เปลี่ยนการตรวจจับเจตนาโดยอัตโนมัติ | +| `summarizeToMermaidLanguage` | `'en'` | ภาษาเป้าหมายสำหรับป้ายแผนภาพ | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | LLM ตามงานสำหรับการสร้างแผนภาพ | +| `autoMermaidFixAfterGenerate` | (จากค่าคงที่) | รันตัวแก้ไขเก่าโดยอัตโนมัติบนผลลัพธ์ Mermaid | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | เสริมแหล่งข้อมูลด้วยความรู้จาก vault ในท้องถิ่น | + +### การเสริมความรู้ในท้องถิ่น + +เมื่อเปิดใช้งาน Notemd จะดึงข้อมูลบริบทที่เกี่ยวข้องจากฐานความรู้ภายในของ vault ของคุณ (ที่ใช้ MiniSearch) และนำมาวางไว้ด้านหน้าของ markdown ต้นฉบับ คำแนะนำสำหรับการเสริมข้อมูลระบุว่า "ใช้เพื่ออ้างอิงเท่านั้น ให้รักษาโครงสร้างหลักให้เหมือนกับบันทึกต้นฉบับ" + +### โหมดความสอดคล้อง + +- **`legacy-mermaid`**: คำสั่งทั้งหมดจะถูกส่งไปยัง Mermaid ส่วนคำสั่งที่ไม่ใช่ Mermaid (canvasMap, dataChart) จะถูกบังคับให้ใช้ `flowchart` หรือ `mindmap` โดยไม่มีลำดับการสำรอง +- **`best-fit`**: แต่ละคำสั่งจะถูกส่งไปยังจุดหมายปลายทางเฉพาะของมัน หากจุดหมายหลักล้มเหลว จะมีการเดินตามลำดับการสำรอง (เช่น Vega-Lite → Mermaid → HTML) + +## ดูตัวอย่างและส่งออก + +| การดำเนินการ | วิธีการ | +|--------|--------| +| SVG export | `mermaid.render()` / `vega.View.toSVG()` / SVG builder สำหรับ Canvas | +| ส่งออกเป็น PNG | SVG → Image → Canvas (device pixel ratio 1x-3x) → PNG ArrayBuffer | +| บันทึกต้นฉบับ | เนื้อหาของ artifact ดิบจะถูกบันทึกพร้อมกับนามสกุลไฟล์ที่เฉพาะเจาะจงกับเป้าหมาย | +| ดูตัวอย่างเฉพาะต้นฉบับ | artifact ที่ไม่ใช่แบบ inline จะแสดงเนื้อหาต้นฉบับในรูปแบบโค้ดพร้อมข้อมูลวินิจฉัย โดยไม่มีการแสดงผลผ่าน iframe | +| การตรวจสอบเชิงความหมาย | Mermaid, JSON Canvas, Vega-Lite และ HTML/SVG ที่สามารถแก้ไขได้ซึ่งได้รับการตรวจสอบโดย `scripts/diagram-semantic-verification.js` | + +**Caching**: RenderCache ใช้คีย์ JSON ที่กำหนดได้อย่างชัดเจนของ `{spec, target, theme}` การลดความซ้ำระหว่างการประมวลผลช่วยป้องกันไม่ให้มีการแสดงผลซ้ำกัน + +## เคล็ดลับ + +- **เริ่มต้นด้วยโหมด `best-fit`** — จะให้ผลลัพธ์ทางภาพที่ดีที่สุดสำหรับแต่ละประเภทของความตั้งใจ +- **ใช้โมเดลที่ทรงพลังสำหรับแผนภาพที่ซับซ้อน** — แผนภูมิการไหลและแผนภาพ ER จะได้ประโยชน์จาก GPT-4o หรือ Claude +- **เปิดใช้งานความรู้ในท้องถิ่น** สำหรับแผนภาพที่เฉพาะเจาะจงต่อด้าน — บริบทของ vault ที่เกี่ยวข้องจะช่วยเพิ่มความแม่นยำ +- **ตั้งค่า `autoMermaidFixAfterGenerate`** — มักจะเกิดข้อผิดพลาดด้านไวยากรณ์ Mermaid หากไม่มีการตั้งค่านี้ +- **The legacy fixer มีความครอบคลุม** — หากการดูตัวอย่าง Mermaid ล้มเหลว การรันคำสั่ง fixer ด้วยตนเองมักจะช่วยแก้ไขปัญหาได้ + +--- + +## ขั้นตอนต่อไป + +- 🔗 [Wiki-Links](./wiki-links) — วิธีการเชื่อมโยงแนวคิดภายในข้อความ +- 📝 [Concept Notes](./concept-notes) — ดึงข้อมูลแนวคิดเพื่อใช้เป็นสื่อต้นทางสำหรับแผนภาพ +- 🔍 [Research](./research) — เสริมแผนภาพด้วยข้อมูลจากเว็บ diff --git a/website/i18n/th/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/th/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..9dffa174 --- /dev/null +++ b/website/i18n/th/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "การวิจัยและการค้นหาบนเว็บ" +description: "ผสานการค้นหาบนเว็บเข้ากับบันทึกของคุณ" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# การวิจัยและการค้นหาบนเว็บ + +<TLDR> +**Notemd จะค้นหาบนเว็บและฝังผลลัพธ์ที่สรุปแล้ว LLM โดยตรงเข้าไปในบันทึกของคุณ** Tavily API เป็นแบ็กเอนด์การค้นหาหลัก ส่วน DuckDuckGo ทำหน้าที่เป็นตัวเลือกสำรองที่ไม่ต้องตั้งค่าใดๆ ผลลัพธ์จะถูกสรุปพร้อมการอ้างอิงแหล่งที่มาและถูกเพิ่มไว้ใต้หัวข้อ `## Research` รองรับการวิจัยในบันทึกเดียว การวิจัยในโฟลเดอร์หลายบันทึก และการเลือกรูปแบบโมเดลสำหรับขั้นตอนการสรุปผลตามงานที่ทำ + +นี่เป็นส่วนหนึ่งของ [Obsidian คู่มือการจัดการความรู้ด้วย AI](/docs/pillar-ai-knowledge) +</TLDR> + +## ภาพรวม + +การวิจัยเป็นหนึ่งในการผสานระบบที่ทรงพลังที่สุดของ Notemd โดยช่วยเชื่อมโยงกระบวนการอ่าน ค้นหา และเขียนเข้าด้วยกัน แทนที่จะต้องเปลี่ยนไปใช้เบราว์เซอร์เพื่อค้นหาคำศัพท์ที่ไม่คุ้นเคย คุณเพียงแค่เลือกคำนั้นแล้วปล่อยให้ Notemd ทำการค้นหา สรุปผล และเพิ่มข้อมูลที่ได้มา -- ทั้งหมดนี้ทำได้ภายในบันทึกของคุณเอง + +กระบวนการนี้สามารถตั้งค่าได้อย่างเต็มที่ คุณสามารถเลือกผู้ให้บริการค้นหา เลือก LLM ที่จะเขียนสรุปผล และเลือกว่าจะเพิ่มผลลัพธ์ไว้ในบันทึกที่กำลังใช้งานอยู่หรือจะเขียนลงในไฟล์แยกต่างหาก โหมดแบบชุดช่วยให้คุณสามารถวิจัยบันทึกทั้งหมดในโฟลเดอร์ได้ด้วยการคลิกเพียงครั้งเดียว + +## หลักการทำงาน + +### กระบวนการค้นหาแล้วสรุปผล + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **การดึงข้อความคำถาม** -- Notemd จะดึงคำค้นหาออกมาจากสิ่งที่คุณเลือกหรือจากชื่อบันทึก +2. **การค้นหาบนเว็บ** -- จะพยายามใช้ Tavily เป็นอันดับแรก หากไม่ได้ตั้งค่าคีย์ API ระบบจะใช้ DuckDuckGo โดยอัตโนมัติ (ไม่จำเป็นต้องมีคีย์) +3. **การสรุปผลด้วย LLM** -- ผลลัพธ์การค้นหาดิบจะถูกส่งไปยัง LLM ที่ตั้งค่าไว้ ซึ่งจะสร้างสรุปผลที่กระชับพร้อมการอ้างอิงแหล่งที่มาแบบฝังอยู่ในข้อความ +4. **การเพิ่มผลลัพธ์** -- สรุปผลที่จัดรูปแบบแล้วจะถูกเพิ่มไว้ใต้หัวข้อ `## Research` ในบันทึกที่กำลังใช้งานอยู่ + +### Tavily เทียบกับ DuckDuckGo + +| ด้าน | Tavily | DuckDuckGo | +|--------|--------|------------| +| คีย์ API | จำเป็น (มีแผนฟรีให้ใช้) | ไม่จำเป็น | +| คุณภาพของผลลัพธ์ | สูง (ออกแบบมาโดยเฉพาะสำหรับ AI) | เพียงพอสำหรับคำถามทั่วไป | +| ขีดจำกัดอัตราการใช้งาน | แผนฟรีที่ให้มากมาย | อาจมีการจำกัดความเร็ว | +| การตั้งค่า | `tavilyApiKey` ในการตั้งค่า | ไม่ต้องตั้งค่า -- ใช้รูปแบบอัตโนมัติ | + +### การวิจัยในโฟลเดอร์กลุ่ม + +คลิกขวาที่โฟลเดอร์แล้วเลือก **"Notemd: โฟลเดอร์สำหรับการวิจัย"** ไฟล์ `.md` ทุกไฟล์ในโฟลเดอร์จะถูกประมวลผลตามลำดับ (หรือพร้อมกันตามความสามารถในการทำงานที่ตั้งค่าไว้) แต่ละบันทึกจะได้รับบทสรุปการวิจัยของตัวเอง + +## การตั้งค่า + +| การกำหนดค่า | ค่าเริ่มต้น | ผลกระทบ | +|---------|---------|--------| +| `tavilyApiKey` | `''` | คีย์ Tavily API เมื่อว่าง จะใช้ DuckDuckGo เพียงอย่างเดียว | +| `researchProvider` / `researchModel` | DeepSeek | LLM ต่องานสำหรับการสรุปผลการค้นหา | +| `maxResearchContentTokens` | `4000` | งบประมาณโทเค็นสำหรับเนื้อหาที่ส่งไปยัง LLM หากเกินจะถูกตัดทอน | +| `researchAppendToNote` | `true` | เพิ่มบทสรุปลงในบันทึกต้นฉบับ หากตั้งค่าเป็น false จะสร้างไฟล์แยกต่างหาก | +| `researchLanguage` | `'en'` | ภาษาผลลัพธ์สำหรับการวิจัยที่สรุปแล้ว | + +### การแนะนำแบบจำลองต่องาน + +การวิจัยจะได้รับประโยชน์จากแบบจำลองที่สามารถจัดการเนื้อหาหลายภาษาและสร้างข้อความที่มีโครงสร้างดีได้ ลองพิจารณาดู: + +- **DeepSeek** -- ตัวเลือกมาตรฐาน ราคาไม่แพง คุณภาพดี +- **GPT-4o** -- สามารถสรุปเนื้อหาได้คุณภาพสูงกว่า แต่มีราคาสูงกว่า +- **Gemini Flash** -- ทำงานได้เร็วและราคาถูก เหมาะสำหรับคำถามทั่วไป + +## Example + +คุณกำลังอ่านบทความเกี่ยวกับ *transformer attention mechanisms* และพบคำศัพท์ที่ไม่คุ้นเคย คือ *relative positional encoding* แทนที่จะปล่อย Obsidian: + +1. ให้เน้น **"relative positional encoding"** +2. คลิกขวา --> **"Notemd: Research and summarize"** +3. Notemd จะค้นหาบนเว็บ สรุปผลลัพธ์ที่ดีที่สุด แล้วเพิ่มเติมเข้ามา: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +ตอนนี้สรุปนั้นกลายเป็นส่วนหนึ่งของคลังข้อมูลของคุณ สามารถค้นหา สร้างลิงก์ และเข้าถึงได้แม้ไม่มีอินเทอร์เน็ต + +## เคล็ดลับ + +- **ตั้งค่าคีย์ Tavily เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด** -- แม้แต่แผนฟรีก็ยังให้ความเกี่ยวข้องที่ดีกว่า DuckDuckGo ในรูปแบบดิบ +- **ใช้แบบจำลองสรุปเนื้อหาที่มีประสิทธิภาพ** -- แบบจำลองราคาถูกอาจทำให้เนื้อหาทางเทคนิคที่มีความละเอียดซับซ้อนกลายเป็นเนื้อหาที่เรียบง่าย +- **ทำการวิจัยแบบบัตช์** หลังจากอ่านครั้งแรกเสร็จ เพื่อเติมเต็มข้อมูลที่ขาดหายไปในบันทึกหลายๆ ฉบับพร้อมกัน +- **ตรวจสอบสรุปที่เพิ่มเข้ามา** -- LLM อาจสร้างข้อมูลที่ไม่ถูกต้องเกี่ยวกับแหล่งที่มาได้ ควรตรวจสอบข้ออ้างสำคัญๆ + +--- + +## ขั้นตอนต่อไป + +- [Concept Notes](./concept-notes) -- ดึงข้อมูลคีย์เวิร์ดสำคัญจากผลการวิจัยและเก็บรักษาไว้ +- [Wiki-Links](./wiki-links) -- เชื่อมโยงแนวคิดที่ได้จากการวิจัยเข้าด้วยกันในคลังข้อมูลของคุณ +- [Translation](./translation) -- แปลสรุปผลการวิจัยเป็นภาษาอื่น +- [LLM ผู้ให้บริการ](/docs/providers/overview) -- กำหนดค่าโมเดลที่ใช้สำหรับการสรุปข้อความ diff --git a/website/i18n/th/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/th/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..51e7fb21 --- /dev/null +++ b/website/i18n/th/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "การแปล" +description: "แปลบันทึกและส่วนที่เลือก" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# การแปล + +<TLDR> +**Notemd ช่วยแปลข้อความระหว่างภาษามากกว่า 21 ภาษาโดยใช้เทคโนโลยีการแปลจาก LLM** รองรับการแปลส่วนที่เลือก การแปลบันทึกทั้งหมด และการแปลโฟลเดอร์หลายไฟล์พร้อมกัน แต่ละงานแปลสามารถกำหนดผู้ให้บริการและโมเดลเฉพาะสำหรับงานนั้นได้ผ่านการตั้งค่าตามงาน สามารถกำหนดภาษาผลลัพธ์แยกจากภาษา UI ได้อย่างอิสระ ผลลัพธ์จะถูกเพิ่มท้ายหรือเขียนลงในไฟล์ใหม่ตามที่คุณต้องการ + +นี่เป็นส่วนหนึ่งของ [Obsidian คู่มือการจัดการความรู้ด้วย AI](/docs/pillar-ai-knowledge) +</TLDR> + +## ภาพรวม + +การแปลใน Notemd ไม่ใช่การค้นหาจากพจนานุกรม -- เป็นการแปลที่อาศัย LLM และเข้าใจบริบท โมเดลจะมองเห็นย่อหน้าหรือบันทึกทั้งหมด ทำให้สามารถรักษาน้ำเสียง คำศัพท์เฉพาะด้าน และโครงสร้างประโยคไว้ได้ สิ่งนี้ทำให้ได้ผลลัพธ์ที่มีคุณภาพสูงกว่าบริการแปลแบบคำต่อคำ โดยเฉพาะสำหรับงานเขียนทางเทคนิค วิชาการ และสร้างสรรค์ + +ฟีเจอร์นี้รองรับสามขอบเขต ได้แก่ ส่วนที่เลือก บันทึกที่กำลังใช้งาน และโฟลเดอร์ทั้งหมด เมื่อรวมกับการเลือกโมเดลตามงาน คุณสามารถใช้โมเดลที่เร็ว (Gemini Flash) สำหรับการแปลธรรมดา และโมเดลที่ทรงพลัง (Claude Sonnet) สำหรับเนื้อหาที่ต้องการความละเอียดอ่อน -- โดยไม่ต้องเปลี่ยนผู้ให้บริการหลักของคุณ + +## หลักการทำงาน + +### คำสั่ง Translate + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **การตรวจจับภาษาต้นทาง** -- LLM จะประมวลผลหาภาษาต้นทางจากเนื้อหา คุณไม่จำเป็นต้องระบุด้วยตนเอง +2. **การสร้างคำขอ** -- Notemd จะสร้างคำขอที่รวมภาษาปลายทาง คำบ่งชี้ด้านดоменตามต้องการ และเนื้อหาที่ต้องการแปล +3. **การแปล LLM** -- `translateProvider` / `translateModel` ที่กำหนดไว้จะประมวลผลคำขอ โมเดลจะรักษารูปแบบ markdown ลิงก์ wiki และบล็อกโค้ดไว้ +4. **ผลลัพธ์** -- ข้อความที่แปลแล้วจะถูกเพิ่มท้ายหลังข้อความต้นฉบับ หรือเขียนลงในไฟล์ใหม่ใน vault + +### คู่ภาษา + +Notemd รองรับคู่ภาษาใดก็ได้ที่ LLM ที่อยู่เบื้องหลังรองรับ คู่ภาษาที่พบบ่อย ได้แก่ + +| ภาษาต้นทาง | เป้าหมาย | คุณภาพโดยทั่วไป | +|--------|--------|----------------| +| ภาษาอังกฤษ | ภาษาจีน (แบบง่าย) | ยอดเยี่ยม | +| จีน | อังกฤษ | ยอดเยี่ยม | +| อังกฤษ | ญี่ปุ่น | ดีมาก | +| อังกฤษ | เยอรมัน / ฝรั่งเศส / สเปน | ดีมาก | +| รองรับทุกภาษา | รองรับทุกภาษา | ขึ้นอยู่กับโมเดล | + +การตั้งค่า `translateLanguage` จะควบคุม **ภาษาผลลัพธ์** โดยภาษาต้นทางจะถูกตรวจจับโดยอัตโนมัติ + +### การเลือกโมเดลตามงาน + +คุณภาพการแปลจะแตกต่างกันอย่างมากตามโมเดล Notemd ช่วยให้คุณสามารถกำหนดโมเดลเฉพาะสำหรับการแปลได้ + +| โมเดล | ความเร็ว | Quality | ต้นทุน | เหมาะสำหรับ | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | เร็ว | ดี | ต่ำ | ใช้งานทั่วไปปริมาณมาก | +| `gpt-4o-mini` | เร็ว | ดี | ต่ำ | การค้นหาอย่างรวดเร็ว | +| `deepseek-chat` | ปานกลาง | ดี | ต่ำมาก | สำหรับงบประมาณหลายภาษา | +| `claude-3-5-sonnet` | ปานกลาง | ยอดเยี่ยม | ปานกลาง | เชิงเทคนิค / วิชาการ | +| `gpt-4o` | ปานกลาง | ยอดเยี่ยม | ปานกลาง | ข้อความที่ต้องใส่ใจรายละเอียด | + +### การแปลโฟลเดอร์แบบชุด + +คลิกขวาที่โฟลเดอร์แล้วเลือก **"Notemd: Translate folder"** เพื่อแปลบันทึกทั้งหมดในโฟลเดอร์นั้น แต่ละไฟล์จะถูกประมวลผลแยกกัน การตั้งค่าความพร้อมใช้งานพร้อมกันจะควบคุมจำนวนไฟล์ที่ถูกแปลพร้อมกัน + +## การตั้งค่า + +| การกำหนดค่า | ค่าเริ่มต้น | ผลกระทบ | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | ผู้ให้บริการโดยเฉพาะสำหรับงานแปล | +| `translateLanguage` | `'en'` | ภาษาผลลัพธ์ที่ต้องการ | +| `translationAppendToNote` | `true` | เพิ่มข้อความที่แปลแล้วไว้ด้านล่างของข้อความต้นฉบับ หากตั้งค่าเป็น false จะสร้างไฟล์ใหม่ | +| `batchConcurrency` | `3` | จำนวนไฟล์ที่ถูกประมวลผลพร้อมกันในระหว่างการแปลแบบชุด | + +## Example + +คุณกำลังอ่านบันทึกวิจัยภาษาจีนและต้องการเวอร์ชันภาษาอังกฤษ: + +1. เปิดบันทึก +2. คลิกขวา --> **"Notemd: Translate current file"** +3. Notemd จะตรวจจับภาษาจีน แปลเป็นภาษาเป้าหมายที่คุณตั้งค่าไว้ (ภาษาอังกฤษ) และเพิ่มข้อความดังนี้: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +ข้อความภาษาจีนต้นฉบับจะยังคงอยู่ด้านบนของข้อความที่แปล ส่วนหัว `## Translation` จะเก็บทั้งสองเวอร์ชันไว้ในไฟล์เดียวกันเพื่อให้สามารถอ้างอิงได้ง่าย + +## เคล็ดลับ + +- **ใช้ Gemini Flash สำหรับการแปลจำนวนมาก** -- เป็นตัวเลือกที่เร็วที่สุดและถูกที่สุดสำหรับการแปลโฟลเดอร์ขนาดใหญ่ +- **รักษาลิงก์วิกิไว้** -- คำสั่งของ Notemd ระบุให้ LLM รักษา `[[wiki-links]]` ให้คงสภาพเดิมในการแปล ควรตรวจสอบอีกครั้งหลังแปล เนื่องจากโมเดลบางตัวอาจทำให้ลิงก์เหล่านั้นหายไป +- **กำหนดภาษาผลลัพธ์อย่างชัดเจน** -- การตรวจจับภาษาโดยอัตโนมัติใช้ได้กับภาษาต้นทาง แต่ควรกำหนด `translateLanguage` เสมอเพื่อหลีกเลี่ยงความคลุมเครือเกี่ยวกับภาษาปลายทาง +- **แปลบันทึกแนวคิดแบบกลุ่ม** -- หากโฟลเดอร์แนวคิดของคุณอยู่ในภาษาหนึ่งและคุณต้องการให้อยู่ในอีกภาษาหนึ่ง การแปลในระดับโฟลเดอร์จะจัดการเรื่องนี้ได้ในขั้นตอนเดียว + +--- + +## ขั้นตอนต่อไป + +- [Research](./research) -- ค้นหาและสรุปเนื้อหาในภาษาใดก็ได้ จากนั้นจึงแปลผลลัพธ์ +- [Workflows](./workflows) -- ทำการแปลต่อเนื่องพร้อมการเชื่อมโยงวิกิหรือการดึงข้อมูลแนวคิด +- [Batch Processing](/docs/advanced/batch-processing) -- การทำงานพร้อมกันและพฤติกรรมการเขียนทับสำหรับการดำเนินการในโฟลเดอร์ +- [LLM Providers](/docs/providers/overview) -- เลือกโมเดลที่ดีที่สุดสำหรับคู่ภาษาของคุณ diff --git a/website/i18n/th/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/th/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..44f9aa68 --- /dev/null +++ b/website/i18n/th/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "Wiki-Links" +description: "การสร้างลิงก์วิกิอัตโนมัติสำหรับแนวคิดหลัก" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# Wiki-Links + +<TLDR> +**Notemd จะเพิ่ม `[[wiki-links]]` เข้าไปในแนวคิดหลักในบันทึกของคุณโดยอัตโนมัติ** LLM จะอ่านเนื้อหาของคุณ เพื่อระบุคำสำคัญในบริบท และแทรกลิงก์วิกิแบบ Obsidian ที่แต่ละจุดที่ปรากฏ นอกจากนี้ยังสามารถสร้างไฟล์บันทึกแนวคิดพร้อมลิงก์ย้อนกลับได้ตามต้องการ รองรับการลดคำพ้องความหมาย การรักษาความสมบูรณ์ของลิงก์เมื่อมีการเปลี่ยนชื่อหรือลบ และโหมดการดึงข้อมูลเพียงอย่างเดียว (ไม่มีการแก้ไขไฟล์) ต่างจาก Auto Link ที่เปรียบเทียบเฉพาะชื่อบันทึกที่มีอยู่ Notemd ใช้ AI เพื่อระบุแนวคิดใหม่และสร้างบันทึกที่สอดคล้องกัน สิ่งนี้เป็นส่วนหนึ่งของ [Obsidian AI Knowledge Management Guide](/docs/pillar-ai-knowledge) +</TLDR> + +## ภาพรวม + +การสร้างลิงก์วิกิเป็นคุณสมบัติหลักของ Notemd โดยจะเปลี่ยนข้อความธรรมดาให้กลายเป็นกราฟความรู้ที่เชื่อมต่อกันผ่านวิธีต่อไปนี้: + +1. **วิเคราะห์บันทึกของคุณ** ด้วย LLM +2. **ระบุแนวคิดหลัก** (คำ บุคคล วิธีการ ทฤษฎี) +3. **แทรก `[[wiki-links]]`** ที่แต่ละจุดที่ปรากฏ +4. **สร้างบันทึกแนวคิด** (ตามต้องการ) พร้อมลิงก์ย้อนกลับ + +## หลักการทำงาน + +### ขั้นตอน + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### Example + +**ก่อนหน้านี้:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**หลังจากนั้น:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## วิธีการใช้งาน + +### รูปแบบพื้นฐาน: เพิ่มลิงก์ให้กับบันทึกปัจจุบัน + +1. เปิดบันทึก +2. คลิกขวาในโปรแกรมแก้ไข → **“Process file (add links)”** +3. รอสักครู่ +4. ตอนนี้แนวคิดต่างๆ ถูกเชื่อมต่อกันแล้ว! + +### การประมวลผลแบบกลุ่ม: ประมวลผลบันทึกหลายรายการ + +1. คลิกขวาที่โฟลเดอร์ใน File Explorer +2. เลือก **"Notemd: Process folder (add links)"** +3. การตั้งค่า: + - ความสอดคล้องพร้อมกัน (จำนวนไฟล์ที่ประมวลผลพร้อมกัน) + - เขียนทับลิงก์ที่มีอยู่ (ใช่/ไม่ใช่) +4. คลิก **Process** + +### การเลือก: ลิงก์ข้อความที่กำหนด + +1. เน้นข้อความที่จะประมวลผล +2. คลิกขวา → **"Process selection (add links)"** +3. จะมีการวิเคราะห์เฉพาะส่วนที่ถูกเน้นเท่านั้น + +## Notemd เทียบกับ Auto Link + +Obsidian มีวิธีการสร้างลิงก์ wiki อัตโนมัติสองแบบดังนี้: + +| | **Auto Link** | **Notemd** | +|--|---------------|-------------| +| แหล่งที่มาของลิงก์ | ชื่อบันทึกที่มีอยู่ใน vault | แนวคิดที่ LLM ระบุไว้ในเนื้อหา | +| สามารถสร้างลิงก์สำหรับแนวคิดใหม่ได้ | ไม่ได้ — ชื่อต้องมีอยู่แล้ว | ได้ — AI จะระบุแนวคิดและสร้างบันทึก | +| การจัดการคำพ้องความหมาย | ไม่ | ได้ — การยับยั้งคำพ้องความหมาย | +| การสร้างบันทึกแนวคิด | ไม่ | ได้ — พร้อมลิงก์ย้อนกลับและการลบซ้ำ | +| การประมวลผลแบบชุด | ไม่ได้ (ไฟล์เดียว) | ได้ (ระดับโฟลเดอร์) | +| การส่งต่อแบบจำลองตามงาน | ไม่ | ใช่ | + +**Auto Link** ทำการจับคู่กับชื่อ: หากมีบันทึกที่ชื่อว่า "Machine Learning" อยู่ มันจะห่อหุ้มการปรากฏตัวต่างๆ ด้วย `[[Machine Learning]]` หากไม่มีบันทึกนั้นอยู่ ก็จะไม่มีอะไรเกิดขึ้น + +**Notemd** ควบคุมโดย AI: LLM จะอ่านเนื้อหาของคุณ เข้าใจบริบท ระบุแนวคิดที่ *ควร* ถูกลิงก์ — แม้ว่าจะยังไม่มีบันทึกอยู่ก็ตาม — และสร้างทั้งลิงก์และบันทึกแนวคิด + +## คุณสมบัติ + +### การยับยั้งคำพ้องความหมาย + +**ปัญหา:** "transformer", "transformers", "Transformer architecture" → 3 แนวคิดที่แยกจากกัน + +**วิธีแก้ไข:** Notemd จะตรวจจับเนื้อหาที่เกือบจะซ้ำกันและใช้รูปแบบมาตรฐาน + +**การตั้งค่า:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### ความสมบูรณ์ของลิงก์ + +**เมื่อคุณเปลี่ยนชื่อบันทึกแนวคิด:** +- ลิงก์ใน wiki จะอัปเดตโดยอัตโนมัติ (Obsidian เป็นฟีเจอร์หลัก) +- ลิงก์ย้อนกลับยังคงสมบูรณ์ + +**เมื่อคุณลบบันทึกแนวคิด:** +- ลิงก์ยังคงอยู่แต่จะแสดงเป็น "unlinked mentions" +- คุณสามารถสร้างขึ้นใหม่จากการปรากฏใดก็ได้ + +### โหมดการสกัดข้อมูลแบบบริสุทธิ์ + +**สกัดแนวคิดโดยไม่ต้องแก้ไขเอกสารต้นฉบับ:** + +1. คลิกขวา → **"Extract concepts (no linking)"** +2. จะมีการสร้างบันทึกแนวคิดขึ้นมา +3. เอกสารต้นฉบับจะไม่ถูกเปลี่ยนแปลง + +กรณีการใช้งาน: การประมวลผลเนื้อหาที่อ่านได้เท่านั้นหรือต้นฉบับสุดท้าย. + +## การสร้างบันทึกแนวคิด + +### การสร้างโดยอัตโนมัติ + +**เมื่อเปิดใช้งาน (ค่าเริ่มต้น) Notemd จะสร้าง:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### การตั้งค่า + +**โฟลเดอร์ผลลัพธ์:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**โครงสร้างแบบลำดับชั้น:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**แม่แบบ:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## ตัวเลือกขั้นสูง + +### หน้าต่างบริบท + +**จำนวนข้อความรอบข้างที่จะส่ง:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +ยิ่งมาก ความแม่นยำยิ่งดี แต่ค่าใช้จ่ายก็สูงขึ้น. + +### จำนวนครั้งที่เกิดขึ้นขั้นต่ำ + +**เชื่อมโยงเฉพาะแนวคิดที่ปรากฏหลายครั้งเท่านั้น:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +ตั้งค่าที่ 2 หรือ 3 เพื่อให้มุ่งเน้นไปที่หัวข้อที่เกิดซ้ำ. + +### รูปแบบที่จะตัดออก + +**ข้ามคำบางคำ:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +ช่วยป้องกันไม่ให้เกิดการเชื่อมโยงคำทั่วไปมากเกินไป. + +### คำสั่งกำหนดเอง + +**เปลี่ยนคำสั่ง LLM ตามค่าเริ่มต้น:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +ปรับแต่งให้เหมาะกับความต้องการเฉพาะด้าน (เช่น "มุ่งเน้นไปที่ศัพท์ทางการแพทย์"). + +## เคล็ดลับและแนวทางปฏิบัติที่ดีที่สุด + +### ✅ ควรทำ + +- **จัดการบันทึกที่มีความยาวมากกว่า 100 คำ** — บันทึกสั้นๆ ให้แนวคิดน้อย +- **ใช้โมเดลที่ทรงพลัง** เพื่อการระบุแนวคิดที่ดีขึ้น (GPT-4o, Claude) +- **ตรวจสอบก่อนยอมรับ** — ตรวจสอบว่าลิงก์ที่แนะนำมีเหตุผล +- **สร้างแบบค่อยเป็นค่อยไป** — จัดการบันทึก 5-10 บันทึก ตรวจสอบแผนภาพ ปรับการตั้งค่า + +### ❌ ไม่ควรทำ + +- **เชื่อมโยงมากเกินไป** — ไม่ใช่ทุกคำนามที่ต้องมีลิงก์ +- **จัดการต้นฉบับซ้ำๆ** — แนวคิดอาจเปลี่ยนแปลง รอจนกว่าจะมั่นคง +- **เพิกเฉยคำพ้องความหมาย** — เปิดใช้งานการยับยั้งเพื่อหลีกเลี่ยง "ML" กับ "Machine Learning" + +## ประสิทธิภาพ + +### ความเร็ว + +| ขนาดบันทึก | GPT-4o-mini | Claude Sonnet | Ollama (local) | +|-----------|-------------|---------------|----------------| +| 500 คำ | 2-3 วินาที | 3-5 วินาที | 5-10 วินาที | +| 2000 คำ | 5-8 วินาที | 10-15 วินาที | 20-40 วินาที | +| มากกว่า 5000 คำ | แบ่งเป็นชิ้น (การเรียกหลายครั้ง) | แบ่งเป็นส่วนๆ | แบ่งเป็นส่วนๆ | + +### การประมาณค่าใช้จ่าย + +**ตัวอย่าง: บันทึก 1,000 คำโดยใช้ GPT-4o-mini** +- อินพุต: ประมาณ 1500 โทเคน +- ผลลัพธ์: ประมาณ 200 โทเคน +- ค่าใช้จ่าย: ~ + +**ประมวลผลบันทึก 100 รายการพร้อมกัน:** ประมาณ $0.10 + +## การแก้ไขปัญหา + +### ไม่มีลิงก์เพิ่มเติม + +**ตรวจสอบ:** +1. LLM การเรียกใช้งานสำเร็จ (Settings → Diagnostics) +2. บันทึกนี้มีเนื้อหาเพียงพอ (>50 คำ) +3. แนวคิดเหล่านี้เป็นเชิงเทคนิค/เฉพาะเจาะจง (ไม่ใช่เพียงสรรพนาม) + +**ลองดู:** +- ใช้โมเดลที่มีประสิทธิภาพสูงกว่า +- เพิ่มหน้าต่างบริบท +- ตรวจสอบความถูกต้องของคีย์ API + +### ลิงก์มากเกินไป + +**วิธีแก้ไข:** +1. เพิ่มจำนวนครั้งขั้นต่ำ (2 หรือ 3) +2. เพิ่มคำทั่วไปลงในรายการที่จะตัดออก +3. ใช้โมเดลที่ไม่รุนแรงเกินไป + +### แนวคิดที่ผิดถูกเชื่อมโยงเข้าด้วยกัน + +**ข้อแก้ไข:** +1. ใช้พรอมป์ที่กำหนดเองเพื่อความเฉพาะเจาะจงของโดเมน +2. เปิดใช้งานการยับยั้งคำพ้องความหมาย +3. ตรวจสอบและถอดการเชื่อมโยงด้วยตนเอง + +### ลิงก์จะขาดหลังจากการเปลี่ยนชื่อ + +**นี่คือพฤติกรรมปกติ Obsidian ครับ.** + +เพื่ออัปเดตลิงก์ทั้งหมด: +1. เปลี่ยนชื่อบันทึกแนวคิด +2. Obsidian จะอัปเดต `[[old]]` เป็น `[[new]]` โดยอัตโนมัติ + +--- + +## ขั้นตอนต่อไป + +- 📖 [บันทึกแนวคิด](./concept-notes) — ศึกษาอย่างลึกซึ้งเกี่ยวกับการสร้างบันทึกแนวคิด +- 🔍 [การผสานการวิจัย](./research) — รวมการเชื่อมโยงเข้ากับการวิจัยบนเว็บ +- 🎨 [แผนภาพ](./diagrams) — แสดงกราฟความรู้ของคุณในรูปแบบภาพ diff --git a/website/i18n/th/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/th/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..740ab960 --- /dev/null +++ b/website/i18n/th/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "กระบวนการทำงาน" +description: "เชื่อมต่องานหลายอย่างด้วยปุ่มคลิกเดียว" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# กระบวนการทำงาน + +<TLDR> +**Notemd วิธีการทำงานแบบนี้จะเชื่อมต่องานหลายอย่างเข้าด้วยกันให้กลายเป็นการดำเนินการเพียงคลิกเดียว** คุณสามารถกำหนดลำดับการทำงานเช่น `add-links > extract-concepts > research > diagram` ได้โดยใช้ DSL ที่เรียบง่าย วิธีการทำงานเหล่านี้จะปรากฏเป็นปุ่มที่แถบด้านข้าง ซึ่งจะทำการดำเนินการตามลำดับทั้งหมดในโน้ตหรือโฟลเดอร์ปัจจุบัน มีวิธีการทำงานที่กำหนดไว้ล่วงหน้ามาให้ และคุณสามารถสร้างวิธีการทำงานเฉพาะตัวขึ้นมาได้ในส่วนการตั้งค่า แต่ละขั้นตอนจะมีการกำหนดค่าโมเดลสำหรับแต่ละงานแยกกัน + +นี่เป็นส่วนหนึ่งของ [Obsidian คู่มือการจัดการความรู้ด้วย AI](/docs/pillar-ai-knowledge) +</TLDR> + +## ภาพรวม + +กระบวนการทำงานแบบนี้ช่วยขจัดความยุ่งยากจากการทำงานแต่ละขั้นตอนทีละอย่าง แทนที่จะต้องคลิกขวาสี่ครั้งเพื่อเพิ่มลิงก์ ดึงข้อมูลแนวคิด ค้นหาคำศัพท์ที่ไม่คุ้นเคย และสร้างแผนภาพ คุณเพียงแค่กดปุ่มบนแถบด้านข้างเพียงปุ่มเดียว แล้วกระบวนการทั้งหมดก็จะดำเนินการโดยอัตโนมัติ Notemd จะจัดการเรื่องลำดับการทำงาน การแพร่กระจายข้อผิดพลาด และการรายงานความก้าวหน้าให้ + +วิธีการทำงานจะถูกกำหนดไว้ใน DSL แบบเบา (ภาษาเฉพาะด้าน) โดยจะอยู่ในส่วนการตั้งค่า ปรากฏเป็นปุ่มที่สามารถคลิกได้ในแถบข้าง Obsidian และสามารถนำไปใช้กับโน้ตปัจจุบันหรือโฟลเดอร์ทั้งหมดได้ + +## หลักการทำงาน + +### ท่อส่งการดำเนินการไวร์คัฟลโหว์ + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **Parse** -- สตริง DSL จะถูกแบ่งตาม `>` (หรือ `>`) เป็นรายการที่เรียงลำดับของรหัสประจำงาน +2. **Resolve** -- ตัวระบุแต่ละตัวจะถูกเชื่อมโยงไปยังคำสั่งภายใน (add-links, extract-concepts, research, translate, diagram ฯลฯ) +3. **Execute** -- ขั้นตอนต่างๆ จะทำงานต่อเนื่องกัน โดยแต่ละขั้นตอนจะใช้ผู้ให้บริการและโมเดลที่กำหนดไว้สำหรับแต่ละงาน +4. **การจัดการข้อผิดพลาด** -- หากขั้นตอนใดขั้นตอนหนึ่งล้มเหลว กระบวนการทำงานจะยุติลงหรือดำเนินต่อไปยังขั้นตอนถัดไป ขึ้นอยู่กับนโยบายการจัดการข้อผิดพลาดของคุณ +5. **เสร็จสิ้น** -- การแจ้งเตือนแบบโทสต์จะรายงานความสำเร็จหรือแสดงรายการขั้นตอนที่ล้มเหลว + +### รูปแบบ DSL + +วิธีการทำงานถูกนิยามให้เป็นลำดับของรหัสประจำงานที่แยกด้วย `>` + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**รหัสประจำงานที่มีให้เลือก:** + +| ตัวระบุ | การดำเนินการ | +|------------|--------| +| `process-current-add-links` | เพิ่มลิงก์วิกิเข้าไปในบันทึกที่กำลังใช้งาน | +| `extract-concepts-current` | ดึงแนวคิดออกจากบันทึกที่กำลังใช้งาน | +| `research-and-summarize` | ค้นคว้าข้อความหรือชื่อบันทึกที่เลือกไว้ | +| `process-current-translate` | แปลบันทึกที่กำลังใช้งาน | +| `summarize-to-mermaid` | สร้างแผนภาพจากบันทึกที่กำลังใช้งาน | +| `generate-from-title` | สร้างเนื้อหาจากชื่อบันทึก | +| `extract-original-text` | ดึงข้อความต้นฉบับ (สำหรับ OCR / เนื้อหาที่สแกน) | + +**รูปแบบระดับโฟลเดอร์** ให้แทนที่ `current` ด้วย `folder` ในชื่อตัวระบุ. + +### กระบวนการทำงานที่กำหนดไว้ล่วงหน้าเทียบกับกระบวนการทำงานที่ปรับแต่งเอง + +Notemd มาพร้อมกับกระบวนการทำงานที่เตรียมไว้สำหรับรูปแบบทั่วไปดังนี้: + +| กระบวนการทำงาน | ลำดับการทำงาน | กรณีการใช้งาน | +|----------|-------|----------| +| **การดึงข้อมูลด้วยการคลิกเดียว** | add-links > extract-concepts > research | ประมวลผลบทความวิจัยในครั้งเดียว | +| **สายการประมวลผลแบบเต็มรูปแบบ** | add-links > extract-concepts > research > diagram | การดึงข้อมูลความรู้อย่างสมบูรณ์พร้อมการแสดงผลในรูปแบบกราฟิก | +| **Translate + Link** | translate > add-links | แปลแล้วเชื่อมโยงแนวคิดเป็นภาษาเป้าหมาย | + +**Custom workflows** จะถูกสร้างขึ้นในส่วนการตั้งค่า: + +1. เปิด **Settings** --> **Notemd** --> **Workflows** +2. คลิก **"Add Workflow"** +3. ป้อนลำดับ DSL (เช่น `process-current-add-links>extract-concepts-current`) +4. ตั้งชื่อแสดงผล (เช่น "Quick Link + Extract") +5. ปุ่มใหม่จะปรากฏในแถบด้านข้างทันที + +## การตั้งค่า + +| การกำหนดค่า | ค่าเริ่มต้น | ผลกระทบ | +|---------|---------|--------| +| `workflows` | ชุดที่กำหนดไว้ล่วงหน้า | อาร์เรย์ของคำนิยามกระบวนการทำงาน (ชื่อ + DSL) | +| `workflowContinueOnError` | `true` | หากขั้นตอนปัจจุบันล้มเหลวให้ไปที่ขั้นตอนถัดไป | +| `workflowShowProgress` | `true` | แสดงข้อความแจ้งความคืบหน้าหลังจากแต่ละขั้นตอนเสร็จสิ้น | + +### Per-Task Models in Workflows + +แต่ละขั้นตอนในวิธีการทำงานจะใช้การกำหนดค่าโมเดลต่องานของตัวเอง คุณไม่จำเป็นต้องระบุโมเดลไว้ใน DSL เอง ลำดับการแก้ไขคือ: + +1. ผู้ให้บริการ/โมเดลต่องาน หาก `useMultiModelSettings` อยู่บนนั้น +2. `activeProvider` ระดับโลก ในกรณีอื่น + +นั่นหมายความว่า `add-links` สามารถทำงานบน DeepSeek ในขณะที่ `research` ทำงานบน GPT-4o -- ทั้งหมดอยู่ภายในวิธีการทำงานเดียวกัน + +## Example + +คุณเพิ่งนำ PDF ของบทความด้านการเรียนรู้ของเครื่องเข้ามาใน vault ของคุณและต้องการการสกัดความรู้อย่างเต็มที่: + +1. เปิดบันทึกที่นำเข้ามา +2. คลิกปุ่มแถบข้าง **"Full Pipeline"** +3. Notemd จะทำการดำเนินการดังนี้: + - **ขั้นตอนที่ 1**: เพิ่มลิงก์ wiki -- `[[attention mechanism]]`, `[[transformer]]` ฯลฯ + - **ขั้นตอนที่ 2**: สกัดแนวคิด -- สร้างบันทึกแนวคิดในโฟลเดอร์แนวคิดของคุณ + - **ขั้นตอนที่ 3**: ทำการวิจัย -- สรุปแหล่งข้อมูลบนเว็บสำหรับคำสำคัญ + - **ขั้นตอนที่ 4**: สร้างแผนภาพ -- สร้าง mindmap แบบ Mermaid ของโครงสร้างบทความ +4. หลังจากประมาณ 30 วินาที บันทึกของคุณจะมีลิงก์ มีบันทึกแนวคิด มีเนื้อหาการวิจัยที่เพิ่มเข้ามา และมีไฟล์แผนภาพที่ถูกบันทึกไว้ + +ทั้งหมดนี้ทำได้ด้วยการคลิกเพียงครั้งเดียว. + +## เคล็ดลับ + +- **เริ่มต้นด้วยวิธีการทำงานที่กำหนดไว้ล่วงหน้า** -- ซึ่งครอบคลุมรูปแบบที่พบบ่อยที่สุด จงปรับแต่งเฉพาะเมื่อคุณต้องการลำดับที่แตกต่างกันเท่านั้น. +- **เปิดใช้งาน `workflowContinueOnError`** -- หากขั้นตอนสร้างแผนภาพล้มเหลว ไม่ควรทำให้กระบวนการทั้งหมดหยุดลง +- **ใช้วิธีการทำงานกับโฟลเดอร์** สำหรับการประมวลผลแบบจำนวนมาก -- คลิกขวาที่โฟลเดอร์ เลือกวิธีการทำงาน แล้วบันทึกทุกตัวจะได้รับการประมวลผล. +- **ตั้งชื่อวิธีการทำงานให้ชัดเจน** -- พื้นที่ด้านข้างมีจำกัด ควรใช้ชื่อที่สั้นและบ่งบอกการดำเนินการ เช่น "Quick Extract" หรือ "Translate + Link". + +--- + +## ขั้นตอนต่อไป + +- [Research](./research) -- ทำความเข้าใจก่อนว่าขั้นตอนการวิจัยทำอะไรบ้าง ก่อนที่จะเพิ่มเข้าไปในวิธีการทำงาน +- [Wiki-Links](./wiki-links) -- ฟีเจอร์การเชื่อมโยงหลักที่ใช้ในวิธีการทำงานส่วนใหญ่ +- [Concept Notes](./concept-notes) -- การดึงข้อมูลแนวคิดเป็นขั้นตอนหนึ่งของวิธีการทำงาน +- [Batch Processing](/docs/advanced/batch-processing) -- การทำงานพร้อมกันและการรายงานความคืบหน้าสำหรับวิธีการทำงานกับโฟลเดอร์ diff --git a/website/i18n/th/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/th/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..8f9d16b6 --- /dev/null +++ b/website/i18n/th/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "การตั้งค่า" +description: "กำหนดค่าและตัวเลือกการตั้งค่า Notemd" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# การตั้งค่า + +<TLDR> +**การตั้งค่า Notemd ครอบคลุม 6 หัวข้อหลัก:** (1) ผู้ให้บริการ LLM และคีย์ API, (2) การเลือกโมเดลตามงาน, (3) เส้นทางและแม่แบบผลลัพธ์, (4) ภาษา UI และภาษาผลลัพธ์, (5) บริการค้นหา (Tavily/DuckDuckGo), (6) วิธีการทำงานแบบกำหนดเอง ค่าทั้งหมดอยู่ที่ Obsidian Settings → Notemd การเปลี่ยนแปลงจะมีผลทันที. +</TLDR> + +## ภาพรวมของการตั้งค่า + +การเข้าถึง: **Obsidian Settings (⚙️) → Notemd** + +### หัวข้อหลัก + +1. **การตั้งค่าผู้ให้บริการ** — คีย์ API, URLs พื้นฐาน, โมเดล +2. **การตั้งค่างาน** — การเลือกโมเดลตามงาน +3. **การตั้งค่าผลลัพธ์** — ที่อยู่สำหรับบันทึกไฟล์ที่สร้างขึ้น +4. **การตั้งค่าภาษา** — UI และภาษาผลลัพธ์ +5. **การผสานรวมการค้นหา** — การตั้งค่า Tavily/DuckDuckGo +6. **วิธีการทำงาน** — ลำดับปุ่มแบบกำหนดเอง +7. **ขั้นสูง** — การวินิจฉัย การประมวลผลแบบชุด การแบ่งส่วน + +--- + +## 1. การตั้งค่าผู้ให้บริการ + +### การเพิ่มผู้ให้บริการ + +1. **เลือกผู้ให้บริการ** จากรายการแบบดรอปดาวน์ (มีให้เลือกมากกว่า 30 รายการ) +2. **ป้อนคีย์ API** +3. **ตัวเลือก**: ตั้งค่าฐาน URL ที่กำหนดเอง (สำหรับพร็อกซี/เกตเวย์) +4. **คลิก "Get Model List"** เพื่อตรวจสอบการเชื่อมต่อ +5. **เลือกโมเดลเริ่มต้น** + +### ผู้ให้บริการทั่วไป + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Local) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### ผู้ให้บริการหลายราย + +คุณสามารถกำหนดค่าผู้ให้บริการหลายรายและสลับระหว่างกันตามแต่ละงานได้: +- **ผู้ให้บริการหลัก**: ใช้เป็นทางเลือกสำรอง +- **ผู้ให้บริการเฉพาะงาน**: ใช้แทนสำหรับงานเฉพาะ + +--- + +## 2. โมเดลเฉพาะงาน + +กำหนดค่าโมเดลที่แตกต่างกันสำหรับงานต่างๆ เพื่อปรับปรุงต้นทุน/คุณภาพ: + +### ประเภทของงาน + +| งาน | โมเดลเริ่มต้น | วัตถุประสงค์ | +|------|--------------|---------| +| **การเชื่อมโยง** | ผู้ให้บริการหลัก | ระบุแนวคิดสำหรับลิงก์ wiki | +| **การสร้างแนวคิด** | ผู้ให้บริการหลัก | ดึงข้อมูลและอธิบายแนวคิด | +| **การวิจัย** | ผู้ให้บริการหลัก | สรุปผลการค้นหาบนเว็บ | +| **การแปล** | ผู้ให้บริการหลัก | แปลข้อความ | +| **การสร้างแผนภาพ** | ผู้ให้บริการหลัก | สร้างแผนภาพ Mermaid/Canvas | + +### ตัวอย่าง: การตั้งค่าเพื่อลดต้นทุน + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### วิธีการตั้งค่า + +1. **Settings → Notemd → Task Settings** +2. สำหรับแต่ละงาน ให้เลือก: + - ✅ **ใช้ผู้ให้บริการหลัก** (ค่าเริ่มต้น) + - 🔄 **ใช้ผู้ให้บริการที่กำหนดเอง** → เลือกผู้ให้บริการ + โมเดล + +--- + +## 3. การตั้งค่าผลลัพธ์ + +### การแสดงข้อความสรุปแนวคิด + +**ที่เก็บบันทึกแนวคิดใหม่:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**แม่แบบ:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### ตัวเลือกโครงสร้างโฟลเดอร์ + +**ตัวเลือกที่ 1: แบบแบน (แนวคิดทั้งหมดอยู่ในโฟลเดอร์เดียว)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**ตัวเลือกที่ 2: แบบลำดับชั้น (ตามโฟลเดอร์ต้นทาง)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +กำหนดค่า: **Settings → Output → Use Hierarchical Folders** + +### ผลลัพธ์รูปแบบแผนภาพ + +**ที่เก็บแผนภาพ:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**รูปแบบ:** +- `.mmd` (Mermaid source) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. การตั้งค่าภาษา + +### UI ภาษา + +**ภาษาของอินเทอร์เฟซ** (ปุ่ม, เมนู, กล่องโต้ตอบ): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +รองรับ: ภาษาอังกฤษ, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Русский, العربية และอื่นๆ. + +### ภาษาสำหรับผลลัพธ์ + +**ภาษาของเนื้อหาที่สร้างขึ้น** (บันทึกแนวคิด สรุปผลการวิจัย): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**กรณีการใช้งาน:** ภาษาจีน UI ร่วมกับภาษาอังกฤษสำหรับการวิจัยแบบสองภาษา. + +### เป้าหมายการแปล + +**ภาษาเป้าหมายเริ่มต้น** สำหรับงานแปล: + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. การผสานรวมการค้นหา + +### Tavily (แนะนำ) + +**บริการค้นหาที่ปรับให้เหมาะกับ AI:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +Get key: [tavily.com](https://tavily.com/) + +**คุณสมบัติ:** +- ผลลัพธ์คุณภาพสูง +- สรุปผลที่ปรับให้เหมาะกับ AI +- การอ้างอิงแหล่งที่มา + +### DuckDuckGo (ทดลอง) + +**ไม่จำเป็นต้องมีคีย์ API:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**หมายเหตุ:** คุณภาพต่ำ ไม่สามารถปรับแต่งได้. + +--- + +## 6. การกำหนดค่ากระบวนการทำงาน + +### การสร้างกระบวนการทำงานแบบกำหนดเอง + +**กระบวนการทำงานจะเชื่อมต่องานหลายอย่างเข้าด้วยกันผ่านปุ่มเดียว** + +1. **การตั้งค่า → กระบวนการทำงาน → เพิ่มกระบวนการทำงาน** +2. **ชื่อ**: "Paper Analysis Flow" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **บันทึก** + +ปุ่มใหม่จะปรากฏขึ้นในแถบด้านซ้าย + +### ไวยากรณ์ DSL + +**รูปแบบ:** `action1>action2>action3` + +**การดำเนินการที่มีให้:** +- `process-current-add-links` — เพิ่มลิงก์ wiki ลงในบันทึกปัจจุบัน +- `extract-concepts-current` — สร้างบันทึกแนวคิด +- `research-and-summarize` — ค้นหาข้อมูลบนเว็บพร้อมสรุป +- `translate-current` — แปลบันทึกปัจจุบัน +- `summarize-as-mermaid` — สร้างแผนภูมิ Mermaid +- `process-folder-add-links` — ประมวลผลโฟลเดอร์แบบกลุ่ม + +**ตัวอย่างกระบวนการทำงาน:** + +**การสกัดแนวคิดอย่างรวดเร็ว:** +``` +process-current-add-links>extract-concepts-current +``` + +**การวิจัยลึกซึ้ง:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**การวิเคราะห์หลายภาษา:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. การตั้งค่าขั้นสูง + +### การประมวลผลแบบกลุ่ม + +**ประมวลผลไฟล์หลายไฟล์พร้อมกัน:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +ค่าที่สูงขึ้นจะทำให้เร็วขึ้นแต่มีการเรียกใช้ API มากขึ้น. + +### การแบ่งส่วนอัจฉริยะ + +**สำหรับบันทึกที่ยาว ให้แบ่งออกเป็นส่วนๆ:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +ช่วยป้องกันข้อผิดพลาดจากขีดจำกัดตัวอักษร. + +### แผงวินิจฉัย + +**ดูบันทึกโดยละเอียด:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +แสดงข้อมูลดังนี้: +- API คำขอ/การตอบกลับ +- การใช้ตัวอักษร +- เวลาประมวลผล +- ข้อผิดพลาด + +### การตรวจจับแนวคิดซ้ำ + +**หลีกเลี่ยงแนวคิดที่ใกล้เคียงกันมากเกินไป:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +ค่าสูง = การรวมข้อมูลที่เข้มข้นมากขึ้น. + +--- + +## โปรไฟล์การตั้งค่า + +### ส่งออก/นำเข้าการตั้งค่า + +**แบ่งปันการตั้งค่าระหว่างอุปกรณ์ต่างๆ:** + +1. **การตั้งค่า → ขั้นสูง → ส่งออกการตั้งค่า** +2. บันทึก `notemd-config.json` +3. บนอุปกรณ์ใหม่: **นำเข้าการตั้งค่า** + +**สิ่งที่รวมอยู่ด้วย:** +- คีย์ผู้ให้บริการ API (ไม่จำเป็น) +- ตัวเลือกโมเดล +- เส้นทางการส่งออก +- กระบวนการทำงานแบบกำหนดเอง + +--- + +## การตั้งค่าที่แนะนำ + +### สำหรับนักเรียน + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### สำหรับนักวิจัย + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### สำหรับผู้ใช้ที่ให้ความสำคัญกับความเป็นส่วนตัว + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### สำหรับการทำงานสองภาษา + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## การแก้ไขปัญหาด้านการตั้งค่า + +### ไม่มีการบันทึกการตั้งค่า +- ตรวจสอบสิทธิ์การเข้าถึงไฟล์ใน `.obsidian/plugins/notemd/` +- ลองทำดังนี้: ปิดการใช้งานปลั๊กอิน → เปิดการใช้งานอีกครั้ง + +### คีย์ API ไม่ถูกต้อง +- ไม่มีช่องว่างเพิ่มเติม +- ตรวจสอบวันหมดอายุ +- ตรวจสอบคะแนนเครดิตในแดชบอร์ดของผู้ให้บริการ + +### ไม่มีการโหลดโมเดล +- คลิก "Get Model List" เพื่ออัปเดตข้อมูล +- ตรวจสอบการเชื่อมต่อเครือข่าย +- ลองใช้ผู้ให้บริการรายอื่น + +--- + +## ขั้นตอนต่อไป + +- 📖 [สำรวจฟีเจอร์](../features/wiki-links) +- 🔌 [คู่มือการตั้งค่าผู้ให้บริการ](../providers/overview) +- ❓ [FAQ](../faq) diff --git a/website/i18n/th/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/th/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..913a43f2 --- /dev/null +++ b/website/i18n/th/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "การติดตั้ง" +description: "วิธีติดตั้ง Notemd ใน Obsidian" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# การติดตั้ง + +<TLDR> +**ติดตั้ง Notemd ภายในเวลาไม่ถึง 2 นาที** มีวิธีสองวิธี: (1) ปลั๊กอินชุมชนของ Obsidian (แนะนำ ติดตั้งได้ด้วยการคลิกเดียว) หรือ (2) การติดตั้งแบบมืออาชีพผ่าน GitHub Releases ต้องใช้ Obsidian เวอร์ชัน 0.15.0+ ทำงานได้บน Windows, macOS, Linux, iOS และ Android ไม่มีการพึ่งพาไลบรารีภายนอก มีผู้ดาวน์โหลดมากกว่า 4k รองรับใบอนุญาต MIT. +</TLDR> + +## วิธีที่ 1: ปลั๊กอินชุมชน (แนะนำ) + +1. เปิด **การตั้งค่า Obsidian** (ไอคอน ⚙️ หรือ `Ctrl/Cmd + ,`) +2. เลือกไปที่ **ปลั๊กอินชุมชน** +3. คลิกที่ **ดู** +4. ค้นหา **"Notemd"** +5. คลิกที่ **ติดตั้ง** +6. คลิกที่ **เปิดใช้งาน** + +**เสร็จสิ้น!** คุณจะเห็นไอคอน Notemd อยู่ที่แถบด้านซ้ายของคุณ. + +## วิธีที่ 2: การติดตั้งแบบมืออาชีพ + +### ข้อกำหนดเบื้องต้น +- Obsidian เวอร์ชัน 0.15.0 หรือสูงกว่า +- Git (ไม่จำเป็น สำหรับการคลอน) + +### ขั้นตอน + +1. **ดาวน์โหลดไฟล์** จาก [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest): + - `main.js` + - `styles.css` + - `manifest.json` + +2. **ค้นหาโฟลเดอร์ plugin ของ vault ของคุณ:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +หากโฟลเดอร์ `plugins` ยังไม่มีอยู่ ให้สร้างมันขึ้นมา. + +3. **สร้างโฟลเดอร์ Notemd:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **คัดลอกไฟล์ทั้งสามไฟล์** เข้าไปในโฟลเดอร์ `notemd`. + +5. **โหลด Obsidian ใหม่:** + - กด `Ctrl/Cmd + R` หรือ + - รีสตาร์ท Obsidian + +6. **เปิดใช้งาน plugin:** + - Settings → Community plugins + - ค้นหา "Notemd" ในรายการ + - เปิดใช้งานมัน + +## ทางเลือกอื่น: ติดตั้งผ่าน BRAT + +หากคุณใช้ [BRAT plugin](https://github.com/TfTHacker/obsidian42-brat): + +1. เปิดการตั้งค่าของ BRAT +2. คลิก "Add Beta plugin" +3. ป้อนข้อมูล: `Jacobinwwey/obsidian-NotEMD` +4. คลิก "Add Plugin" +5. เปิดใช้งาน Notemd ใน Community plugins + +## การตรวจสอบ + +หลังจากติดตั้งแล้ว ให้ตรวจสอบว่า Notemd ทำงานได้หรือไม่: + +1. เปิดบันทึกใดก็ได้ +2. คลิกขวาในตัวแก้ไข +3. คุณควรจะเห็นคำสั่ง Notemd เช่น: + - "Process file (add links)" + - "Extract concepts" + - "Research and summarize" + +## ขั้นตอนต่อไป + +- **กำหนดค่าผู้ให้บริการ LLM:** [Quick Start →](./quick-start) +- **การแก้ไขปัญหา:** [Common Issues →](../advanced/troubleshooting) + +## ข้อกำหนดของระบบ + +| แพลตฟอร์ม | เวอร์ชัน | สถานะ | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | จำเป็นหรือไม่ | +| **Windows** | 7+ | ✅ รองรับ | +| **macOS** | 10.15+ | ✅ รองรับ | +| **Linux** | ใดก็ได้ | ✅ รองรับ | +| **iOS** | 15+ | ✅ รองรับ | +| **Android** | 5+ | ✅ รองรับ | + +## การถอนการติดตั้ง + +เพื่อลบ Notemd: + +1. การตั้งค่า → ปลั๊กอินชุมชน +2. ค้นหา "Notemd" +3. คลิกที่ไอคอน ❌ +4. หากต้องการ ให้ลบโฟลเดอร์ปลั๊กอิน: `<vault>/.obsidian/plugins/notemd/` + +ข้อมูลของคุณ (บันทึก บันทึกแนวคิด ฯลฯ) จะยังคงไม่เปลี่ยนแปลง. + +## การอัปเดต + +### อัปเดตอัตโนมัติ (แนะนำ) +Obsidian จะตรวจสอบการอัปเดตปลั๊กอินโดยอัตโนมัติ เมื่อมีเวอร์ชันใหม่พร้อมใช้งาน: +1. การตั้งค่า → ปลั๊กอินชุมชน +2. คลิก "ตรวจสอบการอัปเดต" +3. คลิก "อัปเดต" ที่อยู่ข้าง Notemd + +### การอัปเดตแบบมืออาชีพ +ดาวน์โหลดเวอร์ชันล่าสุดแล้วแทนที่ไฟล์สามไฟล์ในโฟลเดอร์ปลั๊กอินของคุณ. + +## ขอความช่วยเหลือ + +- 📖 [คู่มือเริ่มต้นใช้งาน](./quick-start) +- ❓ [FAQ](../faq) +- 💬 [ชุมชน Discord](https://discord.gg/qnGgsQ9W) +- 🐛 [รายงานปัญหา](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/th/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/th/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..0834c769 --- /dev/null +++ b/website/i18n/th/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "คู่มือเริ่มต้นอย่างรวดเร็ว" +description: "เริ่มใช้ Notemd ภายใน 5 นาที" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# คู่มือเริ่มต้นอย่างรวดเร็ว + +<TLDR> +**เริ่มใช้ Notemd ภายใน 5 นาที.** มี 3 ขั้นตอน: (1) เพิ่มคีย์ LLM API (หรือใช้ Ollama แบบท้องถิ่น), (2) เปิดบันทึกแล้วรัน “Process file (add links)”, (3) สำรวจวิธีการทำงานแบบคลิกเดียวในแถบข้าง รองรับผู้ให้บริการมากกว่า 30 ราย ไม่จำเป็นต้องเขียนโค้ด สามารถทำงานแบบออฟไลน์ด้วย Ollama. +</TLDR> + +## ขั้นตอนที่ 1: กำหนดค่าผู้ให้บริการ LLM รายแรกของคุณ (2 นาที) + +### ตัวเลือก A: ผู้ให้บริการบนคลาวด์ (OpenAI, Anthropic ฯลฯ) + +1. เปิด **Settings** → **Notemd** +2. ภายใต้ **LLM Provider Configuration** เลือกผู้ให้บริการจากรายการแบบดรอปดาวน์ +3. ป้อน **API Key** ของคุณ +4. (เลือกใช้) คลิก **“Get Model List”** เพื่อดูรายการโมเดลที่มีอยู่ +5. เลือกโมเดลสำหรับแต่ละประเภทงาน + +**ตัวเลือกยอดนิยม:** +- **OpenAI**: `gpt-4o-mini` (เร็ว ราคาไม่แพง) +- **Anthropic**: `claude-sonnet-4-6` (คุณภาพสูง) +- **DeepSeek**: `deepseek-chat` (ราคาถูกมาก) + +### ตัวเลือก B: Ollama แบบท้องถิ่น (ไม่จำเป็นต้องมีคีย์ API) + +1. ติดตั้ง [Ollama](https://ollama.com/) +2. ดาวน์โหลดโมเดล: `ollama pull llama3.1` +3. ในการตั้งค่า Notemd ให้เลือก **"Ollama"** เป็นผู้ให้บริการ +4. ชื่อโมเดล: `llama3.1` (หรือโมเดลใดก็ได้ที่คุณดาวน์โหลดมา) + +## ขั้นตอนที่ 2: ลองทำงานแรกของคุณ (1 นาที) + +### เพิ่มลิงก์ Wiki เข้าไปในบันทึก + +1. เปิดบันทึกใดก็ได้ที่มีเนื้อหามีความหมาย +2. คลิกขวาในตัวแก้ไข +3. เลือก **"Process file (add links)"** +4. รอสักครู่ +5. แนวคิดสำคัญต่างๆ ตอนนี้อยู่ใน `[[wiki-linked]]`! + +**ตัวอย่าง:** + +**ก่อนหน้านี้:** +``` +Machine learning models use neural networks to process data. +``` + +**หลังจากนั้น:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## ขั้นตอนที่ 3: สำรวจฟีเจอร์ต่างๆ (2 นาที) + +### ดึงข้อมูลบันทึกแนวคิด + +1. คลิกขวา → **"Extract concepts from current file"** +2. Notemd จะสร้างไฟล์แยกต่างหากสำหรับแต่ละแนวคิด +3. ตรวจสอบโฟลเดอร์แนวคิดที่คุณตั้งค่าไว้ (ค่าเริ่มต้น: `concepts/`) +4. แต่ละบันทึกแนวคิดจะมีลิงก์ย้อนกลับไปยังบันทึกต้นฉบับของคุณ + +### วิจัยและสรุป + +1. เน้นหัวข้อในบันทึกของคุณ +2. คลิกขวา → **"Research and summarize"** +3. Notemd ส่งคำขอค้นหาบนเว็บ (Tavily หรือ DuckDuckGo) +4. สรุปจะถูกเพิ่มเข้าไปในบันทึกพร้อมแหล่งที่มา + +### กระบวนการทำงานด้วยการคลิกเดียว + +1. ตรวจสอบ **แถบด้านซ้าย** เพื่อหาปุ่มกระบวนการทำงาน +2. คลิก **"One-Click Extract"** บนบันทึกใดก็ได้ +3. มันจะทำงาน: เพิ่มลิงก์ → ดึงแนวคิด → วิจัย → สร้างแผนภาพ +4. ทั้งหมดในการคลิกเดียว! + +## งานเริ่มต้นที่พบบ่อย + +### งานที่ 1: ประมวลผลเอกสาร/บทความ + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### งานที่ 2: แปลบันทึก + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### งานที่ 3: สร้างแผนที่ความรู้ + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## เคล็ดลับการปรับแต่ง + +### การเลือกโมเดลตามงาน + +คุณสามารถใช้โมเดลที่แตกต่างกันสำหรับงานที่แตกต่างกันได้: + +| งาน | รุ่นที่แนะนำ | เหตุผล | +|------|------------------|-----| +| เพิ่มลิงก์ | `gpt-4o-mini`, `deepseek-chat` | เร็ว สามารถโทรได้หลายครั้ง | +| ดึงข้อมูลแนวคิด | `claude-sonnet-4-6`, `gpt-4o` | การดึงข้อมูลคุณภาพสูง | +| การวิจัย | `perplexity`, `gpt-4o` | อิงจากเว็บ | +| การแปล | `gemini-flash`, `gpt-4o` | หลายภาษา | +| แผนภาพ | `claude-opus`, รุ่นท้องถิ่น | การใช้เหตุผลที่ซับซ้อน | + +กำหนดค่าได้ที่: **Settings → Notemd → Task-Specific Models** + +### กระบวนการทำงานแบบกำหนดเอง + +สร้างปุ่มของคุณเอง: + +1. Settings → Notemd → Workflows +2. คลิก "Add Workflow" +3. ป้อน DSL: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. ตั้งชื่อมันว่า "My Research Flow" +5. ปุ่มใหม่ปรากฏขึ้นในแถบด้านข้าง + +## การแก้ไขปัญหา + +### "API Key Invalid" +- ตรวจสอบว่าคีย์ถูกต้องหรือไม่ (ไม่มีช่องว่างเพิ่มเติม) +- ตรวจสอบว่าบัญชีมีคะแนนเครดิตหรือไม่ +- ทดสอบโดยใช้ปุ่ม "Connection Test" ในการตั้งค่า + +### "Model Not Found" +- คลิก "Get Model List" เพื่อดูรายการโมเดลที่มีอยู่ +- ผู้ให้บริการบางรายต้องการชื่อโมเดลที่เฉพาะเจาะจง (เช่น `gpt-4o` ไม่ใช่ `gpt-4`) + +### ลิงก์ไม่ปรากฏขึ้น +- ตรวจสอบให้แน่ใจว่าบันทึกมีเนื้อหาเพียงพอ (>50 คำ) +- ลองใช้โมเดลที่มีประสิทธิภาพสูงกว่า +- ตรวจสอบว่าการเรียก LLM ประสบความสำเร็จหรือไม่ (ดูแผงการวินิจฉัย) + +### ประสิทธิภาพช้า +- ใช้โมเดลที่เร็วกว่า (`gpt-4o-mini` แทน `gpt-4o`) +- ลดขนาดชิ้นส่วนในการตั้งค่า +- เปิดใช้งานการประมวลผลแบบขนานสำหรับงานแบบกลุ่ม + +## ขั้นตอนต่อไป + +- 📖 [สำรวจคุณสมบัติทั้งหมด](../features/wiki-links) +- ⚙️ [การตั้งค่าขั้นสูง](./configuration) +- 🔧 [การตั้งค่าผู้ให้บริการ LLM](../providers/overview) +- ❓ [FAQ](../faq) + +## วิดีโอสอน + +รับชมวิดีโอสอนเริ่มต้นใช้งาน 3 นาที (ภาษาจีน): +[【โอเพนซอร์สฟรี! NotEMD สอนเร็ว 3 นาที】](https://b23.tv/lqR0RlA) + +## ขอความช่วยเหลือ + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **ปัญหา**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **เอกสาร**: [เอกสารฉบับเต็ม](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/th/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/th/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..10ac90cf --- /dev/null +++ b/website/i18n/th/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "บทนำสู่ Notemd" +description: "เครื่องมือสร้างฐานความรู้ด้วย AI สำหรับ Obsidian พร้อมการแปลงบันทึกแบบถาวร กระบวนการทำงาน และแผนภาพที่อิงตามสเปค" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# บทนำสู่ Notemd + +<TLDR> +**Notemd** (Note + EMD — Enhanced Markdown Documents) เป็นปลั๊กอินแบบโอเพนซอร์สสำหรับ Obsidian ที่ช่วยแปลงการอ่านด้วย LLM ให้กลายเป็นความรู้แบบถาวร ต่างจาก AI แบบแชทที่ข้อมูลความรู้จะหายไปหลังจากสิ้นสุดการสนทนา Notemd จะเขียนผลลัพธ์ **ลงใน vault ของคุณโดยตรง** ในรูปแบบลิงก์ wiki บันทึกแนวคิด สรุปการวิจัย การแปล กระบวนการทำงาน และแผนภาพ มีไว้สำหรับนักวิจัย นักศึกษา และผู้ที่ทำงานด้านความรู้ที่ต้องการให้การอ่าน การวิจัย และคำอธิบายเชิงภาพถูกรวบรวมเข้าด้วยกันเป็นกราฟความรู้ที่มีโครงสร้างและพัฒนาต่อไปได้ +</TLDR> + +## Notemd คืออะไร? + +Notemd รวม **30+ แบบจำลองภาษาขนาดใหญ่** (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama และอื่นๆ) เข้ากับกระบวนการทำงาน Obsidian ของคุณเพื่อทำให้การดึงข้อมูลความรู้ การจัดระเบียบ การแปล การวิจัย และการสร้างแผนภาพเป็นไปอัตโนมัติ + +### ความแตกต่างหลัก: ความรู้ชั่วคราวกับความรู้ถาวร + +| ด้าน | AI แบบแชท (ChatGPT ฯลฯ) | Notemd | +|--------|-------------------------------|--------| +| **ที่ไหนที่ผลลัพธ์จะถูกเก็บ** | ประวัติการสนทนา (หายไป) | Vault Obsidian ของคุณ (คงอยู่) | +| **รูปแบบ** | คำตอบแบบข้อความธรรมดา | ไฟล์ที่มีโครงสร้าง: `[[wiki-links]]`, บันทึกแนวคิด, แผนภาพ | +| **คุณค่าระยะยาว** | ต้องถามใหม่ทุกครั้ง | รวบรวมข้อมูลเป็นกราฟความรู้ | +| **การเข้าถึงแบบออฟไลน์** | ต้องใช้อินเทอร์เน็ต | สามารถทำงานได้แบบออฟไลน์เต็มรูปแบบด้วย Ollama | + +## ความสามารถหลัก + +### 1. **การเชื่อมโยง Wiki อัตโนมัติ** +- LLM จะระบุแนวคิดสำคัญในบันทึกของคุณ +- แทรก `[[wiki-links]]` ที่ทุกจุดที่ปรากฏ +- สามารถสร้างบันทึกแนวคิดที่เชื่อมโยงกันได้ตามต้องการ +- การยับยั้งคำพ้องความหมายเพื่อหลีกเลี่ยงข้อมูลซ้ำ + +### 2. **การสร้างบันทึกแนวคิด** +- ดึงแนวคิดหลักจากเอกสาร บทความ และบันทึกต่างๆ +- สร้างไฟล์แนวคิดที่มีลิงก์ย้อนกลับ +- สามารถปรับเปลี่ยนเส้นทางการส่งออกและแม่แบบได้ + +### 3. **การผสานรวมการค้นหาบนเว็บ** +- ค้นหา Tavily หรือ DuckDuckGo ภายใน Obsidian +- LLM สรุปผลลัพธ์พร้อมอ้างอิงแหล่งที่มา +- เพิ่มผลการค้นคว้าลงในบันทึกปัจจุบัน + +### 4. **การแปลหลายภาษา** +- แปลส่วนที่เลือกหรือบันทึกทั้งหมด +- รองรับภาษา UI มากกว่า 21 ภาษา +- การตั้งค่าภาษาผลลัพธ์แบบอิสระ +- การสนับสนุนการแปลแบบกลุ่ม + +### 5. **การสร้างแผนภาพ** +- **Mermaid**: แผนภาพกระแสงาน, ลำดับเหตุการณ์, คลาส, สถานะ, ER, Gantt +- **JSON Canvas**: รูปแบบการจัดวางแบบดั้งเดิมของ Obsidian +- **Vega-Lite**: แผนภูมิข้อมูล, ชุดข้อมูลตามเวลา, แผนภูมิแบบกระจาย +- **HTML / HTML ที่สามารถแก้ไขได้/SVG**: สื่อสิ่งพิมพ์รูปภาพที่สมบูรณ์ในตัวพร้อมคำอธิบายเชิงความหมาย +- **Draw.io / ขอบเขตสื่อสิ่งพิมพ์ Drawnix**: เส้นทางส่งออกสำหรับผู้ดูแลระบบจากโมเดลรูปภาพเชิงความหมายเดียวกัน +- **แผนทางสำหรับแผนภาพวงจรไฟฟ้า**: การสนับสนุน circuitikz/TikZJax กำลังถูกออกแบบโดยอิงจากข้อมูลอ้างอิงมาตรฐาน, คำสั่งที่มีข้อจำกัด, ข้อมูลตอบกลับการแสดงผล, และการตรวจสอบโครงสร้าง/การจัดวาง แทนที่จะใช้ TikZ แบบไม่มีข้อจำกัด +- **การวินิจฉัยล่วงหน้า**: สื่อสิ่งพิมพ์ที่ถูกแสดงผลสามารถแสดงข้อมูลวินิจฉัยเกี่ยวกับการคอมไพล์/การแสดงผล และสามารถตรวจสอบแหล่งข้อมูลที่ไม่ใช่แบบอินไลน์ได้โดยไม่จำเป็นต้องมีเฟรมเวิร์ก LaTeX ทางด้านปลั๊กอิน +- การแก้ไขโครงสร้างไวยากรณ์โดยอัตโนมัติสำหรับข้อผิดพลาด Mermaid + +### 6. **กระบวนการทำงานแบบคลิกเดียว** +- เชื่อมต่อการดำเนินการหลายอย่างเข้าด้วยกันเป็นปุ่มในแถบด้านข้าง +- การกำหนดไฟล์โวร์คฟลอว์โดยใช้ DSL +- ตัวอย่าง: `add-links > extract-concepts > research > diagram` + +## ใครควรใช้ Notemd? + +✅ **นักวิจัย** ที่อ่านบทความและสร้างบทวิจารณ์วรรณกรรม +✅ **นักเรียน** ที่จัดระเบียบบันทึกการเรียนและสร้างแผนภาพแนวคิด +✅ **ผู้ปฏิบัติงานด้านความรู้** ที่ต้องการให้ข้อมูลการอ่านถูกเก็บไว้ต่อเนื่อง +✅ **ผู้เชี่ยวชาญสองภาษา** ที่ต้องการการแปลร่วมกับการเชื่อมโยงวิกิ +✅ **ผู้ใช้ที่ให้ความสำคัญกับความเป็นส่วนตัว** ที่ต้องการการสนับสนุน LLM แบบอยู่ในเครื่อง (Ollama) +✅ **ผู้ใช้ระดับสูง** ที่ปรับแต่งคำสั่งและไฟล์โวร์คฟลอว์ + +## ทำไมต้อง Notemd + Obsidian? + +**Obsidian** เป็นฐานความรู้ที่เน้นการใช้งานในเครื่องและใช้ Markdown เป็นพื้นฐาน **Notemd** เพิ่มความสามารถพิเศษด้วย AI ให้ +- ข้อมูลของคุณจะถูกเก็บไว้ในตู้เซฟของคุณเอง (ไม่ใช่บริการบนคลาวด์) +- ทำงานได้โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ตด้วยโมเดลท้องถิ่น +- ฟรีและเป็นโอเพนซอร์ส (ใบอนุญาต MIT) +- สามารถรวมเข้ากับปลั๊กอิน Obsidian ที่มีอยู่แล้วได้ +- สามารถขยายขนาดได้ถึงหลายหมื่นบันทึก + +## การเริ่มต้นใช้งาน + +1. **การติดตั้ง**: การตั้งค่า → ปลั๊กอินชุมชน → ค้นหา → "Notemd" +2. **การกำหนดค่า**: เพิ่มคีย์ API ของผู้ให้บริการ LLM ของคุณ (หรือใช้ Ollama ท้องถิ่น) +3. **ลองใช้ดู**: เปิดบันทึก → คลิกขวา → "Process file (add links)" +4. **สำรวจ**: ตรวจสอบแถบด้านข้างเพื่อดูวิธีการทำงานแบบคลิกเดียว + +👉 [คู่มือการติดตั้ง](./getting-started/installation) | [คู่มือเริ่มต้นใช้งานอย่างรวดเร็ว](./getting-started/quick-start) + +## ความสามารถในการสร้างแผนภาพ + +งานด้านแผนภาพของ Notemd กำลังเปลี่ยนจากการ "ขอให้โมเดลเขียนสตริงไวยากรณ์หนึ่งสตริง" ไปสู่ระบบที่มีหลายชั้น: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +การใช้งานในปัจจุบันรองรับ Mermaid, JSON Canvas, Vega-Lite, ตัวเลือกสำรอง HTML, HTML/SVG ที่สามารถแก้ไขได้, ผลงาน Draw.io XML, เซ็ตย่อยขั้นต่ำของ Drawnix JSON, การตรวจสอบล่วงหน้าและตัวเลือกสำรองที่ใช้เฉพาะแหล่งข้อมูล, รวมถึงต้นแบบออฟไลน์ `CircuitSpec -> circuitikz` สำหรับแม่แบบโกลเดนของ common-source และ CMOS inverter แผนภาพวงจรถือเป็นประเภทที่ยากกว่า: circuitikz สามารถแสดงโครงสร้างไฟฟ้าที่แม่นยำได้ แต่ผลลัพธ์ที่ไม่มีข้อจำกัดของ LLM มักจะให้เส้นทางการเชื่อมต่อที่อ่านไม่ออกหรือ LaTeX ที่ไม่สามารถแสดงผลได้ ทิศทางต่อไปคือการยังคงจำกัด circuitikz ด้วยแม่แบบโกลเดน, กฎการจัดวางเครือข่ายโหนด, การตรวจสอบการแสดงผล และวงจรป้อนกลับจากภาพหน้าจอ. + +อ่านรายละเอียดเพิ่มเติมได้ที่ [Diagrams](./features/diagrams). + +## สถาปัตยกรรม + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd เทียบกับปลั๊กอิน AI Obsidian อื่นๆ + +ปลั๊กอิน AI Obsidian ส่วนใหญ่เน้นการสนทนาเป็นหลัก (คุณถาม AI ตอบ ข้อมูลเชิงลึกจะอยู่ในช่องแชท) ส่วน Notemd นั้นเน้นการเขียนเป็นหลัก: AI จะประมวลผลบันทึกของคุณแล้วเขียนผลลัพธ์ที่มีโครงสร้างไปยัง vault ของคุณโดยตรง. + +| ความสามารถ | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| การแทรกลิงก์ wiki อัตโนมัติ | ใช่ | ไม่ | ไม่ | ไม่ | +| การสร้างบันทึกแนวคิด | มี (พร้อมลิงก์ย้อนกลับ + การลบซ้ำ) | ไม่ | ไม่ | ไม่ | +| การสร้างแผนภาพ | ใช่ (Mermaid, Canvas, Vega-Lite, HTML, อาร์ทิแฟคที่สามารถแก้ไขได้) | ไม่ | ไม่ | ไม่ | +| การผสานรวมการค้นคว้าบนเว็บ | ใช่ (Tavily + DuckDuckGo) | ไม่ | ไม่ | ไม่ | +| การประมวลผลโฟลเดอร์แบบกลุ่ม | ใช่ | จำกัด | ไม่ | จำกัด | +| การส่งต่อแบบจำลองตามงาน | ใช่ (7 งาน, โมเดลที่ทำงานอิสระ) | ไม่ | ไม่ | ไม่ | +| ห่วงโซ่กระบวนการทำงานแบบคลิกเดียว | ใช่ (DSL) | ไม่ | ไม่ | ไม่ | +| การแปลแบบกลุ่ม | ใช่ | ไม่ | ไม่ | ไม่ | +| สนทนากับ vault | ไม่ | ใช่ | ไม่ | ไม่ | +| การค้นหาความคล้ายคลึงกันเชิงความหมาย | ไม่ | ไม่ | ใช่ | ไม่ | +| การสร้างโดยใช้เทมเพลต | ไม่ | ไม่ | ไม่ | ใช่ | +| ผู้ให้บริการ LLM | 36 (cloud + gateway + local) | 3-5 | 2-3 | 3-5 | +| ทำงานได้โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต | ใช่ (Ollama) | บางส่วน | บางส่วน | บางส่วน | + +**เมื่อควรเลือก Notemd**: คุณต้องการให้ AI สร้างกราฟความรู้ที่คงอยู่ — ไม่ใช่แค่พูดคุยเกี่ยวกับบันทึกของคุณ. + +**เมื่อควรเลือก Copilot**: คุณต้องการผู้ช่วย AI แบบสนทนาภายใน Obsidian. + +**เมื่อควรเลือก Smart Connections**: คุณต้องการค้นหาความสัมพันธ์ที่มีอยู่ระหว่างบันทึกผ่านการค้นหาเชิงความหมาย. + +## ปรัชญา + +**Notemd เชื่อว่า AI ควรช่วยเสริมงานด้านความรู้ของมนุษย์ ไม่ใช่แทนที่มัน** ปลั๊กอินนี้: +- ช่วยให้คุณควบคุมได้ (ตรวจสอบก่อนนำการเปลี่ยนแปลงไปใช้) +- รักษาบริบทไว้ (ผลลัพธ์ทั้งหมดมีลิงก์กลับไปยังแหล่งที่มา) +- เคารพความเป็นส่วนตัว (รองรับ LLM ในเครื่อง ไม่มีการส่งข้อมูลไปยังศูนย์กลาง) +- ยังคงสามารถขยายฟังก์ชันได้ (ใช้ APIs แบบเปิด สามารถสร้างวิธีการทำงานเฉพาะได้) + +## โอเพนซอร์ส + +- **ใบอนุญาต**: MIT +- **แหล่งที่มา**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **ชุมชน**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **มีส่วนร่วม**: ยินดีรับ PR ดูที่ [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +**ขั้นตอนต่อไป**: [Installation →](./getting-started/installation) diff --git a/website/i18n/th/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/th/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..bb506c12 --- /dev/null +++ b/website/i18n/th/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Obsidian คู่มือการจัดการความรู้ด้วย AI" +description: "คู่มือฉบับสมบูรณ์สำหรับการสร้างฐานความรู้ที่เชื่อมต่อกันโดยใช้ AI — ตั้งแต่การสร้างลิงก์ wiki และการสกัดแนวคิดไปจนถึงการค้นคว้า การแปล และการสร้างแผนภาพ" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Obsidian คู่มือการจัดการความรู้ด้วย AI + +<TLDR> +**Notemd เปลี่ยนการอ่านที่ใช้ LLM ให้กลายเป็นความรู้ที่คงอยู่ตลอดไป: ลิงก์ wiki เชื่อมโยงแนวคิดต่าง ๆ บันทึกแนวคิดสร้างกราฟที่สามารถค้นหาได้ การค้นคว้านำเนื้อหาจากเว็บมาไว้ในคลังของคุณ การแปลขจัดอุปสรรคทางภาษา แผนภาพทำให้โครงสร้างเห็นได้ชัดเจน และกระบวนการทำงานเชื่อมโยงทุกอย่างเข้าด้วยกันด้วยการคลิกเพียงครั้งเดียว** คู่มือนี้ครอบคลุมกระบวนการทั้งหมด — ตั้งแต่บันทึกดิบไปจนถึงฐานความรู้ที่เชื่อมต่อกัน มีลักษณะเป็นภาพ และรองรับหลายภาษา +</TLDR> + +## ทำไมต้องจัดการความรู้ด้วย AI? + +การจดบันทึกแบบดั้งเดิมจะสร้างไฟล์แบบแบน แม้จะมีการสร้างลิงก์ wiki ด้วยตนเอง บันทึกส่วนใหญ่ก็ยังคงไม่เชื่อมต่อกัน Notemd ใช้ LLM เพื่อทำให้ชั้นการเชื่อมโยงเป็นไปโดยอัตโนมัติ: + +- **LLMs อ่านเนื้อหาของคุณ** และระบุสิ่งที่สำคัญ — คำศัพท์ วิธีการ บุคคล ทฤษฎี +- **ลิงก์จะถูกเพิ่มเข้าไปโดยอัตโนมัติ** ทุกครั้งที่มีการกล่าวถึงแนวคิด ไม่ใช่ถูกซ่อนไว้ในส่วน "ดูเพิ่มเติม" +- **บันทึกแนวคิดจะถูกสร้างขึ้น** เป็นไฟล์ที่สามารถค้นหาได้โดยอิสระ +- **การค้นคว้าช่วยเสริมบันทึก** ด้วยบริบทจากเว็บ +- **แผนภาพทำให้โครงสร้างเห็นได้ชัดเจน** — แผนที่ความคิด แผนภูมิการไหล แผนภูมิข้อมูลจากเนื้อหาเดียวกัน + +ผลลัพธ์คือ: กราฟความรู้ที่เติบโตขึ้นทุกครั้งที่คุณประมวลผลบันทึก ไม่ใช่แค่ตอนที่คุณนึกจะเพิ่มลิงก์เท่านั้น + +## กระบวนการทั้งหมด + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +แต่ละขั้นตอนเป็นอิสระต่อกัน สามารถใช้หนึ่งขั้นตอนหรือทั้งหมดก็ได้ ลำดับที่มีผลกระทบมากที่สุดคือ: **เพิ่มลิงก์ → บันทึกแนวคิด → แผนภาพ**. + +--- + +## 1. ลิงก์วิกิ: การสร้างความเชื่อมโยงอย่างชัดเจน + +ลิงก์วิกิเป็นโครงสร้างหลักของกราฟความรู้ Notemd ใช้ LLM เพื่อทำสิ่งต่อไปนี้: + +1. อ่านเนื้อหาบันทึก (แบ่งเป็นส่วนๆ สำหรับเอกสารที่ยาว) +2. ระบุแนวคิดหลัก — ให้ความสำคัญกับคำศัพท์เฉพาะทางมากกว่าคำนามทั่วไป +3. แทรก `[[wiki-links]]` ที่แต่ละจุดที่ปรากฏ +4. ยับยั้งคำพ้องความหมายเพื่อไม่ให้ "ML" และ "Machine Learning" สร้างโหนดแยกกัน + +### เมื่อไหร่ควรใช้ + +- **บันทึกที่มีความยาวมากกว่า 100 คำ** — บันทึกที่สั้นกว่าจะให้แนวคิดน้อย +- **บทความวิจัย เอกสารเทคนิค บันทึกการประชุม** — มีคำศัพท์เฉพาะทางมากมาย +- **หลังจากที่เนื้อหามีความมั่นคงแล้ว** — อย่าประมวลผลต้นฉบับซ้ำๆ + +### การตั้งค่าคีย์ + +| การกำหนดค่า | แนะนำ | เหตุผล | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek หรือ GPT-4o-mini | ความแม่นยำสูงในราคาถูก | +| การยับยั้งคำพ้องความหมาย | เปิด | ป้องกันไม่ให้มีโหนดซ้ำ | +| หน้าต่างบริบท | ย่อหน้า | สมดุลระหว่างความแม่นยำกับต้นทุน | + +→ [Wiki-Links deep dive](/docs/features/wiki-links) + +--- + +## 2. หมายเหตุแนวคิด: โหนดความรู้ที่สามารถเรียกคืนได้ + +ลิงก์วิกิช่วยเชื่อมโยงแนวคิดเข้าด้วยกันในรูปแบบอินไลน์ แต่บันทึกแนวคิดทำให้สามารถค้นหาแต่ละแนวคิดได้อย่างอิสระ แต่ละแนวคิดจะมีไฟล์ `.md` ของตัวเอง: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### กระบวนการสกัดข้อมูล + +คำสั่ง LLM มีโครงสร้างที่ชัดเจนมาก: +- ปรับให้อยู่ในรูปแบบเอกพจน์ +- ให้ความสำคัญกับแนวคิดที่มีหลายคำมากกว่าคำเดียว ("Dielectric Relaxation" ไม่ใช่ "Relaxation") +- ข้ามส่วนอ้างอิง/บรรณานุกรม +- แสดงผลเป็นบรรทัด `CONCEPT:` เพื่อให้สามารถแปลงรูปแบบได้อย่างแน่นอน + +แนวคิดจะถูกลบซ้ำกันระหว่างชุดข้อมูลต่าง ๆ ผ่าน `Set<string>` ข้อผิดพลาด LLM ในชุดข้อมูลแต่ละชุดจะไม่ทำให้การดำเนินการหยุดลง. + +### ลิงก์ย้อนกลับ + +เมื่อเปิดใช้งาน บันทึกแนวคิดแต่ละรายการจะบันทึกว่ามีบันทึกแหล่งข้อมูลใดบ้างที่กล่าวถึงมัน แผงลิงก์ย้อนกลับของ Obsidian ก็จะแสดงการเชื่อมต่อแบบย้อนกลับด้วย + +### การลดความซ้ำกัน + +เครื่องมือลบซ้ำ 4 ขั้นตอนของ Notemd สามารถตรวจจับได้ดังนี้: +1. **การตรงกันทั้งหมด** — การเปรียบเทียบชื่อไฟล์โดยไม่สนใจตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก +2. **รูปแบบพหูพจน์** — "Models.md" เทียบกับ "Model.md" +3. **การปรับมาตรฐานสัญลักษณ์** — "A-B.md" เทียบกับ "A B.md" +4. **การมีคำเดียวอยู่ภายใน** — "ML.md" จะถูกระบุเมื่อมี "Machine Learning.md" อยู่ + +### การตั้งค่าคีย์ + +| การกำหนดค่า | ที่แนะนำ | เหตุผล | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` หรือ `🧠 concepts/` | ช่วยให้ตู้เก็บข้อมูลเป็นระเบียบ | +| `extractConceptsAddBacklink` | เปิด | เปิดใช้งานการค้นหาย้อนกลับ | +| `extractConceptsMinimalTemplate` | ปิด | แบบฟอร์มสมบูรณ์พร้อม Linked From | +| โมเดลตามงาน | DeepSeek | การสกัดแนวคิดไม่จำเป็นต้องใช้โมเดลที่มีราคาแพง | +| การยับยั้งคำพ้องความหมาย | เปิด | การตั้งค่าเดียวกันส่งผลต่อทั้งการเชื่อมโยงและการสกัดแนวคิด | + +→ [Concept Notes deep dive](/docs/features/concept-notes) + +--- + +## 3. การวิจัย: การนำเว็บเข้ามาใช้ + +Notemd รวมการค้นหาบนเว็บเข้ากับกระบวนการจดบันทึกของคุณ: + +1. **การสร้างคำขอ** — ชื่อหรือส่วนที่คุณเลือกในบันทึกจะกลายเป็นคำขอค้นหา +2. **การค้นหาบนเว็บ** — Tavily (แนะนำ, ต้องมีคีย์ API) หรือ DuckDuckGo (ฟรี, ไม่ต้องมีคีย์) +3. **การสรุปด้วย LLM** — ผลลัพธ์จากการค้นหาจะถูกสรุปเป็นบทสรุปที่เกี่ยวข้อง +4. **เพิ่มเข้าไปในบันทึก** — บทสรุปจะถูกเพิ่มไว้ที่ตำแหน่งเคอร์เซอร์หรือเป็นส่วนใหม่ + +### เมื่อใดควรใช้ + +- ก่อนประมวลผลหัวข้อใหม่ — ต้องรับข้อมูลบริบทจากเว็บก่อน +- เมื่อบันทึกแนวคิดต้องการเพิ่มเนื้อหา — ให้ทำการค้นคว้าก่อนแล้วจึงเพิ่มลิงก์ +- สำหรับการทบทวนวรรณกรรม — ให้ทำการค้นคว้าแบบกลุ่มสำหรับโฟลเดอร์ของบันทึก + +### การตั้งค่าหลัก + +| การกำหนดค่า | ที่แนะนำ | เหตุผล | +|---------|-----------|-----| +| `researchProvider` | GPT-4o หรือ Claude | การค้นคว้าต้องการการสรุปที่มีคุณภาพสูงกว่า | +| บริการค้นหา | Tavily | ความเกี่ยวข้องที่ดีขึ้น สามารถปรับระดับความลึกได้ | +| `maxResearchContentTokens` | 4000 | การหาจุดสมดุลระหว่างความลึกกับต้นทุน | + +→ [Research deep dive](/docs/features/research) + +--- + +## 4. การแปล: การทลายอุปสรรคทางภาษา + +Notemd แปลบันทึกโดยใช้ LLM ที่คุณตั้งค่าไว้ — ไม่ใช่เครื่องมือแปลแบบเฉพาะทาง API นั่นหมายความว่า: + +- **การแปลที่เข้าใจบริบท** — LLM จะเข้าใจเนื้อหาทั้งหมดของเอกสาร ไม่ใช่แค่ประโยคต่อประโยค +- **การจัดการคำศัพท์เฉพาะทาง** — "gradient descent" จะยังคงเป็น "梯度下降" ไม่ใช่ "坡度向下" +- **การรองรับการแปลหลายไฟล์พร้อมกัน** — สามารถแปลบันทึกทั้งโฟลเดอร์ในครั้งเดียวได้ +- **การใช้โมเดลตามงาน** — ใช้ Gemini Flash สำหรับการแปล (เร็ว ราคาถูก รองรับหลายภาษา) + +### การรองรับภาษา + +Notemd เองรองรับภาษา UI ถึง 21 ภาษา ส่วนภาษาปลายทางสำหรับการแปลสามารถตั้งค่าได้ตามแต่ละงาน คู่ภาษาที่พบบ่อย ได้แก่ EN↔ZH, EN↔JA, EN↔KO, EN↔DE, EN↔FR, EN↔ES. + +→ [การดูรายละเอียดการแปลเชิงลึก](/docs/features/translation) + +--- + +## 5. แผนภาพ: ทำให้โครงสร้างมองเห็นได้ + +กระบวนการสร้างแผนภาพของ Notemd จะเริ่มจากการกำหนดสเปกก่อน: LLM จะสร้าง `DiagramSpec` JSON ที่มีโครงสร้างชัดเจน จากนั้นตัวแปลงจะนำไปแปลเป็นรูปแบบปลายทาง วิธีนี้ให้ผลลัพธ์ที่น่าเชื่อถือกว่าการขอให้ LLM แปลตามสัญกรณ์ Mermaid ดิบๆ + +### การตรวจจับเจตนา + +Notemd จะประมวลผลหาประเภทแผนภาพที่เหมาะสมที่สุดจากเนื้อหา: + +- **ตารางที่มีตัวเลข** → แผนภูมิข้อมูล (Vega-Lite) +- **คำศัพท์ไคลเอนต์/เซิร์ฟเวอร์** → แผนภาพลำดับการทำงาน (Mermaid) +- **อ็อบเจกต์/คีย์หลัก** → แผนภาพ ER (Mermaid) +- **ขั้นตอน/กระบวนการ** → แผนภาพกระแสงาน (Mermaid) +- **คำสำคัญของแผนภาพแนวคิด** → JSON Canvas (Obsidian native) +- **ค่าเริ่มต้น** → แผนภาพมายด์แมป (Mermaid) + +### Rendering Chain + +เป้าหมายหลัก → การสำรองไว้ → การสำรองไว้อีกครั้ง → HTML. หากไวยากรณ์ Mermaid ล้มเหลว จะพยายามใหม่อีกครั้งโดยส่งข้อมูลข้อผิดพลาดไปยัง LLM แล้วจึงหันไปใช้แผนภาพขั้นต่ำที่สุด. + +### Key Settings + +| การกำหนดค่า | Recommended | เหตุผล | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | On | คุณภาพที่ดีขึ้นโดยใช้ข้อกำหนดเป็นอันดับแรก | +| `experimentalDiagramCompatibilityMode` | `best-fit` | เป้าหมาย native ตามความตั้งใจ | +| `summarizeToMermaidProvider` | GPT-4o หรือ Claude | ข้อกำหนดของแผนภาพต้องใช้ความสามารถในการคิดเชิงพื้นที่ | +| `autoMermaidFixAfterGenerate` | เปิด | จับข้อผิดพลาดด้านไวยากรณ์ LLM โดยอัตโนมัติ | +| การเสริมความรู้ในระดับท้องถิ่น | เปิดสำหรับกรณีที่เฉพาะทาง | เพิ่มความแม่นยำด้วยบริบทของ vault | + +→ [Diagrams deep dive](/docs/features/diagrams) + +--- + +## 6. วิธีการทำงาน: การอัตโนมัติด้วยการคลิกเดียว + +วิธีการทำงานจะเชื่อมต่องานหลายอย่างเข้าด้วยกันผ่านปุ่มในแถบด้านข้างเดียว รูปแบบ DSL คือ: + +``` +task1 | task2 | task3 +``` + +ตัวอย่าง: `addLinks | extractConcepts | generateDiagram` — แปลงบันทึกจากข้อความดิบให้กลายเป็นโหนดความรู้แบบเชื่อมต่อกันทั้งหมดในรูปแบบภาพได้ในเพียงคลิกเดียว. + +### กระบวนการทำงานที่แนะนำ + +| กระบวนการทำงาน | ลำดับการทำงาน | กรณีการใช้งาน | +|----------|-------|----------| +| กระบวนการทั้งหมด | `addLinks \| extractConcepts \| generateDiagram` | บันทึกใหม่ | +| การวิจัยก่อน | `research \| addLinks` | หัวข้อที่ไม่คุ้นเคย | +| Polyglot | `translate \| addLinks` | บันทึกหลายภาษา | +| แค่แผนภาพ | `generateDiagram` | การแสดงผลแบบรวดเร็ว | + +→ [Workflows deep dive](/docs/features/workflows) + +--- + +## 7. LLM ผู้ให้บริการ: ตัวเลือก 36 แห่งตั้งแต่บนคลาวด์ไปจนถึงแบบโลคัล + +Notemd รองรับผู้ให้บริการ 36 รายใน 4 ประเภทการส่งข้อมูล กลุ่มคีย์หลัก: + +- **Cloud ระดับนานาชาติ**: OpenAI, Anthropic, Google, Mistral, xAI +- **Cloud ในประเทศจีน**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **Gateway**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **Local**: Ollama, LMStudio, OVMS — ไม่มีคีย์ API ข้อมูลจะไม่ออกจากเครื่องของคุณ + +### กลยุทธ์โมเดลตามงาน + +การตั้งค่าที่ประหยัดที่สุดคือการใช้โมเดลราคาถูกสำหรับงานง่ายและโมเดลที่ทรงพลังสำหรับงานซับซ้อน: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [LLM ภาพรวมผู้ให้บริการ](/docs/providers/overview) + +--- + +## รายการตรวจสอบก่อนเริ่มต้น + +1. **ติดตั้ง Notemd** — [Community Plugins](/docs/getting-started/installation) (แนะนำ) หรือทำด้วยตนเอง +2. **กำหนดค่าผู้ให้บริการ** — DeepSeek (ง่ายที่สุด), OpenAI หรือ Ollama (ฟรี) +3. **ประมวลผลบันทึกแรกของคุณ** — คลิกขวา → "Process file (add links)" +4. **ตั้งค่าโฟลเดอร์แนวคิด** — การตั้งค่า → Notemd → ผลลัพธ์ → โฟลเดอร์แนวคิด +5. **ดึงข้อมูลแนวคิด** — รัน “ดึงข้อมูลแนวคิด” บนโน้ตเดียวกัน +6. **สร้างแผนภาพ** — รัน “สร้างแผนภาพ” เพื่อแสดงการเชื่อมต่อ +7. **สร้างไหลงาน** — เชื่อมโยงขั้นตอนข้างต้นเข้าด้วยกันเป็นปุ่มคลิกเดียว + +## การตั้งค่าที่แนะนำ + +### นักศึกษา (งบประมาณ) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### นักวิจัย (คุณภาพ) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### ความเป็นส่วนตัวเป็นอันดับแรก (ใช้งานในเครื่องเท่านั้น) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### สองภาษา (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## รูปแบบทั่วไป + +### รูปแบบ: ประมวลผลบทความวิจัย + +1. นำเข้าเนื้อหา PDF (หรือวางลงมา) +2. **วิจัย** — รับข้อมูลบริบทจากเว็บเกี่ยวกับหัวข้อ +3. **เพิ่มลิงก์** — ระบุและเชื่อมโยงแนวคิดสำคัญ +4. **ดึงข้อมูลแนวคิด** — สร้างบันทึกที่สามารถใช้งานได้เอง +5. **สร้างแผนภาพ** — แสดงโครงสร้างของเอกสาร + +### รูปแบบ: การเสริมคุณค่าบันทึกประจำวัน + +1. เขียนบันทึกประจำวัน +2. **เพิ่มลิงก์** — เชื่อมโยงแนวคิดในวันนี้กับแนวคิดที่มีอยู่แล้ว +3. บันทึกแนวคิดจะอัปเดตโดยอัตโนมัติพร้อมลิงก์ย้อนกลับ + +### รูปแบบ: การทบทวนวรรณกรรม + +1. สร้างโฟลเดอร์สำหรับเก็บเอกสาร/บันทึก +2. **เพิ่มลิงก์แบบกลุ่ม** — ประมวลผลโฟลเดอร์ทั้งหมด +3. **ลบบันทึกที่คล้ายกัน** — จัดการบันทึกที่เกือบจะซ้ำกัน +4. **สร้างแผนภาพ** — แผนภาพความคิดของวรรณกรรมทั้งหมด + +--- + +*Notemd เป็นโอเพนซอร์ส (MIT) และทำงานได้กับ Obsidian 0.15.0+ บนทุกแพลตฟอร์ม [ติดตั้งตอนนี้](/docs/getting-started/installation) หรือ [ดูที่ GitHub](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/th/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/th/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..5cf9bb4b --- /dev/null +++ b/website/i18n/th/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "กำหนดค่า Anthropic Claude" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# ผู้ให้บริการ Anthropic + +<TLDR> +**Anthropic ใช้ระบบส่งข้อความแบบดั้งเดิม Messages API ไม่ใช่ระบบที่สอดคล้องกับ OpenAI** การตั้งค่าเริ่มต้นปัจจุบันคือ `claude-3-5-sonnet-20240620`, `https://api.anthropic.com` และ `temperature: 0.5` ให้ถือว่าเป็นโปรโตคอลที่แยกออกมาเมื่อทำการดีบัก + +นี่เป็นส่วนหนึ่งของ [Obsidian คู่มือการจัดการความรู้ด้วย AI](/docs/pillar-ai-knowledge) +</TLDR> + +## การตั้งค่า + +สร้างคีย์ Anthropic API ใส่โปรไฟล์ผู้ให้บริการ `Anthropic` และให้ Base URL อยู่ที่จุดจบแบบดั้งเดิม เว้นแต่คุณจะส่งผ่านโปรไฟล์เกตเวย์ที่กำหนดไว้เป็นพิเศษ ให้เลือก ID ของโมเดล Claude ที่คุณต้องการใช้ในฟิลด์โมเดล โดยค่าเริ่มต้นจะรักษาสถานะพื้นฐานของผลิตภัณฑ์ไว้ให้คงที่ + +Anthropic เป็นตัวเลือกที่ดีสำหรับการสรุปเนื้อหาคุณภาพสูง การสังเคราะห์ข้อมูลจากการวิจัย และการดึงแนวคิด หากคุณใช้ร่วมกับผู้ให้บริการที่มีราคาถูกกว่า ให้ใช้มันเฉพาะกับงานที่ได้ประโยชน์จากคุณภาพผลลัพธ์ของมันเท่านั้น + +## จุดจบและการยืนยันตัวตน + +| Field | การตั้งค่าเริ่มต้น | +|-------|----------------| +| ระบบส่งข้อมูล | `anthropic` | +| คีย์ API | จำเป็นหรือไม่ | +| Base URL | `https://api.anthropic.com` | +| โมเดลเริ่มต้น | `claude-3-5-sonnet-20240620` | +| Temperature | `0.5` | +| การทดสอบการเชื่อมต่อ | แบบแชทเท่านั้น | + +ระบบจะส่งคำขอไปยัง `/v1/messages` พร้อมกับ `x-api-key` และ `anthropic-version: 2023-06-01` อย่าตั้งค่าจุดปลายทางแบบ OpenAI-style `/v1/chat/completions` ภายใต้การตั้งค่านี้ ให้ใช้การตั้งค่าเกตเวย์ที่รองรับ OpenAI แทน + +## การค้นหาโมเดล + +Anthropic จะใช้โหมดการค้นหา `anthropic-models` ในรีจิสทรีผู้ให้บริการ หากคีย์หรือบัญชีของคุณไม่สามารถแสดงรายการโมเดลได้ ให้เก็บ ID โมเดลที่ทราบแล้วไว้ในโปรไฟล์และตรวจสอบผ่านการทดสอบการเชื่อมต่อ + +รูปแบบการส่งข้อมูลนี้ไม่สามารถใช้ร่วมกับผู้ให้บริการที่รองรับ OpenAI ได้ โมเดล Claude ที่ถูกส่งผ่าน OpenRouter, LiteLLM หรือเกตเวย์อื่นควรอยู่ในโปรไฟล์ของเกตเวย์นั้น ไม่ใช่ในโปรไฟล์ Anthropic แบบดั้งเดิม + +## การแก้ไขปัญหา + +- `401` หรือ `403`: ตรวจสอบขอบเขตคีย์ การเข้าถึงพื้นที่ทำงาน การเรียกเก็บเงิน และตรวจสอบว่าคีย์นั้นเป็นของพื้นที่ทำงาน Anthropic ที่ต้องการหรือไม่ +- `404`: Base URL ไม่ถูกต้อง หรือ ID โมเดลที่เลือกไม่สามารถใช้งานได้สำหรับบัญชีของคุณ +- ID โมเดล Claude แบบเกตเวย์ล้มเหลว: ย้ายโปรไฟล์ไปยังผู้ให้บริการเกตเวย์ที่ตรงกัน เนื่องจาก Anthropic แบบดั้งเดิมคาดหวังชื่อโมเดลแบบดั้งเดิม +- คำขอที่ยาวจะล้มเหลวในภายหลัง: ลดขนาดผลลัพธ์ของโมเดลต่องาน หรือใช้โมเดลที่มีขีดจำกัดจำนวนโทเค็นผลลัพธ์ที่สูงกว่า + +## เมื่อควรใช้ + +ใช้ Anthropic เมื่อคุณภาพของการสร้างเนื้อหา บันทึกการวิจัย หรือการเขียนแบบมีโครงสร้างมีความสำคัญมากกว่าต้นทุนดิบ อย่าใช้เป็นทางเลือกแบบ OpenAI-compatible ทั่วไป เพราะจุดประสงค์คือรูปแบบการส่งข้อมูลที่แยกต่างหาก และการผสมโปรโตคอลเข้าด้วยกันจะทำให้การวินิจฉัยยากขึ้น + +--- + +## ขั้นตอนต่อไป + +- [LLM ผู้ให้บริการ](/docs/providers/overview) -- การกำหนดค่าแบบเต็มรูปแบบ, โมเดลตามงาน, และตรรกะการทดลองใหม่ +- [การแก้ไขปัญหา](/docs/advanced/troubleshooting) -- แก้ไขข้อผิดพลาด 401/403 และข้อผิดพลาดการเชื่อมต่อ diff --git a/website/i18n/th/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/th/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..0289e2d7 --- /dev/null +++ b/website/i18n/th/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "ผู้ให้บริการจากประเทศจีน" +description: "กำหนดค่า Qwen, DeepSeek, GLM และอื่นๆ" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# ผู้ให้บริการจากประเทศจีน + +<TLDR> +**Notemd รองรับผู้ให้บริการในภูมิภาคและที่มีต้นกำเนิดจากประเทศจีนผ่านจุดสิ้นสุดที่สอดคล้องกับ OpenAI เป็นหลัก** ชุดปัจจุบันประกอบด้วย DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, MiniMax, Baidu Qianfan, SiliconFlow, Huawei Cloud MaaS และ Z AI ประโยชน์คือการเข้าถึงในระดับภูมิภาคและการควบคุมต้นทุน ส่วนความเสี่ยงคือการตั้งชื่อโมเดลและการควบคุมบัญชีที่แตกต่างกันในแต่ละผู้ให้บริการ + +นี่เป็นส่วนหนึ่งของ [Obsidian คู่มือการจัดการความรู้ด้วย AI](/docs/pillar-ai-knowledge) +</TLDR> + +## การตั้งค่า + +สร้างบัญชีผู้ให้บริการ สร้างคีย์ API จากนั้นเลือกการตั้งค่าเริ่มต้นของผู้ให้บริการ Notemd ที่เหมาะสมแทนการใช้โปรไฟล์ OpenAI ทั่วไป การตั้งค่าเริ่มต้นนี้จะกำหนด Base URL มาตรฐาน โมเดล โหมดทดสอบ API พฤติกรรมการค้นหาโมเดล และฟิลด์ UI ที่เฉพาะของผู้ให้บริการ + +ใช้การเลือกโมเดลตามงานอย่างเต็มที่ในกรณีนี้ ตัวอย่างเช่น ใช้ DeepSeek หรือ GLM สำหรับงานที่ต้องใช้การคิดเชิงเหตุผลมาก ใช้ Qwen หรือ Moonshot สำหรับงานภาษาจีนทั่วไป และส่งงานเขียนโค้ดไปยัง Qwen Code เมื่อบัญชีนั้นมีโมเดลสำหรับนักเขียนโค้ด + +## จุดจบและการยืนยันตัวตน + +| ผู้ให้บริการ | โมเดลเริ่มต้น | Base URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (ต้องมี ID จุดสิ้นสุด) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**หมายเหตุ:** Doubao ต้องใช้ ID จุดสิ้นสุดของ Ark (รูปแบบ: `ep-xxxxxxxx-xxxx-xxxx`) แทนชื่อโมเดลมาตรฐาน + +ผู้ให้บริการส่วนใหญ่ใช้ไลบรารี runtime ที่สอดคล้องกับ OpenAI เดียวกัน แต่โครงสร้างบัญชีและความหมายของโมเดลจะแตกต่างกัน ให้ใช้ Base URL ที่เฉพาะกับการตั้งค่าเริ่มต้นจนกว่าจะตรวจสอบจุดสิ้นสุดอื่นของบัญชีแล้ว + +## การค้นหาโมเดล + +DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan และ SiliconFlow จะใช้การค้นหาโมเดลที่สอดคล้องกับ OpenAI เมื่อผู้ให้บริการรองรับการแสดงรายการ ส่วน Huawei Cloud MaaS จะใช้โหมด `huaweicloud-modelarts-models` เนื่องจากข้อมูลเมตาของการติดตั้ง ModelArts ไม่เหมือนกับรายการทั่วไปของ `/v1/models` + +อย่าถือว่าความล้มเหลวในการค้นหาเป็นหลักฐานว่าไม่สามารถสนทนาได้ ผู้ให้บริการหลายรายอนุญาตให้สนทนาได้แม้จะจำกัดสิทธิ์ในการดูรายการโมเดล ในกรณีนั้น ให้เก็บ ID โมเดลที่ชัดเจนไว้ในโปรไฟล์และตรวจสอบด้วยการทดสอบการเชื่อมต่อ + +## การแก้ไขปัญหา + +- การยืนยันตัวตนสำเร็จแต่การสนทนาล้มเหลว: ชื่อโมเดลอาจอยู่นอกขอบเขตสิทธิ์หรือภูมิภาคของบัญชี. +- Doubao ล้มเหลวด้วยชื่อโมเดลปกติ: ให้ใช้ ID จุดสิ้นสุด Ark ในฟิลด์ model เมื่อการติดตั้งของคุณต้องการ. +- คำตอบที่ให้เหตุผลถูกตัดออก: ตรวจสอบจำนวนโทเค็นผลลัพธ์สูงสุดที่กำหนดโดยผู้ให้บริการและการตั้งค่าโทเค็นสูงสุดที่รู้จักโมเดลของ Notemd. +- การเชื่อมต่อเครือข่ายในแต่ละภูมิภาคแตกต่างกัน: ให้ใช้จุดสิ้นสุดภูมิภาคจีนของผู้ให้บริการเมื่อเครื่อง vault อยู่ในประเทศจีน; ใช้จุดสิ้นสุดระดับนานาชาติก็ต่อเมื่อบัญชีและเส้นทางเครือข่ายทั้งหมดถูกต้อง. + +## เมื่อควรใช้ + +ให้ใช้ผู้ให้บริการในประเทศจีนเมื่อความล่าช้าในภูมิภาค การชำระเงิน/การเข้าถึงบัญชี คุณภาพภาษาจีน หรือต้นทุนเป็นข้อจำกัดหลัก ควรเลือกใช้ OpenAI, Anthropic, Google โดยตรง หรือผู้ให้บริการในท้องถิ่นเมื่อคุณต้องการขอบเขตโปรโตคอลที่เรียบง่ายกว่าหรือความสอดคล้องในการดีบักระหว่างผู้ให้บริการที่ดีขึ้น. + +--- + +## ขั้นตอนต่อไป + +- [LLM ผู้ให้บริการ](/docs/providers/overview) -- การกำหนดค่าแบบเต็มรูปแบบ, โมเดลตามงาน, และตรรกะการทดลองใหม่ +- [การแก้ไขปัญหา](/docs/advanced/troubleshooting) -- แก้ไขข้อผิดพลาดด้านการเชื่อมต่อในภูมิภาคและการยืนยันตัวตน diff --git a/website/i18n/th/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/th/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..50e472ca --- /dev/null +++ b/website/i18n/th/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "กำหนดค่า Google Gemini" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# ผู้ให้บริการ Google + +<TLDR> +**Google ใช้ระบบขนส่งภาษาสร้างสรรค์แบบดั้งเดิมของ Gemini ที่ชื่อ API** การตั้งค่าเริ่มต้นปัจจุบันคือ `gemini-2.0-flash-exp`, `https://generativelanguage.googleapis.com/v1` และ `temperature: 0.5` ซึ่งไม่ใช่โปรไฟล์ที่สอดคล้องกับ OpenAI + +นี่เป็นส่วนหนึ่งของ [Obsidian คู่มือการจัดการความรู้ด้วย AI](/docs/pillar-ai-knowledge) +</TLDR> + +## การตั้งค่า + +สร้างคีย์ Cloud API แบบ Google AI Studio หรือ Google ที่มีสิทธิ์เข้าถึง Gemini เพิ่มโปรไฟล์ผู้ให้บริการ `Google` และรักษา Base URL แบบภาษาสร้างสรรค์แบบดั้งเดิมไว้ ใช้โปรไฟล์ Gemini Flash เริ่มต้นสำหรับการแปลที่รวดเร็วและงานจดบันทึกขนาดใหญ่ จากนั้นจึงเปลี่ยนไปใช้โมเดลตามงานเมื่อต้องการโมเดล Gemini ที่มีขนาดใหญ่กว่าหรือมีความสามารถมากกว่า + +หลีกเลี่ยงการวาง ID โมเดล Gemini ไว้ในโปรไฟล์ที่สอดคล้องกับ OpenAI เว้นแต่คุณจะใช้เกตเวย์ที่เปิดให้เข้าถึง Gemini ผ่าน API ที่สอดคล้องกับ OpenAI + +## จุดจบและการยืนยันตัวตน + +| Field | การตั้งค่าเริ่มต้น | +|-------|----------------| +| ระบบส่งข้อมูล | `google` | +| คีย์ API | จำเป็นหรือไม่ | +| Base URL | `https://generativelanguage.googleapis.com/v1` | +| โมเดลเริ่มต้น | `gemini-2.0-flash-exp` | +| Temperature | `0.5` | +| การทดสอบการเชื่อมต่อ | แบบแชทเท่านั้น | + +ระบบทำงานจะเรียกใช้ `/models/{model}:generateContent?key={apiKey}` โดยคีย์จะถูกส่งเป็นพารามิเตอร์คำขอ เนื่องจากนั่นคือวิธีที่จุดจบของ Gemini แบบดั้งเดิมถูกเชื่อมต่อในปลั๊กอิน + +## การค้นหาโมเดล + +Google ใช้โหมดการค้นหา `google-models` การค้นหาควรส่งคืนโมเดล Gemini ที่พร้อมใช้งานสำหรับคีย์ API หากตัวเลือกยังว่างอยู่ ให้ทดสอบคีย์กับ Base URL เดียวกันและยืนยันว่าครอบครัวโมเดลถูกเปิดใช้งานสำหรับบัญชีนั้น + +ขีดจำกัดของโทเค็นผลลัพธ์ที่ทราบกันอยู่นั้นขึ้นอยู่กับโมเดลในรีจิสทรีผู้ให้บริการ หากการแปลหรือคำอธิบายแผนภาพที่ยาวถูกตัดออก ให้เลือกโมเดล Gemini ที่มีขีดจำกัดผลลัพธ์ที่สูงกว่า หรือลดขนาดผลลัพธ์ที่ร้องขอลง + +## การแก้ไขปัญหา + +- `400`: ID โมเดลมักจะไม่ตรงกับเส้นทางของ Gemini แบบดั้งเดิม หรือคำขอมีขนาดเกินกว่าที่โมเดลรองรับ +- `401` หรือ `403`: ตรวจสอบข้อจำกัดของคีย์ การเปิดใช้งานโปรเจกต์/API และว่าคีย์สามารถเข้าถึง Gemini ได้หรือไม่ +- `404`: ID โมเดลไม่พร้อมใช้งานในเวอร์ชัน API ที่กำหนดค่าไว้ +- ตัวอย่างเกตเวย์จะล้มเหลวภายใต้โปรไฟล์นี้: ให้ใช้การตั้งค่าเกตเวย์แทนผู้ให้บริการ Google แบบดั้งเดิม + +## เมื่อควรใช้ + +ใช้ Google สำหรับการแปลที่รวดเร็ว การจัดการจดบันทึกจำนวนมาก และงานที่ความสมดุลระหว่างต้นทุนกับประสิทธิภาพของ Gemini ดีกว่าการใช้ OpenAI หรือ Anthropic โดยตรง ควรเลือกผู้ให้บริการอื่นสำหรับงานที่ต้องการการจัดการโมเดลการให้เหตุผลที่สอดคล้องกับ OpenAI + +--- + +## ขั้นตอนต่อไป + +- [LLM ผู้ให้บริการ](/docs/providers/overview) -- การกำหนดค่าแบบเต็มรูปแบบ, โมเดลตามงาน, และตรรกะการทดลองใหม่ +- [การแปล](/docs/features/translation) -- แนะนำให้ใช้ Gemini Flash สำหรับงานแปลจำนวนมาก diff --git a/website/i18n/th/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/th/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..9f1b64da --- /dev/null +++ b/website/i18n/th/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "โมเดลท้องถิ่น" +description: "กำหนดค่า Ollama และ LLMs ท้องถิ่น" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# โมเดลท้องถิ่น + +<TLDR> +**ผู้ให้บริการท้องถิ่นจะไม่เก็บเนื้อหาของบันทึกไว้ใน APIs ที่โฮสต์ไว้** เส้นทางท้องถิ่นปัจจุบันครอบคลุม Ollama โดยใช้การส่งข้อมูลแบบ `ollama` ดั้งเดิมและ LMStudio ผ่านการส่งข้อมูลที่สอดคล้องกับ OpenAI ไม่จำเป็นต้องมีคีย์ API สำหรับเส้นทางใดๆ แต่เซิร์ฟเวอร์และโมเดลท้องถิ่นจะต้องทำงานอยู่ก่อน + +นี่เป็นส่วนหนึ่งของ [Obsidian คู่มือการจัดการความรู้ด้วย AI](/docs/pillar-ai-knowledge) +</TLDR> + +## การตั้งค่า + +สำหรับ Ollama ให้ติดตั้ง Ollama ดึงโมเดลที่ต้องการ รันเซิร์ฟเวอร์ และเพิ่มโปรไฟล์ผู้ให้บริการ `Ollama` ใน Notemd สำหรับ LMStudio ให้โหลดโมเดลในเซิร์ฟเวอร์ท้องถิ่นของ LM Studio และเพิ่มโปรไฟล์ผู้ให้บริการ `LMStudio` + +โมเดลท้องถิ่นเป็นส่วนประกอบที่จำเป็นต่อการทำงาน ไม่ใช่เพียงแค่การตั้งค่าเท่านั้น Notemd สามารถเรียกใช้ได้เฉพาะสิ่งที่กระบวนการท้องถิ่นเปิดเผยเท่านั้น ดังนั้นควรตรวจสอบโมเดลท้องถิ่นนอก Obsidian ก่อนที่จะดีบักพลักอิน + +## จุดจบและการยืนยันตัวตน + +| ผู้ให้บริการ | Base URL | โมเดลเริ่มต้น | คีย์ API | หมายเหตุ | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | ไม่จำเป็น | การสตรีม NDJSON; การค้นหาโมเดลผ่าน `/api/tags` | +| LMStudio | `localhost:1234/v1` | `local-model` | ไม่จำเป็น | ส่ง `"EMPTY"` ในรูปแบบบีอาร์เออร์โทเค็น; สอดคล้องกับ OpenAI | + +Ollama ใช้เส้นทาง `/chat` ดั้งเดิมใต้ Base URL ของมัน LMStudio จะใช้เส้นทาง `chat/completions` ที่สอดคล้องกับ OpenAI และคาดหวังว่าจะมีโมเดลที่ถูกโหลดไว้ในเซิร์ฟเวอร์ท้องถิ่น + +## การค้นหาโมเดล + +Ollama ใช้โหมดการค้นหา `ollama-tags` และแสดงรายการแท็กที่ดึงมาจากท้องถิ่น LMStudio ใช้การค้นหาโมเดลที่สอดคล้องกับ OpenAI เมื่อเซิร์ฟเวอร์ของมันเปิดเผย `/v1/models` + +หากการค้นหาไม่พบอะไรเลย มักเกิดจากปัญหาสถานะของเซิร์ฟเวอร์ท้องถิ่น นั่นคือโมเดลยังไม่ได้รับการดึงหรือโหลด หรือเซิร์ฟเวอร์ถูกกำหนดให้ใช้ฮอสต์/พอร์ตที่แตกต่างจากโปรไฟล์ + +## การแก้ไขปัญหา + +- การเชื่อมต่อถูกปฏิเสธ: เริ่มต้น Ollama หรือ LM Studio และตรวจสอบพอร์ตที่กำหนดไว้. +- ไม่พบโมเดล: ดึงแท็ก Ollama หรือโหลดโมเดล LM Studio ก่อนทำการทดสอบ. +- ผลลัพธ์ช้า: ลดขนาดคอนเท็กซ์ต์ ใช้โมเดลท้องถิ่นที่มีขนาดเล็กลง หรือส่งงานที่มีภาระหนักไปยังผู้ให้บริการที่โฮสต์. +- คำตอบว่างหรือมีรูปแบบผิด: ตรวจสอบให้แน่ใจว่าโปรไฟล์ผู้ให้บริการที่เลือกสอดคล้องกับโปรโตคอลของเซิร์ฟเวอร์ท้องถิ่น; Ollama และ LMStudio ไม่สามารถใช้แทนกันได้. + +## เมื่อควรใช้ + +ใช้ผู้ให้บริการท้องถิ่นสำหรับตู้เซฟส่วนตัว การทำงานออฟไลน์ หรืองานที่ต้องทำซ้ำและมีค่าใช้จ่ายต่ำ อย่าสันนิษฐานว่าการใช้ท้องถิ่นจะดีกว่าโดยอัตโนมัติสำหรับการสังเคราะห์ข้อมูลเพื่อการวิจัยหรือการให้เหตุผลระยะยาว เนื่องจากคุณภาพของโมเดลและข้อจำกัดด้านฮาร์ดแวร์คือสิ่งที่ต้องแลกเปลี่ยนกัน. + +--- + +## ขั้นตอนต่อไป + +- [LLM Providers](/docs/providers/overview) -- การกำหนดค่าเต็มรูปแบบและการตั้งค่าโมเดลสำหรับแต่ละงาน +- [Troubleshooting](/docs/advanced/troubleshooting) -- วิธีแก้ไขข้อผิดพลาดการเชื่อมต่อถูกปฏิเสธเมื่อเซิร์ฟเวอร์ท้องถิ่นไม่ทำงาน diff --git a/website/i18n/th/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/th/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..986c4023 --- /dev/null +++ b/website/i18n/th/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "กำหนดค่า OpenAI (GPT-4, GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# ผู้ให้บริการ OpenAI + +<TLDR> +**OpenAI ใช้ระบบขนส่งที่เข้ากันได้กับ OpenAI ร่วมกัน** การตั้งค่าเริ่มต้นปัจจุบันคือ `gpt-4o`, `https://api.openai.com/v1`, `temperature: 0.5` และการทดสอบการเชื่อมต่อ `models-then-chat` ใช้หน้านี้เมื่อคุณต้องการความหมายของฟิลด์ที่แม่นยำ ใช้ภาพรวม [LLM Providers](/docs/providers/overview) เพื่อเลือกในระดับหมวดหมู่. + +นี่เป็นส่วนหนึ่งของ [Obsidian คู่มือการจัดการความรู้ด้วย AI](/docs/pillar-ai-knowledge) +</TLDR> + +## การตั้งค่า + +สร้างคีย์ OpenAI API หนึ่ง ใส่โปรไฟล์ผู้ให้บริการ `OpenAI` ในการตั้งค่า Notemd และใช้ Base URL เริ่มต้นเว้นแต่คุณจะตั้งใจใช้เกตเวย์ที่เข้ากันได้กับ OpenAI ฟิลด์โมเดลสามารถคงอยู่ที่ `gpt-4o` สำหรับงานทั่วไป หรือจะเปลี่ยนเป็น ID โมเดล OpenAI อื่นที่บัญชีของคุณสามารถเรียกใช้ได้ก็ได้. + +ใช้โมเดลที่เหมาะสมกับงานเพื่อควบคุมต้นทุน: ใช้โมเดลที่มีประสิทธิภาพสูงสำหรับการวิจัย การดึงข้อมูลแนวคิด และการปรับโครงสร้างเนื้อหายาว ใช้โมเดลที่มีราคาถูกหรือเร็วกว่าสำหรับการแปล การแนะนำลิงก์ และการสรุปเนื้อหาสั้นๆ. + +## จุดจบและการยืนยันตัวตน + +| Field | การตั้งค่าเริ่มต้น | +|-------|----------------| +| ระบบส่งข้อมูล | `openai-compatible` | +| คีย์ API | จำเป็นหรือไม่ | +| Base URL | `https://api.openai.com/v1` | +| โมเดลเริ่มต้น | `gpt-4o` | +| Temperature | `0.5` | +| การทดสอบการเชื่อมต่อ | `/models` จากนั้น `/chat/completions` | + +Notemd ทำการปรับให้ OpenAI-compatible base URLs เป็นมาตรฐานก่อนที่จะเพิ่ม `chat/completions` หรือ `models` อย่าเพิ่ม `/chat/completions` ท้ายสุดใน Base URL เพราะจะทำให้เกิดเส้นทางซ้ำกัน. + +## การค้นหาโมเดล + +OpenAI ใช้เส้นทางการค้นหาโมเดลทั่วไปที่เข้ากันได้กับ OpenAI การตั้งค่า UI จะถาม `/v1/models` ก่อน จากนั้นจึงยืนยันโมเดลที่เลือกด้วยคำขอแชทที่มีน้ำหนักเบา หากการค้นหาล้มเหลวแต่การแชทยังทำงานได้ ให้ตรวจสอบว่าคีย์ของคุณมีสิทธิ์ดูรายการโมเดลหรือไม่ หรือมีเกตเวย์ใดบล็อกการแสดงรายการโมเดลหรือไม่. + +โมเดลการให้เหตุผลถูกจัดเป็นกรณีพิเศษของโปรโตคอล: Notemd รวมเนื้อหาคำสั่งของระบบและผู้ใช้เข้าด้วยกันเพื่อสร้าง ID การให้เหตุผล OpenAI ซึ่งจะปฏิเสธบทบาท `system` ที่แยกต่างหาก และจะเปิดเผย `reasoningEffort` เฉพาะในกรณีที่นิยามของผู้ให้บริการรองรับเท่านั้น. + +## การแก้ไขปัญหา + +- `401` หรือ `403`: ตรวจสอบคีย์ สิทธิ์เข้าถึงโปรเจกต์ สถานะการเรียกเก็บเงิน และดูว่าโมเดลที่เลือกได้รับการเปิดใช้งานสำหรับคีย์นั้นหรือไม่. +- `404` บนการแชท: Base URL มักจะผิดหรือมี `/chat/completions` อยู่แล้ว. +- โมเดลปรากฏในเอกสารแต่ไม่ปรากฏในตัวเลือก: สิทธิ์ดูรายการโมเดลและสิทธิ์การแชทเป็นจุดล้มเหลวที่แยกจากกัน ให้ทดสอบ ID โมเดลที่แน่นอนด้วยตนเองในโปรไฟล์ผู้ให้บริการ. +- โมเดลการให้เหตุผลปฏิเสธข้อความ: ใช้ ID โมเดลที่อยู่ภายใต้เส้นทางการจัดการการให้เหตุผล OpenAI หรือเปลี่ยนไปใช้โมเดลการแชทที่ไม่ใช่การให้เหตุผล + +## เมื่อควรใช้ + +ใช้ OpenAI เมื่อคุณต้องการเส้นทางโฮสต์เริ่มต้นที่สามารถคาดการณ์ได้มากที่สุด, เมื่อการค้นหา `/v1/models` มีความสำคัญ, หรือเมื่อกระบวนการทำงานต้องพึ่งพาระบบสัญญาณทางตรรกะของ OpenAI ควรเลือกใช้เกตเวย์หรือผู้ให้บริการในท้องถิ่นเมื่อเรื่องการส่งต่อ, ความเป็นส่วนตัว, หรือการควบคุมต้นทุนมีความสำคัญมากกว่าพฤติกรรมการทำงานแบบตรงของ OpenAI API. + +--- + +## ขั้นตอนต่อไป + +- [LLM ผู้ให้บริการ](/docs/providers/overview) -- การกำหนดค่าแบบเต็มรูปแบบ, โมเดลตามงาน, และตรรกะการทดลองใหม่ +- [การแก้ไขปัญหา](/docs/advanced/troubleshooting) -- แก้ไขข้อผิดพลาด 401/403 และข้อผิดพลาดด้านการจำกัดอัตราการใช้งาน diff --git a/website/i18n/th/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/th/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..918257da --- /dev/null +++ b/website/i18n/th/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "ผู้ให้บริการ LLM" +description: "กำหนดค่าผู้ให้บริการ LLM จำนวน 36 ราย — ทั้งแบบคลาวด์, เกตเวย์ และแบบท้องถิ่น — พร้อมการเลือกโมเดลตามแต่ละงาน" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# ผู้ให้บริการ LLM + +<TLDR> +**Notemd รองรับผู้ให้บริการ LLM จำนวน 36 รายใน 4 ประเภทการส่งข้อมูล** การเรียกใช้งานทั้งหมด API จะใช้ HTTP แบบดิบ (ไม่ใช้ SDK) พร้อมการพยายามใหม่โดยอัตโนมัติ, การสลับวิธีการส่งข้อมูล และการเก็บค่าตอบกลับไว้เป็นเวลา 5 นาที การเลือกโมเดลตามแต่ละงานช่วยให้คุณสามารถใช้โมเดลราคาถูกสำหรับการสกัดแนวคิดและโมเดลที่ทรงพลังสำหรับการวิจัยได้ ไม่จำเป็นต้องมีคีย์ API สำหรับผู้ให้บริการแบบท้องถิ่น (Ollama, LMStudio) +</TLDR> + +นี่เป็นส่วนหนึ่งของ [Obsidian คู่มือการจัดการความรู้ด้วย AI](/docs/pillar-ai-knowledge) + +## หมวดหมู่ของผู้ให้บริการ + +### ผู้ให้บริการคลาวด์ + +| ผู้ให้บริการ | ค่าเริ่มต้นของ URL | โมเดลเริ่มต้น | Temperature | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### ผู้ให้บริการเกตเวย์/พร็อกซี่ + +| ผู้ให้บริการ | ค่าเริ่มต้นของ URL | โมเดลเริ่มต้น | หมายเหตุ | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | เพิ่มหัวเรื่อง `HTTP-Referer` + `X-Title` | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | เพิ่มหัวเรื่อง `X-GitHub-Api-Version` | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | เพิ่มหัวเรื่อง `APP-Code` | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | คีย์ที่สามารถเลือกใช้ได้ API | +| **New API** | `localhost:3000/v1` | `gpt-4.1` | คีย์ที่สามารถเลือกใช้ได้ API | +| **OpenAI Compatible** | (user-configured) | `your-model-id` | จุดปลายทางที่กำหนดเอง | + +### ผู้ให้บริการจากประเทศจีน + +| ผู้ให้บริการ | Base URL แบบเริ่มต้น | โมเดลเริ่มต้น | หมายเหตุ | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | เน้นการเขียนโค้ด | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (ต้องมี ID จุดสิ้นสุด) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | จุดปลายทางในประเทศจีน Zhipu | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | จิปู, จุดปลายทางระดับนานาชาติ | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | แพลตฟอร์มโฮสต์โมเดล | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao ต้องการหมายเลขจุดปลายทาง Ark** (รูปแบบ: `ep-xxxxxxxx-xxxx-xxxx`) ต้องแทนที่ค่า placeholder ดีฟอลต์ให้หมด. + +### ผู้ให้บริการในท้องถิ่น + +| ผู้ให้บริการ | Base ดีฟอลต์ URL | โมเดลเริ่มต้น | หมายเหตุ | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | ไม่มีคีย์ API การสตรีม NDJSON การค้นหาโมเดลผ่าน `/api/tags` | +| **LMStudio** | `localhost:1234/v1` | `local-model` | ส่ง `"EMPTY"` เป็น bearer token การค้นหาที่รองรับ OpenAI | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (ตั้งค่าโดยผู้ใช้) | `gpt-4o` | ชื่อการจัดจำหน่ายใน URL หัวข้อ `api-key` | + +## การเลือกโมเดลตามงาน + +Notemd รองรับผู้ให้บริการและโมเดลที่แยกจากกันสำหรับแต่ละงาน สามารถเปิดใช้งานได้ด้วย `useMultiModelSettings: true`. + +### งานที่มีให้บริการ + +| งาน | คีย์การตั้งค่า | ผู้ให้บริการเริ่มต้น | +|------|-------------|-----------------| +| เพิ่มลิงก์ (การแทรกลิงก์วิกิ) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| การค้นคว้า (ค้นหาบนเว็บ + สรุปผล) | `researchProvider` / `researchModel` | DeepSeek | +| สร้างจากชื่อ | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| การแปล | `translateProvider` / `translateModel` | DeepSeek | +| การสร้างแผนภาพ | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| การดึงข้อมูลแนวคิด | `extractConceptsProvider` / `Model` | DeepSeek | +| การดึงข้อความต้นฉบับ | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### ลำดับการแก้ไข + +1. หาก `useMultiModelSettings` อยู่ → ใช้ผู้ให้บริการและโมเดลที่เฉพาะเจาะจงกับงาน +2. หากการเปลี่ยนแปลงโมเดลของงานว่างเปล่า → กลับไปใช้โมเดลเริ่มต้นของผู้ให้บริการ +3. หากผู้ให้บริการของงานไม่ถูกต้อง → กลับไปใช้ `activeProvider` ระดับโลก +4. หาก `useMultiModelSettings` ปิดอยู่ → งานทั้งหมดจะใช้ `activeProvider` แบบกลาง + +### การตั้งค่าที่แนะนำ + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## API Call Architecture + +### Transport Layers + +1. **Obsidian `requestUrl`** — รูปแบบหลัก (มาพร้อมกับระบบ ทำงานได้บนทุกแพลตฟอร์ม) +2. **Desktop HTTP** — โมดูล Node.js `http`/`https` (สตรีมมิ่ง + คำขอยาว) +3. **Web `fetch`** — ใช้เป็นทางเลือกสำรองเมื่อไม่สามารถใช้โมดูล Node.js ได้ + +ปลั๊กอินจะสลับรูปแบบการส่งข้อมูลโดยอัตโนมัติเมื่อเกิดข้อผิดพลาดชั่วคราวบนเครือข่าย. + +### ตรรกะการทดลองใหม่ + +- **โหมดปกติ** (`enableStableApiCall: false`): ทดลองใหม่เพียงครั้งเดียว หากเกิดความล้มเหลวชั่วคราว จะทำการยกระดับเป็นการทดลองใหม่แบบมั่นคงโดยอัตโนมัติ. +- **โหมดการทดลองใหม่แบบมั่นคง** (`enableStableApiCall: true`): ทดลองใหม่สูงสุด 4 ครั้ง (1 ครั้งแรก + 3 ครั้งทดลองใหม่) โดยมีช่วงเวลาห่างกัน 5 วินาที. +- **ข้อผิดพลาดชั่วคราวที่กระตุ้นให้ทดลองใหม่**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **ข้อผิดพลาดที่ไม่สามารถทดลองใหม่ได้**: HTTP 400, 401, 403, 404 + +### การเก็บข้อมูลตอบกลับ + +คิวอาร์ซีแบบในหน่วยความจำที่ใช้เวลา 5 นาที โดยใช้คีย์จากผู้ให้บริการ + โมเดล + อุณหภูมิ + คำขอ + เนื้อหา คำขอที่เหมือนกันภายใน 5 นาทีจะได้รับผลลัพธ์จากคิวอาร์ซีที่เก็บไว้ทันที. + +### การจัดการโมเดลการให้เหตุผล + +โมเดลที่ไม่รองรับบทบาท `system` (DeepSeek R1, OpenAI o1/o3/o4/gpt-5) จะถูกรวมคำขอจากระบบและผู้ใช้เข้าด้วยกันเป็นข้อความผู้ใช้เดียวโดยอัตโนมัติ. + +DeepSeek-specific: `thinkingEnabled` จะเพิ่ม `{ thinking: { type: 'enabled' } }` เข้าไปในคำขอ ส่วน `reasoningEffort` (ต่ำ/ปานกลาง/สูง) จะถูกส่งในรูปแบบ `reasoning_effort` และจะมีการตรวจสอบให้แน่ใจว่าจำนวนโทเค็นผลลัพธ์สูงสุด ≥ 8000 เมื่อเปิดการคิด. + +### การประมาณค่าโทเค็น + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — ใช้หลักการประมาณการ 4 ตัวอักษรต่อโทเค็น ใช้เพื่อบังคับใช้ `maxResearchContentTokens` ก่อนส่งไปยัง LLM. + +ไม่มีการติดตามค่าใช้จ่ายที่ถูกนำมาใช้. + +## การค้นหาโมเดล + +| โหมด | ผู้ให้บริการ | จุดจบของเซิร์ฟเวอร์ | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | รายการโมเดล API | +| `anthropic-models` | Anthropic | รายการโมเดล API | +| `openai-compatible-models` | DeepSeek, Qwen, Mistral ฯลฯ | `/v1/models` | +| `openrouter-models` | OpenRouter | รายการโมเดล API | +| `github-models` | GitHub Models | การประมวลผล API | +| `none` | Azure OpenAI | ถูกปิดใช้งาน (ต้องมีชื่อการจัดส่ง) | + +## เริ่มต้นอย่างรวดเร็ว + +1. **เลือกผู้ให้บริการ** — DeepSeek (ประเทศจีน), OpenAI (ระดับนานาชาติ) หรือ Ollama (ท้องถิ่น/ฟรี) +2. **ป้อนคีย์ API** — การตั้งค่า → Notemd → ผู้ให้บริการ → คีย์ API +3. **ทดสอบการเชื่อมต่อ** — คลิกปุ่มทดสอบ +4. **ตัวเลือก: โมเดลตามงาน** — เปิดใช้งาน `useMultiModelSettings` และกำหนดค่าแยกกัน + +สำหรับ Ollama: ไม่จำเป็นต้องมีคีย์ API เพียงแค่ตรวจสอบให้แน่ใจว่า `ollama serve` กำลังทำงานอยู่. + +--- + +## ขั้นตอนต่อไป + +- 📝 [บันทึกแนวคิด](/docs/features/concept-notes) — ใช้โมเดลการสกัดข้อมูลตามงาน +- 🎨 [แผนภาพ](/docs/features/diagrams) — ใช้โมเดลแผนภาพตามงาน +- 🔍 [Research](/docs/features/research) — ใช้โมเดลสำหรับการวิจัย +- ⚙️ [Configuration](/docs/getting-started/configuration) — คู่มือการตั้งค่าทั้งหมด diff --git a/website/i18n/th/docusaurus-theme-classic/footer.json b/website/i18n/th/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/th/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/th/docusaurus-theme-classic/navbar.json b/website/i18n/th/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/th/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/tr/code.json b/website/i18n/tr/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/tr/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/tr/docusaurus-plugin-content-docs/current.json b/website/i18n/tr/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/tr/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/tr/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/tr/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..d2192416 --- /dev/null +++ b/website/i18n/tr/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "Toplu İşleme" +description: "Birden fazla dosyayı verimli bir şekilde işleyin" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# Toplu İşleme + +<TLDR> +**Notemd, ayarlanabilir eşzamanlılık ve üzerine yazma kontrolü ile tüm klasörleri tek seferde işler.** Bir klasöre sağ tıklayarak içindeki tüm notlara wiki bağlantıları ekleyebilir, kavramları çıkarabilir, araştırma yapabilir veya çeviri yapabilirsiniz. Eşzamanlılık sınırları API hız sınırı hatalarını önler. İlerleme her dosya için raporlanır. Üzerine yazma davranışı ayarlanabilir: mevcutları atlamak, eklemek veya değiştirmek. Başarısız olan dosyalar, toplu işlemi durdurmadan kaydedilir. + +Bu içerik [Obsidian AI Bilgi Yönetimi Kılavuzu](/docs/pillar-ai-knowledge) serisinin bir parçasıdır. +</TLDR> + +## Genel Bakış + +Toplu işleme, notların bulunduğu bir klasörü tek bir işlem haline getirir. Her bir notu ayrı ayrı açıp komutları çalıştırmak yerine, klasöre sağ tıklayıp görevi seçersiniz. Notemd, her `.md` dosyasını dolaşır, seçilen işlemi uygular ve ilerlemeyi gerçek zamanlı olarak raporlar. + +Bu özellik, tüm veri havuzundaki bilgilerin çıkarılması için vazgeçilmezdir. Örneğin, onlarca PDF dosyasını içe aktardıktan sonra, önce toplu bağlantı ekleme ardından toplu kavram çıkarma işlemleri sayesinde bilgi grafiğiniz saatler yerine dakikalar içinde oluşturulur. + +## Nasıl Çalışır + +### Toplu İşlem Modeli + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **Dosya toplama** -- Notemd, hedef klasörü özyinelemeli olarak tarar (veya ayarlara bağlı olarak yalnızca üst düzeyde) ve tüm `.md` dosyalarını toplar. +2. **Eşzamanlılık bölme** -- Dosyalar, `batchConcurrency` ayarına göre parçalara ayrılır. Her parça paralel olarak çalışır; parçalar ise sıralı olarak çalışır. +3. **İşleme** -- Her dosya, tek dosya komutunda kullanılan aynı mantıkla işlenir. Görev başına sağlayıcı ve model ayarları dikkate alınır. +4. **İlerleme raporlama** -- Her dosya tamamlandığında bir bildirim penceresi güncellenir ve `N / Total` ilerlemesi gösterilir. +5. **Hata yönetimi** -- Bir dosya başarısız olursa (API hatası, ağ zaman aşımı vb.), hata kaydedilir ve toplu işlem devam eder. Son özet, başarısız olan dosyaları listeler. +6. **Tamamlanma** -- Bir özet bildirimi, toplamda işlenen, başarılı ve başarısız olanları raporlar. + +### Üst Üste Yazma Davranışı + +Zaten wiki-bağlantıları, kavram notları veya çeviriler içeren bir dosya işlenirken, Notemd'ın davranışı üst üste yazma ayarına bağlıdır: + +| Mod | Davranış | +|------|----------| +| **Atla** | Mevcut içerik dokunulmaz kalır. Yalnızca değiştirilmemiş dosyalar işlenir. | +| **Ekle** (varsayılan) | Yeni içerik eklenir. Mevcut wiki-bağlantıları, kavramlar veya çeviriler korunur. | +| **Yerine Koyma** | Dosya tamamen yeniden işlenir. Tüm önceki Notemd değişiklikleri üst üste yazılır. | + +Özellikle wiki-bağlantıları için: bir not zaten `[[wiki-links]]` içeriyorsa, **Atla** modu onu olduğu gibi bırakırken, **Yerine Koyma** modu tüm notu yeni bağlantı ekleme işlemi için LLM'a yeniden gönderir. Artımlı işleme için **Atla**, model yükseltmesinden sonra yeniden işleme için **Yerine Koyma** kullanın. + +### Eş Zamanlılık Kontrolü + +`batchConcurrency` ayarı, paralel API çağrılarını sınırlar. Bu sayede, sıkı kota politikalarına sahip sağlayıcılarda büyük klasörler işlenirken oran sınırlama hataları (HTTP 429) önlenebilir. + +| Eş Zamanlılık | Tavsiye Edilen Kullanım Alanları | Tipik Oran Sınırlama Etkisi | +|-------------|----------------|---------------------------| +| `1` | Ücretsiz planlar, katı sağlayıcılar | Yok (sıralı) | +| `3` (varsayılan) | Çoğu bulut sağlayıcısı | Düşük | +| `5` | Ollama (yerel), cömert planlar | Yok / Düşük | +| `10` | Hızlı çıkarım yapan yerel modeller | Yok | + +Toplu işleme sırasında 429 hataları alırsanız eşzamanlılık düzeyini 1 veya 2'ye düşürün. + +## Yapılandırma + +| Ayar | Varsayılan | Etki | +|---------|---------|--------| +| `batchConcurrency` | `3` | Klasör işlemleri sırasında maksimum paralel API çağrısı | +| `batchOverwriteExisting` | `false` | Mevcut Notemd içeriğini üzerine yazın. `false` = ekleme modudur. | +| `batchSkipProcessed` | `false` | Zaten Notemd işaretleyicilerini içeren dosyaları atlayın (örneğin, wiki bağlantıları) | +| `batchRecursive` | `true` | Klasörü tararken alt klasörleri dahil edin | +| `enableStableApiCall` | `false` | Toplu işlemler sırasında her dosya için yeniden deneme mantığını etkinleştirin (en fazla 4 deneme) | + +### Toplu İşlemlerde Görev Bazlı Modeller + +Her toplu işlem operasyonu ilgili görev bazlı modeli kullanır. batch-add-links `addLinksProvider` kullanır, batch-research `researchProvider` kullanır ve benzeri. Bu sayede yüksek hacimli işlemler için ucuz modeller atayabilir ve kaliteye duyarlı görevler için pahalı modelleri ayırabilirsiniz. + +## Örnek + +`papers/` adında 40 adet içe aktarılmış araştırma notunun bulunduğu bir klasörünüz var. Tüm notlara wiki bağlantıları eklemek ve bunlardan kavramlar çıkarmak istiyorsunuz: + +1. `papers/` klasörüne sağ tıklayın +2. **"Notemd: Klasörü işle (bağlantılar ekle)"** seçeneğini seçin +3. Notemd klasörü tarar, 40 adet `.md` dosyası bulur ve varsayılan eşzamanlılık düzeyinde her seferinde 3 tanesini işler +4. Bir ilerleme bildirimi şunu gösterir: `12/40 files processed...` +5. Yaklaşık 3 dakika sonra bir özet bildirimi şunu rapor eder: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. Tüm 40 dosya için konsept notları oluşturmak amacıyla **"Notemd: Klasörü işle (kavramları çıkar)"** seçeneğiyle tekrarlayın + +Başarısız olan tek dosya kaydedilir. Daha sonra yalnızca bu dosya üzerinde yeniden çalıştırma yapabilirsiniz. + +## İpuçları + +- **Düşük eşzamanlılıkla başlayın** -- Sağlayıcınızın hız sınırlamalarından emin değilseniz, `1` ile başlayıp kademeli olarak artırın. +- **Artımlı güncellemeler için atla modunu kullanın** -- İlk tam parti işlendikten sonra `batchSkipProcessed: true` moda geçin ki sonraki çalıştırmalarda yalnızca yeni notlar işlensin. +- **Stabil API çağrılarını etkinleştirin** -- `enableStableApiCall: true`, uzun partiler sırasında geçici ağ hatalarından kurtulmak için yeniden deneme mantığı ekler. +- **Model yükseltmelerinden sonra yeniden çalıştırın** -- Daha iyi bir modele geçtiyseniz, `batchOverwriteExisting: true` değerini ayarlayıp daha iyi bağlantılar ve kavramlar elde etmek için yeniden çalıştırın. + +--- + +## Sonraki Adımlar + +- [İş Akışları](/docs/features/workflows) -- Toplu görevleri tek tıklamalı kenar çubuğu düğmeleri halinde zincirleyin +- [Özel İstekler](/docs/advanced/custom-prompts) -- Toplu çıkarma işlemleri için istekleri özelleştirin +- [Sorun Giderme](/docs/advanced/troubleshooting) -- Toplu çalıştırmalar sırasında ortaya çıkan hız sınırlama hatalarını ve bağlantı sorunlarını düzeltin +- [LLM Sağlayıcılar](/docs/providers/overview) -- Görev başına model yapılandırma referansı diff --git a/website/i18n/tr/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/tr/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..0a33b24a --- /dev/null +++ b/website/i18n/tr/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "Özel İstekler" +description: "İhtiyaçlarınıza göre LLM isteklerini özelleştirin" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# Özel İstekler + +<TLDR> +**Notemd, her görev türü için varsayılan LLM isteğini geçersiz kılmanızı sağlar.** Özel istekler, modelin neyi önceliklendireceği konusunda size kontrol verir: kavram çıkarma işlemini belirli bir alana sınırlayabilir, bağlantı stilini değiştirebilir veya çeviri tonunu yönlendirebilirsiniz. `{{content}}` ve `{{concept}}` gibi istek değişkenleri çalışma zamanında yerine konur. Odaklanmış öğrenme alanı özelliği, çıkarma sonuçlarını otomatik olarak kapsamlandırmak için çalışma alanınızı başına ekler. + +Bu içerik [Obsidian AI Bilgi Yönetimi Kılavuzu](/docs/pillar-ai-knowledge) serisinin bir parçasıdır. +</TLDR> + +## Genel Bakış + +Notemd'nin yerleşik istekleri genel amaçlı bilgi işleri için yazılmıştır. Bu istekler farklı alanlarda iyi çalışır, ancak alan özelinde iyileştirme yapılmasına da olanak tanır. Özel istekler, LLM'e kullanım durumunuz için tam olarak nasıl davranması gerektiğini söylemenizi sağlar -- bu, yalnızca tıbbi terimleri çıkarmak, yalnızca adlandırılmış varlıkları bağlamak veya resmi bir üslupla çevirmek anlamına gelebilir. + +Özel istekler tüm sistem isteğinin yerine geçmez. Bunlar, Notemd'in ayrıştırma işlemi için bağımlı olduğu yapısal çıktı formatını (örneğin `CONCEPT:` satırları, wiki bağlantısı sözdizimi) korurken **görev özelindeki talimat bölümünü** geçersiz kılar veya genişletir. + +## Nasıl Çalışır + +### İstek Mimarisi + +Her Notemd görevi aynı istek yapısını takip eder: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **Temel sistem isteği** -- Asistan kişiliğini belirler. Geçersiz kılınamaz. +2. **Odaklanmış öğrenme alanı** -- Kapsamı sınırlamak için `Relevant Fields: [medicine / law / computer science / ...]`'yi başına ekler. Bu, ham bir istek değil, bir ayar düğmesidir. +3. **Özel görev isteği** -- Varsayılan görev talimatlarının yerine geçer (örneğin hangi tür kavramların çıkarılacağı, ne kadar agresif bağlantı yapılacağı). +4. **Çıktı formatı** -- Yapısal kurallar (`CONCEPT:` satırları, wiki bağlantısı formatı). Ayrıştırılabilirliği sağlamak için her zaman Notemd tarafından eklenir. +5. **İçerik** -- Gerçek not metni, çalışma zamanında `{{content}}` aracılığıyla yerine konur. + +### İstek Değişkenleri + +Değişkenler çalışma zamanında yerine konur. Mevcut değişkenler göreve göre farklılık gösterir: + +| Değişken | Görevler | Yerine Konulan | +|----------|-------|---------------| +| `{{content}}` | Hepsi | Not veya seçilen metin | +| `{{concept}}` | Kavram notu şablonu | Çıkarılan kavram adı | +| `{{description}}` | Kavram notu şablonu | LLM-oluşturulan kavram açıklaması | +| `{{backlinks}}` | Kavram notu şablonu | Bağlantılarla birlikte kaynak notların listesi | +| `{{date}}` | Kavram notu şablonu | Mevcut tarih (YYYY-MM-DD) | +| `{{language}}` | Çeviri | Hedef çıktı dili | +| `{{source}}` | Kavram notu şablonu | Kaynak notun temel adı | + +### Odaklanmış Öğrenme Alanı + +Odaklanmış öğrenme özelliği, alan sınırlaması için bir kısayoldur. Alanınızı belirten özel bir istem yazmak yerine, ayarlar içinde `focusedLearningDomain` değerini belirlersiniz: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +Bu işlem, çıkarma istemine `Relevant Fields: [medicine]` ekler ve böylece LLM'ın alanla ilgili kavramlara öncelik vermesini ve genel kavramları bastırmasını sağlar. Bu yöntem, tamamen özel bir istemden daha hafiftir ve tüm çıkarma görevlerinde çalışır. + +## Yapılandırma + +| Ayar | Varsayılan | Etki | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | Varsayılan bağlantı ekleme görev istemini geçersiz kıl | +| `customExtractConceptsPrompt` | `''` | Varsayılan kavram çıkarma istemini geçersiz kıl | +| `customResearchPrompt` | `''` | Varsayılan araştırma + özetleme istemini geçersiz kıl | +| `customTranslatePrompt` | `''` | Varsayılan çeviri istemini geçersiz kıl | +| `customDiagramPrompt` | `''` | Varsayılan diyagram oluşturma istemini geçersiz kıl | +| `focusedLearningDomain` | `''` | Çıkarma ve bağlantı istemlerine disiplin bağlamını ekleyin | +| `extractConceptsMinimalTemplate` | `true` | Sadece başlık içeren kavram notu şablonunu kullanın (bu, `{{concept}}` şablon kapsamını etkiler) | +| `customConceptNoteTemplate` | `''` | Tam değişken desteğiyle kavram notu dosya şablonunu geçersiz kıl | + +**Özel bir istem alanı boş olduğunda, yerleşik varsayılan istem kullanılır.** + +## Örnek + +Siz bir tıp araştırmacısısınız ve klinik deneme notlarından kavramlar çıkarıyorsunuz. Varsayılan istem, tıbbi terimlerin yanı sıra genel isimleri de çıkarır ve bu da kavram dosyanızı karıştırır. + +**Çözüm:** Bir odaklanmış öğrenme alanı ve özel bir çıkarma istemi belirleyin. + +1. `focusedLearningDomain` değerini `medicine` olarak ayarlayın +2. `customExtractConceptsPrompt` değerini şu şekilde ayarlayın: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +Şimdi bir klinik not üzerinde "Extract concepts" komutunu çalıştırdığınızda, LLM şu sonucu üretir: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +"hospital" veya "month" gibi istenmeyen genel terimleri de çıkarabilen varsayılan davranışın aksine. + +## İpuçları + +- Tamamen özel bir komut yazmadan önce **odaklanmış öğrenme alanından** başlayın. Bu yaklaşım tek bir ayarla kullanım durumlarının %80’ini kapsar. +- **Çıktı formatını koruyun** -- Özel komutlarda "one per line" veya "CONCEPT: prefix" gibi format talimatlarını asla kaldırmayın. Notemd’nin parser’ı bunlara bağlıdır. +- **Önce tek bir not ile test edin** -- Özel komutlar çıkarma genişliği üzerinde beklenmedik etkilere sahip olabilir. Toplu işleme yapmadan önce tek bir not üzerinde doğrulama yapın. +- **Komutları özlü tutun** -- Aşırı uzun özel komutlar token tüketir ve modelin odaklanmasını zayıflatabilir. + +--- + +## Sonraki Adımlar + +- [Wiki-Links](/docs/features/wiki-links) -- add-links komutunu özelleştirdiğinizde neyin bağlantılandırılacağı +- [Concept Notes](/docs/features/concept-notes) -- Kavram notu şablonları ve `{{concept}}` değişkeni +- [Batch Processing](/docs/advanced/batch-processing) -- Özel komutları tüm klasörlerde uygulama +- [Troubleshooting](/docs/advanced/troubleshooting) -- Özel komutların beklenmedik çıktılar ürettiği durumların düzeltilmesi diff --git a/website/i18n/tr/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/tr/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..0e65d0e8 --- /dev/null +++ b/website/i18n/tr/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "Sorun Giderme" +description: "Yaygın sorunlar ve çözümler" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Sorun Giderme + +<TLDR> +**En Notemd sorunları dört kategoriye ayrılır: API anahtar sorunları, ağ bağlantısı, kimlik doğrulama hataları (401/403) ve sınırlama hataları (429).** Dahili bağlantı testi ve teşhis paneli temel nedeni hızlıca belirler. Bu sayfa her bir yaygın hata mesajını, bunun nedenini ve düzeltme yöntemini kapsar. Burada listelenmeyen sorunlar için teşhis çıktılarıyla birlikte GitHub Issues üzerinden rapor edin. + +Bu içerik [Obsidian AI Bilgi Yönetimi Kılavuzu](/docs/pillar-ai-knowledge) serisinin bir parçasıdır. +</TLDR> + +## Genel Bakış + +Notemd, harici servislere -- LLM sağlayıcılarına ve arama API hizmetlerine -- bağlıdır; bu yüzden sorunların çoğu eklentinin kendisinden ziyade dışarıda ortaya çıkar. Ayarlar bölümündeki teşhis paneli, istek URL, yanıt durumu ve hata içeriği dahil olmak üzere son API çağrının yapılandırılmış bir görünümünü sunar. Daha fazla araştırma yapmadan önce her zaman bunu kontrol edin. + +## Nasıl Çalışır: Teşhis + +### Bağlantı Testi + +Her sağlayıcı ayar bölümünde **"Bağlantıyı Test Et"** butonu bulunur. Buna tıklandığında minimal bir API isteği gönderilir (genellikle bir model listesi veya kısa bir tamamlama) ve başarı durumu ya da belirli bir HTTP hata mesajı rapor edilir. Bu, API anahtarınızın ve temel URL değerinizin doğru olup olmadığını kontrol etmenin en hızlı yoludur. + +### Teşhis Paneli + +**Ayarlar --> Notemd --> Teşhis** şunları gösterir: + +| Alan | İçerik | +|-------|---------| +| Son sağlayıcı | En son hangi sağlayıcı çağrıldı | +| Son model | En son hangi model çağrıldı | +| Son durum | HTTP durum kodu veya iletim hatası | +| Son hata | API'dan gelen ham hata mesajı | +| Son istek URL | Son isteğin tamamı URL (gizlenmiş API anahtarı) | +| Son yanıt gövdesi | Kısaltılmış yanıt gövdesi (ilk 500 karakter) | + +GitHub'da sorunları raporlarken tüm teşhis çıktısını kopyalayın. + +## Yaygın Hatalar + +### API Anahtar geçersiz veya bulunamıyor + +**Belirti:** HTTP 401 veya "Yanlış API anahtarı sağlandı" + +**Neden:** API anahtarı eksik, boşluk içeriyor veya farklı bir sağlayıcıya ait. + +**Çözüm:** +1. Anahtarın başında veya sonunda boşluk olmadığını doğrula +2. Anahtarın seçilen sağlayıcıyla eşleştiğinden emin olun (bir OpenAI anahtarı Anthropic ile çalışmayacaktır). +3. Hesabınızda kredi bulunduğundan veya aktif bir abonelik olduğundan emin olun +4. Doğrulamak için **"Test Connection"** seçeneğine tıklayın + +### Ağ / Bağlantı Hataları + +**Belirtiler:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**Neden:** Makinenizden API uç noktasına erişilemiyor. + +**Çözüm:** +1. İnternet bağlantınızı kontrol edin +2. Eğer bir proxy veya güvenlik duvarının arkasındaysanız, API alan adının engellenmediğinden emin olun +3. Ollama için: `ollama serve`'ın çalıştığından emin olun (`ollama list` modelleri döndürmelidir) +4. LMStudio için: Sunucunun `localhost:1234` üzerinde çalıştığından emin olun +5. Farklı bir taşıma yöntemi deneyin -- mobil kullanıcılar `requestUrl` taşıma yönteminin aktif olduğundan emin olmalıdır +6. Geçici hatalarda otomatik yeniden deneme için `enableStableApiCall`'ı etkinleştirin + +### 403 Yasaklandı + +**Belirtiler:** HTTP 403 + +**Neden:** API anahtarınız geçerli ancak istenen kaynak için izinlere sahip değil. + +**Çözüm:** +1. Bazı modeller özel erişim gerektirir (örneğin, Azure üzerinden GPT-4 için bir dağıtım adı gerekir) +2. Bazı sağlayıcılar modelleri plan seviyesine göre sınırlar -- hesabınızı kontrol edin +3. Bölgesel kısıtlamalar uygulanabilir (bazı Çin sağlayıcıları uluslararası IP'leri engeller ve bunun tersi de geçerlidir) +4. Model adının doğru yazıldığından emin olun (örneğin, mini model tüm planınızın izin verdiği durumlarda `gpt-4o` değil `gpt-4o-mini` olmalıdır) + +### Hız Sınırı (429) + +**Belirti:** HTTP 429 veya "Hız sınırı aşıldı" + +**Neden:** Kısa bir süre içinde çok fazla istek gönderilmiştir. + +**Çözüm:** +1. `batchConcurrency` değerini `1` veya `2`'ye düşürün +2. Yeniden denemeden önce birkaç dakika bekleyin +3. Plan seviyeniz için sağlayıcınızın hız sınırı belgelerine bakın +4. Otomatik yeniden deneme ve geri sayım için `enableStableApiCall`'yı etkinleştirin +5. Daha yüksek sınırlara sahip bir sağlayıcıya geçmeyi düşünün (DeepSeek, Ollama) + +### Model Bulunamadı + +**Belirti:** "Model bulunamadı" veya HTTP 404 + +**Neden:** Seçilen sağlayıcıda model adı mevcut değildir. + +**Çözüm:** +1. Sağlayıcınız için mevcut tüm modelleri görmek üzere **"Model Listesi Al"** seçeneğine tıklayın +2. Bazı model adları zamanla değişir -- mevcut adı sağlayıcının dokümantasyonunda doğrulayın +3. Ollama için: çekilen modelleri görmek üzere `ollama list` komutunu çalıştırın; yalnızca indirilen modeller kullanılabilir + +### Bağlantı yok / Kavram oluşturulmadı + +**Belirti:** Komut çalışıyor ancak hiç çıktı vermiyor + +**Neden:** LLM boş veya işlenemeyen bir yanıt döndürdü. + +**Çözüm:** +1. Gerçek LLM yanıtını görmek üzere teşhis paneline bakın +2. Daha güçlü bir model deneyin (bazı küçük modeller yapılandırılmış çıktılarla başa çıkamaz) +3. Notun yeterli içeriğe sahip olduğundan emin olun (>50 kelime) +4. Çelişen talimatlar içeren özel isteğinizi gözden geçirin +5. Aşırı filtreleme yapıp yapmadığını görmek üzere eş anlamlı kelime baskılamasını geçici olarak devre dışı bırakın + +### Doubao Uç Nokta Kimliği Eksik + +**Belirti:** ByteDance Doubao sağlayıcısını kullanırken hata oluşuyor + +**Neden:** Doubao, model adı yerine Ark uç nokta kimliği (format: `ep-xxxxxxxx-xxxx-xxxx`) gerektirir. + +**Düzeltme:** Volcengine konsolundan aldığınız gerçek uç nokta ID’siyle varsayılan yer tutucu modelini değiştirin. + +## Yapılandırma + +| Teşhis Ayarı | Konum | Amaç | +|--------------------|----------|---------| +| **Bağlantıyı Test Et** | Ayarlar --> Sağlayıcı bölümü | API anahtarını ve bağlantı durumunu doğrulayın | +| **Model Listesini Al** | Ayarlar --> Sağlayıcı bölümü | Hangi modellerin erişilebilir olduğundan emin olun | +| `enableStableApiCall` | Ayarlar --> Gelişmiş | Gecikmeli yeniden deneme özelliğini etkinleştirin | +| `batchConcurrency` | Ayarlar --> Toplu İşlemler | Oran sınırlamalarından kaçınmak için paralellik kontrolü yapın | + +## Sorunları Nasıl Bildirirsiniz + +Yukarıdakiler kapsamında olmayan bir sorununuz varsa: + +1. **Ayarlar --> Notemd --> Teşhis** bölümünü açın +2. Tam teşhis çıktısını kopyalayın +3. [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) adresinde bir GitHub Issue’si açın +4. Şunları dahil edin: Obsidian sürümü, Notemd sürümü, sağlayıcı, model, teşhis çıktısı ve sorunu yeniden üretmek için adımlar +5. Paylaşılan herhangi bir günlükten API anahtarını gizleyin + +--- + +## Sonraki Adımlar + +- [LLM Sağlayıcılar](/docs/providers/overview) -- Tüm sağlayıcı yapılandırma referansları +- [Toplu İşleme](/docs/advanced/batch-processing) -- Büyük işlemler için eşzamanlılık ve yeniden deneme ayarları +- [Özel İstekler](/docs/advanced/custom-prompts) -- İstekleri ayarlayarak beklenmeyen LLM davranışlarını düzeltin diff --git a/website/i18n/tr/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/tr/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..55f73460 --- /dev/null +++ b/website/i18n/tr/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "Sık Sorulan Sorular" +description: "Notemd'nun kurulumu, özellikleri ve kullanımıyla ilgili yaygın sorular" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# Sık Sorulan Sorular + +<TLDR> +**En sık sorulan Notemd sorularına hızlı cevaplar.** Kurulum (5 dakikalık ayar), 30'dan fazla LLM sağlayıcı desteği, yerel/bulut model seçenekleri, tek tıklamalı iş akışları, çok dilli UI (21 dil), wiki bağlantısı otomasyonu, araştırma entegrasyonu, PDF okuma iş akışları, diyagram oluşturma ve açık kaynak lisanslama gibi özellikler Ollama ile çevrimdışı da çalışır. +</TLDR> + +--- + +## Kurulum ve Ayarlar + +### Obsidian içine Notemd'yı nasıl kurarım? + +Obsidian'da **Ayarlar → Topluluk Eklentileri → Gözat**'a gidin, **"Notemd"** olarak arayın, **Kur** ve **Etkinleştir** seçeneklerini kullanın. + +**Gereksinimler:** +- Obsidian 0.15.0+ +- Masaüstü (Windows, macOS, Linux) ve Mobil (iOS, Android) cihazlarda desteklenir. + +**El ile kurulum:** +1. `main.js`, `styles.css` ve `manifest.json`'yı [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) adresinden indirin. +2. Bunları `<your-vault>/.obsidian/plugins/notemd/` içine yerleştirin. +3. Obsidian'yu yeniden yükleyin ve eklentiyi etkinleştirin. + +**İstatistikler:** 4k'dan fazla indirme, 44 sürüm, MIT lisanslı. + +--- + +## LLM Yapılandırması + +### Notemd hangi LLM sağlayıcılarını destekler? + +Notemd **30'dan fazla sağlayıcıyı** destekler: + +**Bulut sağlayıcıları:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonnet, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**Çin odaklı:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**Yerel/kendi sunucunuzda çalışan:** +- Ollama +- LM Studio +- Herhangi bir OpenAI-uyumlu uç nokta + +**Ağ geçitleri:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models, Fireworks, LiteLLM, Nebius, Cerebras +- Hugging Face, Vercel AI Gateway, Requesty + +### Notemd yerel LLM'larla çalışabilir mi? + +**Evet, tamamen desteklenir.** Notemd şunlarla çalışır: +- **Ollama** (yerel entegrasyon) +- **LM Studio** (OpenAI-uyumlu uç noktası aracılığıyla) +- **vLLM, LocalAI, text-generation-webui** (OpenAI-uyumlu mod aracılığıyla) + +Tüm görevler yerel modellerle çalışır: bağlantı kurma, kavram üretimi, çeviri, araştırma ve diyagram oluşturma. + +**Karıştırma ve eşleştirme örneği:** +- Bağlantı kurmak için yerel Ollama → hızlı, özel, ücretsiz +- Araştırma için OpenAI → yüksek kalite, web arama entegrasyonu +- Çeviri için Gemini → çok modlu destek + +### Farklı görevler için farklı modelleri nasıl yapılandırabilirim? + +**Notemd Ayarları**'nda her görevin bağımsız sağlayıcı/model seçicileri vardır: + +| Görev | Örnek Yapılandırma | +|------|----------------------| +| **Bağlantı Oluşturma** | DeepSeek (hızlı, ucuz) | +| **Kavram Oluşturma** | Claude Opus (yüksek kalite) | +| **Araştırma** | Perplexity veya GPT-4o (web tabanlı) | +| **Çeviri** | Gemini Flash (çok modlu) | +| **Diyagram Oluşturma** | Ollama (yerel, özel) | + +Bu görev bazlı optimizasyon hızı, maliyeti ve kaliteyi dengeler. + +--- + +## Temel Özellikler + +### Kağıt okuma konusunda Notemd, ChatGPT'dan nasıl farklıdır? + +| Boyut | ChatGPT | Notemd | +|-----------|---------|--------| +| **Çıktı konumu** | Sohbet geçmişi (geçici) | Obsidian kasası (kalıcı dosyalar) | +| **Sonuç formatı** | Metin cevabı | Viki bağlantıları, kavram notları, diyagramlar, çeviriler | +| **Uzun vadeli değer** | Seans bittikten sonra silinir | Bilgi tabanına birikir | +| **Yeniden kullanılabilirlik** | Yeniden sorgulama gereklidir | Dosyalar kalır, bağlantılar devam eder, gelişir | + +**ChatGPT'yu şunlar için kullanın:** Hızlı soru-cevap, tek seferlik açıklamalar +**Notemd'yu şunlar için kullanın:** Haftalar/aylar boyunca kalıcı ve yapılandırılmış bir bilgi tabanı oluşturmak + +### Notemd notlara viki bağlantılarını nasıl ekler? + +**Süreç:** +1. Bir not üzerinde "Dosyayı işle (bağlantı ekle)" komutunu çalıştırırsınız +2. Notemd metni ayarlanmış LLM'ınıza gönderir +3. LLM, bağlamdaki temel kavramları tanımlar +4. Notemd, her kavramın geçtiği yerde `[[wiki-links]]` ekler +5. İsteğe bağlı olarak, belirttiğiniz bir klasörde otomatik olarak kavram notları oluşturur + +**Özellikler:** +- Eşanlamlı kelime bastırma ("transformer" ile "transformers" gibi tekrarları önler) +- Kavram notlarından kaynağa geri bağlantılar +- Yeniden adlandırma/silme durumunda bağlantı bütünlüğü +- Saf çıkarma modu (orijinali değiştirmeden kavramları çıkarır) + +### Notemd tek tıklamalı iş akışı nedir? + +**Tek tıklamalı iş akışları**, birden fazla eylemi **tek bir kenar çubuğu düğmesi** altında birleştirir. + +**Varsayılan iş akışı:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**Sonuç:** Tek bir tıklamayla şunlar gerçekleşir: +1. Mevcut nota wiki bağlantıları eklemek +2. Yeni terimler için kavram notları oluşturmak +3. Araştırma yaparak arka plan bilgileri eklemek +4. Bir Mermaid diyagramına sıkıştırmak + +**Özel iş akışları:** DSL formatını kullanarak Ayarlar bölümünde kendi iş akışlarınızı tanımlayın. Her iş akışı yeniden kullanılabilir bir kenar çubuğu düğmesi haline gelir. + +### Notemd, Copilot veya Smart Connections ile nasıl karşılaştırılır? + +Bu eklentiler farklı sorunları çözer: + +- **Copilot** — Sohbet odaklı. Notlarınız hakkında bir yapay zeka ile sohbet edersiniz. Yapay zeka yanıtları sohbet panelinde kalır; notlarınızın saklandığı alanı değiştirmez. +- **Smart Connections** — Keşif odaklı. Gömülü modeller kullanarak anlamsal olarak benzer notları bulur. İçerik oluşturmaz veya değiştirmez. +- **Notemd** — Yazma odaklı. Yapay zeka notlarınızı işler ve yapılandırılmış sonuçları (wiki bağlantıları, kavram notları, araştırma, diyagramlar, çeviriler) kalıcı dosyalar olarak doğrudan notlarınızın saklandığı alana yazar. + +| İhtiyacınız olanlar | Önerilen eklenti | +|----------------|-------------------| +| Notlar hakkında yapay zeka ile sohbet etme | Copilot | +| Benzer/ilişkili notları bulma | Smart Connections | +| Wiki bağlantılarını otomatik olarak ekleyip bir bilgi grafiği oluşturma | **Notemd** | +| Geri bağlantılarla kavram notları üretme | **Notemd** | +| Not içeriğinden diyagramlar oluşturma | **Notemd** | +| Bir konu üzerine araştırma yapın ve özetler ekleyin | **Notemd** | + +Üçü de birlikte kullanılabilir — birbirleriyle rekabet etmek yerine birbirlerini tamamlarlar. + +--- + +## Araştırma ve Çeviri + +### Hangi arama servisleri Notemd araştırmalarıyla çalışır? + +| Servis | API Anahtarı Gerekli | Kalite | Notlar | +|---------|-----------------|---------|-------| +| **Tavily** | Evet | Yüksek | Önerilen, AI ile optimize edilmiş arama | +| **DuckDuckGo** | Hayır | Deneysel | Ayar gerekmez, kalite daha düşük | + +**"Araştır ve özetle" nasıl çalışır?:** +1. Bir konu seçersiniz veya mevcut notunuzda çalıştırırsınız +2. Notemd arama servisine sorgu gönderir +3. Sonuçlar → LLM özetleme +4. Özet, kaynak atıflarıyla birlikte notunuza eklenir + +**Sonuç:** Veri havuzunuzda kalıcı bir araştırma izi oluşur, tarayıcı sekmelerinde değil. + +### Notemd Çince veya diğer dilleri destekler mi? + +**UI desteklenen diller:** 21+ +- İngilizce, 中文 (简体), 中文 (繁體), 日本語, 한국어 +- Arapça, Almanca, Fransızca, İspanyolca, Rusça, Portekizce, İtalyanca +- Hindi, Bengalce, Tayca, Vietnamca, Türkçe, Lehçe, Çekçe ve daha fazlası + +**Görev çıktısı dili:** Bağımsız yapılandırma +- UI Çince olarak + çıktı İngilizce: ✅ +- UI İngilizce olarak + çıktı Çince: ✅ + +**Kullanım durumu:** Çift dilli araştırmacılar, yayın için İngilizce notlar oluştururken UI'yi anadillerinde tutabilirler. + +--- + +## PDF ve Akademik İş Akışları + +### Notemd'u makale/PDF okuma işlemlerinde kullanabilir miyim? + +**Evet.** İş akışı şu şekildedir: +1. [MinerU](https://github.com/opendatalab/MinerU) kullanarak **PDF'yu Markdown'a dönüştürün** (akademik makaleler için önerilir) +2. Markdown dosyasını Obsidian içinde açın +3. Notemd görevlerini çalıştırın: + - Anahtar terimlere **wiki bağlantıları ekleyin** + - Bilinmeyen terimler için **kavram notları oluşturun** + - Özel sorular aracılığıyla **orijinal metni çıkarın** (örneğin, "Sınırlamalar nelerdir?") + - Atıfta bulunulan yöntemler/kaynaklar için **araştırma arka planı hazırlayın** + - Zor bölümleri **çevirin** + - Yapısal anlayış sağlamak amacıyla **Mermaid diyagramına sıkıştırın** + +**Sürüm 1.9.1+:** TOC desteğiyle bölüm yapısı çıkarma özelliği + +**Sonuç:** Makale okuma işleminiz, kasanızda yapılandırılmış ve bağlantılı bir bilgi nesnesine dönüşür. + +--- + +## Diyagramlar ve Görselleştirme + +### Notemd hangi grafik/diagram türlerini oluşturabilir? + +| Tür | Destek | Özellikler | +|------|---------|----------| +| **Mermaid** | Tam | Akış şeması, sıralama, sınıf, durum, ER, Gantt, sözdizimi otomatik düzeltme, toplu doğrulama | +| **JSON Canvas** | Tam | Obsidian yerel çizim tahtası düzenleri | +| **Vega-Lite** | Tam | Veri grafikleri, zaman serisi, çubuk, dağılım, özelleştirilebilir | +| **HTML** | Yedek | Desteklenmeyen diyagram türleri için | +| **Düzenlenebilir HTML/SVG** | Açık hedef | Anlamsal Draw.io-stili açıklamalar içeren, kendi kendine yeterli içe yerleşik SVG | +| **Draw.io / Drawnix ürünleri** | İhracat sınırı | `SemanticFigureModel`'dan belirgin XML/JSON; herhangi bir editör çalışma zamanı bağımlılığı yok | + +**Mermaid otomatik düzeltme:** Derin hata ayıklama modu onarımları: +- Kırık oklar (`-->`, `-.->`, `==>`) +- Geçersiz etiketler, yorumlar +- Alt grafik sözdizimi hataları +- Şekil gösterimi (`[`, `(`, `{`, `((`) +- Etiketlerde boru karakterleri +- Not ekleri + +**İş akışı:** +1. Bir not üzerinde "Mermaid diyagramı olarak özetle" komutunu çalıştırın +2. Modal pencerede önizleme +3. SVG veya PNG olarak dışa aktar +4. Veya vaultta `.mmd` dosyası olarak kaydedin + +--- + +## Açık Kaynak ve Topluluk + +### Notemd ücretsiz ve açık kaynak mıdır? + +**Evet.** +- **Lisans:** MIT (hoşgörülü, ticari kullanım izinlidir) +- **Kaynak kodu:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **Ücretli seviyeler yok, bulut bağımlılığı yok, izleme yok** +- **Topluluk:** 234+ GitHub yıldızı, aktif Discord + +**Sahip olduğunuz şeyler:** +- Verileriniz (vaultunuzda kalır) +- İş akışlarınız (prompt'ları, modelleri, zincirleri özelleştirin) +- Gizliliğiniz (yerel LLM desteği) + +**Katkıda bulunun:** Pull request'ler memnuniyetle kabul edilir. [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) adresine bakın + +--- + +## Sorun Giderme + +### LLM çağrılarım başarısız oluyor. Ne kontrol etmeliyim? + +1. **API anahtarı geçerli mi?** Ayarlar → Sağlayıcı Yapılandırması'na bakın +2. **Model adı doğru mu?** Ayarlardaki "获取模型列表" (Model Listesi Al) butonunu kullanın +3. **Ağa erişilebilir mi?** Bazı sağlayıcılar VPN gerektirir +4. **Hız sınırlamaları?** Sağlayıcı panosunu kontrol edin +5. **Teşhis:** Ayrıntılı hata günlükleri için ayarlar içinde "Bağlantı Testi"ni çalıştırın + +### Notemd yavaş. Hızını nasıl artırabilirim? + +1. **Daha hızlı modeller kullanın:** DeepSeek, Gemini Flash, GPT-4o-mini +2. **Blok boyutunu azaltın:** Ayarlar → Akıllı Bloklandırma → kelime sayısını düşürün +3. **Paralel işleme:** Ayarlar → Toplu İşleme → eşzamanlılık seviyesini artırın +4. **Yerel modeller:** Web araması gerekmeyen görevler için Ollama kullanın + +### Notemd %100 çevrimdışı çalışabilir mi? + +**Evet, Ollama ile.** API anahtarı yok, internet yok, veriler makinenizden çıkmaz: + +1. [Ollama](https://ollama.com) uygulamasını yükleyin ve `ollama serve`'u çalıştırın +2. Notemd ayarlarında sağlayıcınız olarak **Ollama** seçin +3. Bir model indirin: `ollama pull llama3` (veya qwen2.5, gemma2 vb.) +4. Tüm özellikler çalışır: wiki bağlantıları, kavram notları, çeviri, diyagramlar + +**DuckDuckGo araştırması** da API anahtarı olmadan çalışır (deneysel kalitede). + +Bulut sağlayıcıları (OpenAI, Anthropic, Google, DeepSeek vb.) ile not içeriğiniz API girdisi olarak gönderilir. Veri işleme detayları için her sağlayıcının gizlilik politikasını kontrol edin. + +### Verilerim buluta mı gönderiliyor? + +**Bu, sağlayıcınıza bağlıdır:** + +| Sağlayıcı türü | Veriler buluta mı gönderiliyor? | Notlar | +|--------------|---------------------|-------| +| **Ollama (yerel)** | Hayır | Her şey cihazınızda kalır | +| **LMStudio (yerel)** | Hayır | Ollama ile aynı | +| **DeepSeek, OpenAI, vb.** | Evet | İçerik, işleme için API girdisi olarak gönderilir | +| **OpenRouter, AIHubMix** | Evet | Bulut sağlayıcılarına yönlendirme yapan ağ geçidi | + +Notemd kendisi **hiçbir izleme verisi, hiçbir analiz verisi, hiçbir kullanıcı verisi toplamaz**. Eklenti tamamen açık kaynaklıdır (MIT). Makinenizden çıkan tek veri, yapılandırdığınız LLM sağlayıcısına açıkça gönderdiğiniz verilerdir. + +### Araştırma için en iyi Obsidian AI eklentisi hangisidir? + +Araştırma iş akışınıza bağlıdır: + +| İhtiyaç | Eklenti | Neden | +|------|--------|-----| +| İlgili makaleler/notlar bulmak | Smart Connections | Anlamsal benzerlik tespiti | +| Kaynaklarınız hakkında sohbet etmek | Copilot | Saklama alanı bağlamıyla konuşma | +| Kavramları otomatik olarak bağla + notlar oluştur | **Notemd** | AI kavramları tanır, bağlantılar ekler, notlar oluşturur | +| Web araştırması + notlara özetleme | **Notemd** | Tavily/DuckDuckGo arama → LLM özet → notaya eklendi | +| Araştırmalardan diyagramlar oluştur | **Notemd** | Notun içeriğinden Mermaid/Canvas/Vega-Lite alın | + +**Önerilen kombinasyon:** Smart Connections (keşif) + Notemd (yapılandırma) + Copilot (tartışma). + +--- + +## Yardım Almak + +- **Belgeler:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **GitHub Sorunları:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **Sponsor:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/tr/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/tr/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..e8bf95c9 --- /dev/null +++ b/website/i18n/tr/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "Kavram Notları" +description: "Kavram Notları oluşturun ve yönetin — vault'unuzdan çıkarılan ana kavramlar için bağımsız notlar" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# Kavram Notları + +<TLDR> +**Notemd**, notlarınızdan temel kavramları çıkarır ve bağımsız kavram notu dosyaları oluşturur. LLM, temel terimleri belirler, yapılandırılabilir bir klasörde her kavram için bir `.md` dosyası oluşturur ve isteğe bağlı olarak kaynak nota geri bağlantılar ekler. Eşanlamlı kelime engelleme, görev bazlı model seçimi, dosya adı temizleme ve 4 aşamalı tekrar önleme mekanizması gibi özellikleri destekler. Bu özellik, [Obsidian AI Bilgi Yönetimi Kılavuzu](/docs/pillar-ai-knowledge) kapsamındadır. +</TLDR> + +## Genel Bakış + +Kavram notları, bağlantılı bir bilgi tabanının temel yapı taşlarıdır. Bir notu işlediğinizde, Notemd: + +1. **Metninizi yapılandırılmış bir çıkarma isteğiyle LLM'ya gönderir** +2. LLM yanıtından **`CONCEPT:` satırını** ayrıştırır +3. Belirlenen bir klasörde her konsept için bir `.md` dosyası oluşturur. +4. Kaynak notuna **geri bağlantılar ekler** (etkinleştirildiğinde) + +## Nasıl Çalışır + +### Çıkarma İşlem Akışı + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### Çıkarma İstemi + +LLM, ona şunu yapmasını söyleyen bir komut alır: + +- Belgenin konusuna odaklı **isimler veya isim öbekleri** çıkarın +- **Özgüllüğe öncelik verin** — "Dielectric Relaxation" yerine "Relaxation" +- **Tekil haline getir** — "models" "model" olur +- **Alt kavramları bastır** — eğer "dielectric relaxation" görünürse, "relaxation"ı da çıkarmayın +- **Atla** referans/bibliyografi bölümlerini, yaygın isimleri, şirket/ürün adlarını +- Her bir kavramı satır başına `CONCEPT: Term Name` olarak çıktılayın + +**Eşanlamlı kelime bastırma** (isteğe bağlı): istemin başına "Mümkün olduğunca eşanlamlı kelimeleri, anlamsal olarak benzer temel kavramları veya anahtar kelimeleri çıkarmaktan kaçının" ifadesini ekleyin. + +**Odaklanmış öğrenme alanı** (isteğe bağlı): çıkarma işlemini belirli bir disipline sınırlamak için `Relevant Fields: [domain]`'yı istemin başına ekleyin. + +**Dil önceliği** (isteğe bağlı): "Çıktıdaki kavramlar MUTLAKA [dil] dilinde olmalıdır." ifadesini ekleyin. + +### Bloklandırma + +Uzun notlar `settings.chunkWordCount` ile bölünür. Her blok ayrı ayrı gönderilir. Tüm bloklardan gelen kavramlar bir `Set` içinde biriktirilir — bloklar arasındaki tekrarlar sessizce silinir. Tek tek bloklardaki LLM hataları işlemi durdurmaz. + +## Kavram Notu Oluşturma + +### Dosya Adı Kuralları + +| Kural | Davranış | +|------|----------| +| Çizgiler/alt çizgiler | Boşluklarla değiştirilir | +| Özel karakterler | Kaldırılır: ters çizgi, düz çizgi, noktalı virgül, yıldız işareti, soru işareti, tırnak işaretleri, açı köşeli parantezler, boru işareti, hash işareti, caret işareti, köşeli parantezler | +| Boşluklar | Yok edilir ve düzeltilir | +| Maksimum uzunluk | 100 karakter (kısaltılmış + tekrar düzenlenmiş) | +| Boş/tüm noktalı sonuç | Sessizce atlanır | + +Örnek: `A-B: Key*Term`, `A B KeyTerm.md` olarak değişir + +### Şablonlar + +**Tam şablon** (geri bağlantılar etkin, minimum şablon devre dışı): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**Minimum şablon** ( `extractConceptsMinimalTemplate: true` olduğunda): + +```markdown +# Concept Name +``` + +### Mevcut Notları Güncelleme + +Bir kavram dosyası zaten mevcut olduğunda: + +1. Eğer geri bağlantılar etkinse ve kaynak not henüz listelenmemişse bir geri bağlantı eklenir +2. Eğer bir `## Linked From` bölümü varsa, bir sonraki `##` başlığından önce eklenir +3. Eğer hiç `## Linked From` yoksa, bölüm sona eklenir +4. Tekrarlayan geri bağlantılar kontrol edilip atlanır + +### Yapılandırma + +| Ayar | Varsayılan | Etki | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | Anahtar açma/kapama. Kapalı = hiç not oluşturulmaz | +| `conceptNoteFolder` | `''` (devre dışı) | Kavram notları için klasör yolu | +| `extractConceptsMinimalTemplate` | `true` | Sadece başlık içeren notlar (Bağlantılı Olmayan) | +| `extractConceptsAddBacklink` | `false` | Bağımsız çıkarma sırasında geri bağlantı ekle | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | Kavram çıkarması için görev bazlı LLM | +| `extractConceptsLanguage` | `'en'` | Kavram adları için çıktı dili | +| `replaceSynonymsDuringConceptExtraction` | `false` | İstekte eşanlamlı kelime baskılamasını etkinleştir | +| `generateConceptLogFile` | `false` | Oluşturulan kavramların `.log` listesini yaz | + +**Önemli:** `extractConceptsAddBacklink` ve `extractConceptsMinimalTemplate` ayarları yalnızca **özel çıkarma komutunu** etkiler. "Bağlantı Ekle" komutu her zaman geri bağlantılarla tam şablonlu notlar oluşturur. + +## Tekillik giderme + +Tekillik giderme komutu (`Notemd: Check & remove duplicate concept notes`) 5 adımlı bir analiz yapar: + +### Adım 1: Tam dosya adı eşleşmesi + +Yapılandırılan kapsam genelinde büyük/küçük harf duyarsız ad tabanı karşılaştırması. + +### Adım 2: Çoğul biçim tespiti + +Sonekler çıkarılır: `-ies` dan `-y` a, `-es` çıkarılır, `-s` çıkarılır. Tekil biçim kapsam dosyalarıyla karşılaştırılır. Düzensiz çoğullar (children/child) işlenmez. + +### Adım 3: Sembol normalizasyonu + +Uygulanır: `toLowerCase()`, tireler/karşılıklı çizgiler boşlukla değiştirilir, alfanümerik olmayan karakterler kaldırılır, boşluklar birleştirilir. Aynı şekilde normalleştirilenler işaretlenir. + +### Adım 4: Tek Kelime Kapsamı + +Tek kelimelik kavram notları, çok kelimelik kapsam dosya adlarıyla karşılaştırılır. Kapsam `concept_folder_only` olduğunda çalıştırılmaz. + +### Adım 5: Onay ve Silme + +Tüm adaylar bir onay modülünde gösterilir. Onaylanan öğeler sistem çöp kutusuna taşınır. Her silme işlemi arasında işlem iptal edilebilir. + +### Kapsam Modları + +| Mod | Karşılaştırma Ölçütü | +|------|-------------------| +| `vault` (varsayılan) | Kavram klasörü hariç tüm vault `.md` dosyaları | +| `concept_folder_only` | Klasör içindeki diğer kavram notları | +| `include` | Belirtilen özel klasörlerdeki dosyalar | +| `exclude` | Kavram klasörü ve belirtilen klasörler hariç tüm vault dosyaları | + +## Kullanım + +### Kavramları Çıkarma (Bağımsız) + +1. Bir notu açın +2. Komut paletinden **"Notemd: Kavramları çıkarma"** komutunu çalıştırın +3. Kavram notları, yapılandırılan klasörde oluşturulur + +### İçerik Çıkarma + Oluşturma + +**"Notemd: Kavramları çıkarın ve başlıklar oluşturun"** — kavramları çıkarır, ardından kavram klasöründeki her not üzerinde "Başlıktan Oluştur" komutunu çalıştırır. Bu işlem yalnızca yeni oluşturulan notlar için değil, klasördeki **tüm** kavram notları için içerik üretir. + +### Seçimden Viki Bağlantısı Oluşturma + +1. Düzenleyicide metni vurgula +2. **"Notemd: Seçimden viki bağlantısı oluşturun"** komutunu çalıştırın +3. Metin `[[...]]` içinde sarılır ve bir kavram notu oluşturulur + +## İpuçları + +- **Önce kavram klasörünü belirleyin** — bu ayar yapılmadığında hiçbir not oluşturulmaz. Ayar yapılmamışsa bir uyarı modali görünür. +- **Görev başına özel modeller kullanın** — kavram çıkarma işlemi daha ucuz modellerle (GPT-4o-mini, DeepSeek) daha iyi sonuç verir. Pahalı modelleri araştırma/çeviri için saklayın. +- Tek bir kavramı ifade eden birden fazla terim bulunan teknik alanlar için **eşanlamlı kelime bastırma** özelliğini etkinleştirin. +- **Düzenli olarak tekrarları ortadan kaldırın** — toplu işlemden sonra yakın tekrarları tespit etmek için tekrar ortadan kaldırma komutunu çalıştırın. +- Her çalıştırmada **günlük dosyası üzerine yazılır**, eklenmez. Önceki sonuçlara ihtiyacınız varsa onu kopyalayın. + +--- + +## Sonraki Adımlar + +- [Viki-Linkler](./wiki-links) — Kavramların nasıl doğrudan bağlandığı +- [Şemalar](./diagrams) — Kavram ilişkilerini görselleştirme +- [İş Akışları](./workflows) — Çıkarma işlemini diğer görevlerle zincirleme diff --git a/website/i18n/tr/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/tr/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..ad128be4 --- /dev/null +++ b/website/i18n/tr/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "Şemalar" +description: "Bir özellik-öncelikli mimari kullanarak notlarınızdan düzenlenebilir şekil nesneleri ve gelecekte sınırlı circuitikz şemaları oluşturmak üzere Mermaid, JSON Canvas, Vega-Lite, HTML üretir" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Şemalar + +<TLDR> +**Notemd, özellik-öncelikli bir işlem akışı aracılığıyla notlarınızdan şemalar oluşturur.** LLM, renderörden bağımsız bir `DiagramSpec` JSON üretir; ardından özel adaptörler bunu Mermaid, JSON Canvas, Vega-Lite, HTML veya düzenlenebilir HTML/SVG çıktısına dönüştürür. 8 farklı amaç türünü, otomatik yedekleme zincirlerini, SVG/PNG dışa aktarımıyla canlı önizlemeyi, semantik doğrulamayı ve yerel bilgiyle zenginleştirilmiş üretimi destekler. +</TLDR> + +Bu içerik [Obsidian AI Bilgi Yönetimi Kılavuzu](/docs/pillar-ai-knowledge) serisinin bir parçasıdır. + +## Mimari: Özellik-Öncelikli İşlem Akışı + +Notemd, asla LLM'den doğrudan Mermaid/Vega/Canvas sözdizimini üretmesini istemez. Bunun yerine: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**Neden özellik-öncelikli?** LLM'ler sık sık geçersiz renderör sözdizimi üretir (özellikle Mermaid). Yapılandırılmış bir `DiagramSpec`, render edilmeden önce doğrulanabilir ve aynı özellik, yedek olarak birden fazla renderöre beslenebilir. + +## Desteklenen Şema Türleri + +| Amaç | Ana Renderör | Yedekler | Kullanım Senaryosu | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | Hiyerarşik konu bölümlemesi | +| `flowchart` | Mermaid | HTML | İş akışları, karar ağaçları | +| `sequence` | Mermaid | HTML | Müşteri-sunucu etkileşimleri, protokoller | +| `classDiagram` | Mermaid | HTML | OOP sınıf ilişkileri | +| `erDiagram` | Mermaid | HTML | Veritabanı şemaları, varlık ilişkileri | +| `stateDiagram` | Mermaid | HTML | Durum makineleri, yaşam döngüsü modelleri | +| `canvasMap` | JSON Canvas | Mermaid → HTML | Kavram haritaları, bilgi grafikleri | +| `dataChart` | Vega-Lite | Mermaid → HTML | Çubuk, çizgi, alan, dağılım, pasta, tablolar | + +## Niyet Tespiti + +Notemd, notunuzdaki içerikten anahtar kelime puanlaması kullanarak en uygun diyagram türünü belirler: + +| Niyet | Tetikleyiciler | Güvenilirlik | +|--------|----------|------------| +| `dataChart` | Tablolar, sayısal hücreler, ölçüm/eğilim anahtar kelimeleri, yüzdelikler | 0.88 | +| `sequence` | İstek/yanıt sözlüğü (4+ eşleşme) veya `->`/`=>` işaretleyicileri | 0.82 | +| `erDiagram` | Birincil anahtar, dış anahtar, varlık, şema (2+ eşleşme) | 0.80 | +| `stateDiagram` | Durum, geçiş, beklemede, çalışıyor, başarısız (3+ eşleşme) | 0.76 | +| `flowchart` | Numaralandırılmış adımlar (2+) veya if/then/else/iş akışı sözlüğü | 0.74 | +| `canvasMap` | Kavram haritası, bilgi grafiği, mekansal, küme | 0.72 | +| `mindmap` | Varsayılan geri dönüş | 0.55 | + +**Tercih edilen diyagram türü** ayarı, kenar çubuğu seçici veya açık bir komut paleti seçeneği ile geçersiz kılınabilir. + +## Render Hedefi Seçimi + +Deneysel özellik öncelikli iş akışı artık iki bağımsız kontrolü içerir: + +| Kontrol | Ayar | Etki | +|---------|---------|--------| +| Tercih edilen diyagram türü | `preferredDiagramIntent` | Oluşturulan `DiagramSpec`'nun anlamsal şeklini yönlendirir | +| Tercih edilen render hedefi | `preferredDiagramRenderTarget` | **Diyagram oluştur** ve **Diyagram önizle** işlemleri için araç renderleyicisini seçer | + +Planlayıcı varsayılanı için **Tercih edilen render hedefi**'ni **Otomatik** olarak ayarlayın veya Mermaid, JSON Canvas, Vega-Lite, HTML veya Düzenlenebilir HTML/SVG'yi açıkça seçin. Bu geçersiz kılma yalnızca araç ve önizleme komutları için geçerlidir. Standart **Mermaid diyagramı olarak özetle** komutu mevcut Markdown iş akışlarının sessizce format değiştirmemesi için Mermaid uyumlu çıktılara sabitlenmiştir. + +Bu ayrım önemlidir çünkü bir `flowchart` amacı artık Markdown notları için Mermaid, sağlam bir geri dönüş için HTML veya sonraki düzenlemeler için Düzenlenebilir HTML/SVG olarak render edilebilir. Draw.io ve Drawnix hâlâ CLI araç ihracatçıları olarak kalır ve eklenti içi render hedefleri değildir. + +## Kullanım + +### Bir Diyagram Oluştur + +1. Bir notu açın +2. Komut paletinden **"Notemd: Diyagram oluştur**" komutunu çalıştırın +3. Notemd amacı algılar, özeti oluşturur, render eder ve aracı kaydeder + +**Hedefe göre çıktı dosyaları:** + +| Hedef | Eklenti | Dosya Adı Deseni | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| Düzenlenebilir HTML/SVG | `.html` | `{note}_diagram.html` | + +### Bir Diyagramı Önizle + +1. **"Notemd: Diyagramı Önizle"** komutunu Çalıştır +2. İşlenmiş diyagramla birlikte modala bir pencere açılır +3. Arayüz düğmelerini kullanarak SVG veya PNG olarak Dışa Aktar + +Ayarlar bölümünde **Önizlemeyi Otomatik Aç** seçeneği mevcuttur — oluşturma işleminden sonra önizleme modali otomatik olarak başlatılır. + +Önizleme modali ayrıca bir hata teşhisi paneline sahiptir. İşleyiciler ve duman kontrolü işlemleri `RenderArtifact.diagnostics` ekleyebilir; modala, önizlemenin yanında hata/uyarı/bilgi sayıları, ardından ciddiyet düzeyi, teşhis türü, mesaj ve onarım önerileri içeren bir teşhis özeti gösterilir. Aynı özet önizleme geçmişi girişlerinde de görüntülenir, böylece her girişi açmadan tekrarlanan circuitikz duman kontrolü denemeleri karşılaştırılabilir. Kaynak içeriğine sahip ancak doğrudan veya HTML iframe yoluyla işlenemeyen nesneler için modala artık boş bir iframe zorlamak yerine yalnızca kaynak içeriğine dayalı bir önizleme sunar. Bu sayede circuitikz derleme/işleme duman kontrolü, SVG metin-tokenu kontrolü, PNG boş ekran görüntüsü kontrolü ve gelecekteki örtüşme raporları için görünür bir UI yüzey sağlanır; aynı zamanda TikZJax veya LaTeX’i zorunlu bir eklenti çalışma zamanı bağımlılığı haline getirmez ya da kaynak metnin doğrulanmış görsel bir işlenmiş versiyon olduğunu varsaymaz. + +### Eski Mermaid Modu + +`enableExperimentalDiagramPipeline` kapalıyken, Notemd doğrudan Mermaid isteğini LLM’a gönderir. Bu, özellik akışını tamamen atlar. Deneysel akış başarısız olursa bu moda geri dönülür. + +## İşleme Arka Uçları + +### Mermaid + +6 adaptör (zihin haritası, akış şeması, sıralama, ER, sınıf, durum) `DiagramSpec`’yı Mermaid sözdizimine çevirir. Oluşturma işleminden sonra `mermaid.parse()` çıktıyı doğrular. Doğrulama başarısız olursa: + +1. **LLM yeniden deneme** — Mermaid hata mesajını bağlam olarak kullanan bir deneme +2. **En az düzeyde geri dönüş** — özellik düğümü kimliklerinden oluşan basit bir Mermaid diyagramı + +**Eski Mermaid Düzeltici** yaygın LLM sözdizimi hatalarını otomatik olarak düzeltir: not direktiflerinin normalleştirilmesi, pipe-etiketlerinin kaçırılması, noktalı virgüllerin yeniden yerleştirilmesi, akıllı tırnaklar, çift çizgi okları, şekil uyuşmazlıkları ve daha fazlası. + +### JSON Canvas + +Mekânsal düzenleme ile Obsidian JSON Canvas formatında sonuç üretir: +- Nodlar derinlik (x = derinlik × 420) ve indeks (y = indeks × 170) ile konumlandırılır +- Genişlik etiket uzunluğundan tahmin edilir +- `fromSide: 'right'`, `toSide: 'left'`, `toEnd: 'arrow'` içeren kenarlar + +### Vega-Lite + +Otomatik kodlama ile tam Vega-Lite v5 JSON özelliklerini oluşturur: +- **Karteziyen grafikler** (çubuk/çizgi/alan/nokta/dağılım): çoklu seriler için x + y kanalları ve renk +- **Peygamber**: theta = y (nicel), renk = x (nominal) +- **Tablo**: satır = x, metin = y + sütun = seri + +Karanlık ve açık tema düzeltmeleri derlemeden önce derin birleştirme yapılır. + +### HTML + +Evrensel alternatif. Kendi içinde tam olan HTML belgesi şunları içerir: +- CSP meta başlıkları +- `prefers-color-scheme` aracılığıyla açık/karanlık mod +- 20 farklı dil için yerelleştirilmiş UI etiketleri +- Bölümler: ana sayfa, yapı (nod ağacı), ilişkiler, vurgular, veri serisi tabloları + +### Düzenlenebilir HTML/SVG + +Düzenlenebilir dışa aktarım iş akışları için açık bir şekil hedefi. Bu hedef, `DiagramSpec`'ı belirlenmiş bir `SemanticFigureModel` haline getirir, ardından içinde Draw.io tarzı notlar içeren satır içi SVG gruplarına sahip, kendi başına işleyebilen bir HTML belgesi oluşturur: + +- Semantik düğümlerde `data-drawio-type`, `data-drawio-id` ve `data-drawio-role` +- Semantik kenarlar üzerinde `data-drawio-source` ve `data-drawio-target` +- Boşluk normalizasyonu ve çakışma işleme sonrasında sabit düğüm/kenar tanımlayıcıları +- Hiçbir script, harici yazı tipi veya uzak varlık yok + +Bu hedef henüz varsayılan planlayıcı rotası olarak tasarlanmamıştır. Ürün yolunun gerçek araçlarda düzenleme davranışını kanıtlaması sırasında açık bir render hedefi olarak mevcuttur. + +### Draw.io ve Drawnix Dışa Aktarım Sınırları + +Mevcut uygulama, üçüncü taraf düzenleyici desteğini ürün sınırında tutar: + +| Hedef | Sözleşme | Çalışma Zamanı Bağımlılığı | +|--------|----------|--------------------| +| Draw.io | `SemanticFigureModel`'dan gelen belirlenmiş, sıkıştırılmamış `mxfile` XML | Eklenti çalışma zamanında veya CI'de hiçbiri yok | +| Drawnix | `geometry` ve `arrow-line` öğelerini kullanan minimal `.drawnix` JSON alt kümesi | Eklenti çalışma zamanında veya CI'de hiçbiri yok | + +Bu denge kasıtlıdır: Notemd, diagram.net Desktop, Drawnix, Plait veya yalnızca tarayıcı tabanlı düzenleyici durumlarını eklentiye dahil etmeden görünür etiketleri, sabit ID'leri ve desteklenen ilkel kapsamı doğrulayabilir. + +### circuitikz / TikZJax Yönü + +Devre şemaları, genel akış şemalarıyla aynı sorunu taşımaz. Elektrik devreleri için doğru sözdizimi hedefi genellikle **circuitikz** olup, Obsidian aracılığıyla TikZJax gibi eklentilerle gösterilir. TikZJax, `circuitikz`, `pgfplots`, `tikz-cd` ve `chemfig` gibi paketleri yükleyebilir; bu da fizik, devreler, kimya ve matematik notları için cazip kılar. + +Risk, ham LLM tarafından üretilen TikZ dosyalarının kırılgan olmasıdır: + +- Karmaşık devre topolojileri elektriksel olarak doğru olabilir ancak görsel olarak okunaksız olabilir; +- Üst üste gelen teller ve etiketler, doğru bir netlist dosyasını çalışma notları için kullanılamaz hâle getirebilir; +- Eksik paket girişleri, yanlış ankraj noktaları veya geçersiz bileşen adları render işlemini engelleyebilir; +- Renderlayıcının geri bildirimi genellikle görüntü seviyesindedir, oysa LLM tarafından üretilenler metin seviyesinde geometridir. + +Daha iyi mimari, circuitikz'yu serbest biçimli bir komut olarak değil, sınırlı bir şema hedefi olarak ele almak olmalıdır: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +Birinci sınıf model, devre topolojisini ve yerleşimini ayrı ayrı tanımlamalıdır: + +| Katman | Sorumluluk | Örnek | +|-------|----------------|---------| +| Topoloji | elektriksel düğümler ve bileşen bağlantıları | `VDD -> RD -> drain(M1)`, `source(M1) -> GND` | +| Yerleşim | grid yerleşimi, yönlendirme ve yönlendirme şeritleri | `M1 at (3,2.2)`, sol giriş, sağ çıkış | +| Stil | paket, gerilim kuralı, etiketler, ankrajlar | `\begin{circuitikz}[american voltages]` | +| Doğrulama | derleme günlüğü, eksik ankrajlar, örtüşme/ekran görüntüsü kontrolleri | TikZJax/LaTeX teşhisleri ve görsel inceleme | + +### Mevcut circuitikz Prototipi + +Notemd şu an bu yönde ilk kısıtlı depo prototipini içermektedir. Kasıtlı olarak çevrimdışıdır ve şablonla sınırlıdır: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +Prototip, altı altın referans ailesi için ayrı bir `CircuitSpec` sınırı ve belirlenmiş bir dışa aktarıcı ekler: + +| Devre türü | Altın referans | Akım garanti | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | LaTeX yazmadan önce `VDD -> R_D -> M1.D`, `vin -> M1.G`, `M1.S -> GND` ve `M1.D -> vout`'ü doğrular | +| `cmos-inverter` | `cmos-inverter-v1` | LaTeX yazmadan önce PMOS-over-NMOS topolojisini, ortak kapı girişini, ortak drenaj çıkışını, `VDD -> MP.S` ve `MN.S -> GND`'ü doğrular | +| `cmos-buffer` | `cmos-buffer-v1` | LaTeX yazmadan önce iki ardışık invertör aşamasını, ara düğüm `vmid`, geri yüklenmiş `vout` ve ortak VDD/GND hatlarını doğrular | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | LaTeX yazmadan önce `vin` ve `vout` arasındaki paralel PMOS/NMOS geçiş cihazlarını tamamlayıcı `phib` / `phi` kontrolleriyle doğrular | +| `cmos-nand2` | `cmos-nand2-v1` | LaTeX yazmadan önce paralel PMOS çekme, seri NMOS indirme, çift giriş `va` / `vb` ve `vout`'yi doğrular | +| `cmos-nor2` | `cmos-nor2-v1` | LaTeX yazmadan önce seri PMOS çekme, paralel NMOS indirme, çift giriş `va` / `vb` ve `vout`'yi doğrular | + +Bu henüz genel bir TikZ üreticisi değil. LaTeX derlemez, TikZJax'yı çağırmaz, ekran görüntülerini incelemez veya otomatik görüntü geri bildirimli onarım yapmaz. Bunlar daha sonraki aşamalarda gerçekleştirilir. + +Dosya uzantısı `.tex` veya `.tikz` olduğunda ve kaynak `\usepackage{circuitikz}` veya `\begin{circuitikz}` içerdiğinde, Önizleme diyagramı komutu kaydedilen circuitikz kaynak nesnelerini doğrudan yeniden açabilir. Bu yol sadece kaynak içeren bir circuitikz önizlemesidir: modül kaynağı, teşhisleri, kopyalama/kaydet kontrollerini ve geçmiş meta verilerini gösterir, ancak LaTeX derlemez veya eklenti çalışma zamanında TikZJax'yı çağırmaz. + +Aynı sadece kaynak içeren önizleme kapsamı artık kaydedilen Draw.io ve Drawnix nesnelerini de kapsar. `.drawio` dosyaları Draw.io XML (`mxfile` veya `mxGraphModel`) gibi göründüğünde kabul edilir ve `.drawnix` dosyaları Drawnix JSON şeklinde `type: "drawnix"` ve bir `elements` dizisi ile birlikte olduğunda kabul edilir. Eklenti hâlâ diagrams.net veya Drawnix tahtası sunucusunu içermez; bu önizlemeler kaynağı, teşhisleri ve nesne geçmişini gösterir ancak eklenti içi görsel bir düzenleyici iddia etmez. + +Topolojiyi koruyan onarım için, onarılmış adayı kabul etmeden önce önceden hazırlanan özellikleri referans olarak geçirin: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +Onarım koruyucusu çıktıdan önce `circuitKind`, `goldenReferenceId`, ağlar, bileşen kimlikleri/türleri/terminalleri ve yönsüz bağlantı uç noktalarını karşılaştırmak için `createCircuitTopologySignature` ve `assertCircuitTopologyUnchanged` kullanır. Etiketler, başlık metinleri, yerleşim ipuçları, bağlantı sırası ve bağlantı etiketleri kasıtlı olarak göz ardı edilir. Kısa bir eklem yapan veya bir terminali yeniden bağlayan adaylar `.tex` dosyası yazılmadan önce `Circuit topology drift detected` ile başarısız olur. + +CLI artık bir derleyici çalıştırmadan mevcut LaTeX/TikZJax derleme günlüğünü analiz edebilir: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +Bu teşhis yolu `circuitikz.sty` gibi eksik paketleri, bilinmeyen TikZ/circuitikz anahtarlarını, noktalı virgül eksikliği gibi TikZ yol sözdizimi hatalarını, dengesiz parantezlerden veya bitmemiş etiketlerden kaynaklanan aşırı argümanları, tanımsız kontrol dizilerini, genel LaTeX hatalarını, acil durdurma işlemlerini ve aşırı dolu `\hbox` uyarılarını rapor eder. Hâlâ günlük tabanlıdır: yerel LaTeX/TikZJax çalıştırması ve ekran görüntüsü kalitesi kontrolü hâlâ ayrı gelecekteki işlerdir. + +Bakım görevlileri için duman testleri amacıyla, aynı CLI isteğe bağlı olarak kabuk komutu analizi olmadan önceden yapılandırılmış bir render ediciyi çalıştırabilir: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Derleme yürütücüsü `shell: false` kullanır, `{tex}`, `{outputDir}` ve `{jobName}` yer tutucularını argüman dizisi değerlerine dönüştürür, oluşturulan `{jobName}.log`'yu okur ve `compileExecution` ile birlikte `compileDiagnostics`'yı CLI JSON çıktısında geri verir. `--compile-executable` yalnızca render edici ikili dosyası veya kapsayıcı yoludur; render edici bayrakları tekrarlanan `--compile-arg` değerlerinde yer alır. Boş yürütülebilir dosyalar `compile-executable-invalid` olarak başarısız olur, eksik ikili dosyalar `compile-executable-not-found` olarak başarısız olur ve kabuk komutu şeklindeki yürütülebilir dizeler, Windows, Linux ve macOS'ın aynı doğrudan çalıştırma sözleşmesine uyması için argümanların bölünmesi konusunda tavsiye alır. `--expected-artifact` ile birlikte `compileExecution.renderSmoke`'yi de rapor eder ve render edici boş olmayan bir nesne oluşturmadığında CLI ile başarısız olur. Hâlâ LaTeX'i dahil etmez, TikZJax'ü eklenti çalışma zamanı bağımlılığı yapmaz veya ekran görüntüsü seviyesinde görsel onarım yapmaz. + +Beklenen nesne `.svg` ise, duman testi bir kat daha derinleşir: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +SVG duman testi `<svg>` kökünü, pozitif boyutları veya `viewBox`'yi, gizli/şeffaf öğeler hariç tutulduktan sonra en az bir görünür çizim öğesini, istenen tüm metin token'larını, `viewBox` dışındaki belirgin öğeleri, `<text>` / `<tspan>` etiketlerinin belirgin olarak üst üste gelmesini ve `render-svg-label-overlap` aracılığıyla çizim öğelerinin üzerine gelen belirgin metin etiketlerini doğrular. Beklenen metin, görünür metinde ve `aria-label`, `<title>`, `<desc>` gibi erişilebilirlik meta verilerinde aranır, böylece görünür `<text>` dışındaki semantik etiketleri koruyan render ediciler OCR gerektirmeden metin token duman testini geçirebilir. Geometri kontrolü artık yaygın grup ve öğe `transform` özellikleri için dönüşüm bilincine sahip geometridir, bu yüzden çevrilmiş, ölçeklenmiş, döndürülmüş, eğiltilmiş veya matris dönüşümü yapılmış SVG kutuları dönüşüm kompozisyonundan sonra kontrol edilir. A/a yay uç noktaları için kesin yay sınırları, C/S/Q/T eğri uç noktaları için kesin Bezier eğri sınırları, çizgi kalınlığına duyarlı SVG sınırlar ve etiket üst üste gelme kontrolleri, `polyline` / `polygon` çizim geometrisi ve ayrıca `<use href="#...">` referanslarından gelen yalnızca yol tabanlı glyph yerleşimi çözülür, böylece yeniden kullanılabilir glyph yollarına dönüştürülen etiketler, yerleştirilen glyph geometrisi `viewBox`'u aştığında sınırlı çizim alanı kontrollerini geçemez. Bir `<text>` ebeveyninin altındaki birden fazla konumlandırılmış `tspan` etiket, ayrı etiket kutuları olarak karşılaştırılır; bu da aksi takdirde farklı etiketleri tek bir metin düğümüne indirgeyecek LaTeX tarzı SVG çıktıyı tespit eder. Konumlandırılmış SVG `text` ve `tspan` kutuları `text-anchor` değerleri `start`, `middle` ve `end`'ye uyar, böylece merkezli ve sağa hizalanmış etiketler, tarayıcı seviyesi metin düzenlemesi iddia etmeden metin/metin ve etiket-çizim üst üste gelme teşhislerini tetikleyebilir. `<defs>` içindeki yalnızca tanım tabanlı glyph yolları görünür çizim öğeleri olarak sayılmaz, ancak kendi tanım yerel `transform` özellikleri `<use>` yerleştirme öncesinde uygulanır, böylece ölçeklenmiş veya yansıtılmış glyph tanımları eksik olarak sayılmaz. Etiket-çizim kontrolü küçük bir çizim kutusu toleransı ve beyan edilen `stroke-width` kullanır, bu yüzden ince teller, kalın teller ve çokgen bileşen konturları, görünür çizgileri bir etikete ulaştığında potansiyel etiket okunabilirliği başarısızlıkları olarak değerlendirilebilir. `<use href="#...">`'den çözülen yalnızca yol tabanlı glyph etiketleri de çizim kutularıyla karşılaştırılır ve yeniden kullanılabilir glyph geometrisi tellerle veya bileşenlerle üst üste geldiğinde `render-svg-path-glyph-overlap` ile başarısız olur. Eğer bir render edici etiketleri aranabilir `<text>` yerine yeniden kullanılabilir yol glyph'lerine dönüştürür ve erişilebilirlik meta verilerini korumazsa, duman raporu `pathOnlyGlyphUseCount`'yu kaydeder ve istenen metin token'ını `render-svg-text-path-only` aracılığıyla başarısız kılar, etiketin sadece yokmuş gibi davranılmasına izin vermez. Diğer başarısızlıklar `render-svg-invalid`, `render-svg-dimension-missing`, `render-svg-no-visible-elements`, `render-svg-text-missing`, `render-svg-out-of-bounds`, `render-svg-text-overlap`, `render-svg-label-overlap` veya `render-svg-path-glyph-overlap` aracılığıyla rapor edilir. Metin token ve üst üste gelme kontrolleri yalnızca etiketleri aranabilir SVG metin veya erişilebilirlik meta verileri olarak koruyan render ediciler için yapısal duman testi olarak ele alınmalıdır; yalnızca yol tabanlı SVG çıktılar hâlâ görsel etiket okunabilirliğini kanıtlamak için daha sonraki ekran görüntüsü/OCR aşamasına ihtiyaç duyar ve bu duman testi hâlâ tam SVG yol kapsamını iddia etmez. + +Görünür öğe sayımı ve geometri toplama sırasında gizli SVG gruplar ve öğeler tutarlı bir şekilde atlanır. Özellik veya iç satır stilindeki `display:none`, `visibility:hidden`, `visibility:collapse` ve genel `opacity:0`, aksi takdirde boş olan bir render nesnesinin görünür çıktı duman testini geçmesini sağlayamaz. + +Yalnızca yol tabanlı glyph tanımları doğrudan yollar veya `<defs>` içinde gruplanmış/sembol konteynerleri olabilir. Duman testi, `<use>` yerleştirme öncesinde `<g id="...">` ve `<symbol id="...">`'den çocuk yol geometrisini çözer, böylece kapsanan glyph çıktısı hâlâ `pathOnlyGlyphUseCount`, sınırlı çizim alanı kontrollerine ve `render-svg-path-glyph-overlap`'a beslenir. + +Yol analizörü ayrıca alt yol başlangıçlarını takip eder ve `Z/z` üzerinde mevcut noktayı sıfırlar, böylece kapalı bir alt yol sonrasındaki göreceli komutlar yanlış `render-svg-out-of-bounds` teşhisleri oluşturmak yerine doğru SVG noktasından devam eder. + +Aynı geometri işlemi, ön tırnaklı ondalık sayılar ve açık artı işaretleri için SVG numaralı sözdizimini takip eder; bu yüzden `.5`, `-.5` veya `+.5` gibi kompakt dvisvgm koordinatları sınırlar kontrolü sırasında kesirli kalır ve yanlış sınır dışı geometri oluşturulmaz ya da atlanmaz. + +Eğer render motoru `.png` üretirse, beklenen sanat eseri yolu ilk ekran görüntüsü dumanı haline gelir: Notemd, çapraz olmayan 1/2/4/8-bit indeksli renkli PNG dosyalarını, 1/2/4/8/16-bit gri tonlu PNG dosyalarını ve 8/16-bit gri tonlu‑alfa/RGB/RGBA PNG dosyalarını çözer. İndeksli renkli ve alt‑bayt gri tonlu görüntüler paketlenmiş örnekleri destekler; indeksli renkli görüntüler ayrıca PLTE ve isteğe bağlı tRNS verilerini destekler; gri tonlu/RGB görüntüler tRNS şeffaf örneklerini destekler. 16‑bit doğrudan örnekler, duman kontrolünde kullanılan aynı 8‑bit RGBA karşılaştırma alanına normalleştirilir. Duman kontrolü pozitif boyutları doğrular, ön plan sınırlarını `foregroundBounds` olarak kaydeder, o kutu içindeki ön plan yoğunluğunu `foregroundDensity` olarak kaydeder; her görünür piksel en üst sol arka plan rengiyle eşleşirse `render-png-blank` ile başarısız olur, ön plan içeriği görüntü sınırlarına temas ederse `render-png-content-clipped` ile başarısız olur, büyük bir ekran görüntüsünde dörtten az ön plan pikseli varsa `render-png-foreground-too-small` ile başarısız olur ve ön plan pikselleri önemsiz bir sınırlama kutusu içinde olağandışı derecede yoğunsa `render-png-foreground-dense` ile başarısız olur. Desteklenmeyen PNG formatları `render-png-unsupported` ile başarısız olur ve Adam7 çapraz PNG’ler veya desteklenmeyen indeksli renk derinlikleri için format‑özgü yönlendirmeler sağlanır. Bu yöntem, boş ekran görüntülerini, bariz tuval kesimlerini, yetersiz render edilmiş ön plan izlerini, ilk piksel düzeyindeki yoğunluk hatalarını ve yanlış render motoru PNG dışa aktarma ayarlarını, platform‑özgü bir kabuk bağımlılığı eklemeksizin tespit eder. Bu henüz OCR seviyesinde etiket tanıma, kesin metin üst üste gelme tespiti veya topolojiyi koruyan görüntü onarımı değildir. + +Teşhisler başarısız derleme veya render‑duman çalıştırmasını gösterdiğinde, CLI aynı zamanda topolojiyi koruyan bir onarım özeti de yazabilir: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +Onarım özeti `notemd.circuitikz.repair-brief.v1` şemasını kullanır ve kaynak `CircuitSpec`, topoloji imzasını, derleme/render teşhislerini, izin verilen düzenlemeleri, yasaklanan topoloji düzenlemelerini, bir sonraki doğrulama adımlarını ve yapılandırılmış `repairPrompt` içerir. İstek rolü `topology-preserving-circuitikz-repair`’tür; onun `diagnosticFocus` listesi derleme/render teşhislerinden türetilir ve `acceptanceCriteria`, adayın doğrulanmasını ve yeni derleme ile render‑duman kontrollerini gerektirir. Bu, daha sonraki bir onarım döngüsü için aktarım formatıdır, Notemd’nın zaten otonom görsel onarım yaptığı anlamına gelmez. + +Bir onarım adayı üretildikten sonra, aynı CLI çıktıyı yazmadan önce onu özete göre doğrulayabilir: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief`, özetten gelen adayın topoloji imzasını kontrol eder ve bu işlem `--topology-reference` ile birbirini dışlar. Bu kontrolü geçmek yalnızca topolojinin korunduğunu kanıtlar; aday hâlâ derleme teşhislerine ve render‑duman kontrollerine ihtiyaç duyar. + +`--repair-brief` sonucu ayrıca `repairAcceptance` kanıtlarını `notemd.circuitikz.repair-acceptance.v1` şemasıyla içerir. `topology-signature`, `compile-diagnostics` ve `render-smoke` kontrol noktalarını `passed`, `failed` veya `missing` olarak rapor eder; `remainingChecks`’yu açığa çıkarır; ve aday çalıştırması gerekli tüm kanıtları içerene kadar `readyForVisualAcceptance`’u yanlış olarak tutar. + +CI veya sürüm kanıtlarının kalıcı bir JSON dosyasına ihtiyaç duyduğunda `--repair-acceptance-output`’yu `--repair-brief` ile birlikte kullanın: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +Sürüm veya bakım kanıtları için, desteklenen tüm altın aileleri toplu fixture çalıştırıcısı üzerinden çalıştırın: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Çalıştırıcı `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json` ve `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json` kullanır, her fixture için aynı kabuk‑sız dışa aktarma yolunu çağırır ve her fixture için `compileExecution` ve `compileDiagnostics` içeren toplu bir JSON raporu döndürür. Bu hâlâ bir bakım komutudur, bir eklenti çalışma zamanı bağımlılığı değildir. + +Bir bakım makinesinde henüz bir render motoru yapılandırılmamışsa, `--compile-executable` olmadan aynı fixture komutunu çalıştırın ve ortam kontrol noktasını açıkça saklayın: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +Bu yol yine de belirli fixture `.tex` artefaktlarını yazar, ancak `ok: false`’i `rendererAvailability.status`’yi `missing-configuration` olarak ayarlayarak ve bir `compile-executable-invalid` teşhisiyle döndürür. Bunu yalnızca render motoru kullanılabilirlik kanıtı olarak görün; bu derleme, render‑duman veya görsel kabul değildir. + +### Altın Referans İstek Şekli + +Kısa vadede kullanım için, bir devre varyantı istemeden önce render edilebilir bir altın referans sağlayın. Sınırlı bir istek, giriş bölümünü, koordinat ölçeğini, bağlantı stilini ve yönlendirme kurallarını korumalıdır: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +Bir CMOS invertörü için, istek yalnızca "CMOS invertör çizin" demek yerine açık bir topoloji ve yerleşim kısıtlamaları talep etmelidir: + +- `VDD`’u üstte, `GND`’ı altta, girişi sol tarafta, çıktıyı sağ tarafta tutun; +- `pmos`'yi `nmos`'nin üstünde, ortak kapılar ve ortak drenajlar kullanarak uygulayın; +- Çıkış düğümünü drenaj birleşim noktasında tutun ve bunu `*-o` ile işaretleyin; +- Görsel olarak tahmin edilen koordinatlar yerine adlandırılmış çapa noktalarını (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) kullanın; +- Elektriksel olarak gerekli olmadıkça diyagonal veya kesişen tellerden kaçının. + +### Mevcut İlerleme ve Sonraki Aşamalar + +| Alan | Mevcut durum | Bir sonraki adım | +|------|----------------|-----------| +| Genel diyagramlar | Mermaid, JSON Canvas, Vega-Lite, HTML için özellik odaklı iş akışı uygulandı | Anlamsal doğrulama kapsamını genişletmeye devam edin | +| Düzenlenebilir şekiller | `editable-html-svg`, Draw.io XML ve Drawnix JSON nesne sınırları uygulandı | Testler düzenlenebilirliği kanıtladıktan sonra daha zengin temel elemanlar ekleyin | +| CLI desteği | `npm run diagram:export-artifact`, tek bir `DiagramSpec`'dan düzenlenebilir HTML/SVG, Draw.io ve Drawnix'yi dışa aktarır | Yeni hedefler gönderildiğinde hedefe özel duman düzenekleri ekleyin | +| circuitikz | `CircuitSpec -> circuitikz` prototip, ortak kaynak, CMOS invertör, `cmos-buffer` / `cmos-buffer-v1`, `cmos-transmission-gate` / `cmos-transmission-gate-v1`, `cmos-nand2` / `cmos-nand2-v1` ve `cmos-nor2` / `cmos-nor2-v1` altın şablonlarını, projeleri `layoutHints.inputSide` ve `layoutHints.outputSide` topolojiyi değiştirmeden belirli giriş/çıkış port yerleşimine dönüştürür; `--topology-reference` aracılığıyla onarım topolojisi sapmalarını reddeder, `--repair-brief-output` ve şema `notemd.circuitikz.repair-brief.v1` aracılığıyla topolojiyi koruyan onarım özetleri üretir, `diagnosticFocus`, `acceptanceCriteria` ve rol `topology-preserving-circuitikz-repair` ile yapılandırılmış `repairPrompt` devir içeriği içerir, `--repair-brief` aracılığıyla onarım adaylarını doğrular, şema `notemd.circuitikz.repair-acceptance.v1` aracılığıyla `readyForVisualAcceptance` ve `remainingChecks` ile birlikte `repairAcceptance` kapı kanıtlarını döndürür, bu kanıtları `--repair-acceptance-output` aracılığıyla saklar, derleme günlüklerini analiz eder, açık yerel render motorları ve `--expected-artifact`, SVG `--expected-svg-text` ile çalışabilir, `aria-label`, `<title>` ve `<desc>` aracılığıyla erişilebilirlik meta verisi kontrolleri yapar, gizli/şeffaf SVG öğe dışlaması, yol‑sade etiketler için `render-svg-text-path-only` / `pathOnlyGlyphUseCount` sınıflandırma, `<use href="#...">` için yol‑sade görsel karakter yerleşim kontrolü, `render-svg-path-glyph-overlap` aracılığıyla yol‑sade görsel karakter örtüşme teşhisi, `Z/z` için kapalı yol akım noktası işleme, A/a yay uçları için kesin yay sınırları, C/S/Q/T eğri uçları için kesin Bezier eğri sınırları, çizgi kalınlığına duyarlı SVG sınırlar ve etiket örtüşme kontrolleri, `polyline` / `polygon` çizim geometrisi kontrolleri, konumlandırılmış `tspan` etiket geometrisi, `text-anchor`‑bilinçli konumlandırılmış metin geometrisi, SVG sınırlı‑canvas/metin‑örtüşmesi ve etiket‑vs‑çizim duman kontrolleri için dönüşüm‑bilinçli geometri, ayrıca PNG boş olmayan / kesilmiş / yoğun ön plan ekran görüntüsü duman kontrolleri; indeksli renk paleti alfası, gri tonlama/RGB tRNS şeffaf örnekleri ve Adam7 çapraz PNG’ler ile indeksli bit derinliği hataları için format‑özgü `render-png-unsupported` rehberlikleri içerir, bunlar `foregroundBounds`, `foregroundDensity`, `render-png-content-clipped` ve `render-png-foreground-dense` aracılığıyla kabuk analizi olmadan yapılır; toplu bakımci duman düzeneklerini içerir, eksik render motoru yapılandırmalarını `rendererAvailability.status: "missing-configuration"` ve `compile-executable-invalid` ile kaydeder ve genel önizleme teşhisleri, teşhis özet sayıları, teşhis‑bilinçli geçmiş girişleri ve sadece kaynak‑tabanlı geri dönüş imkanı sağlar `RenderArtifact.diagnostics` ve önizleme modu aracılığıyla | Yol‑sade görsel metinler için OCR seviyesinde etiket tanıma, hassas piksel‑seviyesi örtüşme kontrolleri, gerektiğinde daha geniş SVG yol kapsamı, yalnızca isteğe bağlı kalabilecekse otomatik render motoru kurulumu/bulma ve otomatik topolojiyi koruyan onarım işlemleri | +| TikZJax entegrasyonu | Obsidian tarafı ekran için aday render sunucusu | Bunu isteğe bağlı tutun; TikZJax’yu zorunlu bir eklenti çalışma zamanı bağımlılığı haline getirmeyin | + +## Yapılandırma + +| Ayar | Varsayılan | Etki | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | Öncelik‑ilk ve eski Mermaid arasında geçiş yapın | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = yalnızca Mermaid; `'best-fit'` = yerel hedefler + geri dönüş seçenekleri | +| `preferredDiagramIntent` | `undefined` (otomatik) | Otomatik niyet algılama işlemini geçersiz kılın | +| `summarizeToMermaidLanguage` | `'en'` | Şema etiketleri için hedef dil | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | Şema oluşturma için görev‑özel LLM | +| `autoMermaidFixAfterGenerate` | (sabitlerden) | Mermaid çıktısı üzerinde eski düzelticiyi otomatik olarak çalıştırın | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | Yerel vault bilgileriyle kaynağı zenginleştirin | + +### Yerel Bilgi Zenginleştirme + +Etkinleştirildiğinde, Notemd kasanızın yerel bilgi tabanından (MiniSearch tabanlı) ilgili bağlam parçalarını alır ve bunları kaynak markdown'ının başına ekler. Zenginleştirme isteği şu notu içerir: "Yalnızca destekleyici referans; birincil yapının kaynak notuna sadık kalmasını sağlayın." + +### Uyumluluk Modları + +- **`legacy-mermaid`**: Tüm niyetler Mermaid'a yönlendirilir. Mermaid olmayan niyetler (canvasMap, dataChart) zorunlu olarak `flowchart` veya `mindmap`'ya yönlendirilir. Herhangi bir yedek zincir yoktur. +- **`best-fit`**: Her niyet kendi yerel hedefine yönlendirilir. Birincil hedef başarısız olursa, yedek zincir takip edilir (örneğin, Vega-Lite → Mermaid → HTML). + +## Önizleme ve Dışa Aktarma + +| Eylem | Yöntem | +|--------|--------| +| SVG export | Canvas için `mermaid.render()` / `vega.View.toSVG()` / SVG oluşturucu | +| PNG dışa aktarımı | SVG → Görüntü → Canvas (cihaz piksel oranı 1x-3x) → PNG ArrayBuffer | +| Kaynak kaydetme | Hedefe özgü uzantıyla ham eser içeriği kaydedilir | +| Yalnızca kaynak önizleme | Kaynak içeriğine sahip, iframe olmadan kod ve teşhis bilgileriyle gösterilen doğrudan olmayan eserler | +| Anlamsal denetim | Mermaid, JSON Canvas, Vega-Lite ve HTML/SVG şeklinde düzenlenebilir olanlar `scripts/diagram-semantic-verification.js` tarafından kontrol edilir | + +**Önbellekleme**: RenderCache, `{spec, target, theme}`'ın belirlenmiş JSON anahtarını kullanır. Yol üzerindeki tekrar önleme, aynı görüntünün tekrar üretilmesini engeller. + +## İpuçları + +- **`best-fit` moduyla başlayın** — bu, her amaç türü için en iyi görsel çıktıyı sağlar +- **Karmaşık diyagramlar için güçlü modeller kullanın** — akış şemaları ve ER şemaları GPT-4o veya Claude'dan fayda görür +- **Alan özelindeki diyagramlar için yerel bilgiyi etkinleştirin** — ilgili vault bağlamı doğruluğu artırır +- **`autoMermaidFixAfterGenerate`'yı ayarlayın** — bunun olmaması durumunda Mermaid sözdizimi hataları sık görülür +- **Eski sürüm düzelticisi kapsamlıdır** — eğer Mermaid önizlemesi başarısız olursa, düzeltici komutunu manuel olarak çalıştırmak genellikle sorunu çözer + +--- + +## Sonraki Adımlar + +- 🔗 [Wiki-Links](./wiki-links) — Kavramların nasıl satır içinde bağlandığı +- 📝 [Concept Notes](./concept-notes) — Diyagram kaynak materyali için kavramları çıkartın +- 🔍 [Research](./research) — Web kaynaklı verilerle diyagramları zenginleştirin diff --git a/website/i18n/tr/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/tr/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..c8927fee --- /dev/null +++ b/website/i18n/tr/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "Araştırma ve Web Araması" +description: "Notlarınıza web aramasını entegre edin" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Araştırma ve Web Araması + +<TLDR> +**Notemd web’i tarar ve LLM-özetlenmiş sonuçları doğrudan notlarınıza ekler.** Tavily API birincil arama arka ucu olarak kullanılır; DuckDuckGo sıfır yapılandırma gerektiren bir yedek olarak hizmet verir. Sonuçlar kaynak atıflarıyla özetlenir ve `## Research` başlığı altına eklenir. Tek not araştırması, klasördeki tüm notların toplu araştırılması ve özetleme adımı için görev bazlı model seçimi desteklenir. + +Bu içerik [Obsidian AI Bilgi Yönetimi Kılavuzu](/docs/pillar-ai-knowledge) serisinin bir parçasıdır. +</TLDR> + +## Genel Bakış + +Araştırma, Notemd’ın en güçlü entegrasyonlarından biridir: okuma, arama ve yazma arasındaki döngüyü kapatır. Bilinmeyen bir terimi aramak için tarayıcıya geçmek yerine, onu vurgulayın ve Notemd’ın arama yapmasına, özet çıkarmasına ve bulguları notlarınıza eklemesine izin verin -- hepsi de notlarınızın içinde gerçekleşir. + +Bu süreç tamamen yapılandırılabilir. Arama sağlayıcısını, özet yazacak LLM’ı ve sonuçların aktif nota mı eklenmesini yoksa ayrı dosyalara mı yazılmasını siz seçersiniz. Toplu mod sayesinde bir tıklamayla bir klasördeki tüm notları araştırabilirsiniz. + +## Nasıl Çalışır + +### Arama‑Sonra‑Özetleme İş Akışı + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **Sorgu çıkarma** -- Notemd, seçiminizden veya not başlığından arama terimlerini çıkarır. +2. **Web araması** -- Önce Tavily denir. Eğer herhangi bir API anahtarı yapılandırılmamışsa, otomatik olarak DuckDuckGo kullanılır (anahtar gerekmez). +3. **LLM özetleme** -- Ham arama sonuçları yapılandırılan LLM’a gönderilir ve bu da içinde kaynak atıfları bulunan özlü bir özet üretir. +4. **Eklemek** -- Biçimlendirilmiş özet, aktif nottaki `## Research` başlığı altına eklenir. + +### Tavily ile DuckDuckGo Karşılaştırması + +| Özellik | Tavily | DuckDuckGo | +|--------|--------|------------| +| API anahtarı | Gerekli (ücretsiz plan mevcut) | Gerekli değil | +| Sonuç kalitesi | Yüksek (yapay zeka için özel olarak tasarlanmış) | Genel sorgular için yeterli | +| Hız sınırlamaları | Cömert ücretsiz plan | Sınırlama uygulanabilir | +| Yapılandırma | Ayarlar içinde `tavilyApiKey` | Sıfır yapılandırma -- otomatik geri dönüş | + +### Toplu Klasör Araştırması + +Bir klasöre sağ tıklayın ve **"Notemd: Araştırma klasörü"** seçeneğini belirleyin. Klasördeki her `.md` dosyası sırayla (veya yapılandırılan eşzamanlılık düzeyine kadar paralel olarak) işlenir. Her not için ayrı bir araştırma özeti oluşturulur. + +## Yapılandırma + +| Ayar | Varsayılan | Etki | +|---------|---------|--------| +| `tavilyApiKey` | `''` | Tavily API anahtarı. Boş olduğunda yalnızca DuckDuckGo kullanılır. | +| `researchProvider` / `researchModel` | DeepSeek | Araştırma sonuçlarını özetlemek için görev başına LLM | +| `maxResearchContentTokens` | `4000` | LLM'a gönderilen içerik için token bütçesi. Fazlası kısaltılır. | +| `researchAppendToNote` | `true` | Özeti kaynak notuna ekleyin. False değeri verilirse ayrı bir dosya oluşturulur. | +| `researchLanguage` | `'en'` | Özetlenen araştırmanın çıkış dili | + +### Görev bazlı model önerisi + +Araştırma, çok dilli içerikleri işleyebilen ve iyi yapılandırılmış metinler üretebilen bir modelden fayda görür. Şunları göz önünde bulundurun: + +- **DeepSeek** -- standart, uygun fiyatlı, yüksek kalite +- **GPT-4o** -- daha yüksek kaliteli özetleme, daha yüksek maliyet +- **Gemini Flash** -- hızlı ve ucuz, basit sorgular için yeterli + +## Örnek + +*transformer attention mechanisms* konulu bir makale okurken *relative positional encoding* adında tanımadığınız bir terimle karşılaşırsınız. Obsidian bırakmak yerine: + +1. **"relative positional encoding"** ifadesini vurgulayın +2. Sağ tıklayın --> **"Notemd: Araştırma ve özetleme"** +3. Notemd web’i arar, en iyi sonuçları özetler ve ekler: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +Özet artık aranabilir, bağlantılanabilir ve çevrimdışı erişilebilir şekilde sizin arşivinizin bir parçasıdır. + +## İpuçları + +- **En iyi sonuçlar için bir Tavily anahtarı belirleyin** -- ücretsiz seviye bile ham DuckDuckGo’dan daha iyi alaka düzeyi sağlar. +- **Güçlü bir özetleme modeli kullanın** -- ucuz modeller ince teknik içerikleri basite indirebilir. +- **İlk okumadan sonra toplu araştırma yapın** -- böylece birçok not arasındaki eksiklikleri tek seferde giderin. +- **Eklenen özetleri gözden geçirin** -- LLM’lar kaynak detaylarını uydurabilir. Önemli iddiaları doğrulayın. + +--- + +## Sonraki Adımlar + +- [Concept Notes](./concept-notes) -- Araştırma sonuçlarından önemli terimleri çıkarın ve kalıcı hâle getirin +- [Wiki-Links](./wiki-links) -- Arşivinizdeki araştırma sonuçlarından elde edilen kavramları birbirine bağlayın +- [Translation](./translation) -- Araştırma özetlerini başka bir dile çevirin +- [LLM Sağlayıcılar](/docs/providers/overview) -- Özetleme için kullanılacak modeli yapılandırın diff --git a/website/i18n/tr/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/tr/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..2dc874ad --- /dev/null +++ b/website/i18n/tr/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "Çeviri" +description: "Notlar ve seçimler çevrilir" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# Çeviri + +<TLDR> +**Notemd, LLM destekli çeviri özelliğiyle 21'den fazla dil arasında metin çevirisi yapar.** Tek seçimli çeviri, tüm notun çevirisi ve toplu klasör çevirisi özelliklerini destekler. Her çeviri görevi, görev bazlı ayarlar aracılığıyla özel bir sağlayıcı ve model kullanabilir. Çıktı dili, UI dilinden bağımsız olarak ayrıca yapılandırılabilir. Sonuçlar tercihinize göre mevcut dosyaya eklenir veya yeni bir dosyaya yazılır. + +Bu içerik [Obsidian AI Bilgi Yönetimi Kılavuzu](/docs/pillar-ai-knowledge) serisinin bir parçasıdır. +</TLDR> + +## Genel Bakış + +Notemd içindeki çeviri bir sözlük araması değildir -- bu, LLM destekli, bağlam bilincine sahip bir çeviridir. Model, tonu, alan terimlerini ve cümle yapısını koruyarak tam paragrafı veya notu inceler. Bu sayede özellikle teknik, akademik ve yaratıcı yazılar için kelime kelime hizmetlerden daha kaliteli sonuçlar elde edilir. + +Bu özellik seçim, aktif not ve tüm klasör olmak üzere üç farklı kapsamı destekler. Görev bazlı model seçimiyle birlikte, gündelik çeviriler için hızlı bir model (Gemini Flash) ve nüanslara duyarlı içerikler için güçlü bir model (Claude Sonnet) kullanılabilir -- küresel sağlayıcınızı değiştirmenize gerek kalmaz. + +## Nasıl Çalışır + +### Çevirme Komutu + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **Kaynak tespiti** -- LLM, içerikten kaynak dilini otomatik olarak tahmin eder. Manuel olarak belirtmenize gerek yoktur. +2. **İstek oluşturma** -- Notemd, hedef dili, isteğe bağlı alan ipucunu ve çevrilecek içeriği içeren bir istek oluşturur. +3. **LLM çevirisi** -- Yapılandırılan `translateProvider` / `translateModel`, isteği işler. Model, markdown biçimlendirmesini, wiki bağlantılarını ve kod bloklarını korur. +4. **Çıktı** -- Çevrilmiş metin ya orijinalinin altına eklenir ya da vault'ta yeni bir dosyaya yazılır. + +### Dil Çiftleri + +Notemd, altta yatan LLM'ın desteklediği her dil çiftini destekler. Yaygın çiftler arasında şunlar bulunur: + +| Kaynak Dili | Hedef | Tipik Kalite | +|--------|--------|----------------| +| İngilizce | Çince (Basitleştirilmiş) | Mükemmel | +| Çince | İngilizce | Mükemmel | +| İngilizce | Japonca | Çok iyi | +| İngilizce | Almanca / Fransızca / İspanyolca | Çok iyi | +| Herhangi bir desteklenen dil | Herhangi bir desteklenen dil | Modele bağlı | + +`translateLanguage` ayarı **çıktı dili**ni kontrol eder. Kaynak dili otomatik olarak tespit edilir. + +### Görev Bazlı Model Seçimi + +Çeviri kalitesi modele göre büyük ölçüde değişir. Notemd, sadece çeviri için özel bir model atamanıza olanak tanır. + +| Model | Hız | Kalite | Maliyet | En İyi İçin | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | Hızlı | İyi | Düşük | Günlük, yüksek hacimli | +| `gpt-4o-mini` | Hızlı | İyi | Düşük | Hızlı arama | +| `deepseek-chat` | Orta | İyi | Çok düşük | Bütçe dostu çok dillilik | +| `claude-3-5-sonnet` | Orta | Mükemmel | Orta | Teknik / akademik | +| `gpt-4o` | Orta | Mükemmel | Orta | Nüanslara duyarlı metin yazımı | + +### Toplu Klasör Çevirisi + +Bir klasöre sağ tıklayın ve **"Notemd: Klasörü çevir"** seçeneğini seçerek o klasördeki tüm notları çevirin. Her dosya ayrı ayrı işlenir. Eşzamanlılık ayarı, kaç dosyanın paralel olarak çevrileceğini kontrol eder. + +## Yapılandırma + +| Ayar | Varsayılan | Etki | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | Çeviri görevleri için özel sağlayıcı | +| `translateLanguage` | `'en'` | Hedef çıktı dili | +| `translationAppendToNote` | `true` | Çevrilmiş metni orijinalinin altına ekleyin. Bu değer false ise yeni bir dosya oluşturulur. | +| `batchConcurrency` | `3` | Toplu çeviri sırasında paralel olarak işlenen dosya sayısı | + +## Örnek + +Bir Çince araştırma notu okuyorsunuz ve İngilizce versiyonunu istiyorsunuz: + +1. Notu açın +2. Sağ tıklayın --> **"Notemd: Mevcut dosyayı çevir"** +3. Notemd Çinceyi algılar, ayarladığınız hedef dil (İngilizce) olarak çevirir ve şunu ekler: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +Orijinal Çince metin, çevirinin üstünde değiştirilmeden kalır. `## Translation` başlığı her iki versiyonu da aynı dosyada tutarak kolay erişim sağlar. + +## İpuçları + +- **Büyük klasörlerin toplu çevirisi için Gemini Flash kullanın** -- bu, büyük klasörlerin toplu çevirisinde en hızlı ve en ucuz seçenektir. +- **Viki bağlantılarını koru** -- Notemd'ın talimatları, LLM'ye çeviride `[[wiki-links]]`'yı bozmadan tutmasını söyler. Bazı modellerin bunları ara sıra açtığı için çeviriden sonra kontrol edin. +- **Çıktı dilini açıkça belirle** -- Kaynak için otomatik algılama işe yarar, ancak hedef konusunda belirsizlikleri önlemek amacıyla her zaman `translateLanguage`'yı yapılandırın. +- **Kavram notlarını topluca çevir** -- Eğer kavram dosyanız bir dildeyse ve başka bir dilde olmasını istiyorsanız, dosya düzeyindeki çeviri bunu tek adımda halleder. + +--- + +## Sonraki Adımlar + +- [Araştırma](./research) -- Herhangi bir dilde arama yapın ve özet çıkarın, ardından sonuçları çevirin +- [İş Akışları](./workflows) -- Viki bağlantılaması veya kavram çıkarma ile çeviriyi zincirleme yapın +- [Toplu İşleme](/docs/advanced/batch-processing) -- Dosya işlemleri için eşzamanlılık ve üzerine yazma davranışları +- [LLM Sağlayıcılar](/docs/providers/overview) -- Dil çiftiniz için en iyi modeli seçin diff --git a/website/i18n/tr/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/tr/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..e9e6b94a --- /dev/null +++ b/website/i18n/tr/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "Wiki-Linkler" +description: "Anahtar kavramlar için otomatik wiki-link oluşturma" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# Wiki-Linkler + +<TLDR> +**Notemd, notlarınızdaki anahtar kavramlara otomatik olarak `[[wiki-links]]` ekler.** LLM içeriğinizi okur, bağlamdaki önemli terimleri tespit eder ve her ortaya çıkışta Obsidian tarzı wiki-link'ler ekler. İsteğe bağlı olarak geri bağlantılar içeren konsept notu dosyaları oluşturur. Eşanlamlı kelime bastırma, yeniden adlandırma/silme durumunda link bütünlüğü ve sadece çıkarma modu (dosya değişikliği yapılmaz) özelliklerini destekler. Sadece mevcut not başlıklarını eşleştiren Auto Link'in aksine, Notemd yapay zeka kullanarak yeni kavramları tespit eder ve buna karşılık gelen notlar oluşturur. Bu özellik [Obsidian Yapay Zeka Bilgi Yönetimi Kılavuzu](/docs/pillar-ai-knowledge) içinde yer alır. +</TLDR> + +## Genel Bakış + +Wiki-linkleme, Notemd'ın temel özelliğidir. Basit metni birbirine bağlı bir bilgi grafiğine dönüştürmek için şunları yapar: + +1. **Bir LLM ile notunuzu analiz etmek** +2. **Anahtar kavramları tespit etmek** (terimler, kişiler, yöntemler, teoriler) +3. **Her ortaya çıkışta `[[wiki-links]]` eklemek** +4. **İsteğe bağlı olarak geri bağlantılar içeren konsept notları oluşturmak** + +## Nasıl Çalışır + +### Süreç + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### Örnek + +**Önce:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**Sonra:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## Kullanım + +### Temel: Mevcut Nota Link Ekleme + +1. Bir notu açın +2. Düzenleyicide sağ tıklayın → **"Dosyayı İşle (link ekle)"** +3. Birkaç saniye bekleyin +4. Kavramlar artık bağlantılı! + +### Toplu İşleme: Birden Fazla Notu İşle + +1. Dosya Gezgini'nde bir klasöre sağ tıklayın +2. **"Notemd: Klasörü işle (bağlantılar ekle)"** seçeneğini seçin +3. Yapılandırma: + - Eş Zamanlılık (paralel kaç dosya) + - Mevcut bağlantıları üzerine yaz (evet/hayır) +4. **İşle** butonuna tıklayın + +### Seçmeli: Belirli Metni Bağla + +1. İşlenecek metni vurgulayın +2. Sağ tık → **"Seçimi İşle (bağlantı ekle)"** +3. Yalnızca vurgulanan kısım analiz edilir + +## Notemd ile Otomatik Bağlama + +Obsidian, otomatik wiki bağlaması için iki yaklaşıma sahiptir: + +| | **Otomatik Bağlama** | **Notemd** | +|--|---------------|-------------| +| Bağlantı kaynağı | Depodaki mevcut not başlıkları | İçerikte LLM tarafından tanımlanan kavramlar | +| Yeni kavramlar bağlanabilir | Hayır — başlık zaten mevcut olmalı | Evet — AI kavramları tanır ve notlar oluşturur | +| Eşanlamlı kelime işleme | Hayır | Evet — eşanlamlı kelime bastırma | +| Kavram notu oluşturma | Hayır | Evet — geri bağlantılar ve tekrar önleme ile | +| Toplu işleme | Hayır (tek dosya) | Evet (klasör düzeyinde) | +| Görev bazlı model yönlendirme | Hayır | Evet | + +**Auto Link** başlık eşleştirmeli çalışır: "Machine Learning" adında bir not mevcutsa, bulunan örnekleri `[[Machine Learning]]` ile sarar. Eğer not mevcut değilse hiçbir şey olmaz. + +**Notemd** AI tabanlıdır: LLM içeriğinizi okur, bağlamı anlar, henüz bir not mevcut olmasa bile bağlanması gereken kavramları tespit eder ve hem bağlantıyı hem de kavram notunu oluşturur. + +## Özellikler + +### Eşanlamlı Kelime Bastırma + +**Sorun:** "transformer", "transformers", "Transformer architecture" → 3 ayrı kavram + +**Çözüm:** Notemd neredeyse aynı olanları tespit eder ve standart biçimi kullanır. + +**Yapılandırma:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### Bağlantı Bütünlüğü + +**Bir kavram notunu yeniden adlandırdığınızda:** +- Tüm wiki bağlantıları otomatik olarak güncellenir (Obsidian temel özellik) +- Geri bağlantılar aynı kalır + +**Bir kavram notunu sildiğinizde:** +- Bağlantılar mevcut kalır ancak "bağlantısız atıflar" olarak gösterilir +- Herhangi bir örneğinden yeniden oluşturabilirsiniz + +### Saf Çıkarma Modu + +**Orijinalini değiştirmeden kavramları çıkarın:** + +1. Sağ tık → **"Kavramları çıkar (bağlantı olmadan)"** +2. Kavram notları oluşturulur +3. Orijinal dosya bozulmaz + +Kullanım durumu: Okunabilir içeriklerin veya nihai taslakların işlenmesi. + +## Kavram Notu Oluşturma + +### Otomatik Oluşturma + +**Etkinleştirildiğinde (varsayılan), Notemd şunları oluşturur:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### Yapılandırma + +**Çıktı klasörü:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Hiyerarşik yapı:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**Şablon:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## Gelişmiş Seçenekler + +### Bağlam Penceresi + +**Ne kadar çevreleyici metin gönderilecek:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +Daha büyük = daha iyi doğruluk, daha yüksek maliyet. + +### Minimum Oluşum Sayısı + +**Yalnızca birden fazla kez görünen kavramları bağlayın:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +Tekrar eden temalara odaklanmak için 2 veya 3 olarak ayarlayın. + +### Dışlama Kalıpları + +**Belirli kelimeleri atlayın:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +Genel terimlerin aşırı bağlanmasını önler. + +### Özel İstekler + +**Varsayılan LLM talimatlarını geçersiz kılın:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +Alan özelindeki ihtiyaçlar için değiştirin (örneğin, "Tıbbi terminolojiye odaklanın"). + +## İpuçları ve En İyi Uygulamalar + +### ✅ YAPIN + +- **100 kelimeyi aşan notları işleyin** — Kısa notlar az kavram sağlar +- **Daha iyi kavram tanımlaması için güçlü modeller kullanın** (GPT-4o, Claude) +- **Kabul etmeden önce gözden geçirin** — Önerilen bağlantıların mantıklı olduğundan emin olun +- **Iteratif olarak geliştirin** — 5-10 notu işleyin, grafiği inceleyin, ayarları düzenleyin + +### ❌ YAPMAYIN + +- **Aşırı bağlantı kullanmayın** — Her ismin bağlantıya ihtiyacı yoktur +- **Taslakları tekrar tekrar işlemeyin** — Kavramlar değişebilir, stabil hale gelene kadar bekleyin +- **Eşanlamlıları göz ardı etmeyin** — "ML" ile "Machine Learning" arasındaki farkı önlemek için baskılamayı etkinleştirin + +## Performans + +### Hız + +| Not Boyutu | GPT-4o-mini | Claude Sonnet | Ollama (yerel) | +|-----------|-------------|---------------|----------------| +| 500 kelime | 2-3 saniye | 3-5 saniye | 5-10 saniye | +| 2000 kelime | 5-8 saniye | 10-15 saniye | 20-40 saniye | +| 5000+ kelime | Bloklu (çoklu çağrılar) | Bloklu | Bloklu | + +### Maliyet Tahmini + +**Örnek: GPT-4o-mini ile 1000 kelimelik not** +- Girdi: ~1500 token +- Çıktı: ~200 token +- Maliyet: ~ + +**100 notun toplu işlenmesi:** ~ + +## Sorun Giderme + +### Hiçbir bağlantı eklenmedi. + +**Kontrol Et:** +1. LLM çağrısı başarılı oldu (Ayarlar → Teşhis) +2. Notun yeterli içeriği var (>50 kelime). +3. Kavramlar teknik/özeldir (sadece zamirler değil). + +**Deneyin:** +- Daha güçlü bir model kullanın +- Bağlam penceresini genişlet +- API anahtarının geçerliliğini kontrol edin + +### Çok Fazla Bağlantı + +**Çözümler:** +1. Minimum tekrar sayısını artırın (2 veya 3) +2. Dışlama listesine yaygın kelimeler ekle +3. Daha az agresif bir model kullanın + +### Yanlış Kavramlar Bağlandı + +**Düzeltmeler:** +1. Alan özgüllüğü için özel istem kullanın +2. Eşanlamlı kelime baskılamasını etkinleştirin +3. El ile inceleyip bağlantıyı kaldırın + +### Yeniden adlandırma sonrası bağlantılar bozulur + +**Bu, Obsidian davranışıdır ve normaldir.** + +Tüm bağlantıları güncellemek için: +1. Kavram notunu yeniden adlandırın +2. Obsidian otomatik olarak `[[old]]` → `[[new]]` olarak güncellenir + +--- + +## Sonraki Adımlar + +- 📖 [Kavram Notları](./concept-notes) — Kavram notu oluşturma konusunda derinlemesine bilgi +- 🔍 [Araştırma Entegrasyonu](./research) — Bağlantı kurmayı web araştırmasıyla birleştirin +- 🎨 [Şemalar](./diagrams) — Bilgi grafiğinizi görselleştirin diff --git a/website/i18n/tr/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/tr/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..33e06ff1 --- /dev/null +++ b/website/i18n/tr/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "İş Akışları" +description: "Tek tıklamalı düğmelerle birden fazla görevi zincirleyin" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# İş Akışları + +<TLDR> +**Notemd iş akışları, birden fazla görevi tek bir tek tıklamalı eyleme dönüştürür.** `add-links > extract-concepts > research > diagram` gibi dizileri basit bir DSL kullanarak tanımlayın. İş akışları, mevcut notta veya klasörde tüm zinciri çalıştıran kenar çubuğu düğmeleri olarak görünür. Önceden tanımlanmış iş akışlarıyla birlikte gelir; ayarlarda özelleştirilmiş olanlar oluşturulabilir. Her adım, kendi görev özelindeki model yapılandırmasını kullanır. + +Bu içerik [Obsidian AI Bilgi Yönetimi Kılavuzu](/docs/pillar-ai-knowledge) serisinin bir parçasıdır. +</TLDR> + +## Genel Bakış + +Bir iş akışı, görevleri tek tek çalıştırmanın getirdiği zorlukları ortadan kaldırır. Bağlantı ekleme, kavramlar çıkarma, bilinmeyen terimler üzerine araştırma yapma ve bir diyagram oluşturma için dört kez sağ tıklamak yerine, tek bir kenar çubuğu düğmesine basarsınız ve tüm zincir çalıştırılır. Notemd sıralama, hata yayılımı ve ilerleme raporlamasını üstlenir. + +İş akışları, hafif bir DSL (alan özelinde dil) kullanılarak tanımlanır. Ayarlarda bulunurlar, Obsidian kenar çubuğunda tıklanabilir düğmeler olarak görünür ve ya mevcut nota ya da tüm bir klasöre uygulanabilir. + +## Nasıl Çalışır + +### İş Akışı Yürütme İş Akışı + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **Ayarla** -- DSL dizgesi `>` (veya `>`) ile bölünerek sıralı bir görev tanımlayıcıları listesine dönüştürülür. +2. **Çöz** -- Her tanımlayıcı, içsel bir komuta (add-links, extract-concepts, research, translate, diagram vb.) ile eşleştirilir. +3. **Yürüt** -- Adımlar sırayla çalıştırılır. Her adım, yapılandırılmış görev özelindeki sağlayıcı ve modelini kullanır. +4. **Hata yönetimi** -- Bir adım başarısız olursa, iş akışı hata politikanıza bağlı olarak ya durdurulur ya da bir sonraki adıma devam eder. +5. **Bitti** -- Bir bildirim kutusu başarıyı raporlar veya başarısız olan adımları listeler. + +### DSL Formatı + +İş akışları, `>` ile ayrılmış görev tanımlayıcılarının bir dizisi olarak tanımlanır: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**Mevcut görev tanımlayıcıları:** + +| Tanımlayıcı | Eylem | +|------------|--------| +| `process-current-add-links` | Aktif notaya wiki bağlantıları ekle | +| `extract-concepts-current` | Aktif notadan kavramlar çıkar | +| `research-and-summarize` | Seçilen metin veya not başlığı üzerine araştırma yap | +| `process-current-translate` | Aktif notayı çevir | +| `summarize-to-mermaid` | Aktif notadan bir diyagram oluştur | +| `generate-from-title` | Not başlığından içerik üret | +| `extract-original-text` | OCR / taramalı içerik için orijinal metni çıkar | + +**Klasör düzeyindeki varyantlar**: tanımlayıcı adlardaki `current` yerine `folder` kullanılır. + +### Önceden tanımlanmış iş akışları ile özel iş akışları + +Notemd, yaygın desenler için hazır iş akışlarıyla birlikte gelir: + +| İş Akışı | Zincir | Kullanım Senaryosu | +|----------|-------|----------| +| **Tek Tıkla Çıkarma** | bağlantı ekle > kavram çıkar > araştırma | Bir araştırma makalesini tek seferde işle | +| **Tam İşlem Akışı** | add-links > extract-concept > research > diagram | Görselleştirme ile tam bilgi çıkarma | +| **Çevir + Bağlantı** | translate > add-links | Kavramları hedef dilde çevirip bağlayın | + +**Özel iş akışları** ayarlarda oluşturulur: + +1. **Ayarlar** --> **Notemd** --> **İş Akışları**'na gidin +2. **"İş Akışı Ekle"** butonuna tıklayın +3. DSL zincirini girin (örneğin, `process-current-add-links>extract-concepts-current`) +4. Bir görünüm adı verin (örneğin, "Hızlı Bağlantı + Çıkarma") +5. Yeni düğme hemen kenar çubuğunda belirir + +## Yapılandırma + +| Ayar | Varsayılan | Etki | +|---------|---------|--------| +| `workflows` | Önceden tanımlanmış set | İş akışı tanımları dizisi (ad + DSL) | +| `workflowContinueOnError` | `true` | Mevcut adım başarısız olursa bir sonraki adıma geçin | +| `workflowShowProgress` | `true` | Her adım tamamlandıktan sonra ilerleme bildirimi gösterin | + +### İş Akışlarındaki Görev Bazlı Modeller + +Bir iş akışındaki her adım, kendi görev bazlı model yapılandırmasını kullanır. DSL içinde doğrudan modeller belirtmenize gerek yoktur. Çözüm sırası şu şekildedir: + +1. `useMultiModelSettings` mevcutsa görev bazlı sağlayıcı/model kullanılır +2. Aksi takdirde küresel `activeProvider` kullanılır + +Bu, `add-links`'ın DeepSeek üzerinde çalışırken `research`'ın GPT-4o üzerinde çalışabileceği anlamına gelir -- hepsi aynı iş akışı tıklaması içinde gerçekleşir. + +## Örnek + +Sadece bir makine öğrenimi makalesinin PDF versiyonunu kasanıza içe aktardınız ve tam bilgi çıkarma istiyorsunuz: + +1. İçe aktarılan notu açın +2. **"Tam İş Akışı"** kenar çubuğu düğmesine tıklayın +3. Notemd şunları gerçekleştirir: + - **Adım 1**: Wiki bağlantıları ekle -- `[[attention mechanism]]`, `[[transformer]]` vb. + - **Adım 2**: Kavramlar çıkar -- kavramlarınızı kavram klasörünüzde oluşturur + - **Adım 3**: Araştırma -- anahtar terimler için web kaynaklarını özetler + - **Adım 4**: Diyagram -- makalenin yapısının Mermaid şeklinde bir zihin haritası oluşturur +4. Yaklaşık 30 saniye sonra notunuzda bağlantılar bulunur, kavram notları oluşur, araştırma eklenir ve bir diyagram dosyası kaydedilir + +Hepsi tek bir tıklamayla. + +## İpuçları + +- **Önceden tanımlanmış iş akışlarından başlayın** -- bunlar en yaygın desenleri kapsar. Farklı bir sıra gerektiğinde yalnızca özelleştirin. +- **`workflowContinueOnError`'ı etkinleştirin** -- başarısız bir diyagram adımı tüm iş akışını durdurmamalıdır. +- Toplu işleme için **Klasör İş Akışları**nı kullanın -- bir klasöre sağ tıklayın, bir iş akışı seçin ve her not işlenir. +- İş akışlarınızı **açık bir şekilde adlandırın** -- kenar çubuğu alanı sınırlıdır. "Hızlı Çıkarma" veya "Çevir + Bağlantı" gibi kısa ve eylem odaklı isimler kullanın. + +--- + +## Sonraki Adımlar + +- [Araştırma](./research) -- İş akışlarına eklemeden önce araştırma adımının ne yaptığını anlayın +- [Wiki-Bağlantıları](./wiki-links) -- Çoğu iş akışında kullanılan temel bağlantı özelliği +- [Kavram Notları](./concept-notes) -- Bir iş akışı adımı olarak kavram çıkarma +- [Toplu İşleme](/docs/advanced/batch-processing) -- Klasör iş akışları için eş zamanlılık ve ilerleme raporlama diff --git a/website/i18n/tr/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/tr/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..3087f059 --- /dev/null +++ b/website/i18n/tr/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "Yapılandırma" +description: "Notemd ayarlarını ve tercihlerini yapılandırın" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Yapılandırma + +<TLDR> +**Notemd yapılandırması 6 ana alana sahiptir:** (1) LLM sağlayıcıları ve API anahtarları, (2) Görev bazlı model seçimi, (3) Çıktı yolları ve şablonlar, (4) UI dil ve çıktı dili, (5) Arama hizmetleri (Tavily/DuckDuckGo), (6) Özel iş akışları. Tüm ayarlar Obsidian Ayarlar → Notemd bölümündedir. Değişiklikler hemen etkili olur. +</TLDR> + +## Ayarlar Genel Bakışı + +Erişim: **Obsidian Ayarlar (⚙️) → Notemd** + +### Ana Bölümler + +1. **Sağlayıcı Yapılandırması** — API anahtarları, temel URLs’ler, modeller +2. **Görev Ayarları** — Görev bazlı model seçimi +3. **Çıktı Yapılandırması** — Oluşturulan dosyaların nereye kaydedileceği +4. **Dil Ayarları** — UI ve çıktı dilleri +5. **Arama Entegrasyonu** — Tavily/DuckDuckGo kurulumu +6. **İş Akışları** — Özel düğme zincirleri +7. **Gelişmiş** — Teşhis, toplu işleme, parçalama + +--- + +## 1. Sağlayıcı Yapılandırması + +### Bir Sağlayıcı Ekleme + +1. Açılır menüden **sağlayıcı seçin** (30’dan fazla seçenek mevcuttur) +2. **API Anahtarını girin** +3. **İsteğe bağlı**: Özel bir temel URL ayarlayın (proxy/gateway'lar için) +4. **Bağlantıyı doğrulamak için "Model Listesi Al"a tıklayın** +5. **Varsayılan modeli seçin** + +### Yaygın Sağlayıcılar + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Yerel) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### Çoklu Sağlayıcılar + +Birden fazla sağlayıcıyı yapılandırabilir ve her görev için aralarında geçiş yapabilirsiniz: +- **Ana sağlayıcı**: Yedek olarak kullanılır +- **Göreve özel sağlayıcılar**: Belirli görevler için bunları geçersiz kılın + +--- + +## 2. Göreve Özel Modeller + +Maliyeti/kaliteyi optimize etmek için farklı görevler için farklı modeller yapılandırın: + +### Görev Türleri + +| Görev | Varsayılan Model | Amaç | +|------|--------------|---------| +| **Bağlantı Oluşturma** | Ana sağlayıcı | Wiki bağlantıları için kavramları belirleyin | +| **Kavram Oluşturma** | Ana sağlayıcı | Kavramları çıkarın ve açıklayın | +| **Araştırma** | Ana sağlayıcı | Web arama sonuçlarını özetleyin | +| **Çeviri** | Ana sağlayıcı | Metni çevirin | +| **Diyagram Oluşturma** | Ana sağlayıcı | Mermaid/Canvas diyagramları oluşturun | + +### Örnek: Maliyet Açısından Optimize Edilmiş Kurulum + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### Nasıl yapılandırılır + +1. **Ayarlar → Notemd → Görev Ayarları** +2. Her görev için şunu seçin: + - ✅ **Ana sağlayıcıyı kullanın** (varsayılan) + - 🔄 **Özel sağlayıcıyı kullanın** → sağlayıcı ve model seçin + +--- + +## 3. Çıktı Yapısı + +### Kavram Notları Çıktısı + +**Yeni konsept notlarının nerede kaydedileceği:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Şablon:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### Klasör Yapısı Seçenekleri + +**Seçenek 1: Düz (tüm konseptler tek bir klasörde)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**Seçenek 2: Hiyerarşik (kaynak klasöre göre)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +Yapılandırma: **Ayarlar → Çıktı → Hiyerarşik Klasörleri Kullan** + +### Şema Çıktısı + +**Şemaların nerede kaydedileceği:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**Format:** +- `.mmd` (Mermaid kaynak) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. Dil Ayarları + +### UI Dil + +**Arayüz dili** (düğmeler, menüler, iletişim kutuları): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +Desteklenen diller: İngilizce, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Русский, العربية ve daha fazlası. + +### Çıktı Dil + +**Oluşturulan içerik dilinin** (kavram notları, araştırma özetleri): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**Kullanım durumu:** Çince UI + İngilizce çıktı ile çift dilli araştırma. + +### Çeviri Hedefi + +**Çeviri görevleri için varsayılan hedef dil:** + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. Arama Entegrasyonu + +### Tavily (Önerilen) + +**Yapay zeka ile optimize edilmiş arama servisi:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +Anahtar alın: [tavily.com](https://tavily.com/) + +**Özellikler:** +- Yüksek kaliteli sonuçlar +- Yapay zeka ile optimize edilmiş özetler +- Kaynak atıfları + +### DuckDuckGo (Deneysel) + +**API anahtarı gerekmez:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**Not:** Daha düşük kalite, özelleştirme yok. + +--- + +## 6. İş Akışı Yapılandırması + +### Özel İş Akışları Oluşturma + +**İş akışları, birden fazla görevi tek bir düğmeye bağlar.** + +1. **Ayarlar → İş Akışları → İş Akışı Ekle** +2. **Ad**: "Kağıt Analizi Akışı" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **Kaydet** + +Sol kenar çubuğunda yeni bir düğme belirir. + +### DSL Sözdizimi + +**Biçim:** `action1>action2>action3` + +**Mevcut Eylemler:** +- `process-current-add-links` — Mevcut nota wiki bağlantıları ekle +- `extract-concepts-current` — Kavram notları oluştur +- `research-and-summarize` — Web araştırması + özet +- `translate-current` — Mevcut notu çevir +- `summarize-as-mermaid` — Mermaid diyagramı oluştur +- `process-folder-add-links` — Klasörü toplu olarak işle + +**Örnek İş Akışları:** + +**Hızlı Kavram Çıkarma:** +``` +process-current-add-links>extract-concepts-current +``` + +**Derin Araştırma:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**Çok Dilli Analiz:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. Gelişmiş Ayarlar + +### Toplu İşleme + +**Birden fazla dosyayı paralel olarak işle:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +Daha yüksek değer = daha hızlı ancak daha fazla API çağrısı. + +### Akıllı Bölme + +**Uzun notlar için bölümlere ayırın:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +Token sınırı hatalarını önler. + +### Teşhis Paneli + +**Ayrıntılı günlükleri görüntüle:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +Gösterir: +- API istek/yanıt sayısı +- Token kullanımı +- İşleme süreleri +- Hatalar + +### Tekrarlayan Kavram Tespiti + +**Neredeyse aynı kavramlardan kaçının:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +Daha yüksek = daha agresif birleştirme. + +--- + +## Yapılandırma Profilleri + +### Ayarları Dışa Aktar/İçe Aktar + +**Cihazlar arasında yapılandırmaları paylaşın:** + +1. **Ayarlar → Gelişmiş → Yapılandırmayı Dışa Aktar** +2. `notemd-config.json` kaydeder +3. Yeni cihazda: **Yapılandırmayı İçe Aktar** + +**Neler dahildir:** +- Sağlayıcı API anahtarları (isteğe bağlı) +- Model seçimleri +- Çıktı yolları +- Özel iş akışları + +--- + +## Önerilen Yapılandırmalar + +### Öğrenciler için + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### Araştırmacılar için + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### Gizliliğe Önem Veren Kullanıcılar İçin + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### Çift Dilli Çalışma İçin + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## Yapılandırma Sorunlarının Giderilmesi + +### Ayarlar Kaydedilmiyor +- `.obsidian/plugins/notemd/` içindeki dosya izinlerini kontrol edin +- Deneyin: Eklentiyi devre dışı bırakın → Tekrar etkinleştirin + +### API Anahtarı Geçersiz +- Ekstra boşluk yok +- Son kullanma tarihini kontrol edin +- Sağlayıcı panosundaki kredileri doğrulayın + +### Modeller Yüklenmiyor +- Yenilemek için "Model Listesi Al"a tıklayın +- Ağ bağlantısını kontrol edin +- Farklı bir sağlayıcı deneyin + +--- + +## Sonraki Adımlar + +- 📖 [Özellikleri Keşfedin](../features/wiki-links) +- 🔌 [Sağlayıcı Kurulum Kılavuzları](../providers/overview) +- ❓ [Sık Sorulan Sorular](../faq) diff --git a/website/i18n/tr/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/tr/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..6e7076fe --- /dev/null +++ b/website/i18n/tr/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "Kurulum" +description: "Obsidian içinde Notemd'yi nasıl kurarsınız" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Kurulum + +<TLDR> +**2 dakikadan kısa sürede Notemd'yi kurun.** İki yöntem: (1) Obsidian Topluluk Eklentileri (tavsiye edilir, tek tıkla kurulum), veya (2) GitHub Releases üzerinden manuel kurulum. Obsidian 0.15.0+ sürümü gereklidir. Windows, macOS, Linux, iOS ve Android üzerinde çalışır. Harici bağımlılıklar yoktur. 4k'dan fazla indirme, MIT lisanslıdır. +</TLDR> + +## Yöntem 1: Topluluk Eklentileri (Tavsiye Edilir) + +1. **Obsidian Ayarları**nı açın (⚙️ simgesi veya `Ctrl/Cmd + ,`) +2. **Topluluk eklentileri**ne gidin +3. **Gözat** butonuna tıklayın +4. **"Notemd"** için arama yapın +5. **Kur** butonuna tıklayın +6. **Etkinleştir** butonuna tıklayın + +**Bitti!** Sol kenar çubuğunuzda Notemd simgesini göreceksiniz. + +## Yöntem 2: Manuel Kurulum + +### Ön koşullar +- Obsidian 0.15.0 veya daha yeni sürümü +- Git (klonlamak için isteğe bağlı) + +### Adımlar + +1. [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest) adresinden **dosyaları indirin**: + - `main.js` + - `styles.css` + - `manifest.json` + +2. **Kasanızın eklenti klasörünü bulun:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +Eğer `plugins` klasörü mevcut değilse, onu oluşturun. + +3. **Notemd klasörü oluşturun:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. Üç dosyayı `notemd` klasörüne **kopyalayın**. + +5. **Obsidian Yeniden Yükleme:** + - `Ctrl/Cmd + R`'ye basın, ya da + - Obsidian'yi yeniden başlatın + +6. **Eklentiyi etkinleştirin:** + - Ayarlar → Topluluk eklentileri + - Listede "Notemd"'yi bulun + - Açın. + +## Alternatif: BRAT üzerinden yükleme + +Eğer [BRAT eklentisini](https://github.com/TfTHacker/obsidian42-brat) kullanıyorsanız: + +1. BRAT ayarlarını açın +2. "Beta eklentisi ekle"ye tıklayın +3. Girin: `Jacobinwwey/obsidian-NotEMD` +4. "Eklenti ekle"ye tıklayın +5. Topluluk eklentilerinde Notemd'yı etkinleştirin + +## Doğrulama + +Kurulumdan sonra Notemd'nun çalıştığını doğrulayın: + +1. Herhangi bir not açın +2. Düzenleyicide sağ tıklayın +3. Aşağıdaki gibi Notemd komutlarını görmelisiniz: + - "Dosyayı işle (bağlantılar ekle)" + - "Kavramları çıkar" + - "Araştır ve özetle" + +## Sonraki Adımlar + +- **LLM sağlayıcısını yapılandırın:** [Hızlı Başlangıç →](./quick-start) +- **Sorun giderme:** [Yaygın Sorunlar →](../advanced/troubleshooting) + +## Sistem Gereksinimleri + +| Platform | Sürüm | Durum | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | Gerekli | +| **Windows** | 7+ | ✅ Destekleniyor | +| **macOS** | 10.15+ | ✅ Destekleniyor | +| **Linux** | Herhangi | ✅ Destekleniyor | +| **iOS** | 15+ | ✅ Destekleniyor | +| **Android** | 5+ | ✅ Destekleniyor | + +## Kaldırma + +Notemd'yı kaldırmak için: + +1. Ayarlar → Topluluk eklentileri +2. "Notemd"'yi bulun +3. ❌ simgesine tıklayın +4. İsteğe bağlı olarak eklenti klasörünü silin: `<vault>/.obsidian/plugins/notemd/` + +Verileriniz (notlar, konsept notları vb.) değişmeden kalır. + +## Güncelleme + +### Otomatik güncelleme (Önerilir) +Obsidian otomatik olarak eklenti güncellemelerini kontrol eder. Yeni bir sürüm mevcut olduğunda: +1. Ayarlar → Topluluk eklentileri +2. "Güncellemeleri kontrol et"e tıklayın +3. Notemd'nin yanındaki "Güncelle"ye tıklayın + +### Manuel güncelleme +En yeni sürümü indirin ve eklenti klasörünüzdeki üç dosyayı değiştirin. + +## Yardım Almak + +- 📖 [Hızlı Başlangıç Kılavuzu](./quick-start) +- ❓ [Sık Sorulan Sorular](../faq) +- 💬 [Discord Topluluğu](https://discord.gg/qnGgsQ9W) +- 🐛 [Sorunları Rapor Et](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/tr/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/tr/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..af6d71aa --- /dev/null +++ b/website/i18n/tr/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "Hızlı Başlangıç Kılavuzu" +description: "5 dakikada Notemd ile başlayın" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Hızlı Başlangıç Kılavuzu + +<TLDR> +**5 dakikada Notemd kullanmaya başlayın.** Üç adım: (1) Bir LLM API anahtarı ekleyin (veya yerel Ollama kullanın), (2) Bir not açın ve "Dosyayı İşle (bağlantılar ekle)" komutunu çalıştırın, (3) Kenar çubuğundaki tek tıklamalı iş akışlarını keşfedin. 30’dan fazla sağlayıcıyı destekler. Kodlama gerekmez. Ollama ile çevrimdışı da çalışır. +</TLDR> + +## 1. Adım: İlk LLM Sağlayıcınızı yapılandırın (2 dakika) + +### Seçenek A: Bulut Sağlayıcısı (OpenAI, Anthropic vb.) + +1. **Ayarlar** → **Notemd** yolunu açın +2. **LLM Sağlayıcı Yapılandırması** bölümünde açılır menüden bir sağlayıcı seçin +3. **API Anahtarınızı** girin +4. (İsteğe bağlı) Mevcut modelleri görmek için **"Model Listesi Al"** butonuna tıklayın +5. Her görev türü için bir model seçin + +**Popüler seçenekler:** +- **OpenAI**: `gpt-4o-mini` (hızlı, uygun fiyatlı) +- **Anthropic**: `claude-sonnet-4-6` (yüksek kaliteli) +- **DeepSeek**: `deepseek-chat` (çok uygun fiyatlı) + +### Seçenek B: Yerel Ollama (API anahtarı gerekmez) + +1. [Ollama](https://ollama.com/) kurun +2. Bir model indirin: `ollama pull llama3.1` +3. Notemd ayarlarında sağlayıcı olarak **"Ollama"** seçin +4. Model adı: `llama3.1` (veya indirdiğiniz herhangi bir model) + +## Adım 2: İlk görevinizi deneyin (1 dakika) + +### Bir nota Wiki bağlantıları ekleyin + +1. Anlamlı içerikli herhangi bir notu açın +2. Düzenleyicide sağ tıklayın +3. **"Dosyayı işle (bağlantılar ekle)"** seçeneğini seçin +4. Birkaç saniye bekleyin +5. Ana kavramlar artık `[[wiki-linked]]`! + +**Örnek:** + +**Önce:** +``` +Machine learning models use neural networks to process data. +``` + +**Sonra:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## Adım 3: Özellikleri keşfedin (2 dakika) + +### Kavram notları çıkarın + +1. Sağ tıklayın → **"Mevcut dosyadan kavramlar çıkar"** +2. Notemd her bir kavram için ayrı dosyalar oluşturur +3. Yapılandırdığınız kavram klasörünüze bakın (varsayılan: `concepts/`) +4. Her kavram notunun orijinal notunuza bir geri bağlantısı vardır + +### Araştırma ve Özetleme + +1. Notunuzdaki bir konuyu vurgulayın +2. Sağ tık → **"Araştırma ve özetleme"** +3. Notemd web araması yapar (Tavily veya DuckDuckGo) +4. Özet, kaynaklarla birlikte notunuza eklenir + +### Tek Tıklamalı İş Akışları + +1. İş akışı düğmeleri için **sol kenar çubuğuna** bakın +2. Herhangi bir not üzerinde **"Tek Tıklamalı Çıkarma"** ya tıklayın +3. İşlem şu şekilde gerçekleşir: bağlantılar ekle → kavramları çıkar → araştırma yap → diyagram oluştur +4. Hepsi tek tıklamada! + +## Yaygın İlk Görevler + +### Görev 1: Bir makaleyi işleyin + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### Görev 2: Notları çevirin + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### Görev 3: Bir bilgi haritası oluşturun + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## Özelleştirme İpuçları + +### Görev Bazlı Model Seçimi + +Farklı görevler için farklı modeller kullanabilirsiniz: + +| Görev | Önerilen Model | Neden | +|------|------------------|-----| +| Bağlantı Ekle | `gpt-4o-mini`, `deepseek-chat` | Hızlı, çok sayıda çağrı | +| Kavram Çıkarma | `claude-sonnet-4-6`, `gpt-4o` | Kaliteli çıkarma | +| Araştırma | `perplexity`, `gpt-4o` | Web tabanlı | +| Çeviri | `gemini-flash`, `gpt-4o` | Çok dillilik | +| Şemalar | `claude-opus`, yerel model | Karmaşık akıl yürütme | + +Yapılandırma yeri: **Ayarlar → Notemd → Görev Özelinde Modeller** + +### Özel İş Akışları + +Kendi düğmenizi oluşturun: + +1. Ayarlar → Notemd → İş Akışları +2. "İş Akışı Ekle"ye tıklayın +3. DSL girin: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. Adını "My Research Flow" olarak belirleyin +5. Kenar çubuğunda yeni bir düğme görünür + +## Sorun Giderme + +### "API Anahtarı Geçersiz" +- Anahtarın doğru olup olmadığını kontrol edin (ekstra boşluk yok) +- Hesabın krediye sahip olduğundan emin olun +- Ayarlar içindeki "Connection Test" düğmesiyle test edin + +### "Model Bulunamadı" +- Mevcut modelleri görmek için "Get Model List"e tıklayın +- Bazı sağlayıcılar belirli model adları gerektirir (örneğin, `gpt-4o` yerine `gpt-4` değil) + +### Bağlantılar Görünmüyor +- Notun yeterli içeriğe sahip olduğundan emin olun (>50 kelime) +- Daha güçlü bir model deneyin +- LLM çağrısının başarılı olup olmadığını kontrol edin (teşhis paneline bakın) + +### Yavaş Performans +- Daha hızlı modeller kullanın (`gpt-4o-mini` yerine `gpt-4o`) +- Ayarlar içinde parça boyutunu azaltın +- Toplu görevler için paralel işleme etkinleştirin + +## Sonraki Adımlar + +- 📖 [Tüm Özellikleri Keşfedin](../features/wiki-links) +- ⚙️ [Gelişmiş Yapılandırma](./configuration) +- 🔧 [LLM Sağlayıcı Ayarları](../providers/overview) +- ❓ [Sık Sorulan Sorular](../faq) + +## Video Eğitimi + +3 dakikalık hızlı başlangıç videosunu izleyin (Çince): +[【Tamamen Açık Kaynaklı ve Ücretsiz! NotEMD 3 Dakikalık Hızlı Başlangıç】](https://b23.tv/lqR0RlA) + +## Yardım Almak + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **Sorunlar**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **Belgeler**: [Tam Dokümantasyon](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/tr/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/tr/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..882e9e04 --- /dev/null +++ b/website/i18n/tr/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "Notemd'a Giriş" +description: "Obsidian için kalıcı not dönüşümleri, iş akışları ve spesifikasyon tabanlı diyagramlar içeren yapay zeka destekli bilgi tabanı oluşturucu" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Notemd'a Giriş + +<TLDR> +**Notemd** (Not + EMD — Geliştirilmiş Markdown Belgeleri), LLM destekli okumaları kalıcı bilgiye dönüştüren açık kaynaklı bir Obsidian eklentisidir. Oturum bittikten sonra içgörülerin silindiği sohbet tabanlı yapay zekanın aksine, Notemd sonuçları wiki bağlantıları, kavram notları, araştırma özetleri, çeviriler, iş akışları ve diyagramlar şeklinde **doğrudan sizin vault'unuza** yazar. Bu araç, okuma, araştırma ve görsel açıklamaların yapılandırılmış, gelişen bir bilgi grafiği halinde birikmesini isteyen araştırmacılar, öğrenciler ve bilgi çalışanları için tasarlanmıştır. +</TLDR> + +## Notemd nedir? + +Notemd, bilgi çıkarma, düzenleme, çeviri, araştırma ve diyagram oluşturma işlemlerini otomatikleştirmek amacıyla **30'dan fazla Büyük Dil Modeli**ni (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama ve daha fazlası) Obsidian iş akışınıza entegre eder. + +### Temel Fark: Geçici Bilgi ile Kalıcı Bilgi + +| Özellik | Sohbet tabanlı yapay zeka (ChatGPT vb.) | Notemd | +|--------|-------------------------------|--------| +| **Sonuçların nereye gittiği** | Sohbet geçmişi (silinir) | Sizin Obsidian vault'unuz (kalır) | +| **Format** | Düz metin cevaplar | Yapılandırılmış dosyalar: `[[wiki-links]]`, kavram notları, diyagramlar | +| **Uzun vadeli değer** | Her seferinde yeniden sormak gerekir | Bir bilgi grafiği halinde birikir | +| **Çevrimdışı erişim** | İnternet gerektirir | Ollama ile tamamen çevrimdışı çalışır | + +## Temel Özellikler + +### 1. **Otomatik Wiki Bağlantıları** +- LLM, notlarınızdaki temel kavramları tespit eder +- Her ortaya çıkışta `[[wiki-links]]` ekler +- İsteğe bağlı olarak bağlantılı kavram notları oluşturur +- Tekrarları önlemek için eşanlamlı kelime engelleme + +### 2. **Kavram Notu Oluşturma** +- Makalelerden, yazılardan ve notlardan temel kavramları çıkarır +- Geri bağlantılar içeren özel kavram dosyaları oluşturur +- Özelleştirilebilir çıktı yolları ve şablonlar + +### 3. **Web Araştırma Entegrasyonu** +- Obsidian içinden Tavily veya DuckDuckGo sorgulanabilir +- LLM, sonuçları kaynak atıflarıyla özetler +- Mevcut notlara araştırma bulgularını ekler + +### 4. **Çok Dilli Çeviri** +- Seçilen kısımları veya tüm notları çevirir +- 21'den fazla UI dilini destekler +- Bağımsız çıktı dili yapılandırması +- Toplu çeviri desteği + +### 5. **Şema Oluşturma** +- **Mermaid**: Akış şemaları, sıralama, sınıf, durum, ER, Gantt +- **JSON Canvas**: Obsidian yerel düzenleri +- **Vega-Lite**: Veri grafikleri, zaman serileri, dağılım grafikleri +- **HTML / Düzenlenebilir HTML/SVG**: Anlamsal açıklamalar içeren kendi başına geçerli şekil nesneleri +- **Draw.io / Drawnix nesne sınırları**: Aynı anlamsal şekil modelinden bakım ekibine yönelik dışa aktarım yolları +- **Devre şemaları yol haritası**: circuitikz/TikZJax desteği, ham ve kısıtlamasız LLM TikZ yerine altın referanslar, kısıtlanmış istemler, işleme geri bildirimleri ve topoloji/düzen doğrulamaları etrafında tasarlanmaktadır +- **Önizleme teşhisleri**: İşlenen nesneler derleme/işleme ile ilgili hata teşhislerini gösterebilir ve eklenti tabanlı LaTeX çalışma zamanı gerektirmeden doğrudan olmayan kaynaklar incelenebilir +- Mermaid hataları için otomatik sözdizimi düzeltmesi + +### 6. **Tek Tıkla İş Akışları** +- Sütun çubuğu düğmelerine birden fazla eylemi zincirleme +- DSL tabanlı iş akışı tanımı +- Örnek: `add-links > extract-concepts > research > diagram` + +## Kimler Notemd kullanmalı? + +✅ Makaleleri okuyup literatür incelemeleri oluşturan **Araştırmacılar** +✅ Çalışma notlarını düzenleyen ve kavram haritaları oluşturan **Öğrenciler** +✅ Okuma içgörülerinin kalıcı olmasını isteyen **Bilgi işçileri** +✅ Çeviri ve wiki bağlantılarına ihtiyaç duyan **Çift dilli profesyoneller** +✅ Yerel LLM desteği (Ollama) isteyen **Gizliliğe önem veren kullanıcılar** +✅ İpuçlarını ve iş akışlarını özelleştiren **Güçlü kullanıcılar** + +## Neden Notemd + Obsidian? + +**Obsidian**, yerel odaklı, markdown tabanlı bir bilgi tabanıdır. **Notemd** ise yapay zeka gücü ekler: +- Verileriniz kendi kasanızda kalır (bulut hizmetinde değil) +- Yerel modellerle çevrimdışı çalışır +- Ücretsiz ve açık kaynaklıdır (MIT lisansı) +- Mevcut Obsidian eklentileriyle entegre olur +- On binlerce nota seviyesine kadar ölçeklenebilir + +## Başlangıç + +1. **Yükleme**: Ayarlar → Topluluk Eklentileri → Gözat → "Notemd" +2. **Yapılandırma**: Kendi LLM sağlayıcınızın API anahtarını ekleyin (veya yerel Ollama kullanın) +3. **Deneyin**: Bir nota açın → Sağ tıklayın → "Dosyayı işle (bağlantılar ekle)" +4. **Keşfedin**: Tek tıklamalı iş akışları için kenar çubuğuna bakın + +👉 [Yükleme Kılavuzu](./getting-started/installation) | [Hızlı Başlangıç Eğitimi](./getting-started/quick-start) + +## Diyagram Yetenek Yönü + +Notemd'nun diyagram işlemleri artık "modelden tek bir sözdizimi dizesi yazmasını isteme" yaklaşımından uzaklaşarak katmanlı bir iş akışına doğru ilerliyor: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +Mevcut uygulama zaten Mermaid, JSON Canvas, Vega-Lite, HTML yedekleme, düzenlenebilir HTML/SVG, Draw.io XML nesneleri, minimal Drawnix JSON alt kümesini, önizleme teşhisleri/kaynak‑sadece yedeklemeyi ve yaygın kaynaklar ile CMOS invertör altın şablonları için çevrimdışı `CircuitSpec -> circuitikz` prototiplerini destekliyor. Devre diyagramları daha zor bir kategori: circuitikz doğru elektriksel topolojiyi ifade edebilir, ancak sınırsız LLM çıktı genellikle okunaksız yönlendirmeler veya render edilemeyen LaTeX üretir. Bir sonraki yön, altın‑referans şablonlar, düğüm‑grid yerleşim kuralları, render teşhisleri ve ekran görüntüsü geri bildirim döngüleri ile circuitikz'u sınırlı tutmaktır. + +Ayrıntıları [Diyagramlar](./features/diagrams) bölümünde okuyun. + +## Mimari + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd vs Diğer Obsidian AI Eklentileri + +Çoğu Obsidian AI eklentisi sohbet‑önceliklidir (siz sorarsınız, AI cevap verir, içgörüler sohbette kalır). Notemd ise **yazma‑önceliklidir**: AI notalarınızı işler ve sonuçları doğrudan kasanıza yapılandırılmış şekilde yazar. + +| Yetenekler | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| Otomatik wiki bağlantısı ekleme | Evet | Hayır | Hayır | Hayır | +| Kavram notu oluşturma | Evet (geri bağlantılar ve tekrarları kaldırma ile) | Hayır | Hayır | Hayır | +| Diyagram oluşturma | Evet (Mermaid, Canvas, Vega-Lite, HTML, düzenlenebilir nesneler) | Hayır | Hayır | Hayır | +| Web araştırması entegrasyonu | Evet (Tavily + DuckDuckGo) | Hayır | Hayır | Hayır | +| Toplu klasör işleme | Evet | Sınırlı | Hayır | Sınırlı | +| Görev bazlı model yönlendirme | Evet (7 görev, bağımsız modeller) | Hayır | Hayır | Hayır | +| Tek tıklamalı iş akışı zincirleri | Evet (DSL) | Hayır | Hayır | Hayır | +| Çeviri (toplu) | Evet | Hayır | Hayır | Hayır | +| Vault ile sohbet | Hayır | Evet | Hayır | Hayır | +| Anlamsal benzerlik araması | Hayır | Hayır | Evet | Hayır | +| Şablon tabanlı oluşturma | Hayır | Hayır | Hayır | Evet | +| LLM sağlayıcılar | 36 (bulut + ağ geçidi + yerel) | 3-5 | 2-3 | 3-5 | +| Tamamen çevrimdışı | Evet (Ollama) | Kısmi | Kısmi | Kısmi | + +**Notemd'yı ne zaman seçmelisiniz**: Yalnızca notlarınız hakkında sohbet etmesini değil, kalıcı bir bilgi grafiği oluşturmasını istiyorsanız AI'yi kullanın. + +**Copilot'yi ne zaman seçmelisiniz**: Obsidian içinde konuşma tabanlı bir yapay zeka asistanı istiyorsunuz. + +**Smart Connections'yı ne zaman seçmelisiniz**: Notlar arasındaki mevcut ilişkileri semantik arama yoluyla keşfetmek istiyorsanız. + +## Felsefe + +**Notemd**, yapay zekânın insanların bilgi işlerini yerine getirmesi yerine onları güçlendirmesi gerektiğine inanıyor. Eklenti: +- Değişiklikleri uygulamadan önce gözden geçirerek kontrolü sizde tutar. +- Bağlamı korur (tüm sonuçlar kaynağa geri bağlanır) +- Gizliliğe saygı gösterir (yerel LLM desteği, telemetri yok). +- Genişletilebilir kalır (açık APIlar, özel iş akışları) + +## Açık Kaynak + +- **Lisans**: MIT +- **Kaynak**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **Topluluk**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **Katkıda Bulunun**: PR'ler kabul edilir, [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) bakınız + +--- + +**Bir Sonraki Adım**: [Installation →](./getting-started/installation) diff --git a/website/i18n/tr/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/tr/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..9e9bac9f --- /dev/null +++ b/website/i18n/tr/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Obsidian AI Bilgi Yönetimi Kılavuzu" +description: "AI ile bağlantılı bir bilgi tabanı oluşturmak için kapsamlı rehber — wiki bağlantılarından ve kavram çıkarma işlemlerinden araştırma, çeviri ve diyagram oluşturmaya kadar" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Obsidian AI Bilgi Yönetimi Kılavuzu + +<TLDR> +**Notemd, LLM destekli okumayı kalıcı bilgiye dönüştürür: wiki bağlantıları kavramları birbirine bağlar, kavram notları erişilebilir bir grafik oluşturur, araştırma web içeriğini sizin deposunuza getirir, çeviri dil engellerini ortadan kaldırır, diyagramlar yapıyı görünür kılar ve iş akışları her şeyi tek tıkla birleştirir.** Bu kılavuz ham notlardan bağlantılı, görsel ve çok dilli bir bilgi tabanına kadar olan tüm süreci kapsar. +</TLDR> + +## Neden AI Bilgi Yönetimi? + +Geleneksel not alma yöntemleri düz dosyalar üretir. El ile yapılan wiki bağlantıları olsa bile çoğu not birbirinden ayrı kalır. Notemd, bağlantı katmanını otomatikleştirmek için LLM'ları kullanır: + +- **LLM'lar içeriğinizi okur** ve önemli olanları — terimleri, yöntemleri, kişileri, teorileri — tespit eder +- **Bağlantılar her kavramın geçtiği yerde otomatik olarak eklenir**, "ayrıca bakınız" bölümlerinde gizlenmez +- **Kavram notları** bağımsız ve erişilebilir dosyalar olarak oluşturulur +- **Araştırma**, web kaynaklı bağlamla notları zenginleştirir +- **Diyagramlar yapıyı görünür kılar** — aynı içerikten zihin haritaları, akış şemaları, veri grafikleri oluşturulur + +Sonuç: Sadece bağlantı eklemeyi hatırladığınızda değil, işlediğiniz her notla birlikte büyüyen bir bilgi grafiği. + +## Tam Süreç Akışı + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +Her adım bağımsızdır. Birini veya hepsini kullanabilirsiniz. En etkili sıralama: **Bağlantı Ekle → Kavram Notları → Diyagramlar**. + +--- + +## 1. Wiki Bağlantıları: Bağlantıları Açıkça Gösterme + +Wiki bağlantıları bir bilgi grafiğinin temelini oluşturur. Notemd, bir LLM kullanarak şunları yapar: + +1. Notunuzun içeriğini okuyun (uzun belgeler için parçalara ayırın) +2. Temel kavramları belirleyin — genel isimler yerine özel, teknik terimlere öncelik verin +3. Her ortaya çıkışta `[[wiki-links]]` ekleyin +4. Eşanlamlıları engelleyin ki "ML" ve "Machine Learning" ayrı düğümler oluşturmasın + +### Ne zaman kullanılmalı + +- **100 kelimeyi aşan her not** — daha kısa notlarda az sayıda kavram bulunur +- **Araştırma makaleleri, teknik dokümanlar, toplantı notları** — alan özelinde zengin terimler içerir +- **İçerik sabitlendikten sonra** — taslakları tekrar tekrar işlemeyin + +### Ana Ayarlar + +| Ayar | Önerilen | Neden | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek veya GPT-4o-mini | Düşük maliyetle iyi doğruluk | +| Eşanlamlı engelleme | Açık | Tekrarlanan düğümleri önler | +| Bağlam penceresi | Paragraf | Doğruluk ve maliyet dengesi | + +→ [Wiki-Links derinlemesine inceleme](/docs/features/wiki-links) + +--- + +## 2. Kavram Notları: Eriştirilebilir Bilgi Düğümleri + +Wiki bağlantıları fikirleri satır içinde birbirine bağlar, ancak kavram notları her bir fikrin ayrı ayrı erişilebilir olmasını sağlar. Her kavram kendi `.md` dosyasına sahiptir: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### Çıkarma Süreci + +LLM isteği oldukça yapılandırılmıştır: +- Tekil biçime dönüştürme +- Tek kelimelere kıyasla çok kelimelik kavramları tercih edin ("Dielectric Relaxation", "Relaxation" yerine) +- Kaynaklar/bibliyografi bölümlerini atlayın +- Belirli bir yapıda ayrıştırma için `CONCEPT:` satırları olarak çıktı verin + +Kavramlar, `Set<string>` aracılığıyla parçalar arasında tekrarlarından arındırılır. Tekil parçalardaki LLM hataları işlemi durdurmaz. + +### Geri Bağlantılar + +Etkinleştirildiğinde, her kavram notu kendisinden bahseden kaynak notlarını takip eder. Obsidian'nin yerleşik geri bağlantı paneli aynı zamanda ters bağlantıları da gösterir. + +### Tekillik giderme + +Notemd'nin 4 adımlı tekrar önleme motoru şunları tespit eder: +1. **Tam eşleşmeler** — büyük/küçük harf duyarsız dosya adı karşılaştırması +2. **Çoğul formları** — "Models.md" ile "Model.md" +3. **Sembol normalizasyonu** — "A-B.md" ile "A B.md" +4. **Tek kelimelik içerik** — "Machine Learning.md" mevcutken "ML.md" işaretlenir + +### Anahtar Ayarları + +| Ayar | Önerilen | Neden | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` veya `🧠 concepts/` | Kasa düzenini korur | +| `extractConceptsAddBacklink` | Açık | Ters arama özelliğini etkinleştirir | +| `extractConceptsMinimalTemplate` | Kapalı | Bağlantılı Olanlar ile tam şablon | +| Görev bazlı model | DeepSeek | Kavram çıkarma için pahalı modellere gerek yok | +| Eşanlamlı kelime bastırma | Açık | Aynı ayar hem bağlantılamayı hem de çıkarmayı etkiler | + +→ [Kavram Notlarına Derinlemesine Bakış](/docs/features/concept-notes) + +--- + +## 3. Araştırma: Web’i İçe Katmak + +Notemd, not alma iş akışınıza web aramasını entegre eder: + +1. **Sorgu oluşturma** — notunuzun başlığı veya seçimi bir arama sorgusuna dönüşür +2. **Web araması** — Tavily (tavsiye edilir, API anahtarı gereklidir) veya DuckDuckGo (ücretsiz, anahtar gerekmez) +3. **LLM özetleme** — arama sonuçları alakalı bir özete dönüştürülür +4. **Notunza ekleme** — özet imleç konumuna veya yeni bir bölüm olarak eklenir + +### Ne Zaman Kullanılmalı + +- Yeni bir konuyu işlemeden önce — önce web bağlamını edinin +- Bir kavram notunun zenginleştirilmesi gerektiğinde — araştırma yapın ardından bağlantılar ekleyin +- Literatür incelemeleri için — notların bulunduğu bir klasörü toplu olarak araştırın + +### Önemli Ayarlar + +| Ayar | Tavsiye Edilen | Neden | +|---------|-----------|-----| +| `researchProvider` | GPT-4o veya Claude | Araştırma daha yüksek kaliteli özetleme gerektirir | +| Arama hizmeti | Tavily | Daha iyi alaka düzeyi, ayarlanabilir derinlik | +| `maxResearchContentTokens` | 4000 | Derinlik ile maliyet arasındaki denge | + +→ [Araştırma derinlemesine inceleme](/docs/features/research) + +--- + +## 4. Çeviri: Dil engellerini aşmak + +Notemd, ayarladığınız LLM kullanarak notları çevirir — özel bir çeviri API değildir. Bu şu anlama gelir: + +- **Bağlam bilgisine dayalı çeviriler** — LLM, cümle cümle değil tüm belgeyi anlar +- **Teknik terimlerin işlenmesi** — "gradient descent" ifadesi "坡度向下" yerine "梯度下降" olarak kalır +- **Toplu çeviri desteği** — tüm notlar klasörü tek seferde çevrilebilir +- **Görev bazlı model** — çeviri için Gemini Flash kullanılır (hızlı, ucuz, çok dillidir) + +### Dil Desteği + +Notemd kendisi 21 UI dilini destekler. Çeviri hedef dili her görev için ayarlanabilir. Yaygın çiftler: EN↔ZH, EN↔JA, EN↔KO, EN↔DE, EN↔FR, EN↔ES. + +→ [Çeviri derinlemesine inceleme](/docs/features/translation) + +--- + +## 5. Diyagramlar: Yapıyı görünür kılmak + +Notemd'nin diyagram işleme akışı önce spesifikasyonlara dayanır: LLM, yapılandırılmış bir `DiagramSpec` JSON üretir, ardından adaptörler bunu hedef formata çevirir. Bu yöntem, LLM'den ham Mermaid sözdizimini istemekten daha güvenilir sonuçlar verir. + +### Niyet Tespiti + +Notemd, içerikten en uygun diyagram türünü tahmin eder: + +- **Sayılar içeren tablolar** → veri grafiği (Vega-Lite) +- **Müşteri/sunucu terimleri** → dizge diyagramı (Mermaid) +- **Varlık/ana anahtar** → ER diyagramı (Mermaid) +- **Adım/iş akışı** → akış şeması (Mermaid) +- **Kavram haritası anahtar kelimeleri** → JSON Canvas (Obsidian yerel) +- **Varsayılan** → zihin haritası (Mermaid) + +### İşleme Zinciri + +Ana hedef → yedek → yedek → HTML. Eğer Mermaid sözdizimi başarısız olursa, hata bağlamıyla bir kez daha LLM'ye deneme yapılır, ardından en basit diyagrama geçilir. + +### Ana Ayarlar + +| Ayar | Önerilen | Neden | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | Açık | Spesifikasyon öncelikli olarak daha iyi kalite | +| `experimentalDiagramCompatibilityMode` | `best-fit` | Niyete göre yerel hedef | +| `summarizeToMermaidProvider` | GPT-4o veya Claude | Diyagram spesifikasyonları için mekansal akıl yürütme gerekir | +| `autoMermaidFixAfterGenerate` | Açık | LLM sözdizimi hatalarını otomatik olarak tespit eder | +| Yerel bilgi zenginleştirme | Alan özelinde etkinleştirme | Vault bağlamıyla doğruluğu artırma | + +→ [Şemaların derinlemesine incelenmesi](/docs/features/diagrams) + +--- + +## 6. İş Akışları: Tek Tıklamalı Otomasyon + +İş akışları, birden fazla görevi tek bir kenar çubuğu düğmesinde birleştirir. DSL formatı şöyledir: + +``` +task1 | task2 | task3 +``` + +Örnek: `addLinks | extractConcepts | generateDiagram` — bir notu ham metinden tek tıklamayla tamamen bağlantılı, görsel bir bilgi düğümüne dönüştürme. + +### Önerilen İş Akışları + +| İş Akışı | Zincir | Kullanım Senaryosu | +|----------|-------|----------| +| Tam Süreç | `addLinks \| extractConcepts \| generateDiagram` | Yeni Notlar | +| Önce Araştırma | `research \| addLinks` | Yabancı Konular | +| Çok Dilli | `translate \| addLinks` | Çok Dilli Notlar | +| Sadece Diyagram | `generateDiagram` | Hızlı görselleştirme | + +→ [İş Akışlarına Derinlemesine Bakış](/docs/features/workflows) + +--- + +## 7. LLM Sağlayıcılar: Buluttan Yerel’e 36 Seçenek + +Notemd, 4 farklı taşıma türünde 36 sağlayıcıyı destekler. Ana gruplar: + +- **Uluslararası bulut**: OpenAI, Anthropic, Google, Mistral, xAI +- **Çin bulutu**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **Ağ Geçitleri**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **Yerel**: Ollama, LMStudio, OVMS — API anahtarı yoktur, veriler cihazınızdan çıkmaz + +### Görev Bazlı Model Stratejisi + +En uygun maliyetli yapılandırma, basit görevler için ucuz modelleri ve karmaşık görevler için güçlü modelleri kullanır: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [LLM Sağlayıcılar Genel Bakışı](/docs/providers/overview) + +--- + +## Başlangıç Kontrol Listesi + +1. **Notemd’yi Yükleyin** — [Topluluk Eklentileri](/docs/getting-started/installation) (tavsiye edilir) veya manuel olarak +2. **Bir sağlayıcıyı yapılandırın** — DeepSeek (en kolay), OpenAI veya Ollama (ücretsiz) +3. **İlk notunuzu işleyin** — sağ tıklayın → "Dosyayı İşle (bağlantı ekle)" +4. **Kavram klasörü ayarla** — Ayarlar → Notemd → Çıktı → Kavram Klasörü +5. **Kavramları çıkar** — aynı not üzerinde "Kavramları Çıkar" komutunu çalıştır +6. **Bir diyagram oluştur** — bağlantıları görselleştirmek için "Diyagram Oluştur" komutunu çalıştır +7. **Bir iş akışı oluştur** — yukarıdakileri tek tıklamalı bir düğme halinde birleştir + +## Önerilen Yapılandırmalar + +### Öğrenci (Bütçeli) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### Araştırmacı (Kaliteli) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### Gizlilik Öncelikli (Yalnızca Yerel) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### Çift Dilli (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## Yaygın Kalıplar + +### Kalıp: Bir Araştırma Makalesini İşleme + +1. PDF içeriğini içe aktar (veya yapıştır) +2. **Araştır** — konuyla ilgili web bağlamını elde et +3. **Bağlantılar ekle** — anahtar kavramları belirleyip bağla +4. **Kavramları çıkar** — bağımsız notlar oluştur +5. **Diyagram oluştur** — makalenin yapısını görselleştir + +### Kalıp: Günlük Not Zenginleştirme + +1. Günlük not yazın +2. **Bağlantı Ekle** — günün fikirlerini mevcut kavramlarla ilişkilendirir +3. Kavram notları geri bağlantılarla otomatik olarak güncellenir + +### Şablon: Literatür İncelemesi + +1. Makaleler/notlarla bir klasör oluşturun +2. **Toplu Bağlantı Ekle** — tüm klasörü işleyin +3. **Benzer Notları Ortadan Kaldır** — neredeyse benzer notları temizleyin +4. **Diyagram Oluştur** — tüm literatürün zihin haritasını oluşturun + +--- + +*Notemd açık kaynaklıdır (MIT) ve Obsidian 0.15.0+ sürümleriyle tüm platformlarda çalışır. [Şimdi yükleyin](/docs/getting-started/installation) veya [GitHub’da görüntüleyin](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/tr/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/tr/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..670b60b2 --- /dev/null +++ b/website/i18n/tr/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "Anthropic Claude'ı yapılandırın" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Anthropic Sağlayıcı + +<TLDR> +**Anthropic, OpenAI ile uyumlu taşıma yerine yerel Messages API taşımasını kullanır.** Mevcut ayarlar varsayılan olarak `claude-3-5-sonnet-20240620`, `https://api.anthropic.com` ve `temperature: 0.5` olarak belirlenmiştir. Hata ayıklama sırasında bunu ayrı bir protokol yüzeyi olarak değerlendirin. + +Bu içerik [Obsidian AI Bilgi Yönetimi Kılavuzu](/docs/pillar-ai-knowledge) serisinin bir parçasıdır. +</TLDR> + +## Kurulum + +Bir Anthropic API anahtarı oluşturun, bir `Anthropic` sağlayıcı profili ekleyin ve özel bir ağ geçidi profili üzerinden yönlendirme yapmıyorsanız Base URL'ü yerel uç noktada bırakın. Model alanında kullanmak istediğiniz Claude model ID'sini seçin; varsayılan değer mevcut ürün temelini stabil tutar. + +Anthropic, yüksek kaliteli özetleme, araştırma sentezi ve kavram çıkarma işlemleri için iyi bir seçenektir. Daha ucuz sağlayıcılarla birleştirirseniz, yalnızca çıktı kalitesinden fayda sağlayan görevlerde kullanın. + +## Uç Nokta ve Kimlik Doğrulama + +| Alan | Mevcut ayarlar | +|-------|----------------| +| Taşıma | `anthropic` | +| API anahtarı | Gerekli | +| Base URL | `https://api.anthropic.com` | +| Varsayılan model | `claude-3-5-sonnet-20240620` | +| Sıcaklık | `0.5` | +| Bağlantı testi | Yalnızca sohbet | + +Çalıştırma zamanı, `x-api-key` ve `anthropic-version: 2023-06-01` ile birlikte istekleri `/v1/messages`'a gönderir. Bu ayarlar altında OpenAI tarzı bir `/v1/chat/completions` uç noktası yapılandırmayın; bunun yerine OpenAI ile uyumlu bir ağ geçidi ayarını kullanın. + +## Model Keşfi + +Anthropic, sağlayıcı kayıt defterinde `anthropic-models` keşif modunu kullanır. Anahtarınız veya hesabınız modelleri listelleyemiyorsa, profilde bilinen bir model ID’si bulundurun ve bağlantı testi yoluyla doğrulama yapın. + +Bu taşıma yöntemi OpenAI ile uyumlu sağlayıcılarla değiştirilemez. OpenRouter, LiteLLM veya başka bir ağ geçidi aracılığıyla yönlendirilen bir Claude modeli, yerel Anthropic profiline değil, ilgili ağ geçidi profiline aittir. + +## Sorun Giderme + +- `401` veya `403`: anahtar kapsamını, çalışma alanı erişimini, faturalandırmayı ve anahtarın beklenen Anthropic çalışma alanına ait olup olmadığını kontrol edin. +- `404`: Temel URL yanlış veya seçilen model ID’si hesap tarafından kullanılamıyor. +- Ağ geçidi tarzı Claude model ID’leri başarısız olur: yerel Anthropic yerel model adlarını beklediğinden, profili uygun ağ geçidi sağlayıcısına taşıyın. +- Uzun istekler geç aşamada başarısız olur: görev başına model çıktı boyutunu azaltın veya daha yüksek bilinen çıktı-token sınırına sahip bir model kullanın. + +## Ne Zaman Kullanılmalı + +Sentez kalitesi, araştırma notları veya yapılandırılmış yazım konusunda ham maliyetten daha fazla önem veriliyorsa Anthropic kullanın. Genel bir OpenAI-uyumlu yedek olarak kullanmayın; ayrı taşıma yöntemi asıl amaçtır ve protokollerin karıştırılması teşhis işlemini zorlaştırır. + +--- + +## Sonraki Adımlar + +- [LLM Sağlayıcılar](/docs/providers/overview) -- Tam yapılandırma, görev başına modeller ve yeniden deneme mantığı +- [Sorun Giderme](/docs/advanced/troubleshooting) -- 401/403 ve bağlantı hatalarını düzeltme diff --git a/website/i18n/tr/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/tr/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..b0a4a416 --- /dev/null +++ b/website/i18n/tr/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "Çin Sağlayıcıları" +description: "Qwen, DeepSeek, GLM vb. ayarlarını yapılandırın." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Çin Sağlayıcıları + +<TLDR> +**Notemd, çoğunlukla OpenAI ile uyumlu uç noktalar aracılığıyla Çin bölgesine ve Çin menşeli sağlayıcılara destek sağlar.** Mevcut liste DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, MiniMax, Baidu Qianfan, SiliconFlow, Huawei Cloud MaaS ve Z AI içerir. Faydası bölgesel erişim ve maliyet kontrolüdür; risk ise sağlayıcıya özgü model adlandırması ve hesap kısıtlamalarıdır. + +Bu içerik [Obsidian AI Bilgi Yönetimi Kılavuzu](/docs/pillar-ai-knowledge) serisinin bir parçasıdır. +</TLDR> + +## Kurulum + +Sağlayıcı hesabını oluşturun, bir API anahtarı üretin ve genel OpenAI profili yerine uygun Notemd sağlayıcı ön ayarını seçin. Bu ön ayar varsayılan Base URL, model, API test modu, model keşif davranışı ve sağlayıcıya özgü herhangi bir UI alanını içerir. + +Burada görev bazlı model seçimini aktif bir şekilde kullanın. Örneğin, mantık gerektiren iş akışlarında DeepSeek veya GLM kullanın, geniş Çince içerikli işler için Qwen veya Moonshot kullanın ve kodlama görevleri için hesabın kodlayıcı modellerini sunduğunda Qwen Code kullanın. + +## Uç Nokta ve Kimlik Doğrulama + +| Sağlayıcı | Varsayılan Model | Base URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (Uç nokta kimliği gereklidir) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**Not:** Standart bir model adı yerine Doubao, `ep-xxxxxxxx-xxxx-xxxx` formatındaki bir Ark uç nokta kimliği gerektirir. + +Bu sağlayıcıların çoğu ortak OpenAI ile uyumlu çalışma zamanını kullanır, ancak hesap ve model semantiği farklıdır. Hesabın alternatif uç noktasını doğrulamadığınız sürece özel ön ayara ait Base URL kullanın. + +## Model Keşfi + +DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan ve SiliconFlow, sağlayıcı liste oluşturmayı desteklediğinde OpenAI ile uyumlu model keşfi kullanır. Huawei Cloud MaaS, ModelArts dağıtım meta verileri genel `/v1/models` listesiyle aynı olmadığı için `huaweicloud-modelarts-models` modunu kullanır. + +Keşif başarısızlığını sohbetin mümkün olmadığının kanıti olarak görmeyin. Bazı sağlayıcılar model liste izinlerini sınırlarken de sohbete izin verir. Bu durumda profilde açık bir model kimliği tutun ve bağlantı testiyle doğrulama yapın. + +## Sorun Giderme + +- Kimlik doğrulaması başarılı ancak sohbet başarısız: Model adı hesabın yetki kapsamı veya bölgesi dışında olabilir. +- Normal bir model adıyla Doubao başarısız olursa: Dağıtımınız bunu gerektiriyorsa model alanına Ark uç nokta kimliğini kullanın. +- Mantık tabanlı yanıtlar kısaltılıyor: Sağlayıcıya özgü maksimum çıktı token sayısını ve Notemd'nun model bilgisine dayalı maksimum token ayarlarını kontrol edin. +- Bölgesel ağ yapıları farklılık gösterir: Vault makinesi Çin içindeyse sağlayıcının Çin bölgesi uç noktasını kullanın; hem hesap hem de ağ yolu geçerli olduğunda yalnızca uluslararası uç noktayı kullanın. + +## Ne Zaman Kullanılmalı + +Bölgesel gecikme, ödeme/hesap erişimi, Çince kalitesi veya maliyet birincil kısıtlama olduğunda Çinli sağlayıcıları kullanın. Daha basit bir protokol sınırı veya sağlayıcılar arası daha güçlü hata ayıklama tutarlılığı istiyorsanız doğrudan OpenAI, Anthropic, Google veya yerel sağlayıcıları tercih edin. + +--- + +## Sonraki Adımlar + +- [LLM Sağlayıcılar](/docs/providers/overview) -- Tam yapılandırma, görev başına modeller ve yeniden deneme mantığı +- [Sorun Giderme](/docs/advanced/troubleshooting) -- Bölgesel bağlantı ve kimlik doğrulama hatalarını düzeltin diff --git a/website/i18n/tr/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/tr/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..3f622810 --- /dev/null +++ b/website/i18n/tr/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "Google Gemini'yi yapılandırın" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Google Sağlayıcı + +<TLDR> +**Google, yerel Gemini Üretken Dil API taşıma mekanizmasını kullanır.** Mevcut öncelikli ayarlar `gemini-2.0-flash-exp`, `https://generativelanguage.googleapis.com/v1` ve `temperature: 0.5` olarak belirlenmiştir. Bu, OpenAI ile uyumlu bir profilde değildir. + +Bu içerik [Obsidian AI Bilgi Yönetimi Kılavuzu](/docs/pillar-ai-knowledge) serisinin bir parçasıdır. +</TLDR> + +## Kurulum + +Gemini erişimine sahip bir Google AI Studio veya Google Cloud API anahtarı oluşturun, bir `Google` sağlayıcı profilini ekleyin ve yerel Üretken Dil Tabanı URL'yi koruyun. Hızlı çeviri ve geniş not iş akışları için varsayılan Gemini Flash profilini kullanın; daha büyük veya daha güçlü bir Gemini modeline ihtiyaç duyduğunuzda görev bazında modelleri değiştirin. + +Gemini model kimliklerini, OpenAI ile uyumlu API aracılığıyla Gemini'yi sunan bir ağ geçidi kullanmadığınız sürece OpenAI ile uyumlu bir profile yerleştirmekten kaçının. + +## Uç Nokta ve Kimlik Doğrulama + +| Alan | Mevcut ayarlar | +|-------|----------------| +| Taşıma | `google` | +| API anahtarı | Gerekli | +| Base URL | `https://generativelanguage.googleapis.com/v1` | +| Varsayılan model | `gemini-2.0-flash-exp` | +| Sıcaklık | `0.5` | +| Bağlantı testi | Yalnızca sohbet | + +Çalışma zamanı `/models/{model}:generateContent?key={apiKey}`'yi çağırır. Anahtar, eklentide yerel Gemini uç noktasının bağlandığı şekilde bir sorgu parametresi olarak iletilir. + +## Model Keşfi + +Google, `google-models` keşif modunu kullanır. Keşif, API anahtarı için kullanılabilir Gemini modellerini döndürmelidir; seçici boşsa, aynı Taban URL üzerinde anahtarı test edin ve hesap için model ailesinin etkinleştirildiğinden emin olun. + +Sağlayıcı kayıt defterinde bilinen çıktı token sınırları model bilgisine göre belirlenir. Uzun bir çeviri veya diyagram açıklaması kısaltılırsa, daha yüksek desteklenen çıktı kapasitesine sahip bir Gemini modeli seçin veya istenen çıktı boyutunu azaltın. + +## Sorun Giderme + +- `400`: Model kimliği genellikle yerel Gemini rotasıyla eşleşmez veya istek, modelin desteklediği yapıyı aşar. +- `401` veya `403`: Anahtar kısıtlamalarını, proje/API etkinleştirmesini ve anahtarın Gemini'ye erişip erişemeyeceğini doğrulayın. +- `404`: Model kimliği, yapılandırılan API sürümünde mevcut değildir. +- Bu profile göre ağ geçidi örnekleri başarısız olur: yerel Google sağlayıcısı yerine ağ geçidi öncelikli ayarını kullanın. + +## Ne Zaman Kullanılmalı + +Hızlı çeviri, büyük hacimli not temizleme ve Gemini'nin maliyet/performans dengesinin doğrudan OpenAI veya Anthropic'dan daha iyi olduğu iş akışları için Google kullanın. OpenAI ile uyumlu akıl yürütme modeli işlemleri gerektiren iş akışları için başka bir sağlayıcı tercih edin. + +--- + +## Sonraki Adımlar + +- [LLM Sağlayıcılar](/docs/providers/overview) -- Tam yapılandırma, görev başına modeller ve yeniden deneme mantığı +- [Çeviri](/docs/features/translation) -- Yüksek hacimli çeviri görevleri için Gemini Flash önerilir diff --git a/website/i18n/tr/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/tr/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..48e20d3a --- /dev/null +++ b/website/i18n/tr/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "Yerel Modeller" +description: "Ollama ve yerel LLM'ları yapılandırın" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# Yerel Modeller + +<TLDR> +**Yerel sağlayıcılar, içerikleri barındırılan API'lardan uzak tutar.** Mevcut yerel yol, yerel `ollama` iletimi kullanarak Ollama'yi ve OpenAI-uyumlu iletimi kullanarak LMStudio'yi kapsar. Her iki yol için de API anahtarı gerekmez, ancak yerel sunucu ve modelin zaten çalışıyor olması gerekir. + +Bu içerik [Obsidian AI Bilgi Yönetimi Kılavuzu](/docs/pillar-ai-knowledge) serisinin bir parçasıdır. +</TLDR> + +## Kurulum + +Ollama için Ollama'yı yükleyin, istediğiniz modeli indirin, sunucuyu başlatın ve Notemd içinde bir `Ollama` sağlayıcı profili ekleyin. LMStudio için ise bir modeli LM Studio'nun yerel sunucusuna yükleyin ve bir `LMStudio` sağlayıcı profili ekleyin. + +Yerel modeller sadece ayarlar değil, işlevsel bağımlılıklardır. Notemd yalnızca yerel sürecin sunduğu özellikleri çağırabilir; bu yüzden eklentiyi hata ayıklamadan önce Obsidian dışındaki yerel modeli kontrol edin. + +## Uç Nokta ve Kimlik Doğrulama + +| Sağlayıcı | Base URL | Varsayılan Model | API Anahtarı | Notlar | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | Gerekli değil | NDJSON akışı; `/api/tags` aracılığıyla model keşfi | +| LMStudio | `localhost:1234/v1` | `local-model` | Gerekli değil | `"EMPTY"`'yu taşıyıcı token olarak gönderir; OpenAI-uyumlu | + +Ollama, Base URL'ının altındaki yerel `/chat` yolunu kullanır. LMStudio ise OpenAI-uyumlu `chat/completions` rotasını takip eder ve yerel sunucuda yüklenmiş bir model bekler. + +## Model Keşfi + +Ollama, `ollama-tags` keşif modunu kullanır ve yerel olarak indirilen etiketleri listeler. LMStudio, sunucusu `/v1/models`'ı sunarken OpenAI-uyumlu model keşfi kullanır. + +Keşif hiçbir şey döndürmezse bu genellikle yerel sunucu durumuyla ilgilidir: model indirilmemiş, yüklenmemiş veya sunucu profille aynı ana makine/porta bağlanmamıştır. + +## Sorun Giderme + +- Bağlantı reddedildi: Ollama veya LM Studio'yu başlatın ve yapılandırılan portu doğrulayın. +- Model bulunamadı: Test etmeden önce Ollama etiketini indirin veya LM Studio modelini yükleyin. +- Yavaş çıktı: Bağlam boyutunu azaltın, daha küçük bir yerel model kullanın veya ağır görevleri barındırılan bir sağlayıcıya yönlendirin. +- Boş veya bozuk yanıtlar: Seçilen sağlayıcı profilinin yerel sunucu protokolüyle eşleştiğinden emin olun; Ollama ve LMStudio birbirinin yerine kullanılamaz. + +## Ne Zaman Kullanılmalı + +Özel kasalar, çevrimdışı çalışma veya ucuz ve tekrarlayan görevler için yerel sağlayıcılar kullanın. Araştırma sentezi veya uzun süreli mantık yürütme işlemleri için yerelin otomatik olarak daha iyi olduğunu varsaymayın; model kalitesi ile donanım sınırları arasında bir denge vardır. + +--- + +## Sonraki Adımlar + +- [LLM Sağlayıcılar](/docs/providers/overview) -- Tam yapılandırma ve görev bazlı model ayarları +- [Sorun Giderme](/docs/advanced/troubleshooting) -- Yerel sunucu çalışmıyorsa ortaya çıkan connection-refused hatalarını düzeltme diff --git a/website/i18n/tr/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/tr/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..c92eb32d --- /dev/null +++ b/website/i18n/tr/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "OpenAI'yi yapılandırın (GPT-4, GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# OpenAI Sağlayıcı + +<TLDR> +**OpenAI, ortak OpenAI-uyumlu taşıma mekanizmasını kullanır.** Mevcut öncelikli ayarlar `gpt-4o`, `https://api.openai.com/v1`, `temperature: 0.5` ve `models-then-chat` bağlantı testine ayarlanmıştır. Kesin alan semantiği gerektiğinde bu sayfayı kullanın; kategori düzeyinde seçim yapmak için [LLM Sağlayıcılar](/docs/providers/overview) genel bakışını kullanın. + +Bu içerik [Obsidian AI Bilgi Yönetimi Kılavuzu](/docs/pillar-ai-knowledge) serisinin bir parçasıdır. +</TLDR> + +## Kurulum + +Bir OpenAI API anahtarı oluşturun, Notemd ayarlarına bir `OpenAI` sağlayıcı profili ekleyin ve kasıtlı olarak OpenAI-uyumlu bir ağ geçidi işaretlemiyorsanız varsayılan Base URL'yi koruyun. Model alanı genel işler için `gpt-4o` üzerinde kalabilir veya hesabınızın çağırabileceği başka bir OpenAI model ID ile değiştirilebilir. + +Maliyet kontrolü için göreve özel modeller kullanın: araştırma, kavram çıkarma ve uzun formatlı yeniden yapılandırma için daha güçlü modelleri kullanın; çeviri, bağlantı önerileri ve kısa özetler için daha ucuz veya daha hızlı modelleri kullanın. + +## Uç Nokta ve Kimlik Doğrulama + +| Alan | Mevcut ayarlar | +|-------|----------------| +| Taşıma | `openai-compatible` | +| API anahtarı | Gerekli | +| Base URL | `https://api.openai.com/v1` | +| Varsayılan model | `gpt-4o` | +| Sıcaklık | `0.5` | +| Bağlantı testi | `/models`, ardından `/chat/completions` | + +Notemd, `chat/completions` veya `models` eklenmeden önce OpenAI-uyumlu temel URL'ları normalleştirir. Base URL içinde sonunda `/chat/completions` bulunmamalıdır; bu durum çiftlenmiş bir yol oluşturur. + +## Model Keşfi + +OpenAI, genel OpenAI-uyumlu model keşif yolunu kullanır. Ayarlar UI önce `/v1/models`'ya sorar, ardından hafif bir sohbet isteğiyle seçilen modeli doğrular. Keşif başarısız olsa da sohbet hâlâ çalışıyorsa, anahtarınızın model-list izni olup olmadığını veya bir ağ geçidinin model listesini engelleyip engellemediğini kontrol edin. + +Mantık modelleri bir protokol istisnası olarak ele alınır: Notemd, sistem ve kullanıcı istek içeriklerini birleştirerek OpenAI mantık ID'leri oluşturur ve ayrı bir `system` rolünü reddeder; ayrıca sağlayıcı tanımı bunu desteklediğinde yalnızca `reasoningEffort`'yi açığa çıkarır. + +## Sorun Giderme + +- `401` veya `403`: anahtarı, proje erişimini, faturalandırma durumunu ve seçilen modelin anahtar için etkin olup olmadığını doğrulayın. +- Sohbet üzerinde `404`: Base URL genellikle yanlıştır veya zaten `/chat/completions` içerir. +- Model belgelerde görünüyor ancak seçicide yok: model-list erişimi ve sohbet erişimi ayrı hata noktalarıdır; sağlayıcı profilinde doğru model ID'sini manuel olarak test edin. +- Mantık modeli mesajları reddediyor: OpenAI mantık işleme yolunu kapsayan bir model ID kullanın veya mantık özelliği olmayan bir sohbet modeline geçin. + +## Ne Zaman Kullanılmalı + +En öngörülebilir varsayılan barındırma yolunu istediğinizde, `/v1/models` keşfinin önemli olduğu durumlarda veya bir iş akışının OpenAI mantık modeli semantiğine bağlı olduğunda OpenAI kullanın. Yönlendirme, gizlilik veya maliyet kontrolü doğrudan OpenAI API davranışından daha önemliyse bir ağ geçidi veya yerel sağlayıcı tercih edin. + +--- + +## Sonraki Adımlar + +- [LLM Sağlayıcılar](/docs/providers/overview) -- Tam yapılandırma, görev başına modeller ve yeniden deneme mantığı +- [Sorun Giderme](/docs/advanced/troubleshooting) -- 401/403 ve sınırlama hatalarını düzeltin diff --git a/website/i18n/tr/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/tr/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..fa64bee7 --- /dev/null +++ b/website/i18n/tr/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "LLM Sağlayıcılar" +description: "Görev başına model seçimi özelliğiyle bulut, ağ geçidi ve yerel olmak üzere 36 LLM sağlayıcıyı yapılandırın" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# LLM Sağlayıcılar + +<TLDR> +**Notemd, 4 farklı taşıma türünde 36 LLM sağlayıcıyı destekler.** Tüm API çağrıları otomatik yeniden deneme, taşıma geri dönüşü ve 5 dakikalık yanıt önbellekleme özellikleriyle ham HTTP kullanır (SDK yoktur). Görev başına model seçimi sayesinde kavram çıkarma için ucuz modelleri ve araştırma için güçlü modelleri kullanabilirsiniz. Yerel sağlayıcılar (Ollama, LMStudio) için herhangi bir API anahtarı gerekmez. +</TLDR> + +Bu içerik [Obsidian AI Bilgi Yönetimi Kılavuzu](/docs/pillar-ai-knowledge) serisinin bir parçasıdır. + +## Sağlayıcı Kategorileri + +### Bulut Sağlayıcıları + +| Sağlayıcı | Varsayılan Temel URL | Varsayılan Model | Sıcaklık | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### Ağ Geçidi / Proxy Sağlayıcıları + +| Sağlayıcı | Varsayılan Temel URL | Varsayılan Model | Notlar | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | `HTTP-Referer` + `X-Title` başlıkları ekler | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | `X-GitHub-Api-Version` başlığı ekler | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | `APP-Code` başlığı ekler | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | İsteğe bağlı API anahtarı | +| **Yeni API** | `localhost:3000/v1` | `gpt-4.1` | İsteğe bağlı API anahtarı | +| **OpenAI Compatible** | (kullanıcı tarafından yapılandırıldı) | `your-model-id` | Özel uç nokta | + +### Çin Sağlayıcıları + +| Sağlayıcı | Varsayılan Temel URL | Varsayılan Model | Notlar | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | Kodlamaya odaklı | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (Uç nokta kimliği gereklidir) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | Çin uç noktası Zhipu | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | Uluslararası uç noktası Zhipu | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | Model barındırma platformu | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao, bir Ark uç nokta ID'si gerektirir** (format: `ep-xxxxxxxx-xxxx-xxxx`). Varsayılan yer tutucu değiştirilmelidir. + +### Yerel Sağlayıcılar + +| Sağlayıcı | Varsayılan Temel URL | Varsayılan Model | Notlar | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | API anahtarı yok. NDJSON akışı. `/api/tags` aracılığıyla model keşfi | +| **LMStudio** | `localhost:1234/v1` | `local-model` | `"EMPTY"`'yı taşıyıcı token olarak gönderir. OpenAI-uyumlu keşif | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (kullanıcı tarafından yapılandırıldı) | `gpt-4o` | URL içindeki dağıtım adı. `api-key` başlığı | + +## Görev Bazlı Model Seçimi + +Notemd, her görev için ayrı sağlayıcı ve model destekler. `useMultiModelSettings: true` ile etkinleştirin. + +### Mevcut Görevler + +| Görev | Ayarlar Anahtarı | Varsayılan Sağlayıcı | +|------|-------------|-----------------| +| Bağlantı Ekleme (wiki bağlantısı ekleme) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| Araştırma (web araması + özetleme) | `researchProvider` / `researchModel` | DeepSeek | +| Başlıktan Oluşturma | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| Çeviri | `translateProvider` / `translateModel` | DeepSeek | +| Diyagram Oluşturma | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| Kavram Çıkarma | `extractConceptsProvider` / `Model` | DeepSeek | +| Orijinal Metin Çıkarma | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### Çözüm Sırası + +1. Eğer `useMultiModelSettings` etkinse → göreve özel sağlayıcı + model kullanılır +2. Görev modeli özel ayarı boşsa → sağlayıcının varsayılan modeline dönülür +3. Görev sağlayıcısı geçersizse → küresel `activeProvider` kullanılır +4. Eğer `useMultiModelSettings` kapalıysa → tüm görevler küresel `activeProvider` kullanır + +### Önerilen Yapılandırmalar + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## API Çağrı Mimarisi + +### Taşıma Katmanları + +1. **Obsidian `requestUrl`** — birincil (yerleşik, tüm platformlarda çalışır) +2. **Masaüstü HTTP** — Node.js `http`/`https` modülleri (akışlı + uzun istekler) +3. **Web `fetch`** — Node.js modülleri kullanılamadığında yedek çözüm + +Eklenti, geçici ağ hatalarında otomatik olarak taşıma yöntemleri arasında geçiş yapar. + +### Yeniden Deneme Mantığı + +- **Normal mod** (`enableStableApiCall: false`): Tek deneme. Geçici bir hata durumunda otomatik olarak daha istikrarlı bir yeniden denemeye geçilir. +- **İstikrarlı yeniden deneme modu** (`enableStableApiCall: true`): 5 saniyelik aralıklarla toplam 4 deneme (1 + 3 yeniden deneme) +- **Yeniden denemeyi tetikleyen geçici hatalar**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **Yeniden deneme yapılamayanlar**: HTTP 400, 401, 403, 404 + +### Yanıt Önbellekleme + +Sağlayıcı + model + sıcaklık + istek + içerik anahtarlarıyla 5 dakikalık bellek içi LRU önbellek. 5 dakika içinde gelen benzer istekler anında önbellekten yanıt alır. + +### Mantık Modeli İşleme + +`system` rolünü desteklemeyen modeller (DeepSeek R1, OpenAI o1/o3/o4/gpt-5) otomatik olarak sistem + kullanıcı isteklerini tek bir kullanıcı mesajı halinde birleştirir. + +DeepSeek-özel: `thinkingEnabled` isteğe `{ thinking: { type: 'enabled' } }` ekler. `reasoningEffort` (düşük/orta/yüksek) değeri `reasoning_effort` olarak iletilir. Düşünme modu açıkken maksimum çıktı token sayısının ≥ 8000 olup olmadığı doğrulanır. + +### Token Tahmini + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — her token için 4 karakterlik bir yaklaşım. LLM'a göndermeden önce `maxResearchContentTokens` koşulunu sağlamak için kullanılır. + +Maliyet takibi uygulanmamıştır. + +## Model Keşfi + +| Mod | Sağlayıcılar | Uç Nokta | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | Modeller listesi API | +| `anthropic-models` | Anthropic | Modeller listesi API | +| `openai-compatible-models` | DeepSeek, Qwen, Mistral vb. | `/v1/models` | +| `openrouter-models` | OpenRouter | Model listesi API | +| `github-models` | GitHub Models | Çıkarım API | +| `none` | Azure OpenAI | Devre dışı (dağıtım adı gereklidir) | + +## Hızlı Başlangıç + +1. **Bir sağlayıcı seçin** — DeepSeek (Çin), OpenAI (Uluslararası) veya Ollama (Yerel/Ücretsiz) +2. **API anahtarını girin** — Ayarlar → Notemd → Sağlayıcı → API Anahtarı +3. **Bağlantıyı test edin** — Test butonuna tıklayın +4. **İsteğe bağlı: Görev bazlı modeller** — `useMultiModelSettings`'yı etkinleştirin ve ayrı ayrı yapılandırın + +Ollama için: API anahtarı gerekmez. Sadece `ollama serve`'ın çalıştığından emin olun. + +--- + +## Sonraki Adımlar + +- 📝 [Kavram Notları](/docs/features/concept-notes) — Görev bazlı çıkarma modelini kullanır +- 🎨 [Şemalar](/docs/features/diagrams) — Görev bazlı şema modelini kullanır +- 🔍 [Araştırma](/docs/features/research) — Araştırma özelindeki modeli kullanır +- ⚙️ [Yapılandırma](/docs/getting-started/configuration) — Tüm ayar referansları diff --git a/website/i18n/tr/docusaurus-theme-classic/footer.json b/website/i18n/tr/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/tr/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/tr/docusaurus-theme-classic/navbar.json b/website/i18n/tr/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/tr/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/uk/code.json b/website/i18n/uk/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/uk/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/uk/docusaurus-plugin-content-docs/current.json b/website/i18n/uk/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/uk/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/uk/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/uk/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..3fa7c294 --- /dev/null +++ b/website/i18n/uk/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "Пакетна обробка" +description: "Обробляти кілька файлів ефективно" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# Пакетна обробка + +<TLDR> +**Notemd обробляє цілі папки за одну операцію з можливістю налаштування паралельності та контролю над перезаписом.** Клацніть правою кнопкою миші на папці, щоб пакетно додати посилання wiki, витягнути концепції, провести дослідження чи перекласти всі нотатки всередині. Обмеження на паралельність запобігають помилкам обмеження швидкості API. Прогрес відображається для кожного файлу. Поведінка перезапису може бути налаштована: пропустити існуючі дані, додати їх або замінити. Неуспішні файли записуються у журнал, без припинення обробки пакету. + +Це частина [Obsidian Посібника з управління знаннями в ШІ](/docs/pillar-ai-knowledge). +</TLDR> + +## Огляд + +Пакетна обробка перетворює папку з нотатками на одну операцію. Замість того, щоб відкривати кожну нотатку та виконувати команди окремо, ви клацаєте правою кнопкою миші на папці та обираєте завдання. Notemd проходиться по кожному файлу `.md`, застосовує обрану дію та повідомляє про прогрес у реальному часі. + +Ця функція є необхідною для вилучення знань у всьому сховищі. Після імпорту десятків PDF, наприклад, за допомогою операцій batch-add-links та batch-extract-concepts, ваша граф знань формується протягом хвилин, а не годин. + +## Як це працює + +### Модель пакетної обробки + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **Збір файлів** -- Notemd рекурсивно сканує цільову папку (або лише верхній рівень, залежно від налаштувань) та збирає всі файли `.md`. +2. **Розділення на потоки** -- Файли діляться на частини відповідно до налаштування `batchConcurrency`. Кожна частина виконується паралельно; частини виконуються послідовно. +3. **Виконання** -- Кожен файл обробляється за тією ж логікою, що й команда для одного файлу. Дотримуються налаштування постачальника та моделі для кожного завдання. +4. **Звіт про прогрес** -- Повідомлення типу toast оновлюється після завершення кожного файлу, відображаючи прогрес `N / Total`. +5. **Обробка помилок** -- Якщо файл завершує роботу (помилка API, тайм-аут мережі тощо), помилка фіксується у журналі, а обробка пакету продовжується. У кінцевому підсумку вказуються всі файли, які були оброблені невдало. +6. **Завершення** -- У резюме повідомлення відображається загальна кількість оброблених елементів, кількість успішних та невдалих операцій. + +### Поведінка перезапису + +Під час обробки файлу, який вже містить wiki-посилання, концепт-нотатки або переклади, поведінка Notemd залежить від налаштування перезапису: + +| Режим | Поведінка | +|------|----------| +| **Пропустити** | Існуючий вміст залишається недоторканим. Обробляються лише незмінені файли. | +| **Додати** (за замовчуванням) | Новий вміст додається. Існуючі wiki-посилання, концепти або переклади зберігаються. | +| **Замінити** | Файл повністю переобробляється. Усі попередні зміни Notemd перезаписуються. | + +Щодо wiki-посилань конкретно: якщо нотатка вже містить `[[wiki-links]]`, режим **Пропустити** залишає її без змін, тоді як режим **Замінити** пересилає всю нотатку до LLM для вставки нових посилань. Використовуйте **Пропустити** для інкрементальної обробки та **Замінити** для повторної обробки після оновлення моделі. + +### Контроль конкурентності + +Налаштування `batchConcurrency` обмежує кількість паралельних викликів API. Це запобігає помилкам обмеження швидкості (HTTP 429) під час обробки великих папок у постачальників із суворими лімітами. + +| Конкурентність | Рекомендовано для | Типовий вплив на обмеження швидкості | +|-------------|----------------|---------------------------| +| `1` | Безкоштовні тарифи, суворі постачальники | Жоден (серійний) | +| `3` (за замовчуванням) | Більшість хмарних постачальників | Низький | +| `5` | Ollama (локальний), щедрі тарифи | Жоден / Низький | +| `10` | Локальні моделі з швидким інференсом | Жоден | + +Якщо під час пакетної обробки виникають помилки 429, зменшіть кількість одночасних запитів до 1 або 2. + +## Конфігурація + +| Налаштування | За замовчуванням | Ефект | +|---------|---------|--------| +| `batchConcurrency` | `3` | Максимальна кількість паралельних API викликів під час операцій з папками | +| `batchOverwriteExisting` | `false` | Перезаписати існуючий вміст Notemd. `false` – режим додавання. | +| `batchSkipProcessed` | `false` | Пропустити файли, які вже містять маркери Notemd (наприклад, посилання wiki) | +| `batchRecursive` | `true` | Включити підкаталоги під час сканування папки | +| `enableStableApiCall` | `false` | Увімкнути логіку повторних спроб (до 4 спроб) для кожного файлу під час обробки пакетом | + +### Моделі на рівні завдань у пакетній обробці + +Кожна операція пакета використовує відповідну модель на рівні завдання. batch-add-links використовує `addLinksProvider`, batch-research використовує `researchProvider` тощо. Це дозволяє використовувати дешеві моделі для операцій з великим обсягом та зберігати дорогі моделі для завдань, де важлива якість. + +## Приклад + +У вас є папка `papers/`, яка містить 40 імпортованих нотаток з дослідженнями. Ви хочете додати посилання wiki та витягнути концепції з усіх них: + +1. Клацніть правою кнопкою миші на папці `papers/` +2. Виберіть **"Notemd: Обробка папки (додати посилання)"** +3. Notemd сканує папку, знаходить 40 файлів `.md` та обробляє їх по 3 за раз (стандартна конкурентність) +4. У спливаючому повідомленні про прогрес відображається: `12/40 files processed...` +5. Через приблизно 3 хвилини у спливаючому повідомленні з підсумками йдеться: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. Повторіть дію за допомогою **"Notemd: Обробка папки (витягнути концепції)"** щоб створити концепт-нотатки для всіх 40 файлів + +Файл, який не пройшов обробку, записується. Пізніше можна перезапустити обробку лише цього файлу. + +## Поради + +- **Почніть з низької конкурентності** -- Якщо ви не впевнені щодо лімітів швидкості вашого постачальника, почніть з `1` та поступово збільшуйте це значення. +- **Використовуйте режим пропуску для інкрементних оновлень** -- Після першої повної партії перейдіть на `batchSkipProcessed: true` щоб на наступних запусках оброблялися лише нові нотатки. +- **Увімкніть стабільні виклики API** -- `enableStableApiCall: true` додає логіку повторних спроб, яка допомагає відновитися від тимчасових мережевих помилок під час довгих пакетів обробки. +- **Перезапустіть після оновлень моделі** -- Якщо ви перейдете на кращу модель, встановіть `batchOverwriteExisting: true` та перезапустіть процес щоб отримати покращені посилання та концепції. + +--- + +## Наступні кроки + +- [Робочі потоки](/docs/features/workflows) -- Об’єднайте завдання пакетної обробки у кнопки бічної панелі одним кліком +- [Персоналізовані запити](/docs/advanced/custom-prompts) -- Налаштуйте запити для пакетного витягування даних +- [Усунення проблем](/docs/advanced/troubleshooting) -- Виправте помилки лімітів швидкості та проблеми з підключенням під час пакетних запусків +- [LLM Постачальники](/docs/providers/overview) -- Посилання на конфігурацію моделі за завданням diff --git a/website/i18n/uk/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/uk/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..15c3238b --- /dev/null +++ b/website/i18n/uk/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "Кастомні запити" +description: "Налаштуйте кастомні LLM запити під ваші потреби" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# Кастомні запити + +<TLDR> +**Notemd дозволяє перевизначити стандартний LLM запит для кожного типу завдання.** Кастомні запити надають вам контроль над тим, що модель буде пріоритезувати: ви можете обмежити видобуток концепцій певною галуззю, змінити стиль посилань або скерувати тон перекладу. Змінні запитів, такі як `{{content}}` та `{{concept}}`, підставляються під час виконання. Функція спрямованої навчальної галузі додає до початку вашу сферу досліджень для автоматичного обмеження результатів видобутку. + +Це частина [Obsidian Посібника з управління знаннями в ШІ](/docs/pillar-ai-knowledge). +</TLDR> + +## Огляд + +Вбудовані запити Notemd написані для роботи з загальними знаннями. Вони добре працюють у різних галузях, але водночас залишають простір для покращень, специфічних для конкретної галузі. Кастомні запити дозволяють вам чітко сказати LLM, як саме поводитися у вашому випадку — чи то видобувати лише медичну термінологію, посилатися лише на іменовані елементи або перекладати у формальному стилі. + +Кастомні запити не замінюють весь системний запит. Вони перевизначають або доповнюють **частину інструкцій, специфічну для завдання**, зберігаючи при цьому структурний формат вихідних даних (наприклад, рядки `CONCEPT:`, синтаксис wiki-посилань), від якого Notemd залежить для парсингу. + +## Як це працює + +### Архітектура запитів + +Кожне Notemd завдання дотримується однакової структури запиту: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **Базовий системний запит** -- Встановлює персонаж асистента. Не підлягає перевизначенню. +2. **Спрямована навчальна галузь** -- Додає до початку `Relevant Fields: [medicine / law / computer science / ...]` для обмеження діапазону. Це перемикач налаштувань, а не сирий запит. +3. **Кастомний запит завдання** -- Замінює стандартні інструкції до завдання (наприклад, які концепції видобувати, наскільки активно створювати посилання). +4. **Формат вихідних даних** -- Структурні правила (рядки `CONCEPT:`, формат wiki-посилань). Завжди додається Notemd для забезпечення можливості парсингу. +5. **Зміст** -- Фактичний текст запису, який підставляється під час виконання за допомогою `{{content}}`. + +### Змінні запитів + +Змінні підставляються під час виконання. Доступні змінні відрізняються залежно від завдання: + +| Variable | Завдання | Замінено на | +|----------|-------|---------------| +| `{{content}}` | Усе | Текст примітки або вибраного фрагмента | +| `{{concept}}` | Шаблон концептуальної примітки | Ім'я вилученого концепту | +| `{{description}}` | Шаблон концептуальної примітки | Опис концепту, створений LLM | +| `{{backlinks}}` | Шаблон концептуальної примітки | Список вихідних приміток з посиланнями | +| `{{date}}` | Шаблон концептуальної примітки | Текуща дата (YYYY-MM-DD) | +| `{{language}}` | Переклад | Мова цільового виводу | +| `{{source}}` | Шаблон концептуальної примітки | Базова назва вихідної примітки | + +### Сфера зосередженого навчання + +Функція зосередженого навчання є скороченим способом визначення сфери. Замість того, щоб писати власний запит, у якому зазначається ваша галузь, ви встановлюєте `focusedLearningDomain` у налаштуваннях: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +Це додає `Relevant Fields: [medicine]` до запиту на екстракцію, що змушує LLM надавати пріоритет поняттям, пов’язаним із сферою, та пригнічувати загальні. Це легше, ніж повний власний запит, і працює у всіх завданнях екстракції. + +## Конфігурація + +| Налаштування | За замовчуванням | Ефект | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | Перевизначити стандартний запит завдання додавання посилань | +| `customExtractConceptsPrompt` | `''` | Перевизначити стандартний запит екстракції понять | +| `customResearchPrompt` | `''` | Перевизначити стандартний запит дослідження + узагальнення | +| `customTranslatePrompt` | `''` | Перевизначити стандартний запит перекладу | +| `customDiagramPrompt` | `''` | Перевизначити стандартний запит створення діаграми | +| `focusedLearningDomain` | `''` | Додати контекст галузі до запитів на екстракцію та посилання | +| `extractConceptsMinimalTemplate` | `true` | Використовувати шаблон концептуальної записки з лише назвою (впливає на обсяг шаблону `{{concept}}`) | +| `customConceptNoteTemplate` | `''` | Перевизначити шаблон файлу концептуальної записки з повною підтримкою змінних | + +**Якщо поле власного запиту порожнє, використовується вбудований стандартний запит.** + +## Приклад + +Ви є медичним дослідником, який екстрагує поняття з записів клінічних випробувань. Стандартний запит екстрагує загальні іменники разом із медичними термінами, що заплутує вашу папку з поняттями. + +**Рішення:** Встановіть сферу зосередженого навчання та власний запит екстракції. + +1. Встановіть `focusedLearningDomain` на `medicine` +2. Встановіть `customExtractConceptsPrompt` як: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +Тепер, коли ви запускаєте «Extract concepts» на клінічній записці, LLM генерує: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +Замість стандартної поведінки, яка також може видобувати небажані загальні терміни, такі як «hospital» або «month». + +## Поради + +- **Почніть з визначеної сфери навчання** перед створенням повного користувацького запиту. Це охоплює 80% випадків використання за допомогою одного налаштування. +- **Зберігайте формат вихідних даних** — ніколи не видаляйте інструкції щодо формату, такі як «один на рядок» або «CONCEPT: prefix», з користувацьких запитів. Парсер Notemd залежить від них. +- **Спочатку протестуйте з однією запискою** — користувацькі запити можуть мати несподівані наслідки для ширини видобутку. Перевірте їх на одній записці перед пакетною обробкою. +- **Зберігайте запити лаконічними** — надто довгі користувацькі запити споживають токени та можуть розсіювати увагу моделі. + +--- + +## Наступні кроки + +- [Wiki-Links](/docs/features/wiki-links) — що буде посиланням, коли ви налаштовуєте запит add-links +- [Concept Notes](/docs/features/concept-notes) — шаблони концептуальних записок та змінна `{{concept}}` +- [Batch Processing](/docs/advanced/batch-processing) — застосування користувацьких запитів до всіх папок +- [Troubleshooting](/docs/advanced/troubleshooting) — усунення проблем, коли користувацькі запити генерують несподіваний вихід diff --git a/website/i18n/uk/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/uk/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..f2da7716 --- /dev/null +++ b/website/i18n/uk/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "Усунення несправностей" +description: "Поширені проблеми та їхні рішення" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Усунення несправностей + +<TLDR> +**Більшість Notemd проблем належать до чотирьох категорій: ключові проблеми API, підключення до мережі, помилки автентифікації (401/403) та обмеження швидкості (429).** Вбудований тест підключення та панель діагностики дозволяють швидко визначити первинну причину. На цій сторінці описано кожне поширене повідомлення про помилку, його причину та спосіб усунення. Якщо проблема не вказана тут, повідомте про неї у розділі GitHub Issues разом із результатами діагностики. + +Це частина [Obsidian Посібника з управління знаннями в ШІ](/docs/pillar-ai-knowledge). +</TLDR> + +## Огляд + +Notemd залежить від зовнішніх сервісів – постачальників LLM та систем пошуку API – тому більшість проблем виникає поза самим плагіном. Панель діагностики у налаштуваннях надає структурований огляд останнього API виклику, включаючи запит URL, статус відповіді та тіло помилки. Завжди спочатку перевіряйте її, перш ніж продовжувати розслідування. + +## Як це працює: Діагностика + +### Тест підключення + +У кожному розділі налаштувань постачальника є кнопка **"Протестувати підключення"**. Клацання на неї надсилає мінімальний запит API (зазвичай список моделей або коротке завершення) та повідомляє про успіх або конкретну помилку HTTP. Це найшвидший спосіб перевірити, чи правильні ваш ключ API та база URL. + +### Панель діагностики + +**Настройки --> Notemd --> Діагностика** відображає: + +| Поле | Зміст | +|-------|---------| +| Останній постачальник | Який постачальник був викликаний останнім | +| Остання модель | Яка модель була викликана останньою | +| Останній статус | Код статусу HTTP або помилка транспортування | +| Остання помилка | Необроблена повідомлення про помилку від API | +| Останній запит URL | Повний URL останнього запиту (засекречений ключ API) | +| Тіло останньої відповіді | Обрізане тіло відповіді (перші 500 символів) | + +Копіюйте повний вихід діагностики під час повідомлення про проблеми на GitHub. + +## Поширені помилки + +### Ключ API недійсний або відсутній + +**Симптом:** HTTP 401 або "Надано неправильний ключ API" + +**Причина:** Ключ API відсутній, містить пробіли або належить іншому постачальнику. + +**Виправлення:** +1. Перевірте, що у ключа немає передніх/задніх пробілів +2. Переконайтеся, що ключ відповідає обраному постачальнику (ключ OpenAI не буде працювати з Anthropic) +3. Перевірте, чи є у вашому обліковому записі кредити або активна підписка +4. Натисніть **"Test Connection"**, щоб перевірити + +### Помилки мережі / з’єднання + +**Симптоми:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**Причина:** Кінцева точка API недоступна з вашого пристрою. + +**Рішення:** +1. Перевірте ваше інтернет-з’єднання +2. Якщо ви за проксі або брандмауером, переконайтеся, що домен API не заблокований +3. Для Ollama: перевірте, чи працює `ollama serve` (`ollama list` має повертати моделі) +4. Для LMStudio: переконайтеся, що сервер працює на `localhost:1234` +5. Спробуйте інший спосіб передачі даних – користувачі мобільних пристроїв повинні переконатися, що спосіб `requestUrl` активний +6. Увімкніть `enableStableApiCall` для автоматичної перспроби при тимчасових помилках + +### 403 Forbidden + +**Симптоми:** HTTP 403 + +**Причина:** Ваш ключ API є дійсним, але не має дозволів на запитуваний ресурс. + +**Рішення:** +1. Деякі моделі вимагають спеціального доступу (наприклад, GPT-4 через Azure потребує імені розгортання) +2. Деякі постачальники обмежують моделі за рівнем плану – перевірте свій акаунт +3. Можуть діяти регіональні обмеження (деякі постачальники в Китаї блокують міжнародні IP та навпаки) +4. Переконайтеся, що назва моделі написана правильно (наприклад, `gpt-4o` а не `gpt-4o-mini`, коли міні-модель – це все, що дозволяє ваш план) + +### Обмеження швидкості (429) + +**Симптом:** HTTP 429 або "Обмеження швидкості перевищено" + +**Причина:** Занадто багато запитів протягом короткого проміжку часу. + +**Рішення:** +1. Зменшіть `batchConcurrency` до `1` або `2` +2. Зачекайте кілька хвилин перед повторною спробою +3. Перегляньте документацію постачальника щодо обмежень швидкості для вашого рівня плану +4. Увімкніть `enableStableApiCall` для автоматичної повторної спроби з затримкою +5. Розгляньте можливість переходу до постачальника з вищими лімітами (DeepSeek, Ollama) + +### Модель не знайдена + +**Симптом:** "Модель не знайдена" або HTTP 404 + +**Причина:** Назва моделі відсутня у обраному постачальнику. + +**Виправлення:** +1. Натисніть **"Отримати список моделей"**, щоб побачити всі доступні моделі для вашого постачальника +2. Деякі назви моделей змінюються з часом — перевірте поточну назву в документації постачальника +3. Для Ollama: запустіть `ollama list`, щоб побачити завантажені моделі; доступні лише завантажені моделі + +### Жодних посилань / жодних концепцій не створено + +**Симптом:** Команда виконується, але не виводить жодного результату + +**Причина:** LLM повернув порожню або непарсовану відповідь. + +**Виправлення:** +1. Перевірте панель діагностики на справжню відповідь LLM +2. Спробуйте більш потужну модель (деякі невеликі моделі мають проблеми зі структурованим виводом) +3. Переконайтеся, що примітка містить достатньо контенту (>50 слів) +4. Перегляньте ваш особистий запит на наявність суперечливих інструкцій +5. Тимчасово вимкніть придушення синонімів, щоб перевірити, чи воно занадто агресивне + +### Відсутній ID кінцевої точки Doubao + +**Симптом:** Помилка під час використання постачальника ByteDance Doubao + +**Причина:** Doubao вимагає ID кінцевої точки Ark (формат: `ep-xxxxxxxx-xxxx-xxxx`) замість назви моделі. + +**Виправлення:** Замініть стандартну модель-замінник на ваш справжній ідентифікатор кінцевої точки з консолі Volcengine. + +## Конфігурація + +| Налаштування діагностики | Місцезнаходження | Мета | +|--------------------|----------|---------| +| **Перевірка з’єднання** | Розділ Налаштування --> Постачальник | Перевірити ключ API та наявність з’єднання | +| **Отримати список моделей** | Розділ Налаштування --> Постачальник | Підтвердити, які моделі є доступними | +| `enableStableApiCall` | Розділ Налаштування --> Розширені налаштування | Увімкнути повторні спроби з затримкою | +| `batchConcurrency` | Розділ Налаштування --> Пакетна обробка | Керувати паралелізмом, щоб уникнути обмежень швидкості | + +## Як повідомляти про проблеми + +Якщо ваша проблема не описана вище: + +1. Відкрити **Настройки --> Notemd --> Діагностика** +2. Копіювати повний результат діагностики +3. Створити питання на GitHub за адресою [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +4. Включити: версію Obsidian, версію Notemd, постачальника, модель, результат діагностики та кроки для відтворення +5. Замаскувати свій ключ API у будь-яких спільних журналах + +--- + +## Наступні кроки + +- [LLM Постачальники](/docs/providers/overview) -- Повний посібник з налаштування постачальника +- [Пакетна обробка](/docs/advanced/batch-processing) -- Налаштування паралелізму та повторних спроб для великих операцій +- [Складні запити](/docs/advanced/custom-prompts) -- Виправлення непередбачуваної поведінки LLM шляхом коригування запитів diff --git a/website/i18n/uk/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/uk/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..8fa85cef --- /dev/null +++ b/website/i18n/uk/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "Часто ставлені запитання" +description: "Поширені запитання щодо встановлення, функцій та використання Notemd" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# Часто ставлені запитання + +<TLDR> +**Швидкі відповіді на найпоширеніші запитання щодо Notemd.** Охоплює встановлення (налаштування за 5 хвилин), підтримку 30+ провайдерів LLM, опції локальної/хмарної моделі, одноклікові робочі процеси, багатомовний UI (21 мова), автоматизацію посилань у вікі, інтеграцію з дослідженнями, робочі процеси читання PDF, генерацію діаграм та ліцензування на основі відкритого коду. Усі функції працюють офлайн із Ollama. +</TLDR> + +--- + +## Встановлення та налаштування + +### Як встановити Notemd у Obsidian? + +Відкрийте Obsidian **Настройки → Комунітетні плагіни → Перегляд** → знайдіть **"Notemd"** → **Встановити** → **Увімкнути**. + +**Вимоги:** +- Obsidian 0.15.0+ +- Підтримується на десктопі (Windows, macOS, Linux) та мобільних пристроях (iOS, Android) + +**Ручне встановлення:** +1. Завантажте `main.js`, `styles.css`, `manifest.json` з [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) +2. Помістіть їх у `<your-vault>/.obsidian/plugins/notemd/` +3. Перезавантажте Obsidian та увімкніть плагін + +**Статистика:** понад 4k завантажень, 44 версії, ліцензія MIT. + +--- + +## Конфігурація LLM + +### Що LLM провайдери підтримує Notemd? + +Notemd підтримує **30+ провайдерів**: + +**Провайдери хмарних послуг:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonnet, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**З орієнтацією на Китай:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**Локальні/самостійно розгорнуті:** +- Ollama +- LM Studio +- Будь-який кінцевий пункт, сумісний з OpenAI + +**Шлюзи:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models, Fireworks, LiteLLM, Nebius, Cerebras +- Hugging Face, Vercel AI Gateway, Requesty + +### Чи може Notemd працювати з локальними LLMs? + +**Так, повністю підтримується.** Notemd працює з: +- **Ollama** (нативна інтеграція) +- **LM Studio** (через OpenAI-сумісний кінцевий пункт) +- **vLLM, LocalAI, text-generation-webui** (через OpenAI-сумісний режим) + +Усі завдання працюють з локальними моделями: поєднування, генерація концепцій, переклад, дослідження та створення діаграм. + +**Приклад змішування та поєднання:** +- Ollama (локальний) для поєднування → швидко, приватно, безкоштовно +- OpenAI для досліджень → висока якість, інтеграція з пошуком у Інтернеті +- Gemini для перекладу → багатомодальна підтримка + +### Як налаштувати різні моделі для різних завдань? + +У **Налаштуваннях Notemd** кожне завдання має окремі вибірники постачальника/моделі: + +| Завдання | Приклад налаштування | +|------|----------------------| +| **Пов’язування** | DeepSeek (швидко, дешево) | +| **Генерація концепцій** | Claude Opus (висока якість) | +| **Дослідження** | Perplexity або GPT-4o (з базою даних вебу) | +| **Переклад** | Gemini Flash (багатомодальний) | +| **Генерація діаграм** | Ollama (локально, приватно) | + +Ця оптимізація для кожного завдання збалансовує швидкість, вартість та якість. + +--- + +## Основні функції + +### Чим Notemd відрізняється від ChatGPT для читання статей? + +| Розмір | ChatGPT | Notemd | +|-----------|---------|--------| +| **Місце зберігання результату** | Історія чату (тимчасова) | Obsidian сховище (постійні файли) | +| **Формат результату** | Текстова відповідь | Вікі-посилання, концептуальні нотатки, діаграми, переклади | +| **Довгострокова цінність** | Зникає після сеансу | Накопичується у базі знань | +| **Можливість повторного використання** | Необхідно знову запитувати | Файли залишаються, посилання зберігаються, розвиваються | + +**Використовуйте ChatGPT для:** швидких запитань та відповідей, одноразових пояснень +**Використовуйте Notemd для:** створення постійної, структурованої бази знань протягом тижнів/місяців + +### Як Notemd додає вікі-посилання до нотаток? + +**Процес:** +1. Ви запускаєте «Обробити файл (додати посилання)» для нотатки +2. Notemd надсилає текст на ваш налаштований LLM +3. Цей LLM ідентифікує ключові концепції в контексті +4. Notemd додає `[[wiki-links]]` при кожному зустрічанні концепції +5. За бажанням він автоматично створює нотатки про концепції у вказаній вами папці + +**Функції:** +- Придушення синонімів (уникає дублікатів типу "transformer" та "transformers") +- Повернення посилань з нотаток про концепції на джерело +- Збереження цілісності посилань під час перейменування/видалення +- Режим чистого витягування (витягує концепції без змін оригіналу) + +### Що таке однокліковий робочий процес Notemd? + +**Одноклікові робочі процеси** об’єднують кілька дій у **одну кнопку на панелі бічних інструментів**. + +**Стандартний робочий процес:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**Результат:** Один клік виконує наступне: +1. Додає посилання на wiki до поточної нотатки +2. Створює нотатки про концепції для нових термінів +3. Проводить дослідження та додає контекст +4. Стискає інформацію у діаграму Mermaid + +**Дострокові робочі процеси:** Визначте власні у налаштуваннях за допомогою формату DSL. Кожен робочий процес стає кнопкою у бічній панелі, яку можна використовувати знову і знову. + +### Як Notemd порівнюється з Copilot або Smart Connections? + +Ці плагіни вирішують різні проблеми: + +- **Copilot** — спочатку розмова. Ви спілкуєтесь з ШІ щодо своїх нотаток. Відповіді ШІ залишаються у панелі чату; вони не змінюють ваш сховище. +- **Smart Connections** — спочатку пошук. Він знаходить семантично схожі нотатки за допомогою ембеддингів. Він не створює та не змінює контент. +- **Notemd** — спочатку написання. ШІ обробляє ваші нотатки та створює структуровані результати (посилання на вікі, концепт-нотатки, дослідження, діаграми, переклади) безпосередньо у вашому сховищі у вигляді постійних файлів. + +| Що вам потрібно | Рекомендований плагін | +|----------------|-------------------| +| Спілкування з ШІ щодо нотаток | Copilot | +| Пошук схожих/пов’язаних нотаток | Smart Connections | +| Автоматичне вставлення посилань на вікі та створення графу знань | **Notemd** | +| Створення концепт-нотаток із зворотними посиланнями | **Notemd** | +| Створення діаграм зі змісту нотаток | **Notemd** | +| Дослідити тему та додати короткі описи | **Notemd** | + +Усі три можна використовувати разом — вони доповнюють один одного, а не конкурують. + +--- + +## Дослідження та переклад + +### Які сервіси пошуку працюють з дослідженнями Notemd? + +| Сервіс | Треба ключ API | Якість | Примітки | +|---------|-----------------|---------|-------| +| **Tavily** | Так | Висока | Рекомендується, пошук оптимізований для ШІ | +| **DuckDuckGo** | Ні | Експериментальний | Без налаштувань, нижча якість | + +**Як працює функція «Дослідження та узагальнення»:** +1. Ви обираєте тему або запускаєте її у поточній нотатці +2. Notemd звертається до сервісу пошуку +3. Результати → узагальнення LLM +4. Узагальнення додається до вашої нотатки з посиланнями на джерела + +**Результат:** Постійний запис досліджень у вашому сховищі, а не у вкладках браузера. + +### Чи підтримує Notemd китайську мову чи інші мови? + +**Мови UI:** підтримується 21+ мова +- Англійська, 中文 (简体), 中文 (繁體), 日本語, 한국어 +- Арабська, Німецька, Французька, Іспанська, Російська, Португальська, Італійська +- Хінді, Бенгальська, Тайська, В’єтнамська, Турецька, Польська, Чеська та інші + +**Мова вихідних даних завдання:** незалежна налаштування +- UI китайською + вихід англійською: ✅ +- UI англійською + вихід китайською: ✅ + +**Сфера застосування:** Білінгвальні дослідники можуть використовувати UI у рідній мові, створюючи нотатки англійською для публікації. + +--- + +## PDF та академічні робочі процеси + +### Чи можна використовувати Notemd для читання статей/PDF? + +**Так.** Процес: +1. **Перетворити PDF → Markdown** за допомогою [MinerU](https://github.com/opendatalab/MinerU) (рекомендується для академічних статей) +2. Відкрити файл Markdown у Obsidian +3. Виконати завдання Notemd: + - **Додати вікі-посилання** до ключових термінів + - **Створити концептуальні нотатки** для незнайомої термінології + - **Витягнути оригінальний текст** за допомогою спеціальних запитань (наприклад, "Які є обмеження?") + - **Дослідити історію** цитованих методів/даних + - **Перекласти** складні розділи + - **Стиснути до діаграми Mermaid** для кращого розуміння структури + +**Версія 1.9.1+:** Витягування структури розділів із підтримкою змістового огляду + +**Результат:** Читання вашої статті перетворюється на структурований, посилковий знаневий об’єкт у вашому сховищі. + +--- + +## Діаграми та візуалізація + +### Які типи графів/діаграм може створювати Notemd? + +| Тип | Підтримка | Функції | +|------|---------|----------| +| **Mermaid** | Повна | Діаграми потоку, послідовності, класів, станів, ER, Gantt, автоматичне виправлення синтаксису, пакетна перевірка | +| **JSON Canvas** | Повна | Вбудовані макети холста Obsidian | +| **Vega-Lite** | Повна | Графіки даних, часові ряди, стовпчики, розсіяні точки, налаштовувані | +| **HTML** | Альтернатива | Для непідтримуваних типів діаграм | +| **Editable HTML/SVG** | Чіткий об’єкт цілі | Самостійний вбудований SVG з анотаціями у стилі Draw.io-style | +| **Draw.io / Drawnix artifacts** | Межа експорту | Детермінований XML/JSON від `SemanticFigureModel`; без залежностей від середовища редактора | + +**Автоматичне виправлення Mermaid:** Режим глибокої налагодки для виправлення: +- Зламані стрілки (`-->`, `-.->`, `==>`) +- Недійсні мітки, коментарі +- Помилки синтаксису підграфа +- Нотація форми (`[`, `(`, `{`, `((`) +- Знаки трубки в мітках +- Додатки до приміток + +**Робочий процес:** +1. Виконайте «Підсумуйте як діаграму Mermaid» для примітки +2. Перегляд у модальному вікні +3. Експорт у форматі SVG або PNG +4. Або збережіть як файл `.mmd` у сховищі + +--- + +## Відкритий код та спільнота + +### Чи є Notemd безкоштовним та відкритим кодом? + +**Так.** +- **Ліцензія:** MIT (пермісивна, дозволяє комерційне використання) +- **Код джерела:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **Жодних платних тарифів, жодного замикання у хмарі, жодної телеметрії** +- **Спільнота:** 234+ зірки на GitHub, активний Discord + +**Ви володієте:** +- Вашими даними (вони залишаються у вашому сховищі) +- Вашими робочими процесами (налаштовуйте запити, моделі, ланцюги) +- Вашою приватністю (локальна підтримка LLM) + +**Внесок:** Чекаємо на Pull requests. Дивіться [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +## Усунення несправностей + +### Мої виклики LLM не працюють. Що мені перевірити? + +1. **Чи дійсний ключ API?** Перевірте Налаштування → Налаштування постачальника +2. **Чи правильна назва моделі?** Використовуйте кнопку "获取模型列表" (Get Model List) у налаштуваннях +3. **Чи доступна мережа?** Деякі провайдери вимагають VPN +4. **Обмеження швидкості?** Перевірте панель керування провайдера +5. **Діагностика:** Запустіть «Тест з’єднання» у налаштуваннях для отримання детальних журналів помилок + +### Notemd працює повільно. Як його прискорити? + +1. **Використовуйте швидші моделі:** DeepSeek, Gemini Flash, GPT-4o-mini +2. **Зменшіть розмір частин:** Налаштування → Розумне розділення на частини → знизьте кількість слів +3. **Паралельна обробка:** Налаштування → Пакетна обробка → збільшіть одночасність +4. **Локальні моделі:** Ollama для завдань, які не потребують пошуку в Інтернеті + +### Чи може Notemd працювати на 100% офлайн? + +**Так, з Ollama.** Без ключа API, без Інтернету, жодні дані не виходять з вашого пристрою: + +1. Встановіть [Ollama](https://ollama.com) та запустіть `ollama serve` +2. У налаштуваннях Notemd виберіть **Ollama** як вашого провайдера +3. Завантажте модель: `ollama pull llama3` (або qwen2.5, gemma2 тощо) +4. Усі функції працюють: посилання на wiki, концепт-нотатки, переклад, діаграми + +**Дослідження DuckDuckGo** також працює без ключа API (експериментальна якість). + +З корпоративними провайдерами (OpenAI, Anthropic, Google, DeepSeek тощо) вміст вашої нотатки надсилається як вхідні дані API. Перевірте політику конфіденційності кожного провайдера щодо обробки даних. + +### Чи надсилаються мої дані в хмару? + +**Це залежить від вашого постачальника:** + +| Тип постачальника | Дані надсилаються в хмару? | Примітки | +|--------------|---------------------|-------| +| **Ollama (локально)** | Ні | Усе залишається на вашому пристрої | +| **LMStudio (локально)** | Ні | Те саме, що і Ollama | +| **DeepSeek, OpenAI, тощо** | Так | Зауважте, що зміст надсилається як вхідні дані API для обробки | +| **OpenRouter, AIHubMix** | Так | Шлюз, який направляє трафік до хмарних провайдерів | + +Notemd сам по собі не збирає **жодної телеметрії, жодних аналітичних даних, жодних даних користувачів**. Цей плагін є повністю відкритим кодом (MIT). Єдині дані, які залишають ваш комп’ютер, — це ті, які ви спеціально надсилаєте до налаштованого провайдера LLM. + +### Який плагін AI Obsidian найкраще підходить для досліджень? + +Це залежить від вашого робочого процесу досліджень: + +| Потрібно | Плагін | Чому | +|------|--------|-----| +| Знаходити пов’язані статті/нотатки | Smart Connections | Виявлення семантичної схожості | +| Обговорювати свої джерела | Copilot | Розмова з контекстом сховища | +| Автоматичне створення посилань на концепції + генерація нотаток | **Notemd** | AI ідентифікує концепції, додає посилання, створює нотатки | +| Веб-дослідження + узагальнення в нотатки | **Notemd** | Tavily/DuckDuckGo пошук → LLM підсумок → додається до нотатки | +| Створення діаграм з досліджень | **Notemd** | Mermaid/Canvas/Vega-Lite зі змісту нотатки | + +**Рекомендована комбінація:** Smart Connections (відкриття) + Notemd (структурування) + Copilot (обговорення). + +--- + +## Отримання допомоги + +- **Документація:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **GitHub Issues:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **Спонсор:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/uk/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/uk/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..43122467 --- /dev/null +++ b/website/i18n/uk/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "Концептуальні нотатки" +description: "Створюйте та керуйте концептуальними нотатками — окремими записами для ключових концепцій, вилучених з вашого сховища" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# Концептуальні нотатки + +<TLDR> +**Notemd вилучає ключові концепції з ваших нотаток та створює окремі файли концептуальних нотаток.** LLM ідентифікує основні терміни, генерує один файл `.md` на кожну концепцію у налаштовуваній папці та за потреби додає посилання назад на вихідну нотатку. Підтримується придушення синонімів, вибір моделі для кожного завдання, очищення імен файлів та 4-етапний механізм усунення дублікатів. Це є частиною [Obsidian Посібника з управління інтелектуальними знаннями](/docs/pillar-ai-knowledge). +</TLDR> + +## Огляд + +Концептуальні нотатки є будівельними блоками взаємопов’язаної бази знань. Коли ви обробляєте нотатку, Notemd: + +1. **Надсилає ваш текст до LLM** із структурованим запитом на вилучення +2. **Аналізує рядки `CONCEPT:`** у відповіді від LLM +3. **Створює один файл `.md` на кожну концепцію** у визначеній папці +4. **Додає посилання назад** на вихідну нотатку (якщо це увімкнено) + +## Як це працює + +### Канал вилучення + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### Запит на вилучення + +LLM отримує запит, який вказує йому на те, щоб: + +- Вилучати **іменники або іменникові фрази**, які є центральними для теми документа +- **Надавати пріоритет конкретності** — «Dielectric Relaxation» перед «Relaxation» +- **Приводити до однини** — «models» стає «model» +- **Придушувати підконцепції** — якщо з’являється «dielectric relaxation», не вилучати також «relaxation» +- **Пропустити** розділи посилань/бібліографії, звичайні іменники, назви компаній/продуктів +- Вивести одну концепцію на рядок у вигляді `CONCEPT: Term Name` + +**Придушення синонімів** (необов’язково): додати до запиту «Уникайте вилучення синонімів, семантично схожих основних концепцій чи ключових слів, коли це можливо». + +**Сфера фокусованого навчання** (необов’язково): додати `Relevant Fields: [domain]` для обмеження вилучення до певної галузі. + +**Перевага мови** (необов’язково): додати наприкінці «Концепції результату МАЮТЬ бути на [мова].». + +### Чанкування + +Довгі записи розділяються за допомогою `settings.chunkWordCount`. Кожен чанк надсилається окремо. Концепції з усіх чанків збираються в `Set` — дублікати між чанками безшумно видаляються. Помилки LLM у окремих чанках не призводять до зупинки операції. + +## Створення концептуальної записки + +### Правила імен файлів + +| Правило | Поведінка | +|------|----------| +| Дефіси/підкреслення | Замінюються на пробіли | +| Спеціальні символи | Видаляються: зворотний слеш, прямий слеш, двокрапка, зірка, запитання, лапки, трубка, хеш, кершн, дужки | +| Пробіли | Об’єднуються та обрізаються | +| Максимальна довжина | 100 символів (обрізано + додатково обрізано) | +| Результат порожній/з усіма крапками | Пропущено без звуку | + +Приклад: `A-B: Key*Term` стає `A B KeyTerm.md` + +### Шаблони + +**Повний шаблон** (посилання увімкнені, мінімальний шаблон вимкнений): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**Мінімальний шаблон** (коли `extractConceptsMinimalTemplate: true`): + +```markdown +# Concept Name +``` + +### Оновлення існуючих нотаток + +Коли файл концепції вже існує: + +1. Якщо посилання увімкнені та джерельна нотатка ще не вказана, додайте посилання +2. Якщо існує розділ `## Linked From`, вставте його перед наступною заголовком `##` +3. Якщо `## Linked From` відсутній, додайте розділ у кінець +4. Повторювані посилання перевіряються та пропускаються + +### Конфігурація + +| Налаштування | За замовчуванням | Ефект | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | Переключувач головної нотатки. Вимкнено = жодних нотаток не створюється | +| `conceptNoteFolder` | `''` (вимкнено) | Шлях до папки для концепт-нотаток | +| `extractConceptsMinimalTemplate` | `true` | Нотатки лише з назвою (без «Linked From») | +| `extractConceptsAddBacklink` | `false` | Додавати відповідні посилання під час автономної екстракції | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | LLM на кожен завдання для екстракції концептів | +| `extractConceptsLanguage` | `'en'` | Мова виводу назв концептів | +| `replaceSynonymsDuringConceptExtraction` | `false` | Увімкнути придушення синонімів у запиті | +| `generateConceptLogFile` | `false` | Написати `.log` список створених концептів | + +**Важливо:** Налаштування `extractConceptsAddBacklink` та `extractConceptsMinimalTemplate` впливають лише на **спеціальну команду екстракції**. Команда «Add Links» завжди створює нотатки у повному шаблоні з посиланнями. + +## Дедуплікація + +Команда дедуплікації (`Notemd: Check & remove duplicate concept notes`) виконує 5-кроковий аналіз: + +### Крок 1: точне збіг назви файлу + +Порівняння назв без урахування регістру в межах налаштованої області. + +### Крок 2: виявлення множинної форми + +Видаляються суфікси: `-ies` до `-y`, `-es` видаляється, `-s` видаляється. Порівнюється однинкова форма з файлами області. Не обробляє нерегулярні множини (children/child). + +### Крок 3: нормалізація символів + +Застосовується до: `toLowerCase()`, замінюються хрестики/підкреслення на пробіли, видаляються неалфавітно-цифрові символи, об’єднуються пробіли. Ті, що нормалізуються однаково, позначаються. + +### Крок 4: Контейнування одного слова + +Примітки з одним словом перевіряються за базовими іменами файлів багатослівного діапазону. Не виконується, коли діапазон — `concept_folder_only`. + +### Крок 5: Підтвердження та видалення + +Усі кандидати відображаються у модалі підтвердження. Схвалені елементи переміщуються до системного смітника. Операцію можна скасувати між кожним видаленням. + +### Режими діапазону + +| Режим | Порівнюється з | +|------|-------------------| +| `vault` (за замовчуванням) | Усіми файлами сховища `.md` за винятком папки концепцій | +| `concept_folder_only` | Іншими примітками концепцій у цій папці | +| `include` | Файлами у конкретних вказаних папках | +| `exclude` | Усіма файлами сховища за винятком папки концепцій + вказаних папок | + +## Використання + +### Витягнення концепцій (окремо) + +1. Відкрити примітку +2. Запустити **"Notemd: Витягнення концепцій"** з палітри команд +3. Примітки концепцій створюються у налаштованій папці + +### Вилучення та створення контенту + +**"Notemd: Вилучити концепції та створити заголовки"** — вилучає концепції, а потім запускає команду "Створити з заголовка" для кожної нотатки у папці з концепціями. Це створює контент для **усіх** нотаток у цій папці, а не лише для новостворених. + +### Створення посилання у Вікі з вибраного + +1. Підкреслити текст у редакторі +2. Запустити команду **"Notemd: Створити посилання у Вікі з вибраного"** +3. Текст обгортається у `[[...]]` та створюється нотатка про концепцію + +## Поради + +- **Спочатку встановіть папку з концепціями** — без неї жодні нотатки не будуть створені. Якщо її не вказати, з’явиться модальне вікно з попередженням. +- **Використовуйте моделі для окремих завдань** — вилучення концепцій краще працює з дешевшими моделями (GPT-4o-mini, DeepSeek). Зберігайте дорогі моделі для досліджень/перекладу. +- **Увімкніть придушення синонімів** у технічних галузях, де кілька термінів позначають одну і ту саму концепцію. +- **Регулярно усувати дублікати** — запускайте команду усунення дублікатів після пакетної обробки, щоб виявити майже однакові записи. +- **Файл журналу перезаписується** після кожного запуску, а не додається. Копіюйте його, якщо вам потрібні попередні результати. + +--- + +## Наступні кроки + +- [Wiki-Links](./wiki-links) — Як концепції підключаються безпосередньо у тексті +- [Diagrams](./diagrams) — Візуалізація зв’язків між концепціями +- [Workflows](./workflows) — Послідовне вилучення разом з іншими завданнями diff --git a/website/i18n/uk/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/uk/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..9e9fc081 --- /dev/null +++ b/website/i18n/uk/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "Діаграми" +description: "Створює Mermaid, JSON Canvas, Vega-Lite, HTML, редаговані фігурні об’єкти та майбутні обмежені circuitikz діаграми з ваших нотаток за допомогою архітектури, орієнтованої на специфікацію" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Діаграми + +<TLDR> +**Notemd створює діаграми з ваших нотаток через конвеєр, орієнтований на специфікацію.** LLM генерує рендерер-незалежний `DiagramSpec` JSON, після чого спеціалізовані адаптери перетворюють його на Mermaid, JSON Canvas, Vega-Lite, HTML або редагований HTML/SVG вихід. Підтримує 8 типів намірів, автоматичні ланцюги заміни, прямий перегляд з експортом у SVG/PNG, семантичну перевірку та генерацію з підсиленням місцевих знань. +</TLDR> + +Це частина [Obsidian Посібника з управління знаннями в ШІ](/docs/pillar-ai-knowledge). + +## Архітектура: Конвеєр, орієнтований на специфікацію + +Notemd ніколи не просить LLM створювати синтаксис Mermaid/Vega/Canvas безпосередньо. Натомість: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**Чому орієнтація на специфікацію?** LLM часто створюють недійсний синтаксис для рендерерів (особливо Mermaid). Структурований `DiagramSpec` можна перевірити перед рендерингом, а та сама специфікація може використовуватися для кількох рендерерів як заміна. + +## Підтримувані типи діаграм + +| Намір | Основний рендерер | Заміни | Сценарій використання | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | Ієрархічний розбір тем | +| `flowchart` | Mermaid | HTML | Потоки процесів, дерева прийняття рішень | +| `sequence` | Mermaid | HTML | Взаємодія клієнт-сервер, протоколи | +| `classDiagram` | Mermaid | HTML | Відношення між класами OOP | +| `erDiagram` | Mermaid | HTML | Схеми баз даних, взаємозв’язки ентитетів | +| `stateDiagram` | Mermaid | HTML | Машини станів, моделі життєвого циклу | +| `canvasMap` | JSON Canvas | Mermaid → HTML | Карти концепцій, графи знань | +| `dataChart` | Vega-Lite | Mermaid → HTML | Стовпчасті, лінійні, площинні, розсіяні, кругові діаграми, таблиці | + +## Виявлення наміру + +Notemd визначає найкращий тип діаграми на основі змісту вашої записки за допомогою оцінки ключових слів: + +| Намір | Тригери | Рівень впевненості | +|--------|----------|------------| +| `dataChart` | Таблиці, числові клітинки, ключові слова, що позначають метрики/тренди, відсотки | 0.88 | +| `sequence` | Лексикон запитів/відповідей (4+ збіги) або маркери `->`/`=>` | 0.82 | +| `erDiagram` | Первинний ключ, іноземний ключ, ентитет, схема (2+ збіги) | 0.80 | +| `stateDiagram` | Стан, перехід, у очікуванні, у роботі, збій (3+ збіги) | 0.76 | +| `flowchart` | Нумеровані кроки (2+) або лексикон if/then/else/workflow | 0.74 | +| `canvasMap` | Карта концепцій, граф знань, просторовий, кластер | 0.72 | +| `mindmap` | За замовчуванням | 0.55 | + +Перевизначте за допомогою налаштування **Бажаний тип діаграми**, вибірника з бічної панелі або прямої опції палітри команд. + +## Вибір мети відображення + +Експериментальний підхід, орієнтований на специфікацію, тепер має два незалежні контролери: + +| Контролер | Налаштування | Ефект | +|---------|---------|--------| +| Бажаний тип діаграми | `preferredDiagramIntent` | Визначає семантичну форму створеного `DiagramSpec` | +| Бажана мета відображення | `preferredDiagramRenderTarget` | Вибирає інструмент для генерації та перегляду діаграми | + +Встановіть **Бажану мету відображення** як **Автоматично** для за замовчуванням планувальника, або виберіть Mermaid, JSON Canvas, Vega-Lite, HTML чи редактируваний HTML/SVG прямо. Це перевизначення застосовується лише до команд генерації та перегляду артефактів. Стандартна команда **Узагальнити як діаграму Mermaid** залишається прив’язаною до формату, сумісного з Mermaid, щоб існуючі робочі процеси з Markdown не змінювали формат без уваги. + +Це розділення має значення, оскільки намір `flowchart` тепер може бути відображений як Mermaid для нотаток у Markdown, як HTML для надійного запасного варіанту або як редактируваний HTML/SVG для подальшої редагування. Draw.io та Drawnix залишаються експортерами артефактів у форматі CLI, а не метами відображення всередині плагіну. + +## Використання + +### Створити діаграму + +1. Відкрити примітку +2. Виконайте **"Notemd: Створити діаграму"** з палітри команд +3. Notemd виявляє намір, генерує специфікацію, відображає результат та зберігає артефакт + +**Файли вихідних даних за метою:** + +| Ціль | Розширення | Шаблон імені файлу | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| Редаговано HTML/SVG | `.html` | `{note}_diagram.html` | + +### Перегляд діаграми + +1. Запустити **"Notemd: Перегляд діаграми"** +2. Відкривається модальне вікно з відтвореною діаграмою +3. Експортувати у форматі SVG або PNG за допомогою кнопок інструментарію + +Функція **Автоматичний перегляд** доступна в налаштуваннях — після генерації модальне вікно перегляду відкривається автоматично. + +У модальному вікні перегляду також є панель діагностики артефактів. Рендерери та перевірки можуть додавати `RenderArtifact.diagnostics`; у вікні відображається підсумок діагностики з кількістю помилок/попереджень/інформації, потім ступінь серйозності, тип діагностики, повідомлення та поради щодо виправлення поруч із переглядом. Той самий підсумок відображається у записах історії перегляду, тож можна порівнювати повторні спроби circuitikz без необхідності відкривати кожен запис. Для артефактів, які мають вихідний контент, але не можуть бути відтворені безпосередньо або через шлях iframe HTML, модальне вікно тепер переходить на перегляд лише вихідного коду замість примусового використання порожнього iframe. Це дозволяє circuitikz проводити перевірки компіляції/рендерингу, SVG перевірки текстових токенів, перевірки порожніх скріншотів у форматі PNG та майбутні звіти про перекриття матеріалу на видимій UI поверхні, не роблячи TikZJax або LaTeX обов’язковою залежністю під час виконання плагінів та не прикидаючись, що вихідний текст — це перевірений візуальний результат. + +### Режим легасі Mermaid + +Коли `enableExperimentalDiagramPipeline` вимкнено, Notemd надсилає прямий запит Mermaid до LLM. Це повністю обходить пайплайн специфікації. Якщо експериментальний пайплайн зазнає невдачі, система переходить у цей режим. + +## Бекенди рендерингу + +### Mermaid + +6 адаптерів (майндмап, діаграма потоку, послідовність, ER, клас, стан) перетворюють `DiagramSpec` на синтаксис Mermaid. Після генерації `mermaid.parse()` перевіряє результат. Якщо перевірка провалюється: + +1. **Повторна спроба LLM** — одна спроба з повідомленням про помилку Mermaid як контекстом +2. **Мінімальний варіант відновлення** — примітивна діаграма Mermaid на основі ідентифікаторів вузлів специфікації + +**Legacy Mermaid Fixer** автоматично виправляє поширені помилки синтаксису LLM: нормалізацію директив note, ескейпування pipe-label, перерозташування крапок з комою, розумні лапки, стрілки з подвійною хрест-рискою, невідповідності форм та багато іншого. + +### JSON Canvas + +Створює формат Obsidian JSON Canvas з просторовим розташуванням: +- Вузли розташовуються за глибиною (x = глибина × 420) та індексом (y = індекс × 170) +- Ширина оцінюється за довжиною мітки +- Криві з `fromSide: 'right'`, `toSide: 'left'`, `toEnd: 'arrow'` + +### Vega-Lite + +Створює повні специфікації Vega-Lite v5 JSON з автоматичним кодуванням: +- **Картезійські графіки** (стовпчики/лінії/площа/точки/розсіювання): канали x + y та колір для багатьох серій +- **Коло**: theta = y (кількісне), колір = x (номінальне) +- **Таблиця**: рядок = x, текст = y + стовпець = серія + +Патчі тем темного та світлого кольору глибоко об’єднуються перед компіляцією. + +### HTML + +Універсальний запасний варіант. Самодостатня документація HTML з: +- Мета-заголовки CSP +- Режим світлий/темний через `prefers-color-scheme` +- Локалізовані мітки UI для 20 локацій +- Розділи: герой, структура (дерево вузлів), взаємозв’язки, примітки, таблиці даних серій + +### Редаговані HTML/SVG + +Чітка мета для фігур у робочих процесах експорту, які піддаються редагуванню. Вона проєктує `DiagramSpec` у детермінований `SemanticFigureModel`, а потім генерує самостійний документ HTML з вбудованими групами SVG, які містять анотації у стилі Draw.io: + +- `data-drawio-type`, `data-drawio-id` та `data-drawio-role` на семантичних вузлах +- `data-drawio-source` та `data-drawio-target` на семантичних ребрах +- стабільні ідентифікатори вузлів/ребер після нормалізації пробілів та обробки зіткнень +- жодних скриптів, жодних зовнішніх шрифтів та жодних віддалених ресурсів + +Ця мета навмисно ще не є стандартним маршрутом планувальника. Вона доступна як чітка мета відображення, поки шлях продукту доводить поведінку редагування у реальних інструментах. + +### Draw.io та Drawnix Межі експорту + +Текуща реалізація зберігає підтримку сторонніх редакторів на межі артефакта: + +| Мета | Контракт | Залежність під час виконання | +|--------|----------|--------------------| +| Draw.io | детермінований некомпресований `mxfile` XML від `SemanticFigureModel` | жодних у часі виконання плагіна або у CI | +| Drawnix | мінімальний підмножина `.drawnix` JSON з використанням елементів `geometry` та `arrow-line` | жодних у часі виконання плагіна або у CI | + +Цей компроміс є навмисним: Notemd може перевіряти видимі мітки, стабільні ідентифікатори та покриття підтримуваних примітивів без вбудовування Diagrams.NET Desktop, Drawnix, Plait або стану редактора лише у браузері у плагін. + +### circuitikz / TikZJax Напрямок + +Схеми колій — це не та сама проблема, що й загальні діаграми потоку. Правильна синтаксична мета для електричних схем зазвичай є **circuitikz**, яка відображається у Obsidian за допомогою плагінів, таких як TikZJax. TikZJax може завантажувати пакети, такі як `circuitikz`, `pgfplots`, `tikz-cd` та `chemfig`, що робить його привабливим для нотаток з фізики, електроніки, хімії та математики. + +Ризик полягає у тому, що необроблений TikZ, створений за допомогою LLM, є крихким: + +- складна топологія схеми може бути електрично правильною, але візуально нерозбірливою; +- накладення дротів та міток може зробити правильний нетліст непридатним для навчальних нотаток; +- відсутність вступних частин пакетів, неправильні анкери або недійсні назви компонентів можуть завадити відображенню; +- зворотний зв’язок від рендерера зазвичай є на рівні зображення, тоді як LLM генерує геометрію на рівні тексту. + +Кращою архітектурою є розгляд circuitikz як обмеженої мети діаграми, а не як вільної форми запиту: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +Модель першого класу повинна описувати топологію схеми та її розташування окремо: + +| Шар | Відповідальність | Приклад | +|-------|----------------|---------| +| Топологія | електричні вузли та з’єднання компонентів | `VDD -> RD -> drain(M1)`, `source(M1) -> GND` | +| Розташування | розміщення у сітці, орієнтація, маршрутизаційні смуги | `M1 at (3,2.2)`, вхід зліва, вихід справа | +| Стиль | пакет, конвенція напруги, мітки, якорі | `\begin{circuitikz}[american voltages]` | +| Перевірка | журнал компіляції, відсутні якорі, перевірки на перекриття/скріншот | TikZJax/Діагностика LaTeX плюс візуальний огляд | + +### Текущий прототип circuitikz + +Notemd тепер включає перший обмежений прототип репозиторію для цього напрямку. Він навмисно знаходиться офлайн і обмежений шаблоном: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +Прототип додає окрему межу `CircuitSpec` та детермінований експортер для шести сімей золотих референцій: + +| Тип схеми | Золота референція | Гарантія струму | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | перевіряє `VDD -> R_D -> M1.D`, `vin -> M1.G`, `M1.S -> GND` та `M1.D -> vout` перед записом у LaTeX | +| `cmos-inverter` | `cmos-inverter-v1` | перевіряє топологію PMOS-over-NMOS, спільний вхід гейта, спільний вихід дрену, `VDD -> MP.S` та `MN.S -> GND` перед записом у LaTeX | +| `cmos-buffer` | `cmos-buffer-v1` | перевіряє два каскадові етапи інверторів, проміжну точку `vmid`, відновлений `vout` та спільні доріжки VDD/GND перед записом у LaTeX | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | перевіряє паралельні пристрої PMOS/NMOS між `vin` та `vout` з комплементарним керуванням `phib` / `phi` перед записом у LaTeX | +| `cmos-nand2` | `cmos-nand2-v1` | перевіряє паралельний підтягувальний PMOS, послідовний опускаючий NMOS, подвійні входи `va` / `vb` та `vout` перед записом у LaTeX | +| `cmos-nor2` | `cmos-nor2-v1` | перевіряє послідовний підтягувальний PMOS, паралельний опускаючий NMOS, подвійні входи `va` / `vb` та `vout` перед записом у LaTeX | + +Це ще не загальний генератор TikZ. Він не компілює LaTeX, не викликає TikZJax, не перевіряє скріншоти та не запускає автоматичне виправлення за допомогою зображень. Ці функції залишаються на пізніших етапах. + +Команда Preview diagram може знову відкрити збережені об’єкти джерела circuitikz безпосередньо, якщо розширення файлу є `.tex` або `.tikz` та джерело містить `\usepackage{circuitikz}` або `\begin{circuitikz}`. Цей шлях — це перегляд лише джерела circuitikz: модальне вікно показує джерело, діагностику, контролі копіювання/збереження та метадані історії, але не компілює LaTeX та не викликає TikZJax під час роботи плагіну. + +Тепер той самий перегляд лише джерела охоплює збережені об’єкти Draw.io та Drawnix. Файли `.drawio` приймаються, якщо вони схожі на Draw.io XML (`mxfile` або `mxGraphModel`), а файли `.drawnix` приймаються, якщо вони є Drawnix JSON з `type: "drawnix"` та масивом `elements`. Плагін все ще не вбудовує diagrams.net чи хост білого дошки Drawnix; ці перегляди відображають джерело, діагностику та історію об’єктів без використання вбудованого візуального редактора. + +Для виправлення з збереженням топології перед поданням виправленого кандидата потрібно передати специфікацію до виправлення як посилання: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +Захисник виправлення використовує `createCircuitTopologySignature` та `assertCircuitTopologyUnchanged` для порівняння `circuitKind`, `goldenReferenceId`, мереж, ідентифікаторів/типів/терміналів компонентів та кінцівок непрямих з’єднань перед виведенням результату. Етикетки, текст заголовка, підказки розташування, порядок з’єднань та етикетки з’єднань навмисно ігноруються. Кандидат, який додає коротку лінію або перепідключає термінал, отримує помилку `Circuit topology drift detected` перед тим, як буде записаний файл `.tex`. + +Тепер CLI може парсувати існуючий журнал компіляції LaTeX/TikZJax без запуску компілятора: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +Цей діагностичний шлях повідомляє про відсутність пакетів, таких як `circuitikz.sty`, невідомі ключі TikZ/circuitikz, помилки синтаксису шляху TikZ, такі як відсутні крапки з комою, неконтрольовані аргументи від незбалансованих дужок або незавершених етикеток, невизначені послідовності керування, загальні помилки LaTeX, аварійні зупинки та попередження про переповнення `\hbox`. Це залишається орієнтованим на журнал: локальна компіляція LaTeX/TikZJax та етапи якості скріншотів — це окремі завдання майбутньої роботи. + +Для перевірок для адміністраторів той самий CLI може за бажанням запустити явно налаштований рендерер без парсингу команд шелу: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Запускник компіляції використовує `shell: false`, розширює `{tex}`, `{outputDir}` та `{jobName}` як місця заміни на значення масиву аргументів, читає створений `{jobName}.log` та повертає `compileExecution` разом із `compileDiagnostics` у вихідному форматі CLI JSON. `--compile-executable` — це лише шлях до бінарника рендерера або обгортки; флаги рендерера мають бути в повторюваних значеннях `--compile-arg`. Порожні виконувані файли призводять до помилки `compile-executable-invalid`, відсутні бінарники — до помилки `compile-executable-not-found`, а рядки виконуваних файлів у форматі команди шелу отримують пораду розділити аргументи, щоб Windows, Linux та macOS дотримувалися однакових правил прямого виконання. З `--expected-artifact` також повідомляється про `compileExecution.renderSmoke` та помилка CLI, якщо рендерер не створює непорожнього об’єкта. Плагін все ще не вбудовує LaTeX, не робить TikZJax залежністю часу роботи плагіну та не виконує візуальне виправлення на рівні скріншотів. + +Якщо очікуваним об’єктом є `.svg`, перевірка для диму просувається на один рівень глибше: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +SVG перевірка диму перевіряє корень `<svg>`, позитивні розміри або `viewBox`, принаймні один видимий елемент малюнка після виключення прихованих/прозорих елементів, будь-які запитані токени тексту, очевидні елементи за межами `viewBox`, очевидні перекриваючіся розташовані `<text>` / `<tspan>` етикетки та очевидні текстові етикетки, що перекривають елементи малюнка через `render-svg-label-overlap`. Очікуваний текст шукається у видимому тексті та декодується з метаданими доступності, такими як `aria-label`, `<title>` та `<desc>`, тож рендерери, які зберігають семантичні етикетки поза видимим `<text>`, все ще можуть задовольнити перевірку токенів тексту без необхідності OCR. Етап геометрії тепер є геометрією, чутливою до трансформацій, для поширених атрибутів груп та елементів `transform`, тож перевіряються перекладені, масштабовані, обернені, викривлені або матрично-трансформовані SVG прямокутники після складання трансформацій. Він охоплює точні межі дуг для крайніх точок дуги A/a, точні межі кривих Bezier для крайніх точок кривих C/S/Q/T, межі SVG, чутливі до товщини лінії, та перевірки перекриття етикеток, геометрію малюнку `polyline` / `polygon`, а також вирішує розміщення гліфів лише з шляху з посилань `<use href="#...">`, тож етикетки, перетворені на повторно використовувані гліфні шляхи, все ще можуть провалитися у перевірках обмеженої площадки, якщо геометрія розміщеного гліфа виходить за межі `viewBox`. Кілька розташованих `tspan` етикеток під одним батьківським елементом `<text>` порівнюються як окремі коробки етикеток, що дозволяє виявити вихід у стилі LaTeX SVG, який інакше об’єднав би різні етикетки в один текстовий вузол. Розташовані `text` та `tspan` прямокутники дотримуються значень `text-anchor` `start`, `middle` та `end`, тож центровані та вирівняні праворуч етикетки можуть спричинити діагностику перекриття тексту/етикеток та малюнка без необхідності використання розташування тексту рівня браузера. Гліфні шляхи, що є лише визначеннями, всередині `<defs>`, не враховуються як видимі елементи малюнка, але їхні власні локальні атрибути `transform` застосовуються перед `<use>` розміщенням, тож масштабовані або віддзеркалені визначення гліфів не підраховуються недостатньо. Перевірка етикеток та малюнка використовує невелику толерантність до коробки малюнка та оголошені `stroke-width`, тож тонкі дроти, товсті дроти та контури полігональних компонентів можуть вважатися потенційними причинами поганої читабельності етикеток, коли їхня видима лінія досягає етикетки. Гліфні етикетки, що є лише з шляху та вирішені з `<use href="#...">`, також порівнюються з коробками малюнка та провалюються з `render-svg-path-glyph-overlap`, якщо повторно використовувана геометрія гліфів перекриває дроти або компоненти. Якщо рендерер перетворює етикетки на повторно використовувані гліфні шляхи замість пошукових `<text>` та не зберігає метадані доступності, звіт про дим записує `pathOnlyGlyphUseCount` та провалює запитаний токен тексту через `render-svg-text-path-only` замість того, щоб вдавати, ніби етикетка просто відсутня. Інші помилки повідомляються через `render-svg-invalid`, `render-svg-dimension-missing`, `render-svg-no-visible-elements`, `render-svg-text-missing`, `render-svg-out-of-bounds`, `render-svg-text-overlap`, `render-svg-label-overlap` або `render-svg-path-glyph-overlap`. Перевірки токенів тексту та перекриття слід розглядати лише як структурні перевірки для рендерерів, які зберігають етикетки як пошуковий SVG текст або метадані доступності; вихід лише з шляху SVG все ще потребує пізнішого етапу скріншоту/OCR для доведення читабельності візуальних етикеток, і ця перевірка диму все ще не стверджує повного SVG покриття шляхів. + +Приховані групи та елементи SVG послідовно пропускаються під час підрахунку видимих елементів та збору геометрії. Атрибути або стиль внутрішнього тексту `display:none`, `visibility:hidden`, `visibility:collapse` та загальний `opacity:0` не можуть зробити інакше порожній об’єкт рендерингу придатним для перевірки видимого вихіду диму. + +Визначення гліфів лише з шляху можуть бути прямими шляхами або контейнерами груп/символів всередині `<defs>`. Перевірка диму вирішує геометрію дочірніх шляхів з `<g id="...">` та `<symbol id="...">` перед розміщенням `<use>`, тож вихід у форматі обгортки гліфів все одно надходить до `pathOnlyGlyphUseCount`, перевірок обмеженої площадки та `render-svg-path-glyph-overlap`. + +Парсер шляху також відстежує початки підшляхів та скидає поточну точку на `Z/z`, тож відносні команди після закритого підшляху продовжуються з правильною SVG точкою замість створення хибних діагнозів `render-svg-out-of-bounds`. + +Той самий процес обробки геометрії дотримується SVG правил форматування десяткових чисел із крапкою та явними знаками „+“, тому компактні координати dvisvgm, такі як `.5`, `-.5` чи `+.5`, залишаються дробовими під час перевірки меж, замість того щоб стати недійсною геометрією поза межами або бути проігнорованими. + +Якщо рендерер виводить `.png`, той самий шлях очікуваного результату стає першим скріншотом для перевірки: Notemd декодує PNG-файли з індексованим кольором 1/2/4/8 біт без інтерлейсу, PNG-файли у сірому кольорі 1/2/4/8/16 біт, а також PNG-файли у сірому кольорі з альфа-каналом 8/16 біт, RGB чи RGBA. Зображення з індексованим кольором та підбайтовим сірим кольором підтримують стиснуті зразки; зображення з індексованим кольором також підтримують дані PLTE та необов’язкові дані tRNS; зображення у сірому кольорі/RGB підтримують прозорі зразки tRNS. 16-бітні прямі зразки нормалізуються до того ж простору порівняння 8-бітного RGBA, що використовується під час перевірок. Перевірка перевіряє позитивні розміри, записує межі фону як `foregroundBounds`, записує щільність фону всередині цієї області як `foregroundDensity`, призводить до помилки `render-png-blank`, коли кожен видимий піксель збігається з кольором верхнього лівого фону, призводить до помилки `render-png-content-clipped`, коли контент фону торкається меж зображення, призводить до помилки `render-png-foreground-too-small`, коли великий скріншот має менше чотирьох пікселів фону, і призводить до помилки `render-png-foreground-dense`, коли пікселі фону надто щільні всередині непростої області меж. Не підтримувані формати PNG призводять до помилки `render-png-unsupported` та надають інструкції щодо конкретних форматів для інтерлейсованих PNG Adam7 чи не підтримуваних глибин кольору з індексуванням. Це дозволяє виявити порожні скріншоти, очевидне обрізання полотна, недостатню обробку контенту фону, перші помилки через перенаселення на рівні пікселів та неправильні налаштування експорту PNG рендерером, без необхідності використання залежностей від конкретної платформи. Це ще не розпізнавання міток на рівні OCR, точне виявлення перекриття тексту чи відновлення зображень із збереженням топології. + +Коли діагностика показує невдалий процес компіляції або рендер-перевірки, CLI також може створювати короткий опис відновлення зі збереженням топології: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +Цей опис використовує схему `notemd.circuitikz.repair-brief.v1` та містить джерело `CircuitSpec`, підпис топології, діагностику компіляції/рендерингу, дозволені зміни, заборонені зміни топології, наступні кроки перевірки та структурований `repairPrompt`. Роль запиту — `topology-preserving-circuitikz-repair`; його `diagnosticFocus` список формується на основі діагностики компіляції/рендерингу, а його `acceptanceCriteria` вимагають перевірки кандидата та нових перевірок компіляції та рендер-перевірки. Це формат передачі для подальшого циклу відновлення, а не твердження про те, що Notemd вже виконує автономне візуальне відновлення. + +Після створення кандидата на відновлення той самий CLI може перевірити його за описом перед тим, як записати результат: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief` перевіряє підпис топології кандидата з опису, і це є взаємовиключним з `--topology-reference`. Пройшовши цю перевірку, підтверджується лише збереження топології; кандидат все ще потребує діагностики компіляції та перевірок рендер-перевірки. + +Результат `--repair-brief` також містить докази `repairAcceptance` у форматі схеми `notemd.circuitikz.repair-acceptance.v1`. Він повідомляє про проходження/непроходження гейтів `topology-signature`, `compile-diagnostics` та `render-smoke` як `passed`, `failed` чи `missing`; відображає `remainingChecks`; і залишає `readyForVisualAcceptance` як неправильний, доки кандидат не міститиме всі необхідні докази. + +Використовуйте `--repair-acceptance-output` разом з `--repair-brief`, коли для доказів у CI чи релізі потрібен стабільний файл JSON: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +Для доказів релізу чи адміністратора виконайте кожну підтримувану „золоту“ сім’ю через збірник тестів: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Цей збірник використовує `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json` та `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json`, викликає той самий без-шель-експортер для кожного тесту та повертає збірний звіт JSON із даними `compileExecution` та `compileDiagnostics` для кожного тесту. Це все ще команда адміністратора, а не залежність під час виконання плагінів. + +Якщо на машині адміністратора ще немає налаштованого рендерера, виконайте ту саму команду тесту без `--compile-executable` та чітко збережіть статус середовища: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +Цей шлях все одно записує детерміновані артефакти тесту `.tex`, але повертає `ok: false` із `rendererAvailability.status` встановленим у значення `missing-configuration` та діагнозом `compile-executable-invalid`. Вважайте це лише доказом наявності рендерера; це не є доказом компіляції, рендер-перевірки чи візуального прийняття. + +### Форма золотого референтного запиту + +Для найближчого використання надавайте готовий до рендерингу золотий референт перед тим, як просити варіант схеми. Обмежений запит має зберігати вступ, масштаб координат, стиль кріплення та правила маршрутизації: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +Для інвертора CMOS запит має вимагати чітко вказаної топології та обмежень розташування, а не просто „намалюй інвертор CMOS“: + +- залиште `VDD` зверху, `GND` знизу, вхід зліва, вихід справа; +- Використовуйте `pmos` над `nmos` з спільними гейтами та спільними дренажами; +- Збережіть вихідний вузол біля з’єднання дренажу та позначте його `*-o`; +- Використовуйте іменовані анкери (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) замість координат, визначених візуально; +- Уникайте діагональних чи перетинаючихся дротів, якщо це не є електрично необхідним. + +### Текущий прогрес та наступні етапи + +| Площа | Текущий статус | Наступний крок | +|------|----------------|-----------| +| Загальні діаграми | Реалізовано конвеєр з орієнтацією на специфікації для Mermaid, JSON Canvas, Vega-Lite, HTML | Продовжувати розширювати охоплення семантичної перевірки | +| Редаговані фігури | Реалізовано межі артефактів `editable-html-svg`, Draw.io XML та Drawnix JSON | Додавати більш складні примітиви лише після того, як тести підтвердять можливість редагування | +| Підтримка CLI | `npm run diagram:export-artifact` експортує редаговані HTML/SVG, Draw.io та Drawnix з одного `DiagramSpec` | Додати спеціалізовані пристрої для димування для конкретних цілей під час відправки нових цілей | +| circuitikz | `CircuitSpec -> circuitikz` прототип експортує шаблони common-source, інвертор CMOS, `cmos-buffer` / `cmos-buffer-v1`, `cmos-transmission-gate` / `cmos-transmission-gate-v1`, `cmos-nand2` / `cmos-nand2-v1` та `cmos-nor2` / `cmos-nor2-v1` золоті шаблони, проекти `layoutHints.inputSide` та `layoutHints.outputSide` у визначене розташування вхідних/вихідних портів без зміни топології, відхиляє зміни топології під час ремонту через `--topology-reference`, генерує інструкції з ремонтом зі збереженням топології через `--repair-brief-output` та схему `notemd.circuitikz.repair-brief.v1`, містить структурований контент передачі `repairPrompt` разом із `diagnosticFocus`, `acceptanceCriteria` та роллю `topology-preserving-circuitikz-repair`, перевіряє кандидати на ремонт через `--repair-brief`, повертає докази проходження `repairAcceptance` через схему `notemd.circuitikz.repair-acceptance.v1` разом із `readyForVisualAcceptance` та `remainingChecks`, зберігає ці докази через `--repair-acceptance-output`, аналізує журнали компіляції, може запускати явні локальні рендерери та `--expected-artifact`, SVG `--expected-svg-text`, перевірки метаданих доступності через `aria-label`, `<title>` та `<desc>`, виключення прихованих/прозорих елементів SVG, класифікація `render-svg-text-path-only` / `pathOnlyGlyphUseCount` для міток лише з шляхом, перевірки розташування гліфів лише з шляхом для `<use href="#...">`, діагностика перекриття гліфів лише з шляхом через `render-svg-path-glyph-overlap`, обробка точки струму для закритих шляхів для `Z/z`, точні межі дуги для крайніх точок дуги A/a, точні межі кривої Безьє для крайніх точок кривих C/S/Q/T, перевірки меж та перекриття міток з урахуванням товщини ліній SVG, перевірки геометрії малювання `polyline` / `polygon`, геометрія розташованих міток `tspan`, геометрія тексту з урахуванням `text-anchor`, геометрія з урахуванням трансформацій для SVG bounded-canvas/text-overlap та димування міток проти малюнку через `render-svg-label-overlap`, а також перевірки скріншотів PNG без порожніх ділянок/обрізаних/щільних фонів, включаючи альфа-канал індексованої палітри кольорів, прозорі зразки у сірому/RGB форматах tRNS та специфічні для формату рекомендації `render-png-unsupported` щодо інтерлейсованих PNG Adam7 та проблем з індексованою глибиною бітів, через `foregroundBounds`, `foregroundDensity`, `render-png-content-clipped` та `render-png-foreground-dense` без аналізу шеллу, містить агреговані пристрої для димування від адміністраторів через `npm run diagram:smoke-circuitikz`, фіксує відсутню конфігурацію рендерера через `rendererAvailability.status: "missing-configuration"` та `compile-executable-invalid`, а також має загальні діагностики перегляду, підрахунок підсумків діагностик, записи історії з урахуванням діагностик та резервний варіант лише з кодом через `RenderArtifact.diagnostics` та модальне вікно перегляду | Додати розпізнавання міток на рівні OCR для візуального тексту лише з шляхом, точні перевірки перекриття на рівні пікселів, більш широке покриття SVG шляхів за потреби, автоматична установка/виявлення рендерера лише тоді, коли це може залишатися необов’язковим, та автоматизоване виконання ремонту зі збереженням топології | +| Інтеграція TikZJax | Кандидат на хост для рендерингу для відображення з боку Obsidian | Залишити це необов’язковим; не робити TikZJax обов’язковою залежністю під час виконання плагіну | + +## Конфігурація + +| Налаштування | За замовчуванням | Ефект | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | Переключатися між підходом, орієнтованим на специфікацію, та старим підходом Mermaid | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = Mermaid лише; `'best-fit'` = нативні цілі + резерви | +| `preferredDiagramIntent` | `undefined` (автоматично) | Перевизначити автоматичне виявлення наміру | +| `summarizeToMermaidLanguage` | `'en'` | Мова цілі для міток діаграми | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | LLM на кожному завданні для генерації діаграми | +| `autoMermaidFixAfterGenerate` | (з констант) | Автоматично запустити старий фіксер на вихідних даних Mermaid | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | Доповнити код локальними знаннями сховища | + +### Посилення локальних знань + +Коли це увімкнено, Notemd отримує відповідні фрагменти контексту з локальної бази знань вашого сховища (за технологією MiniSearch) та додає їх у початок вихідного markdown. У інструкції до покращення зазначено: "лише допоміжна посилання; зберігайте первинну структуру вірною до вихідної записки." + +### Режими сумісності + +- **`legacy-mermaid`**: Усі інтенти направляються до Mermaid. Інтенти, що не є Mermaid (canvasMap, dataChart), примушуються використовувати `flowchart` або `mindmap`. Немає ланцюга резервних рішень. +- **`best-fit`**: Кожен інтент направляється до свого власного цільового об’єкта. Якщо основний спосіб зазнає невдачі, використовується ланцюг резервних рішень (наприклад, Vega-Lite → Mermaid → HTML). + +## Попередній перегляд та експорт + +| Дія | Метод | +|--------|--------| +| SVG export | Будівельник `mermaid.render()` / `vega.View.toSVG()` / SVG для Canvas | +| Експорт у форматі PNG | SVG → Image → Canvas (співвідношення пікселів пристрою 1x-3x) → PNG ArrayBuffer | +| Збереження вихідного коду | Контент сирого артефакту зберігається з розширенням, характерним для цільової системи | +| Попередній перегляд лише вихідного коду | Нелінійні артефакти з вмістом вихідного коду відображаються у вигляді коду разом із діагностикою, без відтворення iframe | +| Семантичний аудит | Mermaid, JSON Canvas, Vega-Lite та редагований HTML/SVG перевірений `scripts/diagram-semantic-verification.js` | + +**Кешування**: RenderCache використовує детермінований ключ JSON від `{spec, target, theme}`. Видалення дублікатів під час обробки запобігає багаторазовому генеруванню. + +## Поради + +- **Почніть з режиму `best-fit`** — він забезпечує найкращий візуальний результат для кожного типу завдання +- **Використовуйте потужні моделі для складних діаграм** — діаграми потоків та ER-діаграми отримують користь від GPT-4o або Claude +- **Увімкніть локальні знання** для діаграм специфічних доменів — відповідний контекст сховища покращує точність +- **Встановіть `autoMermaidFixAfterGenerate`** — без нього часто трапляються синтаксичні помилки Mermaid +- **Легасі-фіксер є всебічним** — якщо попередній перегляд Mermaid не працює, виконання команди фіксера вручну часто допомагає вирішити проблему + +--- + +## Наступні кроки + +- 🔗 [Wiki-Links](./wiki-links) — Як концепції підключаються безпосередньо в текст +- 📝 [Concept Notes](./concept-notes) — Вилучення концепцій для матеріалів джерела діаграм +- 🔍 [Research](./research) — Доповнення діаграм даними з Інтернету diff --git a/website/i18n/uk/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/uk/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..6074845d --- /dev/null +++ b/website/i18n/uk/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "Дослідження та пошук в Інтернеті" +description: "Інтегруйте пошук в Інтернеті у ваші нотатки" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Дослідження та пошук в Інтернеті + +<TLDR> +**Notemd шукає в мережі та вставляє LLM-узагальнені результати безпосередньо у ваші нотатки.** Tavily API є основним двигуном пошуку; DuckDuckGo слугує резервним варіантом без налаштувань. Результати узагальнюються з посиланнями на джерела та додаються під заголовком `## Research`. Підтримується дослідження в одній нотатці, дослідження всіх нотаток у папці та вибір моделі для кроку узагальнення за завданням. + +Це частина [Obsidian Посібника з управління знаннями в ШІ](/docs/pillar-ai-knowledge). +</TLDR> + +## Огляд + +Дослідження є однією з найпотужніших інтеграцій Notemd: вона створює замкнутий цикл між читанням, пошуком та записом. Замість того, щоб переходити у браузер для пошуку невідомого терміна, ви виділяєте його та дозволяєте Notemd шукати, узагальнювати та додавати результати — все це прямо у вашому сховищі. + +Процес повністю налаштовується. Ви обираєте постачальника пошуку, LLM, який пише узагальнення, та вирішуєте, чи додавати результати до активної нотатки чи записувати їх у окремі файли. Режим пакетних операцій дозволяє дослідити кожну нотатку у папці одним кліком. + +## Як це працює + +### Пайплайн «Пошук, потім узагальнення», + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **Вилучення запиту** -- Notemd вилучає терміни пошуку з вашого вибору або з назви нотатки. +2. **Пошук в Інтернеті** -- Спочатку намагається використати Tavily. Якщо не налаштовано ключ API, автоматично використовується DuckDuckGo (ключ не потрібен). +3. **Узагальнення за допомогою LLM** -- Сирі результати пошуку надсилаються до налаштованого LLM, який створює стисле узагальнення з посиланнями на джерела. +4. **Додавання** -- Форматоване узагальнення додається під заголовком `## Research` у активну нотатку. + +### Tavily проти DuckDuckGo + +| Аспект | Tavily | DuckDuckGo | +|--------|--------|------------| +| Ключ API | Обов’язково (є безкоштовний тариф) | Не обов’язково | +| Якість результату | Вища (спеціально створена для ШІ) | Достатня для звичайних запитів | +| Обмеження швидкості | Щедрий безкоштовний тариф | Підлягає обмеженню швидкості | +| Конфігурація | `tavilyApiKey` у налаштуваннях | Нульова конфігурація – автоматичний перехід | + +### Дослідження папки пакетами + +Клацніть правою кнопкою миші на папці та виберіть **"Notemd: Папка досліджень"**. Кожен файл `.md` у папці обробляється послідовно (або паралельно до налаштованої кількості одночасних операцій). Кожна нотатка отримує власний підсумок дослідження. + +## Конфігурація + +| Налаштування | За замовчуванням | Ефект | +|---------|---------|--------| +| `tavilyApiKey` | `''` | Ключ Tavily API. Якщо він порожній, використовується виключно DuckDuckGo. | +| `researchProvider` / `researchModel` | DeepSeek | LLM на завдання для підсумовування результатів пошуку | +| `maxResearchContentTokens` | `4000` | Бюджет токенів для контенту, надісланого до LLM. Надлишок обрізається. | +| `researchAppendToNote` | `true` | Додати підсумок до вихідної нотатки. Якщо значення false, створюється окремий файл. | +| `researchLanguage` | `'en'` | Мова виводу для підсумкового дослідження | + +### Рекомендація моделі на завдання + +Дослідження отримують користь від моделі, яка обробляє багатомовний контент та створює добре структурований текст. Розгляньте: + +- **DeepSeek** -- стандартний варіант, доступний за ціною, висока якість +- **GPT-4o** -- краща якість підсумовування, вища вартість +- **Gemini Flash** -- швидкий та недорогий, підходить для простих запитів + +## Приклад + +Ви читаєте статтю про *механізми уваги transformer* та натрапляєте на незнайомий термін: *relative positional encoding*. Замість того, щоб залишити Obsidian: + +1. Підкресліть **"relative positional encoding"** +2. Клацніть правою кнопкою --> **"Notemd: Дослідження та підсумування"** +3. Notemd шукає в Інтернеті, підсумовує найкращі результати та додає: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +Тепер підсумок є частиною вашого архіву, його можна шукати, створювати посилання та отримувати офлайн. + +## Поради + +- **Встановіть ключ Tavily для кращих результатів** -- навіть безкоштовний тариф забезпечує кращу релевантність, ніж просто DuckDuckGo. +- **Використовуйте потужну модель підсумовування** -- дешеві моделі можуть спрощувати тонкий технічний контент. +- **Проводьте пакетне дослідження** після першого ознайомлення, щоб одночасно заповнити прогалини в багатьох нотатках. +- **Перегляньте додані підсумки** -- LLM може вигадувати деталі джерел. Перевіряйте ключові твердження. + +--- + +## Наступні кроки + +- [Concept Notes](./concept-notes) -- Витягуйте та зберігайте ключові терміни з результатів досліджень +- [Wiki-Links](./wiki-links) -- Підключайте концепції, отримані в результаті досліджень, у ваш архів +- [Translation](./translation) -- Перекладайте підсумки досліджень на іншу мову +- [LLM Постачальники](/docs/providers/overview) -- Налаштувати модель, яка використовується для стиснення diff --git a/website/i18n/uk/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/uk/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..5ec9a7a1 --- /dev/null +++ b/website/i18n/uk/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "Переклад" +description: "Перекладати нотатки та вибрані фрагменти" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# Переклад + +<TLDR> +**Notemd перекладає текст між 21+ мовами за допомогою технологій LLM.** Підтримується переклад окремих вибраних фрагментів, переклад усіх нотаток та пакетний переклад папок. Кожен завдання перекладу може використовувати окремого постачальника та модель через налаштування для конкретного завдання. Мова вихідного тексту може бути налаштована окремо від мови UI. Результати додаються під оригіналом або зберігаються у новому файлі залежно від ваших уподобань. + +Це частина [Obsidian Посібника з управління знаннями в ШІ](/docs/pillar-ai-knowledge). +</TLDR> + +## Огляд + +Переклад у Notemd — це не просто пошук у словнику, а переклад з використанням технологій LLM та розуміння контексту. Модель бачить повний абзац чи нотатку, зберігаючи тон, специфічну термінологію та структуру речень. Це забезпечує кращу якість результатів, ніж послуги перекладу фраз за фразою, особливо для технічних, академічних та творчих текстів. + +Ця функція підтримує три рівні обробки: вибрані фрагменти, активна нотатка та вся папка. У поєднанні з можливістю вибору моделі для кожного завдання ви можете використовувати швидку модель (Gemini Flash) для неформальних перекладів та потужну модель (Claude Sonnet) для контенту, що вимагає точного розуміння нюансів — без зміни глобального постачальника. + +## Як це працює + +### Команда Translate + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **Виявлення джерела** — LLM визначає мову джерела з контенту. Вам не потрібно вказувати її вручну. +2. **Складання запиту** — Notemd створює запит, який включає мову перекладу, необов’язкові підказки щодо сфери та текст для перекладу. +3. **Переклад LLM** — налаштовані `translateProvider` / `translateModel` обробляють запит. Модель зберігає форматування в markdown, посилання wiki та блоки коду. +4. **Вихідний результат** — перекладений текст додається під оригіналом або зберігається у новому файлі в сховищі. + +### Пари мов + +Notemd підтримує будь-які пари мов, які підтримується основна технологія LLM. Поширені пари включають: + +| Джерело | Ціль | Типова якість | +|--------|--------|----------------| +| Англійська | Китайська (спрощена) | Відмінна | +| Китайська | Англійська | Відмінно | +| Англійська | Японська | Дуже добре | +| Англійська | Німецька / Французька / Іспанська | Дуже добре | +| Будь-яка підтримувана | Будь-яка підтримувана | Залежить від моделі | + +Налаштування `translateLanguage` керує **мовою виводу**. Мова вихідного тексту визначається автоматично. + +### Вибір моделі для кожного завдання + +Якість перекладу сильно залежить від моделі. Notemd дозволяє призначити окрему модель лише для перекладу: + +| Модель | Швидкість | Якість | Вартість | Для чого підходить | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | Швидкий | Гарний | Низький | Для неформального використання з великою кількістю даних | +| `gpt-4o-mini` | Швидкий | Гарний | Низький | Швидкі пошуки | +| `deepseek-chat` | Середній | Гарний | Дуже низький | Бюджетний багатомовний | +| `claude-3-5-sonnet` | Середній | Відмінний | Середній | Технічний / академічний | +| `gpt-4o` | Середній | Відмінний | Середній | Проза, чутлива до нюансів | + +### Переклад папки пакетом + +Клацніть правою кнопкою миші на папці та виберіть **"Notemd: Translate folder"**, щоб перекласти всі нотатки в цій папці. Кожен файл обробляється окремо. Налаштування паралельності контролює кількість файлів, які перекладаються одночасно. + +## Конфігурація + +| Налаштування | За замовчуванням | Ефект | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | Спеціалізований провайдер для завдань перекладу | +| `translateLanguage` | `'en'` | Мова цільового виводу | +| `translationAppendToNote` | `true` | Додайте перекладений текст під оригінал. Якщо значення false, створюється новий файл. | +| `batchConcurrency` | `3` | Кількість файлів, які обробляються паралельно під час пакетного перекладу | + +## Приклад + +Ви читаєте китайську наукову нотатку та хочете її англійську версію: + +1. Відкрийте нотатку +2. Клацніть правою кнопкою миші --> **"Notemd: Translate current file"** +3. Notemd виявляє китайську мову, перекладає її на налаштовану мета-мову (англійську) та додає: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +Оригінальний китайський текст залишається недоторканим над перекладом. Заголовок `## Translation` зберігає обидві версії в одному файлі для зручного пошуку. + +## Поради + +- **Використовуйте Gemini Flash для великих обсягів** -- це найшвидший та найдешевший варіант для пакетного перекладу великих папок. +- **Зберегти посилання у вікі** -- інструкція Notemd змушує LLM залишати `[[wiki-links]]` недоторканим під час перекладу. Перевірте після перекладу, адже деякі моделі іноді їх розпаковують. +- **Явно встановити мову виводу** -- автоматичне виявлення працює для вихідного тексту, але завжди налаштовуйте `translateLanguage`, щоб уникнути неоднозначностей щодо цільової мови. +- **Пакетний переклад концептуальних нотаток** -- якщо ваша папка з концепціями написана однією мовою, а вам потрібна інша, переклад на рівні папки вирішує це за один крок. + +--- + +## Наступні кроки + +- [Дослідження](./research) -- Шукайте та узагальнюйте інформацію будь-якою мовою, а потім перекладіть результати +- [Робочі процеси](./workflows) -- Послідовний переклад з посиланнями у вікі або видобутком концепцій +- [Пакетна обробка](/docs/advanced/batch-processing) -- Конкурентність та поведінка перезапису під час операцій з папками +- [LLM Постачальники](/docs/providers/overview) -- Виберіть найкращу модель для вашої пари мов diff --git a/website/i18n/uk/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/uk/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..b0255604 --- /dev/null +++ b/website/i18n/uk/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "Wiki-Лінки" +description: "Автоматичне створення wiki-лінків для ключових концепцій" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# Wiki-Лінки + +<TLDR> +**Notemd автоматично додає `[[wiki-links]]` до ключових концепцій у ваших нотатах.** LLM читає ваш контент, визначає важливі терміни в контексті та вставляє wiki-лінки у стилі Obsidian при кожному зустрічанні. За потреби створюються файли концепт-нотаток із зворотними посиланнями. Підтримується придушення синонімів, збереження цілісності посилань під час перейменування/видалення та режим чистого витягування (без змін файлів). На відміну від Auto Link, який відповідає лише існуючим назвам нотаток, Notemd використовує ШІ для виявлення нових концепцій та створення відповідних нотаток. Це є частиною [Obsidian Посібника з управління знаннями за допомогою ШІ](/docs/pillar-ai-knowledge). +</TLDR> + +## Огляд + +Створення wiki-лінків — це основна функція Notemd. Вона перетворює звичайний текст на взаємопов’язану графіку знань шляхом: + +1. **Аналізу вашої нотатки** за допомогою LLM +2. **Визначення ключових концепцій** (терміни, люди, методи, теорії) +3. **Вставки `[[wiki-links]]`** при кожному зустрічанні +4. **Створення концепт-нотаток** (за потреби) із зворотними посиланнями + +## Як це працює + +### Процес + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### Приклад + +**До:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**Після:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## Використання + +### Базовий: Додати лінки до поточної нотатки + +1. Відкрити примітку +2. Клацніть правою кнопкою миші в редакторі → **"Обробити файл (додати лінки)"** +3. Чекайте кілька секунд +4. Концепції тепер пов’язані! + +### Пакетна обробка: обробка кількох нотаток + +1. Клацніть правою кнопкою миші на папці в File Explorer +2. Виберіть **"Notemd: Обробка папки (додати посилання)"** +3. Налаштування: + - Конкурентність (скільки файлів одночасно) + - Перезаписати існуючі посилання (так/ні) +4. Натисніть **Обробити** + +### Вибірково: посилання на конкретний текст + +1. Підкресліть текст для обробки +2. Клацніть правою кнопкою миші → **"Обробити вибране (додати посилання)"** +3. Аналізується лише підкреслена частина + +## Notemd проти Автоматичного посилання + +Obsidian має два підходи до автоматичного створення wiki-посилань: + +| | **Автоматичне посилання** | **Notemd** | +|--|---------------|-------------| +| Джерело посилання | Існуючі назви нотаток у сховищі | Концепції, ідентифіковані LLM у контенті | +| Можливість створення посилань на нові концепції | Ні — заголовок має вже існувати | Так — ШІ ідентифікує концепції та створює нотатки | +| Обробка синонімів | Ні | Так — придушення синонімів | +| Створення нотатки про концепцію | Ні | Так — з позначками посилань та усуненням дублікатів | +| Пакетна обробка | Ні (один файл) | Так (на рівні папки) | +| Маршрутизація моделі за завданням | Ні | Так | + +**Auto Link** здійснює пошук за заголовком: якщо існує нотатка під назвою "Machine Learning", вона обгортає вхідні значення у `[[Machine Learning]]`. Якщо нотатки немає, нічого не відбувається. + +**Notemd** працює за допомогою ШІ: LLM читає ваш контент, розуміє контекст, ідентифікує концепції, які *слід* посилатися — навіть якщо нотатки ще немає — та створює як посилання, так і нотатку про концепцію. + +## Функції + +### Придушення синонімів + +**Проблема:** "transformer", "transformers", "Transformer architecture" → 3 окремі концепції + +**Рішення:** Notemd виявляє майже однакові записи та використовує канонічну форму. + +**Конфігурація:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### Цілісність посилань + +**Під час перейменування концепт-ноти:** +- Усі вікі-посилання автоматично оновлюються (Obsidian основна функція) +- Зворотні посилання залишаються недоторканими + +**Під час видалення концепт-ноти:** +- Посилання залишаються, але відображаються як "непосилані згадки" +- Ви можете створити її знову з будь-якої появи + +### Режим чистого вилучення + +**Вилучати концепти без змін оригіналу:** + +1. Клацніть правою кнопкою → **"Вилучити концепти (без посилань)"** +2. Створюються концепт-ноти +3. Оригінальний файл залишається недоторканим + +Сценарій використання: обробка тільки для читання контенту або кінцевих версій. + +## Створення концепт-ноти + +### Автоматичне створення + +**Коли увімкнено (за замовчуванням), Notemd створює:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### Конфігурація + +**Каталог вихідних даних:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Ієрархічна структура:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**Шаблон:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## Розширені параметри + +### Вікно контексту + +**Скільки оточуючого тексту надсилати:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +Чим більше – тим краща точність, але вища вартість. + +### Мінімальна кількість входжень + +**Підключати лише ті поняття, які з’являються кілька разів:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +Встановіть 2 або 3, щоб зосередитися на повторюваних темах. + +### Виключення шаблонів + +**Пропустити певні слова:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +Це запобігає надмірному підключенню до загальних термінів. + +### Кастомні запити + +**Перевизначити стандартні інструкції LLM:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +Змініть їх для потреб конкретної галузі (наприклад, "Зосередитися на медичній термінології"). + +## Поради та найкращі практики + +### ✅ РОБИТИ + +- **Обробляйте нотатки довжиною понад 100 слів** — Короткі нотатки містять мало концепцій +- **Використовуйте потужні моделі** для кращого визначення концепцій (GPT-4o, Claude) +- **Перевіряйте перед прийняттям** — Переконайтеся, що пропоновані посилання мають сенс +- **Створюйте ітеративно** — Обробляйте 5-10 нотаток, перегляньте граф, скоригуйте налаштування + +### ❌ НЕ РОБИТИ + +- **Надмірне посилання** — Не кожному іменнику потрібне посилання +- **Повторна обробка чернеток** — Концепції можуть змінюватися, чекайте, поки вони стабілізуються +- **Ігнорування синонімів** — Увімкніть придушення, щоб уникнути різниці між "ML" та "Machine Learning" + +## Продуктивність + +### Швидкість + +| Розмір нотатки | GPT-4o-mini | Claude Sonnet | Ollama (локально) | +|-----------|-------------|---------------|----------------| +| 500 слів | 2-3 секунди | 3-5 секунд | 5-10 секунд | +| 2000 слів | 5-8 секунд | 10-15 секунд | 20-40 секунд | +| 5000+ слів | Частково (кілька викликів) | Чанкований | Чанкований | + +### Оцінка вартості + +**Приклад: 1000-слівний запис з GPT-4o-mini** +- Вхід: ~1500 токенів +- Вихід: ~200 токенів +- Вартість: ~ + +**Пакетна обробка 100 нотаток:** ~ + +## Усунення несправностей + +### Жодних посилань не додано + +**Перевірка:** +1. LLM виклик вдалося (Налаштування → Діагностика) +2. У примітці достатньо контенту (>50 слів) +3. Концепції є технічними/специфічними (а не просто займенниками) + +**Спробуйте:** +- Використати потужніший модель +- Збільшити вікно контексту +- Перевірити дійсність ключа API + +### Занадто багато посилань + +**Рішення:** +1. Збільшити мінімальну кількість входжень (2 або 3) +2. Додати поширені слова до списку виключень +3. Використовуйте менш агресивну модель + +### Неправильні концепції пов’язані + +**Виправлення:** +1. Використовуйте власний запит для специфіки домену +2. Увімкніть придушення синонімів +3. Перегляньте вручну та роз’єднайте + +### Лінки руйнуються після перейменування + +**Це є нормальною Obsidian поведінкою.** + +Щоб оновити всі лінки: +1. Перейменуйте концепт-ноту +2. Obsidian автоматично оновлює `[[old]]` → `[[new]]` + +--- + +## Наступні кроки + +- 📖 [Concept Notes](./concept-notes) — Детальний огляд створення концепт-нот +- 🔍 [Research Integration](./research) — Об’єднання посилань з веб-дослідженнями +- 🎨 [Diagrams](./diagrams) — Візуалізація вашої графи знань diff --git a/website/i18n/uk/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/uk/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..683ddaaa --- /dev/null +++ b/website/i18n/uk/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "Робочі потоки" +description: "Поєднуйте кілька завдань за допомогою кнопок одним кліком" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Робочі потоки + +<TLDR> +**Notemd робочі потоки об’єднують кілька завдань у одну дію одним кліком.** Визначайте послідовності на кшталт `add-links > extract-concepts > research > diagram` за допомогою простої DSL. Робочі потоки відображаються як кнопки у бічній панелі, які виконують всю послідовність у поточній нотатці або папці. Установка постачається з готовими робочими потоками; можна створювати власні у налаштуваннях. Кожен крок використовує власну конфігурацію моделі для окремого завдання. + +Це частина [Obsidian Посібника з управління знаннями в ШІ](/docs/pillar-ai-knowledge). +</TLDR> + +## Огляд + +Робочий потік усуває необхідність виконання завдань по одному. Замість того, щоб чотири рази клацнути правою кнопкою миші, щоб додати посилання, витягнути концепції, дослідити незнайомі терміни та створити діаграму, достатньо натиснути одну кнопку у бічній панелі, і вся послідовність виконується. Notemd керує послідовністю, поширенням помилок та звітами про прогрес. + +Робочі потоки визначаються за допомогою легкої DSL (мови спеціального призначення). Вони знаходяться у налаштуваннях, відображаються як клікабельні кнопки у бічній панелі Obsidian та можуть застосовуватися як до поточної нотатки, так і до всієї папки. + +## Як це працює + +### Канал виконання робочих потоків + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **Аналіз** -- Рядок DSL розділяється за допомогою `>` (або `>`) на впорядкований список ідентифікаторів завдань. +2. **Вирішення** -- Кожен ідентифікатор відповідає внутрішній команді (add-links, extract-concepts, research, translate, diagram тощо.). +3. **Виконання** -- Кроки виконуються послідовно. Кожен крок використовує налаштованого постачальника та модель для окремого завдання. +4. **Обробка помилок** -- Якщо якийсь крок зазнає невдачі, робочий потік або припиняється, або продовжується до наступного кроку, залежно від вашої політики обробки помилок. +5. **Завершено** -- Повідомлення у вигляді поп-апа інформує про успіх або перелічує всі невдалі кроки. + +### Формат DSL + +Робочі потоки визначаються як послідовність ідентифікаторів завдань, розділених `>`: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**Доступні ідентифікатори завдань:** + +| Ідентифікатор | Дія | +|------------|--------| +| `process-current-add-links` | Додати посилання на wiki до активної нотатки | +| `extract-concepts-current` | Витягнути концепції з активної нотатки | +| `research-and-summarize` | Дослідити вибраний текст або назву нотатки | +| `process-current-translate` | Перекласти активну нотатку | +| `summarize-to-mermaid` | Створити діаграму з активної нотатки | +| `generate-from-title` | Сгенерувати контент з назви нотатки | +| `extract-original-text` | Витягнути оригінальний текст (для OCR / сканованого контенту) | + +**Варіанти на рівні папки** — замініть `current` на `folder` у назві ідентифікатора. + +### Заздалегідь визначені та користувацькі робочі процеси + +Notemd постачається з готовими робочими процесами для поширених сценаріїв: + +| Робочий процес | Ланцюг | Сценарій використання | +|----------|-------|----------| +| **Одноклікове витягування** | додати-посилання > витягнути-концепції > дослідити | Обробити наукову статтю за один прохід | +| **Повний пайплайн** | додати-посилання > витягнути-концепції > дослідження > діаграма | Повне витягування знань із візуалізацією | +| **Перекласти + Посилання** | перекласти > додати-посилання | Перекласти, а потім посилатися на концепції мовою цілі | + +**Скористані робочі процеси** створюються у налаштуваннях: + +1. Відкрити **Налаштування** --> **Notemd** --> **Робочі процеси** +2. Натиснути **"Додати робочий процес"** +3. Ввести ланцюжок DSL (наприклад, `process-current-add-links>extract-concepts-current`) +4. Дати йому ім’я для відображення (наприклад, "Швидке посилання + Витягування") +5. Нова кнопка з’являється у бічній панелі негайно + +## Конфігурація + +| Налаштування | За замовчуванням | Ефект | +|---------|---------|--------| +| `workflows` | Заздалегідь визначений набір | Масив визначень робочих процесів (ім’я + DSL) | +| `workflowContinueOnError` | `true` | Продовжити до наступного кроку, якщо поточний крок зазнає невдачі | +| `workflowShowProgress` | `true` | Показати повідомлення про прогрес після завершення кожного кроку | + +### Моделі на рівні завдань у робочих процесах + +Кожен крок у робочому процесі використовує власну конфігурацію моделі для окремого завдання. Вам не потрібно вказувати моделі безпосередньо в DSL. Порядок обробки: + +1. Постачальник/модель за завданням, якщо `useMultiModelSettings` увімкнено +2. Глобальний `activeProvider` інакше + +Це означає, що `add-links` може працювати на DeepSeek, тоді як `research` працює на GPT-4o – усе це в межах одного кліку у робочому процесі. + +## Приклад + +Ви щойно імпортували PDF статті з галузі машинного навчання у свій сховище та хочете отримати повне вилучення інформації: + +1. Відкрийте імпортовану нотатку +2. Натисніть кнопку бічної панелі **"Full Pipeline"** +3. Notemd виконує: + - **Крок 1**: Додайте посилання на вікі -- `[[attention mechanism]]`, `[[transformer]]` тощо. + - **Крок 2**: Витягнення концепцій – створює нотатки про концепції у вашій папці з концепціями + - **Крок 3**: Дослідження -- узагальнює веб-джерела за ключовими термінами + - **Крок 4**: Діаграма – створює Mermaid ментальну карту структури статті +4. Через приблизно 30 секунд у вашій записці з’являються посилання, створюються концепт-нотатки, додається дослідження, і зберігається файл з діаграмою + +Усе за один клік. + +## Поради + +- **Почніть з заздалегідь визначених робочих процесів** – вони охоплюють найпоширеніші сценарії. Налаштовуйте їх лише тоді, коли потрібна інша послідовність. +- **Увімкнути `workflowContinueOnError`** – невдалий крок діаграми не повинен зупиняти весь конвеєр обробки. +- **Використовуйте робочі процеси для папок** для масової обробки – клацніть правою кнопкою миші на папці, виберіть робочий процес, і кожна нотатка буде оброблена. +- **Називайте робочі процеси зрозуміло** – простір у бічній панелі обмежений. Використовуйте короткі, орієнтовані на дію назви, такі як "Швидке вилучення" або "Переклад + Посилання". + +--- + +## Наступні кроки + +- [Дослідження](./research) – Зрозумійте, що робить крок дослідження, перш ніж додавати його до робочих процесів +- [Вікі-посилання](./wiki-links) – Основна функція посилань, яка використовується у більшості робочих процесів +- [Нотатки концепцій](./concept-notes) – Вилучення концепцій як крок робочого процесу +- [Масова обробка](/docs/advanced/batch-processing) – Конкурентність та звіти про прогрес для робочих процесів папок diff --git a/website/i18n/uk/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/uk/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..b35d3171 --- /dev/null +++ b/website/i18n/uk/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "Конфігурація" +description: "Налаштувати параметри та налаштування Notemd" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Конфігурація + +<TLDR> +**Налаштування Notemd охоплюють 6 основних сфер:** (1) провайдери LLM та ключі API, (2) вибір моделі для кожного завдання, (3) шляхи та шаблони виведення, (4) мова UI та мова виведення, (5) сервіси пошуку (Tavily/DuckDuckGo), (6) користувацькі робочі процеси. Усі налаштування знаходяться у Obsidian Налаштування → Notemd. Зміни набувають чинності негайно. +</TLDR> + +## Огляд налаштувань + +Доступ: **Obsidian Налаштування (⚙️) → Notemd** + +### Основні розділи + +1. **Налаштування провайдера** — ключі API, базові URLs, моделі +2. **Налаштування завдання** — вибір моделі для кожного завдання +3. **Налаштування виведення** — де зберігати створені файли +4. **Налаштування мови** — UI та мови виведення +5. **Інтеграція пошуку** — налаштування Tavily/DuckDuckGo +6. **Робочі процеси** — користувацькі ланцюжки кнопок +7. **Розширені налаштування** — діагностика, пакетна обробка, чанкінг + +--- + +## 1. Налаштування провайдера + +### Додавання провайдера + +1. **Виберіть провайдера** зі спадного списку (більше 30 доступних) +2. **Введіть ключ API** +3. **Необов’язково**: встановіть власний базовий URL (для проксі/шлюзів) +4. **Натисніть «Отримати список моделей»**, щоб перевірити з’єднання +5. **Виберіть стандартну модель** + +### Поширені постачальники + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Локальний) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### Кілька постачальників + +Ви можете налаштувати кілька постачальників та перемикатися між ними для кожного завдання: +- **Основний постачальник**: використовується як запасний варіант +- **Постачальники, специфічні для завдання**: їх можна перевизначити для конкретних завдань + +--- + +## 2. Моделі, специфічні для завдання + +Налаштуйте різні моделі для різних завдань, щоб оптимізувати витрати/якість: + +### Типи завдань + +| Завдання | Стандартна модель | Мета | +|------|--------------|---------| +| **Пов’язування** | Основний постачальник | Визначення концепцій для посилань у wiki | +| **Генерація концепцій** | Основний постачальник | Витягнути та описати концепції | +| **Дослідження** | Основний постачальник | Узагальнити результати пошуку в Інтернеті | +| **Переклад** | Основний постачальник | Перекласти текст | +| **Генерація діаграм** | Основний постачальник | Створити діаграми Mermaid/Canvas | + +### Приклад: Оптимізована за вартістю конфігурація + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### Як налаштувати + +1. **Налаштування → Notemd → Налаштування завдання** +2. Для кожного завдання виберіть: + - ✅ **Використовувати основний постачальник** (за замовчуванням) + - 🔄 **Використовувати користувацький постачальник** → виберіть постачальника та модель + +--- + +## 3. Налаштування вихідних даних + +### Вихідні нотатки про концепції + +**Де зберігаються нові концепт-нотатки:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Шаблон:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### Варіанти структури папок + +**Варіант 1: Рівний (усі концепти в одній папці)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**Варіант 2: Ієрархічний (за папкою походження)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +Налаштувати: **Настройки → Вихід → Використовувати ієрархічні папки** + +### Вихід у вигляді діаграм + +**Де зберігаються діаграми:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**Формат:** +- `.mmd` (Mermaid джерело) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. Налаштування мови + +### UI Мова + +**Мова інтерфейсу** (кнопки, меню, діалогові вікна): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +Підтримуються: англійська, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Русский, العربية та інші. + +### Мова вихідного файлу + +**Мова генерованого контенту** (концептуальні нотатки, резюме досліджень): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**Сценарій використання:** китайська UI + англійський результат для двомовних досліджень. + +### Мета перекладу + +**Стандартна мова-мета** для завдань перекладу: + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. Інтеграція з пошуком + +### Tavily (рекомендовано) + +**Сервіс пошуку, оптимізований для ШІ:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +Отримати ключ: [tavily.com](https://tavily.com/) + +**Функції:** +- Високоякісні результати +- Резюме, оптимізовані для ШІ +- Цитування джерел + +### DuckDuckGo (експериментально) + +**Ключ API не потрібен:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**Примітка:** нижча якість, без можливостей налаштувань. + +--- + +## 6. Налаштування робочого процесу + +### Створення власних робочих процесів + +**Робочі потоки об’єднують кілька завдань у одну кнопку.** + +1. **Налаштування → Робочі потоки → Додати робочий потік** +2. **Назва**: "Paper Analysis Flow" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **Зберегти** + +Нова кнопка з’являється у лівій панелі бічного меню. + +### Синтаксис DSL + +**Формат:** `action1>action2>action3` + +**Доступні дії:** +- `process-current-add-links` — Додати посилання на wiki до поточної нотатки +- `extract-concepts-current` — Створити концептуальні нотатки +- `research-and-summarize` — Веб-дослідження + узагальнення +- `translate-current` — Перекласти поточну нотатку +- `summarize-as-mermaid` — Створити діаграму Mermaid +- `process-folder-add-links` — Блокова обробка папки + +**Приклади робочих потоків:** + +**Швидке вилучення концепцій:** +``` +process-current-add-links>extract-concepts-current +``` + +**Глибоке дослідження:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**Багатомовний аналіз:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. Розширені налаштування + +### Пакетна обробка + +**Обробка кількох файлів паралельно:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +Чим вище значення, тим швидше, але більше API викликів. + +### Розумне розділення на частини + +**Для довгих нотаток — розділяйте їх на частини:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +Запобігає помилкам через обмеження кількості токенів. + +### Панель діагностики + +**Перегляд детальних журналів:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +Відображає: +- API запитів/відповідей +- Використання токенів +- Часи обробки +- Помилки + +### Виявлення дублікатів концепцій + +**Уникайте майже однакових концепцій:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +Чим вище, тим агресивніше злиття. + +--- + +## Профілі конфігурації + +### Експорт/Імпорт налаштувань + +**Діліться конфігураціями між пристроями:** + +1. **Налаштування → Розширені → Експорт конфігурації** +2. Зберігає `notemd-config.json` +3. На новому пристрої: **Імпорт конфігурації** + +**Що входить до складу:** +- Ключі провайдера API (необов’язково) +- Вибір моделей +- Шляхи виведення +- Персоналізовані робочі процеси + +--- + +## Рекомендовані конфігурації + +### Для студентів + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### Для дослідників + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### Для користувачів, які піклуються про приватність + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### Для багатомовної роботи + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## Усунення проблем з конфігурацією + +### Налаштування не збережено +- Перевірте права доступу до файлу в `.obsidian/plugins/notemd/` +- Спробуйте: вимкнути плагін → увімкнути знову + +### Ключ API недійсний +- Без зайвих пробілів +- Перевірте термін дії +- Перевірте кредити на панелі керування постачальника + +### Моделі не завантажуються +- Натисніть "Отримати список моделей", щоб оновити +- Перевірте з’єднання мережі +- Спробуйте іншого постачальника + +--- + +## Наступні кроки + +- 📖 [Дізнайтеся більше про функції](../features/wiki-links) +- 🔌 [Інструкції з налаштування постачальника](../providers/overview) +- ❓ [FAQ](../faq) diff --git a/website/i18n/uk/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/uk/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..43b32800 --- /dev/null +++ b/website/i18n/uk/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "Встановлення" +description: "Як встановити Notemd у Obsidian" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Встановлення + +<TLDR> +**Встановіть Notemd протягом менше ніж 2 хвилин.** Є два способи: (1) Комунітетні плагіни Obsidian (рекомендується, одним кліком), або (2) Ручна установка через GitHub Releases. Треба Obsidian версія 0.15.0+ або новіша. Працює на Windows, macOS, Linux, iOS та Android. Не потрібні зовнішні залежності. Понад 4k завантажень, ліцензія MIT. +</TLDR> + +## Спосіб 1: Комунітетні плагіни (рекомендується) + +1. Відкрийте **Налаштування Obsidian** (іконка ⚙️ або `Ctrl/Cmd + ,`) +2. Перейдіть до **Комунітетні плагіни** +3. Натисніть **Перегляд** +4. Знайдіть **"Notemd"** +5. Натисніть **Встановити** +6. Натисніть **Увімкнути** + +**Готово!** Ви побачите іконку Notemd у своїй лівій панелі бічних елементів. + +## Спосіб 2: Ручна установка + +### Попередні вимоги +- Obsidian версія 0.15.0 або новіша +- Git (необов’язково, для клонування) + +### Кроки + +1. **Завантажте файли** з [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest): + - `main.js` + - `styles.css` + - `manifest.json` + +2. **Знайдіть папку плагінів вашого сховища:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +Якщо папка `plugins` не існує, створіть її. + +3. **Створіть папку Notemd:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **Копіюйте три файли** у папку `notemd`. + +5. **Перезавантажте Obsidian:** + - Натисніть `Ctrl/Cmd + R`, або + - Перезапустіть Obsidian + +6. **Увімкніть плагін:** + - Настройки → Комунітетні плагіни + - Знайдіть "Notemd" у списку + - Увімкніть його + +## Альтернатива: Встановіть через BRAT + +Якщо ви використовуєте плагін [BRAT](https://github.com/TfTHacker/obsidian42-brat): + +1. Відкрийте настройки BRAT +2. Натисніть «Додати бета-плагін» +3. Введіть: `Jacobinwwey/obsidian-NotEMD` +4. Натисніть «Додати плагін» +5. Увімкніть Notemd у плагінах спільноти + +## Перевірка + +Після встановлення перевірте, чи працює Notemd: + +1. Відкрийте будь-яку нотатку +2. Клацніть правою кнопкою миші в редакторі +3. Ви повинні побачити команди Notemd на кшталт: + - "Обробити файл (додати посилання)" + - "Витягнути концепції" + - "Дослідити та узагальнити" + +## Наступні кроки + +- **Налаштувати провайдера LLM:** [Швидкий старт →](./quick-start) +- **Усунення проблем:** [Поширені проблеми →](../advanced/troubleshooting) + +## Вимоги до системи + +| Платформа | Версія | Статус | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | Необхідно | +| **Windows** | 7+ | ✅ Підтримується | +| **macOS** | 10.15+ | ✅ Підтримується | +| **Linux** | Будь-яка | ✅ Підтримується | +| **iOS** | 15+ | ✅ Підтримується | +| **Android** | 5+ | ✅ Підтримується | + +## Видалення + +Щоб видалити Notemd: + +1. Налаштування → Додатки спільноти +2. Знайти "Notemd" +3. Натисніть іконку ❌ +4. За бажанням видаліть папку додатка: `<vault>/.obsidian/plugins/notemd/` + +Ваші дані (нотатки, концепт-нотатки тощо) залишаються недоторканими. + +## Оновлення + +### Автоматичне оновлення (рекомендується) +Obsidian автоматично перевіряє наявність оновлень додатка. Коли з’являється нова версія: +1. Налаштування → Додатки спільноти +2. Натисніть "Перевірити оновлення" +3. Натисніть "Оновити" поруч з Notemd + +### Ручне оновлення +Завантажте останню версію та замініть три файли у вашій папці додатка. + +## Отримання допомоги + +- 📖 [Керівник швидкого початку](./quick-start) +- ❓ [FAQ](../faq) +- 💬 [Спільнота Discord](https://discord.gg/qnGgsQ9W) +- 🐛 [Повідомити про проблеми](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/uk/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/uk/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..8ff0b9ed --- /dev/null +++ b/website/i18n/uk/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "Швидкий посібник з початку роботи" +description: "Почніть працювати з Notemd за 5 хвилин" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Швидкий посібник з початку роботи + +<TLDR> +**Почніть використовувати Notemd за 5 хвилин.** Три кроки: (1) Додайте ключ LLM API (або використайте локальний Ollama), (2) Відкрийте записку та запустіть «Обробка файлу (додати посилання)», (3) Дослідіть одноклікові робочі процеси у бічній панелі. Підтримується понад 30 провайдерів. Кодування не потрібне. Працює офлайн з Ollama. +</TLDR> + +## Крок 1: Налаштуйте свого першого провайдера LLM (2 хв) + +### Варіант А: Хмарний провайдер (OpenAI, Anthropic тощо) + +1. Відкрийте **Настройки** → **Notemd** +2. У розділі **Налаштування провайдера LLM** виберіть провайдера зі списку +3. Введіть свій **Ключ API** +4. (Необов’язково) Натисніть **«Отримати список моделей»**, щоб побачити доступні моделі +5. Виберіть модель для кожного типу завдання + +**Популярні варіанти:** +- **OpenAI**: `gpt-4o-mini` (швидко, доступно) +- **Anthropic**: `claude-sonnet-4-6` (висока якість) +- **DeepSeek**: `deepseek-chat` (дуже доступно) + +### Варіант Б: Локальний Ollama (ключ API не потрібен) + +1. Встановіть [Ollama](https://ollama.com/) +2. Завантажте модель: `ollama pull llama3.1` +3. У налаштуваннях Notemd виберіть **"Ollama"** як постачальника +4. Назва моделі: `llama3.1` (або будь-яка інша завантажена модель) + +## Крок 2: Спробуйте своє перше завдання (1 хв) + +### Додайте посилання Wiki до нотатки + +1. Відкрийте будь-яку нотатку зі змістом +2. Клацніть правою кнопкою миші в редакторі +3. Виберіть **"Обробити файл (додати посилання)"** +4. Чекайте кілька секунд +5. Ключові концепції тепер `[[wiki-linked]]`! + +**Приклад:** + +**До:** +``` +Machine learning models use neural networks to process data. +``` + +**Після:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## Крок 3: Дослідіть функції (2 хв) + +### Витягніть нотатки з концепціями + +1. Клацніть правою кнопкою → **"Витягнути концепції з поточного файлу"** +2. Notemd створює окремі файли для кожної концепції +3. Перевірте налаштовану папку з концепціями (за замовчуванням: `concepts/`) +4. Кожна нотатка з концепціями має посилання назад на вашу оригінальну нотатку + +### Дослідження та узагальнення + +1. Виділити тему у вашій нотатці +2. Клацніть правою кнопкою → **"Дослідження та узагальнення"** +3. Notemd запити до пошуку в Інтернеті (Tavily або DuckDuckGo) +4. Узагальнення додається до вашої нотатки разом із джерелами + +### Одноклікові робочі процеси + +1. Перевірте **ліву панель** на кнопки робочих процесів +2. Клацніть **"Одноклікове вилучення"** у будь-якій нотатці +3. Це виконує: додати посилання → вилучити концепції → провести дослідження → створити діаграму +4. Усе за один клік! + +## Поширені перші завдання + +### Завдання 1: Обробити статтю/наукову працю + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### Завдання 2: Перекласти нотатки + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### Завдання 3: Створити карту знань + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## Поради щодо налаштувань + +### Вибір моделі для кожного завдання + +Ви можете використовувати різні моделі для різних завдань: + +| Завдання | Рекомендована модель | Чому | +|------|------------------|-----| +| Додати посилання | `gpt-4o-mini`, `deepseek-chat` | Швидко, багато викликів | +| Витягування концепцій | `claude-sonnet-4-6`, `gpt-4o` | Якісне витягування | +| Дослідження | `perplexity`, `gpt-4o` | Орієнтовано на веб | +| Переклад | `gemini-flash`, `gpt-4o` | Багатомовне | +| Діаграми | `claude-opus`, локальна модель | Складне міркування | + +Налаштувати у: **Настройки → Notemd → Моделі для конкретних завдань** + +### Персоналізовані робочі процеси + +Створити власну кнопку: + +1. Настройки → Notemd → Робочі процеси +2. Натисніть «Додати робочий процес» +3. Введіть DSL: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. Назвати його: "Мій потік досліджень" +5. У бічній панелі з’являється нова кнопка + +## Усунення несправностей + +### "API Key Invalid" +- Перевірити, чи правильний ключ (без зайвих пробілів) +- Переконатися, що у обліковому записі є кредити +- Протестувати за допомогою кнопки "Connection Test" у налаштуваннях + +### "Model Not Found" +- Натисніть "Get Model List", щоб побачити доступні моделі +- Деякі постачальники вимагають конкретних назв моделей (наприклад, `gpt-4o` а не `gpt-4`) + +### Лінки не з’являються +- Переконатися, що примітка містить достатньо контенту (>50 слів) +- Спробувати більш потужну модель +- Перевірити, чи успішний виклик LLM (див. панель діагностики) + +### Повільна продуктивність +- Використовувати швидші моделі (`gpt-4o-mini` замість `gpt-4o`) +- Зменшити розмір частин у налаштуваннях +- Увімкнути паралельну обробку для пакетних завдань + +## Наступні кроки + +- 📖 [Дослідити всі функції](../features/wiki-links) +- ⚙️ [Розширена налаштування](./configuration) +- 🔧 [Налаштування провайдера LLM](../providers/overview) +- ❓ [FAQ](../faq) + +## Відео-навчання + +Перегляньте 3-х хвилинне відео з швидкого старту (китайською): +[【Повністю відкритий код та безкоштовний! Швидкий посібник NotEMD за 3 хвилини】](https://b23.tv/lqR0RlA) + +## Отримання допомоги + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **Проблеми**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **Документація**: [Повна документація](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/uk/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/uk/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..d796108c --- /dev/null +++ b/website/i18n/uk/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "Вступ до Notemd" +description: "Будівельник бази знань на основі ШІ для Obsidian з постійними трансформаціями нотаток, робочими процесами та діаграмами, орієнтованими на специфікації" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Вступ до Notemd + +<TLDR> +**Notemd** (Note + EMD — покращені Markdown-документи) — це відкритий плагін Obsidian, який перетворює читання за допомогою LLM на постійні знання. На відміну від ШІ на основі чату, де інсайти зникають після сесії, Notemd записує результати **безпосередньо у ваш сховище** у вигляді посилань wiki, нотаток про концепції, резюме досліджень, перекладів, робочих процесів та діаграм. Він створений для дослідників, студентів та працівників, які хочуть, щоб читання, дослідження та візуальні пояснення накопичувалися у структурованій, еволюціонуючій графі знань. +</TLDR> + +## Що таке Notemd? + +Notemd інтегрує **30+ великих моделей мови** (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama та інші) у ваш робочий процес Obsidian для автоматизації видобутку знань, їх організації, перекладу, досліджень та створення діаграм. + +### Ключова різниця: тимчасові vs. постійні знання + +| Аспект | ШІ на основі чату (ChatGPT тощо) | Notemd | +|--------|-------------------------------|--------| +| **Куди потрапляють результати** | Історія чату (зникає) | Ваше сховище Obsidian (зберігається) | +| **Формат** | Відповіді у простому тексті | Структуровані файли: `[[wiki-links]]`, нотатки про концепції, діаграми | +| **Довгострокова цінність** | Треба запитувати знову щоразу | Накопичується у графі знань | +| **Офлайн-режим** | Треба інтернет | Працює повністю офлайн з Ollama | + +## Основні функції + +### 1. **Автоматичне створення посилань у Wiki** +- LLM визначає ключові концепції у ваших нотатах +- Вставляє `[[wiki-links]]` при кожному зустрічанні +- За потреби створює посилані нотатки про концепції +- Придушення синонімів для уникнення дублікатів + +### 2. **Створення нотаток про концепції** +- Витягує основні концепції з статей, матеріалів, нотаток +- Створює спеціальні файли концепцій із посиланнями назад +- Можливість налаштування шляхів виведення та шаблонів + +### 3. **Інтеграція з веб-дослідженнями** +- Запитувати Tavily або DuckDuckGo прямо у Obsidian +- LLM підсумовує результати з посиланнями на джерела +- Додає результати досліджень до поточної нотатки + +### 4. **Багатомовний переклад** +- Перекладати вибрані частини або всі нотатки +- Підтримує понад 21 UI мову +- Незалежна налаштування мови виводу +- Підтримка пакетного перекладу + +### 5. **Створення діаграм** +- **Mermaid**: діаграми потоків, послідовності, класів, станів, ER, Gantt +- **JSON Canvas**: нативні макети Obsidian +- **Vega-Lite**: графіки даних, часові ряди, діаграми розсіювання +- **HTML / Редаговані HTML/SVG**: самостійні візуальні елементи з семантичними анотаціями +- **Draw.io / Межі елементів Drawnix**: шляхи експорту для адміністраторів з того ж семантичного моделювання візуалізацій +- **Дорожня карта схем циркуитів**: підтримка circuitikz/TikZJax розробляється на основі золотих стандартів, обмежених запитів, зворотного зв’язку від рендерингу та перевірки топології/макету, а не на основі необмеженого LLM TikZ +- **Діагностика попереднього перегляду**: елементи рендерингу можуть відображати діагностику проблем під час компіляції/рендерингу, а нелінійні джерела можна перевіряти без необхідності використання LaTeX на стороні плагіну +- Автоматичне виправлення синтаксису для помилок Mermaid + +### 6. **Робочі потоки одним кліком** +- Під’єднати кілька дій у кнопки бічної панелі +- Визначення робочого процесу на основі DSL +- Приклад: `add-links > extract-concepts > research > diagram` + +## Хто повинен використовувати Notemd? + +✅ **Дослідники**, які читають статті та створюють огляди літератури +✅ **Студенти**, які організовують нотатки та створюють карти концепцій +✅ **Професіонали знань**, які хочуть, щоб інсайти від читання зберігалися +✅ **Багатомовні фахівці**, яким потрібен переклад + посилання на wiki +✅ **Користувачі, які піклуються про приватність**, що хочуть локальної підтримки LLM (Ollama) +✅ **Потужні користувачі**, які налаштовують запити та робочі процеси + +## Чому Notemd + Obsidian? + +**Obsidian** — це база знань, орієнтована на локальне використання та заснована на markdown. **Notemd** додає штучний інтелект: +- Ваші дані залишаються у вашому сховищі (а не в хмарному сервісі) +- Працює офлайн з локальними моделями +- Безкоштовний та з відкритим кодом (лицензія MIT) +- Інтегрується з існуючими плагінами Obsidian +- Масштабується до десятків тисяч нот + +## Початок роботи + +1. **Встановлення**: Налаштування → Комунітетні плагіни → Перегляд → "Notemd" +2. **Налаштування**: Додайте ключ вашого LLM постачальника API (або використовуйте локальний Ollama) +3. **Спробуйте**: Відкрийте ноту → Клацніть правою кнопкою → "Обробити файл (додати посилання)" +4. **Дослідження**: Перевірте бічну панель на одноклікові робочі процеси + +👉 [Інструкція з встановлення](./getting-started/installation) | [Швидкий посібник](./getting-started/quick-start) + +## Напрямок можливостей діаграм + +Робота з діаграмами Notemd відходить від підходу "запитати модель написати один рядок синтаксису" до багатошарового конвеєра: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +Текуща реалізація вже підтримує Mermaid, JSON Canvas, Vega-Lite, HTML як альтернативу, редаговані HTML/SVG, Draw.io XML об’єкти, мінімальний набір Drawnix JSON, діагностику передпоказу/альтернативу лише вихідного коду, а також офлайн-прототип `CircuitSpec -> circuitikz` для типових шаблонів джерела та інверторів CMOS. Діаграми схем є складнішим класом: circuitikz може відтворювати точну електричну топологію, але без обмежень LLM результат часто містить нерозбірливі маршрутизації або LaTeX, який не відображається. Наступним кроком є обмеження circuitikz за допомогою шаблонів золотого стандарту, правил розташування вузлів у сітці, діагностики відображення та циклів зворотного зв’язку у вигляді скріншотів. + +Деталі можна прочитати у [Діаграми](./features/diagrams). + +## Архітектура + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd проти інших плагінів Obsidian для ШІ + +Більшість плагінів Obsidian для ШІ орієнтовані на розмову (ви запитуєте, ШІ відповідає, інсайти залишаються у чаті). Notemd є **орієнтованим на написання**: ШІ обробляє ваші нотатки та записує структуровані результати безпосередньо у ваш сховище. + +| Можливості | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| Вставка автоматичних посилань у вікі | Так | Ні | Ні | Ні | +| Створення концептуальної записки | Так (з позначковими посиланнями + усуненням дублікатів) | Ні | Ні | Ні | +| Створення діаграм | Так (Mermaid, Canvas, Vega-Lite, HTML, редаговані об’єкти) | Ні | Ні | Ні | +| Інтеграція з веб-дослідженнями | Так (Tavily + DuckDuckGo) | Ні | Ні | Ні | +| Обробка папок пакетом | Так | Обмежено | Ні | Обмежено | +| Маршрутизація моделі за завданням | Так (7 завдань, незалежні моделі) | Ні | Ні | Ні | +| Ланцюги робочих процесів одним кліком | Так (DSL) | Ні | Ні | Ні | +| Переклад (пакетом) | Так | Ні | Ні | Ні | +| Чат із сховищем | Ні | Так | Ні | Ні | +| Пошук за семантичною схожістю | Ні | Ні | Так | Ні | +| Генерація на основі шаблонів | Ні | Ні | Ні | Так | +| постачальники LLM | 36 (хмара + шлюз + локальний) | 3-5 | 2-3 | 3-5 | +| Повністю офлайн | Так (Ollama) | Частковий | Частковий | Частковий | + +**Коли вибирати Notemd**: якщо ви хочете, щоб ШІ створив постійну графіку знань — а не просто обговорював ваші нотатки. + +**Коли варто обрати Copilot**: Ви хочете мати асистента ШІ для спілкування всередині Obsidian. + +**Коли вибирати Smart Connections**: Ви хочете знайти наявні зв’язки між нотатками за допомогою семантичного пошуку. + +## Філософія + +**Notemd вважає, що ШІ має допомагати людям у роботі зі знаннями, а не замінювати їх.** Плагін: +- Дозволяє вам контролювати ситуацію (перегляньте перед застосуванням змін) +- Зберігає контекст (усі результати посилаються на джерело) +- Дотримується приватності (локальна підтримка LLM, без телеметрії) +- Залишається розширюваним (відкриті APIs, користувацькі робочі процеси) + +## Відкритий код + +- **Ліцензія**: MIT +- **Джерело**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **Спільнота**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **Внесок**: приймаються PR, див. [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +**Наступне**: [Installation →](./getting-started/installation) diff --git a/website/i18n/uk/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/uk/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..c6d35a8d --- /dev/null +++ b/website/i18n/uk/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Obsidian Посібник з управління знаннями за допомогою ШІ" +description: "Повний посібник зі створення об’єднаної бази знань з використанням ШІ — від вікі-посилань та екстракції концепцій до досліджень, перекладу та генерації діаграм" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Obsidian Посібник з управління знаннями за допомогою ШІ + +<TLDR> +**Notemd перетворює читання, що працює з LLM, на постійні знання: вікі-посилання з’єднують концепції, нотатки про концепції створюють доступну для пошуку графіку, дослідження вносять інформацію з Інтернету у ваш архів, переклад усуває мовні бар’єри, діаграми роблять структуру видимою, а робочі процеси об’єднують усе це одним кліком.** Цей посібник охоплює весь процес — від сирих нотаток до об’єднаної, візуальної, багатомовної бази знань. +</TLDR> + +## Чому управління знаннями за допомогою ШІ? + +Традиційне ведення нотаток створює плоскі файли. Навіть із ручними вікі-посиланнями більшість нотаток залишаються роз’єднаними. Notemd використовує LLM для автоматизації шару з’єднань: + +- **LLM читають ваш контент** та визначають, що є важливим — терміни, методи, люди, теорії +- **Посилання вставляються автоматично** при кожному згадуванні концепції, а не ховаються у розділі «див. також» +- **Нотатки про концепції створюються** як окремі файли, доступні для пошуку +- **Дослідження збагачують нотатки** контекстом з Інтернету +- **Діаграми роблять структуру видимою** — ментальні карти, блок-схеми, графіки даних з того ж контенту + +Результат: граф знань, який росте з кожною обробленою нотаткою, а не лише тоді, коли ви пам’ятаєте додати посилання. + +## Повний процес + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +Кожен крок є незалежним. Можна використовувати один або всі. Найефективніша послідовність: **Додати посилання → Нотатки про концепції → Діаграми**. + +--- + +## 1. Вікі-посилання: чітке створення зв’язків + +Вікі-посилання є основою графа знань. Notemd використовує LLM для: + +1. Читати вміст вашої нотатки (розділяти на частини для довгих документів) +2. Визначати основні концепції — надавати пріоритет конкретним технічним термінам перед загальними іменами +3. Вставляти `[[wiki-links]]` при кожному зустрічанні +4. Пригнічувати синоніми, щоб "ML" та "Machine Learning" не створювали окремих вузлів + +### Коли використовувати + +- **Кожна нотатка >100 слів** — короткі нотатки містять мало концепцій +- **Наукові статті, технічні документи, записи зустрічей** — багаті на терміни, специфічні для галузі +- **Після того, як контент стабілізується** — не обробляти чернетки багаторазово + +### Ключові налаштування + +| Налаштування | Рекомендовано | Чому | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek або GPT-4o-mini | Хороша точність за низьку ціну | +| Пригнічення синонімів | Увімкнено | Запобігає створенню дублікатів вузлів | +| Вікно контексту | Абзац | Баланс між точністю та вартістю | + +→ [Глибокий огляд Wiki-посилань](/docs/features/wiki-links) + +--- + +## 2. Концептуальні нотатки: вузли знань, які можна отримати + +Wiki-посилання з’єднують ідеї безпосередньо, проте концептуальні нотатки дозволяють отримувати кожну ідею окремо. Кожна концепція має свій `.md` файл: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### Процес вилучення + +Запит LLM має дуже чітку структуру: +- Нормалізувати до однини +- Віддавати перевагу багатослівним концепціям перед однослівними („Dielectric Relaxation“, а не „Relaxation“) +- Пропустити розділи з посиланнями/бібліографією +- Виводити результат у `CONCEPT:` рядках для детермінованого парсингу + +Концепції усуваються з дублікатами між частинами за допомогою `Set<string>`. Помилки LLM у окремих частинах не призводять до зупинки операції. + +### Повернення посилань + +Коли це увімкнено, кожна концептуальна нотатка відстежує, які джерельні нотатки її згадують. Вбудована панель повернення посилань Obsidian також відображає зворотні зв’язки. + +### Дедуплікація + +4-кроковий двійниковий двигун Notemd виявляє: +1. **Точні збіги** — порівняння назв файлів без урахування регістру +2. **Багатоформні форми** — "Models.md" проти "Model.md" +3. **Нормалізація символів** — "A-B.md" проти "A B.md" +4. **Містження одного слова** — "ML.md" позначається, якщо існує "Machine Learning.md" + +### Налаштування ключів + +| Налаштування | Рекомендовано | Чому | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` або `🧠 concepts/` | Зберігає порядок у сховищі | +| `extractConceptsAddBacklink` | Увімкнено | Дозволяє зворотний пошук | +| `extractConceptsMinimalTemplate` | Вимкнено | Повний шаблон з Linked From | +| Модель на завдання | DeepSeek | Витягування концепцій не потребує дорогих моделей | +| Придушення синонімів | Увімкнено | Однакові налаштування впливають як на посилання, так і на витягування | + +→ [Concept Notes deep dive](/docs/features/concept-notes) + +--- + +## 3. Дослідження: Інтеграція Вебу + +Notemd інтегрує пошук у Вебі у вашу роботу з нотатками: + +1. **Складання запиту** — назва нотатки або вибраний фрагмент стають запитом до пошуку +2. **Пошук у Вебі** — Tavily (рекомендовано, потрібен ключ API) або DuckDuckGo (безкоштовно, без ключа) +3. **LLM підсумовування** — результати пошуку об’єднуються у відповідний короткий опис +4. **Додавання до нотатки** — опис додається у положенні курсора або як новий розділ + +### Коли використовувати + +- Перед обробкою нової теми — спочатку отримайте контекст з Вебу +- Коли концептуальній нотатці потрібно доповнення — проведіть дослідження, а потім додайте посилання +- Для огляду літератури — проведіть пакетне дослідження папки з нотатками + +### Ключові налаштування + +| Налаштування | Рекомендовано | Чому | +|---------|-----------|-----| +| `researchProvider` | GPT-4o або Claude | Для досліджень потрібне більш якісне підсумовування | +| Сервіс пошуку | Tavily | Краща релевантність, налаштовувана глибина | +| `maxResearchContentTokens` | 4000 | Баланс між глибиною та витратами | + +→ [Детальний огляд дослідження](/docs/features/research) + +--- + +## 4. Переклад: подолання мовних бар’єрів + +Notemd перекладає нотатки за допомогою вашого налаштованого LLM — а не спеціалізованого перекладача API. Це означає: + +- **Переклади з урахуванням контексту** — LLM розуміє весь документ, а не окремі речення +- **Обробка технічних термінів** — "gradient descent" залишається як "梯度下降", а не "坡度向下" +- **Підтримка пакетів** — можна перекласти цілу папку нотаток однією операцією +- **Модель для кожного завдання** — використовується Gemini Flash для перекладу (швидко, дешево, багатомовно) + +### Підтримка мов + +Сам Notemd підтримує 21 UI мову. Мова призначення перекладу може налаштовуватися для кожного завдання. Поширені пари: EN↔ZH, EN↔JA, EN↔KO, EN↔DE, EN↔FR, EN↔ES. + +→ [Детальний огляд перекладу](/docs/features/translation) + +--- + +## 5. Діаграми: зробити структуру видимою + +Пайплайн діаграм Notemd ґрунтується на специфікаціях: LLM створює структурований `DiagramSpec` JSON, а потім адаптери перекладають його у цільовий формат. Це дає більш надійний результат, ніж запитувати LLM про сирому Mermaid синтаксисі. + +### Виявлення наміру + +Notemd визначає найкращий тип діаграми на основі контенту: + +- **Таблиці з числами** → графік даних (Vega-Lite) +- **Словник клієнт/сервер** → діаграма послідовності (Mermaid) +- **Ентитет/primarnyй ключ** → діаграма ER (Mermaid) +- **Крок/потік обробки** → діаграма потоку (Mermaid) +- **Ключові слова карти концепцій** → JSON Canvas (Obsidian native) +- **За замовчуванням** → діаграма мислення (Mermaid) + +### Ланцюг відображення + +Основна мета → резервний варіант → резервний варіант → HTML. Якщо синтаксис Mermaid зазнає помилки, він спробує ще раз із контекстом помилки для LLM, а потім перейде до мінімальної діаграми. + +### Ключові налаштування + +| Налаштування | Рекомендовано | Чому | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | Увімкнено | Краща якість завдяки спочатку специфікації | +| `experimentalDiagramCompatibilityMode` | `best-fit` | Нативна мета за наміром | +| `summarizeToMermaidProvider` | GPT-4o або Claude | Специфікації діаграм потребують просторового мислення | +| `autoMermaidFixAfterGenerate` | Увімкнено | Автоматично виявляє помилки синтаксису LLM | +| Розширення локальних знань | Увімкнено для домен‑специфічного використання | Підвищує точність за рахунок контексту сховища | + +→ [Детальний огляд діаграм](/docs/features/diagrams) + +--- + +## 6. Робочі процеси: автоматизація одним кліком + +Робочі процеси об’єднують кілька завдань у одну кнопку на панелі бічних інструментів. Формат DSL є таким: + +``` +task1 | task2 | task3 +``` + +Приклад: `addLinks | extractConcepts | generateDiagram` — перетворити нотатку зі сирого тексту на повністю з’єднаний візуальний вузол знань одним кліком. + +### Рекомендовані робочі процеси + +| Робочий процес | Ланцюг | Сценарій використання | +|----------|-------|----------| +| Повний процес | `addLinks \| extractConcepts \| generateDiagram` | Нові нотатки | +| Дослідження спочатку | `research \| addLinks` | Незнайомі теми | +| Багатомовність | `translate \| addLinks` | Багатомовні нотатки | +| Лише діаграма | `generateDiagram` | Швидка візуалізація | + +→ [Детальний огляд робочих процесів](/docs/features/workflows) + +--- + +## 7. LLM Провайдери: 36 варіантів від хмари до локального сервера + +Notemd підтримує 36 провайдерів у 4 типах транспортування. Ключові групи: + +- **Міжнародні хмари**: OpenAI, Anthropic, Google, Mistral, xAI +- **Китайські хмари**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **Шлюзи**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **Локальні сервери**: Ollama, LMStudio, OVMS — без ключа API, дані не виходять за межі вашого пристрою + +### Стратегія моделей за завданням + +Найекономічніше рішення — використовувати дешеві моделі для простих завдань та потужні моделі для складних: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [Огляд LLM Провайдерів](/docs/providers/overview) + +--- + +## Чек-лист для початку роботи + +1. **Встановити Notemd** — [Community Plugins](/docs/getting-started/installation) (рекомендується) або вручну +2. **Налаштувати провайдера** — DeepSeek (найпростіше), OpenAI або Ollama (безкоштовно) +3. **Обробити першу записку** — клацніть правою кнопкою → "Обробити файл (додати посилання)" +4. **Встановити папку концепцій** — Налаштування → Notemd → Вихід → Папка концепцій +5. **Витягнути концепції** — запустити «Витягнути концепції» у тій самій нотатці +6. **Створити діаграму** — запустити «Створити діаграму», щоб візуалізувати зв’язки +7. **Створити робочий процес** — об’єднати вищезазначені кроки у одну кнопку натискання + +## Рекомендовані конфігурації + +### Студент (Бюджет) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### Дослідник (Якість) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### Приватність на першому місці (лише локально) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### Двомовний (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## Загальні шаблони + +### Шаблон: Обробка наукової статті + +1. Імпортувати вміст PDF (або вставити) +2. **Дослідження** — отримати інформацію з Інтернету про тему +3. **Додати посилання** — виявити та під’єднати ключові концепції +4. **Витягнути концепції** — створити окремі нотатки +5. **Створити діаграму** — візуалізувати структуру статті + +### Шаблон: Озброєння щоденної нотатки + +1. Писати щоденну нотатку +2. **Додати посилання** — пов’язує сьогоднішні ідеї з існуючими концепціями +3. Нотатки про концепції автоматично оновлюються з позначками посилань + +### Шаблон: Огляд літератури + +1. Створити папку з документами/нотатками +2. **Пакетне додавання посилань** — обробка всієї папки +3. **Усунення дублікатів концепцій** — очищення майже однакових нотаток +4. **Створити діаграму** — ментальна карта всієї літератури + +--- + +*Notemd є відкритим кодом (MIT) і працює з Obsidian 0.15.0+ на всіх платформах. [Встановити зараз](/docs/getting-started/installation) або [переглянути на GitHub](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/uk/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/uk/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..9943ac81 --- /dev/null +++ b/website/i18n/uk/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "Налаштувати Anthropic Claude" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Anthropic Provider + +<TLDR> +**Anthropic використовує вбудований транспорт Messages API, а не транспорт, сумісний з OpenAI.** Текущий пресет за замовчуванням використовує `claude-3-5-sonnet-20240620`, `https://api.anthropic.com` та `temperature: 0.5`. Під час дебаггінгу розглядайте його як окрему поверхню протоколу. + +Це частина [Obsidian Посібника з управління знаннями в ШІ](/docs/pillar-ai-knowledge). +</TLDR> + +## Налаштування + +Створіть ключ Anthropic API, додайте профіль постачальника `Anthropic` та залиште Base URL на вбудованому кінцевому пункті, якщо ви не направляєте трафік через спеціалізований профіль шлюзу. У полі моделі виберіть ID моделі Claude, яку хочете використати; за замовчуванням зберігається існуючий базовий рівень продукту. + +Anthropic є гарним варіантом для високоякісного узагальнення, синтезу досліджень та вилучення концепцій. Якщо ви поєднуєте його з дешевшими постачальниками, використовуйте його лише для завдань, які виграють від якості його результатів. + +## Кінцевий пункт та автентифікація + +| Поле | Текущий пресет | +|-------|----------------| +| Транспорт | `anthropic` | +| Ключ API | Необхідно | +| Base URL | `https://api.anthropic.com` | +| За замовчуванням модель | `claude-3-5-sonnet-20240620` | +| Температура | `0.5` | +| Тест підключення | Лише чат | + +Середовище виконання надсилає запити до `/v1/messages` з `x-api-key` та `anthropic-version: 2023-06-01`. Не налаштовуйте кінцевий пункт `/v1/chat/completions` у стилі OpenAI за цим пресетом; замість цього використовуйте пресет шлюзу, сумісний з OpenAI. + +## Відкриття моделей + +Anthropic використовує режим відкриття `anthropic-models` у реєстрі постачальників. Якщо ваш ключ або обліковий запис не може відображати моделі, зберігайте відомий ID моделі у профілі та перевіряйте його за допомогою тесту підключення. + +Транспорт не можна замінити на постачальників, сумісних з OpenAI. Модель Claude, що проходить через OpenRouter, LiteLLM або інший шлюз, має належати до профілю цього шлюзу, а не до нативного профілю Anthropic. + +## Усунення несправностей + +- `401` або `403`: перевірте обсяг прав ключа, доступ до робочого простору, оплату та чи належить ключ очікуваному робочому простору Anthropic. +- `404`: базовий URL є неправильним або обраний ID моделі недоступний для облікового запису. +- ID моделей у стилі шлюзу не працюють: перемістіть профіль до відповідного постачальника-шлюзу, оскільки нативний Anthropic очікує нативних імен моделей. +- Довгі запити зазнають невдач пізно: зменште розмір вихідних даних моделі за завданням або використовуйте модель із більшим відомим лімітом токенів вихідних даних. + +## Коли використовувати + +Використовуйте Anthropic, коли якість синтезу, дослідницьких нотаток або структурованого написання має більше значення, ніж проста вартість. Не використовуйте його як загальний замінник, сумісний з OpenAI; саме окремий транспорт є ключовим, а змішування протоколів ускладнює діагностику. + +--- + +## Наступні кроки + +- [LLM Providers](/docs/providers/overview) -- Повна конфігурація, моделі за завданням та логіка повторних спроб +- [Troubleshooting](/docs/advanced/troubleshooting) -- Виправлення помилок 401/403 та проблем з підключенням diff --git a/website/i18n/uk/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/uk/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..35bf72aa --- /dev/null +++ b/website/i18n/uk/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "Постачальники Китаю" +description: "Налаштуйте Qwen, DeepSeek, GLM тощо." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Постачальники Китаю + +<TLDR> +**Notemd підтримує постачальників з регіону Китай та походженням з Китаю через переважно OpenAI-сумісні кінцеві точки.** Нинішній набір включає DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, MiniMax, Baidu Qianfan, SiliconFlow, Huawei Cloud MaaS та Z AI. Переваги — регіональний охоплення та контроль витрат; ризики — унікальна номенклатура моделей постачальника та обмеження облікових записів. + +Це частина [Obsidian Посібника з управління знаннями в ШІ](/docs/pillar-ai-knowledge). +</TLDR> + +## Налаштування + +Створіть обліковий запис постачальника, згенеруйте ключ API, а потім виберіть відповідну налаштування Notemd замість використання загального профілю OpenAI. Ця налаштування містить стандартний Base URL, модель, режим тестування API, поведінку виявлення моделей та будь‑які унікальні поля UI постачальника. + +Тут слід активно використовувати вибір моделі за завданням. Наприклад, для робіт з інтенсивним міркуванням залишайте DeepSeek або GLM, для широких завдань китайською мовою використовуйте Qwen або Moonshot, а завдання з програмуванням спрямовуйте до Qwen Code, якщо цей обліковий запис підтримує моделі програмістів. + +## Кінцевий пункт та автентифікація + +| Постачальник | Стандартна модель | Base URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (необхідний ID кінцевої точки) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**Примітка:** Doubao вимагає ID кінцевої точки Ark (формат: `ep-xxxxxxxx-xxxx-xxxx`) замість стандартної назви моделі. + +Більшість цих постачальників використовують спільний OpenAI-сумісний середовище виконання, проте їхні облікові записи та семантика моделей відрізняються. Залишайте стандартний Base URL для конкретної налаштування, якщо ви не перевірили альтернативну кінцеву точку облікового запису. + +## Відкриття моделей + +DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan та SiliconFlow використовують OpenAI-сумісне виявлення моделей, якщо постачальник дозволяє список. Huawei Cloud MaaS використовує режим `huaweicloud-modelarts-models`, оскільки метадані розгортання ModelArts не збігаються зі стандартним списком `/v1/models`. + +Не вважайте невдачу у виявленні доказом того, що чат неможливий. Деякі постачальники дозволяють чат, обмежуючи права на список моделей. У такому випадку зберігайте явний ID моделі у профілі та перевіряйте його за допомогою тесту підключення. + +## Усунення несправностей + +- Аутентифікація пройшла, але чат не спрацював: назва моделі може бути поза межами прав облікового запису або регіону. +- Doubao повертає помилку зі звичайною назвою моделі: використовуйте ID кінцевої точки Ark у полі моделі, якщо це необхідно для вашого розгортання. +- Відповіді з міркуваннями обрізаються: перевірте максимальну кількість токенів вихіду, встановлену постачальником, та параметри Notemd щодо максимальної кількості токенів з урахуванням моделі. +- Регіональна мережева інфраструктура відрізняється: використовуйте кінцеву точку постачальника з регіону Китай, якщо сервер знаходиться в Китаї; використовуйте міжнародну кінцеву точку лише тоді, коли обліковий запис та мережевий шлях обидва є дійсними. + +## Коли використовувати + +Використовуйте китайських постачальників, коли основним обмеженням є регіональна затримка, доступ до оплати/рахунку, якість китайської мови або вартість. Віддавайте перевагу прямим OpenAI, Anthropic, Google чи місцевим постачальникам, якщо вам потрібні простіші межі протоколу або краща послідовність дебаггінгу між постачальниками. + +--- + +## Наступні кроки + +- [LLM Providers](/docs/providers/overview) -- Повна конфігурація, моделі за завданням та логіка повторних спроб +- [Усунення несправностей](/docs/advanced/troubleshooting) -- Виправлення проблем з регіональним підключенням та автентифікацією diff --git a/website/i18n/uk/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/uk/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..bae47657 --- /dev/null +++ b/website/i18n/uk/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "Налаштувати Google Gemini" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Google Provider + +<TLDR> +**Google використовує вбудований транспорт мови Gemini Generative Language API.** Текущий профіль за замовчуванням — `gemini-2.0-flash-exp`, `https://generativelanguage.googleapis.com/v1` та `temperature: 0.5`. Це не профіль, сумісний з OpenAI. + +Це частина [Obsidian Посібника з управління знаннями в ШІ](/docs/pillar-ai-knowledge). +</TLDR> + +## Налаштування + +Створити ключ Cloud API типу Google AI Studio або Google з доступом до Gemini, додати профіль постачальника `Google` та зберегти вбудовану базу мови Generative Language URL. Використовуйте стандартний профіль Gemini Flash для швидкого перекладу та роботи з великою кількістю нотаток, а потім замінюйте моделі за завданням, якщо потрібна більша або потужніша модель Gemini. + +Уникайте розміщення ідентифікаторів моделей Gemini у профілі, сумісному з OpenAI, якщо ви не використовуєте спеціальний шлюз, який виводить Gemini через профіль, сумісний з OpenAI та API. + +## Кінцевий пункт та автентифікація + +| Поле | Текущий пресет | +|-------|----------------| +| Транспорт | `google` | +| Ключ API | Необхідно | +| Base URL | `https://generativelanguage.googleapis.com/v1` | +| За замовчуванням модель | `gemini-2.0-flash-exp` | +| Температура | `0.5` | +| Тест підключення | Лише чат | + +Час виконання викликає `/models/{model}:generateContent?key={apiKey}`. Ключ передається як параметр запиту, оскільки саме так підключений вбудований кінцевий пункт Gemini у плагіні. + +## Відкриття моделей + +Google використовує режим виявлення `google-models`. Виявлення має повертати моделі Gemini, доступні для ключа API; якщо вибірник порожній, перевірте ключ проти тієї ж бази URL та підтвердьте, що сімейство моделей увімкнене для цього облікового запису. + +Відомі ліміти токенів вихідних даних залежать від моделі у реєстрі постачальників. Якщо довгий переклад або пояснення діаграми обрізаються, виберіть модель Gemini з більшим допустимим лімітом вихідних даних або зменшіть розмір запитуваних даних. + +## Усунення несправностей + +- `400`: ідентифікатор моделі зазвичай не збігається з вбудованим маршрутом Gemini або запит перевищує підтримуваний формат моделі. +- `401` або `403`: перевірте обмеження ключа, увімкнення проекту/API та можливість доступу ключа до Gemini. +- `404`: ідентифікатор моделі недоступний у налаштованій версії API. +- Приклади шлюзів не працюють у цьому профілі: використовуйте профіль шлюзу замість вбудованого постачальника Google. + +## Коли використовувати + +Використовуйте Google для швидкого перекладу, очищення великої кількості нотаток та робочих процесів, де співвідношення вартості та продуктивності Gemini краще, ніж у прямого використання OpenAI або Anthropic. Для робочих процесів, що вимагають обробки моделей з розумовими функціями, сумісних з OpenAI, краще використовувати іншого постачальника. + +--- + +## Наступні кроки + +- [LLM Providers](/docs/providers/overview) -- Повна конфігурація, моделі за завданням та логіка повторних спроб +- [Переклад](/docs/features/translation) — для завдань з великою кількістю перекладів рекомендується Gemini Flash diff --git a/website/i18n/uk/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/uk/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..2abc3ecf --- /dev/null +++ b/website/i18n/uk/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "Локальні моделі" +description: "Налаштуйте Ollama та локальні LLMs" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# Локальні моделі + +<TLDR> +**Локальні постачальники не зберігають вміст записів на хостованих APIs.** Текущий локальний шлях охоплює Ollama за допомогою нативного транспорту `ollama` та LMStudio через транспорт, сумісний з OpenAI. Для жодного з цих шляхів не потрібен ключ API, але локальний сервер та модель мають вже працювати. + +Це частина [Obsidian Посібника з управління знаннями в ШІ](/docs/pillar-ai-knowledge). +</TLDR> + +## Налаштування + +Для Ollama встановіть Ollama, завантажте бажану модель, запустіть сервер та додайте профіль постачальника `Ollama` у Notemd. Для LMStudio завантажте модель у локальному сервері LM Studio та додайте профіль постачальника `LMStudio`. + +Локальні моделі є операційними залежностями, а не просто налаштуваннями. Notemd може викликати лише те, що відкриває локальний процес, тому перевірте локальну модель поза Obsidian перед налагодженням плагіну. + +## Кінцевий пункт та автентифікація + +| Постачальник | Base URL | Стандартна модель | Ключ API | Примітки | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | Не обов’язково | Стрімінг NDJSON; виявлення моделей через `/api/tags` | +| LMStudio | `localhost:1234/v1` | `local-model` | Не обов’язково | Надсилає `"EMPTY"` як токен носія; сумісне з OpenAI | + +Ollama використовує нативний шлях `/chat` під своїм базовим URL. LMStudio слідує маршруту `chat/completions`, сумісного з OpenAI, та очікує модель, завантажену у локальному сервері. + +## Відкриття моделей + +Ollama використовує режим виявлення `ollama-tags` та відображає теги, завантажені локально. LMStudio використовує виявлення моделей, сумісне з OpenAI, коли його сервер відкриває `/v1/models`. + +Якщо виявлення нічого не повертає, це зазвичай проблема стану локального сервера: модель не була завантажена чи не навантажена, або сервер підключений до іншого хоста/порту, ніж у профілі. + +## Усунення несправностей + +- Відмова у з’єднанні: запустіть Ollama або LM Studio та переконайтеся, що налаштований порт правильний. +- Модель не знайдена: завантажте тег Ollama або навантажте модель LM Studio перед тестуванням. +- Повільний вивід: зменшіть розмір контексту, використовуйте меншу локальну модель або направляйте важкі завдання до хостованого постачальника. +- Порожні або некоректні відповіді: переконайтеся, що обраний профіль постачальника відповідає протоколу локального сервера; Ollama та LMStudio не є взаємозамінними. + +## Коли використовувати + +Використовуйте локальних постачальників для приватних сховищ, роботи офлайн або дешевих повторюваних завдань. Не варто припускати, що локальний варіант автоматично кращий для синтезу даних у межах досліджень чи тривалих міркувань; якість моделей та обмеження апаратного забезпечення є факторами, які потрібно враховувати. + +--- + +## Наступні кроки + +- [LLM Постачальники](/docs/providers/overview) -- Повна конфігурація та налаштування моделей для кожного завдання +- [Усунення проблем](/docs/advanced/troubleshooting) -- Виправлення помилок connection-refused, коли локальний сервер не працює diff --git a/website/i18n/uk/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/uk/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..4159ba25 --- /dev/null +++ b/website/i18n/uk/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "Налаштувати OpenAI (GPT-4, GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# OpenAI Provider + +<TLDR> +**OpenAI використовує спільний транспорт, сумісний з OpenAI.** Текущий пресет за замовчуванням включає `gpt-4o`, `https://api.openai.com/v1`, `temperature: 0.5` та тест підключення `models-then-chat`. Використовуйте цю сторінку, коли потрібна точна семантика полів; для вибору на рівні категорій скористайтеся оглядом [LLM Providers](/docs/providers/overview). + +Це частина [Obsidian Посібника з управління знаннями в ШІ](/docs/pillar-ai-knowledge). +</TLDR> + +## Налаштування + +Створіть ключ OpenAI API, додайте профіль постачальника `OpenAI` у налаштуваннях Notemd та залиште значення Base URL за замовчуванням, якщо ви не маєте наміру вказувати на шлюз, сумісний з OpenAI. Поле моделі може залишатися на `gpt-4o` для загальної роботи або бути заміненим іншим ID моделі OpenAI, який доступний у вашому обліковому записі. + +Для контролю витрат використовуйте моделі, спеціалізовані на конкретних завданнях: зберігайте потужніші моделі для досліджень, вилучення концепцій та структурування довгих текстів; використовуйте дешевші або швидші моделі для перекладу, пропозицій посилань та коротких резюме. + +## Кінцевий пункт та автентифікація + +| Поле | Текущий пресет | +|-------|----------------| +| Транспорт | `openai-compatible` | +| Ключ API | Необхідно | +| Base URL | `https://api.openai.com/v1` | +| За замовчуванням модель | `gpt-4o` | +| Температура | `0.5` | +| Тест підключення | `/models`, потім `/chat/completions` | + +Notemd нормалізує базові URL, сумісні з OpenAI, перед додаванням `chat/completions` або `models`. У Base URL не слід включати кінцевий `/chat/completions`, оскільки це створює дубльований шлях. + +## Відкриття моделей + +OpenAI використовує загальний шлях пошуку моделей, сумісний з OpenAI. Налаштування UI спочатку запитують `/v1/models`, а потім перевіряють обрану модель за допомогою легкого запиту в чаті. Якщо пошук провалився, але чат все ще працює, перевірте, чи має ваш ключ дозволи на список моделей або чи шлюз блокує відображення списку моделей. + +Моделі для міркувань розглядаються як особливий випадок протоколу: Notemd об’єднує вміст системних та користувацьких запитів для ID міркувань OpenAI, які відхиляють окрему роль `system`, і відображають `reasoningEffort` лише там, де це підтримується визначенням постачальника. + +## Усунення несправностей + +- `401` або `403`: перевірте ключ, доступ до проекту, статус оплати та те, чи увімкнена обрана модель для ключа. +- `404` у чаті: Base URL зазвичай є неправильним або вже містить `/chat/completions`. +- Модель вказана в документації, але не вибрана: доступ до списку моделей та доступ у чаті — це окремі причини невдачі; вручну перевірте точний ID моделі у профілі постачальника. +- Модель для міркувань відхиляє повідомлення: використовуйте ID моделі, який покривається шляхом обробки міркувань OpenAI, або перейдіть на модель чату без функції міркувань. + +## Коли використовувати + +Використовуйте OpenAI, коли потрібен найбільш передбачуваний шлях розміщення за замовчуванням, коли важливий пошук `/v1/models` або коли робочий процес залежить від семантики моделі міркувань OpenAI. Віддавайте перевагу шлюзу або локальному постачальнику, коли для маршрутизації, конфіденційності чи контролю витрат важливіші фактори, ніж пряма поведінка OpenAI API. + +--- + +## Наступні кроки + +- [LLM Providers](/docs/providers/overview) -- Повна конфігурація, моделі за завданням та логіка повторних спроб +- [Усунення проблем](/docs/advanced/troubleshooting) -- Виправлення помилок 401/403 та обмежень за частотою запитів diff --git a/website/i18n/uk/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/uk/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..58c90c60 --- /dev/null +++ b/website/i18n/uk/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "LLM Провайдери" +description: "Налаштуйте 36 LLM провайдерів — хмарних, шлюзових та локальних — з можливістю вибору моделі для кожного завдання" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# LLM Провайдери + +<TLDR> +**Notemd підтримує 36 LLM провайдерів у 4 типах транспорту.** Усі API виклики виконуються безпосередньо через HTTP (без SDK), з автоматичною перепробуванням, заміною транспорту та кешуванням відповідей протягом 5 хвилин. Вибір моделі для кожного завдання дозволяє використовувати дешеві моделі для екстракції концепцій та потужні моделі для досліджень. Для локальних провайдерів (Ollama, LMStudio) ключ API не потрібен. +</TLDR> + +Це частина [Obsidian Посібника з управління знаннями в ШІ](/docs/pillar-ai-knowledge). + +## Категорії провайдерів + +### Хмарні провайдери + +| Постачальник | Базовий URL за замовчуванням | Стандартна модель | Температура | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### Шлюзові/проксі-провайдери + +| Постачальник | Базовий URL за замовчуванням | Стандартна модель | Примітки | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | Додає заголовки `HTTP-Referer` + `X-Title` | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | Додає заголовок `X-GitHub-Api-Version` | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | Додає заголовок `APP-Code` | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | Необов’язковий ключ API | +| **Новий API** | `localhost:3000/v1` | `gpt-4.1` | Необов’язковий ключ API | +| **OpenAI Compatible** | (user-configured) | `your-model-id` | Customний кінець шляху | + +### Постачальники Китаю + +| Постачальник | Default Base URL | Стандартна модель | Примітки | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | Орієнтований на програмування | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (необхідний ID кінцевої точки) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | Кінець шляху Zhipu, Китай | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | Кінець шляху Zhipu, міжнародний | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | Платформа для розміщення моделей | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao вимагає ідентифікатора кінця шляху Ark** (формат: `ep-xxxxxxxx-xxxx-xxxx`). Замінити стандартний замінник. + +### Локальні постачальники + +| Постачальник | Default Base URL | Стандартна модель | Примітки | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | Немає ключа API. Стрімінг NDJSON. Відкриття моделей через `/api/tags` | +| **LMStudio** | `localhost:1234/v1` | `local-model` | Надсилає `"EMPTY"` як токен авторизації. Відкриття сумісне з OpenAI | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (user-configured) | `gpt-4o` | Назва розгортання в URL. Заголовок `api-key` | + +## Вибір моделі для кожного завдання + +Notemd підтримує окремого постачальника та модель для кожного завдання. Увімкніть це за допомогою `useMultiModelSettings: true`. + +### Доступні завдання + +| Завдання | Ключ налаштувань | Стандартний постачальник | +|------|-------------|-----------------| +| Додавання посилань (вставка посилань з вікі) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| Дослідження (пошук у Інтернеті + узагальнення) | `researchProvider` / `researchModel` | DeepSeek | +| Створення з заголовка | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| Переклад | `translateProvider` / `translateModel` | DeepSeek | +| Генерація діаграм | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| Витягування концепцій | `extractConceptsProvider` / `Model` | DeepSeek | +| Витягування оригінального тексту | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### Порядок розв’язання + +1. Якщо `useMultiModelSettings` увімкнено → використовувати постачальника та модель, специфічні для завдання +2. Якщо параметр перевизначення моделі завдання порожній → повернутися до стандартної моделі постачальника +3. Якщо постачальник завдання недійсний → повернутися до глобального `activeProvider` +4. Якщо `useMultiModelSettings` вимкнено → усі завдання використовують глобальний `activeProvider` + +### Рекомендовані конфігурації + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## Архітектура виклику API + +### Шари транспортування + +1. **Obsidian `requestUrl`** — основний (вбудований, працює на всіх платформах) +2. **Desktop HTTP** — модулі Node.js `http`/`https` (стрімінг + довгі запити) +3. **Web `fetch`** — альтернатива, коли модулі Node.js недоступні + +Плагін автоматично перемикається між шарами транспортування при тимчасових проблемах мережі. + +### Логіка повторних спроб + +- **Звичайний режим** (`enableStableApiCall: false`): Одна спроба. При тимчасовій невдачі автоматично переходить до стабільної повторної спроби. +- **Режим стабільних повторних спроб** (`enableStableApiCall: true`): До 4 спроб (1 + 3 повторні спроби) з інтервалом у 5 секунд. +- **Тимчасові помилки, що викликають повторну спробу**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **Не підлягають повторній спробі**: HTTP 400, 401, 403, 404 + +### Кешування відповідей + +5-хвилинний кеш у пам’яті типу LRU, ключується за постачальником + моделлю + температурою + запитом + контентом. Наступні ідентичні запити протягом 5 хвилин повертають результати з кешу миттєво. + +### Обробка моделей міркувань + +Моделі, які не підтримують роль `system` (DeepSeek R1, OpenAI o1/o3/o4/gpt-5), автоматично об’єднують системні та користувацькі запити в одне повідомлення користувача. + +DeepSeek-специфічно: `thinkingEnabled` додає `{ thinking: { type: 'enabled' } }` до запиту. `reasoningEffort` (низький/середній/високий) передається як `reasoning_effort`. Перевіряє, чи максимальна кількість токенів вихідних даних ≥ 8000 під час роботи моделі. + +### Оцінка кількості токенів + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — евристика 4 символи на токен. Використовується для забезпечення `maxResearchContentTokens` перед надсиланням до LLM. + +Трекінг витрат не реалізований. + +## Відкриття моделей + +| Режим | Постачальники | Кінцева точка | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | Список моделей API | +| `anthropic-models` | Anthropic | Список моделей API | +| `openai-compatible-models` | DeepSeek, Qwen, Mistral тощо. | `/v1/models` | +| `openrouter-models` | OpenRouter | Список моделей API | +| `github-models` | GitHub Models | Інференс API | +| `none` | Azure OpenAI | Вимкнено (требується назва розгортання) | + +## Швидкий старт + +1. **Виберіть постачальника** — DeepSeek (Китай), OpenAI (Міжнародний) або Ollama (Локальний/Безкоштовний) +2. **Введіть ключ API** — Налаштування → Notemd → Постачальник → Ключ API +3. **Перевірити з’єднання** — Натисніть кнопку тесту +4. **Необов’язково: моделі за завданням** — Увімкніть `useMultiModelSettings` та налаштуйте їх окремо + +Для Ollama: ключ API не потрібен. Просто переконайтеся, що `ollama serve` працює. + +--- + +## Наступні кроки + +- 📝 [Примітки до концепції](/docs/features/concept-notes) — Використовує модель екстракції за завданням +- 🎨 [Діаграми](/docs/features/diagrams) — Використовує модель діаграм за завданням +- 🔍 [Дослідження](/docs/features/research) — Використовує спеціалізовану модель для досліджень +- ⚙️ [Налаштування](/docs/getting-started/configuration) — Повний посібник з налаштувань diff --git a/website/i18n/uk/docusaurus-theme-classic/footer.json b/website/i18n/uk/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/uk/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/uk/docusaurus-theme-classic/navbar.json b/website/i18n/uk/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/uk/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/vi/code.json b/website/i18n/vi/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/vi/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/vi/docusaurus-plugin-content-docs/current.json b/website/i18n/vi/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/vi/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/vi/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/vi/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..7601495a --- /dev/null +++ b/website/i18n/vi/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "Xử lý theo lô" +description: "Xử lý nhiều tập tin một cách hiệu quả" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# Xử lý theo lô + +<TLDR> +**Notemd xử lý toàn bộ thư mục trong một thao tác duy nhất với khả năng điều chỉnh đồng thời và kiểm soát ghi đè.** Nhấp chuột phải vào một thư mục để thêm liên kết wiki theo lô, trích xuất khái niệm, nghiên cứu hoặc dịch tất cả ghi chú bên trong. Giới hạn đồng thời ngăn chặn các lỗi giới hạn tốc độ API. Tiến trình được báo cáo theo từng tập tin. Hành vi ghi đè có thể được thiết lập: bỏ qua tập tin hiện có, thêm vào hoặc thay thế. Các tập tin thất bại sẽ được ghi nhật ký mà không làm dừng quá trình xử lý theo lô. + +Đây là một phần của [Obsidian Hướng dẫn Quản lý Kiến thức AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Tổng quan + +Xử lý theo lô biến một thư mục chứa ghi chú thành một thao tác duy nhất. Thay vì mở từng ghi chú và chạy các lệnh riêng lẻ, bạn chỉ cần nhấp chuột phải vào thư mục và chọn nhiệm vụ. Notemd sẽ duyệt qua từng tập tin `.md`, áp dụng hành động đã chọn và báo cáo tiến trình theo thời gian thực. + +Tính năng này rất quan trọng cho việc trích xuất kiến thức trên toàn bộ kho lưu trữ. Ví dụ, sau khi nhập hàng chục tập tin PDF, việc thêm liên kết theo lô tiếp theo là trích xuất khái niệm theo lô sẽ giúp xây dựng đồ thị kiến thức của bạn trong vài phút thay vì vài giờ. + +## Cách thức hoạt động + +### Mô hình thực thi theo lô + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **Thu thập tập tin** -- Notemd quét thư mục mục tiêu một cách tuần tự (hoặc chỉ ở cấp độ cao nhất, tùy theo cài đặt) và thu thập tất cả các tập tin `.md`. +2. **Phân chia đồng thời** -- Các tập tin được chia thành các nhóm dựa trên thiết lập `batchConcurrency`. Mỗi nhóm được chạy song song; các nhóm khác thì chạy theo thứ tự. +3. **Thực thi** -- Mỗi tập tin được xử lý bằng cùng một logic như lệnh dành cho tập tin đơn lẻ. Các thiết lập của nhà cung cấp và mô hình cho từng nhiệm vụ sẽ được tuân thủ. +4. **Báo cáo tiến trình** -- Một thông báo hiện lên sẽ được cập nhật sau mỗi tập tin được xử lý xong, hiển thị tỷ lệ `N / Total` đã hoàn thành. +5. **Xử lý lỗi** -- Nếu một tập tin gặp sự cố (API lỗi, hết thời gian chờ mạng, v.v.), lỗi sẽ được ghi nhật ký và quá trình xử lý theo lô vẫn tiếp tục. Bảng tóm tắt cuối cùng sẽ liệt kê các tập tin thất bại. +6. **Hoàn thành** -- Một thông báo tóm tắt sẽ hiển thị tổng số tập tin đã xử lý, số lượng thành công và số lượng thất bại. + +### Hành vi ghi đè + +Khi xử lý một tệp đã chứa các liên kết wiki, ghi chú khái niệm hoặc bản dịch, hành vi của Notemd phụ thuộc vào thiết lập ghi đè: + +| Chế độ | Hành vi | +|------|----------| +| **Bỏ qua** | Nội dung hiện có sẽ không bị thay đổi. Chỉ những tệp chưa được chỉnh sửa mới được xử lý. | +| **Thêm vào cuối** (mặc định) | Nội dung mới sẽ được thêm vào cuối. Các liên kết wiki, khái niệm hoặc bản dịch hiện có sẽ được giữ nguyên. | +| **Thay thế** | Tệp sẽ được xử lý lại hoàn toàn. Tất cả các thay đổi trước đó của Notemd sẽ bị ghi đè. | + +Đối với việc tạo liên kết wiki cụ thể: nếu một ghi chú đã chứa `[[wiki-links]]`, chế độ **Bỏ qua** sẽ để nguyên nó, trong khi chế độ **Thay thế** sẽ gửi toàn bộ ghi chú đến LLM để chèn liên kết mới. Hãy dùng **Bỏ qua** cho việc xử lý từng phần và **Thay thế** cho việc xử lý lại sau khi nâng cấp mô hình. + +### Kiểm soát đồng thời + +Thiết lập `batchConcurrency` giới hạn số lượng yêu cầu API được thực hiện song song. Điều này ngăn chặn các lỗi giới hạn tốc độ (HTTP 429) khi xử lý các thư mục lớn trên các nhà cung cấp có giới hạn nghiêm ngặt. + +| Đồng thời | Khuyến nghị sử dụng cho | Tác động tiêu biểu đến giới hạn tốc độ | +|-------------|----------------|---------------------------| +| `1` | Gói miễn phí, các nhà cung cấp nghiêm ngặt | Không có (số seri) | +| `3` (mặc định) | Hầu hết các nhà cung cấp đám mây | Thấp | +| `5` | Ollama (địa phương), các gói hào phóng | Không có / Thấp | +| `10` | Các mô hình địa phương với khả năng suy luận nhanh | Không có | + +Nếu bạn gặp lỗi 429 khi xử lý theo nhóm, hãy giảm số lượng đồng thời xuống còn 1 hoặc 2. + +## Cấu hình + +| Thiết lập | Mặc định | Tác động | +|---------|---------|--------| +| `batchConcurrency` | `3` | Số lượng yêu cầu song song tối đa API trong các thao tác thư mục | +| `batchOverwriteExisting` | `false` | Ghi đè nội dung Notemd hiện có. `false` = chế độ ghi thêm. | +| `batchSkipProcessed` | `false` | Bỏ qua các tệp đã chứa dấu hiệu Notemd (ví dụ: liên kết wiki) | +| `batchRecursive` | `true` | Bao gồm các thư mục con khi quét thư mục | +| `enableStableApiCall` | `false` | Kích hoạt logic thử lại (tối đa 4 lần) cho mỗi tệp trong quá trình xử lý theo nhóm | + +### Các mô hình riêng cho từng nhiệm vụ trong quá trình xử lý theo nhóm + +Mỗi thao tác theo nhóm sẽ sử dụng mô hình tương ứng với nhiệm vụ đó. batch-add-links sử dụng `addLinksProvider`, batch-research sử dụng `researchProvider`, và cứ thế. Điều này cho phép bạn sử dụng các mô hình rẻ tiền cho các thao tác với khối lượng lớn và giữ lại các mô hình đắt tiền cho những nhiệm vụ yêu cầu chất lượng cao. + +## Ví dụ + +Bạn có một thư mục `papers/` chứa 40 ghi chú nghiên cứu được nhập vào. Bạn muốn thêm các liên kết wiki và trích xuất các khái niệm từ tất cả chúng: + +1. Nhấp chuột phải vào thư mục `papers/` +2. Chọn **"Notemd: Xử lý thư mục (thêm liên kết)"** +3. Notemd quét thư mục, tìm thấy 40 tệp `.md` và xử lý 3 tệp mỗi lần (độ đồng thời mặc định) +4. Một thông báo tiến trình hiển thị: `12/40 files processed...` +5. Sau khoảng 3 phút, một thông báo tổng kết báo cáo: `39 succeeded, 1 failed (API timeout on paper-37.md)` +6. Lặp lại với **"Notemd: Xử lý thư mục (trích xuất khái niệm)"** để tạo các ghi chú khái niệm cho tất cả 40 tệp + +Tệp bị thất bại sẽ được ghi nhật ký. Bạn có thể chạy lại chỉ trên tệp đó sau này. + +## Mẹo + +- **Bắt đầu với độ đồng thời thấp** -- Nếu bạn không chắc về giới hạn tốc độ của nhà cung cấp, hãy bắt đầu với `1` và tăng dần. +- **Sử dụng chế độ bỏ qua để cập nhật từng phần** -- Sau lô đầy đủ đầu tiên, chuyển sang `batchSkipProcessed: true` để chỉ xử lý các ghi chú mới trong các lần chạy sau. +- **Kích hoạt các cuộc gọi API ổn định** -- `enableStableApiCall: true` thêm logic thử lại giúp phục hồi từ các lỗi mạng tạm thời trong các lô xử lý dài. +- **Chạy lại sau khi nâng cấp mô hình** -- Nếu bạn chuyển sang mô hình tốt hơn, hãy thiết lập `batchOverwriteExisting: true` và chạy lại để có được các liên kết và khái niệm tốt hơn. + +--- + +## Các bước tiếp theo + +- [Workflows](/docs/features/workflows) -- Kết nối các nhiệm vụ theo lô thành các nút bên cạnh một cú nhấp +- [Custom Prompts](/docs/advanced/custom-prompts) -- Tùy chỉnh các mẫu câu hỏi cho việc trích xuất theo lô +- [Troubleshooting](/docs/advanced/troubleshooting) -- Khắc phục các lỗi giới hạn tốc độ và sự cố kết nối trong quá trình chạy theo lô +- [LLM Các nhà cung cấp](/docs/providers/overview) -- Tham chiếu cấu hình mô hình theo nhiệm vụ diff --git a/website/i18n/vi/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/vi/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..b3ca9619 --- /dev/null +++ b/website/i18n/vi/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "Các mẫu yêu cầu tùy chỉnh" +description: "Tùy chỉnh các mẫu yêu cầu LLM theo nhu cầu của bạn" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# Các mẫu yêu cầu tùy chỉnh + +<TLDR> +**Notemd cho phép bạn thay thế mẫu yêu cầu mặc định LLM cho mọi loại nhiệm vụ.** Các mẫu yêu cầu tùy chỉnh giúp bạn kiểm soát những gì mô hình ưu tiên: bạn có thể giới hạn việc trích xuất khái niệm trong một lĩnh vực cụ thể, thay đổi phong cách liên kết, hoặc điều chỉnh giọng văn dịch thuật. Các biến mẫu như `{{content}}` và `{{concept}}` sẽ được thay thế tại thời điểm chạy. Tính năng lĩnh vực học tập tập trung sẽ đặt trước tên lĩnh vực nghiên cứu của bạn để tự động giới hạn kết quả trích xuất. + +Đây là một phần của [Obsidian Hướng dẫn Quản lý Kiến thức AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Tổng quan + +Các mẫu yêu cầu có sẵn của Notemd được viết cho công việc kiến thức tổng quát. Chúng hoạt động tốt trên nhiều lĩnh vực, nhưng vẫn còn chỗ để cải thiện theo từng lĩnh vực cụ thể. Các mẫu yêu cầu tùy chỉnh cho phép bạn chỉ định rõ cho LLM cách hoạt động phù hợp với trường hợp sử dụng của mình – dù đó là chỉ trích xuất thuật ngữ y tế, chỉ liên kết các thực thể có tên, hay dịch thuật theo phong cách trang trọng. + +Các mẫu yêu cầu tùy chỉnh không thay thế toàn bộ mẫu yêu cầu hệ thống. Chúng sẽ thay thế hoặc bổ sung phần **hướng dẫn riêng cho từng nhiệm vụ** trong khi vẫn giữ nguyên định dạng kết quả cấu trúc (ví dụ: các dòng `CONCEPT:`, cú pháp liên kết wiki) mà Notemd dựa vào để phân tích. + +## Cách thức hoạt động + +### Kiến trúc mẫu yêu cầu + +Mỗi nhiệm vụ Notemd đều tuân theo cùng một cấu trúc mẫu yêu cầu: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **Mẫu yêu cầu hệ thống cơ bản** -- Đặt vai trò của trợ lý. Không thể thay thế. +2. **Lĩnh vực học tập tập trung** -- Đặt trước `Relevant Fields: [medicine / law / computer science / ...]` để giới hạn phạm vi. Đây là tùy chọn thiết lập, không phải mẫu yêu cầu nguyên thủy. +3. **Mẫu yêu cầu nhiệm vụ tùy chỉnh** -- Thay thế các hướng dẫn nhiệm vụ mặc định (ví dụ: loại khái niệm nào cần trích xuất, mức độ liên kết mạnh như thế nào). +4. **Định dạng kết quả** -- Các quy tắc cấu trúc (các dòng `CONCEPT:`, định dạng liên kết wiki). Luôn được Notemd thêm vào cuối để đảm bảo khả năng phân tích. +5. **Nội dung** -- Văn bản ghi chú thực tế, được thay thế tại thời điểm chạy thông qua `{{content}}`. + +### Các biến mẫu yêu cầu + +Các biến sẽ được thay thế khi thực thi. Các biến có sẵn khác nhau tùy theo nhiệm vụ: + +| Biến | Các nhiệm vụ | Đã thay thế bằng | +|----------|-------|---------------| +| `{{content}}` | Tất cả | Văn bản ghi chú hoặc văn bản được chọn | +| `{{concept}}` | Mẫu ghi chú ý tưởng | Tên ý tưởng đã trích xuất | +| `{{description}}` | Mẫu ghi chú ý tưởng | Mô tả ý tưởng được tạo ra bởi LLM | +| `{{backlinks}}` | Mẫu ghi chú ý tưởng | Danh sách các ghi chú nguồn kèm liên kết | +| `{{date}}` | Mẫu ghi chú ý tưởng | Ngày hiện tại (YYYY-MM-DD) | +| `{{language}}` | Dịch thuật | Ngôn ngữ đầu ra mục tiêu | +| `{{source}}` | Mẫu ghi chú ý tưởng | Tên tệp gốc của ghi chú | + +### Lĩnh vực học tập tập trung + +Tính năng học tập tập trung là một cách tắt để xác định phạm vi lĩnh vực. Thay vì viết một mẫu yêu cầu tùy chỉnh ghi rõ lĩnh vực của bạn, bạn chỉ cần thiết lập `focusedLearningDomain` trong cài đặt: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +Điều này sẽ thêm `Relevant Fields: [medicine]` vào mẫu yêu cầu trích xuất, khiến LLM ưu tiên các khái niệm liên quan đến lĩnh vực và loại bỏ những khái niệm chung. Phương pháp này nhẹ hơn so với mẫu yêu cầu tùy chỉnh đầy đủ và hoạt động được trên mọi nhiệm vụ trích xuất. + +## Cấu hình + +| Thiết lập | Mặc định | Tác động | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | Đặt lại mẫu yêu cầu nhiệm vụ thêm liên kết mặc định | +| `customExtractConceptsPrompt` | `''` | Đặt lại mẫu yêu cầu trích xuất khái niệm mặc định | +| `customResearchPrompt` | `''` | Đặt lại mẫu yêu cầu nghiên cứu + tóm tắt mặc định | +| `customTranslatePrompt` | `''` | Đặt lại mẫu yêu cầu dịch thuật mặc định | +| `customDiagramPrompt` | `''` | Đặt lại mẫu yêu cầu tạo sơ đồ mặc định | +| `focusedLearningDomain` | `''` | Thêm bối cảnh lĩnh vực vào các mẫu yêu cầu trích xuất và liên kết | +| `extractConceptsMinimalTemplate` | `true` | Sử dụng mẫu ghi chú khái niệm chỉ chứa tiêu đề (ảnh hưởng đến phạm vi mẫu `{{concept}}`) | +| `customConceptNoteTemplate` | `''` | Đặt lại mẫu tệp ghi chú khái niệm với khả năng hỗ trợ biến đầy đủ | + +**Khi trường mẫu yêu cầu tùy chỉnh trống, mẫu yêu cầu mặc định sẽ được sử dụng.** + +## Ví dụ + +Bạn là nhà nghiên cứu y học đang trích xuất các khái niệm từ ghi chú thử nghiệm lâm sàng. Mẫu yêu cầu mặc định sẽ trích xuất cả các danh từ chung lẫn thuật ngữ y khoa, khiến thư mục khái niệm của bạn bị lộn xộn. + +**Giải pháp:** Thiết lập một lĩnh vực học tập tập trung và một mẫu yêu cầu trích xuất tùy chỉnh. + +1. Đặt `focusedLearningDomain` thành `medicine` +2. Đặt `customExtractConceptsPrompt` thành: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +Khi bạn chạy lệnh "Extract concepts" trên một ghi chú lâm sàng, LLM sẽ tạo ra: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +Thay vì hành vi mặc định có thể trích xuất những thuật ngữ chung không mong muốn như "hospital" hoặc "month". + +## Mẹo + +- **Hãy bắt đầu với lĩnh vực học tập cụ thể** trước khi viết một mẫu yêu cầu tùy chỉnh đầy đủ. Cách này có thể đáp ứng 80% các trường hợp sử dụng chỉ với một thiết lập duy nhất. +- **Giữ nguyên định dạng kết quả** -- Đừng bao giờ xóa các hướng dẫn về định dạng như "mỗi dòng một mục" hoặc "CONCEPT: prefix" khỏi các mẫu yêu cầu tùy chỉnh. Bộ phân tích của Notemd phụ thuộc vào chúng. +- **Thử nghiệm với một ghi chú duy nhất trước** -- Các mẫu yêu cầu tùy chỉnh có thể gây ra những tác động bất ngờ đối với phạm vi trích xuất. Hãy kiểm tra trên một ghi chú trước khi xử lý theo nhóm. +- **Giữ cho các mẫu yêu cầu ngắn gọn** -- Các mẫu yêu cầu quá dài sẽ tiêu tốn token và có thể làm giảm mức độ tập trung của mô hình. + +--- + +## Các bước tiếp theo + +- [Wiki-Links](/docs/features/wiki-links) -- Những gì sẽ được liên kết khi bạn tùy chỉnh mẫu yêu cầu add-links +- [Concept Notes](/docs/features/concept-notes) -- Các mẫu ghi chú khái niệm và biến `{{concept}}` +- [Batch Processing](/docs/advanced/batch-processing) -- Áp dụng các mẫu yêu cầu tùy chỉnh cho toàn bộ thư mục +- [Troubleshooting](/docs/advanced/troubleshooting) -- Khắc phục các vấn đề khi các mẫu yêu cầu tùy chỉnh tạo ra kết quả bất ngờ diff --git a/website/i18n/vi/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/vi/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..379d1ac0 --- /dev/null +++ b/website/i18n/vi/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "Khắc phục sự cố" +description: "Các vấn đề thường gặp và giải pháp" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Khắc phục sự cố + +<TLDR> +**Hầu hết Notemd các sự cố thuộc về bốn nhóm: các vấn đề chính API, kết nối mạng, lỗi xác thực (401/403), và giới hạn tần suất (429).** Bộ kiểm tra kết nối tích hợp và bảng chẩn đoán giúp xác định nguyên nhân gốc rễ một cách nhanh chóng. Trang này trình bày mọi thông báo lỗi phổ biến, nguyên nhân và cách sửa chữa. Đối với các sự cố không được liệt kê ở đây, hãy báo cáo chúng trên GitHub Issues kèm theo kết quả chẩn đoán. + +Đây là một phần của [Obsidian Hướng dẫn Quản lý Kiến thức AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Tổng quan + +Notemd phụ thuộc vào các dịch vụ bên ngoài -- các nhà cung cấp LLM và công cụ tìm kiếm API -- vì vậy hầu hết các vấn đề xuất phát từ bên ngoài chính plugin. Bảng chẩn đoán trong phần cài đặt cung cấp cái nhìn có cấu trúc về cuộc gọi API gần nhất, bao gồm yêu cầu URL, trạng thái phản hồi và nội dung lỗi. Hãy kiểm tra nó trước mỗi khi tiếp tục điều tra. + +## Cách hoạt động: Chẩn đoán + +### Kiểm tra kết nối + +Mỗi mục cấu hình nhà cung cấp đều có nút **“Kiểm tra kết nối”**. Khi nhấp vào nó sẽ gửi một yêu cầu API tối giản (thường là danh sách mô hình hoặc kết quả hoàn thành ngắn) và báo cáo kết quả thành công hoặc lỗi HTTP cụ thể. Đây là cách nhanh nhất để xác minh rằng khóa API và cơ sở URL của bạn đúng. + +### Bảng chẩn đoán + +**Cài đặt --> Notemd --> Chẩn đoán** hiển thị: + +| Trường | Nội dung | +|-------|---------| +| Nhà cung cấp cuối cùng | Nhà cung cấp nào được gọi gần nhất | +| Mô hình cuối cùng | Mô hình nào được gọi gần nhất | +| Trạng thái cuối cùng | Mã trạng thái HTTP hoặc lỗi truyền dữ liệu | +| Lỗi cuối cùng | Thông báo lỗi nguyên bản từ API | +| Yêu cầu cuối cùng URL | Toàn bộ URL của yêu cầu cuối cùng (giá trị API đã được ẩn) | +| Nội dung phản hồi cuối cùng | Phần nội dung phản hồi bị cắt ngắn (500 ký tự đầu tiên) | + +Hãy sao chép toàn bộ kết quả chẩn đoán khi báo cáo sự cố trên GitHub. + +## Các lỗi thường gặp + +### Khóa API không hợp lệ hoặc thiếu + +**Triệu chứng:** HTTP 401 hoặc "Khóa API được cung cấp không chính xác" + +**Nguyên nhân:** Khóa API bị thiếu, chứa khoảng trắng, hoặc thuộc về nhà cung cấp khác. + +**Cách khắc phục:** +1. Kiểm tra xem khóa không có khoảng trắng ở đầu hoặc cuối +2. Đảm bảo khóa tương ứng với nhà cung cấp đã chọn (khóa OpenAI sẽ không hoạt động với Anthropic) +3. Kiểm tra xem tài khoản của bạn có điểm tín dụng hoặc gói đăng ký hiệu lực hay không +4. Nhấp vào **"Test Connection"** để xác minh + +### Lỗi mạng / Kết nối + +**Triệu chứng:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**Nguyên nhân:** Đầu cuối API không thể truy cập được từ máy của bạn. + +**Giải pháp:** +1. Kiểm tra kết nối Internet của bạn +2. Nếu đang ở sau proxy hoặc tường lửa, hãy kiểm tra xem tên miền API có bị chặn hay không +3. Đối với Ollama: xác nhận rằng `ollama serve` đang chạy (`ollama list` nên trả về các mô hình) +4. Đối với LMStudio: xác nhận rằng máy chủ đang chạy trên `localhost:1234` +5. Thử phương thức truyền dữ liệu khác – người dùng di động nên đảm bảo rằng phương thức `requestUrl` đang được kích hoạt +6. Kích hoạt `enableStableApiCall` để tự động thử lại khi xảy ra lỗi tạm thời + +### 403 Forbidden + +**Triệu chứng:** HTTP 403 + +**Nguyên nhân:** Khóa API của bạn vẫn hợp lệ nhưng không có quyền truy cập vào tài nguyên được yêu cầu. + +**Giải pháp:** +1. Một số mô hình yêu cầu quyền truy cập đặc biệt (ví dụ, GPT-4 qua Azure đòi hỏi tên triển khai) +2. Một số nhà cung cấp hạn chế các mô hình theo cấp độ gói – vui lòng kiểm tra tài khoản của bạn +3. Có thể có các hạn chế theo khu vực (một số nhà cung cấp ở Trung Quốc chặn IP quốc tế và ngược lại) +4. Hãy kiểm tra xem tên mô hình có được viết đúng không (ví dụ, `gpt-4o` chứ không phải `gpt-4o-mini` khi mô hình nhỏ là tất cả những gì gói của bạn cho phép) + +### Giới hạn tốc độ (429) + +**Triệu chứng:** HTTP 429 hoặc "Giới hạn tốc độ đã vượt quá" + +**Nguyên nhân:** Có quá nhiều yêu cầu trong một khoảng thời gian ngắn. + +**Giải pháp:** +1. Giảm `batchConcurrency` xuống còn `1` hoặc `2` +2. Chờ vài phút trước khi thử lại +3. Kiểm tra tài liệu về giới hạn tốc độ của nhà cung cấp dành cho cấp độ gói của bạn +4. Kích hoạt `enableStableApiCall` để tự động thử lại với việc trì hoãn +5. Cân nhắc chuyển sang nhà cung cấp có giới hạn cao hơn (DeepSeek, Ollama) + +### Mô hình không tìm thấy + +**Triệu chứng:** "Mô hình không tìm thấy" hoặc HTTP 404 + +**Nguyên nhân:** Tên mô hình không tồn tại trên nhà cung cấp đã chọn. + +**Giải pháp:** +1. Nhấn **"Get Model List"** để xem tất cả các mô hình có sẵn cho nhà cung cấp của bạn +2. Một số tên mô hình thay đổi theo thời gian -- hãy kiểm tra tên hiện tại trong tài liệu hướng dẫn của nhà cung cấp +3. Đối với Ollama: chạy `ollama list` để xem các mô hình đã được tải; chỉ những mô hình đã tải xuống mới có sẵn + +### Không có liên kết / Không tạo ra khái niệm nào + +**Triệu chứng:** Lệnh được chạy nhưng không tạo ra đầu ra nào + +**Nguyên nhân:** LLM trả về phản hồi trống hoặc không thể giải mã được. + +**Giải pháp:** +1. Kiểm tra bảng điều khiển chẩn đoán để xem phản hồi thực tế của LLM +2. Thử sử dụng một mô hình mạnh hơn (một số mô hình nhỏ gặp khó khăn trong việc tạo đầu ra có cấu trúc) +3. Đảm bảo ghi chú có nội dung đủ dài (>50 từ) +4. Xem xét lời nhắc tùy chỉnh của bạn để loại bỏ các hướng dẫn mâu thuẫn +5. Tạm thời vô hiệu hóa việc ức chế từ đồng nghĩa để xem liệu nó có đang lọc quá mức hay không + +### ID Đầu cuối Doubao bị thiếu + +**Triệu chứng:** Xuất hiện lỗi khi sử dụng nhà cung cấp ByteDance Doubao + +**Nguyên nhân:** Doubao yêu cầu một ID đầu cuối Ark (định dạng: `ep-xxxxxxxx-xxxx-xxxx`) thay vì tên mô hình. + +**Sửa lỗi:** Thay thế mô hình đại diện mặc định bằng ID endpoint thực tế của bạn từ bảng điều khiển Volcengine. + +## Cấu hình + +| Cài đặt chẩn đoán | Vị trí | Mục đích | +|--------------------|----------|---------| +| **Kiểm tra kết nối** | Mục Cài đặt --> Mục Provider | Kiểm tra khóa API và khả năng kết nối | +| **Lấy danh sách mô hình** | Mục Cài đặt --> Mục Provider | Xác nhận các mô hình nào có thể truy cập được | +| `enableStableApiCall` | Mục Cài đặt --> Nâng cao | Kích hoạt việc thử lại với chế độ backoff | +| `batchConcurrency` | Mục Cài đặt --> Nhóm xử lý | Kiểm soát tính song song để tránh giới hạn tốc độ | + +## Cách báo cáo sự cố + +Nếu sự cố của bạn không được đề cập ở trên: + +1. Mở **Cài đặt --> Notemd --> Chẩn đoán** +2. Sao chép toàn bộ kết quả chẩn đoán +3. Mở một vấn đề trên GitHub tại [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +4. Bao gồm: phiên bản Obsidian, phiên bản Notemd, nhà cung cấp, mô hình, kết quả chẩn đoán và các bước để tái tạo tình huống +5. Che giấu khóa API của bạn khỏi bất kỳ log nào được chia sẻ + +--- + +## Các bước tiếp theo + +- [LLM Providers](/docs/providers/overview) -- Tài liệu tham khảo đầy đủ về cấu hình nhà cung cấp +- [Batch Processing](/docs/advanced/batch-processing) -- Cài đặt đồng thời và thử lại cho các thao tác lớn +- [Custom Prompts](/docs/advanced/custom-prompts) -- Sửa chữa hành vi bất ngờ của LLM bằng cách điều chỉnh các mệnh lệnh diff --git a/website/i18n/vi/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/vi/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..38c175a2 --- /dev/null +++ b/website/i18n/vi/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "Câu hỏi thường gặp" +description: "Những câu hỏi phổ biến về việc cài đặt, tính năng và cách sử dụng Notemd" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# Câu hỏi thường gặp + +<TLDR> +**Các câu trả lời nhanh cho những câu hỏi Notemd phổ biến nhất.** Bao gồm cài đặt (cấu hình trong 5 phút), hỗ trợ hơn 30 nhà cung cấp LLM, các tùy chọn mô hình địa phương/cloud, quy trình làm việc một cú nhấp chuột, UI đa ngôn ngữ (21 ngôn ngữ), tự động hóa liên kết wiki, tích hợp nghiên cứu, quy trình đọc PDF, tạo sơ đồ, và giấy phép mã nguồn mở. Tất cả các tính năng đều hoạt động ngoại tuyến với Ollama. +</TLDR> + +--- + +## Cài đặt & Thiết lập + +### Làm thế nào để cài đặt Notemd trong Obsidian? + +Mở Obsidian → **Settings → Community Plugins → Browse** → tìm kiếm **"Notemd"** → **Install** → **Enable**. + +**Yêu cầu:** +- Obsidian 0.15.0+ +- Hỗ trợ trên máy tính để bàn (Windows, macOS, Linux) và thiết bị di động (iOS, Android) + +**Cài đặt thủ công:** +1. Tải về `main.js`, `styles.css`, `manifest.json` từ [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) +2. Đặt chúng vào `<your-vault>/.obsidian/plugins/notemd/` +3. Tải lại Obsidian và kích hoạt plugin + +**Thống kê:** hơn 4k lần tải xuống, 44 phiên bản phát hành, được cấp phép MIT. + +--- + +## Cấu hình LLM + +### Notemd hỗ trợ những nhà cung cấp LLM nào? + +Notemd hỗ trợ **hơn 30 nhà cung cấp**: + +**Các nhà cung cấp đám mây:** +- OpenAI (GPT-4, GPT-4o, GPT-4o-mini, o1, o3) +- Anthropic (Claude Opus, Sonnet, Haiku) +- Google (Gemini Pro, Flash, Ultra) +- xAI (Grok) +- Mistral, DeepSeek, Qwen, Moonshot, GLM + +**Tập trung vào Trung Quốc:** +- Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax +- Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow + +**Địa phương/tự cài đặt:** +- Ollama +- LM Studio +- Bất kỳ điểm cuối tương thích OpenAI nào + +**Các cổng:** +- Azure OpenAI, OpenRouter, Together AI, Groq, AIHubMix +- GitHub Models, Fireworks, LiteLLM, Nebius, Cerebras +- Hugging Face, Vercel AI Gateway, Requesty + +### Liệu Notemd có thể hoạt động với các LLM cục bộ không? + +**Có, được hỗ trợ đầy đủ.** Notemd hoạt động với: +- **Ollama** ( tích hợp sẵn) +- **LM Studio** (thông qua điểm cuối tương thích OpenAI) +- **vLLM, LocalAI, text-generation-webui** (thông qua chế độ tương thích OpenAI) + +Tất cả các nhiệm vụ đều hoạt động với các mô hình cục bộ: liên kết, tạo khái niệm, dịch thuật, nghiên cứu và tạo sơ đồ. + +**Ví dụ kết hợp:** +- Ollama (cục bộ) để liên kết → nhanh, riêng tư, không tốn phí +- OpenAI cho công việc nghiên cứu → chất lượng cao, tích hợp tìm kiếm web +- Gemini cho dịch thuật → hỗ trợ đa mô thức + +### Làm thế nào để cấu hình các mô hình khác nhau cho các nhiệm vụ khác nhau? + +Trong **Cài đặt Notemd**, mỗi nhiệm vụ có các bộ lựa chọn nhà cung cấp/mô hình riêng biệt: + +| Nhiệm vụ | Cấu hình ví dụ | +|------|----------------------| +| **Kết nối** | DeepSeek (nhanh, rẻ) | +| **Tạo khái niệm** | Claude Opus (chất lượng cao) | +| **Nghiên cứu** | Perplexity hoặc GPT-4o (dựa trên web) | +| **Dịch thuật** | Gemini Flash (đa phương thức) | +| **Tạo sơ đồ** | Ollama (địa phương, riêng tư) | + +Việc tối ưu hóa theo từng nhiệm vụ này cân bằng giữa tốc độ, chi phí và chất lượng. + +--- + +## Tính năng cốt lõi + +### Notemd khác biệt với ChatGPT như thế nào khi đọc tài liệu? + +| Chiều kích | ChatGPT | Notemd | +|-----------|---------|--------| +| **Vị trí xuất ra** | Lịch sử trò chuyện (tạm thời) | Obsidian kho lưu trữ (tệp bền vững) | +| **Định dạng kết quả** | Trả lời dạng văn bản | Liên kết wiki, ghi chú khái niệm, sơ đồ, bản dịch | +| **Giá trị lâu dài** | Biến mất sau phiên làm việc | Tích lũy thành cơ sở kiến thức | +| **Khả năng tái sử dụng** | Phải truy vấn lại | Các tệp vẫn tồn tại, liên kết được cập nhật | + +**Sử dụng ChatGPT cho:** Câu hỏi và trả lời nhanh, giải thích một lần +**Sử dụng Notemd cho:** Xây dựng cơ sở kiến thức có cấu trúc và bền vững trong vài tuần/tháng + +### Notemd thêm liên kết wiki vào ghi chú như thế nào? + +**Quy trình:** +1. Bạn chạy lệnh "Xử lý tệp (thêm liên kết)" trên một ghi chú +2. Notemd gửi văn bản đó đến LLM đã được cấu hình của bạn +3. LLM xác định các khái niệm chính trong ngữ cảnh +4. Notemd chèn `[[wiki-links]]` vào mỗi lần xuất hiện của khái niệm +5. Tùy chọn, nó tự động tạo các ghi chú khái niệm trong thư mục mà bạn chỉ định + +**Các tính năng:** +- Loại bỏ từ đồng nghĩa (tránh sự trùng lặp giữa "transformer" và "transformers") +- Liên kết ngược từ các ghi chú khái niệm đến nguồn gốc +- Bảo toàn tính toàn vẹn liên kết khi đổi tên hoặc xóa +- Chế độ trích xuất thuần túy (trích xuất khái niệm mà không sửa đổi bản gốc) + +### Quy trình một cú nhấp chuột của Notemd là gì? + +**Các quy trình một cú nhấp chuột** kết hợp nhiều thao tác thành một **nút bên cạnh duy nhất**. + +**Quy trình mặc định:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**Kết quả:** Một cú nhấp sẽ thực hiện các việc sau: +1. Thêm liên kết wiki vào ghi chú hiện tại +2. Tạo ghi chú khái niệm cho các thuật ngữ mới +3. Nghiên cứu và bổ sung thông tin nền +4. Nén thành một sơ đồ Mermaid + +**Các quy trình làm việc tùy chỉnh:** Bạn có thể định nghĩa riêng chúng trong Phần thiết lập bằng định dạng DSL. Mỗi quy trình sẽ trở thành một nút bên cạnh có thể tái sử dụng. + +### Notemd so sánh như thế nào với Copilot hoặc Smart Connections? + +Các tiện ích mở rộng này giải quyết những vấn đề khác nhau: + +- **Copilot** — Ưu tiên trò chuyện. Bạn trò chuyện với AI về các ghi chú của mình. Các câu trả lời của AI sẽ ở trong bảng trò chuyện; chúng không thay đổi kho lưu trữ của bạn. +- **Smart Connections** — Ưu tiên khám phá. Nó tìm các ghi chú có ý nghĩa tương tự bằng cách sử dụng embedding. Nó không tạo ra hay chỉnh sửa nội dung. +- **Notemd** — Ưu tiên viết lách. AI xử lý các ghi chú của bạn và tạo ra các kết quả có cấu trúc (liên kết wiki, ghi chú khái niệm, nghiên cứu, sơ đồ, bản dịch) rồi lưu trực tiếp vào kho lưu trữ của bạn dưới dạng các tệp vĩnh viễn. + +| Những gì bạn cần | Tiện ích mở rộng được khuyến nghị | +|----------------|-------------------| +| Trò chuyện với AI về ghi chú | Copilot | +| Tìm các ghi chú tương tự/kết nối | Smart Connections | +| Chèn tự động liên kết wiki và xây dựng đồ thị kiến thức | **Notemd** | +| Tạo ghi chú khái niệm kèm theo liên kết ngược | **Notemd** | +| Tạo sơ đồ từ nội dung ghi chú | **Notemd** | +| Nghiên cứu một chủ đề và thêm tóm tắt vào | **Notemd** | + +Cả ba có thể được sử dụng cùng nhau — chúng bổ sung cho nhau chứ không cạnh tranh với nhau. + +--- + +## Nghiên cứu & Dịch thuật + +### Những dịch vụ tìm kiếm nào hoạt động được với việc nghiên cứu Notemd? + +| Dịch vụ | Cần khóa API | Chất lượng | Ghi chú | +|---------|-----------------|---------|-------| +| **Tavily** | Có | Cao | Được khuyến nghị, tìm kiếm tối ưu hóa bằng AI | +| **DuckDuckGo** | Không | Thử nghiệm | Không cần thiết lập, chất lượng thấp hơn | + +**Cách thức hoạt động của "Nghiên cứu và tóm tắt":** +1. Bạn chọn một chủ đề hoặc chạy nó trên ghi chú hiện tại +2. Notemd gửi yêu cầu đến dịch vụ tìm kiếm +3. Kết quả → Tóm tắt bởi LLM +4. Bản tóm tắt được thêm vào ghi chú của bạn kèm theo trích dẫn nguồn + +**Kết quả:** Dấu vết nghiên cứu lưu trữ vĩnh viễn trong kho lưu trữ của bạn, không phải trong các tab trình duyệt. + +### Notemd có hỗ trợ tiếng Trung hoặc các ngôn ngữ khác không? + +**Các ngôn ngữ UI hỗ trợ:** Hơn 21 ngôn ngữ +- Tiếng Anh, 中文 (简体), 中文 (繁體), 日本語, 한국어 +- Tiếng Ả Rập, Tiếng Đức, Tiếng Pháp, Tiếng Tây Ban Nha, Tiếng Nga, Tiếng Bồ Đào Nha, Tiếng Ý +- Tiếng Hindi, Tiếng Bengali, Tiếng Thái, Tiếng Việt, Tiếng Thổ Nhĩ Kỳ, Tiếng Ba Lan, Tiếng Séc và nhiều ngôn ngữ khác + +**Ngôn ngữ đầu ra của nhiệm vụ:** Có thể cấu hình riêng +- UI bằng tiếng Trung + đầu ra bằng tiếng Anh: ✅ +- UI bằng tiếng Anh + đầu ra bằng tiếng Trung: ✅ + +**Trường hợp sử dụng:** Các nhà nghiên cứu song ngữ có thể giữ UI bằng ngôn ngữ mẹ đẻ trong khi tạo ghi chú bằng tiếng Anh để xuất bản. + +--- + +## PDF và các quy trình công việc học thuật + +### Tôi có thể sử dụng Notemd để đọc bài báo/PDF không? + +**Có.** Quy trình như sau: +1. **Chuyển đổi PDF thành Markdown** bằng [MinerU](https://github.com/opendatalab/MinerU) (được khuyến nghị cho các bài báo học thuật) +2. Mở tệp Markdown trong Obsidian +3. Thực hiện các nhiệm vụ của Notemd: + - **Thêm liên kết wiki** cho các thuật ngữ chính + - **Tạo ghi chú khái niệm** cho các thuật ngữ chưa quen thuộc + - **Trích xuất văn bản gốc** thông qua các câu hỏi tùy chỉnh (ví dụ: "Những hạn chế là gì?") + - **Nghiên cứu nền tảng** về các phương pháp/dataset được trích dẫn + - **Dịch** các phần khó hiểu + - **Nén thành sơ đồ Mermaid** để dễ hiểu cấu trúc + +**Phiên bản 1.9.1+:** Trích xuất cấu trúc chương kèm hỗ trợ mục lục + +**Kết quả:** Việc đọc bài báo của bạn sẽ trở thành một tài sản kiến thức có cấu trúc và có thể liên kết được trong kho lưu trữ của bạn. + +--- + +## Sơ đồ và trực quan hóa + +### Notemd có thể tạo ra những loại đồ thị/sơ đồ nào? + +| Loại | Hỗ trợ | Tính năng | +|------|---------|----------| +| **Mermaid** | Đầy đủ | Sơ đồ luồng, trình tự, lớp, trạng thái, ER, Gantt, tự sửa cú pháp, xác thực theo nhóm | +| **JSON Canvas** | Đầy đủ | Bố cục bảng vẽ bản địa Obsidian | +| **Vega-Lite** | Đầy đủ | Biểu đồ dữ liệu, chuỗi thời gian, biểu đồ thanh, biểu đồ rải rác, có thể tùy chỉnh | +| **HTML** | Giải pháp thay thế | Dành cho các loại sơ đồ không được hỗ trợ | +| **Có thể chỉnh sửa HTML/SVG** | Mục tiêu rõ ràng | Bộ tích hợp sẵn trong dòng SVG với ghi chú theo phong cách Draw.io-style | +| **Các tệp Draw.io / Drawnix** | Giới hạn xuất khẩu | Giá trị XML/JSON được xác định rõ từ `SemanticFigureModel`; không cần phụ thuộc vào môi trường chạy của trình soạn thảo | + +**Tự sửa lỗi Mermaid:** Chế độ gỡ lỗi sâu sửa chữa: +- Các mũi tên bị hỏng (`-->`, `-.->`, `==>`) +- Nhãn và bình luận không hợp lệ +- Lỗi cú pháp subgraph +- Ký hiệu hình dạng (`[`, `(`, `{`, `((`) +- Ký tự ống trong nhãn +- Tệp đính kèm ghi chú + +**Quy trình làm việc:** +1. Chạy lệnh "Tóm tắt thành sơ đồ Mermaid" trên một ghi chú +2. Xem trước trong cửa sổ modal +3. Xuất ra dạng SVG hoặc PNG +4. Hoặc lưu dưới dạng tệp `.mmd` trong kho bảo mật + +--- + +## Nguồn mở và cộng đồng + +### Notemd có phải là phần mềm miễn phí và nguồn mở không? + +**Có.** +- **Giấy phép:** MIT (linh hoạt, cho phép sử dụng thương mại) +- **Mã nguồn:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **Không có gói trả phí, không bị ràng buộc bởi cloud, không theo dõi dữ liệu** +- **Cộng đồng:** Hơn 234 ngôi sao trên GitHub, kênh Discord hoạt động tích cực + +**Bạn sở hữu:** +- Dữ liệu của bạn (vẫn nằm trong kho bảo mật của bạn) +- Các quy trình làm việc của bạn (tùy chỉnh lời nhắc, mô hình, chuỗi) +- Quyền riêng tư của bạn (hỗ trợ LLM tại chỗ) + +**Đóng góp:** Chào đón các yêu cầu pull request. Xem [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +## Khắc phục sự cố + +### Các cuộc gọi LLM của tôi bị thất bại. Tôi nên kiểm tra điều gì? + +1. **Khóa API có hợp lệ không?** Kiểm tra mục Settings → Provider Configuration +2. **Tên mô hình có chính xác không?** Sử dụng nút “获取模型列表” (Get Model List) trong phần settings +3. **Có thể truy cập mạng không?** Một số nhà cung cấp yêu cầu sử dụng VPN +4. **Giới hạn tốc độ?** Kiểm tra bảng điều khiển của nhà cung cấp +5. **Chẩn đoán:** Chạy "Connection Test" trong phần cài đặt để có các nhật ký lỗi chi tiết + +### Notemd chạy chậm. Làm thế nào để tăng tốc cho nó? + +1. **Sử dụng các mô hình nhanh hơn:** DeepSeek, Gemini Flash, GPT-4o-mini +2. **Giảm kích thước khối dữ liệu:** Cài đặt → Smart Chunking → giảm số lượng từ +3. **Xử lý song song:** Cài đặt → Batch Processing → tăng mức độ đồng thời +4. **Các mô hình cục bộ:** Ollama dành cho các nhiệm vụ không cần tìm kiếm trên web + +### Notemd có thể hoạt động 100% ngoại tuyến không? + +**Có, với Ollama.** Không cần khóa API, không cần internet, dữ liệu sẽ không rời máy của bạn: + +1. Cài đặt [Ollama](https://ollama.com) và chạy `ollama serve` +2. Trong cài đặt của Notemd, chọn **Ollama** làm nhà cung cấp của bạn +3. Tải một mô hình: `ollama pull llama3` (hoặc qwen2.5, gemma2, v.v.) +4. Tất cả các tính năng đều hoạt động: liên kết wiki, ghi chú khái niệm, dịch thuật, sơ đồ + +**Nghiên cứu DuckDuckGo** cũng hoạt động được mà không cần khóa API (chất lượng thử nghiệm). + +Với các nhà cung cấp dịch vụ đám mây (OpenAI, Anthropic, Google, DeepSeek, v.v.), nội dung ghi chú của bạn sẽ được gửi dưới dạng đầu vào API. Hãy kiểm tra chính sách bảo mật của từng nhà cung cấp để biết chi tiết về xử lý dữ liệu. + +### Dữ liệu của tôi có được gửi lên đám mây không? + +**Điều này phụ thuộc vào nhà cung cấp của bạn:** + +| Loại nhà cung cấp | Dữ liệu được gửi lên đám mây? | Ghi chú | +|--------------|---------------------|-------| +| **Ollama (loại cục bộ)** | Không | Mọi thứ vẫn ở trên máy của bạn | +| **LMStudio (loại cục bộ)** | Không | Giống như Ollama | +| **DeepSeek, OpenAI, v.v.** | Có | Nội dung ghi chú được gửi dưới dạng đầu vào API để xử lý | +| **OpenRouter, AIHubMix** | Có | Cổng kết nối dùng để định tuyến đến các nhà cung cấp đám mây | + +Notemd tự thân không thu thập **không dữ liệu telemetry, không phân tích, không dữ liệu người dùng**. Tiện ích mở rộng này hoàn toàn mã nguồn mở (MIT). Dữ liệu duy nhất rời khỏi máy của bạn là những gì bạn gửi một cách rõ ràng đến nhà cung cấp LLM đã được cấu hình. + +### Tiện ích mở rộng AI Obsidian nào tốt nhất cho công tác nghiên cứu? + +Tùy thuộc vào quy trình làm việc nghiên cứu của bạn: + +| Cần | Tiện ích mở rộng | Lý do | +|------|--------|-----| +| Tìm các bài báo/ghi chú liên quan | Smart Connections | Phát hiện sự tương đồng ngữ nghĩa | +| Trò chuyện về các nguồn tài liệu của bạn | Copilot | Trò chuyện với bối cảnh kho lưu trữ | +| Liên kết tự động các khái niệm + tạo ghi chú | **Notemd** | AI xác định các khái niệm, chèn liên kết, tạo ghi chú | +| Nghiên cứu trên web + tóm tắt thành ghi chú | **Notemd** | Tavily/DuckDuckGo tìm kiếm → LLM tóm tắt → được ghi thêm vào ghi chú | +| Tạo sơ đồ từ nghiên cứu | **Notemd** | Mermaid/Canvas/Vega-Lite từ nội dung ghi chú | + +**Bộ kết hợp được khuyến nghị:** Smart Connections (khám phá) + Notemd (cấu trúc) + Copilot (thảo luận). + +--- + +## Nhận trợ giúp + +- **Tài liệu hướng dẫn:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **Vấn đề trên GitHub:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **Nhà tài trợ:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/vi/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/vi/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..ab8ef711 --- /dev/null +++ b/website/i18n/vi/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "Ghi chú về ý tưởng" +description: "Tạo và quản lý ghi chú ý tưởng — những ghi chú độc lập dành cho các khái niệm chính được trích xuất từ kho dữ liệu của bạn" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# Ghi chú về ý tưởng + +<TLDR> +**Notemd** trích xuất các khái niệm chính từ ghi chú của bạn và tạo ra các tệp ghi chú khái niệm riêng biệt. LLM sẽ xác định các thuật ngữ cốt lõi, tạo một tệp `.md` cho mỗi khái niệm trong một thư mục có thể thiết lập được, và có thể thêm các liên kết ngược đến ghi chú gốc. Công cụ này hỗ trợ việc loại bỏ từ đồng nghĩa, chọn mô hình theo nhiệm vụ, làm sạch tên tệp, và có bộ máy loại bỏ trùng lặp gồm 4 bước. Đây là một phần của [Obsidian Hướng dẫn Quản lý Kiến thức AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Tổng quan + +Ghi chú khái niệm là những thành phần cơ bản tạo nên một cơ sở kiến thức kết nối. Khi bạn xử lý một ghi chú, Notemd: + +1. **Gửi văn bản của bạn đến một LLM** kèm theo mẫu yêu cầu trích xuất có cấu trúc +2. **Giải mã các dòng `CONCEPT:`** từ phản hồi LLM +3. **Tạo một tập tin `.md` cho mỗi khái niệm** trong thư mục được chỉ định +4. **Thêm các liên kết ngược** vào ghi chú nguồn (khi được bật) + +## Cách thức hoạt động + +### Ống dẫn trích xuất + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### Lệnh trích xuất + +LLM nhận được một lệnh yêu cầu nó thực hiện: + +- Trích xuất **danh từ hoặc cụm danh từ** trọng tâm của chủ đề tài liệu +- **Ưu tiên tính cụ thể** — dùng “Dielectric Relaxation” thay vì “Relaxation” +- **Chuyển sang dạng số ít** — “models” sẽ trở thành “model” +- **Ứng chế các khái niệm phụ** — nếu xuất hiện “dielectric relaxation”, đừng rút xuất thêm “relaxation” nữa +- Bỏ qua** các phần tham khảo/tài liệu tham khảo, danh từ thông thường, tên công ty/sản phẩm +- Đầu ra một khái niệm mỗi dòng dưới dạng `CONCEPT: Term Name` + +**Ứng xử với từ đồng nghĩa** (tùy chọn): thêm vào đầu mẫu yêu cầu câu "Tránh trích xuất các từ đồng nghĩa, các khái niệm cốt lõi tương đồng về mặt ngữ nghĩa, hoặc từ khóa khi có thể". + +**Lĩnh vực học tập tập trung** (tùy chọn): thêm `Relevant Fields: [domain]` vào đầu để giới hạn việc trích xuất trong một ngành cụ thể. + +**Thay đổi ngôn ngữ** (tùy chọn): thêm vào cuối câu yêu cầu "Các khái niệm đầu ra PHẢI được viết bằng [language]." + +### Phân mảnh + +Các ghi chú dài sẽ được chia bằng `settings.chunkWordCount`. Mỗi mảnh được gửi riêng biệt. Các khái niệm từ tất cả các mảnh sẽ được tích hợp vào một `Set` — các giá trị trùng lặp giữa các mảnh sẽ bị xóa mà không thông báo. Lỗi LLM trên từng mảnh sẽ không làm dừng toàn bộ quy trình. + +## Tạo ghi chú khái niệm + +### Quy tắc đặt tên tập tin + +| Quy tắc | Hành vi | +|------|----------| +| Dấu gạch ngang/dấu gạch dưới | Thay thế bằng khoảng trắng | +| Ký tự đặc biệt | Loại bỏ: dấu backslash, dấu forward slash, dấu hai chấm, dấu sao, dấu hỏi, dấu ngoặc kép, dấu ngoặc nhọn, dấu ống, dấu hash, dấu caret, dấu ngoặc vuông | +| Khoảng trắng | Gộp và cắt bỏ | +| Độ dài tối đa | 100 ký tự (bị cắt và cắt bỏ thừa) | +| Kết quả trống/tất cả dấu chấm | Bị bỏ qua một cách lặng lẽ | + +Ví dụ: `A-B: Key*Term` sẽ trở thành `A B KeyTerm.md` + +### Mẫu + +**Mẫu đầy đủ** (liên kết ngược được kích hoạt, mẫu tối giản bị tắt): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**Mẫu tối giản** (khi `extractConceptsMinimalTemplate: true`): + +```markdown +# Concept Name +``` + +### Cập nhật Ghi chú hiện có + +Khi tệp khái niệm đã tồn tại: + +1. Nếu liên kết ngược được kích hoạt và ghi chú nguồn chưa được liệt kê, hãy thêm một liên kết ngược +2. Nếu có phần `## Linked From`, hãy chèn trước tiêu đề `##` tiếp theo +3. Nếu không có `## Linked From`, hãy thêm phần ở cuối +4. Các liên kết ngược trùng lặp sẽ được kiểm tra và bỏ qua + +### Cấu hình + +| Thiết lập | Mặc định | Tác động | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | Tùy chọn chính. Tắt = không tạo ghi chú nào | +| `conceptNoteFolder` | `''` (bị vô hiệu hóa) | Đường dẫn thư mục cho ghi chú ý tưởng | +| `extractConceptsMinimalTemplate` | `true` | Ghi chú chỉ có tiêu đề (không có Linked From) | +| `extractConceptsAddBacklink` | `false` | Thêm liên kết ngược khi trích xuất độc lập | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | LLM theo nhiệm vụ để trích xuất ý tưởng | +| `extractConceptsLanguage` | `'en'` | Ngôn ngữ đầu ra cho tên ý tưởng | +| `replaceSynonymsDuringConceptExtraction` | `false` | Kích hoạt việc ức chế từ đồng nghĩa trong mẫu yêu cầu | +| `generateConceptLogFile` | `false` | Viết danh sách `.log` các ý tưởng được tạo ra | + +**Quan trọng:** Các thiết lập `extractConceptsAddBacklink` và `extractConceptsMinimalTemplate` chỉ ảnh hưởng đến **lệnh trích xuất chuyên dụng**. Lệnh “Thêm Liên kết” luôn tạo ra ghi chú theo mẫu đầy đủ kèm liên kết ngược. + +## Loại bỏ trùng lặp + +Lệnh loại bỏ trùng lặp (`Notemd: Check & remove duplicate concept notes`) thực hiện phân tích 5 bước: + +### Bước 1: So sánh tên tệp chính xác + +So sánh tên tệp không phân biệt chữ hoa chữ thường trong phạm vi đã cấu hình. + +### Bước 2: Phát hiện dạng số nhiều + +Loại bỏ các hậu tố: `-ies` thành `-y`, `-es` bị loại bỏ, `-s` bị loại bỏ. So sánh dạng số ít với các tệp trong phạm vi. Không xử lý các dạng số nhiều bất thường (children/child). + +### Bước 3: Chuẩn hóa ký hiệu + +Áp dụng cho: `toLowerCase()`, thay dấu gạch chân/dưới bằng khoảng trắng, loại bỏ các ký tự không phải chữ số và ký tự đặc biệt, gộp các khoảng trắng lại. Những mục được chuẩn hóa giống hệt nhau sẽ được đánh dấu. + +### Bước 4: Giới hạn một từ + +Các ghi chú khái niệm chỉ gồm một từ sẽ được kiểm tra so với tên tệp trong phạm vi nhiều từ. Không thực hiện khi phạm vi là `concept_folder_only`. + +### Bước 5: Xác nhận và xóa + +Tất cả các ứng viên sẽ được hiển thị trong một cửa sổ xác nhận. Các mục được chấp thuận sẽ được chuyển vào thùng rác hệ thống. Thao tác có thể bị hủy giữa các lần xóa. + +### Các chế độ phạm vi + +| Chế độ | So sánh với | +|------|-------------------| +| `vault` (mặc định) | Tất cả các tệp `.md` trong kho báu trừ thư mục khái niệm | +| `concept_folder_only` | Các ghi chú khái niệm khác trong thư mục | +| `include` | Các tệp trong các thư mục được liệt kê cụ thể | +| `exclude` | Tất cả các tệp trong kho báu trừ thư mục khái niệm và các thư mục được liệt kê | + +## Cách sử dụng + +### Trích xuất Khái niệm (Độc lập) + +1. Mở một ghi chú +2. Chạy **"Notemd: Trích xuất khái niệm"** từ bảng điều khiển lệnh +3. Các ghi chú khái niệm sẽ được tạo ra trong thư mục đã được cấu hình + +### Trích xuất + Tạo nội dung + +**"Notemd: Trích xuất khái niệm và tạo tiêu đề"** — trích xuất các khái niệm, sau đó chạy lệnh "Tạo từ Tiêu đề" trên mỗi ghi chú trong thư mục khái niệm. Điều này tạo nội dung cho **tất cả** các ghi chú khái niệm trong thư mục, không chỉ những ghi chú vừa được tạo. + +### Tạo liên kết wiki từ phần được chọn + +1. Đánh dấu văn bản trong trình soạn thảo +2. Chạy lệnh **"Notemd: Tạo liên kết wiki từ phần được chọn"** +3. Văn bản được bao bọc trong `[[...]]` và một ghi chú khái niệm sẽ được tạo ra + +## Mẹo + +- **Hãy thiết lập thư mục khái niệm trước** — nếu không, sẽ không tạo ra ghi chú nào. Nếu chưa thiết lập, một hộp cảnh báo sẽ xuất hiện. +- **Sử dụng các mô hình riêng cho từng nhiệm vụ** — việc trích xuất khái niệm hoạt động tốt với các mô hình rẻ hơn (GPT-4o-mini, DeepSeek). Hãy dành các mô hình đắt tiền cho công việc nghiên cứu/dịch thuật. +- **Bật chức năng ức chế từ đồng nghĩa** cho các lĩnh vực kỹ thuật nơi nhiều thuật ngữ chỉ một khái niệm duy nhất. +- **Loại bỏ trùng lặp thường xuyên** — chạy lệnh loại bỏ trùng lặp sau khi xử lý theo nhóm để phát hiện các trường hợp gần giống nhau. +- **Tập tin nhật ký sẽ bị ghi đè** mỗi lần chạy, không được thêm vào. Hãy sao chép nó nếu bạn cần kết quả trước đó. + +--- + +## Các bước tiếp theo + +- [Wiki-Links](./wiki-links) — Cách các khái niệm được liên kết ngay trong văn bản +- [Diagrams](./diagrams) — Trực quan hóa mối quan hệ giữa các khái niệm +- [Workflows](./workflows) — Kết hợp việc trích xuất với các nhiệm vụ khác diff --git a/website/i18n/vi/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/vi/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..fbc3a382 --- /dev/null +++ b/website/i18n/vi/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "Sơ đồ" +description: "Tạo ra Mermaid, JSON Canvas, Vega-Lite, HTML, các tài liệu hình ảnh có thể chỉnh sửa, và các sơ đồ circuitikz bị giới hạn trong tương lai từ ghi chú của bạn bằng cách sử dụng kiến trúc dựa trên mô tả trước" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Sơ đồ + +<TLDR> +**Notemd tạo sơ đồ từ ghi chú của bạn thông qua quy trình dựa trên mô tả trước.** LLM tạo ra một định dạng `DiagramSpec` JSON không phụ thuộc vào công cụ hiển thị, sau đó các bộ chuyển đổi chuyên dụng chuyển nó thành Mermaid, JSON Canvas, Vega-Lite, HTML, hoặc đầu ra HTML/SVG có thể chỉnh sửa. Hỗ trợ 8 loại mục đích, chuỗi sao lưu tự động, xem trước trực tiếp kèm xuất ra SVG/PNG, kiểm tra ngữ nghĩa, và tạo ra nội dung với việc bổ sung kiến thức cục bộ. +</TLDR> + +Đây là một phần của [Obsidian Hướng dẫn Quản lý Kiến thức AI](/docs/pillar-ai-knowledge). + +## Kiến trúc: Quy trình dựa trên mô tả trước + +Notemd không bao giờ yêu cầu LLM tạo ra ngôn ngữ cú pháp Mermaid/Vega/Canvas trực tiếp. Thay vào đó: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**Tại sao lại dùng mô tả trước?** LLM thường tạo ra cú pháp công cụ hiển thị không hợp lệ (đặc biệt là Mermaid). Một mô tả `DiagramSpec` có cấu trúc có thể được xác thực trước khi hiển thị, và cùng một mô tả có thể cung cấp dữ liệu cho nhiều công cụ hiển thị dùng làm giải pháp sao lưu. + +## Các loại sơ đồ được hỗ trợ + +| Mục đích | Công cụ hiển thị chính | Giải pháp sao lưu | Trường hợp sử dụng | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | Phân tích chủ đề theo cấp bậc | +| `flowchart` | Mermaid | HTML | Dòng chảy quy trình, cây quyết định | +| `sequence` | Mermaid | HTML | Tương tác client-server, giao thức | +| `classDiagram` | Mermaid | HTML | Mối quan hệ lớp OOP | +| `erDiagram` | Mermaid | HTML | Các sơ đồ cơ sở dữ liệu, mối quan hệ giữa các thực thể | +| `stateDiagram` | Mermaid | HTML | Máy trạng thái, mô hình vòng đời | +| `canvasMap` | JSON Canvas | Mermaid → HTML | Bản đồ khái niệm, đồ thị kiến thức | +| `dataChart` | Vega-Lite | Mermaid → HTML | Biểu đồ thanh, biểu đồ đường, biểu đồ diện tích, biểu đồ rải rác, biểu đồ tròn, bảng | + +## Nhận diện ý định + +Notemd suy luận loại sơ đồ tốt nhất từ nội dung ghi chú của bạn bằng cách đánh giá theo từ khóa: + +| Ý định | Nguyên nhân kích hoạt | Mức độ tin cậy | +|--------|----------|------------| +| `dataChart` | Bảng, ô số, từ khóa về chỉ số/trend, tỷ lệ phần trăm | 0.88 | +| `sequence` | Từ vựng yêu cầu/phản hồi (4+ trùng khớp) hoặc dấu hiệu `->`/`=>` | 0.82 | +| `erDiagram` | Khóa chính, khóa ngoại, thực thể, sơ đồ (2+ trùng khớp) | 0.80 | +| `stateDiagram` | Trạng thái, chuyển tiếp, chờ xử lý, đang chạy, thất bại (3+ trùng khớp) | 0.76 | +| `flowchart` | Các bước được đánh số (2+) hoặc từ vựng liên quan đến if/then/else/workflow | 0.74 | +| `canvasMap` | Bản đồ khái niệm, đồ thị kiến thức, không gian, nhóm | 0.72 | +| `mindmap` | Giá trị mặc định dự phòng | 0.55 | + +Thay thế bằng thiết lập **Loại sơ đồ ưu tiên**, bộ lọc thanh bên, hoặc tùy chọn bảng lệnh cụ thể. + +## Chọn Mục tiêu hiển thị + +Quy trình thử nghiệm dựa trên tiêu chuẩn hiện có hai bộ điều khiển độc lập: + +| Bộ điều khiển | Thiết lập | Tác động | +|---------|---------|--------| +| Loại sơ đồ ưu tiên | `preferredDiagramIntent` | Định hướng hình dạng ngữ nghĩa của `DiagramSpec` được tạo ra | +| Mục tiêu hiển thị ưu tiên | `preferredDiagramRenderTarget` | Chọn trình hiển thị tài liệu cho các lệnh **Tạo sơ đồ** và **Xem trước sơ đồ** | + +Đặt **Mục tiêu hiển thị ưu tiên** thành **Tự động** làm giá trị mặc định cho công cụ lập kế hoạch, hoặc chọn Mermaid, JSON Canvas, Vega-Lite, HTML, hoặc HTML/SVG có thể chỉnh sửa một cách rõ ràng. Việc thay thế này chỉ áp dụng cho các lệnh tạo tài liệu và xem trước. Lệnh tiêu chuẩn **Tóm tắt thành sơ đồ Mermaid** vẫn được giữ nguyên để tương thích với đầu ra Mermaid, nhằm tránh việc các quy trình Markdown hiện có tự động chuyển đổi định dạng. + +Sự phân chia này rất quan trọng vì một ý định `flowchart` giờ đây có thể được hiển thị dưới dạng Mermaid cho ghi chú Markdown, HTML cho giá trị dự phòng vững chắc, hoặc HTML/SVG có thể chỉnh sửa cho việc biên tập sau này. Draw.io và Drawnix vẫn là các công cụ xuất tài liệu CLI chứ không phải là mục tiêu hiển thị bên trong plugin. + +## Cách sử dụng + +### Tạo sơ đồ + +1. Mở một ghi chú +2. Chạy lệnh **"Notemd: Tạo sơ đồ"** từ bảng lệnh +3. Notemd nhận diện ý định, tạo tiêu chuẩn, hiển thị, và lưu tài liệu + +**Các tập tin đầu ra theo mục tiêu:** + +| Mục tiêu | Phần mở rộng | Mẫu tên tệp | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| Có thể chỉnh sửa HTML/SVG | `.html` | `{note}_diagram.html` | + +### Xem trước sơ đồ + +1. Chạy **"Notemd: Xem trước sơ đồ"** +2. Một cửa sổ modal hiển thị sơ đồ đã được vẽ +3. Xuất dưới dạng SVG hoặc PNG bằng các nút trên thanh công cụ + +Tính năng **Mở xem trước tự động** có sẵn trong cài đặt — sau khi tạo, cửa sổ modal xem trước sẽ mở tự động. + +Cửa sổ modal xem trước cũng có bảng chẩn đoán lỗi. Các công cụ vẽ và kiểm tra smoke có thể gắn `RenderArtifact.diagnostics`; cửa sổ hiển thị tóm tắt chẩn đoán với số lượng lỗi/cảnh báo/thông báo, sau đó là mức độ nghiêm trọng, loại chẩn đoán, thông điệp và gợi ý sửa chữa bên cạnh phần xem trước. Cùng một tóm tắt được hiển thị trong các mục lịch sử xem trước, vì vậy có thể so sánh các lần thử nghiệm smoke circuitikz lặp lại mà không cần mở từng mục. Đối với các tài liệu có nội dung nguồn nhưng không thể được vẽ trực tiếp hoặc qua đường dẫn iframe HTML, cửa sổ modal hiện chuyển sang xem trước chỉ dựa trên nguồn thay vì ép buộc sử dụng iframe trống. Điều này giúp các kiểm tra compile/render smoke của circuitikz, kiểm tra token văn bản của SVG, kiểm tra ảnh chụp màn hình trống PNG và các báo cáo chồng chéo trong tương lai có một giao diện UI rõ ràng mà không làm cho TikZJax hoặc LaTeX trở thành phụ thuộc bắt buộc về thời gian chạy plugin hay giả vờ rằng văn bản nguồn đã được hiển thị dưới dạng hình ảnh đã được xác minh. + +### Chế độ Mermaid cũ + +Khi `enableExperimentalDiagramPipeline` bị tắt, Notemd gửi một lệnh Mermaid trực tiếp đến LLM. Cách này bỏ qua toàn bộ quy trình theo tiêu chuẩn. Nếu quy trình thí nghiệm thất bại, nó sẽ chuyển sang chế độ này. + +## Các backend vẽ + +### Mermaid + +6 bộ chuyển đổi (mindmap, flowchart, sequence, ER, class, state) chuyển `DiagramSpec` thành ngôn ngữ Mermaid. Sau khi tạo, `mermaid.parse()` kiểm tra kết quả. Nếu kiểm tra thất bại: + +1. **Thử lại LLM** — một lần thử với thông báo lỗi Mermaid làm ngữ cảnh +2. **Phương án dự phòng tối thiểu** — một sơ đồ Mermaid đơn giản được tạo từ các ID nút trong tiêu chuẩn + +**Legacy Mermaid Fixer** tự động sửa các lỗi cú pháp LLM phổ biến như: chuẩn hóa chỉ thị note, thoát ký hiệu pipe-label, điều chỉnh vị trí dấu chấm phẩy, dấu ngoặc thông minh, mũi tên hai dấu gạch ngang, sự không tương thích hình dạng, và nhiều thứ khác. + +### JSON Canvas + +Tạo định dạng Obsidian JSON Canvas với bố cục không gian: +- Các nút được đặt theo độ sâu (x = độ sâu × 420) và chỉ số (y = chỉ số × 170) +- Chiều rộng được ước lượng dựa trên độ dài nhãn +- Các cạnh chứa `fromSide: 'right'`, `toSide: 'left'`, `toEnd: 'arrow'` + +### Vega-Lite + +Tạo các tài liệu Vega-Lite v5 JSON hoàn chỉnh với việc mã hóa tự động: +- **Biểu đồ Descartes** (cột/dòng/khu vực/dot/bụi): kênh x + y cùng màu sắc cho nhiều chuỗi dữ liệu +- **Biểu đồ tròn**: theta = y (định lượng), màu sắc = x (tên gọi) +- **Bảng**: hàng = x, văn bản = y + cột = chuỗi dữ liệu + +Các phiên bản chủ đề tối và sáng được hợp nhất sâu trước khi biên dịch. + +### HTML + +Giải pháp dự phòng toàn cầu. Tài liệu HTML tự chứa đầy đủ: +- Tiêu đề meta CSP +- Chế độ sáng/tối thông qua `prefers-color-scheme` +- Các nhãn UI được dịch sang 20 ngôn ngữ +- Các mục: hero, cấu trúc (cây nút), mối quan hệ, ghi chú, bảng chuỗi dữ liệu + +### Có thể chỉnh sửa HTML/SVG + +Mục tiêu con số rõ ràng cho các quy trình xuất có thể chỉnh sửa. Nó chuyển `DiagramSpec` thành một `SemanticFigureModel` xác định, sau đó tạo ra một tài liệu HTML tự chứa đựng với các nhóm SVG nội bộ mang theo ghi chú kiểu Draw.io: + +- `data-drawio-type`, `data-drawio-id` và `data-drawio-role` trên các nút ngữ nghĩa +- `data-drawio-source` và `data-drawio-target` trên các cạnh ngữ nghĩa +- các định danh nút/cạnh ổn định sau khi chuẩn hóa khoảng trắng và xử lý xung đột +- không có script, không có phông chữ bên ngoài và không có tài nguyên từ xa + +Mục tiêu này cố ý chưa phải là lộ trình lập kế hoạch mặc định. Nó được cung cấp như một mục tiêu hiển thị rõ ràng trong khi con đường sản phẩm chứng minh hành vi chỉnh sửa trên các công cụ thực tế. + +### Draw.io và Drawnix Biên giới xuất + +Triển khai hiện tại giữ lại sự hỗ trợ từ các trình soạn thảo bên thứ ba ở ranh giới sản phẩm: + +| Mục tiêu | Hợp đồng | Phụ thuộc thời gian chạy | +|--------|----------|--------------------| +| Draw.io | `mxfile` XML không nén xác định từ `SemanticFigureModel` | không có gì trong thời gian chạy plugin hoặc CI | +| Drawnix | tập hợp nhỏ `.drawnix` JSON sử dụng các yếu tố `geometry` và `arrow-line` | không có gì trong thời gian chạy plugin hoặc CI | + +Sự đánh đổi này là cố ý: Notemd có thể kiểm tra các nhãn hiển thị, các ID ổn định và mức độ bao phủ các kiểu dữ liệu cơ bản được hỗ trợ mà không cần nhúng Diagram.net Desktop, Drawnix, Plait hoặc trạng thái trình soạn thảo chỉ dành cho trình duyệt vào plugin. + +### circuitikz / TikZJax Hướng dẫn + +Sơ đồ mạch điện không phải là cùng loại vấn đề với sơ đồ luồng tổng quát. Cú pháp chính xác dành cho mạch điện thường là **circuitikz**, được hiển thị trong Obsidian thông qua các tiện ích mở rộng như TikZJax. TikZJax có thể tải các gói như `circuitikz`, `pgfplots`, `tikz-cd` và `chemfig`, điều này khiến nó trở nên hấp dẫn cho các ghi chú về vật lý, mạch điện, hóa học và toán học. + +Rủi ro là mã TikZ được tạo ra từ LLM ở dạng nguyên thủy khá mong manh: + +- Cấu trúc mạch phức tạp có thể đúng về mặt điện nhưng khó đọc về mặt hình ảnh; +- Các dây và nhãn chồng lên nhau có thể khiến danh sách mạch chính xác trở nên không thể sử dụng được cho ghi chú học tập; +- Việc thiếu phần mở đầu gói, chốt neo sai hoặc tên linh kiện không hợp lệ có thể ngăn cản việc hiển thị; +- Phản hồi từ công cụ hiển thị thường ở mức độ hình ảnh, trong khi LLM tạo ra hình dạng ở mức độ văn bản. + +Kiến trúc tốt hơn là coi circuitikz như một mục tiêu sơ đồ có giới hạn, chứ không phải là một mệnh lệnh tự do: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +Mô hình hạng nhất nên mô tả cấu trúc mạch và bố cục riêng biệt: + +| Tầng | Trách nhiệm | Ví dụ | +|-------|----------------|---------| +| Cấu trúc mạch | các nút điện và kết nối linh kiện | `VDD -> RD -> drain(M1)`, `source(M1) -> GND` | +| Bố cục | vị trí trên lưới, hướng, các làn đường dẫn | `M1 at (3,2.2)`, đầu vào ở bên trái, đầu ra ở bên phải | +| Phong cách | gói, quy ước điện áp, nhãn, điểm cố định | `\begin{circuitikz}[american voltages]` | +| Xác thực | ghi nhật ký biên dịch, thiếu các điểm tựa, kiểm tra chồng chéo/hình chụp màn hình | TikZJax/Chẩn đoán LaTeX cùng xem xét trực quan | + +### Mẫu thử nghiệm hiện tại circuitikz + +Notemd hiện đã bao gồm mẫu nguyên mẫu kho lưu trữ có ràng buộc đầu tiên cho hướng phát triển này. Nó được thiết kế để hoạt động ngoại tuyến và bị giới hạn bởi mẫu: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +Phiên bản nguyên mẫu thêm một rào cản `CircuitSpec` riêng biệt và bộ xuất dữ liệu có tính xác định cho sáu nhóm tài liệu tham chiếu vàng: + +| Loại mạch | Tài liệu tham khảo vàng | Bảo hành hiện tại | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | Kiểm tra tính hợp lệ của `VDD -> R_D -> M1.D`, `vin -> M1.G`, `M1.S -> GND`, và `M1.D -> vout` trước khi viết LaTeX | +| `cmos-inverter` | `cmos-inverter-v1` | Kiểm tra cấu trúc PMOS-over-NMOS, đầu vào cổng chung, đầu ra drain chung, `VDD -> MP.S`, và `MN.S -> GND` trước khi viết mã LaTeX | +| `cmos-buffer` | `cmos-buffer-v1` | Kiểm tra hai cấp bộ biến tần nối tiếp, nút trung gian `vmid`, trạng thái được khôi phục `vout`, và các đường dây VDD/GND chung trước khi viết mã LaTeX | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | Kiểm tra các thiết bị khuếch đại song song PMOS/NMOS giữa `vin` và `vout` với các bộ điều khiển bổ sung `phib` / `phi` trước khi ghi vào LaTeX | +| `cmos-nand2` | `cmos-nand2-v1` | Kiểm tra xem có hoạt động bình thường không các mạch kéo lên loại PMOS song song, kéo xuống loại NMOS nối tiếp, hai đầu vào `va` / `vb`, và `vout` trước khi ghi vào LaTeX | +| `cmos-nor2` | `cmos-nor2-v1` | Kiểm tra xem có hoạt động bình thường không các mạch kéo lên loại PMOS, kéo xuống loại NMOS song song, hai đầu vào `va` / `vb`, và `vout` trước khi ghi vào LaTeX | + +Đây vẫn chưa phải là công cụ tạo TikZ tổng quát. Nó không thể biên dịch LaTeX, gọi TikZJax, kiểm tra ảnh chụp màn hình, hay chạy chức năng sửa lỗi hình ảnh tự động. Những tính năng đó vẫn còn là những bước phát triển tiếp theo. + +Lệnh Preview diagram có thể mở lại trực tiếp các tệp nguồn circuitikz đã lưu khi phần mở rộng tệp là `.tex` hoặc `.tikz` và nội dung tệp chứa `\usepackage{circuitikz}` hoặc `\begin{circuitikz}`. Con đường xử lý này là phiên xem trước chỉ dựa trên nguồn circuitikz: cửa sổ pop-up hiển thị nội dung nguồn, thông tin chẩn đoán, các nút sao chép/lưu, và siêu dữ liệu lịch sử, nhưng nó không biên dịch LaTeX hay gọi TikZJax trong thời gian chạy plugin. + +Giới hạn xem trước chỉ dựa trên mã nguồn hiện tại cũng bao gồm các tệp đã lưu Draw.io và Drawnix. Các tệp `.drawio` sẽ được chấp nhận nếu chúng có dạng giống Draw.io XML (`mxfile` hoặc `mxGraphModel`), còn các tệp `.drawnix` sẽ được chấp nhận nếu chúng là Drawnix JSON kèm theo `type: "drawnix"` và một mảng `elements`. Tiện ích mở rộng vẫn không tích hợp diagram.net hay máy chủ bảng trắng Drawnix; những bản xem trước này hiển thị mã nguồn, thông tin chẩn đoán và lịch sử các tệp mà không yêu cầu phải có trình soạn thảo hình ảnh bên trong tiện ích mở rộng. + +Để thực hiện sửa chữa giữ nguyên cấu trúc mạng, hãy truyền thông số kỹ thuật trước khi sửa chữa như tài liệu tham khảo trước khi chấp nhận ứng viên đã được sửa chữa: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +Bộ bảo vệ sửa chữa sử dụng `createCircuitTopologySignature` và `assertCircuitTopologyUnchanged` để so sánh `circuitKind`, `goldenReferenceId`, các mạng lưới, mã/loại/terminal của linh kiện, cùng các đầu mút kết nối không có hướng trước khi xuất kết quả. Các nhãn, văn bản tiêu đề, gợi ý bố cục, thứ tự kết nối và nhãn kết nối đều bị bỏ qua một cách cố ý. Ứng viên nào thêm terminal ngắn hoặc đổi dây kết nối sẽ thất bại với lỗi `Circuit topology drift detected` trước khi tệp `.tex` được ghi lại. + +CLI giờ đây có thể phân tích nhật ký biên dịch LaTeX/TikZJax hiện có mà không cần chạy trình biên dịch: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +Con đường chẩn đoán này báo cáo các gói bị thiếu như `circuitikz.sty`, các khóa TikZ/circuitikz chưa được biết đến, các lỗi cú pháp đường dẫn TikZ như thiếu dấu chấm phẩy, các đối số vượt quá giới hạn do cặp ngoặc không cân bằng hoặc nhãn chưa kết thúc, các chuỗi điều khiển chưa được định nghĩa, các lỗi chung của LaTeX, các lệnh dừng khẩn cấp, và các cảnh báo mức độ bộ nhớ quá tải `\hbox`. Nó vẫn dựa trên log: việc thực thi LaTeX/TikZJax ở cấp độ địa phương và các cơ chế kiểm soát chất lượng tương đương hình ảnh chụp màn hình vẫn là những nhiệm vụ sẽ được thực hiện trong tương lai. + +Đối với các kiểm tra nhanh dành cho người bảo trì, CLI có thể chọn chạy trình hiển thị đã được cấu hình rõ ràng mà không cần phân tích lệnh shell: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Trình chạy biên dịch sử dụng `shell: false`, mở rộng các tham số `{tex}`, `{outputDir}` và `{jobName}` thành các giá trị trong mảng đối số, đọc tập tin `{jobName}.log` được tạo ra, và trả về `compileExecution` cùng `compileDiagnostics` trong đầu ra CLI JSON. `--compile-executable` chỉ là đường dẫn tệp nhị phân hoặc bộ wrapper của trình hiển thị; các cờ của trình hiển thị nằm trong các giá trị lặp lại của `--compile-arg`. Các tệp thực thi trống sẽ gây lỗi dưới dạng `compile-executable-invalid`, các tệp nhị phân bị thiếu sẽ gây lỗi dưới dạng `compile-executable-not-found`, và các chuỗi mô tả tệp thực thi dạng lệnh shell sẽ nhận được hướng dẫn chia các đối số để Windows, Linux và macOS tuân theo cùng một quy ước thực thi trực tiếp. Với `--expected-artifact`, nó cũng báo cáo `compileExecution.renderSmoke` và sẽ gây lỗi CLI nếu trình hiển thị không tạo ra tệp kết quả khác rỗng. Nó vẫn không đóng gói LaTeX, không biến TikZJax thành phụ thuộc thời gian chạy của plugin, và cũng không thực hiện việc sửa chữa hình ảnh ở mức chụp màn hình. + +Nếu sản phẩm mong đợi là `.svg`, bước kiểm tra nhanh sẽ được thực hiện sâu hơn một tầng nữa: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +SVG công cụ kiểm tra khói xác minh phần gốc `<svg>`, các kích thước dương hoặc `viewBox`, ít nhất một phần tử vẽ có thể nhìn thấy sau khi loại bỏ các phần tử ẩn/ trong suốt, bất kỳ token văn bản nào được yêu cầu, các phần tử rõ ràng nằm ngoài `viewBox`, các nhãn `<text>` / `<tspan>` được đặt chồng lên nhau một cách rõ ràng, và các nhãn văn bản rõ ràng chồng lên phần tử vẽ thông qua `render-svg-label-overlap`. Văn bản mong muốn sẽ được tìm kiếm trong văn bản có thể nhìn thấy và giải mã các siêu dữ liệu truy cập khả năng sử dụng như `aria-label`, `<title>`, và `<desc>`, vì vậy các công cụ hiển thị giữ nguyên các nhãn mang ý nghĩa bên ngoài phạm vi `<text>` vẫn có thể vượt qua bài kiểm tra token văn bản mà không cần OCR. Bước kiểm tra hình học hiện tại sử dụng hình học nhạy biến đổi cho các thuộc tính nhóm và phần tử phổ biến `transform`, vì vậy các hộp SVG đã được dịch, phóng to, xoay, nghiêng hoặc chuyển đổi bằng ma trận sẽ được kiểm tra sau khi thực hiện các phép biến đổi. Nó bao gồm việc xác định chính xác giới hạn của các cung A/a ở hai đầu, giới hạn chính xác của các đường cong Bezier ở các điểm cuối của C/S/Q/T, các giới hạn SVG nhạy với độ dày đường nét và việc kiểm tra chồng lấp nhãn, hình học vẽ `polyline` / `polygon`, đồng thời giải quyết việc đặt các ký tự chỉ dựa trên đường dẫn từ các tham chiếu `<use href="#...">`, để các nhãn được chuyển đổi thành các đường dẫn ký tự có thể tái sử dụng vẫn có thể thất bại trong các kiểm tra giới hạn bảng vẽ khi hình học của ký tự đó vượt ra ngoài `viewBox`. Nhiều nhãn `tspan` được đặt ở vị trí khác nhau dưới cùng một phụ huynh `<text>` sẽ được so sánh như những hộp nhãn riêng biệt, điều này giúp phát hiện các kết quả kiểu LaTeX SVG mà nếu không sẽ khiến các nhãn riêng biệt bị gộp thành một nút văn bản duy nhất. Các hộp `text` và `tspan` được đặt vị trí tuân theo các giá trị `start`, `middle`, và `end`, vì vậy các nhãn được căn chỉnh ở giữa hoặc bên phải có thể kích hoạt các chẩn đoán về sự chồng lấp giữa văn bản/văn bản và nhãn so với phần tử vẽ mà không cần yêu cầu bố cục văn bản ở mức độ trình duyệt. Các đường dẫn ký tự chỉ chứa định nghĩa bên trong `<defs>` không được tính là phần tử vẽ có thể nhìn thấy, nhưng các thuộc tính `transform` tại chỗ của chúng vẫn được áp dụng trước khi đặt vào vị trí `<use>`, để các định nghĩa ký tự đã được phóng to hoặc phản chiếu không bị tính thiếu. Việc kiểm tra nhãn so với phần tử vẽ sử dụng mức độ dung sai nhỏ cho hộp vẽ và giá trị `stroke-width` đã được chỉ định, vì vậy các dây mảnh, dây dày và đường viền của các thành phần đa giác đều có thể bị coi là nguyên nhân gây khó đọc nhãn khi đường nét có thể nhìn thấy của chúng chạm vào nhãn. Các nhãn ký tự chỉ dựa trên đường dẫn được giải quyết từ `<use href="#...">` cũng sẽ được so sánh với các hộp vẽ và sẽ thất bại với `render-svg-path-glyph-overlap` khi hình học ký tự có thể tái sử dụng chồng lên các dây hoặc thành phần. Nếu công cụ hiển thị chuyển đổi các nhãn thành các ký tự đường dẫn có thể tái sử dụng thay vì các văn bản có thể tìm kiếm `<text>` và không giữ nguyên các siêu dữ liệu truy cập khả năng sử dụng, báo cáo kiểm tra khói sẽ ghi lại `pathOnlyGlyphUseCount` và khiến token văn bản được yêu cầu thất bại thông qua `render-svg-text-path-only` thay vì giả vờ rằng nhãn đó đơn giản là không tồn tại. Các lỗi khác sẽ được báo cáo thông qua `render-svg-invalid`, `render-svg-dimension-missing`, `render-svg-no-visible-elements`, `render-svg-text-missing`, `render-svg-out-of-bounds`, `render-svg-text-overlap`, `render-svg-label-overlap`, hoặc `render-svg-path-glyph-overlap`. Các kiểm tra token văn bản và chồng lấp chỉ nên được coi là các bài kiểm tra cấu trúc đối với những công cụ hiển thị giữ nguyên các nhãn dưới dạng văn bản có thể tìm kiếm SVG hoặc siêu dữ liệu truy cập khả năng sử dụng; các kết quả chỉ dựa trên đường dẫn SVG vẫn cần bước chụp màn hình/OCR sau đó để chứng minh tính dễ đọc của nhãn về mặt thị giác, và bước kiểm tra khói này vẫn không tuyên bố rằng đã phủ sóng toàn bộ các đường dẫn SVG. + +Các nhóm và phần tử ẩn SVG luôn bị bỏ qua trong quá trình đếm các phần tử hiển thị và thu thập dữ liệu hình học. Các thuộc tính hoặc kiểu nội bộ `display:none`, `visibility:hidden`, `visibility:collapse`, cùng với toàn bộ `opacity:0` cũng không thể giúp một sản phẩm kết quả trống rỗng vượt qua bài kiểm tra đầu ra hiển thị. + +Các định nghĩa ký tự chỉ chứa đường dẫn có thể là những đường dẫn trực tiếp hoặc các container nhóm/ký hiệu bên trong `<defs>`. Bước xử lý smoke pass sẽ giải quyết hình dạng đường dẫn con từ `<g id="...">` và `<symbol id="...">` trước khi đặt chúng vào `<use>`, vì vậy kết quả ký tự được bao bọc vẫn được cung cấp cho `pathOnlyGlyphUseCount`, các kiểm tra canvas có giới hạn, và `render-svg-path-glyph-overlap`. + +Bộ phân tích đường dẫn cũng theo dõi điểm bắt đầu của các đường dẫn con và đặt lại điểm hiện tại ở `Z/z`, nhờ đó các lệnh tương đối sau một đường dẫn con đã kết thúc sẽ tiếp tục từ điểm SVG chính xác thay vì tạo ra các báo cáo lỗi sai ở `render-svg-out-of-bounds`. + +Quy trình xử lý hình học tương tự tuân theo quy tắc số SVG dành cho các số thập phân có chấm đầu và dấu cộng rõ ràng, vì vậy các tọa độ dvisvgm gọn gàng như `.5`, `-.5`, hoặc `+.5` vẫn giữ nguyên dạng phân số trong các kiểm tra giới hạn, thay vì trở thành trường hợp hình học ngoài giới hạn sai lệch hoặc bị bỏ qua. + +Nếu bộ xử lý hiển thị phát ra `.png`, đường dẫn tạo ra tệp kết quả mong đợi sẽ trở thành hình ảnh chụp màn hình đầu tiên được kiểm tra: Notemd giải mã các tệp PNG màu theo bảng chỉ mục với độ sâu bit 1/2/4/8, các tệp PNG màu xám với độ sâu bit 1/2/4/8/16, và các tệp PNG màu xám alpha/RGB/RGBA với độ sâu bit 8/16. Các hình ảnh màu theo bảng chỉ mục và hình ảnh màu xám dạng byte con hỗ trợ các mẫu dữ liệu được nén; hình ảnh màu theo bảng chỉ mục còn hỗ trợ dữ liệu PLTE và dữ liệu tRNS tùy chọn; các hình ảnh màu xám/RGB hỗ trợ các mẫu dữ liệu trong suốt tRNS. Các mẫu dữ liệu trực tiếp 16-bit sẽ được chuẩn hóa thành không gian so sánh RGBA 8-bit giống như được sử dụng trong các bài kiểm tra smoke check. Bài kiểm tra smoke check sẽ xác minh kích thước hợp lệ, ghi lại giới hạn vùng nền như `foregroundBounds`, ghi lại mật độ vùng nền bên trong khung đó như `foregroundDensity`, thất bại với `render-png-blank` khi mọi điểm ảnh hiển thị đều trùng màu với màu nền ở góc trên bên trái, thất bại với `render-png-content-clipped` khi nội dung vùng nền chạm vào ranh giới hình ảnh, thất bại với `render-png-foreground-too-small` khi hình ảnh chụp màn hình lớn có ít hơn bốn điểm ảnh vùng nền, và thất bại với `render-png-foreground-dense` khi các điểm ảnh vùng nền quá dày đặc bên trong một khung giới hạn phức tạp. Các định dạng PNG không được hỗ trợ sẽ gây thất bại với `render-png-unsupported` cùng hướng dẫn cụ thể cho các tệp PNG có kiểu Adam7 interlaced hoặc độ sâu bit màu theo bảng chỉ mục không được hỗ trợ. Phương pháp này giúp phát hiện các hình ảnh chụp màn hình trống, tình trạng cắt xén khung vẽ rõ ràng, vùng nền được hiển thị chưa đầy đủ, các lỗi chen chúc ở cấp độ điểm ảnh đầu tiên, và các thiết lập xuất PNG của bộ xử lý không chính xác, mà không cần phụ thuộc vào bất kỳ công cụ nào đặc thù cho từng nền tảng. Đây vẫn chưa phải là công nghệ nhận diện nhãn ở mức OCR, phát hiện chính xác sự chồng chéo văn bản, hay khả năng sửa chữa hình ảnh giữ nguyên cấu trúc. + +Khi các công cụ chẩn đoán cho thấy việc biên dịch hoặc chạy thử render-smoke đã thất bại, CLI cũng có thể soạn thảo một bản tóm tắt sửa chữa giúp bảo toàn cấu trúc mạng: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +Bản tóm tắt sửa chữa sử dụng schema `notemd.circuitikz.repair-brief.v1` và chứa nguồn gốc `CircuitSpec`, chữ ký cấu trúc mạng, thông tin chẩn đoán khi biên dịch/khởi chạy, các thay đổi được phép, các thay đổi cấu trúc mạng bị cấm, các bước kiểm tra tiếp theo, cùng một cấu trúc có tổ chức `repairPrompt`. Vai trò của lệnh là `topology-preserving-circuitikz-repair`; danh sách `diagnosticFocus` của nó được lấy từ thông tin chẩn đoán khi biên dịch/khởi chạy, và các yêu cầu `acceptanceCriteria` đòi hỏi phải xác minh ứng viên cùng với các kiểm tra biên dịch và khởi chạy mới. Đây là định dạng chuyển giao cho vòng lặp sửa chữa sau này, chứ không phải là khẳng định rằng Notemd đã thực hiện việc sửa chữa hình ảnh một cách tự động. + +Sau khi tạo ra một ứng viên sửa chữa, cùng cái CLI đó có thể kiểm tra xem nó có phù hợp với yêu cầu ban đầu hay không trước khi ghi kết quả ra: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief` kiểm tra chữ ký cấu trúc mạng được đề xuất từ bản tóm tắt, và nó loại trừ khả năng xảy ra đồng thời với `--topology-reference`. Việc vượt qua bước kiểm tra này chỉ chứng minh rằng cấu trúc mạng đã được giữ nguyên; ứng viên vẫn cần các báo cáo lỗi khi biên dịch và các kiểm tra render-smoke. + +Kết quả `--repair-brief` cũng bao gồm bằng chứng `repairAcceptance` kèm theo schema `notemd.circuitikz.repair-acceptance.v1`. Nó báo cáo các cổng `topology-signature`, `compile-diagnostics`, và `render-smoke` dưới dạng `passed`, `failed`, hoặc `missing`; tiết lộ `remainingChecks`; và giữ trạng thái `readyForVisualAcceptance` là sai cho đến khi lần chạy thử bao gồm đầy đủ các bằng chứng cần thiết. + +Hãy sử dụng `--repair-acceptance-output` cùng với `--repair-brief` khi bằng chứng từ CI hoặc việc phát hành yêu cầu một tập tin JSON bền vững: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +Để lấy bằng chứng về việc phát hành hoặc bảo trì, hãy chạy tất cả các gia đình dữ liệu vàng được hỗ trợ qua công cụ chạy bộ thiết lập tổng hợp: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +Chương trình chạy sử dụng `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`, `docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json` và `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json`, gọi cùng một đường dẫn xuất ra không cần shell cho mỗi thiết bị kiểm thử, và trả về báo cáo tổng hợp JSON kèm theo thông tin `compileExecution` và `compileDiagnostics` riêng cho từng thiết bị. Đây vẫn là lệnh dành cho người quản trị, chứ không phải là phụ thuộc trong thời gian chạy của plugin. + +Khi máy bảo trì chưa cấu hình bất kỳ công cụ hiển thị nào, hãy chạy lệnh fixture tương tự mà không sử dụng `--compile-executable` và thiết lập rõ ràng cổng môi trường: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +Con đường đó vẫn ghi lại các tệp artifact cố định của fixture `.tex`, nhưng trả về `ok: false` với `rendererAvailability.status` được đặt thành `missing-configuration` cùng một thông báo chẩn đoán `compile-executable-invalid`. Hãy coi đó chỉ là bằng chứng về khả năng hoạt động của công cụ hiển thị; nó không phải là kết quả biên dịch, kiểm thử render-smoke, hay xác nhận về mặt hình ảnh. + +### Hình dạng mẫu tham chiếu vàng + +Đối với việc sử dụng trong thời gian ngắn, hãy cung cấp một tài liệu tham khảo vàng có thể hiển thị trước khi yêu cầu biến thể mạch. Một mẫu yêu cầu có giới hạn cần phải giữ nguyên phần mở đầu, thang đo tọa độ, kiểu điểm tựa và các quy ước định tuyến: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +Đối với bộ phản đảo CMOS, yêu cầu cần nêu rõ cấu trúc mạch và các ràng buộc về bố trí, chứ không chỉ là “vẽ một bộ phản đảo CMOS”. + +- Giữ `VDD` ở phía trên, `GND` ở phía dưới, nhập liệu ở bên trái, kết quả ở bên phải; +- Sử dụng `pmos` phía trên `nmos`, với các cổng chung và các ống dẫn chung; +- Giữ nút đầu ra tại điểm giao của các ống dẫn và đánh dấu nó bằng `*-o`; +- Sử dụng các điểm neo có tên (`PM1.G`, `NM1.G`, `PM1.D`, `NM1.D`) thay vì các tọa độ được suy ra từ hình ảnh; +- Tránh việc sử dụng các dây dẫn chéo hoặc giao nhau trừ khi thực sự cần thiết về mặt điện. + +### Tiến độ hiện tại và các giai đoạn tiếp theo + +| Diện tích | Trạng thái hiện tại | Bước tiếp theo | +|------|----------------|-----------| +| Sơ đồ tổng quát | Dòng công việc dựa trên thông số đã được triển khai cho Mermaid, JSON Canvas, Vega-Lite, HTML | Tiếp tục mở rộng phạm vi kiểm tra ngữ nghĩa | +| Hình ảnh có thể chỉnh sửa | Các ranh giới của `editable-html-svg`, Draw.io XML và Drawnix JSON đã được triển khai | Chỉ thêm các phần tử cơ bản phong phú hơn sau khi các bài kiểm tra chứng minh được khả năng chỉnh sửa | +| Hỗ trợ CLI | `npm run diagram:export-artifact` xuất các tệp HTML/SVG, Draw.io và Drawnix có thể chỉnh sửa từ một `DiagramSpec` | Thêm các thiết bị khói tùy chỉnh theo mục tiêu khi các mục tiêu mới được gửi đi | +| circuitikz | `CircuitSpec -> circuitikz` phiên bản nguyên mẫu xuất ra các mẫu vàng chung, bộ biến đổi CMOS, `cmos-buffer` / `cmos-buffer-v1`, `cmos-transmission-gate` / `cmos-transmission-gate-v1`, `cmos-nand2` / `cmos-nand2-v1`, và `cmos-nor2` / `cmos-nor2-v1`, các dự án `layoutHints.inputSide` và `layoutHints.outputSide` vào vị trí cổng đầu vào/đầu ra xác định mà không thay đổi cấu trúc, từ chối sự lệch lạc cấu trúc thông qua `--topology-reference`, phát hành báo cáo sửa chữa giữ nguyên cấu trúc thông qua `--repair-brief-output` và mô hình `notemd.circuitikz.repair-brief.v1`, bao gồm nội dung chuyển giao có cấu trúc `repairPrompt` kèm theo `diagnosticFocus`, `acceptanceCriteria`, và vai trò `topology-preserving-circuitikz-repair`, xác thực các ứng viên sửa chữa thông qua `--repair-brief`, trả về bằng chứng cổng `repairAcceptance` thông qua mô hình `notemd.circuitikz.repair-acceptance.v1` kèm theo `readyForVisualAcceptance` và `remainingChecks`, lưu giữ bằng chứng đó thông qua `--repair-acceptance-output`, phân tích nhật ký biên dịch, có thể chạy các trình hiển thị cục bộ rõ ràng cùng với `--expected-artifact`, SVG `--expected-svg-text`, kiểm tra siêu dữ liệu khả năng truy cập thông qua `aria-label`, `<title>`, và `<desc>`, loại trừ các phần tử ẩn/đục, phân loại `render-svg-text-path-only` / `pathOnlyGlyphUseCount` cho các nhãn chỉ dựa trên đường dẫn, kiểm tra vị trí ký tự chỉ dựa trên đường dẫn cho `<use href="#...">`, chẩn đoán chồng chéo ký tự chỉ dựa trên đường dẫn thông qua `render-svg-path-glyph-overlap`, xử lý điểm dòng đóng cho `Z/z`, giới hạn đường cong chính xác cho các đầu mút đường cong A/a, giới hạn đường cong Bezier chính xác cho các đầu mút đường cong C/S/Q/T, kiểm tra chồng chéo nhãn và giới hạn dựa trên độ dày nét vẽ SVG, kiểm tra hình học vẽ `polyline` / `polygon`, hình học nhãn được đặt vị trí `tspan`, hình học văn bản được đặt vị trí nhạy `text-anchor`, hình học nhạy biến đổi cho SVG vùng hạn chế canvas/văn bản chồng chéo và khói nhãn so với vẽ thông qua `render-svg-label-overlap`, cùng với kiểm tra khói màn hình chụp PNG không trống/khớp/chất nền dày, bao gồm màu sắc chỉ mục với alpha, mẫu trong suốt grayscale/RGB tRNS, và hướng dẫn cụ thể theo định dạng `render-png-unsupported` cho PNG chồng lớp Adam7 và các lỗi độ sâu bit chỉ mục, thông qua `foregroundBounds`, `foregroundDensity`, `render-png-content-clipped`, và `render-png-foreground-dense` mà không cần phân tích shell, bao gồm các thiết bị khói duy trì tổng thể thông qua `npm run diagram:smoke-circuitikz`, ghi lại cấu hình trình hiển thị bị thiếu thông qua `rendererAvailability.status: "missing-configuration"` và `compile-executable-invalid`, và có các chẩn đoán xem trước tổng quát, số lượng tóm tắt chẩn đoán, các mục lịch sử nhạy chẩn đoán, và phương án dự phòng chỉ từ nguồn thông qua `RenderArtifact.diagnostics` và mô-đun xem trước | Thêm khả năng nhận diện nhãn ở mức OCR cho văn bản hình ảnh chỉ dựa trên đường dẫn, kiểm tra chồng chéo chính xác ở mức pixel, phạm vi đường dẫn SVG rộng hơn khi cần thiết, cài đặt/phát hiện trình hiển thị tự động chỉ khi nó vẫn có thể là tùy chọn, và thực thi sửa chữa giữ nguyên cấu trúc tự động | +| Sự tích hợp TikZJax | Máy chủ hiển thị ứng viên cho màn hình phía Obsidian | Giữ nó là tùy chọn; đừng biến TikZJax thành phụ thuộc thời gian chạy plugin bắt buộc | + +## Cấu hình + +| Thiết lập | Mặc định | Tác động | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | Chuyển đổi giữa phiên bản dựa trên tiêu chuẩn và phiên bản cũ Mermaid | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` = Mermaid thôi; `'best-fit'` = các mục tiêu gốc + các phương án dự phòng | +| `preferredDiagramIntent` | `undefined` (tự động) | Đặt lại việc phát hiện ý định tự động | +| `summarizeToMermaidLanguage` | `'en'` | Ngôn ngữ mục tiêu cho nhãn sơ đồ | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | LLM theo từng nhiệm vụ để tạo sơ đồ | +| `autoMermaidFixAfterGenerate` | (từ các hằng số) | Chạy tự động công cụ sửa chữa cũ trên kết quả Mermaid | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | Bổ sung nguồn bằng kiến thức kho lưu trữ cục bộ | + +### Tăng cường kiến thức cục bộ + +Khi được kích hoạt, Notemd sẽ lấy các đoạn nội dung bối cảnh liên quan từ cơ sở kiến thức địa phương của kho lưu trữ (dựa trên MiniSearch) và chèn chúng vào đầu tài liệu markdown gốc. Mẫu mệnh lệnh bổ sung ghi rõ: "Chỉ dùng làm tài liệu tham khảo; giữ nguyên cấu trúc chính của ghi chú nguồn." + +### Chế độ tương thích + +- **`legacy-mermaid`**: Tất cả các ý định đều được chuyển hướng đến Mermaid. Các ý định không phải Mermaid (canvasMap, dataChart) sẽ bị ép buộc sử dụng `flowchart` hoặc `mindmap`. Không có chuỗi dự phòng nào. +- **`best-fit`**: Mỗi ý định sẽ được chuyển hướng đến mục tiêu gốc của nó. Nếu mục tiêu chính thất bại, hệ thống sẽ đi theo chuỗi dự phòng (ví dụ: Vega-Lite → Mermaid → HTML). + +## Xem trước và xuất + +| Hành động | Phương thức | +|--------|--------| +| SVG export | `mermaid.render()` / `vega.View.toSVG()` / SVG builder for Canvas | +| Xuất dạng PNG | SVG → Image → Canvas (tỷ lệ pixel thiết bị 1x-3x) → PNG ArrayBuffer | +| Lưu nguồn | Nội dung tài liệu thô được lưu với phần mở rộng tương ứng với mục tiêu | +| Xem trước chỉ nguồn | Các tài liệu không nằm trong dòng mã sẽ được hiển thị dưới dạng mã cùng các thông tin chẩn đoán, không sử dụng iframe để hiển thị | +| Kiểm toán ngữ nghĩa | Mermaid, JSON Canvas, Vega-Lite, và HTML/SVG có thể chỉnh sửa được đã được `scripts/diagram-semantic-verification.js` kiểm tra | + +**Lưu trữ đệm**: RenderCache sử dụng khóa JSON xác định rõ của `{spec, target, theme}`. Việc loại bỏ trùng lặp trong quá trình xử lý ngăn chặn việc tạo ra các kết quả hiển thị trùng lặp. + +## Mẹo + +- **Bắt đầu với chế độ `best-fit`** — nó tạo ra kết quả hình ảnh tốt nhất cho mỗi loại mục đích +- **Sử dụng các mô hình mạnh mẽ cho các sơ đồ phức tạp** — các sơ đồ luồng và sơ đồ ER được hưởng lợi từ GPT-4o hoặc Claude +- **Kích hoạt kiến thức cục bộ** cho các sơ đồ chuyên ngành — bối cảnh kho lưu trữ liên quan giúp nâng cao độ chính xác +- **Đặt `autoMermaidFixAfterGenerate`** — các lỗi cú pháp Mermaid thường xuất hiện nếu không có nó +- **Công cụ sửa lỗi cũ rất toàn diện** — nếu việc xem trước Mermaid thất bại, việc chạy lệnh sửa lỗi một cách thủ công thường giúp giải quyết vấn đề + +--- + +## Các bước tiếp theo + +- 🔗 [Wiki-Links](./wiki-links) — Cách các khái niệm được liên kết ngay trong văn bản +- 📝 [Concept Notes](./concept-notes) — Trích xuất các khái niệm để làm tài liệu nguồn cho sơ đồ +- 🔍 [Research](./research) — Bổ sung dữ liệu từ web vào các sơ đồ diff --git a/website/i18n/vi/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/vi/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..eda3ae71 --- /dev/null +++ b/website/i18n/vi/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "Nghiên cứu và Tìm kiếm web" +description: "Tích hợp tìm kiếm web vào ghi chú của bạn" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Nghiên cứu và Tìm kiếm web + +<TLDR> +**Notemd sẽ tìm kiếm trên web và chèn trực tiếp các kết quả được LLM tóm tắt vào ghi chú của bạn.** Tavily API là backend tìm kiếm chính; DuckDuckGo đóng vai trò là giải pháp dự phòng không cần cấu hình. Các kết quả được tóm tắt kèm theo nguồn trích dẫn và được thêm vào dưới tiêu đề `## Research`. Hỗ trợ nghiên cứu trong một ghi chú, nghiên cứu theo danh mục hàng loạt, và lựa chọn mô hình cho từng nhiệm vụ trong bước tóm tắt. + +Đây là một phần của [Obsidian Hướng dẫn Quản lý Kiến thức AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Tổng quan + +Nghiên cứu là một trong những tích hợp mạnh mẽ nhất của Notemd: nó kết nối các hoạt động đọc, tìm kiếm và viết lại với nhau. Thay vì chuyển sang trình duyệt để tìm kiếm một thuật ngữ chưa quen, bạn chỉ cần đánh dấu nó và để Notemd thực hiện việc tìm kiếm, tóm tắt và thêm kết quả vào – tất cả đều diễn ra trong kho lưu trữ của bạn. + +Quy trình này hoàn toàn có thể được cấu hình. Bạn có thể chọn nhà cung cấp dịch vụ tìm kiếm, LLM sẽ viết bản tóm tắt, và quyết định xem kết quả sẽ được thêm vào ghi chú đang mở hay được lưu vào các tệp riêng biệt. Chế độ hàng loạt cho phép bạn nghiên cứu tất cả các ghi chú trong một thư mục chỉ với một cú nhấp. + +## Cách thức hoạt động + +### Quy trình Tìm kiếm rồi Tóm tắt + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **Trích xuất truy vấn** -- Notemd sẽ trích xuất các từ khóa tìm kiếm từ phần được chọn hoặc tiêu đề ghi chú. +2. **Tìm kiếm web** -- Trước tiên sẽ thử sử dụng Tavily. Nếu không cấu hình khóa API nào, DuckDuckGo sẽ được sử dụng tự động (không cần khóa). +3. **Tóm tắt bằng LLM** -- Các kết quả tìm kiếm thô sẽ được gửi đến LLM đã được cấu hình, nơi này sẽ tạo ra một bản tóm tắt ngắn gọn kèm theo nguồn trích dẫn ngay trong văn bản. +4. **Thêm vào** -- Bản tóm tắt đã được định dạng sẽ được thêm vào dưới tiêu đề `## Research` trong ghi chú đang mở. + +### Tavily so với DuckDuckGo + +| Khía cạnh | Tavily | DuckDuckGo | +|--------|--------|------------| +| Khóa API | Cần thiết (có gói miễn phí) | Không cần thiết | +| Chất lượng kết quả | Cao hơn (được thiết kế riêng cho AI) | Đủ tốt cho các truy vấn thông thường | +| Giới hạn tần suất | Gói miễn phí rộng lớn | Bị giới hạn tốc độ | +| Cấu hình | `tavilyApiKey` trong cài đặt | Không cần cấu hình -- tự động chuyển sang phương án dự phòng | + +### Nghiên cứu thư mục theo nhóm + +Nhấp chuột phải vào thư mục và chọn **"Notemd: Thư mục nghiên cứu"**. Mỗi tệp `.md` trong thư mục sẽ được xử lý theo thứ tự (hoặc song song tùy theo mức độ đồng thời đã cấu hình). Mỗi ghi chú sẽ nhận được bản tóm tắt nghiên cứu riêng. + +## Cấu hình + +| Thiết lập | Mặc định | Tác động | +|---------|---------|--------| +| `tavilyApiKey` | `''` | Khóa Tavily API. Khi trống, chỉ sử dụng DuckDuckGo. | +| `researchProvider` / `researchModel` | DeepSeek | LLM mỗi nhiệm vụ để tóm tắt kết quả tìm kiếm | +| `maxResearchContentTokens` | `4000` | Ngân sách token cho nội dung được gửi đến LLM. Phần dư sẽ bị cắt bỏ. | +| `researchAppendToNote` | `true` | Thêm bản tóm tắt vào ghi chú nguồn. Nếu giá trị là false, sẽ tạo một tệp riêng. | +| `researchLanguage` | `'en'` | Ngôn ngữ đầu ra cho bản tóm tắt nghiên cứu | + +### Khuyến nghị mô hình mỗi nhiệm vụ + +Nghiên cứu được hưởng lợi từ một mô hình có thể xử lý nội dung đa ngôn ngữ và tạo ra văn bản có cấu trúc rõ ràng. Hãy xem xét: + +- **DeepSeek** -- mặc định, giá cả phải chăng, chất lượng tốt +- **GPT-4o** -- khả năng tóm tắt chất lượng cao hơn, chi phí cao hơn +- **Gemini Flash** -- nhanh và rẻ, phù hợp cho các truy vấn đơn giản + +## Ví dụ + +Bạn đang đọc một bài báo về *cơ chế chú ý transformer* và gặp một thuật ngữ chưa quen: *relative positional encoding*. Thay vì để Obsidian: + +1. Đánh dấu **"relative positional encoding"** +2. Nhấp chuột phải --> **"Notemd: Nghiên cứu và tóm tắt"** +3. Notemd tìm kiếm trên web, tóm tắt các kết quả hàng đầu và thêm vào: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +Bản tóm tắt giờ đây đã trở thành một phần của kho lưu trữ của bạn, có thể tìm kiếm, liên kết và truy cập ngoại tuyến. + +## Mẹo + +- **Đặt một khóa Tavily để có kết quả tốt nhất** -- ngay cả gói miễn phí cũng mang lại độ liên quan tốt hơn so với DuckDuckGo nguyên bản. +- **Sử dụng mô hình tóm tắt mạnh mẽ** -- các mô hình rẻ tiền có thể làm mất đi chi tiết kỹ thuật tinh tế. +- **Nghiên cứu theo nhóm** sau khi đọc sơ bộ để lấp đầy các khoảng trống trong nhiều ghi chú cùng lúc. +- **Kiểm tra các bản tóm tắt được thêm vào** -- LLM có thể tạo ra thông tin nguồn sai lệch. Hãy xác minh các khẳng định quan trọng. + +--- + +## Các bước tiếp theo + +- [Concept Notes](./concept-notes) -- Trích xuất và lưu giữ các thuật ngữ chính từ kết quả nghiên cứu +- [Wiki-Links](./wiki-links) -- Liên kết các khái niệm có được từ nghiên cứu trong kho lưu trữ của bạn +- [Translation](./translation) -- Dịch các bản tóm tắt nghiên cứu sang ngôn ngữ khác +- [LLM Các nhà cung cấp](/docs/providers/overview) -- Cấu hình mô hình dùng để tóm tắt diff --git a/website/i18n/vi/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/vi/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..3f0d8406 --- /dev/null +++ b/website/i18n/vi/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "Dịch thuật" +description: "Dịch ghi chú và các đoạn được chọn" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# Dịch thuật + +<TLDR> +**Notemd dịch văn bản giữa hơn 21 ngôn ngữ nhờ công nghệ dịch của LLM.** Hỗ trợ dịch từng đoạn, dịch toàn bộ ghi chú và dịch theo toàn bộ thư mục. Mỗi nhiệm vụ dịch có thể sử dụng nhà cung cấp và mô hình riêng thông qua cài đặt cho từng nhiệm vụ. Ngôn ngữ đầu ra có thể được thiết lập riêng biệt so với ngôn ngữ UI. Kết quả sẽ được gắn thêm vào hoặc viết vào một tệp mới tùy theo sở thích của bạn. + +Đây là một phần của [Obsidian Hướng dẫn Quản lý Kiến thức AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Tổng quan + +Việc dịch bằng Notemd không phải là việc tra từ điển -- đó là dịch có nhận thức ngữ cảnh nhờ LLM. Mô hình xem toàn bộ đoạn văn hoặc ghi chú, giữ nguyên giọng văn, thuật ngữ chuyên ngành và cấu trúc câu. Điều này tạo ra kết quả chất lượng cao hơn so với các dịch vụ dịch từng cụm từ, đặc biệt đối với văn bản kỹ thuật, học thuật và sáng tạo. + +Tính năng này hỗ trợ ba phạm vi: đoạn được chọn, ghi chú đang mở và toàn bộ thư mục. Kết hợp với việc chọn mô hình cho từng nhiệm vụ, bạn có thể sử dụng mô hình nhanh (Gemini Flash) cho các bản dịch thông thường và mô hình mạnh mẽ (Claude Sonnet) cho nội dung đòi hỏi sự tinh tế -- mà không cần thay đổi nhà cung cấp toàn cục. + +## Cách thức hoạt động + +### Lệnh Dịch + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **Phát hiện nguồn ngôn ngữ** -- LLM suy luận ngôn ngữ gốc từ nội dung. Bạn không cần phải chỉ định nó thủ công. +2. **Xây dựng mệnh lệnh** -- Notemd tạo ra một mệnh lệnh bao gồm ngôn ngữ đích, gợi ý chuyên ngành tùy chọn và nội dung cần dịch. +3. **Dịch LLM** -- `translateProvider` / `translateModel` đã được cấu hình xử lý yêu cầu. Mô hình giữ nguyên định dạng markdown, liên kết wiki và khối mã. +4. **Kết quả** -- Văn bản đã dịch sẽ được gắn thêm phía dưới văn bản gốc hoặc viết vào một tệp mới trong kho lưu trữ. + +### Các cặp ngôn ngữ + +Notemd hỗ trợ bất kỳ cặp ngôn ngữ nào mà LLM ở phía sau hỗ trợ. Các cặp phổ biến bao gồm: + +| Ngôn ngữ gốc | Mục tiêu | Chất lượng thông thường | +|--------|--------|----------------| +| Tiếng Anh | Tiếng Trung Giản Thể | Xuất sắc | +| Tiếng Trung | Tiếng Anh | Tuyệt vời | +| Tiếng Anh | Tiếng Nhật | Rất tốt | +| Tiếng Anh | Tiếng Đức / Tiếng Pháp / Tiếng Tây Ban Nha | Rất tốt | +| Bất kỳ ngôn ngữ nào được hỗ trợ | Bất kỳ ngôn ngữ nào được hỗ trợ | Tùy thuộc vào mô hình | + +Cài đặt `translateLanguage` kiểm soát **ngôn ngữ đầu ra**. Ngôn ngữ nguồn sẽ được tự động phát hiện. + +### Lựa chọn mô hình theo nhiệm vụ + +Chất lượng dịch thuật thay đổi đáng kể tùy theo mô hình. Notemd cho phép bạn chỉ định một mô hình riêng dành riêng cho việc dịch thuật: + +| Mô hình | Tốc độ | Chất lượng | Chi phí | Phù hợp nhất cho | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | Nhanh | Tốt | Thấp | Sử dụng thông thường, khối lượng lớn | +| `gpt-4o-mini` | Nhanh | Tốt | Thấp | Tìm kiếm nhanh | +| `deepseek-chat` | Trung bình | Tốt | Rất thấp | Dự án đa ngôn ngữ ngân sách thấp | +| `claude-3-5-sonnet` | Trung bình | Xuất sắc | Trung bình | Kỹ thuật / học thuật | +| `gpt-4o` | Trung bình | Xuất sắc | Trung bình | Văn bản nhạy cảm với sắc thái ngôn ngữ | + +### Dịch toàn bộ thư mục theo lô + +Nhấp chuột phải vào một thư mục và chọn **"Notemd: Dịch thư mục"** để dịch tất cả ghi chú trong thư mục đó. Mỗi tệp được xử lý riêng biệt. Thiết lập đồng thời kiểm soát số lượng tệp được dịch song song. + +## Cấu hình + +| Thiết lập | Mặc định | Tác động | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | Nhà cung cấp chuyên dụng cho các nhiệm vụ dịch thuật | +| `translateLanguage` | `'en'` | Ngôn ngữ đầu ra mục tiêu | +| `translationAppendToNote` | `true` | Thêm văn bản đã dịch phía dưới văn bản gốc. Nếu đặt thành false, sẽ tạo một tệp mới. | +| `batchConcurrency` | `3` | Số lượng tệp được xử lý song song trong quá trình dịch theo lô | + +## Ví dụ + +Bạn đang đọc một ghi chú nghiên cứu bằng tiếng Trung và muốn có phiên bản bằng tiếng Anh: + +1. Mở ghi chú +2. Nhấp chuột phải --> **"Notemd: Dịch tệp hiện tại"** +3. Notemd nhận diện tiếng Trung, dịch sang ngôn ngữ đích đã cấu hình (tiếng Anh) và thêm vào phía dưới: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +Văn bản tiếng Trung gốc vẫn được giữ nguyên phía trên phần dịch. Tiêu đề `## Translation` giúp giữ cả hai phiên bản trong cùng một tệp để dễ tham khảo. + +## Mẹo + +- **Sử dụng Gemini Flash cho việc dịch số lượng lớn** -- đây là lựa chọn nhanh nhất và rẻ nhất cho việc dịch theo lô các thư mục lớn. +- **Giữ nguyên các liên kết wiki** -- Yêu cầu của Notemd hướng dẫn LLM phải giữ `[[wiki-links]]` nguyên vẹn trong quá trình dịch. Hãy kiểm tra lại sau khi dịch, vì một số mô hình đôi khi sẽ làm mất chúng. +- **Đặt rõ ngôn ngữ đầu ra** -- Việc tự động nhận diện hoạt động tốt với nguồn văn bản, nhưng luôn cấu hình `translateLanguage` để tránh sự mơ hồ về ngôn ngữ đích. +- **Dịch hàng loạt các ghi chú ý tưởng** -- Nếu thư mục ý tưởng của bạn được viết bằng một ngôn ngữ nào đó và bạn cần chuyển nó sang ngôn ngữ khác, việc dịch ở cấp độ thư mục sẽ xử lý điều này trong một bước duy nhất. + +--- + +## Các bước tiếp theo + +- [Nghiên cứu](./research) -- Tìm kiếm và tóm tắt bằng bất kỳ ngôn ngữ nào, sau đó dịch kết quả +- [Công việc](./workflows) -- Kết hợp dịch với liên kết wiki hoặc trích xuất ý tưởng +- [Xử lý hàng loạt](/docs/advanced/batch-processing) -- Chế độ đồng thời và hành vi ghi đè khi thao tác với thư mục +- [LLM Các nhà cung cấp](/docs/providers/overview) -- Chọn mô hình phù hợp nhất cho cặp ngôn ngữ của bạn diff --git a/website/i18n/vi/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/vi/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..d5216f70 --- /dev/null +++ b/website/i18n/vi/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "Wiki-Links" +description: "Tạo liên kết wiki tự động cho các khái niệm chính" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# Wiki-Links + +<TLDR> +**Notemd sẽ tự động thêm `[[wiki-links]]` vào các khái niệm trong ghi chú của bạn.** LLM sẽ đọc nội dung, xác định các thuật ngữ quan trọng trong ngữ cảnh và chèn các liên kết wiki theo kiểu Obsidian tại mỗi lần xuất hiện. Nó cũng có thể tạo ra các tệp ghi chú khái niệm kèm theo liên kết ngược. Hỗ trợ việc loại bỏ từ đồng nghĩa, duy trì tính toàn vẹn của liên kết khi đổi tên hoặc xóa, và chế độ trích xuất thuần túy (không sửa đổi tệp). Khác với Auto Link chỉ ghép nối với các tiêu đề ghi chú hiện có, Notemd sử dụng AI để xác định các khái niệm mới và tạo ra các ghi chú tương ứng. Đây là một phần của [Obsidian Hướng dẫn Quản lý Kiến thức AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Tổng quan + +Việc tạo liên kết wiki là tính năng cốt lõi của Notemd. Nó biến văn bản thông thường thành một đồ thị kiến thức có sự kết nối thông qua các bước sau: + +1. **Phân tích ghi chú** của bạn bằng LLM +2. **Xác định các khái niệm chính** (từ ngữ, người, phương pháp, lý thuyết) +3. **Chèn `[[wiki-links]]`** tại mỗi lần xuất hiện +4. **Tạo ghi chú khái niệm** (tùy chọn) kèm theo liên kết ngược + +## Cách thức hoạt động + +### Quy trình + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### Ví dụ + +**Trước khi xử lý:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**Sau khi xử lý:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## Cách sử dụng + +### Cơ bản: Thêm liên kết vào ghi chú hiện tại + +1. Mở một ghi chú +2. Nhấp chuột phải trong trình soạn thảo → **"Xử lý tệp (thêm liên kết)"** +3. Chờ vài giây +4. Các khái niệm giờ đã được liên kết rồi! + +### Nhóm xử lý: Xử lý nhiều ghi chú + +1. Nhấp chuột phải vào một thư mục trong File Explorer +2. Chọn **"Notemd: Xử lý thư mục (thêm liên kết)"** +3. Cấu hình: + - Độ đồng thời (số tệp được xử lý song song) + - Ghi đè các liên kết hiện có (có/không) +4. Nhấp **Xử lý** + +### Chọn lọc: Liên kết văn bản cụ thể + +1. Đánh dấu văn bản cần xử lý +2. Nhấp chuột phải → **"Xử lý phần được đánh dấu (thêm liên kết)"** +3. Chỉ phần được đánh dấu mới được phân tích + +## Notemd so với Tự động liên kết + +Obsidian có hai phương pháp tạo liên kết wiki tự động: + +| | **Tự động liên kết** | **Notemd** | +|--|---------------|-------------| +| Nguồn liên kết | Tên ghi chú hiện có trong kho lưu trữ | Các khái niệm được LLM xác định trong nội dung | +| Có thể liên kết các khái niệm mới | Không — tiêu đề đã phải tồn tại rồi | Có — AI xác định các khái niệm và tạo ghi chú | +| Xử lý từ đồng nghĩa | Không | Có — ức chế từ đồng nghĩa | +| Tạo ghi chú khái niệm | Không | Có — kèm theo liên kết ngược và loại bỏ trùng lặp | +| Xử lý theo lô | Không (tệp đơn) | Có (ở cấp thư mục) | +| Định tuyến mô hình theo nhiệm vụ | Không | Có | + +**Auto Link** dựa trên việc so khớp tiêu đề: nếu có ghi chú tên là "Machine Learning" thì nó sẽ bao bọc các lần xuất hiện trong `[[Machine Learning]]`. Nếu không có ghi chú nào thì không xảy ra gì. + +**Notemd** được điều khiển bởi AI: LLM đọc nội dung của bạn, hiểu ngữ cảnh, xác định các khái niệm *nên* được liên kết — ngay cả khi chưa có ghi chú nào — và tạo cả liên kết lẫn ghi chú khái niệm. + +## Tính năng + +### Ức chế từ đồng nghĩa + +**Vấn đề:** "transformer", "transformers", "Transformer architecture" → 3 khái niệm riêng biệt + +**Giải pháp:** Notemd phát hiện các dữ liệu gần giống nhau và sử dụng dạng chuẩn hóa. + +**Cấu hình:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### Tính toàn vẹn của liên kết + +**Khi bạn đổi tên ghi chú khái niệm:** +- Tất cả các liên kết wiki sẽ được cập nhật tự động (Obsidian tính năng cốt lõi) +- Các liên kết ngược vẫn giữ nguyên + +**Khi bạn xóa ghi chú khái niệm:** +- Các liên kết vẫn tồn tại nhưng hiển thị là "các đề cập không có liên kết" +- Bạn có thể tạo lại từ bất kỳ lần xuất hiện nào + +### Chế độ trích xuất thuần túy + +**Trích xuất các khái niệm mà không sửa đổi tài liệu gốc:** + +1. Nhấp chuột phải → **"Trích xuất các khái niệm (không liên kết)"** +2. Các ghi chú khái niệm được tạo ra +3. Tập tin gốc không bị thay đổi + +Trường hợp sử dụng: Xử lý nội dung chỉ đọc hoặc bản thảo cuối cùng. + +## Tạo ghi chú khái niệm + +### Tạo tự động + +**Khi được bật (mặc định), Notemd tạo ra:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### Cấu hình + +**Thư mục đầu ra:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Cấu trúc phân cấp:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**Mẫu:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## Tùy chọn nâng cao + +### Cửa sổ ngữ cảnh + +**Số lượng văn bản xung quanh cần gửi:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +Số lượng lớn = độ chính xác cao hơn, chi phí cao hơn. + +### Số lần xuất hiện tối thiểu + +**Chỉ liên kết các khái niệm xuất hiện nhiều lần:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +Đặt thành 2 hoặc 3 để tập trung vào các chủ đề lặp lại. + +### Loại trừ mẫu + +**Bỏ qua một số từ:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +Ngăn việc liên kết quá mức các thuật ngữ chung. + +### Các mẫu yêu cầu tùy chỉnh + +**Đặt lại hướng dẫn mặc định của LLM:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +Thay đổi để phù hợp với nhu cầu cụ thể của lĩnh vực (ví dụ: "Tập trung vào thuật ngữ y khoa"). + +## Mẹo và Thực tiễn tốt nhất + +### ✅ NÊN làm + +- **Xử lý ghi chú có hơn 100 từ** — Các ghi chú ngắn sẽ cho ít khái niệm hơn +- **Sử dụng các mô hình mạnh mẽ** để nhận diện khái niệm tốt hơn (GPT-4o, Claude) +- **Kiểm tra lại trước khi chấp nhận** — Xem xét các liên kết được đề xuất có hợp lý không +- **Xây dựng theo từng bước** — Xử lý 5-10 ghi chú, xem xét sơ đồ, điều chỉnh cài đặt + +### ❌ KHÔNG nên làm + +- **Liên kết quá mức** — Không phải mọi danh từ đều cần có liên kết +- **Xử lý bản thảo nhiều lần** — Các khái niệm có thể thay đổi, hãy chờ cho đến khi ổn định +- **Bỏ qua từ đồng nghĩa** — Bật chức năng ức chế để tránh sự khác biệt giữa "ML" và "Machine Learning" + +## Hiệu suất + +### Tốc độ + +| Kích thước ghi chú | GPT-4o-mini | Claude Sonnet | Ollama (local) | +|-----------|-------------|---------------|----------------| +| 500 từ | 2-3 giây | 3-5 giây | 5-10 giây | +| 2000 từ | 5-8 giây | 10-15 giây | 20-40 giây | +| 5000+ từ | Chia thành từng phần (nhiều lần gọi) | Được chia thành từng phần | Được chia thành từng phần | + +### Ước tính chi phí + +**Ví dụ: Ghi chú 1000 từ với GPT-4o-mini** +- Đầu vào: ~1500 token +- Kết quả: ~200 token +- Chi phí: ~ + +**Xử lý theo lô 100 ghi chú:** khoảng $0.10 + +## Khắc phục sự cố + +### Không có liên kết nào được thêm vào + +**Kiểm tra:** +1. LLM gọi đã thành công (Settings → Diagnostics) +2. Ghi chú đã có đủ nội dung (hơn 50 từ) +3. Các khái niệm là kỹ thuật/cụ thể (không chỉ là đại từ) + +**Thử:** +- Sử dụng mô hình mạnh hơn +- Tăng kích thước cửa sổ ngữ cảnh +- Kiểm tra tính hợp lệ của khóa API + +### Quá nhiều liên kết + +**Giải pháp:** +1. Tăng số lần xuất hiện tối thiểu (2 hoặc 3) +2. Thêm các từ phổ biến vào danh sách loại trừ +3. Sử dụng mô hình ít hung hăng hơn + +### Các khái niệm liên kết bị sai + +**Các cập nhật:** +1. Sử dụng mẫu yêu cầu tùy chỉnh để tăng độ chuyên biệt cho miền +2. Kích hoạt việc ức chế từ đồng nghĩa +3. Xem xét thủ công và gỡ liên kết + +### Liên kết bị hỏng sau khi đổi tên + +**Đây là hành vi bình thường Obsidian.** + +Để cập nhật tất cả các liên kết: +1. Đổi tên ghi chú khái niệm +2. Obsidian sẽ tự động cập nhật `[[old]]` thành `[[new]]` + +--- + +## Các bước tiếp theo + +- 📖 [Ghi chú khái niệm](./concept-notes) — Tìm hiểu sâu về việc tạo ghi chú khái niệm +- 🔍 [Tích hợp nghiên cứu](./research) — Kết hợp việc liên kết với nghiên cứu trên web +- 🎨 [Sơ đồ](./diagrams) — Trực quan hóa đồ thị kiến thức của bạn diff --git a/website/i18n/vi/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/vi/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..f836358d --- /dev/null +++ b/website/i18n/vi/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "Công việc theo dây chuyền" +description: "Kết nối nhiều nhiệm vụ với các nút nhấp một lần" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Công việc theo dây chuyền + +<TLDR> +**Notemd Các công việc theo dây chuyền kết hợp nhiều nhiệm vụ thành một thao tác nhấp một lần duy nhất.** Bạn có thể định nghĩa trình tự như `add-links > extract-concepts > research > diagram` bằng một ngôn ngữ kịch bản đơn giản. Các công việc theo dây chuyền hiển thị dưới dạng các nút ở thanh bên, chạy toàn bộ chuỗi thao tác trên ghi chú hoặc thư mục hiện tại. Phần mềm đi kèm với các công việc theo dây chuyền đã được định nghĩa sẵn; bạn có thể tạo các công việc theo dây chuyền tùy chỉnh trong phần cài đặt. Mỗi bước sử dụng cấu hình mô hình riêng cho từng nhiệm vụ. + +Đây là một phần của [Obsidian Hướng dẫn Quản lý Kiến thức AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Tổng quan + +Một công việc theo dây chuyền loại bỏ sự phiền toái khi phải thực hiện các nhiệm vụ từng cái một. Thay vì nhấp chuột phải bốn lần để thêm liên kết, trích xuất khái niệm, tìm kiếm các thuật ngữ chưa quen thuộc và tạo sơ đồ, bạn chỉ cần nhấn một nút ở thanh bên và toàn bộ chuỗi thao tác sẽ được thực thi. Notemd sẽ xử lý việc sắp xếp trình tự, truyền lỗi và báo cáo tiến độ. + +Các công việc theo dây chuyền được định nghĩa bằng một ngôn ngữ kịch bản nhẹ (ngôn ngữ chuyên dụng cho lĩnh vực). Chúng nằm trong phần cài đặt, hiển thị dưới dạng các nút có thể nhấp ở thanh bên Obsidian, và có thể được áp dụng cho ghi chú hiện tại hoặc toàn bộ thư mục. + +## Cách thức hoạt động + +### Đường ống thực thi công việc theo dây chuyền + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **Giải mã** -- Chuỗi ngôn ngữ kịch bản được chia theo `>` (hoặc `>`) thành danh sách có trình tự các định danh nhiệm vụ. +2. **Xác định** -- Mỗi định danh được ánh xạ tới một lệnh nội bộ (add-links, extract-concepts, research, translate, diagram, v.v.). +3. **Thực thi** -- Các bước được chạy theo trình tự. Mỗi bước sử dụng nhà cung cấp và mô hình được cấu hình riêng cho nhiệm vụ đó. +4. **Xử lý lỗi** -- Nếu một bước thất bại, công việc theo dây chuyền sẽ dừng lại hoặc tiếp tục sang bước tiếp theo, tùy theo chính sách xử lý lỗi của bạn. +5. **Hoàn tất** -- Một thông báo hiện lên báo cáo kết quả thành công hoặc liệt kê các bước thất bại. + +### Định dạng ngôn ngữ kịch bản + +Các công việc theo dây chuyền được định nghĩa là một chuỗi các định danh nhiệm vụ được tách bằng `>`: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**Các định danh nhiệm vụ có sẵn:** + +| Định danh | Hành động | +|------------|--------| +| `process-current-add-links` | Thêm các liên kết wiki vào ghi chú đang hoạt động | +| `extract-concepts-current` | Trích xuất các khái niệm từ ghi chú đang hoạt động | +| `research-and-summarize` | Nghiên cứu văn bản hoặc tiêu đề ghi chú đã chọn | +| `process-current-translate` | Dịch ghi chú đang hoạt động | +| `summarize-to-mermaid` | Tạo sơ đồ từ ghi chú đang hoạt động | +| `generate-from-title` | Tạo nội dung từ tiêu đề ghi chú | +| `extract-original-text` | Trích xuất văn bản gốc (để sử dụng OCR / nội dung được quét) | + +**Các biến thể ở cấp thư mục** thay thế `current` bằng `folder` trong tên định danh. + +### Quy trình làm việc có sẵn so với quy trình tùy chỉnh + +Notemd đi kèm với các quy trình làm việc đã được chuẩn bị sẵn cho các mẫu phổ biến: + +| Quy trình làm việc | Chuỗi | Trường hợp sử dụng | +|----------|-------|----------| +| **Trích xuất một cú nhấp** | thêm-liên-kết > trích-xuất-khái-niệm > nghiên-cứu | Xử lý một bài báo nghiên cứu trong một lần duy nhất | +| **Toàn bộ chuỗi xử lý** | thêm-liên-kết > trích-rút-khái-niệm > nghiên-cứu > sơ-đồ | Hoàn tất việc trích rút kiến thức kèm theo trực quan hóa | +| **Dịch + Liên kết** | dịch > thêm-liên-kết | Dịch rồi liên kết các khái niệm bằng ngôn ngữ mục tiêu | + +**Các công việc tự định** được tạo trong phần cài đặt: + +1. Mở **Cài đặt** --> **Notemd** --> **Công việc** +2. Nhấp vào **"Thêm Công việc"** +3. Nhập chuỗi DSL (ví dụ: `process-current-add-links>extract-concepts-current`) +4. Đặt tên hiển thị cho nó (ví dụ: "Liên kết Nhanh + Trích rút") +5. Nút mới sẽ xuất hiện ngay trong thanh bên + +## Cấu hình + +| Thiết lập | Mặc định | Tác động | +|---------|---------|--------| +| `workflows` | Bộ định nghĩa sẵn có | Danh sách các định nghĩa công việc (tên + DSL) | +| `workflowContinueOnError` | `true` | Tiếp tục sang bước tiếp theo nếu bước hiện tại thất bại | +| `workflowShowProgress` | `true` | Hiển thị thông báo tiến trình sau mỗi bước hoàn thành | + +### Các Mô hình theo Nhiệm vụ trong Công việc + +Mỗi bước trong một workflow sử dụng cấu hình mô hình riêng cho từng nhiệm vụ. Bạn không cần phải chỉ định các mô hình trong chính DSL. Thứ tự xử lý là: + +1. Nhà cung cấp/mô hình riêng cho nhiệm vụ nếu `useMultiModelSettings` được sử dụng +2. `activeProvider` toàn cục nếu không + +Điều này có nghĩa là `add-links` có thể chạy trên DeepSeek trong khi `research` chạy trên GPT-4o -- tất cả đều diễn ra trong cùng một workflow click. + +## Ví dụ + +Bạn vừa nhập một PDF của một bài báo học máy vào kho lưu trữ của mình và muốn trích xuất toàn bộ kiến thức: + +1. Mở ghi chú đã nhập +2. Nhấp vào nút bên cạnh **"Full Pipeline"** +3. Notemd sẽ thực thi các bước sau: + - **Bước 1**: Thêm các liên kết wiki -- `[[attention mechanism]]`, `[[transformer]]`, v.v. + - **Bước 2**: Trích xuất các khái niệm -- tạo các ghi chú khái niệm trong thư mục khái niệm của bạn + - **Bước 3**: Nghiên cứu -- tóm tắt các nguồn trên web cho các từ khóa chính + - **Bước 4**: Vẽ sơ đồ -- tạo một Mermaid mindmap về cấu trúc của bài báo +4. Sau khoảng 30 giây, ghi chú của bạn sẽ có các liên kết, các ghi chú khái niệm sẽ được tạo ra, phần nghiên cứu sẽ được thêm vào và một tập tin sơ đồ sẽ được lưu lại + +Tất cả chỉ với một cú nhấp chuột. + +## Mẹo + +- **Bắt đầu với các workflow đã định nghĩa sẵn** -- chúng bao phủ các mô hình phổ biến nhất. Chỉ tùy chỉnh khi bạn cần trình tự khác. +- **Kích hoạt `workflowContinueOnError`** -- việc thất bại ở bước vẽ sơ đồ không nên làm gián đoạn toàn bộ pipeline. +- **Sử dụng công việc thư mục** để xử lý hàng loạt -- nhấp chuột phải vào một thư mục, chọn công việc, và mọi ghi chú sẽ được xử lý. +- **Đặt tên công việc một cách rõ ràng** -- không gian ở thanh bên là có hạn. Hãy dùng những tên ngắn, hướng đến hành động như "Trích xuất nhanh" hoặc "Dịch + Liên kết". + +--- + +## Các bước tiếp theo + +- [Nghiên cứu](./research) -- Hiểu rõ chức năng của bước nghiên cứu trước khi thêm nó vào các công việc +- [Liên kết Wiki](./wiki-links) -- Tính năng liên kết cốt lõi được sử dụng trong hầu hết các công việc +- [Ghi chú khái niệm](./concept-notes) -- Trích xuất khái niệm như một bước trong công việc +- [Xử lý theo lô](/docs/advanced/batch-processing) -- Đồng thời xử lý và báo cáo tiến trình cho các công việc thư mục diff --git a/website/i18n/vi/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/vi/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..8f99040b --- /dev/null +++ b/website/i18n/vi/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "Cấu hình" +description: "Cấu hình các thiết lập và tùy chọn cho Notemd" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Cấu hình + +<TLDR> +**Cấu hình Notemd bao gồm 6 lĩnh vực chính:** (1) các nhà cung cấp LLM và khóa API, (2) việc chọn mô hình theo nhiệm vụ, (3) đường dẫn và mẫu kết quả, (4) ngôn ngữ UI và ngôn ngữ đầu ra, (5) các dịch vụ tìm kiếm (Tavily/DuckDuckGo), (6) các luồng công việc tùy chỉnh. Tất cả các thiết lập nằm trong Obsidian Settings → Notemd. Các thay đổi sẽ có hiệu lực ngay lập tức. +</TLDR> + +## Tổng quan về thiết lập + +Truy cập: **Obsidian Settings (⚙️) → Notemd** + +### Các mục chính + +1. **Cấu hình nhà cung cấp** — các khóa API, URLs cơ bản, các mô hình +2. **Thiết lập nhiệm vụ** — việc chọn mô hình theo từng nhiệm vụ +3. **Cấu hình đầu ra** — nơi lưu các tệp được tạo ra +4. **Thiết lập ngôn ngữ** — UI và ngôn ngữ đầu ra +5. **Tích hợp tìm kiếm** — cài đặt Tavily/DuckDuckGo +6. **Luồng công việc** — chuỗi nút tùy chỉnh +7. **Nâng cao** — chẩn đoán, xử lý theo lô, phân mảnh + +--- + +## 1. Cấu hình nhà cung cấp + +### Thêm nhà cung cấp + +1. **Chọn nhà cung cấp** từ danh sách thả xuống (có hơn 30 nhà cung cấp) +2. **Nhập khóa API** +3. **Tùy chọn**: Đặt URL cơ sở tùy chỉnh (dành cho proxy/cổng mạng) +4. **Nhấp "Get Model List"** để kiểm tra kết nối +5. **Chọn mô hình mặc định** + +### Các nhà cung cấp phổ biến + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama (Local) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### Nhiều nhà cung cấp + +Bạn có thể cấu hình nhiều nhà cung cấp và chuyển đổi giữa chúng tùy theo từng nhiệm vụ: +- **Nhà cung cấp chính**: Dùng làm giải pháp dự phòng +- **Nhà cung cấp riêng cho nhiệm vụ**: Đặt lại giá trị cho các nhiệm vụ cụ thể + +--- + +## 2. Các mô hình riêng cho nhiệm vụ + +Cấu hình các mô hình khác nhau cho từng nhiệm vụ để tối ưu hóa chi phí/chất lượng: + +### Loại nhiệm vụ + +| Nhiệm vụ | Mô hình mặc định | Mục đích | +|------|--------------|---------| +| **Kết nối** | Nhà cung cấp chính | Xác định các khái niệm cho các liên kết wiki | +| **Tạo khái niệm** | Nhà cung cấp chính | Trích xuất và mô tả các khái niệm | +| **Nghiên cứu** | Nhà cung cấp chính | Tóm tắt kết quả tìm kiếm trên web | +| **Dịch thuật** | Nhà cung cấp chính | Dịch văn bản | +| **Tạo sơ đồ** | Nhà cung cấp chính | Tạo sơ đồ Mermaid/Canvas | + +### Ví dụ: Thiết lập tối ưu hóa chi phí + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### Cách cấu hình + +1. **Settings → Notemd → Task Settings** +2. Đối với mỗi nhiệm vụ, hãy chọn: + - ✅ **Sử dụng nhà cung cấp chính** (mặc định) + - 🔄 **Sử dụng nhà cung cấp tùy chỉnh** → chọn nhà cung cấp + mô hình + +--- + +## 3. Cấu hình đầu ra + +### Đầu ra ghi chú về khái niệm + +**Vị trí lưu các ghi chú ý tưởng mới:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**Mẫu:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### Tùy chọn cấu trúc thư mục + +**Tùy chọn 1: Dạng phẳng (tất cả các ý tưởng trong một thư mục)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**Tùy chọn 2: Dạng phân cấp (theo thư mục nguồn)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +Cấu hình: **Settings → Output → Use Hierarchical Folders** + +### Kết quả đồ thị + +**Vị trí lưu các đồ thị:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**Định dạng:** +- `.mmd` (Mermaid nguồn) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. Cài đặt ngôn ngữ + +### UI Ngôn ngữ + +**Ngôn ngữ giao diện** (nút, menu, hộp thoại): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +Hỗ trợ: Tiếng Anh, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Русский, العربية, và nhiều ngôn ngữ khác. + +### Ngôn ngữ đầu ra + +**Ngôn ngữ nội dung được tạo ra** (ghi chú khái niệm, tóm tắt nghiên cứu): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**Trường hợp sử dụng:** Tiếng Trung UI + kết quả bằng tiếng Anh cho nghiên cứu song ngữ. + +### Mục tiêu dịch thuật + +**Ngôn ngữ mục tiêu mặc định** cho các nhiệm vụ dịch thuật: + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. Tích hợp tìm kiếm + +### Tavily (Được khuyến nghị) + +**Dịch vụ tìm kiếm tối ưu hóa bởi AI:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +Lấy khóa: [tavily.com](https://tavily.com/) + +**Các tính năng:** +- Kết quả chất lượng cao +- Tóm tắt tối ưu hóa bởi AI +- Trích dẫn nguồn + +### DuckDuckGo (Thử nghiệm) + +**Không cần khóa API:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**Ghi chú:** Chất lượng thấp, không thể tùy chỉnh. + +--- + +## 6. Cấu hình quy trình làm việc + +### Tạo các quy trình làm việc tùy chỉnh + +**Các công việc được liên kết thành một nút duy nhất.** + +1. **Cài đặt → Công việc → Thêm công việc** +2. **Tên**: "Quy trình phân tích giấy tờ" +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **Lưu** + +Một nút mới sẽ xuất hiện ở thanh bên trái. + +### Cú pháp DSL + +**Định dạng:** `action1>action2>action3` + +**Các thao tác có sẵn:** +- `process-current-add-links` — Thêm liên kết wiki vào ghi chú hiện tại +- `extract-concepts-current` — Tạo ghi chú khái niệm +- `research-and-summarize` — Nghiên cứu trên web + tóm tắt +- `translate-current` — Dịch ghi chú hiện tại +- `summarize-as-mermaid` — Tạo sơ đồ Mermaid +- `process-folder-add-links` — Xử lý theo nhóm các thư mục + +**Các công việc mẫu:** + +**Trích xuất khái niệm nhanh:** +``` +process-current-add-links>extract-concepts-current +``` + +**Nghiên cứu sâu:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**Phân tích đa ngôn ngữ:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7. Cài đặt nâng cao + +### Xử lý theo lô + +**Xử lý nhiều tập tin song song:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +Giá trị cao hơn = nhanh hơn nhưng có nhiều lần gọi API hơn. + +### Phân mảnh thông minh + +**Đối với ghi chú dài, chia thành các mảnh:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +Ngăn chặn lỗi do giới hạn token. + +### Bảng chẩn đoán + +**Xem nhật ký chi tiết:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +Hiển thị: +- API yêu cầu/phản hồi +- Số lượng token sử dụng +- Thời gian xử lý +- Lỗi + +### Phát hiện khái niệm trùng lặp + +**Tránh các khái niệm gần giống nhau:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +Giá trị cao hơn = việc hợp nhất mạnh mẽ hơn. + +--- + +## Các chế độ cấu hình + +### Xuất/Nhập thiết lập + +**Chia sẻ cấu hình giữa các thiết bị:** + +1. **Thiết lập → Nâng cao → Xuất cấu hình** +2. Lưu vào `notemd-config.json` +3. Trên thiết bị mới: **Nhập cấu hình** + +**Những gì được bao gồm:** +- Các khóa nhà cung cấp API (tùy chọn) +- Các lựa chọn mô hình +- Đường dẫn đầu ra +- Các quy trình làm việc tùy chỉnh + +--- + +## Các cấu hình được khuyến nghị + +### Dành cho sinh viên + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### Dành cho nhà nghiên cứu + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### Dành cho người dùng quan tâm đến quyền riêng tư + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### Dành cho công việc song ngữ + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## Khắc phục sự cố cấu hình + +### Cài đặt không được lưu +- Kiểm tra quyền truy cập tệp trong `.obsidian/plugins/notemd/` +- Thử: Tắt plugin → Kích hoạt lại + +### Khóa API không hợp lệ +- Không có khoảng trắng thừa +- Kiểm tra thời hạn hết hạn +- Kiểm tra số tín dụng trên bảng điều khiển nhà cung cấp + +### Các mô hình không được tải +- Nhấn "Get Model List" để làm mới +- Kiểm tra kết nối mạng +- Thử với nhà cung cấp khác + +--- + +## Các bước tiếp theo + +- 📖 [Khám phá các tính năng](../features/wiki-links) +- 🔌 [Hướng dẫn thiết lập nhà cung cấp](../providers/overview) +- ❓ [Hỏi đáp](../faq) diff --git a/website/i18n/vi/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/vi/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..76e8c198 --- /dev/null +++ b/website/i18n/vi/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "Cài đặt" +description: "Làm thế nào để cài đặt Notemd trên Obsidian" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Cài đặt + +<TLDR> +**Cài đặt Notemd trong chưa đầy 2 phút.** Có hai phương thức: (1) Các plugin cộng đồng Obsidian (được khuyến nghị, cài đặt chỉ với một cú nhấp), hoặc (2) Cài đặt thủ công thông qua GitHub Releases. Yêu cầu phiên bản Obsidian 0.15.0+ trở lên. Hoạt động trên Windows, macOS, Linux, iOS và Android. Không yêu cầu phụ thuộc bên ngoài. Hơn 4k lần tải về, được cấp phép theo giấy phép MIT. +</TLDR> + +## Phương pháp 1: Các plugin cộng đồng (Được khuyến nghị) + +1. Mở **Obsidian Cài đặt** (biểu tượng ⚙️ hoặc `Ctrl/Cmd + ,`) +2. Di chuyển đến **Community plugins** +3. Nhấp vào **Browse** +4. Tìm kiếm **"Notemd"** +5. Nhấp vào **Install** +6. Nhấp vào **Enable** + +**Xong rồi!** Bạn sẽ thấy biểu tượng Notemd ở thanh bên trái của mình. + +## Phương pháp 2: Cài đặt thủ công + +### Điều kiện tiên quyết +- Obsidian 0.15.0 hoặc phiên bản mới hơn +- Git (tùy chọn, dùng để sao chép) + +### Các bước + +1. **Tải xuống các tệp** từ [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest): + - `main.js` + - `styles.css` + - `manifest.json` + +2. **Tìm thư mục plugin của kho lưu trữ:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +Nếu thư mục `plugins` chưa tồn tại, hãy tạo nó. + +3. **Tạo thư mục Notemd:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. **Sao chép ba tệp** vào thư mục `notemd`. + +5. **Tải lại Obsidian:** + - Nhấn `Ctrl/Cmd + R`, hoặc + - Khởi động lại Obsidian + +6. **Kích hoạt plugin:** + - Cài đặt → Các plugin cộng đồng + - Tìm "Notemd" trong danh sách + - Bật nó lên + +## Phương án thay thế: Cài đặt qua BRAT + +Nếu bạn sử dụng plugin [BRAT](https://github.com/TfTHacker/obsidian42-brat): + +1. Mở cài đặt của BRAT +2. Nhấp vào "Thêm plugin Beta" +3. Nhập: `Jacobinwwey/obsidian-NotEMD` +4. Nhấp vào "Thêm Plugin" +5. Kích hoạt Notemd trong các plugin cộng đồng + +## Xác thực + +Sau khi cài đặt, hãy kiểm tra xem Notemd có hoạt động hay không: + +1. Mở bất kỳ ghi chú nào +2. Nhấp chuột phải trong trình soạn thảo +3. Bạn sẽ thấy các lệnh Notemd như sau: + - "Xử lý tập tin (thêm liên kết)" + - "Trích xuất khái niệm" + - "Nghiên cứu và tóm tắt" + +## Các bước tiếp theo + +- **Cấu hình nhà cung cấp LLM:** [Bắt đầu nhanh →](./quick-start) +- **Giải quyết sự cố:** [Vấn đề thường gặp →](../advanced/troubleshooting) + +## Yêu cầu hệ thống + +| Nền tảng | Phiên bản | Trạng thái | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | Yêu cầu | +| **Windows** | 7+ | ✅ Được hỗ trợ | +| **macOS** | 10.15+ | ✅ Được hỗ trợ | +| **Linux** | Bất kỳ | ✅ Được hỗ trợ | +| **iOS** | 15+ | ✅ Được hỗ trợ | +| **Android** | 5+ | ✅ Được hỗ trợ | + +## Gỡ cài đặt + +Để xóa Notemd: + +1. Cài đặt → Các tiện ích mở rộng cộng đồng +2. Tìm "Notemd" +3. Nhấp vào biểu tượng ❌ +4. Tùy chọn, xóa thư mục tiện ích mở rộng: `<vault>/.obsidian/plugins/notemd/` + +Dữ liệu của bạn (ghi chú, ghi chú ý tưởng, v.v.) sẽ không bị ảnh hưởng. + +## Đang cập nhật + +### Cập nhật tự động (Khuyến nghị) +Obsidian sẽ tự động kiểm tra xem có bản cập nhật tiện ích mở rộng nào không. Khi có phiên bản mới sẵn có: +1. Cài đặt → Các tiện ích mở rộng cộng đồng +2. Nhấp vào "Kiểm tra bản cập nhật" +3. Nhấp vào "Cập nhật" bên cạnh Notemd + +### Cập nhật thủ công +Tải xuống phiên bản mới nhất và thay thế ba tệp trong thư mục tiện ích mở rộng của bạn. + +## Nhận trợ giúp + +- 📖 [Hướng dẫn sử dụng nhanh](./quick-start) +- ❓ [Hỏi đáp](../faq) +- 💬 [Cộng đồng Discord](https://discord.gg/qnGgsQ9W) +- 🐛 [Báo cáo lỗi](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/vi/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/vi/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..f6d4645d --- /dev/null +++ b/website/i18n/vi/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "Hướng dẫn sử dụng nhanh" +description: "Bắt đầu sử dụng Notemd trong 5 phút" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Hướng dẫn sử dụng nhanh + +<TLDR> +**Bắt đầu sử dụng Notemd trong vòng 5 phút.** Ba bước: (1) Thêm khóa LLM API (hoặc sử dụng Ollama tại chỗ), (2) Mở một ghi chú và chạy lệnh “Xử lý tập tin (thêm liên kết)”, (3) Khám phá các quy trình một cú nhấp chuột trong thanh bên. Hỗ trợ hơn 30 nhà cung cấp. Không cần biết lập trình. Hoạt động ngoại tuyến với Ollama. +</TLDR> + +## Bước 1: Cấu hình nhà cung cấp LLM đầu tiên của bạn (2 phút) + +### Tùy chọn A: Nhà cung cấp dịch vụ đám mây (OpenAI, Anthropic, v.v.) + +1. Mở **Settings** → **Notemd** +2. Dưới mục **LLM Cấu hình nhà cung cấp**, hãy chọn một nhà cung cấp từ danh sách thả xuống +3. Nhập **API Key** của bạn +4. (Tùy chọn) Nhấp vào **“Get Model List”** để xem các mô hình có sẵn +5. Chọn một mô hình cho mỗi loại nhiệm vụ + +**Các lựa chọn phổ biến:** +- **OpenAI**: `gpt-4o-mini` (nhanh, giá cả phải chăng) +- **Anthropic**: `claude-sonnet-4-6` (chất lượng cao) +- **DeepSeek**: `deepseek-chat` (rất phải chăng) + +### Tùy chọn B: Địa phương Ollama (Không cần khóa API) + +1. Cài đặt [Ollama](https://ollama.com/) +2. Tải mô hình: `ollama pull llama3.1` +3. Trong cài đặt Notemd, chọn **"Ollama"** làm nhà cung cấp +4. Tên mô hình: `llama3.1` (hoặc bất kỳ mô hình nào bạn đã tải) + +## Bước 2: Thử nghiệm nhiệm vụ đầu tiên (1 phút) + +### Thêm liên kết Wiki vào ghi chú + +1. Mở bất kỳ ghi chú nào có nội dung có ý nghĩa +2. Nhấp chuột phải trong trình soạn thảo +3. Chọn **"Xử lý tập tin (thêm liên kết)"** +4. Chờ vài giây +5. Các khái niệm chính giờ đây đã được `[[wiki-linked]]`! + +**Ví dụ:** + +**Trước khi xử lý:** +``` +Machine learning models use neural networks to process data. +``` + +**Sau khi xử lý:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## Bước 3: Khám phá các tính năng (2 phút) + +### Trích xuất ghi chú khái niệm + +1. Nhấp chuột phải → **"Trích xuất khái niệm từ tập tin hiện tại"** +2. Notemd tạo ra các tập tin riêng biệt cho mỗi khái niệm +3. Kiểm tra thư mục khái niệm đã cấu hình (mặc định: `concepts/`) +4. Mỗi ghi chú khái niệm đều có liên kết ngược đến ghi chú gốc của bạn + +### Nghiên cứu và tóm tắt + +1. Đánh dấu một chủ đề trong ghi chú của bạn +2. Nhấp chuột phải → **"Nghiên cứu và tóm tắt"** +3. Notemd thực hiện tìm kiếm trên web (Tavily hoặc DuckDuckGo) +4. Bản tóm tắt được thêm vào ghi chú của bạn kèm theo nguồn tài liệu + +### Các quy trình một cú nhấp + +1. Kiểm tra **thanh bên trái** để tìm các nút quy trình +2. Nhấp **"Trích xuất một cú nhấp"** trên bất kỳ ghi chú nào +3. Nó sẽ thực hiện: thêm liên kết → trích xuất khái niệm → nghiên cứu → tạo sơ đồ +4. Tất cả chỉ trong một cú nhấp! + +## Các nhiệm vụ phổ biến ban đầu + +### Nhiệm vụ 1: Xử lý bài báo/khóa luận + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### Nhiệm vụ 2: Dịch ghi chú + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### Nhiệm vụ 3: Tạo bản đồ kiến thức + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## Mẹo tùy chỉnh + +### Lựa chọn mô hình theo nhiệm vụ + +Bạn có thể sử dụng các mô hình khác nhau cho các nhiệm vụ khác nhau: + +| Nhiệm vụ | Mô hình được khuyến nghị | Lý do | +|------|------------------|-----| +| Thêm liên kết | `gpt-4o-mini`, `deepseek-chat` | Nhanh, nhiều cuộc gọi | +| Trích xuất khái niệm | `claude-sonnet-4-6`, `gpt-4o` | Trích xuất chất lượng cao | +| Nghiên cứu | `perplexity`, `gpt-4o` | Dựa trên web | +| Dịch thuật | `gemini-flash`, `gpt-4o` | Đa ngôn ngữ | +| Sơ đồ | `claude-opus`, mô hình địa phương | Lý luận phức tạp | + +Cấu hình tại: **Settings → Notemd → Task-Specific Models** + +### Các công việc tự định nghĩa + +Tạo nút riêng của bạn: + +1. Settings → Notemd → Workflows +2. Nhấp vào "Add Workflow" +3. Nhập DSL: `process-current-add-links>extract-concepts-current>research-and-summarize` +4. Đặt tên: "My Research Flow" +5. Một nút mới xuất hiện ở thanh bên + +## Khắc phục sự cố + +### "API Key Invalid" +- Kiểm tra xem khóa có chính xác không (không có khoảng trắng thừa) +- Xác nhận tài khoản có điểm kredit +- Thử với nút "Connection Test" trong phần cài đặt + +### "Model Not Found" +- Nhấn "Get Model List" để xem các mô hình có sẵn +- Một số nhà cung cấp yêu cầu tên mô hình cụ thể (ví dụ: `gpt-4o` chứ không phải `gpt-4`) + +### Các liên kết không hiển thị +- Đảm bảo ghi chú có đủ nội dung (>50 từ) +- Thử sử dụng mô hình mạnh hơn +- Kiểm tra xem cuộc gọi LLM có thành công hay không (xem bảng chẩn đoán) + +### Hiệu suất chậm +- Sử dụng các mô hình nhanh hơn (`gpt-4o-mini` thay vì `gpt-4o`) +- Giảm kích thước từng phần trong phần cài đặt +- Kích hoạt xử lý song song cho các tác vụ theo nhóm + +## Các bước tiếp theo + +- 📖 [Khám phá tất cả các tính năng](../features/wiki-links) +- ⚙️ [Cấu hình nâng cao](./configuration) +- 🔧 [Thiết lập nhà cung cấp LLM](../providers/overview) +- ❓ [Hỏi đáp](../faq) + +## Hướng dẫn video + +Xem video hướng dẫn nhanh 3 phút (tiếng Trung): +[【Hoàn toàn mã nguồn mở và miễn phí! NotEMD hướng dẫn nhanh 3 phút】](https://b23.tv/lqR0RlA) + +## Nhận trợ giúp + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **Vấn đề**: [GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **Tài liệu**: [Tài liệu đầy đủ](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/vi/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/vi/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..ca3101c5 --- /dev/null +++ b/website/i18n/vi/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "Giới thiệu về Notemd" +description: "Công cụ xây dựng cơ sở kiến thức dựa trên AI cho Obsidian với khả năng chuyển đổi ghi chú một cách bền vững, quy trình làm việc và sơ đồ theo tiêu chuẩn kỹ thuật" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Giới thiệu về Notemd + +<TLDR> +**Notemd** (Note + EMD — Enhanced Markdown Documents) là một plugin mã nguồn mở cho Obsidian giúp chuyển đổi việc đọc nội dung dựa trên LLM thành kiến thức bền vững. Khác với AI dựa trên trò chuyện mà các thông tin chỉ tồn tại trong suốt phiên, Notemd ghi lại kết quả **trực tiếp vào kho lưu trữ của bạn** dưới dạng liên kết wiki, ghi chú khái niệm, tóm tắt nghiên cứu, bản dịch, quy trình làm việc và sơ đồ. Nó được thiết kế dành cho các nhà nghiên cứu, sinh viên và nhân viên chuyên về kiến thức muốn tích lũy việc đọc, nghiên cứu và giải thích bằng hình ảnh thành một đồ thị kiến thức có cấu trúc và liên tục phát triển. +</TLDR> + +## Notemd là gì? + +Notemd tích hợp **hơn 30 mô hình ngôn ngữ lớn** (OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama và nhiều mô hình khác) vào quy trình làm việc của Obsidian để tự động hóa việc trích xuất kiến thức, sắp xếp, dịch thuật, nghiên cứu và tạo sơ đồ. + +### Sự khác biệt chính: Kiến thức tạm thời so với kiến thức bền vững + +| Khía cạnh | AI dựa trên trò chuyện (ChatGPT, v.v.) | Notemd | +|--------|-------------------------------|--------| +| **Nơi lưu trữ kết quả** | Lịch sử trò chuyện (biến mất) | Kho lưu trữ Obsidian của bạn (tồn tại mãi) | +| **Định dạng** | Trả lời dạng văn bản thông thường | Các tệp có cấu trúc: `[[wiki-links]]`, ghi chú khái niệm, sơ đồ | +| **Giá trị lâu dài** | Phải hỏi lại mỗi lần | Tích lũy thành một đồ thị kiến thức | +| **Truy cập ngoại tuyến** | Yêu cầu kết nối Internet | Hoạt động hoàn toàn ngoại tuyến với Ollama | + +## Các tính năng cốt lõi + +### 1. **Liên kết Wiki tự động** +- LLM xác định các khái niệm chính trong ghi chú của bạn +- Chèn `[[wiki-links]]` vào mỗi lần xuất hiện +- Tùy chọn tạo ghi chú khái niệm có liên kết +- Ứng dụng chức năng ức chế từ đồng nghĩa để tránh trùng lặp + +### 2. **Tạo ghi chú khái niệm** +- Trích xuất các khái niệm cốt lõi từ bài báo, bài viết, ghi chú +- Tạo các tệp khái niệm riêng biệt kèm theo liên kết ngược +- Đường dẫn đầu ra và mẫu có thể tùy chỉnh + +### 3. **Tích hợp nghiên cứu trên web** +- Tra cứu Tavily hoặc DuckDuckGo ngay trong Obsidian +- LLM tóm tắt kết quả kèm theo trích dẫn nguồn +- Thêm kết quả nghiên cứu vào ghi chú hiện tại + +### 4. **Dịch đa ngôn ngữ** +- Dịch các phần được chọn hoặc toàn bộ ghi chú +- Hỗ trợ hơn 21 UI ngôn ngữ +- Cấu hình ngôn ngữ đầu ra độc lập +- Hỗ trợ dịch theo nhóm + +### 5. **Tạo sơ đồ** +- **Mermaid**: Sơ đồ luồng, trình tự, lớp, trạng thái, ER, Gantt +- **JSON Canvas**: Bố cục gốc Obsidian +- **Vega-Lite**: Biểu đồ dữ liệu, chuỗi thời gian, biểu đồ phân tán +- **HTML / HTML có thể chỉnh sửa/SVG**: Các tài liệu hình ảnh tự chứa với chú thích ngữ nghĩa +- **Draw.io / Ranh giới tài liệu Drawnix**: Đường dẫn xuất dành cho người bảo trì từ cùng mô hình hình ảnh ngữ nghĩa +- **Định hướng sơ đồ mạch điện**: Hỗ trợ circuitikz/TikZJax đang được thiết kế dựa trên các tài liệu tham khảo vàng, các mệnh lệnh có giới hạn, phản hồi hiển thị và xác thực cấu trúc/bố cục thay vì sử dụng TikZ nguyên thủy không bị giới hạn +- **Chẩn đoán xem trước**: Các tài liệu được hiển thị có thể hiển thị thông tin chẩn đoán về quá trình biên dịch/hiển thị, và các nguồn không nằm trong dòng có thể được kiểm tra mà không cần môi trường LaTeX chạy bên phía plugin +- Sửa tự động cú pháp cho lỗi Mermaid + +### 6. **Các quy trình một cú nhấp** +- Kết nối nhiều thao tác thành các nút bên thanh điều hướng +- Định nghĩa luồng công việc dựa trên DSL +- Ví dụ: `add-links > extract-concepts > research > diagram` + +## Ai nên sử dụng Notemd? + +✅ **Các nhà nghiên cứu** đọc bài báo và xây dựng bản tóm tắt tài liệu +✅ **Học sinh** sắp xếp ghi chú học tập và tạo bản đồ khái niệm +✅ **Nhân viên chuyên môn** muốn lưu trữ những hiểu biết sau khi đọc +✅ **Các chuyên gia song ngữ** cần dịch thuật và liên kết wiki +✅ **Người dùng quan tâm đến bảo mật** muốn hỗ trợ LLM tại chỗ (Ollama) +✅ **Người dùng nâng cao** tự tùy chỉnh các mẫu lệnh và luồng công việc + +## Tại sao lại là Notemd + Obsidian? + +**Obsidian** là cơ sở kiến thức dựa trên markdown, ưu tiên sử dụng tại chỗ. **Notemd** mang lại những tính năng mạnh mẽ của AI: +- Dữ liệu của bạn vẫn nằm trong kho lưu trữ riêng của bạn (không phải dịch vụ đám mây) +- Hoạt động ngoại tuyến với các mô hình tại chỗ +- Miễn phí và mã nguồn mở (giấy phép MIT) +- Tích hợp với các tiện ích mở rộng Obsidian hiện có +- Mở rộng lên hàng chục nghìn ghi chú + +## Bắt đầu sử dụng + +1. **Cài đặt**: Cài đặt → Các tiện ích mở rộng cộng đồng → Duyệt → "Notemd" +2. **Cấu hình**: Thêm khóa API của nhà cung cấp LLM của bạn (hoặc sử dụng Ollama cục bộ) +3. **Thử nghiệm**: Mở một ghi chú → Nhấp chuột phải → "Xử lý tập tin (thêm liên kết)" +4. **Khám phá**: Kiểm tra thanh bên để xem các công việc một cú nhấp + +👉 [Hướng dẫn cài đặt](./getting-started/installation) | [Hướng dẫn nhanh](./getting-started/quick-start) + +## Hướng phát triển của chức năng sơ đồ + +Công việc về sơ đồ của Notemd đang chuyển từ việc "yêu cầu mô hình viết một chuỗi cú pháp" sang một pipeline có nhiều tầng: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +Phiên bản hiện tại đã hỗ trợ Mermaid, JSON Canvas, Vega-Lite, chế độ dự phòng HTML, HTML/SVG có thể chỉnh sửa, các tài liệu Draw.io XML, tập hợp nhỏ Drawnix JSON, chế độ dự phòng chỉ xem trước và kiểm tra nguồn, cùng mẫu nguyên mẫu ngoại tuyến `CircuitSpec -> circuitikz` cho các mẫu vàng của nguồn thông thường và bộ inverter CMOS. Các sơ đồ mạch điện là loại khó hơn: circuitikz có thể biểu diễn cấu trúc điện tử chính xác, nhưng kết quả LLM không bị giới hạn thường tạo ra đường dẫn khó đọc hoặc LaTeX không thể hiển thị. Hướng tiếp theo là duy trì sự kiểm soát circuitikz bằng các mẫu vàng tham chiếu, quy tắc bố trí lưới nút, kiểm tra khi in ấn và vòng phản hồi từ ảnh chụp màn hình. + +Đọc chi tiết tại [Sơ đồ](./features/diagrams). + +## Kiến trúc + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd so với các tiện ích mở rộng AI Obsidian khác + +Hầu hết các tiện ích mở rộng AI Obsidian đều ưu tiên trò chuyện (bạn hỏi, AI trả lời, thông tin được giữ trong cuộc trò chuyện). Notemd thì **ưu tiên viết**: AI xử lý các ghi chú của bạn và viết kết quả có cấu trúc trực tiếp vào kho lưu trữ của bạn. + +| Khả năng | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| Chèn liên kết wiki tự động | Có | Không | Không | Không | +| Tạo ghi chú ý tưởng | Có (kèm liên kết ngược + loại bỏ trùng lặp) | Không | Không | Không | +| Tạo sơ đồ | Có (Mermaid, Canvas, Vega-Lite, HTML, các tài liệu có thể chỉnh sửa) | Không | Không | Không | +| Tích hợp nghiên cứu web | Có (Tavily + DuckDuckGo) | Không | Không | Không | +| Xử lý thư mục theo nhóm | Có | Hạn chế | Không | Hạn chế | +| Định tuyến mô hình theo nhiệm vụ | Có (7 nhiệm vụ, các mô hình độc lập) | Không | Không | Không | +| Chuỗi công việc một cú nhấp | Có (DSL) | Không | Không | Không | +| Dịch thuật (theo nhóm) | Có | Không | Không | Không | +| Trò chuyện với kho dữ liệu | Không | Có | Không | Không | +| Tìm kiếm tương đồng ngữ nghĩa | Không | Không | Có | Không | +| Tạo nội dung dựa trên mẫu | Không | Không | Không | Có | +| Các nhà cung cấp LLM | 36 (đám mây + cổng kết nối + cục bộ) | 3-5 | 2-3 | 3-5 | +| Hoạt động hoàn toàn ngoại tuyến | Có (Ollama) | Một phần | Một phần | Một phần | + +**Khi nào nên chọn Notemd**: Bạn muốn AI xây dựng một đồ thị kiến thức bền vững — chứ không chỉ trò chuyện về ghi chú của bạn. + +**Khi nào nên chọn Copilot**: Bạn muốn một trợ lý AI có khả năng trò chuyện bên trong Obsidian. + +**Khi nào nên chọn Smart Connections**: Bạn muốn phát hiện các mối quan hệ hiện có giữa các ghi chú thông qua tìm kiếm ngữ nghĩa. + +## Triết lý + +**Notemd tin rằng AI nên hỗ trợ công việc tạo kiến thức của con người, chứ không thay thế nó.** Tiện ích mở rộng này: +- Giúp bạn kiểm soát tình hình (xem xét trước khi áp dụng thay đổi) +- Bảo tồn ngữ cảnh (tất cả kết quả đều liên kết lại với nguồn gốc) +- Tôn trọng quyền riêng tư (hỗ trợ LLM ở mức cục bộ, không thu thập dữ liệu từ xa) +- Vẫn có thể mở rộng (các giao diện mở APIs, quy trình làm việc tùy chỉnh) + +## Phần mềm nguồn mở + +- **Giấy phép**: MIT +- **Nguồn mã**: [github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **Cộng đồng**: [Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **Đóng góp**: Chào đón các PR, xem [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +**Tiếp theo**: [Installation →](./getting-started/installation) diff --git a/website/i18n/vi/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/vi/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..c9fda5d1 --- /dev/null +++ b/website/i18n/vi/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Obsidian Hướng dẫn Quản lý Kiến thức AI" +description: "Hướng dẫn toàn diện để xây dựng cơ sở kiến thức kết nối với AI — từ liên kết wiki và trích xuất khái niệm đến nghiên cứu, dịch thuật và tạo sơ đồ" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Obsidian Hướng dẫn Quản lý Kiến thức AI + +<TLDR> +**Notemd biến việc đọc dựa trên LLM thành kiến thức bền vững: liên kết wiki kết nối các khái niệm, ghi chú khái niệm tạo ra một đồ thị có thể truy xuất, nghiên cứu đưa nội dung web vào kho lưu trữ của bạn, dịch thuật phá vỡ rào cản ngôn ngữ, sơ đồ làm cho cấu trúc trở nên hiển thị, và các công việc luồng kết hợp tất cả chỉ với một cú nhấp.** Hướng dẫn này bao phủ toàn bộ quy trình — từ ghi chú thô đến một cơ sở kiến thức kết nối, trực quan và đa ngôn ngữ. +</TLDR> + +## Tại sao lại quản lý kiến thức bằng AI? + +Việc ghi chú truyền thống tạo ra các tệp đơn giản. Ngay cả khi có liên kết wiki thủ công, hầu hết các ghi chú vẫn còn tách rời. Notemd sử dụng LLM để tự động hóa lớp kết nối: + +- **LLMs đọc nội dung của bạn** và xác định những điều quan trọng — thuật ngữ, phương pháp, người, lý thuyết +- **Liên kết được chèn tự động** tại mỗi lần xuất hiện khái niệm, không bị giấu trong mục "xem thêm" +- **Ghi chú khái niệm được tạo ra** dưới dạng các tệp có thể truy xuất độc lập +- **Nghiên cứu làm giàu ghi chú** bằng ngữ cảnh từ web +- **Sơ đồ làm cho cấu trúc trở nên hiển thị** — sơ đồ tư duy, biểu đồ luồng, biểu đồ dữ liệu từ cùng một nội dung + +Kết quả: một đồ thị kiến thức phát triển theo từng ghi chú bạn xử lý, chứ không chỉ khi bạn nhớ thêm liên kết. + +## Toàn bộ quy trình + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +Mỗi bước đều độc lập. Bạn có thể sử dụng một hoặc tất cả. Trình tự mang lại hiệu quả cao nhất: **Thêm Liên kết → Ghi chú Khái niệm → Sơ đồ**. + +--- + +## 1. Liên kết wiki: Làm rõ các mối kết nối + +Liên kết wiki là xương sống của đồ thị kiến thức. Notemd sử dụng một LLM để: + +1. Đọc nội dung ghi chú của bạn (chia thành các phần cho các tài liệu dài) +2. Xác định các khái niệm cốt lõi — ưu tiên các thuật ngữ kỹ thuật cụ thể hơn là các danh từ chung +3. Chèn `[[wiki-links]]` vào mỗi lần xuất hiện +4. Ứng chế các từ đồng nghĩa để "ML" và "Machine Learning" không tạo ra các nút riêng biệt + +### Khi nào nên sử dụng + +- **Mọi ghi chú >100 từ** — các ghi chú ngắn hơn sẽ cho ít khái niệm hơn +- **Các bài báo nghiên cứu, tài liệu kỹ thuật, ghi chú cuộc họp** — giàu các thuật ngữ chuyên ngành +- **Sau khi nội dung đã ổn định** — đừng xử lý lại các bản thảo nhiều lần + +### Cài đặt chính + +| Thiết lập | Khuyến nghị | Lý do | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek hoặc GPT-4o-mini | Độ chính xác tốt với chi phí thấp | +| Ứng chế từ đồng nghĩa | Bật | Ngăn chặn các nút trùng lặp | +| Cửa sổ ngữ cảnh | Đoạn văn | Cân bằng giữa độ chính xác và chi phí | + +→ [Wiki-Links deep dive](/docs/features/wiki-links) + +--- + +## 2. Ghi chú khái niệm: Các nút kiến thức có thể truy xuất được + +Các liên kết wiki kết nối các ý tưởng ngay trong văn bản, nhưng ghi chú khái niệm giúp mỗi ý tưởng có thể được truy xuất một cách độc lập. Mỗi khái niệm sẽ có file `.md` riêng của mình: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### Quy trình trích xuất + +Mẫu lệnh LLM được thiết kế rất có cấu trúc: +- Chuyển sang dạng số ít +- Ưu tiên các khái niệm gồm nhiều từ thay vì các từ đơn lẻ ("Dielectric Relaxation" chứ không phải "Relaxation") +- Bỏ qua các phần tham khảo/tài liệu tham khảo +- Đầu ra dưới dạng các dòng `CONCEPT:` để dễ dàng phân tích một cách chắc chắn + +Các khái niệm được loại bỏ trùng lặp giữa các phần thông qua `Set<string>`. Các lỗi LLM trên từng phần sẽ không làm dừng toàn bộ quy trình. + +### Liên kết ngược + +Khi được bật, mỗi ghi chú khái niệm sẽ theo dõi những ghi chú nguồn nào đã đề cập đến nó. Bảng liên kết ngược tích hợp sẵn của Obsidian cũng hiển thị các kết nối ngược lại. + +### Loại bỏ trùng lặp + +Động cơ loại bỏ trùng lặp gồm 4 bước của Notemd có thể phát hiện ra: +1. **Trùng khớp hoàn toàn** — so sánh tên file một cách không phân biệt chữ viết in hoa và in thường +2. **Dạng số nhiều** — "Models.md" so với "Model.md" +3. **Bình thường hóa ký hiệu** — "A-B.md" so với "A B.md" +4. **Chứa một từ duy nhất** — "ML.md" bị đánh dấu khi có "Machine Learning.md" tồn tại + +### Cài đặt khóa + +| Thiết lập | Được khuyến nghị | Lý do | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` hoặc `🧠 concepts/` | Giúp sắp xếp kho lưu trữ một cách ngăn nắp | +| `extractConceptsAddBacklink` | Bật | Kích hoạt việc tìm kiếm ngược | +| `extractConceptsMinimalTemplate` | Tắt | Mẫu đầy đủ với Linked From | +| Mô hình theo nhiệm vụ | DeepSeek | Rút gọn khái niệm không cần mô hình tốn kém | +| Ức chế từ đồng nghĩa | Bật | Cùng một cài đặt ảnh hưởng đến cả việc liên kết và rút gọn | + +→ [Giải thích chi tiết về Ghi chú Khái niệm](/docs/features/concept-notes) + +--- + +## 3. Nghiên cứu: Đưa Web vào + +Notemd tích hợp tìm kiếm web vào quy trình ghi chép của bạn: + +1. **Xây dựng truy vấn** — tiêu đề hoặc phần được chọn trong ghi chú sẽ trở thành truy vấn tìm kiếm +2. **Tìm kiếm web** — Tavily (được khuyến nghị, cần khóa API) hoặc DuckDuckGo (miễn phí, không cần khóa) +3. **Tóm tắt LLM** — kết quả tìm kiếm được rút gọn thành một bản tóm tắt liên quan +4. **Thêm vào ghi chú** — bản tóm tắt được thêm vào vị trí con trỏ hoặc như một mục mới + +### Khi nào nên sử dụng + +- Trước khi xử lý một chủ đề mới — hãy thu thập thông tin từ Web trước tiên +- Khi ghi chú khái niệm cần được bổ sung — nghiên cứu rồi thêm liên kết +- Đối với các bài tổng quan tài liệu — nghiên cứu hàng loạt các ghi chú trong một thư mục + +### Cài đặt chính + +| Thiết lập | Được khuyến nghị | Lý do | +|---------|-----------|-----| +| `researchProvider` | GPT-4o hoặc Claude | Nghiên cứu yêu cầu bản tóm tắt có chất lượng cao hơn | +| Dịch vụ tìm kiếm | Tavily | Độ liên quan tốt hơn, độ sâu có thể thiết lập | +| `maxResearchContentTokens` | 4000 | Sự cân bằng giữa độ sâu và chi phí | + +→ [Nghiên cứu chuyên sâu](/docs/features/research) + +--- + +## 4. Dịch: Phá vỡ rào cản ngôn ngữ + +Notemd dịch ghi chú bằng công cụ LLM đã được cấu hình của bạn — chứ không phải công cụ dịch chuyên dụng API. Điều này có nghĩa là: + +- **Dịch có hiểu ngữ cảnh** — LLM hiểu toàn bộ tài liệu, chứ không phải từng câu một +- **Xử lý thuật ngữ kỹ thuật** — “gradient descent” vẫn được giữ nguyên là “梯度下降” chứ không phải “坡度向下” +- **Hỗ trợ xử lý theo nhóm** — dịch toàn bộ thư mục ghi chú trong một thao tác duy nhất +- **Mô hình theo nhiệm vụ** — sử dụng Gemini Flash để dịch (nhanh, rẻ, đa ngôn ngữ) + +### Hỗ trợ ngôn ngữ + +Notemd tự thân hỗ trợ 21 ngôn ngữ UI. Ngôn ngữ dịch đích có thể được cấu hình tùy theo từng nhiệm vụ. Các cặp phổ biến: EN↔ZH, EN↔JA, EN↔KO, EN↔DE, EN↔FR, EN↔ES. + +→ [Phân tích chi tiết bản dịch](/docs/features/translation) + +--- + +## 5. Sơ đồ: Làm cho cấu trúc trở nên hiển thị + +Quy trình xây dựng sơ đồ của Notemd lấy yêu cầu làm ưu tiên hàng đầu: LLM tạo ra một dạng `DiagramSpec` JSON có cấu trúc rõ ràng, sau đó các bộ chuyển đổi sẽ chuyển nó sang định dạng mục tiêu. Cách này cho kết quả đáng tin cậy hơn so với việc yêu cầu LLM xử lý ngôn ngữ cú pháp thô Mermaid. + +### Nhận diện ý định + +Notemd suy luận loại sơ đồ tốt nhất từ nội dung: + +- **Bảng có số liệu** → biểu đồ dữ liệu (Vega-Lite) +- **Từ vựng client/server** → sơ đồ trình tự (Mermaid) +- **Thực thể/khóa chính** → sơ đồ ER (Mermaid) +- **Bước/quy trình** → biểu đồ luồng (Mermaid) +- **Từ khóa bản đồ khái niệm** → JSON Canvas (Obsidian nguyên bản) +- **Mặc định** → bản đồ tư duy (Mermaid) + +### Chuỗi hiển thị + +Mục tiêu chính → phương án dự phòng → phương án dự phòng → HTML. Nếu cú pháp Mermaid thất bại, nó sẽ thử lại một lần với ngữ cảnh lỗi gửi đến LLM, sau đó chuyển sang sơ đồ tối giản. + +### Cài đặt chính + +| Thiết lập | Khuyến nghị | Lý do | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | Bật | Chất lượng tốt hơn nhờ tiêu chuẩn trước | +| `experimentalDiagramCompatibilityMode` | `best-fit` | Mục tiêu nguyên bản theo mục đích | +| `summarizeToMermaidProvider` | GPT-4o hoặc Claude | Tiêu chuẩn sơ đồ cần khả năng suy luận không gian | +| `autoMermaidFixAfterGenerate` | Bật | Phát hiện lỗi cú pháp LLM tự động | +| Tăng cường kiến thức địa phương | Bật cho các lĩnh vực cụ thể | Nâng cao độ chính xác nhờ ngữ cảnh kho lưu trữ | + +→ [Phân tích sâu về sơ đồ](/docs/features/diagrams) + +--- + +## 6. Công việc: Tự động hóa một cú nhấp + +Công việc kết nối nhiều nhiệm vụ thành một nút bên thanh công cụ duy nhất. Định dạng DSL là: + +``` +task1 | task2 | task3 +``` + +Ví dụ: `addLinks | extractConcepts | generateDiagram` — xử lý một ghi chú từ văn bản thô thành một nút kiến thức trực quan, có kết nối đầy đủ chỉ trong một cú nhấp. + +### Các công việc được khuyến nghị + +| Quy trình làm việc | Chuỗi | Trường hợp sử dụng | +|----------|-------|----------| +| Quy trình hoàn chỉnh | `addLinks \| extractConcepts \| generateDiagram` | Ghi chú mới | +| Nghiên cứu trước | `research \| addLinks` | Chủ đề chưa quen thuộc | +| Đa ngôn ngữ | `translate \| addLinks` | Ghi chú đa ngôn ngữ | +| Chỉ sơ đồ | `generateDiagram` | Trực quan hóa nhanh | + +→ [Tìm hiểu sâu về Workflows](/docs/features/workflows) + +--- + +## 7. LLM Nhà cung cấp: 36 lựa chọn từ đám mây đến máy cục bộ + +Notemd hỗ trợ 36 nhà cung cấp trên 4 loại giao thức. Các nhóm chính là. + +- **Đám mây quốc tế**: OpenAI, Anthropic, Google, Mistral, xAI +- **Đám mây Trung Quốc**: DeepSeek, Qwen, Doubao, Moonshot, GLM, Baidu, SiliconFlow +- **Cổng kết nối**: OpenRouter, GitHub Models, Hugging Face, Vercel +- **Máy cục bộ**: Ollama, LMStudio, OVMS — không có khóa API, dữ liệu không rời máy của bạn + +### Chiến lược mô hình theo nhiệm vụ + +Cách thiết lập tiết kiệm chi phí nhất là sử dụng các mô hình giá rẻ cho các nhiệm vụ đơn giản và các mô hình mạnh mẽ cho các nhiệm vụ phức tạp: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [Tổng quan về LLM Nhà cung cấp](/docs/providers/overview) + +--- + +## Danh sách kiểm tra khi bắt đầu + +1. **Cài đặt Notemd** — [Community Plugins](/docs/getting-started/installation) (được khuyến nghị) hoặc thủ công +2. **Cấu hình nhà cung cấp** — DeepSeek (dễ nhất), OpenAI, hoặc Ollama (miễn phí) +3. **Xử lý ghi chú đầu tiên** — nhấp chuột phải → "Xử lý tệp (thêm liên kết)" +4. **Đặt thư mục khái niệm** — Cài đặt → Notemd → Đầu ra → Thư mục khái niệm +5. **Trích xuất khái niệm** — chạy lệnh "Trích xuất khái niệm" trên cùng một ghi chú +6. **Tạo sơ đồ** — chạy lệnh "Tạo sơ đồ" để hiển thị các mối liên kết +7. **Tạo quy trình công việc** — kết nối các bước trên thành một nút nhấp một lần + +## Các cấu hình được khuyến nghị + +### Học sinh (Ngân sách) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### Nhà nghiên cứu (Chất lượng) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### Ưu tiên quyền riêng tư (Chỉ địa phương) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### Song ngữ (ZH + EN) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## Các mẫu phổ biến + +### Mẫu: Xử lý bài báo nghiên cứu + +1. Nhập nội dung PDF (hoặc dán vào) +2. **Nghiên cứu** — thu thập thông tin web về chủ đề +3. **Thêm liên kết** — xác định và liên kết các khái niệm chính +4. **Trích xuất khái niệm** — tạo các ghi chú riêng biệt +5. **Tạo sơ đồ** — hiển thị cấu trúc của bài báo + +### Mẫu: Bổ sung nội dung cho ghi chú hàng ngày + +1. Viết ghi chú hàng ngày +2. **Thêm Liên kết** — kết nối các ý tưởng hôm nay với các khái niệm hiện có +3. Ghi chú khái niệm tự động cập nhật cùng các liên kết ngược + +### Mẫu: Tổng quan tài liệu + +1. Tạo thư mục chứa các bài báo/ghi chú +2. **Thêm Liên kết theo Nhóm** — xử lý toàn bộ thư mục +3. **Loại bỏ các khái niệm trùng lặp** — dọn dẹp các ghi chú gần giống nhau +4. **Tạo Sơ đồ** — sơ đồ tư duy của toàn bộ tài liệu nghiên cứu + +--- + +*Notemd là mã nguồn mở (MIT) và hoạt động với Obsidian 0.15.0+ trên mọi nền tảng. [Cài đặt ngay](/docs/getting-started/installation) hoặc [xem trên GitHub](https://github.com/Jacobinwwey/obsidian-NotEMD).* diff --git a/website/i18n/vi/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/vi/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..e3bc8c75 --- /dev/null +++ b/website/i18n/vi/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "Cấu hình Anthropic Claude" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Nhà cung cấp Anthropic + +<TLDR> +**Anthropic sử dụng giao thức truyền tin Messages API bản gốc, chứ không phải giao thức tương thích OpenAI.** Cài đặt mặc định hiện tại là `claude-3-5-sonnet-20240620`, `https://api.anthropic.com` và `temperature: 0.5`. Hãy coi nó như một giao diện giao thức riêng biệt khi gỡ lỗi. + +Đây là một phần của [Obsidian Hướng dẫn Quản lý Kiến thức AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Cài đặt + +Tạo một khóa Anthropic API, thêm hồ sơ nhà cung cấp `Anthropic`, và để Base URL ở endpoint bản gốc trừ khi bạn đang định tuyến qua một hồ sơ gateway chuyên dụng. Chọn ID mô hình Claude mà bạn muốn sử dụng trong trường model; giá trị mặc định sẽ giữ nguyên mức cơ sở của sản phẩm hiện tại. + +Anthropic là lựa chọn tốt cho việc tóm tắt chất lượng cao, tổng hợp nghiên cứu và trích xuất khái niệm. Nếu bạn kết hợp nó với các nhà cung cấp rẻ hơn, hãy chỉ sử dụng nó cho những nhiệm vụ mà chất lượng đầu ra của nó mang lại lợi ích. + +## Endpoint Và Xác thực + +| Trường | Cài đặt mặc định | +|-------|----------------| +| Giao thức truyền tin | `anthropic` | +| Khóa API | Yêu cầu | +| Base URL | `https://api.anthropic.com` | +| Mô hình mặc định | `claude-3-5-sonnet-20240620` | +| Temperature | `0.5` | +| Kiểm tra kết nối | Chỉ chat | + +Thời gian chạy sẽ gửi yêu cầu đến `/v1/messages` với `x-api-key` và `anthropic-version: 2023-06-01`. Đừng cấu hình endpoint `/v1/chat/completions` theo kiểu OpenAI dưới cài đặt mặc định này; hãy sử dụng cài đặt gateway tương thích OpenAI thay vào đó. + +## Khám phá mô hình + +Anthropic sử dụng chế độ khám phá `anthropic-models` trong danh bạ nhà cung cấp. Nếu khóa hoặc tài khoản của bạn không thể liệt kê các mô hình, hãy giữ một ID mô hình đã biết trong hồ sơ và xác thực thông qua bài kiểm tra kết nối. + +Phương thức truyền dữ liệu này không thể thay thế cho các nhà cung cấp tương thích OpenAI. Một mô hình Claude được định tuyến qua OpenRouter, LiteLLM hoặc một cổng khác phải nằm trong hồ sơ của cổng đó, chứ không phải trong hồ sơ Anthropic gốc. + +## Khắc phục sự cố + +- `401` hoặc `403`: kiểm tra phạm vi khóa, quyền truy cập workspace, việc thanh toán và xem khóa có thuộc workspace Anthropic mong muốn hay không. +- `404`: Base URL bị sai hoặc ID mô hình được chọn không có sẵn cho tài khoản. +- ID mô hình Claude kiểu cổng thất bại: di chuyển hồ sơ sang nhà cung cấp cổng tương ứng vì Anthropic gốc yêu cầu tên mô hình gốc. +- Các yêu cầu dài thất bại ở giai đoạn cuối: giảm kích thước đầu ra mô hình mỗi nhiệm vụ hoặc sử dụng mô hình có giới hạn token đầu ra lớn hơn. + +## Khi nào nên sử dụng + +Hãy dùng Anthropic khi chất lượng tổng hợp, ghi chú nghiên cứu hoặc viết có cấu trúc quan trọng hơn chi phí thô. Đừng dùng nó như một giải pháp thay thế tổng quát tương thích OpenAI; điểm mạnh của phương thức truyền dữ liệu riêng biệt chính là ở đó, và việc kết hợp các giao thức sẽ khiến việc chẩn đoán trở nên khó khăn hơn. + +--- + +## Các bước tiếp theo + +- [LLM Providers](/docs/providers/overview) -- Cấu hình đầy đủ, mô hình mỗi nhiệm vụ và logic thử lại +- [Troubleshooting](/docs/advanced/troubleshooting) -- Sửa lỗi 401/403 và lỗi kết nối diff --git a/website/i18n/vi/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/vi/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..45b16ae6 --- /dev/null +++ b/website/i18n/vi/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "Các nhà cung cấp tại Trung Quốc" +description: "Cấu hình Qwen, DeepSeek, GLM, v.v." +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Các nhà cung cấp tại Trung Quốc + +<TLDR> +**Notemd hỗ trợ các nhà cung cấp trong khu vực và có nguồn gốc từ Trung Quốc thông qua các điểm cuối tương thích với OpenAI.** Danh sách hiện tại bao gồm DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, MiniMax, Baidu Qianfan, SiliconFlow, Huawei Cloud MaaS và Z AI. Lợi ích là khả năng tiếp cận theo khu vực và kiểm soát chi phí; rủi ro nằm ở việc đặt tên mô hình và các quy định tài khoản riêng của từng nhà cung cấp. + +Đây là một phần của [Obsidian Hướng dẫn Quản lý Kiến thức AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Cài đặt + +Tạo tài khoản nhà cung cấp, tạo khóa API, sau đó chọn bộ cài đặt sẵn Notemd phù hợp thay vì sử dụng thiết lập tổng quát OpenAI. Bộ cài đặt này chứa các giá trị mặc định như Base URL, mô hình, chế độ kiểm tra API, hành vi khám phá mô hình và bất kỳ trường dữ liệu riêng nào của nhà cung cấp UI. + +Hãy sử dụng việc chọn mô hình theo từng nhiệm vụ một cách triệt để. Ví dụ, giữ DeepSeek hoặc GLM cho các công việc yêu cầu suy luận nhiều, sử dụng Qwen hoặc Moonshot cho các công việc bằng tiếng Trung rộng rãi, và chuyển các nhiệm vụ lập trình sang Qwen Code khi tài khoản đó hỗ trợ các mô hình lập trình viên. + +## Endpoint Và Xác thực + +| Nhà cung cấp | Mô hình mặc định | Base URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (yêu cầu ID điểm cuối) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**Lưu ý:** Doubao yêu cầu ID điểm cuối Ark (định dạng: `ep-xxxxxxxx-xxxx-xxxx`) thay vì tên mô hình thông thường. + +Hầu hết các nhà cung cấp này sử dụng môi trường chạy chung tương thích với OpenAI, nhưng cách xử lý tài khoản và mô hình của họ khác nhau. Hãy giữ nguyên Base URL tương ứng với bộ cài đặt trừ khi bạn đã kiểm tra xong điểm cuối thay thế của tài khoản đó. + +## Khám phá mô hình + +DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan và SiliconFlow sử dụng cơ chế khám phá mô hình tương thích với OpenAI khi nhà cung cấp hỗ trợ việc liệt kê. Huawei Cloud MaaS sử dụng chế độ `huaweicloud-modelarts-models` vì siêu dữ liệu triển khai của ModelArts không giống hệt với danh sách tổng quát `/v1/models`. + +Đừng coi việc thất bại trong việc khám phá mô hình là bằng chứng cho thấy không thể trò chuyện được. Một số nhà cung cấp cho phép trò chuyện nhưng hạn chế quyền truy cập vào danh sách mô hình. Trong trường hợp đó, hãy giữ ID mô hình rõ ràng trong thiết lập và kiểm tra bằng thử nối kết. + +## Khắc phục sự cố + +- Xác thực thành công nhưng trò chuyện thất bại: tên môhình có thể nằm ngoài phạm vi hoặc khu vực được cấp quyền của tài khoản. +- Doubao thất bại với tên môhình thông thường: hãy sử dụng ID điểm cuối Ark trong trường môhình khi việc triển khai của bạn yêu cầu điều đó. +- Các phản hồi suy luận bị cắt ngắn: kiểm tra giới hạn số token đầu ra riêng của nhà cung cấp và các thiết lập giới hạn token dựa trên môhình của Notemd. +- Mạng lưới theo khu vực khác nhau: sử dụng điểm cuối khu vực Trung Quốc của nhà cung cấp khi máy chứa dữ liệu nằm trong Trung Quốc; chỉ sử dụng điểm cuối quốc tế khi cả tài khoản và đường truyền mạng đều hợp lệ. + +## Khi nào nên sử dụng + +Hãy sử dụng các nhà cung cấp ở Trung Quốc khi độ trễ khu vực, khả năng thanh toán/truy cập tài khoản, chất lượng ngôn ngữ Trung Quốc hoặc chi phí là những ràng buộc chính. Hãy ưu tiên các nhà cung cấp trực tiếp OpenAI, Anthropic, Google hoặc các nhà cung cấp địa phương khi bạn cần một ranh giới giao thức đơn giản hơn hoặc tính nhất quán cao hơn trong việc gỡ lỗi giữa các nhà cung cấp. + +--- + +## Các bước tiếp theo + +- [LLM Providers](/docs/providers/overview) -- Cấu hình đầy đủ, mô hình mỗi nhiệm vụ và logic thử lại +- [Gỡ lỗi](/docs/advanced/troubleshooting) -- Khắc phục các lỗi kết nối khu vực và xác thực diff --git a/website/i18n/vi/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/vi/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..f5a9ae32 --- /dev/null +++ b/website/i18n/vi/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "Cấu hình Google Gemini" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Nhà cung cấp Google + +<TLDR> +**Google sử dụng giao thức ngôn ngữ tạo sinh Gemini API bản gốc.** Cài đặt mặc định hiện tại là `gemini-2.0-flash-exp`, `https://generativelanguage.googleapis.com/v1` và `temperature: 0.5`. Đây không phải là thiết lập tương thích với OpenAI. + +Đây là một phần của [Obsidian Hướng dẫn Quản lý Kiến thức AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Cài đặt + +Tạo một khóa Cloud API loại Google AI Studio hoặc Google có quyền truy cập vào Gemini, thêm hồ sơ nhà cung cấp `Google`, và giữ nguyên Base URL ngôn ngữ tạo sinh bản gốc. Hãy dùng thiết lập Gemini Flash mặc định để dịch nhanh và xử lý công việc ghi chú quy mô lớn, sau đó thay thế các mô hình theo từng nhiệm vụ khi bạn cần mô hình Gemini lớn hơn hoặc mạnh mẽ hơn. + +Tránh đặt ID mô hình Gemini vào hồ sơ tương thích với OpenAI trừ khi bạn đang sử dụng rõ ràng một cổng kết nối giúp truy cập Gemini thông qua API tương thích với OpenAI. + +## Endpoint Và Xác thực + +| Trường | Cài đặt mặc định | +|-------|----------------| +| Giao thức truyền tin | `google` | +| Khóa API | Yêu cầu | +| Base URL | `https://generativelanguage.googleapis.com/v1` | +| Mô hình mặc định | `gemini-2.0-flash-exp` | +| Temperature | `0.5` | +| Kiểm tra kết nối | Chỉ chat | + +Thời gian chạy gọi `/models/{model}:generateContent?key={apiKey}`. Khóa được truyền dưới dạng tham số truy vấn vì đó là cách mà điểm cuối Gemini bản gốc được kết nối trong plugin. + +## Khám phá mô hình + +Google sử dụng chế độ khám phá `google-models`. Việc khám phá nên trả về các mô hình Gemini có sẵn cho khóa API; nếu bộ lọc trống, hãy kiểm tra khóa so với cùng một Base URL và xác nhận rằng gia đình mô hình đã được kích hoạt cho tài khoản đó. + +Giới hạn ký tự đầu ra đã biết phụ thuộc vào mô hình trong danh bạ nhà cung cấp. Nếu bản dịch dài hoặc giải thích sơ đồ bị cắt ngắn, hãy chọn mô hình Gemini có khả năng đầu ra lớn hơn hoặc giảm kích thước đầu ra yêu cầu. + +## Khắc phục sự cố + +- `400`: ID mô hình thường không trùng với đường dẫn Gemini bản gốc hoặc yêu cầu vượt quá kích thước mà mô hình hỗ trợ. +- `401` hoặc `403`: Kiểm tra các hạn chế của khóa, việc kích hoạt dự án/API, và xem khóa có thể truy cập Gemini hay không. +- `404`: ID mô hình không có sẵn ở phiên bản API đã cấu hình. +- Các ví dụ về cổng kết nối sẽ thất bại trong thiết lập này: hãy dùng cài đặt cổng kết nối thay vì nhà cung cấp Google bản gốc. + +## Khi nào nên sử dụng + +Hãy dùng Google cho việc dịch nhanh, dọn dẹp ghi chú quy mô lớn, và các công việc mà sự cân bằng giữa chi phí và hiệu suất của Gemini tốt hơn so với việc dùng trực tiếp OpenAI hoặc Anthropic. Hãy chọn nhà cung cấp khác cho các công việc yêu cầu xử lý mô hình suy luận tương thích với OpenAI. + +--- + +## Các bước tiếp theo + +- [LLM Providers](/docs/providers/overview) -- Cấu hình đầy đủ, mô hình mỗi nhiệm vụ và logic thử lại +- [Dịch](/docs/features/translation) -- Gemini Flash được khuyến nghị cho các nhiệm vụ dịch quy mô lớn diff --git a/website/i18n/vi/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/vi/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..dc142928 --- /dev/null +++ b/website/i18n/vi/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "Mô hình địa phương" +description: "Cấu hình Ollama và các LLM địa phương" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# Mô hình địa phương + +<TLDR> +**Các nhà cung cấp địa phương giữ nội dung ghi chú khỏi các API được lưu trữ trên mạng.** Đường dẫn địa phương hiện tại bao phủ Ollama bằng giao thức vận chuyển `ollama` gốc và LMStudio thông qua giao thức tương thích OpenAI. Không cần khóa API cho bất kỳ đường dẫn nào, nhưng máy chủ và mô hình địa phương phải đã đang chạy. + +Đây là một phần của [Obsidian Hướng dẫn Quản lý Kiến thức AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Cài đặt + +Đối với Ollama, hãy cài đặt Ollama, tải xuống mô hình bạn muốn, khởi động máy chủ, và thêm hồ sơ nhà cung cấp `Ollama` vào Notemd. Đối với LMStudio, tải mô hình vào máy chủ địa phương của LM Studio và thêm hồ sơ nhà cung cấp `LMStudio`. + +Các mô hình địa phương là các yếu tố phụ thuộc vận hành, không chỉ là thiết lập. Notemd chỉ có thể gọi những gì quy trình địa phương cung cấp, vì vậy hãy kiểm tra mô hình địa phương bên ngoài Obsidian trước khi gỡ lỗi plugin. + +## Endpoint Và Xác thực + +| Nhà cung cấp | Base URL | Mô hình mặc định | Khóa API | Ghi chú | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | Không cần thiết | Phát trực tiếp NDJSON; khám phá mô hình thông qua `/api/tags` | +| LMStudio | `localhost:1234/v1` | `local-model` | Không cần thiết | Gửi `"EMPTY"` dưới dạng token xác thực; tương thích OpenAI | + +Ollama sử dụng đường dẫn `/chat` gốc dưới Base URL của nó. LMStudio tuân theo đường dẫn `chat/completions` tương thích OpenAI và yêu cầu một mô hình đã được tải vào máy chủ địa phương. + +## Khám phá mô hình + +Ollama sử dụng chế độ khám phá `ollama-tags` và liệt kê các thẻ được tải xuống địa phương. LMStudio sử dụng cơ chế khám phá mô hình tương thích OpenAI khi máy chủ của nó cung cấp `/v1/models`. + +Nếu việc khám phá không trả về kết quả gì, đó thường là vấn đề về trạng thái máy chủ địa phương: mô hình chưa được tải xuống, chưa được tải, hoặc máy chủ đang được kết nối đến host/port khác so với hồ sơ đã cấu hình. + +## Khắc phục sự cố + +- Từ chối kết nối: hãy khởi động Ollama hoặc LM Studio và kiểm tra lại cổng đã cấu hình. +- Không tìm thấy mô hình: hãy tải xuống thẻ Ollama hoặc tải mô hình của LM Studio trước khi thử nghiệm. +- Kết quả xuất ra chậm: hãy giảm kích thước bối cảnh, sử dụng mô hình địa phương nhỏ hơn, hoặc chuyển các tác vụ nặng sang nhà cung cấp được lưu trữ trên mạng. +- Phản hồi trống hoặc bị lỗi: hãy kiểm tra xem hồ sơ nhà cung cấp đã chọn có tương thích với giao thức máy chủ địa phương hay không; Ollama và LMStudio không thể thay thế cho nhau. + +## Khi nào nên sử dụng + +Sử dụng các nhà cung cấp địa phương cho các kho lưu trữ riêng tư, công việc ngoại tuyến, hoặc các nhiệm vụ lặp đi lặp lại có chi phí thấp. Đừng cho rằng việc sử dụng phiên bản địa phương luôn tốt hơn cho việc tổng hợp nghiên cứu hoặc suy luận dài hạn; chất lượng mô hình và giới hạn phần cứng chính là những yếu tố cần cân nhắc. + +--- + +## Các bước tiếp theo + +- [LLM Các nhà cung cấp](/docs/providers/overview) -- Cấu hình đầy đủ và thiết lập mô hình cho từng nhiệm vụ +- [Giải quyết sự cố](/docs/advanced/troubleshooting) -- Khắc phục lỗi connection-refused khi máy chủ địa phương không đang chạy diff --git a/website/i18n/vi/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/vi/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..a97e214a --- /dev/null +++ b/website/i18n/vi/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "Cấu hình OpenAI (GPT-4, GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# Nhà cung cấp OpenAI + +<TLDR> +**OpenAI sử dụng giao thức chia sẻ tương thích với OpenAI.** Cài đặt mặc định hiện tại là `gpt-4o`, `https://api.openai.com/v1`, `temperature: 0.5` và bài kiểm tra kết nối `models-then-chat`. Hãy dùng trang này khi bạn cần ý nghĩa chính xác của các trường; hãy dùng tổng quan [LLM Providers](/docs/providers/overview) để chọn theo danh mục. + +Đây là một phần của [Obsidian Hướng dẫn Quản lý Kiến thức AI](/docs/pillar-ai-knowledge). +</TLDR> + +## Cài đặt + +Tạo một khóa OpenAI API, thêm hồ sơ nhà cung cấp `OpenAI` vào cài đặt Notemd, và giữ nguyên Base URL mặc định trừ khi bạn cố ý chỉ định một cổng tương thích với OpenAI. Trường mô hình có thể giữ nguyên ở `gpt-4o` cho công việc tổng quát hoặc được thay thế bằng ID mô hình OpenAI khác mà tài khoản của bạn có thể gọi. + +Sử dụng các mô hình dành riêng cho nhiệm vụ để kiểm soát chi phí: giữ các mô hình mạnh hơn cho nghiên cứu, trích xuất khái niệm và tái cấu trúc văn bản dài; sử dụng các mô hình rẻ hơn hoặc nhanh hơn cho việc dịch, đề xuất liên kết và tóm tắt ngắn. + +## Endpoint Và Xác thực + +| Trường | Cài đặt mặc định | +|-------|----------------| +| Giao thức truyền tin | `openai-compatible` | +| Khóa API | Yêu cầu | +| Base URL | `https://api.openai.com/v1` | +| Mô hình mặc định | `gpt-4o` | +| Temperature | `0.5` | +| Kiểm tra kết nối | `/models`, sau đó là `/chat/completions` | + +Notemd chuẩn hóa các base URL tương thích với OpenAI trước khi thêm `chat/completions` hoặc `models`. Đừng bao gồm `/chat/completions` cuối cùng trong Base URL; điều đó sẽ tạo ra một đường dẫn trùng lặp. + +## Khám phá mô hình + +OpenAI sử dụng con đường khám phá mô hình tổng quát tương thích với OpenAI. Cài đặt UI trước tiên hỏi `/v1/models`, sau đó xác minh mô hình được chọn bằng yêu cầu chat nhẹ. Nếu việc khám phá thất bại nhưng chat vẫn hoạt động, hãy kiểm tra xem khóa của bạn có quyền truy cập danh sách mô hình hay không hoặc liệu có cổng nào chặn việc liệt kê mô hình hay không. + +Các mô hình lý luận được coi là trường hợp đặc biệt của giao thức: Notemd kết hợp nội dung mệnh lệnh hệ thống và người dùng thành các ID lý luận OpenAI mà từ chối vai trò `system` riêng biệt, và chỉ hiển thị `reasoningEffort` khi định nghĩa nhà cung cấp hỗ trợ nó. + +## Khắc phục sự cố + +- `401` hoặc `403`: kiểm tra khóa, quyền truy cập dự án, trạng thái thanh toán và xem mô hình được chọn có được kích hoạt cho khóa đó hay không. +- `404` trên chat: Base URL thường sai hoặc đã bao gồm `/chat/completions` rồi. +- Mô hình xuất hiện trong tài liệu nhưng không có trong bộ lựa chọn: quyền truy cập danh sách mô hình và quyền truy cập chat là hai điểm thất bại riêng biệt; hãy kiểm tra ID mô hình chính xác bằng tay trong hồ sơ nhà cung cấp. +- Mô hình lý luận từ chối tin nhắn: hãy dùng ID mô hình nằm trong con đường xử lý lý luận OpenAI hoặc chuyển sang mô hình chat không lý luận. + +## Khi nào nên sử dụng + +Hãy dùng OpenAI khi bạn muốn con đường lưu trữ mặc định dễ dự đoán nhất, khi việc khám phá `/v1/models` rất quan trọng, hoặc khi quy trình làm việc phụ thuộc vào ý nghĩa mô hình lý luận OpenAI. Hãy ưu tiên sử dụng cổng hoặc nhà cung cấp địa phương khi việc định tuyến, bảo mật hoặc kiểm soát chi phí quan trọng hơn hành vi trực tiếp của OpenAI API. + +--- + +## Các bước tiếp theo + +- [LLM Providers](/docs/providers/overview) -- Cấu hình đầy đủ, mô hình mỗi nhiệm vụ và logic thử lại +- [Giải quyết sự cố](/docs/advanced/troubleshooting) -- Sửa lỗi 401/403 và lỗi giới hạn tần suất diff --git a/website/i18n/vi/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/vi/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..ba5935f5 --- /dev/null +++ b/website/i18n/vi/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "Các nhà cung cấp LLM" +description: "Cấu hình 36 nhà cung cấp LLM — đám mây, cổng và cục bộ — với việc chọn mô hình theo từng nhiệm vụ" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Các nhà cung cấp LLM + +<TLDR> +**Notemd hỗ trợ 36 nhà cung cấp LLM trên 4 loại giao thức.** Tất cả các cuộc gọi API đều sử dụng dữ liệu thô HTTP (không dùng SDK) kèm theo việc tự động thử lại, chuyển sang giao thức dự phòng và lưu trữ kết quả phản hồi trong 5 phút. Việc chọn mô hình theo từng nhiệm vụ cho phép bạn dùng các mô hình rẻ tiền để trích xuất khái niệm và các mô hình mạnh mẽ cho mục đích nghiên cứu. Không cần khóa API đối với các nhà cung cấp cục bộ (Ollama, LMStudio). +</TLDR> + +Đây là một phần của [Obsidian Hướng dẫn Quản lý Kiến thức AI](/docs/pillar-ai-knowledge). + +## Các danh mục nhà cung cấp + +### Các nhà cung cấp đám mây + +| Nhà cung cấp | Giá trị mặc định của URL | Mô hình mặc định | Temperature | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### Các nhà cung cấp cổng / proxy + +| Nhà cung cấp | Giá trị mặc định của URL | Mô hình mặc định | Ghi chú | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | Thêm tiêu đề `HTTP-Referer` + `X-Title` | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | Thêm tiêu đề `X-GitHub-Api-Version` | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | Thêm tiêu đề `APP-Code` | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | Khóa API là tùy chọn | +| **API mới** | `localhost:3000/v1` | `gpt-4.1` | Khóa API là tùy chọn | +| **OpenAI Compatible** | (được người dùng cấu hình) | `your-model-id` | Đầu cuối tùy chỉnh | + +### Các nhà cung cấp tại Trung Quốc + +| Nhà cung cấp | Cơ sở mặc định URL | Mô hình mặc định | Ghi chú | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | Tập trung vào lập trình | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (yêu cầu ID điểm cuối) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | Đầu cuối Zhipu, Trung Quốc | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | Đầu cuối Zhipu, quốc tế | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | Nền tảng lưu trữ mô hình | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao yêu cầu ID đầu cuối Ark** (định dạng: `ep-xxxxxxxx-xxxx-xxxx`). Giá trị mặc định của ký tự thay thế phải được thay thế. + +### Nhà cung cấp địa phương + +| Nhà cung cấp | Cơ sở mặc định URL | Mô hình mặc định | Ghi chú | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | Không có khóa API. Phát trực tiếp NDJSON. Tìm kiếm mô hình thông qua `/api/tags` | +| **LMStudio** | `localhost:1234/v1` | `local-model` | Gửi `"EMPTY"` dưới dạng token bearer. Tìm kiếm tương thích OpenAI | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO Model Server | +| **Azure OpenAI** | (được người dùng cấu hình) | `gpt-4o` | Tên triển khai trong URL. Tiêu đề `api-key` | + +## Lựa chọn mô hình theo nhiệm vụ + +Notemd hỗ trợ nhà cung cấp và mô hình riêng biệt cho mỗi nhiệm vụ. Kích hoạt bằng `useMultiModelSettings: true`. + +### Các nhiệm vụ có sẵn + +| Nhiệm vụ | Khóa cài đặt | Nhà cung cấp mặc định | +|------|-------------|-----------------| +| Thêm liên kết (chèn liên kết wiki) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| Nghiên cứu (tìm kiếm web + tóm tắt) | `researchProvider` / `researchModel` | DeepSeek | +| Tạo từ tiêu đề | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| Dịch thuật | `translateProvider` / `translateModel` | DeepSeek | +| Tạo sơ đồ | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| Trích xuất khái niệm | `extractConceptsProvider` / `Model` | DeepSeek | +| Trích xuất văn bản gốc | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### Thứ tự giải quyết + +1. Nếu `useMultiModelSettings` được kích hoạt → sử dụng nhà cung cấp và mô hình riêng cho nhiệm vụ +2. Nếu phần thay thế mô hình nhiệm vụ trống → quay lại sử dụng mô hình mặc định của nhà cung cấp +3. Nếu nhà cung cấp nhiệm vụ không hợp lệ → quay lại sử dụng `activeProvider` toàn cục +4. Nếu `useMultiModelSettings` bị tắt → tất cả các nhiệm vụ sẽ sử dụng `activeProvider` toàn cục + +### Các cấu hình được khuyến nghị + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## Kiến trúc gọi API + +### Các tầng truyền tải + +1. **Obsidian `requestUrl`** — chính (tích hợp sẵn, hoạt động trên mọi nền tảng) +2. **Desktop HTTP** — các module Node.js `http`/`https` (phát trực tiếp + yêu cầu dài) +3. **Web `fetch`** — phương án dự phòng khi các module Node.js không khả dụng + +Plugin sẽ tự động chuyển sang tầng truyền tải khác khi xảy ra lỗi mạng tạm thời. + +### Logic thử lại + +- **Chế độ bình thường** (`enableStableApiCall: false`): Chỉ thử một lần. Nếu thất bại tạm thời, sẽ tự động nâng cấp lên chế độ thử lại ổn định. +- **Chế độ thử lại ổn định** (`enableStableApiCall: true`): Tối đa 4 lần thử lại (1 lần ban đầu + 3 lần thử lại) với khoảng cách 5 giây. +- **Các lỗi tạm thời gây ra việc thử lại**: `err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **Không thể thử lại**: HTTP 400, 401, 403, 404 + +### Lưu trữ phản hồi + +Bộ nhớ đệm LRU trong 5 phút dựa trên provider + model + temperature + prompt + content. Các yêu cầu giống nhau trong vòng 5 phút sẽ nhận kết quả đã được lưu trữ ngay lập tức. + +### Xử lý mô hình suy luận + +Các mô hình không hỗ trợ vai trò `system` (DeepSeek R1, OpenAI o1/o3/o4/gpt-5) sẽ tự động kết hợp các prompt của hệ thống và người dùng thành một tin nhắn người dùng duy nhất. + +DeepSeek-specific: `thinkingEnabled` thêm `{ thinking: { type: 'enabled' } }` vào yêu cầu. `reasoningEffort` (thấp/trung/cao) được truyền dưới dạng `reasoning_effort`. Kiểm tra xem số token đầu ra tối đa có ≥ 8000 khi chức năng suy luận được bật hay không. + +### Dự đoán số token + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — phương pháp gợi ý 4 ký tự mỗi token. Được dùng để áp dụng `maxResearchContentTokens` trước khi gửi đến LLM. + +Không có chức năng theo dõi chi phí được triển khai. + +## Khám phá mô hình + +| Chế độ | Nhà cung cấp | Điểm cuối | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | Danh sách mô hình API | +| `anthropic-models` | Anthropic | Danh sách mô hình API | +| `openai-compatible-models` | DeepSeek, Qwen, Mistral, v.v. | `/v1/models` | +| `openrouter-models` | OpenRouter | Danh sách mô hình API | +| `github-models` | GitHub Models | Suy luận API | +| `none` | Azure OpenAI | Bị vô hiệu hóa (cần tên triển khai) | + +## Khởi động nhanh + +1. **Chọn nhà cung cấp** — DeepSeek (Trung Quốc), OpenAI (Quốc tế), hoặc Ollama (Địa phương/Tự do) +2. **Nhập khóa API** — Cài đặt → Notemd → Nhà cung cấp → Khóa API +3. **Kiểm tra kết nối** — Nhấn nút kiểm tra +4. **Tùy chọn: Các mô hình theo nhiệm vụ** — Kích hoạt `useMultiModelSettings` và cấu hình riêng lẻ + +Đối với Ollama: không cần khóa API. Chỉ cần đảm bảo `ollama serve` đang chạy. + +--- + +## Các bước tiếp theo + +- 📝 [Ghi chú ý tưởng](/docs/features/concept-notes) — Sử dụng mô hình trích xuất theo nhiệm vụ +- 🎨 [Sơ đồ](/docs/features/diagrams) — Sử dụng mô hình sơ đồ theo nhiệm vụ +- 🔍 [Nghiên cứu](/docs/features/research) — Sử dụng mô hình dành riêng cho nghiên cứu +- ⚙️ [Cấu hình](/docs/getting-started/configuration) — Tham chiếu toàn bộ thiết lập diff --git a/website/i18n/vi/docusaurus-theme-classic/footer.json b/website/i18n/vi/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/vi/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/vi/docusaurus-theme-classic/navbar.json b/website/i18n/vi/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/vi/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/i18n/zh-TW/code.json b/website/i18n/zh-TW/code.json new file mode 100644 index 00000000..b4875c81 --- /dev/null +++ b/website/i18n/zh-TW/code.json @@ -0,0 +1,106 @@ +{ + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode", + "description": "The ARIA label for the color mode toggle" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.lastUpdatedAt": { + "message": "Last updated on" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.next": { + "message": "Next page", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.paginator.previous": { + "message": "Previous page", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.NotFound.p1": { + "message": "We could not find the page you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.title": { + "message": "Page not found", + "description": "The title of the 404 page" + }, + "theme.SearchBar.label": { + "message": "Search" + }, + "theme.SearchBar.noResultsText": { + "message": "No results found" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Language", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main navigation", + "description": "The ARIA label for the main navigation" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.docs.breadcrumbs.home": { + "message": "Docs", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility" + } +} diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/current.json b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..fbb1dd33 --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Getting Started": { + "message": "Getting Started", + "description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Core Features": { + "message": "Core Features", + "description": "The label for category 'Core Features' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.LLM Providers": { + "message": "LLM Providers", + "description": "The label for category 'LLM Providers' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Advanced": { + "message": "Advanced", + "description": "The label for category 'Advanced' in sidebar 'tutorialSidebar'" + } +} diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx new file mode 100644 index 00000000..215da7a3 --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/advanced/batch-processing.mdx @@ -0,0 +1,121 @@ +--- +id: batch-processing +title: "批次處理" +description: "高效處理多個檔案" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [batch processing, folders, concurrency, bulk operations] +concepts: [Batch Processing, Concurrency, Folder Operations] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Node.js Worker Threads + url: https://nodejs.org/api/worker_threads.html +--- + +import TLDR from '@site/src/components/TLDR'; + +# 批次處理 + +<TLDR> +**Notemd 可透過可設定的同時處理數量與覆寫控制,一次處理整個資料夾。** 在資料夾上按右鍵,即可批量新增維基連結、提取概念、進行研究,或翻譯其中的所有筆記。同時處理數量的限制可避免 API 的速率限制錯誤。進度會依檔案逐一報告。覆寫行為可自行設定:跳過現有內容、追加,或直接取代。失敗的檔案會被記錄下來,且不會中斷整個批次處理。 + +這是[Obsidian AI知識管理指南](/docs/pillar-ai-knowledge)的一部分。 +</TLDR> + +## 概覽 + +批次處理能將一個筆記資料夾轉換為單一操作。您不必逐一打開每個筆記並分別執行指令,只需右鍵點擊資料夾並選擇相關任務即可。Notemd會逐一處理每一個 `.md`檔案,套用所選定的動作,並即時顯示處理進度。 + +此功能對於整個資料庫的知識抽取而言至關重要。例如,在匯入數十個 PDF 之後,透過先執行批次新增連結,再執行批次提取概念,就能在幾分鐘而非幾小時內建立您的知識圖譜。 + +## 它是如何運作的 + +### 批次執行模型 + +```mermaid +graph LR + A[Right-click Folder] --> B[Select Batch Task] + B --> C[Collect All .md Files] + C --> D[Partition by Concurrency] + D --> E[Execute Chunk in Parallel] + E --> F{All Files Done?} + F -->|No| G[Report Progress] + G --> E + F -->|Yes| H[Final Summary Toast] +``` + +1. **檔案收集** -- Notemd 會以遞迴方式掃描目標資料夾(或僅掃描最上層,視設定而定),並收集所有 `.md` 檔案。 +2. **同時執行分割** -- 檔案會根據 `batchConcurrency` 的設定被分成多個區塊。每個區塊以平行方式運作;而其他區塊則依序執行。 +3. **執行** -- 每個檔案皆以與單一檔案指令相同的邏輯進行處理。會尊重每個任務的供應商設定及模型設定。 +4. **進度報告** -- 每個檔案處理完成後都會有提示通知更新,顯示 `N / Total` 的進度。 +5. **錯誤處理** -- 若某個檔案處理失敗(如 API 錯誤、網路超時等),系統會將錯誤記錄下來,並讓批次繼續執行。最後的摘要會列出所有處理失敗的檔案。 +6. **完成** -- 總結摘要會顯示已處理的總數、成功次數以及失敗次數。 + +### 覆寫行為 + +在處理已經包含維基連結、概念說明或翻譯的檔案時,Notemd 的行為會取決於覆寫設定: + +| 模式 | 行為模式 | +|------|----------| +| **跳過** | 現有的內容將保持不變。僅處理未經修改的檔案。 | +| **Append**(預設值) | 會新增內容在後面。原有的維基連結、概念或翻譯都會保留。 | +| **取代** | 檔案已完整重新處理。所有先前的 Notemd 修改都會被覆寫。 | + +針對維基連結功能而言:如果筆記中已經包含 `[[wiki-links]]`,則 **skip** 模式會保持原狀,而 **replace** 模式則會將整個筆記重新傳送至 LLM 以插入新的連結。在進行增量處理時請使用 **skip**,在模型升級後需要重新處理時則請使用 **replace**。 + +### 併發控制 + +`batchConcurrency` 的設定會限制同時進行的 API 呼叫數量。這樣做可以避免在處理大型資料夾時,因對手供應商的配額限制而產生速率限制錯誤(HTTP 429)。 + +| 同時執行 | 推薦給 | 典型的速率限制影響 | +|-------------|----------------|---------------------------| +| `1` | 免費方案、嚴格的供應商 | 無(序列號) | +| `3`(預設值) | 大多數雲端服務供應商 | 低 | +| `5` | Ollama(本地),豐厚等級方案 | 無 / 低 | +| `10` | 具有快速推論功能的本地模型 | 無 | + +如果在批次處理時遇到 429 錯誤,請將同時執行的數量降低至 1 或 2。 + +## 設定 + +| 設定 | 預設值 | 效果 | +|---------|---------|--------| +| `batchConcurrency` | `3` | 在資料夾操作期間,最大的平行 API 呼叫數量 | +| `batchOverwriteExisting` | `false` | 覆寫現有的 Notemd 內容。`false` = 追加模式。 | +| `batchSkipProcessed` | `false` | 跳過已經包含 Notemd 標記的檔案(例如,維基連結)。 | +| `batchRecursive` | `true` | 掃描資料夾時包含子資料夾 | +| `enableStableApiCall` | `false` | 在批次處理時,為每個檔案啟用重試機制(最多 4 次嘗試) | + +### 批次處理中的任務專用模型 + +每個批次操作都會使用對應的單任務模型。batch-add-links 使用 `addLinksProvider`,batch-research 使用 `researchProvider`,以此類推。這意味著您可以為大量處理的作業配置價格較低的模型,而將昂貴的模型保留用於對品質要求較高的任務。 + +## 範例 + +您有一個名為 `papers/` 的資料夾,其中包含 40 份匯入的研究筆記。您想要在這些筆記中加入維基連結,並提取其中的概念: + +1. 在 `papers/` 資料夾上按右鍵 +2. 選擇 **"Notemd: 處理資料夾(新增連結)"** +3. Notemd 會掃描資料夾,找到 40 個 `.md` 檔案,並一次處理 3 個(預設的同時處理數量) +4. 進度提示顯示:`12/40 files processed...` +5. 大約 3 分鐘後,摘要報告會顯示:`39 succeeded, 1 failed (API timeout on paper-37.md)` +6. 以**“Notemd: Process folder (extract concepts)”**重複操作,為全部 40 個項目建立概念筆記 + +那個失敗的檔案已經被記錄下來。之後你可以僅針對該檔案重新執行。 + +## 技巧 + +- **從低併發數開始** -- 如果您不確定服務供應商的速率限制,請從 `1` 開始,再逐漸增加。 +- **使用跳過模式進行增量更新** -- 在完成第一次完整批次處理後,切換到 `batchSkipProcessed: true`,如此在後續執行時只會處理新的筆記。 +- **啟用穩定的 API 呼叫** -- `enableStableApiCall: true` 會加入重試機制,以便在處理大量資料時從暫時性的網路錯誤中恢復。 +- **在模型升級後重新執行** -- 如果您改用更好的模型,請設定 `batchOverwriteExisting: true` 並重新執行,以獲得更優質的連結與概念。 + +--- + +## 接下來的步驟 + +- [工作流程](/docs/features/workflows) -- 將批次任務串聯成一次點擊即可使用的側邊欄按鈕 +- [Custom Prompts](/docs/advanced/custom-prompts) -- 自訂用於批次提取的提示詞 +- [故障排除](/docs/advanced/troubleshooting) -- 解決批次執行時的速率限制錯誤與連線失敗問題 +- [LLM 提供商](/docs/providers/overview) -- 每個任務的模型設定參考資料 diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx new file mode 100644 index 00000000..69d55204 --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/advanced/custom-prompts.mdx @@ -0,0 +1,134 @@ +--- +id: custom-prompts +title: "自訂提示詞" +description: "根據您的需求自訂 LLM 提示語句" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [custom prompts, prompts, focused learning, domain] +concepts: [Custom Prompts, Focused Learning, Prompt Engineering] +citations: + - title: Obsidian + url: https://obsidian.md + - title: LLM Prompt Engineering + url: https://platform.openai.com/docs/guides/prompt-engineering +--- + +import TLDR from '@site/src/components/TLDR'; + +# 自訂提示詞 + +<TLDR> +**Notemd 可讓您為每種任務類型覆寫預設的 LLM 提示語。** 自訂提示語能讓您掌控模型應優先處理的內容:您可以將概念抽取限制在特定領域、改變連結方式,或調整翻譯的語氣。像 `{{content}}` 和 `{{concept}}` 這樣的提示變數會在執行時被替換。聚焦式學習領域功能則會在抽取結果前加上您的研究領域,以自動限定其範圍。 + +這是[Obsidian AI知識管理指南](/docs/pillar-ai-knowledge)的一部分。 +</TLDR> + +## 概覽 + +Notemd 內建的提示詞是為了通用知識工作而設計的。它們在多個領域都能良好運作,但仍有空間可進行領域特定的優化。自訂提示詞讓您能夠明確告訴 LLM 在您的使用情境中應如何運作——無論是需要僅提取醫學術語、僅連結命名實體,或是以正式的語氣進行翻譯。 + +自訂提示語並不會取代整個系統提示語。它們會覆寫或補充**特定任務的指示部分**,同時保留 Notemd 在解析時所依賴的結構化輸出格式(例如 `CONCEPT:` 行、維基連結語法)。 + +## 它是如何運作的 + +### 提示詞架構 + +每個 Notemd 任務都遵循相同的提示結構: + +``` +[System role: You are a helpful assistant...] +[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional) +[Custom task prompt] <-- your override (optional) +[Output format instructions] <-- always preserved +[Content: {{content}}] <-- runtime substitution +``` + +1. **基礎系統提示** -- 設定助理的角色形象。不可覆寫。 +2. **聚焦學習領域** -- 會在前面加上 `Relevant Fields: [medicine / law / computer science / ...]` 以限制範圍。這是一個設定開關,而非原始提示語。 +3. **自訂任務提示** -- 用於取代預設的任務說明(例如,應提取哪類概念、連結的強度如何)。 +4. **輸出格式** -- 結構規則(`CONCEPT:` 行,維基連結格式)。最後一律附加 Notemd 以確保可解析性。 +5. **內容** -- 實際的筆記文字,會在執行時以 `{{content}}` 來取代。 + +### 提示詞變數 + +變數會在執行時被取代。可用的變數因任務而異: + +| 變數 | 任務 | 已替換為 | +|----------|-------|---------------| +| `{{content}}` | 全部 | 備註或選取的文字 | +| `{{concept}}` | 概念說明文件範本 | 提取出的概念名稱 | +| `{{description}}` | 概念說明文件範本 | LLM-產生的概念描述 | +| `{{backlinks}}` | 概念說明文件範本 | 含連結的來源筆記清單 | +| `{{date}}` | 概念說明文件範本 | 目前日期 (YYYY-MM-DD) | +| `{{language}}` | 翻譯 | 目標輸出語言 | +| `{{source}}` | 概念說明文件範本 | 來源備註檔名 | + +### 專注學習領域 + +聚焦學習功能是用於界定領域範圍的快捷方式。您不必撰寫提及您所處領域的自訂提示語,只需在設定中輸入 `focusedLearningDomain` 即可: + +``` +Settings → Advanced → Focused Learning Domain +Example: "medicine" or "computer science" or "Chinese philosophy" +``` + +這會在提取提示語的前面加上 `Relevant Fields: [medicine]`,讓 LLM 優先考慮與領域相關的概念,並忽略一般性的內容。它比完整的自訂提示語更輕量,且適用於所有提取任務。 + +## 設定 + +| 設定 | 預設值 | 效果 | +|---------|---------|--------| +| `customAddLinksPrompt` | `''` | 覆寫預設的 add-links 任務提示 | +| `customExtractConceptsPrompt` | `''` | 覆寫預設的概念抽取提示語 | +| `customResearchPrompt` | `''` | 覆寫預設的研究 + 摘要提示 | +| `customTranslatePrompt` | `''` | 覆寫預設的翻譯提示語 | +| `customDiagramPrompt` | `''` | 覆寫預設的圖表生成提示語 | +| `focusedLearningDomain` | `''` | 在抽取與連結的提示語前加上領域背景資訊 | +| `extractConceptsMinimalTemplate` | `true` | 使用僅含標題的概念說明文件範本(會影響 `{{concept}}` 範本的作用範圍) | +| `customConceptNoteTemplate` | `''` | 以完整的變數支援功能,覆寫概念說明檔案範本 | + +**當自訂提示字元欄位為空白時,會使用內建的預設提示字元。** + +## 範例 + +你是一名醫學研究人員,負責從臨床試驗筆記中提取概念。預設的提示詞會同時擷取一般名詞與醫學術語,這會讓你的概念資料夾變得混亂。 + +**解決方案:** 設定專注的學習領域以及自訂的提取提示。 + +1. 將 `focusedLearningDomain` 設定為 `medicine` +2. 將 `customExtractConceptsPrompt` 設定為: + +``` +Extract only clinically relevant concepts: diseases, drug names, +anatomical terms, measurement endpoints, and statistical methods. +Ignore generic English nouns, brand names, and institutional names. +Prioritize MeSH terminology where applicable. +``` + +現在當你在臨床筆記上執行「Extract concepts」時,LLM 會產生: + +``` +CONCEPT: Randomized Controlled Trial +CONCEPT: Double-Blind Method +CONCEPT: Myocardial Infarction +CONCEPT: Creatine Kinase-MB +CONCEPT: Kaplan-Meier Estimate +``` + +而非可能會提取「醫院」或「月份」等不需要的通用詞彙的預設行為。 + +## 技巧 + +- 在撰寫完整的自訂提示詞之前,**先從聚焦的學習領域開始**。透過單一設定即可涵蓋 80% 的使用情境。 +- **保留輸出格式** -- 永遠不要從自訂提示中移除「每行一個」或「CONCEPT: prefix」之類的格式說明。Notemd 的解析器依賴這些說明。 +- **先以單一筆記測試** -- 自訂提示詞可能對資料提取的範圍產生預期之外的影響。在批次處理前,請先在一筆記上進行驗證。 +- **保持提示語簡潔** -- 過於長大的自訂提示語會消耗代碼單元,且可能讓模型的注意力分散。 + +--- + +## 接下來的步驟 + +- [Wiki-Links](/docs/features/wiki-links) -- 當您自訂 add-links 提示時,會連結到什麼內容 +- [概念說明](/docs/features/concept-notes) -- 概念說明範本與 `{{concept}}` 變數 +- [批次處理](/docs/advanced/batch-processing) -- 對整個資料夾套用自訂提示詞 +- [故障排除](/docs/advanced/troubleshooting) -- 解決自訂提示語句產生非預期輸出的問題 diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx new file mode 100644 index 00000000..b9512800 --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/advanced/troubleshooting.mdx @@ -0,0 +1,161 @@ +--- +id: troubleshooting +title: "故障排除" +description: "常見問題與解決方法" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [troubleshooting, errors, diagnostics, connection test] +concepts: [Troubleshooting, Error Handling, Diagnostics] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# 故障排除 + +<TLDR> +**大多數 Notemd 問題可分為四類: API 關鍵問題、網路連線問題、認證錯誤(401/403),以及速率限制(429)。** 內建的連線測試與診斷面板能快速找出根本原因。此頁面涵蓋了所有常見的錯誤訊息、其成因及解決方法。對於未在此列出的問題,請搭配診斷輸出結果在 GitHub Issues 上報告。 + +這是[Obsidian AI知識管理指南](/docs/pillar-ai-knowledge)的一部分。 +</TLDR> + +## 概覽 + +Notemd 取決於外部服務──包括 LLM 提供商與搜尋 API 服務──因此大多數問題都源自於外部的插件。設定中的診斷面板可提供最後一次 API 呼叫的結構化資訊,包含請求 URL、回應狀態以及錯誤內容。在進一步調查之前,請務必先查看此面板。 + +## 運作原理:診斷功能 + +### 連線測試 + +每個供應商的設定區段都有一個**「測試連線」**按鈕。點擊它會傳送一個最簡化的 API 請求(通常是模型清單或簡短的補全內容),並回報成功狀態或具體的 HTTP 錯誤。這是驗證您的 API 金鑰與基礎 URL 是否正確的最快速方式。 + +### 診斷面板 + +**設定 --> Notemd --> 診斷**顯示: + +| 字段 | 內容 | +|-------|---------| +| 最後的供應商 | 最後呼叫的是哪個供應商 | +| 最後的型號 | 最後一次稱呼的是哪個型號 | +| 最後狀態 | HTTP 狀態碼或傳輸錯誤 | +| 最後的錯誤 | 來自 API 的原始錯誤訊息 | +| 最後一次請求 URL | 上次請求的完整內容 URL(已隱藏 API 關鍵字) | +| 最後的回應內容 | 回應內容被截斷(前 500 個字元) | + +在 GitHub 上回報問題時,請複製完整的診斷輸出。 + +## 常見錯誤 + +### API 金鑰無效或遺失 + +**症狀:** HTTP 401 或「提供的 API 金鑰不正確」 + +**原因:** API 金鑰遺失、包含空白字元,或屬於其他供應商。 + +**修復:** +1. 驗證金鑰是否沒有開頭或結尾的空白。 +2. 確認金鑰與所選供應商相符(OpenAI 金鑰無法與 Anthropic 一起使用) +3. 檢查您的帳戶是否有剩餘點數或有效的訂閱。 +4. 點擊 **“Test Connection”** 以進行驗證 + +### 網路/連線錯誤 + +**症狀:** `ERR_CONNECTION_REFUSED`, `ERR_TIMED_OUT`, `Socket hang up`, `Network request failed` + +**原因:** 從您的電腦無法連接到 API 這個端點。 + +**修復:** +1. 檢查您的網際網路連線。 +2. 如果在代理或防火牆後,請確認 API 域名未被封鎖 +3. 針對 Ollama:確認 `ollama serve` 正在運作(`ollama list` 應該會回傳模型) +4. 關於 LMStudio:確認伺服器正在 `localhost:1234` 上運作 +5. 試著使用不同的傳輸方式——行動用戶應確保 `requestUrl` 傳輸方式已啟用 +6. 啟用 `enableStableApiCall` 以在暫時性錯誤時自動重試 + +### 403 禁止訪問 + +**症狀:** HTTP 403 + +**原因:** 您的 API 金鑰雖然有效,但沒有對所請求資源的存取權限。 + +**修復:** +1. 部分模型需要特殊權限(例如,透過 Azure 使用的 GPT-4 需要指定部署名稱) +2. 有些服務供應商會依計劃等級限制模型使用 -- 請檢查您的帳戶 +3. 可能會有地區限制(部分中國的服務供應商會封鎖國際 IP,反之亦然) +4. 驗證模型名稱的拼寫是否正確(例如,當您的方案只允許使用迷你模型時,應為 `gpt-4o` 而非 `gpt-4o-mini`) + +### 速率限制 (429) + +**症狀:** HTTP 429 或「速率限制已達上限」 + +**原因:** 短時間內的請求數量過多。 + +**修復:** +1. 將 `batchConcurrency` 減少為 `1` 或 `2` +2. 請稍等幾分鐘後再重試。 +3. 請查閱您所選方案等級的供應商速率限制說明文件。 +4. 啟用 `enableStableApiCall` 以實現帶有延遲的自動重試 +5. 考慮轉換為提供更高上限的服務商(DeepSeek, Ollama) + +### 未找到模型 + +**症狀:**「未找到模型」或 HTTP 404 + +**原因:** 所選供應商上並不存在該模型名稱。 + +**修復:** +1. 點擊 **「取得模型清單」**,即可查看您所使用服務供應商的所有可用模型 +2. 有些型號名稱會隨時間改變——請在供應商的文件中確認目前的名稱。 +3. 對於 Ollama:執行 `ollama list` 可以查看已下載的模型;僅有已下載的模型可用 + +### 未產生連結 / 未產生概念 + +**症狀:** 指令已執行,但沒有產生任何輸出 + +**原因:** LLM 返回了空值或無法解析的回應。 + +**修復:** +1. 檢查診斷面板,查看實際的 LLM 回應 +2. 試試功能更強大的模型(有些小型模型在處理結構化輸出時會有困難)。 +3. 請確保該備註的內容足夠豐富(超過 50 個字)。 +4. 檢視您的自訂提示詞,確認其中沒有衝突的指示。 +5. 暫時關閉同義詞壓制功能,查看是否過度進行過濾 + +### Doubao 缺少端點 ID + +**症狀:** 使用 ByteDance Doubao 提供服務時出現錯誤 + +**原因:** Doubao 需要的是 Ark 終點 ID(格式:`ep-xxxxxxxx-xxxx-xxxx`),而非模型名稱。 + +**修正方式:** 以 Volcengine 控制台中的實際端點 ID,取代預設的佔位模型。 + +## 設定 + +| 診斷設定 | 位置 | 用途 | +|--------------------|----------|---------| +| **測試連線** | 設定 --> 提供者區段 | 驗證 API 金鑰及連線狀態 | +| **取得模型清單** | 設定 --> 提供者區段 | 確認哪些型號可以存取 | +| `enableStableApiCall` | 設定 --> 進階 | 啟用帶有延遲重試功能 | +| `batchConcurrency` | 設定 --> 批次處理 | 控制平行處理數量以避免速率限制 | + +## 如何回報問題 + +如果您的問題未在上述範圍內: + +1. 打開 **設定 --> Notemd --> 診斷** +2. 複製完整的診斷輸出 +3. 在 [github.com/Jacobinwwey/obsidian-NotEMD/issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) 開啟一個 GitHub Issue。 +4. 包含:Obsidian 版本、Notemd 版本、供應商、型號、診斷輸出,以及重現問題的步驟 +5. 將您在所有共享日誌中的 API 金鑰加以隱藏 + +--- + +## 接下來的步驟 + +- [LLM 提供者](/docs/providers/overview) -- 完整的提供者設定參考資料 +- [批次處理](/docs/advanced/batch-processing) -- 大規模作業的並發與重試設定 +- [Custom Prompts](/docs/advanced/custom-prompts) -- 透過調整提示語句來修正意外的 LLM 行為 diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/faq.mdx b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/faq.mdx new file mode 100644 index 00000000..30595d2b --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/faq.mdx @@ -0,0 +1,359 @@ +--- +id: faq +title: "常見問題集" +description: "有關 Notemd 安裝、功能與使用的常見問題" +keywords: [faq, installation, LLM providers, obsidian plugin, wiki-links, concept notes, Copilot alternative, Smart Connections alternative, obsidian AI plugin comparison] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, wiki-links, concept notes, knowledge base, Copilot Alternative, AI Plugin Comparison] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Ollama + url: https://ollama.com +faqItems: + - question: How do I install Notemd in Obsidian? + answer: Open Obsidian Settings, go to Community Plugins, Browse, search Notemd, Install, and Enable. Requires Obsidian 0.15.0 or later. Manual installation is also available via GitHub Releases. + - question: What LLM providers does Notemd support? + answer: Notemd supports 30+ providers including OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Qwen, Ollama, LM Studio, Azure OpenAI, OpenRouter, and many China-focused providers like Qwen, Doubao, Moonshot, and GLM. + - question: Can Notemd work with local LLMs? + answer: Yes. Notemd works with Ollama, LM Studio, vLLM, LocalAI, and any OpenAI-compatible endpoint. All tasks work with local models including linking, concept generation, translation, research, and diagram generation. + - question: How does Notemd differ from ChatGPT? + answer: ChatGPT produces ephemeral chat answers. Notemd writes persistent structured results directly into your Obsidian vault as wiki-linked files, concept notes, diagrams, and translations that accumulate into a knowledge base. + - question: How does Notemd compare to Copilot or Smart Connections? + answer: Copilot is conversation-first for chatting about notes. Smart Connections is discovery-first for finding similar notes. Notemd is write-first, processing notes with AI and writing structured results into your vault. All three complement each other. + - question: Which search services work with Notemd research? + answer: Tavily (recommended, AI-optimized search, requires API key) and DuckDuckGo (experimental, no API key needed). Research results are summarized by LLM and appended to your note with source citations. + - question: Does Notemd support Chinese or other languages? + answer: The UI supports 21+ languages. Task output language is independently configurable, allowing mixed setups like Chinese UI with English output or vice versa. + - question: Can I use Notemd for paper or PDF reading? + answer: Yes. Convert PDF to Markdown using MinerU, open in Obsidian, then run Notemd tasks to add wiki-links, generate concept notes, extract text, research background, translate sections, and create Mermaid diagrams. + - question: What diagram types can Notemd generate? + answer: Mermaid (flowchart, sequence, class, state, ER, Gantt with syntax auto-fix), JSON Canvas (Obsidian native), Vega-Lite (data charts), HTML fallback, and explicit editable HTML/SVG figure artifacts. Draw.io XML and Drawnix JSON exporter boundaries are available for deterministic artifact testing. + - question: Is Notemd free and open source? + answer: Yes. MIT licensed, no paid tiers, no cloud lock-in, no telemetry. Source code on GitHub with 234+ stars. Pull requests welcome. + - question: Can Notemd work 100% offline? + answer: Yes with Ollama. No API key, no internet needed. All features work offline including wiki-links, concept notes, translation, and diagrams. DuckDuckGo research also works without an API key. + - question: Is my data sent to the cloud? + answer: With Ollama or LM Studio, no data leaves your machine. With cloud providers like OpenAI or Anthropic, your note content is sent as API input. Notemd itself collects no telemetry or user data. +--- + +import TLDR from '@site/src/components/TLDR'; + +# 常見問題集 + +<TLDR> +**對最常見的 Notemd 問題的快速解答。** 內容涵蓋安裝(5分鐘即可設定)、30種以上 LLM 供應商支援、本地/雲端模式選項、一鍵式工作流程、多語言 UI(21種語言)、維基連結自動化、研究整合、PDF 閱讀工作流程、圖表生成,以及開源授權。所有功能皆可在離線狀態下搭配 Ollama 使用。 +</TLDR> + +--- + +## 安裝與設定 + +### 我要如何在 Obsidian 中安裝 Notemd? + +打開 Obsidian **設定 → 社群外掛 → 瀏覽** → 搜尋 **"Notemd"** → **安裝** → **啟用**。 + +**需求:** +- Obsidian 0.15.0+ +- 支援桌面端(Windows、macOS、Linux)及行動端(iOS、Android)。 + +**手動安裝:** +1. 從 [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases) 下載 `main.js`、`styles.css`、`manifest.json` +2. 將它們放入 `<your-vault>/.obsidian/plugins/notemd/` 中 +3. 重新載入 Obsidian 並啟用此外掛程式 + +**統計資料:** 下載次數超過 4k 次,已發布 44 個版本,採用 MIT 授權。 + +--- + +## LLM 設定 + +### Notemd 支援哪些 LLM 供應商? + +Notemd 支援 **30 多家供應商**: + +**雲端服務供應商:** +- OpenAI(GPT-4、GPT-4o、GPT-4o-mini、o1、o3) +- Anthropic(Claude Opus、Sonnet、Haiku) +- Google(Gemini Pro、Flash、Ultra) +- xAI (Grok) +- Mistral、DeepSeek、Qwen、Moonshot、GLM + +**以中國為重點:** +- Qwen、Qwen Code、Doubao、Moonshot、Xiaomi MiMo、GLM、Z AI、MiniMax +- Huawei Cloud MaaS、Baidu Qianfan、SiliconFlow + +**本地/自訂主機:** +- Ollama +- LM Studio +- 任何與 OpenAI 相容的端點 + +**網關:** +- Azure OpenAI、OpenRouter、Together AI、Groq、AIHubMix +- GitHub Models、Fireworks、LiteLLM、Nebius、Cerebras +- Hugging Face、Vercel AI Gateway、Requesty + +### Notemd 能與本地的 LLMs 一起使用嗎? + +**是的,完全支援。** Notemd 可與以下項目搭配使用: +- **Ollama**(原生整合) +- **LM Studio**(透過 OpenAI 相容的端點) +- **vLLM, LocalAI, text-generation-webui**(透過 OpenAI 相容模式) + +所有任務皆可搭配本地模型運作:連結、概念生成、翻譯、研究以及圖表生成。 + +**組合示例:** +- Ollama(本地)用於連結 → 快速、私密且免費 +- 用於研究的 OpenAI → 高品質,支援網路搜尋整合 +- Gemini 翻譯功能 → 多模態支援 + +### 要如何為不同的任務配置不同的模型? + +在 **Notemd 設定** 中,每個任務都有獨立的供應商/模型選擇器: + +| 任務 | 範例設定 | +|------|----------------------| +| **連結** | DeepSeek(快速、便宜) | +| **概念生成** | Claude Opus(高品質) | +| **研究** | Perplexity 或 GPT-4o(網路版) | +| **翻譯** | Gemini Flash(多模態) | +| **圖表產生** | Ollama(本地,私人) | + +此每個任務的優化能兼顧速度、成本與品質。 + +--- + +## 核心功能 + +### 在閱讀紙本資料時, Notemd 與 ChatGPT 有什麼不同? + +| 尺寸 | ChatGPT | Notemd | +|-----------|---------|--------| +| **輸出位置** | 聊天記錄(暫存) | Obsidian vault(持久性檔案) | +| **結果格式** | 文字回覆 | 維基連結、概念說明、圖表、翻譯 | +| **長期價值** | 會在會話結束後消失 | 累積成為知識庫 | +| **可重複使用性** | 必須重新查詢 | 檔案保留,連結不變,持續演進 | + +**請使用 ChatGPT 用於:** 快速問答、一次性說明 +**請使用 Notemd 用於:** 在數週或數月內建立持續且結構化的知識庫 + +### Notemd 是如何在筆記中加入維基連結的? + +**處理流程:** +1. 你在筆記上執行「處理檔案(新增連結)」 +2. Notemd 會將文字傳送至您設定的 LLM +3. LLM 用於標示上下文中的關鍵概念 +4. Notemd 會在每個概念出現的位置插入 `[[wiki-links]]` +5. 可選地,它會自動在您指定的資料夾中建立概念筆記。 + +**功能特點:** +- 同義詞抑制(避免「transformer」與「transformers」的重複) +- 從概念說明到來源的反向連結 +- 重新命名/刪除時的連結完整性 +- 純粹提取模式(在不修改原始內容的情況下提取概念) + +### 什麼是 Notemd 一次點擊工作流程? + +**一次點擊工作流程**可將多個動作串聯在一個**單一的側邊欄按鈕**中。 + +**預設工作流程:** `One-Click Extract` +``` +process-current-add-links > extract-concepts-current > research-and-summarize > summarize-as-mermaid +``` + +**結果:** 一次點擊即可執行: +1. 在目前的筆記中加入維基連結 +2. 為新術語生成概念說明 +3. 研究並補充背景資料 +4. 壓縮成 Mermaid 圖表 + +**自訂工作流程:** 可以在設定中以 DSL 格式定義屬於您自己的工作流程。每個工作流程都會變成可重複使用的側邊欄按鈕。 + +### Notemd 與 Copilot 或 Smart Connections 相比如何? + +這些外掛可以解決不同的問題: + +- **Copilot** — 以對話為主。您可以與 AI 聊天,分享您的筆記。AI 的回覆會顯示在聊天區,不會修改您的資料庫。 +- **Smart Connections** — 以探索為優先。它透過嵌入技術找出語意上相似的筆記,且不會創建或修改內容。 +- **Notemd** — 先撰寫。AI 會處理您的筆記,並將結構化的結果(維基連結、概念筆記、研究資料、圖表、翻譯內容)直接以永久性檔案的形式儲存到您的保險庫中。 + +| 你需要什麼 | 推薦的外掛程式 | +|----------------|-------------------| +| 與 AI 聊天討論筆記 | Copilot | +| 尋找類似/相關的筆記 | Smart Connections | +| 自動插入維基連結並建立知識圖譜 | **Notemd** | +| 產生附有反向連結的概念說明文件 | **Notemd** | +| 根據筆記內容建立圖表 | **Notemd** | +| 研究一個主題並附加摘要 | **Notemd** | + +這三個可以一起使用——它們是相輔相成而非相互競爭的關係。 + +--- + +## 研究與翻譯 + +### 哪些搜尋服務能與 Notemd 研究功能相容? + +| 服務 | API 需要金鑰 | 品質 | 備註 | +|---------|-----------------|---------|-------| +| **Tavily** | 是的 | 高 | 推薦,AI 最佳化搜尋 | +| **DuckDuckGo** | 沒有 | 測試中 | 無需設定,品質較低 | + +**「研究與總結」的運作方式:** +1. 您選擇一個主題,或在目前的筆記上執行它。 +2. Notemd 問詢搜尋服務 +3. 結果 → LLM 總結 +4. 摘要已附加至您的筆記中,並附上出處引用 + +**結果:** 資料會儲存在您的保險箱中,而非瀏覽器分頁中。 + +### Notemd 是否支援中文或其他語言? + +**UI 語言:** 支援 21 種以上語言 +- English, 中文 (簡體), 中文 (繁體), 日本語, 韓國語 +- 阿拉伯文、德文、法文、西班牙文、俄文、葡萄牙文、義大利文 +- 印地語、孟加拉語、泰語、越南語、土耳其語、波蘭語、捷克語,以及更多語言 + +**任務輸出語言:** 獨立設定 +- UI 的中文翻譯:確定 ✅ 的英文輸出:✅ +- UI 的英文內容 + 以中文輸出:✅ + +**使用情境:** 能說兩種語言的研究人員在撰寫英文論文時,仍可保留 UI 的原文內容。 + +--- + +## PDF 與學術工作流程 + +### 我可以使用 Notemd 來進行紙本/PDF 閱讀嗎? + +**是的。**工作流程: +1. **將 PDF 轉換為 Markdown**,使用 [MinerU](https://github.com/opendatalab/MinerU)(適用於學術論文) +2. 在 Obsidian 中打開 Markdown 檔案 +3. 執行 Notemd 任務: + - 在關鍵術語中**加入維基連結** + - **產生概念說明**,用於不熟悉的術語 + - 透過自訂問題**提取原始文字**(例如:「有哪些限制?」) + - **引用方法/資料集的研發背景** + - **翻譯**困難的章節 + - **壓縮為 Mermaid** 圖表,以便理解結構。 + +**版本 1.9.1+:** 具有目錄功能的章節結構提取功能 + +**結果:** 您的論文閱讀內容將轉變為儲存在您資料庫中的結構化、可連結的知識檔案。 + +--- + +## 圖表與視覺化 + +### Notemd 能夠產生哪些類型的圖表/圖形? + +| 輸入 | 支援服務 | 功能特色 | +|------|---------|----------| +| **Mermaid** | 完整版 | 流程圖、序列、類別、狀態、ER圖、甘特圖、語法自動修正、批次驗證 | +| **JSON Canvas** | 完整版 | Obsidian 原生畫布佈局 | +| **Vega-Lite** | 完整版 | 資料圖表、時間序列、條形圖、散點圖、可自訂 | +| **HTML** | 備用方案 | 對於不受支援的圖表類型 | +| **可編輯的 HTML/SVG** | 明確的目標 | 內建式內聯 SVG,搭配具有 Draw.io 風格的語意註解 | +| **Draw.io / Drawnix 的產物** | 匯出邊界 | 由 `SemanticFigureModel` 產生的確定性 XML/JSON;無需編輯器執行時依賴項目 | + +**Mermaid 自動修復:** 深度除錯模式修復: +- 損壞的箭頭 (`-->`, `-.->`, `==>`) +- 無效的標籤、註解 +- 子圖語法錯誤 +- 形狀表示法 (`[`, `(`, `{`, `((`) +- 標籤中的管道符號 +- 備註附件 + +**工作流程:** +1. 在筆記上執行「Summarize as Mermaid diagram」指令 +2. 在模態視窗中預覽 +3. 匯出為 SVG 或 PNG +4. 或將其儲存為保險庫中的 `.mmd` 檔案 + +--- + +## 開源與社群 + +### Notemd 是免費且開源的嗎? + +**是的。** +- **授權條款:** MIT(開放式授權,允許商業使用) +- **原始碼:** https://github.com/Jacobinwwey/obsidian-NotEMD +- **沒有付費方案,無雲端鎖定,亦無遠端監控功能** +- **社群:** 234+ 個 GitHub 星標,活躍的 Discord 社群 + +**您擁有:** +- 您的資料(會保存在您的保險箱中) +- 您的工作流程(自訂提示詞、模型、鏈路) +- 您的隱私權(本地 LLM 支援) + +**貢獻方式:**歡迎提交 Pull request。請參閱 [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +## 故障排除 + +### 我的 LLM 呼叫一直失敗,我該檢查什麼? + +1. **API 金鑰有效嗎?** 請檢查「設定」→「供應商設定」。 +2. **模型名稱正確嗎?** 請在設定中使用「獲取模型列表」(Get Model List) 按鈕。 +3. **網路可存取嗎?**部分服務供應商需要使用 VPN +4. **速率限制?**請查看供應商的控制台。 +5. **診斷:** 在設定中執行「連線測試」,以取得詳細的錯誤日誌 + +### Notemd 的運作速度很慢,我要怎麼加快它? + +1. **使用更快速的模型:** DeepSeek、Gemini Flash、GPT-4o-mini +2. **縮小區塊大小:** 設定 → 智能區塊分割 → 降低字數 +3. **平行處理:** 設定 → 批次處理 → 增加同時執行數量 +4. **本地模型:** 用 Ollama 处理不需要網路搜尋的任務 + +### Notemd 能夠 100% 無線上連線運作嗎? + +**是的,搭配 Ollama 使用。** 沒有 API 金鑰,沒有上網功能,資料也不會離開您的電腦: + +1. 安裝 [Ollama](https://ollama.com) 並執行 `ollama serve` +2. 在 Notemd 設定中,選擇 **Ollama** 作為您的供應商 +3. 下載模型:`ollama pull llama3`(或 qwen2.5、gemma2 等) +4. 所有功能皆正常運作:維基連結、概念筆記、翻譯、圖表 + +**DuckDuckGo research** 在沒有 API 金鑰的情況下也能運作(品質為測試階段)。 + +透過雲端服務供應商(OpenAI、Anthropic、Google、DeepSeek 等),您的筆記內容會以 API 的形式傳送。請查閱每個供應商的隱私權政策,以了解資料處理的相關細節。 + +### 我的資料會被傳送到雲端嗎? + +**這取決於您的服務供應商:** + +| 供應商類型 | 資料已傳送到雲端? | 備註 | +|--------------|---------------------|-------| +| **Ollama (本地)** | 沒有 | 所有內容都會留在您的電腦上。 | +| **LMStudio (本地)** | 沒有 | 與 Ollama 相同 | +| **DeepSeek、OpenAI 等等。** | 是的 | 請注意,內容會以 API 作為輸入值傳送以進行處理 | +| **OpenRouter, AIHubMix** | 是的 | 可路由至雲端服務供應商的網關 | + +Notemd 本身不會收集任何遠端監控資料、分析資料或使用者資料。此外掛程式是完全開源的(MIT授權)。唯一會離開您電腦的資料,就是您明確傳送給已設定的 LLM 提供商的資料。 + +### 哪個 Obsidian AI 外掛最適合用於研究? + +取決於您的研究工作流程: + +| 需要 | 外掛程式 | 為什麼 | +|------|--------|-----| +| 尋找相關論文/筆記 | Smart Connections | 語意相似度發現 | +| 聊聊你的資料來源吧 | Copilot | 與金庫上下文的對話 | +| 自動連結概念 + 產生筆記 | **Notemd** | AI可辨識概念、插入連結、建立筆記 | +| 網路資料搜尋 + 總結成筆記 | **Notemd** | Tavily/DuckDuckGo 搜尋 → LLM 總結 → 追加到筆記中 | +| 根據研究內容產生圖表 | **Notemd** | Mermaid/Canvas/Vega-Lite 從筆記內容中取得 | + +**推薦組合:** Smart Connections(探索)+ Notemd(結構化)+ Copilot(討論)。 + +--- + +## 尋求協助 + +- **文件說明:** https://jacobinwwey.github.io/obsidian-NotEMD/ +- **GitHub Issues:** https://github.com/Jacobinwwey/obsidian-NotEMD/issues +- **Discord:** https://discord.gg/qnGgsQ9W +- **贊助商:** https://github.com/sponsors/Jacobinwwey diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/features/concept-notes.mdx b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/features/concept-notes.mdx new file mode 100644 index 00000000..1169ce5b --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/features/concept-notes.mdx @@ -0,0 +1,184 @@ +--- +id: concept-notes +title: "概念說明" +description: "產生並管理概念筆記——從您的資料庫中提取之關鍵概念的獨立筆記" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [concept notes, knowledge extraction, concept folder, deduplication, backlinks] +concepts: [Concept Notes, Knowledge Graph, LLM Extraction, Deduplication, Backlinks] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Zettelkasten Method + url: https://zettelkasten.de +--- + +import TLDR from '@site/src/components/TLDR'; + +# 概念說明 + +<TLDR> +**Notemd** 可從您的筆記中提取關鍵概念,並建立獨立的概念筆記檔案。**LLM** 會辨別核心詞彙,於可設定的資料夾中為每個概念產生一個 `.md` 檔案,並可選擇性添加回源頭筆記的連結。它支援同義詞過濾、依任務選擇模型、檔名清理,以及四步驟的重複資料去除機制。此功能屬於 [Obsidian AI知識管理指南](/docs/pillar-ai-knowledge) 的一部分。 +</TLDR> + +## 概覽 + +概念筆記是構建連結式知識庫的基礎。當您處理一則筆記時,Notemd: + +1. **將您的文字傳送至 LLM**,並附上結構化的提取提示 +2. **解析 LLM 回應中的 `CONCEPT:` 行** +3. **在指定的資料夾中,為每個概念建立一個 `.md` 檔案** +4. (開啟時)在原始筆記中**新增反向連結** + +## 它是如何運作的 + +### 提取流程管線 + +``` +Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines + → Deduplicate via Set → Create .md Files → Add Backlinks + → (Optional: Generate Log) +``` + +### 提取提示詞 + +該 LLM 會收到一個指示它執行以下動作的提示: + +- 提取文件主題中核心的**名詞或名詞片語** +- **優先考慮具體性** — 應使用「介電弛豫」而非「弛豫」 +- **轉換為單數形式** — 「models」會變成「model」 +- **壓制子概念** — 若出現「介電體弛豫」,則不要同時提取「弛豫」 +- **跳過**參考文獻/參考資料區段、普通名詞、公司/產品名稱 +- 每行輸出一個概念,格式為 `CONCEPT: Term Name` + +**同義詞抑制**(選用):在提示語前加上「盡可能避免提取同義詞、語意上相似的核心概念或關鍵字」。 + +**專注學習領域**(選用):在前面加上 `Relevant Fields: [domain]`,以將抽取內容限制在特定學科。 + +**語言覆寫**(選用):會在後面加上「輸出的概念必須使用 [language] 語言。」 + +### 分塊處理 + +長篇筆記會以 `settings.chunkWordCount` 作為分隔點。每個區段會分別傳送。所有區段中的概念都會累積在 `Set` 中——不同區段中的重複內容會被靜默移除。單個區段出現 LLM 錯誤也不會中斷整個操作。 + +## 概念說明書的撰寫 + +### 檔名規則 + +| 規則 | 行為模式 | +|------|----------| +| 連字符/下劃線 | 已替換為空格 | +| 特殊字元 | 已移除的符號:反斜線、正斜線、冒號、星號、問號、引號、尖括號、管道符、井號、上標符、方括號 | +| 空白字元 | 已收縮並修剪 | +| 最大長度 | 100個字元(已截斷並重新修剪) | +| 空白/全點結果 | 靜默跳過 | + +範例:`A-B: Key*Term` 會變成 `A B KeyTerm.md` + +### 範本 + +**完整模板**(已啟用反向連結,最小化模板關閉): + +```markdown +# Concept Name + +## Linked From +- [[SourceNoteBasename]] +``` + +**最小化範本**(當 `extractConceptsMinimalTemplate: true` 時): + +```markdown +# Concept Name +``` + +### 更新現有筆記 + +當概念檔案已存在時: + +1. 如果已啟用反向連結且來源備註尚未列出,請新增一個反向連結 +2. 如果存在 `## Linked From` 區段,請在下一個 `##` 標頭之前插入。 +3. 如果沒有 `## Linked From`,就在最後新增一個章節。 +4. 會檢查重複的回鏈並跳過它們 + +### 設定 + +| 設定 | 預設值 | 效果 | +|---------|---------|--------| +| `useCustomConceptNoteFolder` | `true` | 主開關。關閉 = 不建立筆記 | +| `conceptNoteFolder` | `''`(已關閉) | 概念備忘錄的資料夾路徑 | +| `extractConceptsMinimalTemplate` | `true` | 僅標題備註(無連結來源) | +| `extractConceptsAddBacklink` | `false` | 在獨立提取時新增反向連結 | +| `extractConceptsProvider` / `extractConceptsModel` | DeepSeek | 每個任務的 LLM 用於概念抽取 | +| `extractConceptsLanguage` | `'en'` | 概念名稱的輸出語言 | +| `replaceSynonymsDuringConceptExtraction` | `false` | 在提示詞中啟用同義詞抑制功能 | +| `generateConceptLogFile` | `false` | 撰寫一個 `.log` 列表,列出已建立的概念 | + +**重要提示:** `extractConceptsAddBacklink` 與 `extractConceptsMinimalTemplate` 的設定僅會影響 **專用的提取指令**。而「新增連結」指令則總是會建立包含回鏈的完整範本筆記。 + +## 去重 + +dedup 指令(`Notemd: Check & remove duplicate concept notes`)會執行 5 步的分析流程: + +### 步驟 1:精確的檔名匹配 + +在所設定的範圍內,以不區分大小寫的方式比對基名。 + +### 步驟 2:複數形態檢測 + +移除後綴:從 `-ies` 到 `-y`, `-es` 被移除, `-s` 也被移除。會將單數形式與範圍檔案進行比對。無法處理不規則的複數形式(如 children/child)。 + +### 步驟 3:符號標準化 + +適用於:`toLowerCase()`,將連字符/下劃線替換為空格,移除非數字字母字符,合併空白。規範化後完全相同的項目會被標記出來。 + +### 步驟 4:單字封裝 + +單字概念筆記會與多字範圍檔案的名稱進行比對。當範圍為 `concept_folder_only` 時不會執行。 + +### 步驟 5:確認與刪除 + +所有候選項都會顯示在確認對話框中。已通過審核的項目會被移至系統垃圾桶。在每次刪除之間都可以取消該操作。 + +### 範圍模式 + +| 模式 | 與之相比 | +|------|-------------------| +| `vault`(預設值) | 所有保險箱 `.md` 的檔案,不包括 concept 資料夾 | +| `concept_folder_only` | 資料夾中的其他概念說明 | +| `include` | 特定列出資料夾中的檔案 | +| `exclude` | 除 concept 資料夾及列出的資料夾外,所有保險庫檔案 | + +## 使用說明 + +### 提取概念(獨立版) + +1. 打開筆記 +2. 從指令選單執行 **"Notemd: Extract concepts"** +3. 概念說明文件會建立在已設定的資料夾中。 + +### 提取 + 產生內容 + +**"Notemd: 提取概念並產生標題"** — 會先提取概念,接著對概念資料夾中的每個筆記執行「從標題生成」的功能。如此一來,就能為資料夾中**所有**的概念筆記產生內容,而不只是新建立的那些。 + +### 從選取內容建立維基連結 + +1. 在編輯器中標出文字 +2. 執行 **"Notemd: 從選取內容建立維基連結"** +3. 文字被包在 `[[...]]` 中,並生成了概念說明文件 + +## 技巧 + +- **先設定概念資料夾** — 沒有它就無法建立筆記。若未設定,會出現警告對話框。 +- **使用每任務專用的模型** — 概念抽取工作適合使用成本較低的模型(GPT-4o-mini、DeepSeek)。將昂貴的模型留作研究或翻譯之用。 +- 為了在有多個術語指代同一概念的技術領域中,**啟用同義詞抑制**功能。 +- **定期去重** — 在批次處理之後執行去重指令,以找出幾乎重複的資料。 +- 每次執行時都會**覆寫日誌檔**,而非追加。若需要之前的結果,請將其複製下來。 + +--- + +## 接下來的步驟 + +- [Wiki-Links](./wiki-links) — 概念如何以內聯方式相互連結 +- [圖表](./diagrams) — 可視化概念之間的關係 +- [工作流程](./workflows) — 與其他任務串聯提取 diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/features/diagrams.mdx b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/features/diagrams.mdx new file mode 100644 index 00000000..ee0f2513 --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/features/diagrams.mdx @@ -0,0 +1,404 @@ +--- +id: diagrams +title: "圖表" +description: "利用以規格為先的架構,根據您的筆記產生 Mermaid、JSON Canvas、Vega-Lite、HTML 等可編輯的圖表檔案,以及未來受限形式的 circuitikz 圖表。" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [diagrams, mermaid, vega-lite, canvas, visualization, spec-first, drawio, drawnix, editable svg, circuitikz, TikZJax] +concepts: [DiagramSpec, Mermaid, Vega-Lite, JSON Canvas, Editable HTML SVG, Draw.io, Drawnix, circuitikz, TikZJax, Intent Detection, Spec-First Architecture] +citations: + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# 圖表 + +<TLDR> +**Notemd** 可透過以規格為優先的流程,從您的筆記中生成圖表。**LLM** 會產生一種與渲染器無關的 `DiagramSpec` JSON,接著再由專用的轉換器將其轉換為 Mermaid、JSON Canvas、Vega-Lite、HTML,或是可編輯的 HTML/SVG 格式輸出。此功能支援 8 種意圖類型、自動備用流程、搭配 SVG/PNG 格式進行的即時預覽、語意驗證,以及可增強本地知識的生成功能。 +</TLDR> + +這是[Obsidian AI知識管理指南](/docs/pillar-ai-knowledge)的一部分。 + +## 架構:以規格為先的流水線 + +Notemd 永遠不會要求 LLM 直接產生 Mermaid/Vega/Canvas 語法。而是: + +```mermaid +graph LR + A[Source Note] --> B[Intent Detection] + B --> C[Plan + Target] + C --> D[LLM: Generate DiagramSpec] + D --> E[Parse + Validate] + E --> F{Primary Target} + F -->|Success| G[Render Artifact] + F -->|Failure| H[Fallback Target] + H -->|Success| G + H -->|Failure| I[HTML Fallback] +``` + +**為何要先定義規格?** LLM 通常會產生無效的渲染器語法(尤其是 Mermaid)。結構化的 `DiagramSpec` 可在渲染前進行驗證,且同一個規格也能用來作為多個渲染器的備用選項。 + +## 支援的圖表類型 + +| 意圖 | 主要渲染器 | 備用方案 | 使用情境 | +|--------|-----------------|-----------|----------| +| `mindmap` | Mermaid | HTML | 階層式主題拆解 | +| `flowchart` | Mermaid | HTML | 流程圖、決策樹 | +| `sequence` | Mermaid | HTML | 用戶端-伺服器互動、協定 | +| `classDiagram` | Mermaid | HTML | OOP 類別關係 | +| `erDiagram` | Mermaid | HTML | 資料庫結構、實體關係 | +| `stateDiagram` | Mermaid | HTML | 狀態機、生命週期模型 | +| `canvasMap` | JSON Canvas | Mermaid → HTML | 概念圖、知識圖譜 | +| `dataChart` | Vega-Lite | Mermaid → HTML | 條形圖、折線圖、面積圖、散點圖、餅圖、表格 | + +## 意圖偵測 + +Notemd 會根據關鍵字分數,從您的筆記內容中判斷出最適合的圖表類型: + +| 意圖 | 觸發器 | 自信度 | +|--------|----------|------------| +| `dataChart` | 表格、數字儲存格、指標/趨勢關鍵字、百分比 | 0.88 | +| `sequence` | 請求/回應詞彙表(4個以上匹配項目)或 `->`/`=>` 標記 | 0.82 | +| `erDiagram` | 主鍵、外鍵、實體、結構描述(2個以上匹配項目) | 0.80 | +| `stateDiagram` | 狀態、轉換中、待處理、執行中、失敗(3次以上匹配) | 0.76 | +| `flowchart` | 編號步驟(2+)或 if/then/else/工作流程相關術語 | 0.74 | +| `canvasMap` | 概念圖、知識圖譜、空間、群集 | 0.72 | +| `mindmap` | 預設的回退值 | 0.55 | + +以 **Preferred diagram type** 設定、側邊欄選擇器,或明確的指令選單選項來覆寫。 + +## 渲染目標選擇 + +這個以規格為先的實驗性流程現在有兩個獨立的控制項: + +| 控制 | 設定 | 效果 | +|---------|---------|--------| +| 預設的圖表類型 | `preferredDiagramIntent` | 引導所產生之 `DiagramSpec` 的語意結構 | +| 預設的渲染目標 | `preferredDiagramRenderTarget` | 為 **Generate diagram** 與 **Preview diagram** 選擇物件渲染器 | + +將規劃器的預設 **Preferred render target** 設定為 **Auto**,或明確選擇 Mermaid、JSON Canvas、Vega-Lite、HTML,或是可編輯的 HTML/SVG。此覆寫僅適用於 artifact 與 preview 指令。標準的 **Summarise as Mermaid diagram** 指令仍會固定為與 Mermaid 相容的輸出格式,如此一來現有的 Markdown 工作流程就不會在不知情的情況下改變格式。 + +這種區分很重要,因為現在 `flowchart` 的意圖可以轉換為 Markdown 註釋的 Mermaid、強大的備用方案的 HTML,或是用於後續編輯的可編輯 HTML/SVG。而 Draw.io 和 Drawnix 仍屬於 CLI 的檔案匯出工具,而非內建插件的渲染目標。 + +## 使用說明 + +### 產生圖表 + +1. 打開筆記 +2. 從指令選單執行 **"Notemd: Generate diagram"** +3. Notemd 可偵測意圖、產生規格文件、進行呈現,並儲存最終成果 + +**依目標產生的輸出檔案:** + +| Target | 擴充套件 | 檔名模式 | +|--------|-----------|------------------| +| Mermaid | `.md` | `{note}_summ.md` | +| JSON Canvas | `.canvas` | `{note}_diagram.canvas` | +| Vega-Lite | `.json` | `{note}_diagram.json` | +| HTML | `.html` | `{note}_diagram.html` | +| 可編輯的 HTML/SVG | `.html` | `{note}_diagram.html` | + +### 預覽圖表 + +1. 執行 **"Notemd: Preview diagram"** +2. 一個模態視窗會隨著渲染完成的圖表而開啟 +3. 使用工具列按鈕將其匯出為 SVG 或 PNG 格式 + +在設定中可開啟**自動開啟預覽**功能——生成完成後,預覽視窗會自動顯示。 + +預覽模視窗還設有瑕疵診斷面板。渲染器與煙霧測試可附加 `RenderArtifact.diagnostics`;該模視窗會在預覽旁顯示診斷摘要,包括錯誤/警告/資訊的數量,以及嚴重性、診斷類型、訊息和修復建議。相同的摘要也會出現在預覽歷史記錄中,如此便可在不逐一打開每個記錄的情況下,比較重複的 circuitikz 煙霧測試結果。對於有原始內容但無法以內嵌方式或透過 HTML iframe 路徑進行渲染的瑕疵,該模視窗現在會改為僅顯示原始內容的預覽,而非強制使用空的 iframe。這讓 circuitikz 編譯/渲染煙霧測試、SVG 文本代碼檢查、PNG 空白螢幕截圖檢查,以及未來的重疊報告都能有可視化的 UI 顯示方式,同時不必依賴 TikZJax 或 LaTeX 作為硬體式的插件運行時依賴,也不必假裝原始文字就是已驗證的視覺渲染結果。 + +### 舊版 Mermaid 模式 + +當 `enableExperimentalDiagramPipeline` 關閉時,Notemd 會直接將 Mermaid 的提示傳送給 LLM。這樣做完全繞過了規格處理流程。如果實驗性處理流程失敗,就會回退到這種模式。 + +## 渲染後端 + +### Mermaid + +6個轉換器(思維導圖、流程圖、序列圖、ER圖、類別圖、狀態圖),將 `DiagramSpec` 轉換為 Mermaid 語法。生成後,由 `mermaid.parse()` 來驗證輸出結果。若驗證失敗: + +1. **LLM 重試** — 以 Mermaid 的錯誤訊息作為上下文,進行一次嘗試 +2. **最小化回退方案** — 由規格節點 ID 所構成的簡化版 Mermaid 圖表 + +**Legacy Mermaid Fixer** 可自動修復常見的 LLM 語法錯誤:包括 note 指令的標準化、pipe-label 的轉義處理、分號的位置調整、智慧引號、雙連線箭頭、形狀不匹配等問題。 + +### JSON Canvas + +產生具有空間佈局的 Obsidian JSON Canvas 格式: +- 根據深度(x = depth × 420)與索引(y = index × 170)來定位節點 +- 寬度根據標籤長度估算 +- 包含 `fromSide: 'right'`、`toSide: 'left'`、`toEnd: 'arrow'` 的邊緣 + +### Vega-Lite + +自動編碼,建立完整的 Vega-Lite v5 JSON 規格文件: +- **笛卡兒圖表**(柱狀/折線/面積/點/散點):多系列可搭配 x + y 通道與顏色使用 +- **Pie**: theta = y(量化),color = x(名義) +- **表格**:row = x,text = y + column = series + +編譯前,深色與亮色主題的修補程式會先進行深度合併。 + +### HTML + +通用備用方案。內含完整功能的 HTML 文件,具有: +- CSP meta 標頭 +- 透過 `prefers-color-scheme` 切換亮色/暗色模式 +- 針對 20 個地區語言的本地化 UI 標籤 +- 章節:首頁、結構(節點樹)、關係、說明框、資料系列表格 + +### 可編輯的 HTML/SVG + +用於可編輯匯出工作流程的明確圖形目標。它會將 `DiagramSpec` 轉換為確定的 `SemanticFigureModel`,接著產生一個自包含的 HTML 文件,其中包含內嵌的 SVG 群組,並附有 Draw.io 風格的註解: + +- 語義節點上的 `data-drawio-type`、`data-drawio-id` 與 `data-drawio-role` +- 語義邊緣上的 `data-drawio-source` 與 `data-drawio-target` +- 經過空白字元標準化與衝突處理後的穩定節點/邊識別碼 +- 不要腳本、不要外部字型,也不要遠端資源 + +此目標目前刻意還不是預設的規劃器路徑。在產品路徑能夠驗證其在實際工具中的編輯行為時,它會作為明確的渲染目標提供使用。 + +### Draw.io 與 Drawnix 導出邊界 + +目前的實作將第三方編輯器支援限制在工件邊界上: + +| Target | 合約 | 執行時依賴項目 | +|--------|----------|--------------------| +| Draw.io | 決定性未壓縮的 `mxfile` XML,來自 `SemanticFigureModel` | 插件執行階段或 CI 中均無。 | +| Drawnix | 使用 `geometry` 與 `arrow-line` 元素所構成的最小 `.drawnix` JSON 子集 | 插件執行階段或 CI 中均無。 | + +這種取捨是經過刻意考量的: Notemd 可以驗證可見的標籤、穩定的 ID 以及受支援的原始碼覆蓋率,而無需將 diagrams.net Desktop、Drawnix、Plait 或僅適用於瀏覽器的編輯器狀態嵌入到外掛程式中。 + +### circuitikz / TikZJax 方向 + +電路圖與一般流程圖並非同一類型的問題。電路的正確語法標準通常是 **circuitikz**,會透過 TikZJax 這類外掛程式以 Obsidian 的格式呈現。 TikZJax 可以載入 `circuitikz`、`pgfplots`、`tikz-cd` 和 `chemfig` 這些套件,因此很適用於物理、電路、化學和數學的筆記。 + +風險在於,由 LLM 生成的原始 TikZ 檔案相當脆弱: + +- 複雜的電路拓撲可能在電氣特性上正確,但從視覺上來看卻難以辨識。 +- 重疊的電線與標籤可能會讓正確的網表無法用於製作學習筆記。 +- 缺少套件序言、錯誤的參考點,或無效的元件名稱都可能導致無法呈現。 +- 渲染器傳回的回饋通常是圖像層級的,而 LLM 則會產生文字層級的幾何資料。 + +更好的架構應將 circuitikz 视為受限的圖表輸出目標,而非自由形式的提示語: + +```mermaid +graph LR + A[Circuit Intent] --> B[CircuitSpec] + B --> C[Golden Reference Template] + C --> D[circuitikz Adapter] + D --> E[TikZJax Render] + E --> F[Image + Log Feedback] + F --> G[Repair Pass] +``` + +一等級的模型應分別描述電路拓撲結構與佈局: + +| 圖層 | 責任 | 範例 | +|-------|----------------|---------| +| 拓撲結構 | 電氣節點與元件連接 | `VDD -> RD -> drain(M1)`,`source(M1) -> GND` | +| 版面設計 | 網格佈置、方向、導航車道 | `M1 at (3,2.2)`,輸入在左,輸出在右 | +| 風格 | 包裝、電壓規範、標籤、固定點 | `\begin{circuitikz}[american voltages]` | +| 驗證 | 編譯日誌,缺少參考點,重疊/螢幕截圖檢查 | TikZJax/LaTeX診斷與視覺檢視 | + +### 目前的 circuitikz 原型機 + +Notemd 現在已包含此方向的第一個受限儲存庫原型。它刻意設定為離線狀態且受模板限制: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex +``` + +此原型為六個黃金參考系列增加了獨立的 `CircuitSpec` 边界以及確定的匯出機制: + +| 電路類型 | 金色參考手冊 | 現行保固期間 | +|--------------|------------------|-------------------| +| `common-source-amplifier` | `common-source-nmos-v1` | 在撰寫 LaTeX 之前,會先驗證 `VDD -> R_D -> M1.D`、`vin -> M1.G`、`M1.S -> GND` 與 `M1.D -> vout`。 | +| `cmos-inverter` | `cmos-inverter-v1` | 在撰寫 LaTeX 之前,會先驗證 PMOS-over-NMOS 構型、共享閘極輸入、共享漏極輸出、`VDD -> MP.S` 與 `MN.S -> GND`。 | +| `cmos-buffer` | `cmos-buffer-v1` | 在撰寫 LaTeX 之前,會先驗證兩個串聯的逆變器階段、中間節點 `vmid`、已恢復的 `vout`,以及共用的 VDD/GND 接地線。 | +| `cmos-transmission-gate` | `cmos-transmission-gate-v1` | 在寫入 LaTeX 之前,會以補碼式的 `phib` / `phi` 控制方式,驗證 `vin` 與 `vout` 之間的平行 PMOS/NMOS 過濾元件是否有效。 | +| `cmos-nand2` | `cmos-nand2-v1` | 在寫入 LaTeX 之前,會先驗證並聯的 PMOS 上拉電路、串聯的 NMOS 下拉電路、雙輸入 `va` / `vb`,以及 `vout`。 | +| `cmos-nor2` | `cmos-nor2-v1` | 在寫入 LaTeX 之前,會先驗證串聯式 PMOS 上拉、並聯式 NMOS 下拉、雙輸入 `va` / `vb` 以及 `vout` 的功能。 | + +這還不是通用的 TikZ 產生器。它無法編譯 LaTeX、呼叫 TikZJax、檢視螢幕截圖,或執行自動化的圖片回饋修復功能。這些都還是後續要實現的階段。 + +Preview diagram 指令在檔案副檔名為 `.tex` 或 `.tikz`,且原始碼包含 `\usepackage{circuitikz}` 或 `\begin{circuitikz}` 時,可直接重新開啟已儲存的 circuitikz 原始碼檔案。此方式屬於僅顯示原始碼的 circuitikz 預覽模式:視窗會顯示原始碼、診斷資訊、複製/儲存控制項以及歷史記錄元資料,但不會在插件執行期間編譯 LaTeX 或呼叫 TikZJax。 + +現在,相同的僅來源預覽範圍已涵蓋已儲存的 Draw.io 與 Drawnix 產物。當 `.drawio` 檔案看起來像 Draw.io XML(即 `mxfile` 或 `mxGraphModel`)時即會被接受,而 `.drawnix` 檔案則在為 Drawnix JSON 且包含 `type: "drawnix"` 與 `elements` 陣列時才會被接受。此外掛程式仍不會內嵌 diagrams.net 或 Drawnix 白板主機;這些預覽僅顯示來源、診斷資訊及產物歷史記錄,並不提供內建於外掛的視覺編輯器。 + +若要進行保持拓撲結構的修復,請在接納修復後的候選結果之前,將修復前的規格作為參考傳入: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex +``` + +修復保護機制會在使用輸出結果之前,先利用 `createCircuitTopologySignature` 與 `assertCircuitTopologyUnchanged` 來比對 `circuitKind`、`goldenReferenceId`、網路結構、元件識別碼/類型/端點,以及無向連線的端點。標籤、標題文字、佈局提示、連線順序和連線標籤都會被刻意忽略。若某個候選方案添加了過短的連線或重新接續了端點,就會在 `.tex` 檔案被寫入之前因 `Circuit topology drift detected` 而失敗。 + +現在 CLI 可以在不執行編譯器的情況下,解析現有的 LaTeX/TikZJax 編譯日誌: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --diagnostics-output cmos-inverter.diagnostics.json +``` + +此診斷路徑會報告缺失的套件,例如 `circuitikz.sty`,以及未知的 TikZ/circuitikz 關鍵字;還會顯示 TikZ 路徑語法錯誤,如缺少分號、因括號不平衡或標籤未結束而產生的多餘參數、未定義的控制序列、一般性的 LaTeX 錯誤、緊急停止狀況,以及提醒性的 `\hbox` 檔案過滿警告。此功能仍以日誌為主:本地的 LaTeX/TikZJax 執行與螢幕截圖品質檢查仍屬於未來的獨立開發工作。 + +用於維護人員的簡易測試時,相同的 CLI 可選擇性地在不進行殼層指令解析的情況下,執行明確設定的渲染器: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +編譯執行器會使用 `shell: false`,將 `{tex}`、`{outputDir}` 與 `{jobName}` 這些佔位符轉換為參數陣列的值,讀取所產生的 `{jobName}.log`,並在 CLI JSON 的輸出中傳回 `compileExecution` 以及 `compileDiagnostics`。 `--compile-executable` 只是渲染器的二進位檔或封裝檔的路徑;渲染器相關的旗標則應放在重複的 `--compile-arg` 值中。空的執行檔會以 `compile-executable-invalid` 的形式失敗,缺少二進位檔的則會以 `compile-executable-not-found` 的形式失敗,而呈現為殼層指令形式的執行檔字串則會被建議將參數拆分,如此 Windows、Linux 與 macOS 才能遵循相同的直接執行規範。透過 `--expected-artifact`,它還會報告 `compileExecution.renderSmoke` 的狀態,若渲染器無法產生非空的輸出成果,就會讓 CLI 失敗。此外,它仍不會將 LaTeX 檔案打包進去,也不會讓 TikZJax 成為外掛程式的執行時依賴項,更不會進行螢幕截圖層級的視覺修復。 + +如果預期的產物是 `.svg`,那麼煙霧測試會再深入一層: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --output cmos-inverter.tex --compile-executable dvisvgm --compile-arg ... --expected-artifact {outputDir}/{jobName}.svg --expected-svg-text v_{in} --expected-svg-text v_{out} +``` + +SVG smoke 會驗證 `<svg>` 的根節點、正值尺寸或 `viewBox`,在排除隱藏/透明元素後至少還有一個可見的繪圖元素、所有要求的文字代碼、位於 `viewBox` 外的可見元素、位置重疊的明顯 `<text>` / `<tspan>` 標籤,以及透過 `render-svg-label-overlap` 與繪圖元素重疊的明顯文字標籤。預期的文字會在可見文字及解碼後的無障礙元數資中搜尋,例如 `aria-label`、`<title>` 和 `<desc>`,如此即使渲染器只在可見的 `<text>` 外保留語意標籤,仍可在不使用 OCR 的情況下通過文字代碼的 smoke 測試。現在的幾何檢查會考慮常見群組與元素 `transform` 屬性所帶來的變換效果,因此經過轉換、縮放、旋轉、傾斜或矩陣變換的 SVG 方框都會在變換合併後被檢查。它涵蓋 A/a 槓端點的精確弧線範圍、C/S/Q/T 曲線端點的精確貝氏曲線範圍、考慮筆觸寬度的 SVG 範圍與標籤重疊檢查、`polyline` / `polygon` 的繪圖幾何特性,同時也能從 `<use href="#...">` 參考資料中解決僅由路徑構成的字型位置問題,如此即使轉換後的字型幾何超出 `viewBox` 的範圍,仍可能無法通過有限畫布的檢查。位於同一個 `<text>` 父節點下的多個 `tspan` 標籤會被視為不同的標籤方框進行比對,這樣就能偵測到原本可能將多個獨立標籤合併為一個文字節點的 LaTeX 風格 SVG 輸出。定位的 SVG `text` 和 `tspan` 方框會遵守 `text-anchor` 的值 `start`、`middle` 和 `end`,因此居中或右對齊的標籤仍能觸發文字/文字與標籤之間的重疊診斷,而不需要依賴瀏覽器級的文字排版功能。位於 `<defs>` 內僅用於定義的字型路徑不會被視為可見的繪圖元素,但它們自身的定義內部 `transform` 屬性仍會在 `<use>` 放置之前被套用,如此經過縮放或鏡像處理的字型定義也不會被少計。標籤與繪圖的檢查會使用較小的繪圖方框容差以及所宣告的 `stroke-width`,因此細線、粗線及多邊形組件輪廓,只要其可見筆觸達到標籤位置,都可能被視為影響標籤可讀性的問題。從 `<use href="#...">` 解析而來的僅由路徑構成的字型標籤也會與繪圖方框進行比對,若可重用的字型幾何與線條或組件重疊,就會以 `render-svg-path-glyph-overlap` 的方式失敗。如果渲染器將標籤轉換為可重用的路徑字型,而非可搜尋的 `<text>`,且未保留無障礙元數資,則 smoke 報告會記錄 `pathOnlyGlyphUseCount`,並透過 `render-svg-text-path-only` 使要求的文字代碼失敗,而非假裝該標籤根本不存在。其他失敗情況則會透過 `render-svg-invalid`、`render-svg-dimension-missing`、`render-svg-no-visible-elements`、`render-svg-text-missing`、`render-svg-out-of-bounds`、`render-svg-text-overlap`、`render-svg-label-overlap` 或 `render-svg-path-glyph-overlap` 來報告。對於那些將標籤保留為可搜尋的 SVG 文字或無障礙元數資的渲染器而言,文字代碼與重疊檢查僅應被視為結構性的 smoke 測試;僅由路徑構成的 SVG 輸出仍需要後續的截圖/OCR 驗證來證明標籤的視覺可讀性,且此 smoke 測試也不會聲稱已完整覆蓋所有 SVG 路徑。 + +在計算可見元素數量及收集幾何資訊時,隱藏的 SVG 群組和元素會一致地被跳過。屬性或內聯樣式 `display:none`、`visibility:hidden`、`visibility:collapse`,以及整體的 `opacity:0` 都無法讓本應為空的渲染結果通過可見輸出的檢測。 + +僅包含路徑的字形定義可以是直接的路徑,或是位於 `<defs>` 內的群組/符號容器。在進行 `<use>` 的放置之前,煙霧過濾步驟會先從 `<g id="...">` 和 `<symbol id="...">` 解析出子路徑的幾何資訊,因此經過包裝的字形輸出仍會傳送給 `pathOnlyGlyphUseCount`、邊界畫布檢查以及 `render-svg-path-glyph-overlap`。 + +路徑解析器也會追蹤子路徑的起始點,並在 `Z/z` 處重設目前的位置,如此一來,在封閉的子路徑之後的相對指令就能從正確的 SVG 位置繼續執行,而不會產生錯誤的 `render-svg-out-of-bounds` 診斷結果。 + +相同的幾何處理步驟會遵循 SVG 數字格式規則,包括小數點前的點號以及明確的加號,因此像 `.5`、`-.5` 或 `+.5` 這樣的簡潔 dvisvgm 座標在範圍檢查時仍保持分數形式,不會變成錯誤的越界幾何資料或被跳過。 + +如果渲染器產生 `.png`,相同的預期輸出路徑就會成為第一張截圖的檢查對象: Notemd 可解碼非隔行式的 1/2/4/8 位元索引顏色 PNG 檔案、1/2/4/8/16 位元灰階 PNG 檔案,以及 8/16 位元灰階-α/RGB/RGBA PNG 檔案。索引顏色及次位元灰階影像支援封裝樣本;索引顏色影像還支援 PLTE 與可選的 tRNS 數據;灰階/RGB 影像則支援用於透明樣本的 tRNS。16 位元的直接樣本會被轉換為與煙霧檢查所使用的相同 8 位元 RGBA 比對空間。此煙霧檢查會驗證正確的尺寸,將前景範圍記錄為 `foregroundBounds`,並將該範圍內的前景密度記錄為 `foregroundDensity`;若所有可見像素都與左上角的背景顏色相同則會以 `render-png-blank` 失敗,若前景內容觸及影像邊界則會以 `render-png-content-clipped` 失敗,若大型截圖中的前景像素少於四個則會以 `render-png-foreground-too-small` 失敗,若在非簡單的範圍框內前景像素密度異常高則會以 `render-png-foreground-dense` 失敗。不支援的 PNG 格式會以 `render-png-unsupported` 失敗,並針對 Adam7 隔行式 PNG 或不支援的索引顏色位元深度提供格式特定的說明。此方法能偵測出空白截圖、明顯的畫布裁切、渲染不足的前景痕跡、第一階段的像素過擠問題,以及錯誤的渲染器 PNG 導出設定,且無需依賴特定平台的指令行工具。但此功能尚不具備 OCR 級別的標籤辨識、精確的文字重疊檢測,或能保留影像拓撲結構的修復功能。 + +當診斷結果顯示編譯或 render-smoke 執行失敗時,CLI 也可以撰寫一份能保留拓撲結構的修復說明書: + +```bash +npm run diagram:export-circuitikz -- --input cmos-inverter.json --topology-reference cmos-inverter.json --output cmos-inverter.tex --compile-log cmos-inverter.log --repair-brief-output cmos-inverter.repair-brief.json +``` + +維修說明文件會使用結構方案 `notemd.circuitikz.repair-brief.v1`,並包含來源 `CircuitSpec`、拓撲簽章、編譯/渲染診斷結果、允許的編輯項目、禁止的拓撲編輯項目、後續驗證步驟,以及結構化的 `repairPrompt`。提示詞的角色為 `topology-preserving-circuitikz-repair`;其 `diagnosticFocus` 清單是根據編譯/渲染診斷結果所擬定,而其 `acceptanceCriteria` 則需要對候選方案進行驗證,並執行新的編譯與渲染測試。這是一種用於後續維修循環的資料傳遞格式,並不代表 Notemd 已經能夠自動執行視覺維修功能。 + +在產生修復建議後,相同的 CLI 可以在撰寫輸出結果之前,根據說明文件對其進行驗證: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex +``` + +`--repair-brief` 會根據簡報中的候選拓撲簽章進行檢查,且與 `--topology-reference` 互斥。通過此階段僅能證明拓撲結構已保留;候選版本仍需經過編譯診斷與 render-smoke 檢查。 + +`--repair-brief` 的結果還包含了具有 `notemd.circuitikz.repair-acceptance.v1` 構架的 `repairAcceptance` 證據。它會將 `topology-signature`、`compile-diagnostics` 和 `render-smoke` 這些閘道標示為 `passed`、`failed` 或 `missing`;揭露 `remainingChecks` 的內容;並在候選執行過程未包含所有必要證據之前,持續將 `readyForVisualAcceptance` 設定為錯誤狀態。 + +當 CI 或版本發布的證據需要一個耐久的 JSON 檔案時,請搭配使用 `--repair-acceptance-output` 與 `--repair-brief`: + +```bash +npm run diagram:export-circuitikz -- --input repaired-cmos-inverter.json --repair-brief cmos-inverter.repair-brief.json --output repaired-cmos-inverter.tex --repair-acceptance-output repaired-cmos-inverter.repair-acceptance.json +``` + +若需版本發布或維護者相關的證明,請將所有受支援的 golden family 透過 aggregate fixture runner 來執行: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --compile-executable pdflatex --compile-arg -interaction=nonstopmode --compile-arg -halt-on-error --compile-arg -output-directory={outputDir} --compile-arg {tex} --expected-artifact {outputDir}/{jobName}.pdf +``` + +該執行程式會使用 `docs/maintainer/fixtures/circuitikz/common-source-nmos-v1.json`、`docs/maintainer/fixtures/circuitikz/cmos-inverter-v1.json`、`docs/maintainer/fixtures/circuitikz/cmos-buffer-v1.json`、`docs/maintainer/fixtures/circuitikz/cmos-transmission-gate-v1.json`、`docs/maintainer/fixtures/circuitikz/cmos-nand2-v1.json` 與 `docs/maintainer/fixtures/circuitikz/cmos-nor2-v1.json`,對每個測試套件呼叫相同的無殼層匯出路徑,並回傳一份包含每個測試套件的 `compileExecution` 與 `compileDiagnostics` 資料的綜合 JSON 報告。它仍屬於維護者用命令,而非外掛程式的執行時依賴項目。 + +當維護用機器尚未配置渲染器時,執行相同的 fixture 命令但省略 `--compile-executable`,並明確儲存環境閘道設定: + +```bash +npm run diagram:smoke-circuitikz -- --output-dir docs/export/circuitikz-smoke --report-output docs/export/circuitikz-smoke/renderer-availability.json +``` + +該路徑仍會寫入確定的固定資產 `.tex` 相關檔案,但會傳回 `ok: false`,且 `rendererAvailability.status` 被設定為 `missing-configuration`,同時附有 `compile-executable-invalid` 的診斷資訊。僅將其視為渲染器可用性的證據;它並非用於編譯、render-smoke 測試或視覺驗收。 + +### Golden Reference Prompt Shape + +對於短期使用,請在要求不同的電路變體之前,先提供可呈現的黃金參考版本。受限的提示詞應保留前言、座標比例、定位樣式以及佈線規範: + +```latex +\usepackage{circuitikz} +\begin{document} +\begin{circuitikz}[american voltages] +\draw + (3,5) node[vcc]{$V_{DD}$} + to [R, l=$R_D$] (3,3) + to [short, *-o] (5,3) node[right]{$v_{out}$} + (3,3) to [short] (3,2.2) + node[nmos, anchor=D] (M1) {$M_1$} + (M1.S) to [short] (3,0.5) + node[ground]{} + (M1.G) to [short, -o] (0.8,2.2) + node[left]{$v_{in}$}; +\draw + (3,0.5) node[below right]{$S$}; +\end{circuitikz} +\end{document} +``` + +對於 CMOS 反相器,提示語應要求明確的拓撲結構與佈局限制,而非僅要求「繪製一個 CMOS 反相器」: + +- 將 `VDD` 保持在最上方,`GND` 保持在最下方,輸入在左側,輸出在右側; +- 在 `nmos` 上方使用 `pmos`,並採用共享閘極與共享漏極的結構; +- 將輸出節點保持在漏極接合處,並以 `*-o` 標記它。 +- 使用命名錨點(`PM1.G`、`NM1.G`、`PM1.D`、`NM1.D`)來取代視覺上推斷出的座標。 +- 除非電氣設計上有要求,否則應避免使用對角線或交叉的電線。 + +### 目前的進度與後續階段 + +| 面積 | 目前狀態 | 下一步動作 | +|------|----------------|-----------| +| 一般圖表 | 已為 Mermaid、JSON Canvas、Vega-Lite、HTML 實作以規格優先的處理流程 | 持續擴大語意驗證的覆蓋範圍 | +| 可編輯的圖表 | 已實作 `editable-html-svg`、Draw.io XML 以及 Drawnix JSON 的工件邊界。 | 只有在測試證明可編輯之後,才加入更豐富的原始元素 | +| CLI 支援功能 | `npm run diagram:export-artifact` 會從一個 `DiagramSpec` 導出可編輯的 HTML/SVG、Draw.io 與 Drawnix | 當新的目標版本發布時,加入針對該目標的煙霧裝置。 | +| circuitikz | `CircuitSpec -> circuitikz` 原型會匯出 common-source、CMOS 非反相器、`cmos-buffer` / `cmos-buffer-v1`、`cmos-transmission-gate` / `cmos-transmission-gate-v1`、`cmos-nand2` / `cmos-nand2-v1` 以及 `cmos-nor2` / `cmos-nor2-v1` 這些金標準模板,並將專案 `layoutHints.inputSide` 與 `layoutHints.outputSide` 轉換為確定的輸入/輸出接點配置,且不會改變拓撲結構;透過 `--topology-reference` 拒絕因拓撲偏移而產生的修復需求,並透過 `--repair-brief-output` 與架構 `notemd.circuitikz.repair-brief.v1` 產生能保留拓撲結構的修復說明文件;其中還包含結構化的 `repairPrompt` 交接內容,並附有 `diagnosticFocus`、`acceptanceCriteria` 與角色 `topology-preserving-circuitikz-repair` 的相關資訊;透過 `--repair-brief` 驗證各個修復候選方案,並透過架構 `notemd.circuitikz.repair-acceptance.v1` 伴隨 `readyForVisualAcceptance` 與 `remainingChecks` 回傳 `repairAcceptance` 關於閘極的證據,且會透過 `--repair-acceptance-output` 保存該等證據;能解析編譯日誌,可執行明確的本機渲染器以及 `--expected-artifact`、SVG `--expected-svg-text`,並透過 `aria-label`、`<title>` 與 `<desc>` 進行無障礙性元資料檢查;可排除隱藏/透明型態的 SVG 元素,對僅包含路徑的標籤進行 `render-svg-text-path-only` / `pathOnlyGlyphUseCount` 分類,針對 `<use href="#...">` 進行僅含路徑的圖形放置檢查,透過 `render-svg-path-glyph-overlap` 進行僅含路徑的圖形重疊診斷,為 `Z/z` 處理閉合路徑的電流點問題,為 A/a 曲線的極值點確定精確的弧線範圍,為 C/S/Q/T 曲線的極值點確定精確的貝氏曲線範圍,進行考慮筆觸寬度的 SVG 範圍檢查以及標籤重疊檢查,進行 `polyline` / `polygon` 的繪圖幾何形狀檢查,處理已定位的 `tspan` 標籤幾何形狀,以及考慮 `text-anchor` 的已定位文字幾何形狀;還有為 SVG 有限範圍畫布/文字重疊以及標籤與繪圖之間的問題而設的、考慮變換效果的幾何形狀處理機制,並透過 `render-svg-label-overlap` 進行 PNG 非空白/裁切/密集前景的截圖檢查;其中還包含索引顏色調色板的透明度資料、灰階/RGB tRNS 透明樣本,以及針對 Adam7 交錯式 PNG 與索引位元深度故障所設的格式特定 `render-png-unsupported` 指引,且所有這些功能皆透過 `foregroundBounds`、`foregroundDensity`、`render-png-content-clipped` 與 `render-png-foreground-dense` 完成,無需進行殼層解析;此外還包含用於綜合測試的維護人員專用測試套件,透過 `npm run diagram:smoke-circuitikz` 記錄缺失的渲染器設定資訊,並透過 `rendererAvailability.status: "missing-configuration"` 與 `compile-executable-invalid` 進行相關記錄,同時還具備通用預覽診斷功能、診斷摘要統計數據、考慮診斷結果的歷史記錄,以及透過 `RenderArtifact.diagnostics` 與預覽模式實現的僅使用原始資料的備用方案。 | 為僅包含路徑的視覺文字加入 OCR 級別的標籤辨識功能,實現精確的像素級重疊檢查,在需要時擴大 SVG 路徑的覆蓋範圍;僅在仍可保持選用性的情況下自動安裝或偵測渲染器,並自動執行能保留拓撲結構的修復作業。 | +| TikZJax 整合 | 用於 Obsidian 端顯示的候選渲染主機 | 保持其為選用項;不要讓 TikZJax 成為必須的插件運行時依賴項。 | + +## 設定 + +| 設定 | 預設值 | 效果 | +|---------|---------|--------| +| `enableExperimentalDiagramPipeline` | `false` | 在 spec-first 與 legacy Mermaid 之間切換 | +| `experimentalDiagramCompatibilityMode` | `'legacy-mermaid'` | `'legacy-mermaid'` 只能是 Mermaid;`'best-fit'` 為原生目標加上備用選項 | +| `preferredDiagramIntent` | `undefined` (自動) | 覆寫自動意圖偵測功能 | +| `summarizeToMermaidLanguage` | `'en'` | 圖表標籤的目標語言 | +| `summarizeToMermaidProvider` / `Model` | DeepSeek | 每個任務的 LLM 用於圖表生成 | +| `autoMermaidFixAfterGenerate` | (來自常數) | 在 Mermaid 的輸出上自動執行舊版修復工具 | +| `enableLocalKnowledgeForDiagramGeneration` | `false` | 以本地金庫的知識來增強來源資料 | + +### 本地知識增強 + +啟用後,Notemd會從您的保險庫本地知識庫(基於MiniSearch)中取得相關的上下文片段,並將其加在原始Markdown文件的前面。該增強提示中寫明:「僅作參考之用;請保持原始內容的結構完整無缺。」 + +### 相容模式 + +- **`legacy-mermaid`**:所有意圖都會傳送至 Mermaid。非 Mermaid 意圖(canvasMap、dataChart)將強制轉發至 `flowchart` 或 `mindmap`。沒有備用處理鏈路。 +- **`best-fit`**:每個意圖都會傳送至其對應的原始目標。若主要目標失敗,則會沿用備用鏈路繼續處理(例如:Vega-Lite → Mermaid → HTML)。 + +## 預覽與匯出 + +| 動作 | 方法 | +|--------|--------| +| SVG export | Canvas 的 `mermaid.render()` / `vega.View.toSVG()` / SVG 建構工具 | +| PNG 實體化 | SVG → 圖像 → 畫布(裝置像素比 1x-3x)→ PNG ArrayBuffer | +| 來源儲存 | 以目標系統專用的副檔名儲存的原始工件內容 | +| 僅來源預覽 | 非內聯的物件,其原始內容以程式碼形式顯示並附上診斷資訊,且不會透過 iframe 來呈現 | +| 語意審計 | Mermaid、JSON Canvas、Vega-Lite,以及可編輯的 HTML/SVG,已由 `scripts/diagram-semantic-verification.js` 檢查過 | + +**快取**:RenderCache 會使用 `{spec, target, theme}` 的確定性 JSON 金鑰。在處理過程中的去重機制可避免產生重複的渲染結果。 + +## 技巧 + +- **從 `best-fit` 模式開始** — 這能為每種意圖類型產生最佳的視覺輸出效果 +- **運用強大的模型處理複雜的圖表** — 流程圖和 ER 圖能從 GPT-4o 或 Claude 中獲益 +- 為領域專屬的圖表**啟用本地知識**——相關的保險庫上下文可提升精確度 +- **設定 `autoMermaidFixAfterGenerate`** — 若沒有它, Mermaid 的語法錯誤就很容易出現 +- **舊版修復工具相當全面** — 如果 Mermaid 的預覽失敗,手動執行修復命令通常就能解決問題 + +--- + +## 接下來的步驟 + +- 🔗 [Wiki-連結](./wiki-links) — 概念如何以內聯方式相互連結 +- 📝 [概念筆記](./concept-notes) — 提取用於圖表原始資料的各項概念 +- 🔍 [研究](./research) — 以網路取得的資料來增強圖表 diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/features/research.mdx b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/features/research.mdx new file mode 100644 index 00000000..2985f48b --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/features/research.mdx @@ -0,0 +1,125 @@ +--- +id: research +title: "研究與網路搜尋" +description: "將網路搜尋整合到您的筆記中" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [research, web search, Tavily, DuckDuckGo, summarization] +concepts: [Web Research, Tavily, Search Integration, Summarization] +citations: + - title: Tavily API + url: https://tavily.com + - title: DuckDuckGo + url: https://duckduckgo.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# 研究與網路搜尋 + +<TLDR> +**Notemd 會上網搜尋,並將經 LLM 總結的結果直接插入您的筆記中。** Tavily API 是主要的搜尋後端;DuckDuckGo 則是用作無需設定的備用方案。結果會附上出處引用並以 `## Research` 標題呈現在下方。支援單筆筆記研究、批次資料夾研究,以及為總結步驟選擇不同的模型。 + +這是[Obsidian AI知識管理指南](/docs/pillar-ai-knowledge)的一部分。 +</TLDR> + +## 概覽 + +Research 是 Notemd 最強大的整合功能之一:它將閱讀、搜尋與撰寫這三個步驟串聯起來。您不必切換到瀏覽器去查詢不熟悉的詞彙,只需將其標記出來,讓 Notemd 進行搜尋、摘要整理並附加結果——所有操作都在您的資料庫內完成。 + +此流程可完全自訂。您可以選擇搜尋服務供應商、用來撰寫摘要的 LLM,以及是要將結果附加到目前的筆記中,還是寫入獨立的檔案中。批次模式讓您只需按一下即可同時處理資料夾中的所有筆記。 + +## 它是如何運作的 + +### 搜尋後摘要化流程 + +```mermaid +graph LR + A[User Selection or Note] --> B[Extract Query] + B --> C{Tavily Available?} + C -->|Yes| D[Tavily API Search] + C -->|No| E[DuckDuckGo Fallback] + D --> F[Raw Search Results] + E --> F + F --> G[LLM Summarization] + G --> H[Formatted Summary + Citations] + H --> I[Append to Note] +``` + +1. **查詢提取** -- Notemd 會從您的選項或筆記標題中提取搜尋詞彙。 +2. **網路搜尋** -- 會先嘗試 Tavily。如果未設定 API 金鑰,則會自動使用 DuckDuckGo(不需要金鑰)。 +3. **LLM 摘要生成** -- 原始搜尋結果會被傳送至已設定的 LLM,由其產生並附上內文引用資料的簡潔摘要。 +4. **Append** -- 格式化後的摘要會被附加在活躍筆記中的 `## Research` 標題下方。 + +### Tavily 與 DuckDuckGo 的比較 + +| 面向 | Tavily | DuckDuckGo | +|--------|--------|------------| +| API 金鑰 | 必須使用(提供免費方案) | 不需要 | +| 結果品質 | 更高階(專為 AI 設計) | 適合用於一般查詢 | +| 速率限制 | 豐厚的免費方案 | 可能會受到流量限制 | +| 設定 | 設定中的 `tavilyApiKey` | 零設定 -- 自動回退 | + +### 批次資料夾研究 + +在資料夾上按右鍵,然後選擇 **“Notemd: Research folder”**。資料夾中的每個 `.md` 檔案都會依序被處理(或根據所設定的同時處理數量以平行方式處理)。每則筆記都會有屬於它自己的研究摘要。 + +## 設定 + +| 設定 | 預設值 | 效果 | +|---------|---------|--------| +| `tavilyApiKey` | `''` | Tavily API 金鑰。若為空值,則僅使用 DuckDuckGo。 | +| `researchProvider` / `researchModel` | DeepSeek | 每個任務的 LLM 用於摘要化搜尋結果 | +| `maxResearchContentTokens` | `4000` | 傳送至 LLM 的內容的 Token 預算。超出的部分會被截斷。 | +| `researchAppendToNote` | `true` | 將摘要附加到原始筆記中。若設定為 false,則會建立一個獨立的檔案。 | +| `researchLanguage` | `'en'` | 摘要研究的輸出語言 | + +### 任務別模型推薦 + +研究能從能處理多語言內容並產出結構良好的散文模型中受益。請考慮: + +- **DeepSeek** -- 預設型號,性價比高,品質優良 +- **GPT-4o** -- 更高品質的摘要功能,但成本也更高 +- **Gemini Flash** -- 快速且價格實惠,適合處理簡單的查詢需求 + +## 範例 + +你正在閱讀一篇關於*transformer attention mechanisms*的論文,卻遇到了一個不熟悉的術語:*relative positional encoding*。而非直接留下 Obsidian: + +1. 標出 **「相對位置編碼」** +2. 按右鍵 --> **"Notemd: 研究並總結"** +3. Notemd 會在網路上搜尋,總結最優秀的結果,並附加: + +```markdown +## Research + +### Relative Positional Encoding + +Relative positional encoding is a method used in transformer models +where positional information is expressed as relative distances between +tokens rather than absolute positions. Introduced by Shaw et al. (2018), +it improves generalization to unseen sequence lengths compared to +absolute encodings (Vaswani et al., 2017). + +Sources: +- [Shaw et al., Self-Attention with Relative Position Representations (2018)](https://arxiv.org/abs/1803.02155) +- [Transformer Positional Encoding Overview](https://example.com/transformer-pos-enc) +``` + +摘要現在已儲存在您的保險庫中,可搜尋、可建立連結,且可在離線狀態下存取。 + +## 技巧 + +- **設定 Tavily 金鑰以獲得最佳結果** -- 就連免費方案所提供的相關性也優於原始的 DuckDuckGo。 +- **使用功能強大的摘要模型** -- 廉價的模型可能會將細膩的技術內容簡化。 +- 在初步瀏覽之後進行**批次研究**,一次填補多份筆記中的空白。 +- **檢視附加的摘要** -- LLMs 可能會產生對來源詳細資料的錯誤描述,請核實其中的關鍵主張。 + +--- + +## 接下來的步驟 + +- [概念說明](./concept-notes) -- 從研究結果中提取並儲存關鍵詞彙 +- [Wiki-Links](./wiki-links) -- 將研究所得的概念連結至您的資料庫中 +- [翻譯](./translation) -- 將研究摘要翻譯成其他語言 +- [LLM 提供商](/docs/providers/overview) -- 設定用於摘要生成的模型 diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/features/translation.mdx b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/features/translation.mdx new file mode 100644 index 00000000..2ac47fc3 --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/features/translation.mdx @@ -0,0 +1,123 @@ +--- +id: translation +title: "翻譯" +description: "翻譯筆記與選取內容" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [translation, languages, i18n, batch translation] +concepts: [Translation, Multi-Language, Batch Processing] +citations: + - title: DeepSeek API + url: https://platform.deepseek.com + - title: Google Translate API + url: https://cloud.google.com/translate +--- + +import TLDR from '@site/src/components/TLDR'; + +# 翻譯 + +<TLDR> +**Notemd** 可透過 LLM 提供的翻譯技術,將文字在 21 種以上語言之間互相轉換。支援單筆選取翻譯、整篇內容翻譯以及批次資料夾翻譯。每個翻譯任務皆可透過個別設定,使用專屬的供應商與模型。輸出語言可獨立於 UI 語言進行設定。根據您的需求,結果會被附加在原文件後,或寫入新的檔案中。 + +這是[Obsidian AI知識管理指南](/docs/pillar-ai-knowledge)的一部分。 +</TLDR> + +## 概覽 + +Notemd 中的翻譯並非透過字典查詢完成——而是由 LLM 驅動、具備情境感知能力的翻譯。模型能完整理解整段文字或筆記,從而保留原文的語氣、專業術語及句子結構。這種方式所產生的成果品質遠高於逐字翻譯的服務,尤其適用於技術、學術及創意寫作領域。 + +此功能支援三種範圍:選取內容、目前開啟的筆記,以及整個資料夾。結合每個任務的模型選擇機制,您可以在不更換全局供應商的情況下,使用快速模型(Gemini Flash)進行一般性翻譯,或使用強大模型(Claude Sonnet)處理需要細膩表達的內容。 + +## 它是如何運作的 + +### 翻譯指令 + +```mermaid +graph LR + A[User selects text or note] --> B[Determine source language] + B --> C[Build translation prompt] + C --> D[LLM translates with context] + D --> E[Parse translated text] + E --> F{Append or new file?} + F -->|Append| G[Insert after selection] + F -->|New file| H[Write translated .md] +``` + +1. **來源偵測** -- LLM 會根據內容自動推斷出來源語言,您無需手動指定。 +2. **提示詞構建** -- Notemd 會建立一個包含目標語言、可選的領域提示,以及待翻譯內容的提示詞。 +3. **LLM 翻譯** -- 已設定的 `translateProvider` / `translateModel` 會處理該請求。此模型能保留 Markdown 格式、維基連結以及程式碼區塊。 +4. **輸出** -- 翻譯後的文字會附加在原文中下方,或寫入金庫中的新檔案中。 + +### 語言對組 + +Notemd 可支援底層 LLM 所支援的任何語言組合。常見的組合包括: + +| 來源 | Target | 典型品質 | +|--------|--------|----------------| +| 英文 | 簡體中文 | 非常棒 | +| 漢語 | 英文 | 非常棒 | +| 英文 | 日文 | 非常好 | +| 英文 | 德文 / 法文 / 西班牙文 | 非常好 | +| 任何受支援的 | 任何受支援的 | 模型相依性 | + +`translateLanguage` 的設定用來控制**輸出語言**。原始語言會自動偵測。 + +### 每任務模型選擇 + +不同模型的翻譯品質差異很大。Notemd 可讓您專為翻譯任務指定特定的模型: + +| 型號 | 速度 | 品質 | 成本 | 最適用於 | +|-------|-------|--------|------|----------| +| `gemini-2.0-flash-exp` | 快速 | 不錯 | 低 | 隨性、高產量 | +| `gpt-4o-mini` | 快速 | 不錯 | 低 | 快速查詢 | +| `deepseek-chat` | 中號 | 不錯 | 非常低 | 預算多語言版 | +| `claude-3-5-sonnet` | 中號 | 非常棒 | 中號 | 技術 / 學術 | +| `gpt-4o` | 中號 | 非常棒 | 中號 | 注重細微差異的散文寫作 | + +### 批次資料夾翻譯 + +在資料夾上按右鍵,選擇 **"Notemd: Translate folder"** 即可翻譯該資料夾中的所有筆記。每個檔案都會被獨立處理。併發設定用來控制同時翻譯的檔案數量。 + +## 設定 + +| 設定 | 預設值 | 效果 | +|---------|---------|--------| +| `translateProvider` / `translateModel` | DeepSeek | 專門用於翻譯任務的供應商 | +| `translateLanguage` | `'en'` | 目標輸出語言 | +| `translationAppendToNote` | `true` | 在原文字下方附加翻譯內容。若為 false,則建立新檔案。 | +| `batchConcurrency` | `3` | 批次翻譯時同時處理的檔案數量 | + +## 範例 + +您正在閱讀一份中文研究報告,希望獲得其英文版本: + +1. 打開筆記 +2. 按右鍵 --> **"Notemd: 翻譯目前檔案"** +3. Notemd 會偵測中文,並翻譯成您所設定的目標語言(英文),之後再附加: + +```markdown +## Translation (English) + +The experimental results show that the proposed method achieves +a 12% improvement in F1 score compared to the baseline, primarily +due to the enhanced feature extraction module described in Section 3. +``` + +翻譯內容上方的原始中文文字保持不變。`## Translation` 標題讓兩個版本能存在同一個檔案中,以便參考。 + +## 技巧 + +- **使用 Gemini Flash 進行大量翻譯** -- 這是對大型資料夾進行批次翻譯時最快且最便宜的選項。 +- **保留維基連結** -- Notemd 的指示要求 LLM 在翻譯時保持 `[[wiki-links]]` 完整不變。翻譯完成後請再次確認,因為有些模型有時會將其解包。 +- **明確設定輸出語言** -- 來源語言可自動偵測,但請務必設定 `translateLanguage`,以避免對目標語言產生歧義。 +- **批次翻譯概念說明文件** -- 如果您的概念資料夾是某種語言,而您需要它轉換成另一種語言,則可透過資料夾層級的翻譯功能一步完成。 + +--- + +## 接下來的步驟 + +- [研究](./research) -- 以任何語言進行搜尋與摘要整理,再翻譯結果 +- [工作流程](./workflows) -- 透過維基連結或概念抽取進行串聯翻譯 +- [批次處理](/docs/advanced/batch-processing) -- 資料夾操作的同時執行與覆寫行為 +- [LLM 提供商](/docs/providers/overview) -- 選擇適合您語言對的最優模型 diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/features/wiki-links.mdx b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/features/wiki-links.mdx new file mode 100644 index 00000000..cf6d41ef --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/features/wiki-links.mdx @@ -0,0 +1,319 @@ +--- +id: wiki-links +title: "Wiki-連結" +description: "關鍵概念的自動維基連結生成" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [wiki-links, linking, concepts, knowledge graph, Auto Link alternative, obsidian auto link, AI wiki-link] +concepts: [Wiki-Links, Knowledge Graph, Concept Extraction, Synonym Suppression, Obsidian, Auto Link Alternative, AI Linking] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Auto Link Plugin + url: https://github.com/ov7a/obsidian-auto-link +--- + +import TLDR from '@site/src/components/TLDR'; + +# Wiki-連結 + +<TLDR> +**Notemd**會自動在您筆記中的關鍵概念後加上`[[wiki-links]]`。LLM會讀取您的內容,辨別上下文中的重要詞彙,並在每個出現的位置插入 Obsidian 風格的維基連結。亦可選擇建立帶有反向連結的概念筆記檔案。它支援同義詞過濾、重新命名或刪除時的連結完整性保護,以及純粹的提取模式(不修改檔案)。與僅能匹配現有筆記標題的 Auto Link 不同,Notemd會運用 AI 來辨別新概念並建立相對應的筆記。此功能屬於[Obsidian AI知識管理指南](/docs/pillar-ai-knowledge)的一部分。 +</TLDR> + +## 概覽 + +維基連結是 Notemd 的核心功能。它透過以下方式將純文字轉換為相互連結的知識圖譜: + +1. 使用 LLM **分析您的筆記** +2. **辨別關鍵概念**(術語、人物、方法、理論) +3. 在每個出現的位置插入 `[[wiki-links]]` +4. **建立概念說明文件**(可選),並附上反向連結 + +## 它是如何運作的 + +### 處理 + +```mermaid +graph LR + A[Your Note] --> B[LLM Analysis] + B --> C{Concepts Found} + C --> D[Insert Wiki-Links] + C --> E[Create Concept Notes] + D --> F[Updated Note] + E --> F + F --> G[Connected Knowledge Graph] +``` + +### 範例 + +**之前:** +```markdown +Machine learning models use neural networks to learn patterns from data. +The transformer architecture revolutionized natural language processing. +``` + +**完成後:** +```markdown +[[Machine learning]] models use [[neural networks]] to learn patterns from data. +The [[transformer architecture]] revolutionized [[natural language processing]]. +``` + +## 使用說明 + +### 基本:新增連結到目前筆記 + +1. 打開筆記 +2. 在編輯器中按右鍵 → **「處理檔案(新增連結)」** +3. 請稍等幾秒鐘。 +4. 概念現在已經連結了! + +### 批次處理:同時處理多個筆記 + +1. 在檔案總管中按右鍵選取資料夾 +2. 選擇 **"Notemd: 處理資料夾(新增連結)"** +3. 設定: + - 同時執行數(可平行處理的檔案數量) + - 覆寫現有連結(是/否) +4. 點擊 **Process** + +### 選擇性:連結特定文字 + +1. 標出要處理的文字 +2. 按右鍵 → **「處理選項(新增連結)」** +3. 僅分析高亮顯示的部分 + +## Notemd 與自動連結的比較 + +Obsidian 有兩種自動建立維基連結的方法: + +| | **自動連結** | **Notemd** | +|--|---------------|-------------| +| 連結來源 | 保險庫中現有的筆記標題 | LLM-內容中辨識出的概念 | +| 可以連結新概念 | 不行——標題必須已經存在 | 是的——AI能辨別概念並建立筆記 | +| 同義詞處理 | 沒有 | 是的 — 同義詞抑制 | +| 概念說明書的撰寫 | 沒有 | 是的——包含反向連結與去重功能 | +| 批次處理 | 否(單一檔案) | 是(資料夾層級) | +| 每任務模型路由 | 沒有 | 是的 | + +**Auto Link** 是以標題為匹配依據:如果存在名為「Machine Learning」的筆記,它會將其中的出現內容包裝在 `[[Machine Learning]]` 中。如果該筆記不存在,則不會有任何動作。 + +**Notemd** 是由人工智慧驅動的: LLM 會閱讀您的內容、理解上下文、辨別出*應該*建立連結的概念——即便目前還沒有相關筆記——並同時生成連結與概念筆記。 + +## 功能特色 + +### 同義詞抑制 + +**問題:** "transformer", "transformers", "Transformer architecture" → 3個不同的概念 + +**解決方案:** Notemd 可偵測近乎重複的內容,並使用標準化格式。 + +**設定:** +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (0 = off, 1 = aggressive) +``` + +### 連結完整性 + +**當您重新命名概念說明時:** +- 所有維基連結都會自動更新(Obsidian 核心功能) +- 反向連結保持完整無損 + +**當您刪除概念說明時:** +- 連結仍然存在,但顯示為「未連結的提及」 +- 你可以從任何出現的案例重新建立。 + +### 純粹提取模式 + +**在不改變原內容的狀況下提取概念:** + +1. 按右鍵 → **「提取概念(不建立連結)」** +2. 概念說明書已建立 +3. 原始檔案未經修改 + +使用場景:處理只讀內容或最終草稿。 + +## 概念說明書撰寫 + +### 自動建立 + +**當啟用(預設值)時,Notemd 會建立:** + +```markdown +--- +tags: [concept, auto-generated] +created: 2026-06-13 +source: [[Original Note Name]] +--- + +# Machine Learning + +A branch of artificial intelligence that enables computers +to learn from data without explicit programming. + +## Occurrences in Your Vault + +- [[Original Note Name#Section]] +- [[Another Note#Header]] + +## Related Concepts + +- [[Neural Networks]] +- [[Deep Learning]] +- [[Supervised Learning]] +``` + +### 設定 + +**輸出資料夾:** +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**階層結構:** +``` +Settings → Output → Use Hierarchical Folders +If enabled: + papers/my-paper.md → papers/concepts/Concept.md +If disabled: + → concepts/Concept.md +``` + +**範本:** +``` +Settings → Output → Concept Template +Customize with variables: + {{concept}} — Concept name + {{description}} — LLM-generated description + {{backlinks}} — List of source notes + {{date}} — Creation date +``` + +## 進階選項 + +### 上下文視窗 + +**要傳送多少周圍的文字:** + +``` +Settings → Linking → Context Window +Options: Sentence | Paragraph | Full Note +Default: Paragraph +``` + +尺寸越大 = 精確度越高,成本也越高。 + +### 最小出現次數 + +**僅連結出現多次的概念:** + +``` +Settings → Linking → Min Occurrences +Default: 1 (link all) +``` + +設定為 2 或 3,以便聚焦於重複出現的主題。 + +### 排除模式 + +**跳過特定字詞:** + +``` +Settings → Linking → Exclude List +Example: note, idea, example, thing +``` + +防止過度連結一般術語。 + +### 自訂提示詞 + +**覆寫預設的 LLM 指令:** + +``` +Settings → Advanced → Custom Linking Prompt +Default: + "Identify key concepts, theories, methods, and technical + terms in the following text. Return as a list..." +``` + +根據特定領域的需求進行修改(例如:「聚焦醫學術語」)。 + +## 技巧與最佳實務 + +### ✅ 完成 + +- **處理字數超過 100 字的筆記** — 短篇筆記難以涵蓋完整概念 +- **使用強大的模型**以提升概念辨識能力(GPT-4o、Claude) +- **接受前請先審核** — 請確認建議的連結是否合理 +- **逐步建構** — 處理 5-10 個筆記,檢視圖表,調整設定 + +### ❌ 請勿 + +- **Over-link** — 并非每個名詞都需要連結 +- **反複處理草稿** — 概念可能會改變,請等待其穩定後再進行。 +- **忽略同義詞** — 啟用抑制功能,以避免出現「ML」與「Machine Learning」的差異 + +## 效能 + +### 速度 + +| 便條大小 | GPT-4o-mini | Claude Sonnet | Ollama (本地) | +|-----------|-------------|---------------|----------------| +| 500個字 | 2-3 秒 | 3-5 秒 | 5-10 秒 | +| 2000個字 | 5-8 秒 | 10-15秒 | 20-40 秒 | +| 5000字以上 | 分批處理(多次呼叫) | 分塊處理 | 分塊處理 | + +### 成本估算 + +**範例:使用 GPT-4o-mini 撰寫的 1000 字筆記** +- 輸入:約 1500 個令牌 +- 輸出結果:約 200 個 token +- 成本:約 $0.001 + +**批次處理 100 個筆記:** 約 $0.10 + +## 故障排除 + +### 未新增連結 + +**檢查:** +1. LLM 呼叫成功(設定 → 診斷) +2. 備註內容已足夠(>50個字) +3. 概念是技術性/具體的(而非僅指代詞) + +**試用:** +- 使用更強大的模型 +- 增加上下文窗口大小 +- 檢查 API 金鑰的有效性 + +### 連結過多 + +**解決方案:** +1. 增加最低出現次數(2或3次) +2. 將常見字眼加入排除清單中 +3. 使用攻擊性較低的模型 + +### 錯誤的連結概念 + +**修正內容:** +1. 對於特定領域,請使用自訂提示詞。 +2. 啟用同義詞抑制功能 +3. 手動審核並解除連結 + +### 重命名後連結會斷開 + +**這是正常的 Obsidian 行為。** + +要更新所有連結: +1. 將概念說明重新命名 +2. Obsidian 會自動將 `[[old]]` 更新為 `[[new]]` + +--- + +## 接下來的步驟 + +- 📖 [概念說明](./concept-notes) — 深入探討概念說明的撰寫方式 +- 🔍 [研究整合](./research) — 將連結功能與網路研究相結合 +- 🎨 [圖表](./diagrams) — 將您的知識圖譜視覺化 diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/features/workflows.mdx b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/features/workflows.mdx new file mode 100644 index 00000000..f1da4341 --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/features/workflows.mdx @@ -0,0 +1,142 @@ +--- +id: workflows +title: "工作流程" +description: "以一鍵按鈕串接多個任務" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [workflows, automation, one-click, chaining] +concepts: [Workflows, Task Chaining, Automation] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Obsidian API + url: https://docs.obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# 工作流程 + +<TLDR> +**Notemd 工作流程可將多個任務串聯成單一的一鍵操作。** 可使用簡易的 DSL 來定義如 `add-links > extract-concepts > research > diagram` 這樣的順序。工作流程會以側邊欄按鈕的形式出現,於目前的筆記或資料夾上執行整個流程。系統已內建預定義的工作流程;可在設定中建立自訂的工作流程。每個步驟都使用其專屬的單任務模型設定。 + +這是[Obsidian AI知識管理指南](/docs/pillar-ai-knowledge)的一部分。 +</TLDR> + +## 概覽 + +工作流程能消除逐一執行任務時的阻礙。不必右鍵點擊四次來添加連結、提取概念、查詢不熟悉的術語以及產生圖表,只要按一下側邊欄的按鈕,整個流程就會自動執行。Notemd 會負責處理順序安排、錯誤傳播以及進度報告。 + +工作流程是以輕量級的 DSL(領域特定語言)來定義的。它們存在於設定中,會以可按下的按鈕形式出現在 Obsidian 的側邊欄上,且可以套用到目前的筆記或整個資料夾上。 + +## 它是如何運作的 + +### 工作流程執行管道 + +```mermaid +graph LR + A[Sidebar Button Click] --> B[Parse DSL Definition] + B --> C[Resolve Task List] + C --> D[Execute Step 1] + D --> E{Step Succeeded?} + E -->|Yes| F[Execute Step 2] + E -->|No| G{Continue on Error?} + G -->|Yes| F + G -->|No| H[Abort Workflow] + F --> I[... Execute Remaining Steps] + I --> J[Progress Report / Toast] +``` + +1. **Parse** -- DSL 字串會依 `>`(或 `>`)分割成有序的任務識別碼清單。 +2. **Resolve** -- 每個識別碼都對應一個內部指令(add-links、extract-concepts、research、translate、diagram 等)。 +3. **執行** -- 步驟會依序運行。每個步驟都會使用其所設定的每任務供應商與模型。 +4. **錯誤處理** -- 若某個步驟失敗,工作流程會根據您的錯誤處理原則,選擇中斷或繼續執行下一個步驟。 +5. **完成** -- 一則提示通知會回報成功狀態,或列出任何失敗的步驟。 + +### DSL 格式 + +工作流程被定義為以 `>` 分隔的任務識別碼序列: + +``` +process-current-add-links>extract-concepts-current>research-and-summarize +``` + +**可用的任務識別碼:** + +| 識別碼 | 動作 | +|------------|--------| +| `process-current-add-links` | 在活躍筆記中加入維基連結 | +| `extract-concepts-current` | 從活躍筆記中提取概念 | +| `research-and-summarize` | 研究所選的文字或筆記標題 | +| `process-current-translate` | 翻譯活躍筆記 | +| `summarize-to-mermaid` | 根據目前的筆記生成圖表 | +| `generate-from-title` | 根據筆記標題產生內容 | +| `extract-original-text` | 提取原始文字(用於 OCR / 掃描內容) | + +**資料夾層級變體**會在識別名中將 `current` 替換為 `folder`。 + +### 預定義工作流程與自訂工作流程 + +Notemd 隨附適用於常見模式的預製工作流程: + +| 工作流程 | 鏈條 | 使用情境 | +|----------|-------|----------| +| **一次點擊提取** | add-links > extract-concepts > research | 一次處理完一篇研究論文 | +| **完整流程** | add-links > extract-concepts > research > 圖表 | 完整知識抽取並加以視覺化呈現 | +| **翻譯 + 連結** | 翻譯 > 加入連結 | 翻譯後在目標語言中建立連結概念 | + +**自訂工作流程**是在設定中建立的: + +1. 打開 **設定** --> **Notemd** --> **工作流程** +2. 點擊 **「新增工作流程」** +3. 輸入 DSL 連結串(例如:`process-current-add-links>extract-concepts-current`) +4. 給它一個顯示名稱(例如:「快速連結 + 提取」) +5. 新的按鈕會立即出現在側邊欄中。 + +## 設定 + +| 設定 | 預設值 | 效果 | +|---------|---------|--------| +| `workflows` | 預先定義的集合 | 工作流程定義的陣列(名稱 + DSL) | +| `workflowContinueOnError` | `true` | 若當前步驟失敗,請繼續執行下一個步驟 | +| `workflowShowProgress` | `true` | 在每個步驟完成後顯示進度提示框 | + +### 工作流程中的任務專用模型 + +工作流程中的每個步驟都使用其**自身**的單一任務模型設定。您不需要在 DSL 內部指定模型。解析順序為: + +1. 若 `useMultiModelSettings` 存在,則使用每任務的供應商/模型 +2. 全球 `activeProvider`,否則 + +這表示 `add-links` 可以在 DeepSeek 上運行,而 `research` 則在 GPT-4o 上運行——所有操作都在同一個工作流程按鈕中完成。 + +## 範例 + +您剛剛將一篇機器學習論文的 PDF 整體匯入您的保險庫,並希望進行完整的知識抽取: + +1. 打開已匯入的筆記 +2. 點擊 **「Full Pipeline」** 的側邊欄按鈕 +3. Notemd 執行: + - **步驟 1**:加入維基連結 -- `[[attention mechanism]]`、`[[transformer]]` 等。 + - **步驟 2**:提取概念 -- 在您的概念資料夾中建立概念筆記 + - **步驟 3**:資料搜集 -- 摘要關鍵字對應的網路資源 + - **步驟 4**:圖表生成 -- 產生一篇論文的 Mermaid 思維導圖,呈現其結構 +4. 大約 30 秒後,您的筆記將包含連結、概念說明已建立、研究內容已附加,且圖表檔案也會被儲存下來 + +只要一鍵,全部搞定。 + +## 技巧 + +- **從預先定義的工作流程開始** -- 它們涵蓋了最常見的模式。只有在需要不同的執行順序時,才進行自訂。 +- **啟用 `workflowContinueOnError`** -- 當圖表製作過程中的某個步驟失敗時,不應該中斷整個流程。 +- **使用資料夾工作流程**進行大量處理 -- 右鍵點擊資料夾,選擇一個工作流程,所有筆記都會被處理。 +- **明確命名工作流程** -- 側邊欄的空間有限。請使用簡短且具行動指向性的名稱,例如「快速提取」或「翻譯 + 連結」。 + +--- + +## 接下來的步驟 + +- [研究](./research) -- 在將其加入工作流程之前,先了解研究步驟的功能 +- [Wiki-Links](./wiki-links) -- 大多數工作流程中使用的核心連結功能 +- [概念說明](./concept-notes) -- 以工作流程步驟的形式進行概念抽取 +- [批次處理](/docs/advanced/batch-processing) -- 資料夾工作流程的併發處理與進度報告 diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx new file mode 100644 index 00000000..873cc8d9 --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/getting-started/configuration.mdx @@ -0,0 +1,435 @@ +--- +id: configuration +title: "設定" +description: "設定 Notemd 的參數與偏好選項" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [configuration, settings, customization, preferences] +concepts: [Configuration, Per-Task Models, Output Paths, Custom Workflows] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# 設定 + +<TLDR> +**Notemd** 的設定涵蓋 6 個主要領域:(1) LLM 提供者與 API 金鑰,(2) 每個任務的模型選擇,(3) 输出路徑與範本,(4) UI 語言與輸出語言,(5) 搜尋服務 (Tavily/DuckDuckGo),(6) 自訂工作流程。所有設定皆位於 Obsidian 設定 → Notemd 中。更改會立即生效。 +</TLDR> + +## 設定概覽 + +存取方式:**Obsidian 設定 (⚙️) → Notemd** + +### 主要章節 + +1. **供應商設定** — API 金鑰、基礎 URLs、模型 +2. **任務設定** — 每個任務的模型選擇 +3. **輸出設定** — 用於儲存產生的檔案的位置 +4. **語言設定** — UI 與輸出語言 +5. **搜尋整合** — Tavily/DuckDuckGo 設定 +6. **工作流程** — 自訂按鈕串聯 +7. **進階** — 診斷、批次處理、分塊處理 + +--- + +## 1. 供應商設定 + +### 新增供應商 + +1. 從下拉式選單中選擇供應商(有 30 頭以上可供選擇) +2. **輸入 API 鍵** +3. **可選**:設定自訂基礎 URL(用於代理伺服器/閘道) +4. **按一下「取得模型清單」**以確認連線狀態 +5. **選擇預設模型** + +### 常見供應商 + +#### OpenAI +``` +Provider: OpenAI +API Key: sk-... +Base URL: https://api.openai.com/v1 (default) +Model: gpt-4o-mini +``` + +#### Anthropic (Claude) +``` +Provider: Anthropic +API Key: sk-ant-... +Model: claude-sonnet-4-6 +``` + +#### Ollama(本地) +``` +Provider: Ollama +Base URL: http://localhost:11434 (default) +Model: llama3.1 +API Key: (not required) +``` + +#### DeepSeek +``` +Provider: DeepSeek +API Key: sk-... +Model: deepseek-chat +``` + +### 多個供應商 + +您可以設定多個供應商,並根據每個任務在它們之間切換: +- **主要供應商**:用於備用方案 +- **任務專用提供者**:為特定任務覆寫設定 + +--- + +## 2. 專案特定模型 + +為了優化成本與品質,可針對不同任務配置不同的模型: + +### 任務類型 + +| 任務 | 預設模型 | 用途 | +|------|--------------|---------| +| **連結** | 主要供應商 | 確定維基連結的相關概念 | +| **概念生成** | 主要供應商 | 提取並描述概念 | +| **研究** | 主要供應商 | 總結網路搜尋結果 | +| **翻譯** | 主要供應商 | 翻譯文字 | +| **圖表產生** | 主要供應商 | 產生 Mermaid/Canvas 圖表 | + +### 範例:成本優化設定 + +``` +Linking: gpt-4o-mini (fast, many calls) +Concept Generation: claude-sonnet-4-6 (quality extraction) +Research: gpt-4o (web-grounded) +Translation: gemini-flash (multilingual) +Diagram: ollama/llama3.1 (free, local) +``` + +### 如何進行設定 + +1. **設定 → Notemd → 任務設定** +2. 對於每個任務,請選擇: + - ✅ **使用主要供應商**(預設) + - 🔄 **使用自訂供應商** → 選擇供應商 + 模型 + +--- + +## 3. 輸出設定 + +### 概念說明輸出結果 + +**新概念備註的儲存位置:** + +``` +Settings → Output → Concept Folder +Default: concepts/ +``` + +**範本:** +``` +Settings → Output → Concept Template +Default: +--- +tags: [concept] +created: {{date}} +--- + +# {{concept}} + +{{description}} + +## Backlinks +{{backlinks}} +``` + +### 資料夾結構選項 + +**選項 1:扁平式(所有概念都在同一個資料夾中)** +``` +vault/ +└── concepts/ + ├── Machine Learning.md + ├── Neural Networks.md + └── Deep Learning.md +``` + +**選項 2:階層式(依來源資料夾分類)** +``` +vault/ +├── papers/ +│ └── concepts/ +│ └── Transformer.md +└── notes/ + └── concepts/ + └── Attention Mechanism.md +``` + +設定:**Settings → Output → Use Hierarchical Folders** + +### 圖表輸出 + +**圖表儲存位置:** +``` +Settings → Output → Diagram Folder +Default: diagrams/ +``` + +**格式:** +- `.mmd` (Mermaid 來源) +- `.canvas` (JSON Canvas) +- `.html` (Vega-Lite) + +--- + +## 4. 語言設定 + +### UI 語言 + +**介面語言**(按鈕、選單、對話方塊): + +``` +Settings → Language → UI Language +Options: 21+ languages +Default: System language +``` + +支援的語言:英文、簡體中文、繁體中文、日文、韓文、Español、Français、Deutsch、Русский、العربية 以及更多。 + +### 輸出語言 + +**產生內容語言**(概念說明、研究摘要): + +``` +Settings → Language → Output Language +Options: Same as UI languages +Default: Same as UI +``` + +**使用場景:** 中文 UI + 英文輸出,用於雙語研究。 + +### 翻譯目標 + +翻譯任務的**預設目標語言**: + +``` +Settings → Translation → Target Language +Default: English +``` + +--- + +## 5. 搜尋整合 + +### Tavily(推薦) + +**AI 最佳化搜尋服務:** + +``` +Settings → Search → Service: Tavily +API Key: tvly-... +``` + +取得金鑰:[tavily.com](https://tavily.com/) + +**功能特點:** +- 高品質的結果 +- AI 最佳化摘要 +- 資料來源引用 + +### DuckDuckGo(測試中) + +**不需要 API 金鑰:** + +``` +Settings → Search → Service: DuckDuckGo +``` + +**注意:** 品質較低,無法自訂。 + +--- + +## 6. 工作流程設定 + +### 建立自訂工作流程 + +**工作流程可將多個任務串聯在一個按鈕上。** + +1. **設定 → 工作流程 → 添加工作流程** +2. **名稱**:「紙張分析流程」 +3. **DSL**: `process-current-add-links>extract-concepts-current>research-and-summarize>summarize-as-mermaid` +4. **儲存** + +左側邊欄出現了新的按鈕。 + +### DSL 語法 + +**格式:** `action1>action2>action3` + +**可用動作:** +- `process-current-add-links` — 在目前筆記中加入維基連結 +- `extract-concepts-current` — 產生概念說明文件 +- `research-and-summarize` — 網路資料搜尋 + 摘要 +- `translate-current` — 將目前筆記翻譯 +- `summarize-as-mermaid` — 產生 Mermaid 圖表 +- `process-folder-add-links` — 批次處理資料夾 + +**範例工作流程:** + +**快速概念抽取:** +``` +process-current-add-links>extract-concepts-current +``` + +**深入研究:** +``` +process-current-add-links>research-and-summarize>extract-concepts-current +``` + +**多語言分析:** +``` +translate-current>process-current-add-links>extract-concepts-current +``` + +--- + +## 7.進階設定 + +### 批次處理 + +**同時處理多個檔案:** + +``` +Settings → Advanced → Batch Processing +Concurrency: 3 (default) +``` + +數值越高 = 速度越快,但 API 呼叫次數也越多。 + +### 智慧分塊 + +**對於長篇筆記,請分割成多個段落:** + +``` +Settings → Advanced → Smart Chunking +Chunk Size: 2000 words (default) +Overlap: 200 words (default) +``` + +防止令牌數量限制錯誤。 + +### 診斷面板 + +**查看詳細日誌:** + +``` +Settings → Advanced → Enable Diagnostics +``` + +顯示: +- API 請求/回應 +- Token 使用量 +- 處理時間 +- 錯誤 + +### 重複概念偵測 + +**避免近乎重複的概念:** + +``` +Settings → Advanced → Synonym Suppression +Threshold: 0.8 (default, 0-1) +``` + +數值越高 = 合併時的侵略性越強。 + +--- + +## 設定檔案 + +### 匯出/匯入設定 + +**在多台裝置之間分享設定:** + +1. **設定 → 進階 → 匯出設定** +2. 儲存 `notemd-config.json` +3. 在全新裝置上:**匯入設定** + +**包含內容:** +- 供應商 API 金鑰(可選) +- 型號選擇 +- 輸出路徑 +- 自訂工作流程 + +--- + +## 推薦的設定方案 + +### 適用於學生 + +``` +Provider: OpenAI (gpt-4o-mini) +Concept Folder: concepts/ +UI Language: System +Output Language: System +Workflow: "Study Flow" (add-links>extract-concepts) +``` + +### 給研究人員使用 + +``` +Providers: + - Linking: DeepSeek (cheap, many calls) + - Concepts: Claude Sonnet (high quality) + - Research: GPT-4o (web-grounded) +Concept Folder: notes/concepts/ +Hierarchical: Yes +Workflow: "Paper Flow" (add-links>extract>research>diagram) +``` + +### 專為重視隱私的使用者設計 + +``` +Provider: Ollama (llama3.1) +All tasks: Local model +Search: DuckDuckGo (no API) +Diagnostics: Off +``` + +### 適用於雙語工作環境 + +``` +UI Language: Chinese +Output Language: English +Translation Target: Chinese +Provider: Gemini (multilingual) +``` + +--- + +## 配置問題排解 + +### 設定未儲存 +- 檢查 `.obsidian/plugins/notemd/` 中的檔案權限 +- 試試看:關閉外掛 → 重新啟用 + +### API 金鑰無效 +- 不要額外空格 +- 檢查有效期 +- 在供應商儀表板中驗證點數餘額 + +### 模型無法載入 +- 點擊「取得模型清單」以重新取得資料 +- 檢查網路連線狀態 +- 試試不同的供應商 + +--- + +## 接下來的步驟 + +- 📖 [探索功能](../features/wiki-links) +- 🔌 [供應商設定指南](../providers/overview) +- ❓ [常見問題](../faq) diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/getting-started/installation.mdx b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/getting-started/installation.mdx new file mode 100644 index 00000000..0d6ca0b6 --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/getting-started/installation.mdx @@ -0,0 +1,133 @@ +--- +id: installation +title: "安裝" +description: "如何在 Obsidian 中安裝 Notemd" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [installation, setup, obsidian plugin] +concepts: [Installation, Community Plugins, BRAT, Manual Install] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# 安裝 + +<TLDR> +**在 2 分鐘內安裝 Notemd。** 共有兩種方式:(1) 使用 Obsidian 社群插件(建議選擇,可一鍵安裝),或 (2) 透過 GitHub Releases 手動安裝。需安裝版本為 Obsidian 0.15.0+ 以上。適用於 Windows、macOS、Linux、iOS 與 Android,且無外部依賴項目。已有 4k 次以上下載,採用 MIT 授權。 +</TLDR> + +## 方法 1:社群插件(建議使用) + +1. 開啟 **Obsidian 設定**(⚙️ 圖示或 `Ctrl/Cmd + ,`) +2. 前往 **Community plugins** +3. 點擊 **Browse** +4. 搜尋 **"Notemd"** +5. 點擊 **Install** +6. 點擊 **Enable** + +**完成!**您會在左側邊欄看到 Notemd 圖示。 + +## 方法二:手動安裝 + +### 先決條件 +- Obsidian 0.15.0 或更高版本 +- Git(可選,用於複製) + +### 步驟 + +1. 從 [GitHub Releases](https://github.com/Jacobinwwey/obsidian-NotEMD/releases/latest) **下載檔案**: + - `main.js` + - `styles.css` + - `manifest.json` + +2. **找出您保險庫的插件資料夾位置:** + ``` + <your-vault>/.obsidian/plugins/ + ``` + +如果 `plugins` 資料夾不存在,請建立它。 + +3. **建立 Notemd 資料夾:** + ``` + <your-vault>/.obsidian/plugins/notemd/ + ``` + +4. 將這三個檔案**複製**到 `notemd` 資料夾中。 + +5. **重新載入 Obsidian:** + - 按下 `Ctrl/Cmd + R`,或 + - 重新啟動 Obsidian + +6. **啟用外掛程式:** + - 設定 → 社群外掛程式 + - 在清單中尋找 "Notemd" + - 將它開啟 + +## 替代方案:透過 BRAT 安裝 + +如果您使用 [BRAT 插件](https://github.com/TfTHacker/obsidian42-brat): + +1. 打開 BRAT 設定 +2. 點擊「新增 Beta 外掛」 +3. 輸入:`Jacobinwwey/obsidian-NotEMD` +4. 點擊「新增外掛」 +5. 在 Community 外掛中啟用 Notemd + +## 驗證 + +安裝完成後,請確認 Notemd 能正常運作: + +1. 打開任意筆記 +2. 在編輯器中按右鍵 +3. 你應該會看到類似 Notemd 的指令如下: + - 「處理檔案(新增連結)」 + - 「提取概念」 + - 「研究並總結」 + +## 接下來的步驟 + +- **設定 LLM 提供者:** [快速開始 →](./quick-start) +- **故障排除:** [常見問題 →](../advanced/troubleshooting) + +## 系統需求 + +| 平台 | 版本 | 狀態 | +|----------|---------|--------| +| **Obsidian** | 0.15.0+ | 必填項目 | +| **Windows** | 7+ | ✅ 已支援 | +| **macOS** | 10.15+ | ✅ 已支援 | +| **Linux** | 任何 | ✅ 已支援 | +| **iOS** | 15+ | ✅ 已支援 | +| **Android** | 5+ | ✅ 已支援 | + +## 解除安裝 + +要移除 Notemd: + +1. 設定 → 社群外掛程式 +2. 尋找 "Notemd" +3. 點擊 ❌ 圖示 +4. 可選地,刪除外掛程式資料夾:`<vault>/.obsidian/plugins/notemd/` + +您的資料(筆記、概念說明等)將保持原樣,不受影響。 + +## 正在更新中 + +### 自動更新(建議) +Obsidian 會自動檢查外掛程式的更新。當有新版本可用時: +1. 設定 → 社群外掛程式 +2. 點擊「檢查更新」 +3. 點擊 Notemd 旁邊的「更新」 + +### 手動更新 +下載最新版本,並替換您插件資料夾中的三個檔案。 + +## 尋求協助 + +- 📖 [快速入門指南](./quick-start) +- ❓ [常見問題](../faq) +- 💬 [Discord 社群](https://discord.gg/qnGgsQ9W) +- 🐛 [回報問題](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx new file mode 100644 index 00000000..b7feb387 --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/getting-started/quick-start.mdx @@ -0,0 +1,181 @@ +--- +id: quick-start +title: "快速入門指南" +description: "5分鐘內開始使用 Notemd" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [quick start, tutorial, getting started, first steps] +concepts: [Quick Start, LLM Configuration, One-Click Workflow, Ollama] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# 快速入門指南 + +<TLDR> +**5分鐘內即可開始使用 Notemd。** 只需三個步驟:(1) 加入 LLM API 金鑰(或使用本地的 Ollama),(2) 開啟筆記並執行「處理檔案(加入連結)」,(3) 在側邊欄探索一次點擊即可完成的工作流程。支援 30 多家服務供應商。無需編碼。搭配 Ollama 即可在離線環境下使用。 +</TLDR> + +## 步驟 1:設定您的第一個 LLM 提供商(2 分鐘) + +### 選項 A:雲端服務供應商 (OpenAI, Anthropic, 等等) + +1. 打開 **設定** → **Notemd** +2. 在 **LLM 提供者設定** 下,從下拉式選單中選擇一個提供者 +3. 輸入您的 **API Key** +4. (可選) 點擊 **「取得模型清單」** 以查看可用的模型 +5. 為每種任務類型選擇一個模型 + +**熱門選項:** +- **OpenAI**:`gpt-4o-mini`(快速、實惠) +- **Anthropic**:`claude-sonnet-4-6`(高品質) +- **DeepSeek**:`deepseek-chat`(性價比極高) + +### 選項 B:本地 Ollama(不需要 API 金鑰) + +1. 安裝 [Ollama](https://ollama.com/) +2. 下載模型:`ollama pull llama3.1` +3. 在 Notemd 設定中,選擇 **"Ollama"** 作為供應商 +4. 型號名稱:`llama3.1`(或您下載的任何型號) + +## 步驟 2:嘗試您的第一個任務(1 分鐘) + +### 在筆記中加入維基連結 + +1. 打開任何包含有意義內容的筆記 +2. 在編輯器中按右鍵 +3. 選擇 **「處理檔案(新增連結)」** +4. 請稍等幾秒鐘。 +5. 關鍵概念現在已經是 `[[wiki-linked]]` 了! + +**範例:** + +**之前:** +``` +Machine learning models use neural networks to process data. +``` + +**完成後:** +``` +[[Machine learning]] models use [[neural networks]] to process data. +``` + +## 步驟 3:探索功能(2 分鐘) + +### 提取概念說明 + +1. 按右鍵 → **「從目前檔案提取概念」** +2. Notemd 會為每個概念建立不同的檔案 +3. 檢查您所設定的概念資料夾(預設值:`concepts/`) +4. 每個概念說明都有一個連結回您原始的說明。 + +### 研究與總結 + +1. 在您的筆記中標出某個主題 +2. 按右鍵 → **「研究並總結」** +3. Notemd 查詢網路搜尋(Tavily 或 DuckDuckGo) +4. 摘要會將來源資料附加到您的筆記中 + +### 一次點擊工作流程 + +1. 請查看**左側邊欄**中的工作流程按鈕 +2. 在任意筆記上按一下 **「一鍵提取」** +3. 它的運作流程為:新增連結 → 提取概念 → 進行研究 → 產生圖表 +4. 一次點擊搞定! + +## 常見的初始任務 + +### 任務 1:處理文件/文章 + +``` +1. Paste article content into a note +2. Run "Process file (add links)" +3. Run "Extract concepts" +4. Run "Research and summarize" on unfamiliar terms +5. Run "Summarize as Mermaid diagram" for visual structure +``` + +### 任務 2:翻譯筆記 + +``` +1. Highlight text to translate +2. Right-click → "Translate to target language" +3. Set target language in settings first +``` + +### 任務 3:建立知識地圖 + +``` +1. Process 5-10 related notes with "add links" +2. Run "Extract concepts" on each +3. Open Graph view to see connections +4. Your knowledge graph is forming! +``` + +## 自訂技巧 + +### 每任務模型選擇 + +你可以根據不同的任務使用不同的模型: + +| 任務 | 推薦型號 | 為什麼 | +|------|------------------|-----| +| 新增連結 | `gpt-4o-mini`,`deepseek-chat` | 快速,可進行大量通話 | +| 提取概念 | `claude-sonnet-4-6`,`gpt-4o` | 品質提取 | +| 研究 | `perplexity`,`gpt-4o` | 基於網路的 | +| 翻譯 | `gemini-flash`,`gpt-4o` | 多語言 | +| 圖表 | `claude-opus`,本地模型 | 複雜推理 | + +設定位置:**Settings → Notemd → Task-Specific Models** + +### 自訂工作流程 + +建立您自己的按鈕: + +1. 設定 → Notemd → 工作流程 +2. 點擊「新增工作流程」 +3. 輸入 DSL:`process-current-add-links>extract-concepts-current>research-and-summarize` +4. 命名為:「我的研究流程」 +5. 側邊欄出現了新的按鈕 + +## 故障排除 + +### "API 金鑰無效" +- 檢查金鑰是否正確(不得有額外空格) +- 驗證帳戶是否有剩餘點數 +- 在設定中使用「Connection Test」按鈕進行測試 + +### 「未找到模型」 +- 點擊「取得模型清單」即可查看可用的模型 +- 有些服務供應商要求使用特定的型號名稱(例如 `gpt-4o`,而非 `gpt-4`) + +### 連結沒有顯示出來 +- 請確保備註的內容足夠多(>50個字)。 +- 試試更強大的模型吧 +- 檢查 LLM 呼叫是否成功(請參見診斷面板) + +### 運作效能緩慢 +- 使用速度更快的模型(`gpt-4o-mini` 而非 `gpt-4o`) +- 在設定中減小區塊大小 +- 為批次任務啟用平行處理 + +## 接下來的步驟 + +- 📖 [探索所有功能](../features/wiki-links) +- ⚙️ [進階設定](./configuration) +- 🔧 [LLM 提供商設定](../providers/overview) +- ❓ [常見問題](../faq) + +## 影片教學 + +觀看 3 分鐘的快速入門影片(中文): +[【完全開源免費!NotEMD 三分鐘快速入門】](https://b23.tv/lqR0RlA) + +## 尋求協助 + +- 💬 **Discord**: [discord.gg/qnGgsQ9W](https://discord.gg/qnGgsQ9W) +- 🐛 **問題報告**:[GitHub Issues](https://github.com/Jacobinwwey/obsidian-NotEMD/issues) +- 📚 **文件說明**:[完整文件說明](https://jacobinwwey.github.io/obsidian-NotEMD/) diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/intro.mdx b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/intro.mdx new file mode 100644 index 00000000..92decddf --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/intro.mdx @@ -0,0 +1,180 @@ +--- +id: intro +title: "Notemd 簡介" +description: "專為 Obsidian 打造的 AI 驅動型知識庫建構工具,具備持續性的筆記轉換、工作流程功能,以及以規格為優先的圖表生成功能" +keywords: [notemd, obsidian, AI, LLM, knowledge base, wiki-links, Copilot alternative, Smart Connections alternative, obsidian AI plugin, auto wiki-link, concept notes] +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +concepts: [Notemd, Obsidian, LLM, Knowledge Management, Wiki-Links, Copilot Alternative, Smart Connections Alternative, AI Plugin] +citations: + - title: Obsidian + url: https://obsidian.md +--- + +import TLDR from '@site/src/components/TLDR'; + +# Notemd 簡介 + +<TLDR> +**Notemd**(Note + EMD — Enhanced Markdown Documents)是一個開源的 Obsidian 外掛,能將以 LLM 為基礎的閱讀內容轉化為持續性的知識。與會話結束後洞察即消失的聊天式 AI 不同,Notemd 會將結果**直接寫入您的資料庫**,呈現為維基連結、概念筆記、研究摘要、翻譯內容、工作流程及圖表。它專為那些希望將閱讀、研究與視覺化說明累積成結構化且持續演進的知識圖譜的研究人員、學生及知識工作者所設計。 +</TLDR> + +## Notemd 是什麼? + +Notemd 能將 **30 多個大型語言模型**(OpenAI、Anthropic、Google、DeepSeek、Qwen、Ollama 等)整合到您的 Obsidian 工作流程中,用於自動化知識提取、整理、翻譯、研究以及圖表生成。 + +### 關鍵差異:暫時性知識與持久性知識 + +| 面向 | 以聊天為基礎的 AI(ChatGPT 等) | Notemd | +|--------|-------------------------------|--------| +| **結果儲存位置** | 聊天記錄(會消失) | 您的 Obsidian 金庫(會持續存在) | +| **格式** | 純文字答案 | 結構化檔案:`[[wiki-links]]`、概念說明、圖表 | +| **長期價值** | 每次都必須重新詢問。 | 累積成為知識圖譜 | +| **離線存取** | 需要網際網路連線 | 可完全離線使用 Ollama | + +## 核心功能 + +### 1. **自動維基連結功能** +- LLM 用來標示筆記中的重點概念 +- 在每個出現的位置插入 `[[wiki-links]]` +- 可選擇建立連結的概念筆記 +- 同義詞壓制以避免重複 + +### 2. **概念說明書的撰寫** +- 從論文、文章、筆記中提取核心概念 +- 產生帶有反向連結的專用概念檔案 +- 可自訂的輸出路徑與範本 + +### 3. **網路資料搜尋整合** +- 從 Obsidian 內查詢 Tavily 或 DuckDuckGo +- LLM 會附上出處引用來總結結果 +- 將研究結果附加到目前的筆記中 + +### 4. **多語言翻譯** +- 翻譯選取的內容或整份筆記 +- 支援 21 種以上 UI 語言 +- 獨立輸出語言設定 +- 批次翻譯支援 + +### 5. **圖表產生** +- **Mermaid**:流程圖、序列圖、類圖、狀態圖、ER圖、甘特圖 +- **JSON Canvas**: Obsidian 原生佈局 +- **Vega-Lite**:資料圖表、時間序列、散點圖 +- **HTML / 可編輯 HTML/SVG**:具備語意標註的獨立圖形檔案 +- **Draw.io / Drawnix artifact boundaries**:來自相同語意圖形模型的、供維護者使用的匯出路徑 +- **電路圖規劃藍圖**: circuitikz/TikZJax 的支援功能正以黃金參考資料、限制條件提示、渲染回饋以及拓撲結構/佈局驗證為核心來設計,而非依賴未經限制的原始 LLM TikZ +- **預覽診斷**:渲染瑕疵可能會顯示編譯/渲染過程中的診斷資訊,且非內聯式來源亦可在不需插件端 LaTeX 執行環境的情況下被檢視。 +- Mermaid 錯誤的語法自動修正 + +### 6. **一次點擊工作流程** +- 將多個動作串聯成側邊欄按鈕 +- 以 DSL 為基礎的工作流程定義 +- 範例:`add-links > extract-concepts > research > diagram` + +## 誰適合使用 Notemd? + +✅ **研究人員**正在閱讀論文並撰寫文獻綜述 +✅ **學生**整理筆記並建立概念圖 +✅ **需要讓閱讀心得持續保留的知識工作者** +✅ 需要翻譯及維基連結的**雙語專業人員** +✅ **重視隱私的使用者**,希望獲得本地的 LLM 支援 (Ollama) +✅ **高階使用者**,能自訂提示詞與工作流程 + +## 為什麼是 Notemd + Obsidian? + +**Obsidian** 是一個以本地為主、基於 Markdown 的知識庫。**Notemd** 則增添了 AI 的強大功能: +- 您的資料會保存在您的保險庫中(而非雲端服務)。 +- 可搭配本地模型離線運作 +- 免費且開源(MIT 授權) +- 與現有的 Obsidian 外掛程式整合 +- 可擴展至數萬個音符 + +## 入門指南 + +1. **安裝**:設定 → 社群外掛 → 瀏覽 → "Notemd" +2. **設定**:新增您的 LLM 提供商 API 金鑰(或使用本機的 Ollama) +3. **試試看**:打開筆記 → 右鍵點擊 → 「處理檔案(加入連結)」 +4. **探索**:在側邊欄查看一次點擊即可完成的工作流程 + +👉 [安裝指南](./getting-started/installation) | [快速入門教學](./getting-started/quick-start) + +## 圖表功能方向 + +Notemd的圖表處理方式正逐漸從「要求模型撰寫一個語法字串」,轉變為採用分層式處理流程: + +```mermaid +graph LR + A[Source Note] --> B[DiagramSpec] + B --> C[Target Adapter] + C --> D[Rendered Artifact] + D --> E[Semantic Verification] + E --> F[Preview or Export] +``` + +目前的實作已經支援 Mermaid、JSON Canvas、Vega-Lite、HTML 的回退機制,可編輯的 HTML/SVG,Draw.io XML 的元件,最簡化的 Drawnix JSON 子集,預覽診斷/僅源碼模式回退,以及適用於常見來源與 CMOS 電路反相器的離線 `CircuitSpec -> circuitikz` 原型。電路圖則較為複雜:雖然 circuitikz 能夠呈現精確的電氣拓撲結構,但缺乏限制的 LLM 輸出往往會產生難以辨識的走線或無法渲染的 LaTeX 內容。未來的發展方向是透過黃金參考模板、節點網格佈局規則、渲染診斷功能以及截圖回饋循環,來持續限制 circuitikz 的行為。 + +請閱讀 [Diagrams](./features/diagrams) 中的詳細資料。 + +## 架構 + +```mermaid +graph LR + A[Obsidian Note] --> B[Notemd Plugin] + B --> C{Task Selection} + C -->|Add Links| D[LLM Provider] + C -->|Research| E[Search API] + C -->|Translate| D + C -->|Diagram| D + D --> F[Structured Output] + E --> D + F --> G[Update Vault] + G --> H[Wiki Links] + G --> I[Concept Notes] + G --> J[Diagrams] + G --> K[Research Summaries] +``` + +## Notemd 與其他 Obsidian AI 外掛的比較 + +多數 Obsidian AI 外掛都是以對話為主(你提問,AI 回答,洞察都留在聊天中)。而 Notemd 則是**以撰寫為主**:AI 會處理你的筆記,並將結構化的結果直接寫入你的資料庫中。 + +| 功能特性 | Notemd | Copilot | Smart Connections | Text Generator | +|-----------|--------|---------|-------------------|-----------------| +| 自動維基連結插入 | 是的 | 沒有 | 沒有 | 沒有 | +| 概念說明書的撰寫 | 是(含反向連結 + 去重) | 沒有 | 沒有 | 沒有 | +| 圖表產生 | 是的 (Mermaid, Canvas, Vega-Lite, HTML, 可編輯的工件) | 沒有 | 沒有 | 沒有 | +| 網路資料搜尋整合 | 是的 (Tavily + DuckDuckGo) | 沒有 | 沒有 | 沒有 | +| 批次資料夾處理 | 是的 | 限量版 | 沒有 | 限量版 | +| 每任務模型路由 | 是(7個任務,獨立模型) | 沒有 | 沒有 | 沒有 | +| 一次點擊的工作流程鏈接 | 是(DSL) | 沒有 | 沒有 | 沒有 | +| 翻譯(批次) | 是的 | 沒有 | 沒有 | 沒有 | +| 與 vault 聊天 | 沒有 | 是的 | 沒有 | 沒有 | +| 語意相似度搜尋 | 沒有 | 沒有 | 是的 | 沒有 | +| 以模板為基礎的生成 | 沒有 | 沒有 | 沒有 | 是的 | +| LLM 提供商 | 36(雲端 + 閘道 + 本地) | 3-5 | 2-3 | 3-5 | +| 完全離線 | 是的 (Ollama) | 部分 | 部分 | 部分 | + +**何時選擇 Notemd**:如果您希望 AI 建立持久的知識圖譜,而非僅僅針對您的筆記進行對話。 + +**何時選擇 Copilot**:如果您希望在 Obsidian 內部擁有一個對話式 AI 助手。 + +**何時選擇 Smart Connections**:如果您希望透過語意搜尋來發現筆記之間的既有關聯。 + +## 哲學 + +**Notemd** 認為人工智慧應該輔助人類的知識工作,而非取代它。此外掛程式: +- 讓您掌握控制權(在套用變更前先進行審核) +- 保留上下文(所有結果皆可回溯至原始資料) +- 尊重隱私(支援本地 LLM,無遠端監控) +- 具有高度可擴展性(開放 APIs、自訂工作流程) + +## 開源 + +- **授權條款**:MIT +- **來源**:[github.com/Jacobinwwey/obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) +- **社群**:[Discord](https://discord.gg/qnGgsQ9W) | [GitHub Discussions](https://github.com/Jacobinwwey/obsidian-NotEMD/discussions) +- **貢獻**:歡迎提交 Pull Request,詳情請見 [CONTRIBUTING.md](https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/CONTRIBUTING.md) + +--- + +**下一步**:[安裝 →](./getting-started/installation) diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx new file mode 100644 index 00000000..ea6306c0 --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/pillar-ai-knowledge.mdx @@ -0,0 +1,341 @@ +--- +id: pillar-ai-knowledge +title: "Obsidian AI知識管理指南" +description: "運用 AI 建構連結式知識庫的完整指南——從維基連結與概念抽取,到研究、翻譯及圖表生成" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [obsidian, AI, knowledge management, wiki-links, concept notes, LLM, diagrams, research, translation, workflows, Copilot alternative, Smart Connections alternative, obsidian AI plugin] +concepts: [Notemd, Obsidian, AI Knowledge Management, Wiki-Links, Concept Notes, LLM Integration, Diagrams, Research, Translation, Workflows, Copilot Alternative] +citations: + - title: Obsidian + url: https://obsidian.md + - title: Tavily + url: https://tavily.com + - title: Mermaid + url: https://mermaid.js.org + - title: Vega-Lite + url: https://vega.github.io/vega-lite/ +--- + +import TLDR from '@site/src/components/TLDR'; + +# Obsidian AI知識管理指南 + +<TLDR> +**Notemd 能將 LLM 驅動的閱讀內容轉化為持續性的知識:維基連結可串接各個概念,概念筆記能建立可搜尋的圖譜,研究功能可將網路上的資訊納入您的知識庫,翻譯功能則能打破語言障礙,圖表則讓結構一目了然,而工作流程則讓所有功能只需一鍵即可串接起來。** 本指南將完整說明從原始筆記到具有連結性、視覺化且多語言的知識庫的整個流程。 +</TLDR> + +## 為何選擇 AI 知識管理? + +傳統的筆記方式會產生純文本檔案。即便有手動建立的維基連結,大多數筆記仍保持分離狀態。Notemd 利用 LLMs 來自動化處理這些連結層級: + +- **LLMs 會讀取您的內容**,並辨別出重點——包括術語、方法、人物與理論。 +- **連結會自動插入**在每個概念出現的位置,而非藏在「另請參見」中 +- **概念說明文件會以獨立的可取得檔案形式產生** +- **研究透過網路資源的背景資料來豐富筆記** +- **圖表讓結構一目了然** — 由相同內容所產生的思維導圖、流程圖與資料圖表 + +最終結果:一個會隨著您處理的每條筆記而不斷擴充的知識圖譜,而非只有在您想起要添加連結時才會更新。 + +## 完整的處理流程 + +```mermaid +graph TD + A[Raw Note] --> B[Add Links] + B --> C[Wiki-Linked Note] + B --> D[Concept Notes] + C --> E[Connected Knowledge Graph] + D --> E + F[Web Research] --> E + G[Translation] --> E + H[Diagram Generation] --> I[Visual Structure] + E --> H + I --> E + J[One-Click Workflow] --> B + J --> F + J --> G + J --> H +``` + +每個步驟都是獨立的。可選擇使用其中一個或全部。最具影響力的順序為:**Add Links → Concept Notes → Diagrams**。 + +--- + +## 1. Wiki-連結:明確建立連結 + +維基連結是知識圖譜的支柱。Notemd 使用 LLM 來: + +1. 讀取您的筆記內容(長文件會分割成多個區塊) +2. 辨別核心概念——優先考慮具體的技術術語,而非一般名詞 +3. 在每個出現的位置插入 `[[wiki-links]]` +4. 壓制同義詞,讓「ML」與「Machine Learning」不會產生不同的節點 + +### 何時使用 + +- **每則筆記 >100 個字** — 字數較少的筆記所含概念較少 +- **研究論文、技術文件、會議筆記** — 內含大量領域專有術語 +- **內容穩定後** — 請勿反複處理草稿 + +### 鍵值設定 + +| 設定 | 推薦 | 為什麼 | +|---------|-----------|-----| +| `addLinksProvider` | DeepSeek 或 GPT-4o-mini | 低成本卻具有優良的精確度 | +| 同義詞抑制 | 開啟 | 防止節點重複 | +| 上下文視窗 | 段落 | 精確度與成本的平衡 | + +→ [Wiki-Links 深入探討](/docs/features/wiki-links) + +--- + +## 2. 概念說明:可檢索的知識節點 + +維基連結能將各個概念以內聯方式串接起來,但概念筆記則讓每個概念都能獨立被查詢。每個概念都會有自己的 `.md` 檔案: + +```markdown +# Machine Learning + +## Linked From +- [[My Research Notes]] +- [[Neural Networks Explained]] +``` + +### 提取流程 + +LLM 的提示語結構相當嚴謹: +- 轉換為單數形式 +- 較偏好多字詞概念而非單字詞(例如使用「介電弛豫」而非「弛豫」) +- 跳過參考文獻/參考資料章節 +- 以 `CONCEPT:` 行的形式輸出,以便確定性解析 + +概念會透過 `Set<string>` 在各個區塊之間去除重複。單個區塊出現的 LLM 錯誤不會中斷整個操作。 + +### 反向連結 + +啟用後,每個概念筆記都會追蹤有哪些來源筆記提到了它。Obsidian 的原生反向連結面板也會顯示反向連線。 + +### 去重 + +Notemd的4步去重引擎可偵測: +1. **完全匹配** — 不區分大小寫的檔名比對 +2. **複數形式** — "Models.md" 與 "Model.md" 的差異 +3. **符號標準化** — "A-B.md" 與 "A B.md" 的差異 +4. **單字包含檢查** — 當存在「Machine Learning.md」時,會將「ML.md」標記為違規 + +### 鍵值設定 + +| 設定 | 推薦 | 為什麼 | +|---------|-----------|-----| +| `conceptNoteFolder` | `concepts/` 或 `🧠 concepts/` | 保持金庫井然有序 | +| `extractConceptsAddBacklink` | 開啟 | 啟用反向查詢 | +| `extractConceptsMinimalTemplate` | 關閉 | 包含「Linked From」的完整模板 | +| 任務別模型 | DeepSeek | 概念抽取不需要昂貴的模型 | +| 同義詞抑制 | 開啟 | 相同的設定會同時影響連結與提取。 | + +→ [概念說明深入解析](/docs/features/concept-notes) + +--- + +## 3. 研究:將網路引入 + +Notemd 能將網路搜尋整合到您的筆記工作流程中: + +1. **查詢建構** — 您的筆記標題或選取內容會變成搜尋查詢 +2. **網路搜尋** — Tavily(推薦,需 API 金鑰)或 DuckDuckGo(免費,無需金鑰) +3. **LLM 摘要功能** — 將搜尋結果簡化為相關的摘要 +4. **新增到筆記** — 在游標位置或作為新章節加入摘要 + +### 何時使用 + +- 在處理新主題之前——先取得網路上下文 +- 當概念說明需要補充內容時——先進行研究,再加入連結 +- 用於文獻回顧——對資料夾中的筆記進行批次研究 + +### 鍵值設定 + +| 設定 | 推薦 | 為什麼 | +|---------|-----------|-----| +| `researchProvider` | GPT-4o 或 Claude | 研究需要品質更高的摘要生成。 | +| 搜尋服務 | Tavily | 更高的相關性,可設定的深度 | +| `maxResearchContentTokens` | 4000 | 深度與成本之間的平衡 | + +→ [深入研究](/docs/features/research) + +--- + +## 4. 翻譯:打破語言障礙 + +Notemd 會使用您所設定的 LLM 來翻譯筆記——而非專用的翻譯 API。這意味著: + +- **情境感知式翻譯** — LLM 能夠理解整份文件,而非僅逐句翻譯 +- **技術術語處理** — "gradient descent" 仍保持為「梯度下降」,而非「坡度向下」 +- **批次支援** — 一次操作即可翻譯整個筆記資料夾 +- **每任務模型** — 使用 Gemini Flash 進行翻譯(快速、便宜且支援多語言) + +### 語言支援 + +Notemd 本身支援 21 種 UI 語言。翻譯的目標語言可依任務需求進行設定。常見的語言組合包括:EN↔ZH、EN↔JA、EN↔KO、EN↔DE、EN↔FR、EN↔ES。 + +→ [翻譯深入解析](/docs/features/translation) + +--- + +## 5. 圖表:讓結構清晰可見 + +Notemd的圖表處理流程是以規格為優先: LLM會產生結構化的 `DiagramSpec` JSON,接著由轉換器將其轉換為目標格式。這樣得到的輸出比直接要求 LLM處理原始的 Mermaid語法更為可靠。 + +### 意圖偵測 + +Notemd 會根據內容判斷最適合的圖表類型: + +- **帶有數字的表格** → 數據圖表 (Vega-Lite) +- **用戶端/伺服器術語** → 序列圖 (Mermaid) +- **實體/主鍵** → ER圖表 (Mermaid) +- **步驟/流程圖** → 流程圖 (Mermaid) +- **概念圖關鍵字** → JSON Canvas (Obsidian 本地端) +- **預設** → 思維導圖 (Mermaid) + +### 渲染鏈路 + +主要目標 → 替代方案 → 替代方案 → HTML。如果 Mermaid 的語法出錯,它會帶著錯誤內容向 LLM 重試一次,否則就改用最簡化的圖表。 + +### 鍵值設定 + +| 設定 | 推薦 | 為什麼 | +|---------|-----------|-----| +| `enableExperimentalDiagramPipeline` | 開啟 | 以規格為先,提升品質 | +| `experimentalDiagramCompatibilityMode` | `best-fit` | 每個意圖的本機目標 | +| `summarizeToMermaidProvider` | GPT-4o 或 Claude | 圖表規格需要空間推理能力 | +| `autoMermaidFixAfterGenerate` | 開啟 | 會自動捕捉 LLM 的語法錯誤 | +| 本地知識增強 | 為特定網域啟用 | 透過金庫上下文提升精確度 | + +→ [圖表深入解析](/docs/features/diagrams) + +--- + +## 6. 工作流程:一鍵自動化 + +工作流程可將多個任務串聯成一個側邊欄按鈕。其 DSL 格式為: + +``` +task1 | task2 | task3 +``` + +範例:`addLinks` | 提取概念 | generateDiagram` — 一鍵將筆記從原始文字轉換為完全連接的視覺化知識節點。 + +### 推薦的工作流程 + +| 工作流程 | 鏈條 | 使用情境 | +|----------|-------|----------| +| 完整流程 | `addLinks \| extractConcepts \| generateDiagram` | 新筆記 | +| 先進行研究 | `research \| addLinks` | 不熟悉的話題 | +| 多語言工具 | `translate \| addLinks` | 多語言筆記 | +| 僅圖表 | `generateDiagram` | 快速視覺化 | + +→ [工作流程深入解析](/docs/features/workflows) + +--- + +## 7. LLM 提供商:從雲端到本地的 36 種選項 + +Notemd 支援 4 種傳輸類型下的 36 家供應商。關鍵群組: + +- **國際雲端**:OpenAI、Anthropic、Google、Mistral、xAI +- **China cloud**:DeepSeek、Qwen、Doubao、Moonshot、GLM、百度、SiliconFlow +- **網關**:OpenRouter、GitHub Models、Hugging Face、Vercel +- **本地端**:Ollama、LMStudio、OVMS — 沒有 API 金鑰,資料不會離開您的電腦 + +### 任務別模型策略 + +最具成本效益的設定方式,是對於簡單任務使用便宜的模型,對於複雜任務則使用強大的模型: + +``` +extractConcepts → DeepSeek (fast, cheap, accurate enough) +addLinks → DeepSeek or GPT-4o-mini +research → GPT-4o or Claude (needs quality) +generateDiagram → GPT-4o or Claude (needs spatial reasoning) +translate → Gemini Flash (fast, multilingual) +``` + +→ [LLM 提供商概覽](/docs/providers/overview) + +--- + +## 入門檢查清單 + +1. **安裝 Notemd** — [Community Plugins](/docs/getting-started/installation)(建議使用)或手動安裝 +2. **設定供應商** — DeepSeek(最簡單)、OpenAI,或 Ollama(免費) +3. **處理您的第一張筆記** — 按右鍵 → 「處理檔案(新增連結)」 +4. **設定概念資料夾** — 設定 → Notemd → 输出 → 概念資料夾 +5. **提取概念** — 在同一張筆記上執行「提取概念」 +6. **產生圖表** — 執行「Generate diagram」以視覺化顯示連線關係 +7. **建立工作流程** — 將上述步驟串聯成一個按一下即可執行的按鈕 + +## 推薦的設定方案 + +### 學生(預算版) + +``` +Provider: DeepSeek (free tier available) +Concept extraction: DeepSeek +Research: DuckDuckGo (free) + DeepSeek +Diagrams: Off (or legacy Mermaid) +Workflows: addLinks | extractConcepts +``` + +### 研究員(品質) + +``` +Provider: GPT-4o (primary) +Concept extraction: DeepSeek (cost savings) +Research: GPT-4o + Tavily +Diagrams: best-fit mode, GPT-4o +Workflows: research | addLinks | extractConcepts | generateDiagram +``` + +### 以隱私為首(僅限本地) + +``` +Provider: Ollama (llama3 or qwen2.5:7b) +All tasks: Ollama +Research: DuckDuckGo (free, no API key) +Diagrams: legacy Mermaid mode +``` + +### 雙語(繁體中文 + 英文) + +``` +Primary: DeepSeek (Chinese queries) +Translation: Google Gemini Flash +Research: Tavily + DeepSeek (Chinese search context) +Language output: per-task (extractConceptsLanguage: zh-CN) +``` + +--- + +## 常見模式 + +### 模式:處理研究論文 + +1. 匯入 PDF 內容(或貼上) +2. **研究** — 取得該主題的網路相關資料 +3. **新增連結** — 檢出並連結關鍵概念 +4. **提取概念** — 建立獨立筆記 +5. **產生圖表** — 將論文的結構視覺化 + +### 模式:每日筆記豐富化 + +1. 寫每日筆記 +2. **新增連結** — 將今日的創意與現有的概念相連結 +3. 概念說明會隨著反向連結自動更新 + +### 模式:文獻綜述 + +1. 建立名為 papers/notes 的資料夾 +2. **批次新增連結** — 處理整個資料夾 +3. **去除重複概念** — 清理幾乎重複的筆記 +4. **產生圖表** — 整個文獻的思維導圖 + +--- + +*Notemd 是開源軟體(MIT 授權),且可在所有平台上與 Obsidian 0.15.0+ 一起使用。[立即安裝](/docs/getting-started/installation) 或 [在 GitHub 上查看](https://github.com/Jacobinwwey/obsidian-NotEMD)。* diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/providers/anthropic.mdx b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/providers/anthropic.mdx new file mode 100644 index 00000000..1b6cd182 --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/providers/anthropic.mdx @@ -0,0 +1,67 @@ +--- +id: anthropic +title: "Anthropic" +description: "設定 Anthropic Claude" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [anthropic, claude, provider, configuration] +concepts: [Anthropic, Claude, API Configuration] +citations: + - title: Anthropic API + url: https://docs.anthropic.com + - title: Claude + url: https://www.anthropic.com/claude +--- + +import TLDR from '@site/src/components/TLDR'; + +# Anthropic 供應商 + +<TLDR> +**Anthropic 使用原生的 Messages API 傳輸方式,而非與 OpenAI 相容的傳輸方式。** 目前的預設值為 `claude-3-5-sonnet-20240620`、`https://api.anthropic.com` 與 `temperature: 0.5`。在除錯時應將其視為一種獨立的協定層面。 + +這是[Obsidian AI知識管理指南](/docs/pillar-ai-knowledge)的一部分。 +</TLDR> + +## 安裝 + +建立一個 Anthropic API 金鑰,新增一個 `Anthropic` 提供者設定檔,且除非透過專用的閘道設定檔進行路由,否則請將 Base URL 保留於原生的端點上。在 model 欄位中選擇您想要使用的 Claude 模型 ID;預設值可讓現有的產品基準保持穩定。 + +Anthropic 非常適合用於高品質的摘要生成、研究綜述以及概念抽取。若將其與較便宜的服務供應商結合使用,請僅在需要其優良輸出品質的任務上加以應用。 + +## 端點與認證 + +| 字段 | 目前的預設值 | +|-------|----------------| +| 運輸 | `anthropic` | +| API 金鑰 | 必填項目 | +| 基底 URL | `https://api.anthropic.com` | +| 預設模型 | `claude-3-5-sonnet-20240620` | +| 溫度 | `0.5` | +| 連線測試 | 僅聊天功能 | + +執行階段會使用 `x-api-key` 與 `anthropic-version: 2023-06-01` 將請求傳送至 `/v1/messages`。請勿在此預設下配置 OpenAI 風格的 `/v1/chat/completions` 終點,應改用與 OpenAI 相容的閘道預設。 + +## 模型探索 + +Anthropic 在供應商登錄系統中使用了 `anthropic-models` 的探索模式。如果您的金鑰或帳戶無法列出模型,請在設定檔中保留一個已知的模型 ID,並透過連線測試來進行驗證。 + +此傳輸方式無法與 OpenAI 相容的供應商交換使用。透過 OpenRouter、LiteLLM 或其他閘道路由的 Claude 模型,應屬於該閘道設定檔,而非原生的 Anthropic 設定檔。 + +## 故障排除 + +- `401` 或 `403`:檢查金鑰範圍、工作區存取權、帳單狀況,以及該金鑰是否屬於預期的 Anthropic 工作區。 +- `404`:基礎 URL 不正確,或是所選的模型 ID 無法被該帳號使用。 +- Gateway 式的 Claude 模型 ID 失敗:請將設定檔移至對應的 gateway 提供商,因為原生 Anthropic 需要使用原生模型名稱。 +- 過長的請求會在後期失敗:請降低每個任務的模型輸出大小,或使用已知輸出符號上限更高的模型。 + +## 何時使用 + +當合成品質、研究筆記或結構化寫作的優先級高於原始成本時,請使用 Anthropic。請勿將其作為通用的 OpenAI 相容替代方案;使用獨立的傳輸方式正是重點,若混用各種協定會讓診斷變得更加困難。 + +--- + +## 接下來的步驟 + +- [LLM 提供商](/docs/providers/overview) -- 完整的設定、每個任務的模型,以及重試邏輯 +- [故障排除](/docs/advanced/troubleshooting) -- 解決 401/403 錯誤及連線問題 diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/providers/china.mdx b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/providers/china.mdx new file mode 100644 index 00000000..f6efc1b9 --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/providers/china.mdx @@ -0,0 +1,75 @@ +--- +id: china +title: "中國供應商" +description: "設定 Qwen、DeepSeek、GLM 等。" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [china providers, deepseek, qwen, glm, doubao, moonshot, mimo, minimax, baidu, siliconflow, huawei] +concepts: [China Providers, DeepSeek, Qwen, Doubao, Moonshot, MiMo, GLM, MiniMax, Baidu, SiliconFlow, Huawei] +citations: + - title: Qwen API + url: https://help.aliyun.com/zh/dashscope + - title: DeepSeek API + url: https://platform.deepseek.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# 中國供應商 + +<TLDR> +**Notemd** 可透過大多符合 OpenAI 標準的端點,支援中國地區及中國出身的供應商。目前的列表包含 DeepSeek、Qwen、Qwen Code、Doubao、Moonshot、Xiaomi MiMo、GLM、MiniMax、Baidu Qianfan、SiliconFlow、Huawei Cloud MaaS 與 Z AI。其優點在於能覆蓋更多地區並控制成本;缺點則是供應商特定的模型命名方式及帳戶限制。 + +這是[Obsidian AI知識管理指南](/docs/pillar-ai-knowledge)的一部分。 +</TLDR> + +## 安裝 + +建立供應商帳戶,產生一個 API 金鑰,然後選擇對應的 Notemd 供應商預設值,而非使用通用的 OpenAI 设定檔。該預設值包含預設的 Base URL、模型、API 測試模式、模型探索行為,以及任何供應商專屬的 UI 欄位。 + +在這裡應積極採用每個任務的模型選擇方式。例如,在需要大量推理的工作流程中,保留 DeepSeek 或 GLM;對於廣泛的中文處理任務,則使用 Qwen 或 Moonshot;而當該帳號能使用程式設計師模型時,則將編碼任務轉交給 Qwen Code。 + +## 端點與認證 + +| 供應商 | 預設模型 | 基底 URL | +|----------|---------------|----------| +| DeepSeek | `deepseek-v4-pro` | `api.deepseek.com` | +| Qwen | `qwen3-235b-a22b` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Qwen Code | `qwen3-coder-plus` | `dashscope.aliyuncs.com/compatible-mode/v1` | +| Doubao | (需要端點 ID) | `ark.cn-beijing.volces.com/api/v3` | +| Moonshot | `kimi-k2-0905-preview` | `api.moonshot.cn/v1` | +| Xiaomi MiMo | `mimo-v2.5-pro` | `api.xiaomimimo.com/v1` | +| GLM | `glm-5` | `open.bigmodel.cn/api/paas/v4` | +| MiniMax | `MiniMax-M2.7` | `api.minimaxi.com/v1` | +| Baidu Qianfan | `ernie-4.5-turbo-32k` | `qianfan.baidubce.com/v2` | +| SiliconFlow | `Qwen/QwQ-32B` | `api.siliconflow.cn/v1` | +| Huawei Cloud MaaS | `DeepSeek-V3` | `api.modelarts-maas.com/v1` | +| Z AI | `glm-5` | `api.z.ai/api/paas/v4` | + +**注意:** Doubao 需要一個 Ark 終點 ID(格式:`ep-xxxxxxxx-xxxx-xxxx`),而非一般的模型名稱。 + +這些供應商大多使用與 OpenAI 相容的共享執行環境,但他們的帳戶與模型語意卻有所不同。除非您已確認該帳戶的替代端點,否則請保持專屬於預設值的 Base URL 不變。 + +## 模型探索 + +DeepSeek、Qwen、Qwen Code、Doubao、Moonshot、Xiaomi MiMo、GLM、Z AI、MiniMax、Baidu Qianfan 與 SiliconFlow 在供應商支援列出功能時,會使用與 OpenAI 相容的模型探索機制。由於 ModelArts 的部署元資料與一般的 `/v1/models` 列表並不相同,因此 Huawei Cloud MaaS 會使用 `huaweicloud-modelarts-models` 模式。 + +不要將探索失敗視為無法進行聊天 的證據。有幾個服務供應商在限制模型清單的權限時,仍允許使用者聊天。在這種情況下,請在個人檔案中保留明確的模型 ID,並透過連線測試來驗證。 + +## 故障排除 + +- 認證成功但聊天失敗:模型名稱可能超出了帳戶的授權範圍或地區限制。 +- 使用普通模型名時 Doubao 會失敗:若您的部署需求如此,請在模型欄位中填入 Ark 端點 ID。 +- 推理回應被截斷:請檢查供應商特定的最大輸出代數,以及 Notemd 的模型相關最大代數設定。 +- 區域網路連線方式會有所不同:若金庫機器位於中國境內,請使用供應商的中國區端點;唯有在帳戶與網路路徑皆有效時,才可使用國際端點。 + +## 何時使用 + +當地延遲、付款/帳戶存取、中文語言品質或成本是主要限制時,請使用中國的服務供應商。若需要更簡化的協定架構或更穩定的跨供應商除錯一致性,則建議選用直接的 OpenAI、Anthropic、Google 或本地供應商。 + +--- + +## 接下來的步驟 + +- [LLM 提供商](/docs/providers/overview) -- 完整的設定、每個任務的模型,以及重試邏輯 +- [故障排除](/docs/advanced/troubleshooting) -- 修復區域連線及認證錯誤 diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/providers/google.mdx b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/providers/google.mdx new file mode 100644 index 00000000..6568138c --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/providers/google.mdx @@ -0,0 +1,67 @@ +--- +id: google +title: "Google" +description: "設定 Google Gemini" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [google, gemini, provider, configuration] +concepts: [Google, Gemini, API Configuration] +citations: + - title: Gemini API + url: https://ai.google.dev + - title: Google AI Studio + url: https://aistudio.google.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# Google 供應商 + +<TLDR> +**Google 使用原生的 Gemini 生成式語言 API 傳輸機制。** 目前的預設值為 `gemini-2.0-flash-exp`、`https://generativelanguage.googleapis.com/v1` 與 `temperature: 0.5`。它並非與 OpenAI 相容的設定檔。 + +這是[Obsidian AI知識管理指南](/docs/pillar-ai-knowledge)的一部分。 +</TLDR> + +## 安裝 + +建立一個具有 Gemini 存取權的 Google AI Studio 或 Google 雲端 API 金鑰,新增一個 `Google` 提供商設定檔,並保留原生的生成式語言基礎 URL。可使用預設的 Gemini Flash 設定檔以實現快速翻譯及廣泛的筆記工作流程,若需要更大或功能更強大的 Gemini 模型,則可針對每個任務覆寫相關模型。 + +請避免在 OpenAI 相容的設定檔中放入 Gemini 模型識別碼,除非您確實使用的是能透過 OpenAI 相容的 API 來呈現 Gemini 的網關。 + +## 端點與認證 + +| 字段 | 目前的預設值 | +|-------|----------------| +| 運輸 | `google` | +| API 金鑰 | 必填項目 | +| 基底 URL | `https://generativelanguage.googleapis.com/v1` | +| 預設模型 | `gemini-2.0-flash-exp` | +| 溫度 | `0.5` | +| 連線測試 | 僅聊天功能 | + +執行階段會呼叫 `/models/{model}:generateContent?key={apiKey}`。該金鑰是以查詢參數的方式傳遞,因為這是外掛程式中原生 Gemini 終點的連線方式。 + +## 模型探索 + +Google 使用 `google-models` 的探索模式。探索功能應該會傳回 API 金鑰可使用的 Gemini 模型;如果選擇器是空的,則需以相同的 Base URL 來測試該金鑰,並確認該帳戶已啟用對應的模型系列。 + +供應商註冊表中已知的輸出字元數上限會根據模型類型而有所不同。如果長篇的翻譯或圖表說明被截斷,請選擇支援更大輸出上限的 Gemini 模型,或降低要求的輸出大小。 + +## 故障排除 + +- `400`:模型 ID 通常無法對應原生的 Gemini 路由,或者請求的格式超出了該模型所支援的範圍。 +- `401` 或 `403`:驗證金鑰限制、專案/API 的啟用狀態,以及該金鑰是否可以存取 Gemini。 +- `404`:在所設定的 API 版本中,無法取得該模型識別碼。 +- 在此設定檔下,網關範例會失敗:請改用預設的網關,而非原生的 Google 提供者。 + +## 何時使用 + +請使用 Google 進行快速翻譯、大量筆記的整理,以及那些 Gemini 的成本/效能平衡表現優於直接使用 OpenAI 或 Anthropic 的工作流程。對於需要支援 OpenAI 相容推理模型的工作流程,則建議選用其他供應商。 + +--- + +## 接下來的步驟 + +- [LLM 提供商](/docs/providers/overview) -- 完整的設定、每個任務的模型,以及重試邏輯 +- [翻譯](/docs/features/translation) -- 對於大量翻譯任務,建議使用 Gemini Flash diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/providers/local.mdx b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/providers/local.mdx new file mode 100644 index 00000000..43784c59 --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/providers/local.mdx @@ -0,0 +1,63 @@ +--- +id: local +title: "本地模型" +description: "設定 Ollama 與本地的 LLMs" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [local, ollama, lmstudio, provider, configuration, offline] +concepts: [Local Models, Ollama, LMStudio, Offline] +citations: + - title: Ollama + url: https://ollama.com + - title: LM Studio + url: https://lmstudio.ai +--- + +import TLDR from '@site/src/components/TLDR'; + +# 本地模型 + +<TLDR> +**本地供應商會將內容儲存在非託管於 API 的位置。** 目前的本地路徑會使用原生的 `ollama` 傳輸方式來處理 Ollama,並透過與 OpenAI 相容的傳輸方式來處理 LMStudio。無論哪種路徑都不需要 API 金鑰,但本地伺服器與模型必須已經在運作中。 + +這是[Obsidian AI知識管理指南](/docs/pillar-ai-knowledge)的一部分。 +</TLDR> + +## 安裝 + +對於 Ollama,請安裝 Ollama,下載您想要的模型,啟動伺服器,並在 Notemd 中新增一個 `Ollama` 提供者設定檔。對於 LMStudio,則要在 LM Studio 的本機伺服器中載入模型,並新增一個 `LMStudio` 提供者設定檔。 + +本地模型是運作上的依賴項目,而非僅僅是設定。Notemd 只能呼叫本地程序所公開的功能,因此在除錯外掛程式之前,請先在 Obsidian 外部驗證本地模型。 + +## 端點與認證 + +| 供應商 | 基底 URL | 預設模型 | API 金鑰 | 備註 | +|----------|----------|---------------|---------|-------| +| Ollama | `localhost:11434/api` | `llama3` | 不需要 | NDJSON串流;透過`/api/tags`進行模型探索 | +| LMStudio | `localhost:1234/v1` | `local-model` | 不需要 | 傳送 `"EMPTY"` 作為承載令牌;相容於 OpenAI | + +Ollama 會在其 Base URL 下方使用本地的 `/chat` 路徑。LMStudio 則遵循與 OpenAI 相容的 `chat/completions` 路由,並期望使用在本地伺服器上載入的模型。 + +## 模型探索 + +Ollama 使用 `ollama-tags` 的探索模式,並列出本機取得的標籤。當其伺服器提供 `/v1/models` 時,LMStudio 會使用與 OpenAI 相容的模型探索功能。 + +如果探索功能沒有返回任何結果,那通常是本地伺服器狀態的問題:模型未被下載、未載入,或是伺服器的連接主機/端口與設定檔中的不同。 + +## 故障排除 + +- 連線被拒:請啟動 Ollama 或 LM Studio,並確認所設定的連接埠。 +- 未找到模型:請在測試前拉取 Ollama 標籤或載入 LM Studio 模型。 +- 輸出速度慢:請降低上下文大小、使用較小的本地模型,或將繁重的任務交給託管服務供應商處理。 +- 空值或格式錯誤的回應:請確認所選的供應商設定檔符合本機伺服器協定;Ollama 與 LMStudio 無法互相替換。 + +## 何時使用 + +對於私人金庫、離線工作或廉價的重複性任務,可使用本地供應商。請勿認為本地方案在研究綜合或長時間推理方面就一定更優;模型品質與硬體限制才是需要權衡的因素。 + +--- + +## 接下來的步驟 + +- [LLM 提供商](/docs/providers/overview) -- 完整的設定與每個任務的模型配置 +- [故障排除](/docs/advanced/troubleshooting) -- 解決當本機伺服器未運作時出現的 connection-refused 錯誤 diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/providers/openai.mdx b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/providers/openai.mdx new file mode 100644 index 00000000..a011d5cb --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/providers/openai.mdx @@ -0,0 +1,67 @@ +--- +id: openai +title: "OpenAI" +description: "設定 OpenAI(GPT-4、GPT-4o)" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [openai, gpt-4o, provider, configuration] +concepts: [OpenAI, GPT-4o, API Configuration] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: GPT-4 + url: https://openai.com/gpt-4 +--- + +import TLDR from '@site/src/components/TLDR'; + +# OpenAI 供應商 + +<TLDR> +**OpenAI 使用與 OpenAI 相容的共用傳輸方式。** 目前的預設值為 `gpt-4o`、`https://api.openai.com/v1`、`temperature: 0.5`,以及 `models-then-chat` 連線測試。當您需要精確的欄位語意時,請使用此頁面;若要進行類別層級的選擇,請參考 [LLM 提供商](/docs/providers/overview) 的概覽。 + +這是[Obsidian AI知識管理指南](/docs/pillar-ai-knowledge)的一部分。 +</TLDR> + +## 安裝 + +建立一個 OpenAI API 金鑰,在 Notemd 設定中加入 `OpenAI` 提供者設定檔,並保持預設的 Base URL,除非您是刻意指定使用支援 OpenAI 的網關。模型欄位在一般用途時可保留為 `gpt-4o`,或改用帳戶能呼叫的其他 OpenAI 模型 ID。 + +運用專案特定的模型來控制成本:將更強大的模型保留用於研究、概念抽取及長篇內容的重構;則使用較便宜或速度較快的模型來處理翻譯、連結建議及簡短摘要。 + +## 端點與認證 + +| 字段 | 目前的預設值 | +|-------|----------------| +| 運輸 | `openai-compatible` | +| API 金鑰 | 必填項目 | +| 基底 URL | `https://api.openai.com/v1` | +| 預設模型 | `gpt-4o` | +| 溫度 | `0.5` | +| 連線測試 | `/models`,接著是 `/chat/completions` | + +Notemd會在附加 `chat/completions` 或 `models` 之前,將相容於 OpenAI 的基底 URLs 進行標準化處理。在基底 URL 中不要包含尾隨的 `/chat/completions`,否則會造成路徑重複。 + +## 模型探索 + +OpenAI 使用通用的 OpenAI 相容型模型探索路徑。設定 UI 會先詢問 `/v1/models`,再透過簡易的聊天請求來驗證所選的模型。如果模型探索失敗但聊天功能仍正常,請檢查您的金鑰是否有模型列表的權限,或是是否有閘道阻擋了模型列表的顯示。 + +推理模型被視為協定中的邊緣情況: Notemd 會將系統與使用者的提示內容合併,以產生用於 OpenAI 推理的 ID,這些 ID 會拒絕使用獨立的 `system` 角色,且僅在供應商定義支援時才會顯示 `reasoningEffort`。 + +## 故障排除 + +- `401` 或 `403`:驗證金鑰、專案存取權、帳單狀態,以及所選模型是否已為該金鑰啟用。 +- `404` 在聊天中說:Base URL 通常都是錯的,或者已經包含 `/chat/completions` 了。 +- 模型雖出現在文件說明中,但並不在選擇器中:model-list 的存取與 chat 的存取是兩個不同的故障點;請在供應商設定檔中手動測試正確的模型 ID。 +- 推理模型拒絕處理訊息:請使用屬於 OpenAI 推理處理路徑的模型 ID,或改用非推理型聊天模型。 + +## 何時使用 + +當您需要最可預測的預設託管路徑、 `/v1/models` 的探索功能很重要,或是工作流程取決於 OpenAI 推理模型之語意時,請使用 OpenAI。若在路由、隱私或成本控制方面比直接的 OpenAI API 行為更為重要,則建議選用閘道或本地供應商。 + +--- + +## 接下來的步驟 + +- [LLM 提供商](/docs/providers/overview) -- 完整的設定、每個任務的模型,以及重試邏輯 +- [故障排除](/docs/advanced/troubleshooting) -- 解決 401/403 與速率限制錯誤 diff --git a/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/providers/overview.mdx b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/providers/overview.mdx new file mode 100644 index 00000000..7359dd9b --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-plugin-content-docs/current/providers/overview.mdx @@ -0,0 +1,189 @@ +--- +id: overview +title: "LLM 提供服務商" +description: "設定 36 個 LLM 提供者——雲端、閘道及本地——並搭配每任務的模型選擇功能" +author: + '@id': 'https://jacobinwwey.github.io/obsidian-NotEMD/#person-jacobinwwey' +keywords: [LLM providers, API, OpenAI, Anthropic, Google, DeepSeek, Qwen, Ollama, per-task model] +concepts: [LLM Integration, API Providers, Per-Task Models, OpenAI Compatible, Ollama, China Providers] +citations: + - title: OpenAI API + url: https://platform.openai.com + - title: Anthropic API + url: https://docs.anthropic.com +--- + +import TLDR from '@site/src/components/TLDR'; + +# LLM 提供服務商 + +<TLDR> +**Notemd 支持 4 種傳輸類型下的 36 個 LLM 提供商。** 所有的 API 呼叫皆使用原始的 HTTP(無需 SDK),並具備自動重試、傳輸路徑備用以及 5 分鐘的回應快取功能。透過依任務選擇模型,您可以使用低成本的模型進行概念抽取,或使用強大的模型進行研究。對於本地提供商(Ollama、LMStudio),不需要 API 金鑰。 +</TLDR> + +這是[Obsidian AI知識管理指南](/docs/pillar-ai-knowledge)的一部分。 + +## 供應商類別 + +### 雲端服務供應商 + +| 供應商 | 預設基準 URL | 預設模型 | 溫度 | +|----------|-----------------|---------------|-------------| +| **DeepSeek** | `api.deepseek.com` | `deepseek-v4-pro` | 0.5 | +| **OpenAI** | `api.openai.com/v1` | `gpt-4o` | 0.5 | +| **Anthropic** | `api.anthropic.com` | `claude-3-5-sonnet-20240620` | 0.5 | +| **Google** | `generativelanguage.googleapis.com/v1` | `gemini-2.0-flash-exp` | 0.5 | +| **Mistral** | `api.mistral.ai/v1` | `mistral-large-latest` | 0.5 | +| **xAI** | `api.x.ai/v1` | `grok-4` | 0.7 | +| **Cerebras** | `api.cerebras.ai/v1` | `gpt-oss-120b` | 0.5 | +| **Fireworks** | `api.fireworks.ai/inference/v1` | `kimi-k2p5` | 0.5 | +| **Nebius** | `api.studio.nebius.com/v1` | `openai/gpt-oss-120b` | 0.3 | + +### 網關/代理伺服器供應商 + +| 供應商 | 預設基準 URL | 預設模型 | 備註 | +|----------|-----------------|---------------|-------| +| **OpenRouter** | `openrouter.ai/api/v1` | `anthropic/claude-3.7-sonnet` | 新增 `HTTP-Referer` + `X-Title` 標頭 | +| **GitHub Models** | `models.github.ai/inference` | `gpt-4o-mini` | 新增 `X-GitHub-Api-Version` 標頭 | +| **AIHubMix** | `aihubmix.com/v1` | `gpt-4o-mini` | 新增 `APP-Code` 標頭 | +| **PPIO** | `api.ppinfra.com/v3/openai` | `qwen/qwen3-32b` | | +| **Hugging Face** | `router.huggingface.co/v1` | `openai/gpt-oss-120b` | | +| **Vercel AI Gateway** | `ai-gateway.vercel.sh/v1` | `anthropic/claude-sonnet-4.5` | | +| **Requesty** | `router.requesty.ai/v1` | `anthropic/claude-3-7-sonnet-latest` | | +| **Together** | `api.together.xyz/v1` | `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` | | +| **LiteLLM** | `localhost:4000/v1` | `your-proxy-model` | 可選的 API 金鑰 | +| **全新 API** | `localhost:3000/v1` | `gpt-4.1` | 可選的 API 金鑰 | +| **OpenAI Compatible** | (使用者自訂) | `your-model-id` | 自訂端點 | + +### 中國供應商 + +| 供應商 | 預設基準 URL | 預設模型 | 備註 | +|----------|-----------------|---------------|-------| +| **Qwen** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-235b-a22b` | Alibaba DashScope | +| **Qwen Code** | `dashscope.aliyuncs.com/compatible-mode/v1` | `qwen3-coder-plus` | 以編程為核心 | +| **Doubao** | `ark.cn-beijing.volces.com/api/v3` | (需要端點 ID) | ByteDance Volcengine | +| **Moonshot** | `api.moonshot.cn/v1` | `kimi-k2-0905-preview` | Kimi | +| **Xiaomi MiMo** | `api.xiaomimimo.com/v1` | `mimo-v2.5-pro` | | +| **GLM** | `open.bigmodel.cn/api/paas/v4` | `glm-5` | 中國的支浦端點 | +| **Z AI** | `api.z.ai/api/paas/v4` | `glm-5` | Zhipu,國際端點 | +| **MiniMax** | `api.minimaxi.com/v1` | `MiniMax-M2.7` | | +| **Baidu Qianfan** | `qianfan.baidubce.com/v2` | `ernie-4.5-turbo-32k` | | +| **SiliconFlow** | `api.siliconflow.cn/v1` | `Qwen/QwQ-32B` | 模型託管平台 | +| **Huawei Cloud MaaS** | `api.modelarts-maas.com/v1` | `DeepSeek-V3` | | + +**Doubao 需要一個 Ark 終點 ID**(格式:`ep-xxxxxxxx-xxxx-xxxx`)。預設的佔位符必須被替換。 + +### 本地供應商 + +| 供應商 | 預設基準 URL | 預設模型 | 備註 | +|----------|-----------------|---------------|-------| +| **Ollama** | `localhost:11434/api` | `llama3` | 沒有 API 金鑰。正在進行 NDJSON 流式傳輸。透過 `/api/tags` 進行模型探索 | +| **LMStudio** | `localhost:1234/v1` | `local-model` | 傳送 `"EMPTY"` 作為承載令牌。支援 OpenAI 的發現功能 | +| **OVMS** | `localhost:8000/v3` | `openvino-model` | OpenVINO 模型伺服器 | +| **Azure OpenAI** | (使用者自訂) | `gpt-4o` | 部署名稱位於 URL 中。`api-key` 標頭 | + +## 每任務模型選擇 + +Notemd 支持為每個任務配置獨立的供應商與模型。可透過 `useMultiModelSettings: true` 啟用。 + +### 可用的任務 + +| 任務 | 設定金鑰 | 預設供應商 | +|------|-------------|-----------------| +| 新增連結(維基連結插入) | `addLinksProvider` / `addLinksModel` | DeepSeek | +| 研究(網路搜尋 + 總結) | `researchProvider` / `researchModel` | DeepSeek | +| 根據標題產生 | `generateTitleProvider` / `generateTitleModel` | DeepSeek | +| 翻譯 | `translateProvider` / `translateModel` | DeepSeek | +| 圖表產生 | `summarizeToMermaidProvider` / `Model` | DeepSeek | +| 概念抽取 | `extractConceptsProvider` / `Model` | DeepSeek | +| 原始文字提取 | `extractOriginalTextProvider` / `Model` | DeepSeek | + +### 解析順序 + +1. 如果 `useMultiModelSettings` 為開啟狀態 → 使用該任務專用的提供者與模型 +2. 如果任務模型覆寫值為空 → 回退至提供者的預設模型 +3. 如果任務提供者無效 → 回退至全局 `activeProvider` +4. 如果 `useMultiModelSettings` 關閉 → 所有任務都會使用全局的 `activeProvider` + +### 推薦的設定方案 + +``` +# Researcher: power for research, cheap for everything else +activeProvider: DeepSeek +extractConceptsProvider: DeepSeek +researchProvider: OpenAI # GPT-4o for better research quality +summarizeToMermaidProvider: DeepSeek + +# Privacy-first: local only +activeProvider: Ollama +addLinksProvider: Ollama +extractConceptsProvider: Ollama + +# Budget bilingual +activeProvider: DeepSeek +translateProvider: Google # Gemini Flash for translation +researchProvider: SiliconFlow # Cheaper China-based routing +``` + +## API 呼叫架構 + +### 傳輸層 + +1. **Obsidian `requestUrl`** — 主要版本(內建,適用於所有平台) +2. **桌面版 HTTP** — Node.js `http`/`https` 模組(串流處理 + 長時間請求) +3. **Web `fetch`** — 當 Node.js 模組無法使用時的備用方案 + +當網路出現暫時性錯誤時,此外掛程式會自動在不同的傳輸方式之間切換。 + +### 重試邏輯 + +- **正常模式** (`enableStableApiCall: false`):僅嘗試一次。若出現暫時性失敗,會自動升級為穩定的重試機制。 +- **穩定重試模式** (`enableStableApiCall: true`):最多進行 4 次嘗試(1 次初次嘗試 + 3 次重試),每次間隔 5 秒。 +- **會觸發重試的暫時性錯誤**:`err_connection_closed`, `err_connection_reset`, `err_timed_out`, `econnreset`, `econnaborted`, `etimedout`, `socket hang up`, `network request failed` +- **無法重試**:HTTP 400、401、403、404 + +### 回應快取 + +以供應商 + 模型 + 温度 + 提示詞 + 內容作為鍵值,建立5分鐘內存的LRU快取。在5分鐘內的後續相同請求可立即返回快取中的結果。 + +### 推理模型處理 + +不支援 `system` 角色(DeepSeek R1、OpenAI o1/o3/o4/gpt-5)的模型,會自動將系統提示與使用者提示合併為一則單一的用戶訊息。 + +DeepSeek-specific: `thinkingEnabled` 會在請求中加入 `{ thinking: { type: 'enabled' } }`。 `reasoningEffort`(低/中/高)會以 `reasoning_effort` 的形式傳遞。當開啟思考模式時,會驗證最大輸出代碼數量是否 ≥ 8000。 + +### 令牌估計 + +`estimateTokens(text)`: `Math.ceil(text.length / 4)` — 每個代碼片為 4 個字元的規則。用於在傳送至 LLM 之前強制符合 `maxResearchContentTokens` 的要求。 + +尚未實作成本追蹤功能。 + +## 模型探索 + +| 模式 | 供應商 | 端點 | +|------|-----------|----------| +| `ollama-tags` | Ollama | `/api/tags` | +| `google-models` | Google | 型號列表 API | +| `anthropic-models` | Anthropic | 型號列表 API | +| `openai-compatible-models` | DeepSeek、Qwen、Mistral 等等。 | `/v1/models` | +| `openrouter-models` | OpenRouter | 型號列表 API | +| `github-models` | GitHub Models | 推論 API | +| `none` | Azure OpenAI | 已停用(需要部署名) | + +## 快速入門 + +1. **選擇供應商** — DeepSeek(中國),OpenAI(國際),或 Ollama(本地/免費) +2. **輸入 API 金鑰** — 設定 → Notemd → 提供者 → API 金鑰 +3. **測試連線** — 按下測試按鈕 +4. **可選:單任務模型** — 啟用 `useMultiModelSettings` 並分別進行設定 + +對於 Ollama:不需要 API 金鑰。只要確保 `ollama serve` 正在運作即可。 + +--- + +## 接下來的步驟 + +- 📝 [概念說明](/docs/features/concept-notes) — 使用任務別抽取模型 +- 🎨 [圖表](/docs/features/diagrams) — 使用每任務圖表模型 +- 🔍 [研究](/docs/features/research) — 使用專為研究設計的模型 +- ⚙️ [Configuration](/docs/getting-started/configuration) — 完整設定參考手冊 diff --git a/website/i18n/zh-TW/docusaurus-theme-classic/footer.json b/website/i18n/zh-TW/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..7a74ed34 --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-theme-classic/footer.json @@ -0,0 +1,42 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Getting Started": { + "message": "Getting Started", + "description": "The label of footer link with label=Getting Started linking to /docs/intro" + }, + "link.item.label.FAQ": { + "message": "FAQ", + "description": "The label of footer link with label=FAQ linking to /docs/faq" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/qnGgsQ9W" + }, + "link.item.label.GitHub Discussions": { + "message": "GitHub Discussions", + "description": "The label of footer link with label=GitHub Discussions linking to https://github.com/Jacobinwwey/obsidian-NotEMD/discussions" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/Jacobinwwey/obsidian-NotEMD" + }, + "link.item.label.Sponsor": { + "message": "Sponsor", + "description": "The label of footer link with label=Sponsor linking to https://github.com/sponsors/Jacobinwwey" + }, + "copyright": { + "message": "Copyright © 2026 Notemd. Built with Docusaurus. | <a href=\"https://github.com/Jacobinwwey/obsidian-NotEMD/blob/main/LICENSE\">MIT License</a>", + "description": "The footer copyright" + } +} diff --git a/website/i18n/zh-TW/docusaurus-theme-classic/navbar.json b/website/i18n/zh-TW/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..0deee29a --- /dev/null +++ b/website/i18n/zh-TW/docusaurus-theme-classic/navbar.json @@ -0,0 +1,22 @@ +{ + "title": { + "message": "Notemd", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Notemd logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.FAQ": { + "message": "FAQ", + "description": "Navbar item with label FAQ" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + } +} diff --git a/website/scripts/audit-build.cjs b/website/scripts/audit-build.cjs index 6fbba5d1..c8c020b7 100644 --- a/website/scripts/audit-build.cjs +++ b/website/scripts/audit-build.cjs @@ -13,15 +13,8 @@ const zhRoot = `${siteRoot}zh-CN/`; const zhBasePath = `${basePath}zh-CN/`; const expectedSoftwareVersion = '1.9.3'; const providerSourceRoot = path.join(websiteRoot, 'docs', 'providers'); -const supportedLocalizedLocales = [ - {locale: 'zh-CN', htmlLang: 'zh-CN', name: 'Simplified Chinese'}, - {locale: 'zh-Hant', htmlLang: 'zh-Hant', name: 'Traditional Chinese'}, - {locale: 'ja', htmlLang: 'ja-JP', name: 'Japanese'}, - {locale: 'fr', htmlLang: 'fr-FR', name: 'French'}, - {locale: 'de', htmlLang: 'de-DE', name: 'German'}, - {locale: 'es', htmlLang: 'es-ES', name: 'Spanish'}, - {locale: 'ko', htmlLang: 'ko-KR', name: 'Korean'}, -]; +let supportedLocalizedLocales = []; +let publishedLanguageScopeText = ''; const localizedFillerMarkers = [ '这一部分解释产品行为', '這一部分說明產品行為', @@ -32,6 +25,7 @@ const localizedFillerMarkers = [ '제품 동작', ]; const placeholderPollutionPattern = /NMDPH|NMDSEGMENT|@@\d+@@/; +const trailingWhitespacePattern = /[ \t]+$/m; const providerDetailHeadings = [ '## Setup', '## Endpoint And Authentication', @@ -207,6 +201,9 @@ function auditLocalizedSourceTextIntegrity() { if (placeholderPollutionPattern.test(localizedContent)) { fail(`${context} contains placeholder pollution`); } + if (trailingWhitespacePattern.test(localizedContent)) { + fail(`${context} contains trailing whitespace`); + } const englishHeadings = markdownHeadings(englishContent).map((heading) => heading.level); const localizedHeadings = markdownHeadings(localizedContent).map((heading) => heading.level); @@ -326,6 +323,16 @@ function auditHomepageRoutes(languageScope) { } } +async function loadPublishedLocales() { + const moduleUrl = pathToFileURL(path.join(websiteRoot, 'src', 'lib', 'publishedLocales.mjs')).href; + const locales = await import(moduleUrl); + supportedLocalizedLocales = locales.publishedDocumentationLocales || []; + publishedLanguageScopeText = locales.publishedLanguageScopeSentence(); + if (!supportedLocalizedLocales.length || !publishedLanguageScopeText) { + fail('Published locale metadata must define documentation locales and language scope text'); + } +} + function auditZhCnDocFallbacks(languageScope) { if (!fs.existsSync(zhDocsRoot)) { fail('Missing zh-CN docs build directory'); @@ -441,7 +448,7 @@ function auditAiRetrievalMap(languageScope) { for (const {locale} of supportedLocalizedLocales) { assertContains(llmsText, `${siteRoot}${locale}/docs/intro`, 'llms.txt'); } - assertContains(llmsText, 'The public docs route set is available in English, Simplified Chinese, Traditional Chinese, Japanese, French, German, Spanish, and Korean.', 'llms.txt'); + assertContains(llmsText, publishedLanguageScopeText, 'llms.txt'); } function auditLocalizedDocBuildCoverage(languageScope) { @@ -658,6 +665,7 @@ function auditGeneratedTextIntegrity() { } async function main() { + await loadPublishedLocales(); const languageScope = await loadPublishedLanguageScope(); auditRequiredFiles(); auditGeneratedTextIntegrity(); diff --git a/website/scripts/generate-localized-docs.cjs b/website/scripts/generate-localized-docs.cjs index b1c8d897..1f91312b 100644 --- a/website/scripts/generate-localized-docs.cjs +++ b/website/scripts/generate-localized-docs.cjs @@ -1,5 +1,6 @@ const fs = require('fs'); const path = require('path'); +const {pathToFileURL} = require('url'); const root = path.join(__dirname, '..'); const docsRoot = path.join(root, 'docs'); @@ -746,7 +747,7 @@ function writeJson(filePath, value) { } function writeTranslationJson(locale) { - const ui = locales[locale]; + const ui = locales[locale] || defaultUiChrome; writeJson(path.join(i18nRoot, locale, 'docusaurus-plugin-content-docs', 'current.json'), { 'version.label': { message: ui.next, @@ -795,8 +796,34 @@ function writeTranslationJson(locale) { }); } +const defaultCodeJsonValues = { + edit: 'Edit this page', + lastUpdated: 'Last updated on', + next: 'Next page', + previous: 'Previous page', + search: 'Search', + noResults: 'No results found', + seeAll: 'See all results', + toc: 'On this page', + skip: 'Skip to main content', + breadcrumbs: 'Breadcrumbs', + docsSidebar: 'Docs sidebar', + mainNav: 'Main navigation', + backToTop: 'Back to top', + copy: 'Copy', + copied: 'Copied', + copyAria: 'Copy code to clipboard', + notFoundTitle: 'Page not found', + notFoundBody: 'We could not find the page you were looking for.', + language: 'Language', + colorToggle: 'Switch between dark and light mode', + close: 'Close', + expand: 'Expand sidebar', + collapse: 'Collapse sidebar', +}; + function codeJsonFor(locale) { - const values = { + const values = ({ 'zh-Hant': { edit: '編輯此頁', lastUpdated: '最後更新於', @@ -947,11 +974,8 @@ function codeJsonFor(locale) { expand: '사이드바 펼치기', collapse: '사이드바 접기', }, - }[locale]; - - if (!values) { - return undefined; - } + })[locale] || defaultCodeJsonValues; + const ui = locales[locale] || defaultUiChrome; return { 'theme.colorToggle.ariaLabel': {message: values.colorToggle, description: 'The ARIA label for the color mode toggle'}, @@ -977,7 +1001,7 @@ function codeJsonFor(locale) { 'theme.CodeBlock.copy': {message: values.copy, description: 'The copy button label on code blocks'}, 'theme.CodeBlock.copied': {message: values.copied, description: 'The copied button label on code blocks'}, 'theme.CodeBlock.copyButtonAriaLabel': {message: values.copyAria, description: 'The ARIA label for copy code blocks button'}, - 'theme.docs.breadcrumbs.home': {message: locales[locale].docs, description: 'The ARIA label for the home page in the breadcrumbs'}, + 'theme.docs.breadcrumbs.home': {message: ui.docs, description: 'The ARIA label for the home page in the breadcrumbs'}, 'theme.docs.sidebar.navAriaLabel': {message: values.docsSidebar, description: 'The ARIA label for the sidebar navigation'}, 'theme.docs.sidebar.toggleSidebarButtonAriaLabel': {message: values.expand, description: 'The ARIA label for hamburger menu button of mobile navigation'}, 'theme.common.skipToMainContent': {message: values.skip, description: 'The skip to content label used for accessibility'}, @@ -989,14 +1013,35 @@ function writeCodeJson(locale) { return; } const codeJson = codeJsonFor(locale); - if (codeJson) { - writeJson(path.join(i18nRoot, locale, 'code.json'), codeJson); - } + writeJson(path.join(i18nRoot, locale, 'code.json'), codeJson); } -function generateDocs() { +const defaultUiChrome = { + next: 'Next', + docs: 'Docs', + faq: 'FAQ', + gettingStarted: 'Getting Started', + coreFeatures: 'Core Features', + providers: 'LLM Providers', + advanced: 'Advanced', + community: 'Community', + more: 'More', + sponsor: 'Sponsor', + logoAlt: 'Notemd logo', + built: 'Built with Docusaurus.', + license: 'MIT License', +}; + +async function loadPublishedDocumentationLocales() { + const moduleUrl = pathToFileURL(path.join(root, 'src', 'lib', 'publishedLocales.mjs')).href; + const {publishedDocumentationLocales} = await import(moduleUrl); + return publishedDocumentationLocales; +} + +async function generateDocs() { + const publishedDocumentationLocales = await loadPublishedDocumentationLocales(); const sourceFiles = listMdxFiles(docsRoot); - for (const [locale] of Object.entries(locales)) { + for (const {locale} of publishedDocumentationLocales) { const targetRoot = path.join(i18nRoot, locale, 'docusaurus-plugin-content-docs', 'current'); ensureDir(targetRoot); for (const sourceFile of sourceFiles) { @@ -1017,4 +1062,7 @@ function generateDocs() { } } -generateDocs(); +generateDocs().catch((error) => { + console.error(error); + process.exitCode = 1; +}); diff --git a/website/src/lib/languageRoutePolicy.js b/website/src/lib/languageRoutePolicy.js index 22a2ab94..4050f844 100644 --- a/website/src/lib/languageRoutePolicy.js +++ b/website/src/lib/languageRoutePolicy.js @@ -1,6 +1,7 @@ import {isPublishedZhCnDocPath, normalizeDocPath} from './publishedLanguageScope'; +import {publishedDocumentationLocaleCodes} from './publishedLocales.mjs'; -const localizedSitePrefixes = ['zh-CN', 'zh-Hant', 'ja', 'fr', 'de', 'es', 'ko']; +const localizedSitePrefixes = publishedDocumentationLocaleCodes; function normalizeBasePath(baseUrl) { if (!baseUrl || baseUrl === '/') { diff --git a/website/src/lib/publishedLocales.mjs b/website/src/lib/publishedLocales.mjs new file mode 100644 index 00000000..20505f84 --- /dev/null +++ b/website/src/lib/publishedLocales.mjs @@ -0,0 +1,54 @@ +export const publishedLocales = [ + {locale: 'en', label: 'English', direction: 'ltr', htmlLang: 'en-US', englishName: 'English'}, + {locale: 'zh-CN', label: '简体中文', direction: 'ltr', htmlLang: 'zh-CN', englishName: 'Simplified Chinese'}, + {locale: 'zh-Hant', label: '繁體中文', direction: 'ltr', htmlLang: 'zh-Hant', englishName: 'Traditional Chinese'}, + {locale: 'zh-TW', label: '繁體中文(台灣)', direction: 'ltr', htmlLang: 'zh-TW', englishName: 'Traditional Chinese for Taiwan'}, + {locale: 'ja', label: '日本語', direction: 'ltr', htmlLang: 'ja-JP', englishName: 'Japanese'}, + {locale: 'fr', label: 'Français', direction: 'ltr', htmlLang: 'fr-FR', englishName: 'French'}, + {locale: 'de', label: 'Deutsch', direction: 'ltr', htmlLang: 'de-DE', englishName: 'German'}, + {locale: 'es', label: 'Español', direction: 'ltr', htmlLang: 'es-ES', englishName: 'Spanish'}, + {locale: 'ko', label: '한국어', direction: 'ltr', htmlLang: 'ko-KR', englishName: 'Korean'}, + {locale: 'it', label: 'Italiano', direction: 'ltr', htmlLang: 'it-IT', englishName: 'Italian'}, + {locale: 'pt', label: 'Português', direction: 'ltr', htmlLang: 'pt-PT', englishName: 'Portuguese'}, + {locale: 'pt-BR', label: 'Português (Brasil)', direction: 'ltr', htmlLang: 'pt-BR', englishName: 'Brazilian Portuguese'}, + {locale: 'ru', label: 'Русский', direction: 'ltr', htmlLang: 'ru-RU', englishName: 'Russian'}, + {locale: 'ar', label: 'العربية', direction: 'rtl', htmlLang: 'ar', englishName: 'Arabic'}, + {locale: 'fa', label: 'فارسی', direction: 'rtl', htmlLang: 'fa', englishName: 'Persian'}, + {locale: 'hi', label: 'हिन्दी', direction: 'ltr', htmlLang: 'hi-IN', englishName: 'Hindi'}, + {locale: 'bn', label: 'বাংলা', direction: 'ltr', htmlLang: 'bn-BD', englishName: 'Bengali'}, + {locale: 'nl', label: 'Nederlands', direction: 'ltr', htmlLang: 'nl-NL', englishName: 'Dutch'}, + {locale: 'sv', label: 'Svenska', direction: 'ltr', htmlLang: 'sv-SE', englishName: 'Swedish'}, + {locale: 'fi', label: 'Suomi', direction: 'ltr', htmlLang: 'fi-FI', englishName: 'Finnish'}, + {locale: 'da', label: 'Dansk', direction: 'ltr', htmlLang: 'da-DK', englishName: 'Danish'}, + {locale: 'no', label: 'Norsk', direction: 'ltr', htmlLang: 'no', englishName: 'Norwegian'}, + {locale: 'pl', label: 'Polski', direction: 'ltr', htmlLang: 'pl-PL', englishName: 'Polish'}, + {locale: 'tr', label: 'Türkçe', direction: 'ltr', htmlLang: 'tr-TR', englishName: 'Turkish'}, + {locale: 'he', label: 'עברית', direction: 'rtl', htmlLang: 'he', englishName: 'Hebrew'}, + {locale: 'th', label: 'ไทย', direction: 'ltr', htmlLang: 'th-TH', englishName: 'Thai'}, + {locale: 'el', label: 'Ελληνικά', direction: 'ltr', htmlLang: 'el-GR', englishName: 'Greek'}, + {locale: 'cs', label: 'Čeština', direction: 'ltr', htmlLang: 'cs-CZ', englishName: 'Czech'}, + {locale: 'hu', label: 'Magyar', direction: 'ltr', htmlLang: 'hu-HU', englishName: 'Hungarian'}, + {locale: 'ro', label: 'Română', direction: 'ltr', htmlLang: 'ro-RO', englishName: 'Romanian'}, + {locale: 'uk', label: 'Українська', direction: 'ltr', htmlLang: 'uk-UA', englishName: 'Ukrainian'}, + {locale: 'vi', label: 'Tiếng Việt', direction: 'ltr', htmlLang: 'vi-VN', englishName: 'Vietnamese'}, + {locale: 'id', label: 'Bahasa Indonesia', direction: 'ltr', htmlLang: 'id-ID', englishName: 'Indonesian'}, + {locale: 'ms', label: 'Bahasa Melayu', direction: 'ltr', htmlLang: 'ms-MY', englishName: 'Malay'}, +]; + +export const publishedDocumentationLocales = publishedLocales.filter(({locale}) => locale !== 'en'); +export const publishedLocaleCodes = publishedLocales.map(({locale}) => locale); +export const publishedDocumentationLocaleCodes = publishedDocumentationLocales.map(({locale}) => locale); +export const publishedDocumentationLanguageNames = publishedDocumentationLocales.map(({englishName}) => englishName); + +export function publishedLocaleConfigMap() { + return Object.fromEntries( + publishedLocales.map(({locale, label, direction, htmlLang}) => [ + locale, + {label, direction, htmlLang}, + ]), + ); +} + +export function publishedLanguageScopeSentence() { + return `The public docs route set is available in English, ${publishedDocumentationLanguageNames.join(', ')}.`; +} diff --git a/website/src/pages/index.js b/website/src/pages/index.js index 14aa3c91..a80021b6 100644 --- a/website/src/pages/index.js +++ b/website/src/pages/index.js @@ -82,7 +82,7 @@ const copyByLocale = { retrievalHeading: 'Answer engine 来源地图', retrievalLead: '项目网页现在公开展示与 llms.txt、sitemap、hreflang metadata 和 JSON-LD 一致的 canonical routes。AI search 与引用场景应以这些页面为真值来源。', - languageBoundary: '语言边界:英文、简体中文、繁体中文、日语、法语、德语、西班牙语和韩语均暴露完整 docs 路由集。', + languageBoundary: '语言边界:英文与 README / UI locale 发布矩阵声明的全部文档语言均暴露完整 docs 路由集。', retrievalLinks: [ { title: 'llms.txt 检索地图', diff --git a/website/static/llms.txt b/website/static/llms.txt index 2283aa4c..e6056cf9 100644 --- a/website/static/llms.txt +++ b/website/static/llms.txt @@ -39,16 +39,42 @@ Answer-engine source map: https://jacobinwwey.github.io/obsidian-NotEMD/llms.txt ## Language Scope - English remains the canonical source surface. -- The public docs route set is available in English, Simplified Chinese, Traditional Chinese, Japanese, French, German, Spanish, and Korean. +- The public docs route set is available in English, Simplified Chinese, Traditional Chinese, Traditional Chinese for Taiwan, Japanese, French, German, Spanish, Korean, Italian, Portuguese, Brazilian Portuguese, Russian, Arabic, Persian, Hindi, Bengali, Dutch, Swedish, Finnish, Danish, Norwegian, Polish, Turkish, Hebrew, Thai, Greek, Czech, Hungarian, Romanian, Ukrainian, Vietnamese, Indonesian, Malay. - Localized documentation entrypoints: - https://jacobinwwey.github.io/obsidian-NotEMD/zh-CN/ - https://jacobinwwey.github.io/obsidian-NotEMD/zh-CN/docs/intro - https://jacobinwwey.github.io/obsidian-NotEMD/zh-Hant/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/zh-TW/docs/intro - https://jacobinwwey.github.io/obsidian-NotEMD/ja/docs/intro - https://jacobinwwey.github.io/obsidian-NotEMD/fr/docs/intro - https://jacobinwwey.github.io/obsidian-NotEMD/de/docs/intro - https://jacobinwwey.github.io/obsidian-NotEMD/es/docs/intro - https://jacobinwwey.github.io/obsidian-NotEMD/ko/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/it/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/pt/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/pt-BR/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/ru/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/ar/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/fa/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/hi/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/bn/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/nl/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/sv/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/fi/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/da/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/no/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/pl/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/tr/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/he/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/th/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/el/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/cs/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/hu/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/ro/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/uk/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/vi/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/id/docs/intro + - https://jacobinwwey.github.io/obsidian-NotEMD/ms/docs/intro - Simplified Chinese full docs route set: - https://jacobinwwey.github.io/obsidian-NotEMD/zh-CN/docs/advanced/custom-prompts - https://jacobinwwey.github.io/obsidian-NotEMD/zh-CN/docs/advanced/batch-processing