docs(website): publish all README language docs routes

Add the README/UI locale matrix as the website documentation publishing source of truth, expand localized Docusaurus docs routes for every supported locale, and align GEO/Pages audits with the full multilingual route contract.
This commit is contained in:
aliyun1121003339 2026-07-08 02:39:26 +08:00
parent 89bc176760
commit eda64039cd
667 changed files with 105948 additions and 109 deletions

View file

@ -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/<locale>/docusaurus-plugin-content-docs/current/**` |
| Every README/UI documentation locale exposes the same docs routes | Implemented | `website/i18n/<locale>/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 |

View file

@ -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.

View file

@ -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 一致。

View file

@ -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/<locale>/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/<locale>/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.

View file

@ -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/<locale>/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/<locale>/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 可以接受,只是因为它们承接了具体 policyalternates、locale switching、sidebar filtering 与 paginator filtering。

View file

@ -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);
}

View file

@ -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/<locale>/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/
│ └── <locale>/
│ └── 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/<locale>/docusaurus-plugin-content-docs/current/`.
4. Translate navbar, footer, and docs sidebar messages under `i18n/<locale>/`.
@ -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

View file

@ -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?

View file

@ -47,7 +47,7 @@ import TLDR from '@site/src/components/TLDR';
```
<your-vault>/.obsidian/plugins/
```
If the `plugins` folder doesn't exist, create it.
3. **Create Notemd folder:**

View file

@ -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?

View file

@ -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'],

106
website/i18n/ar/code.json Normal file
View file

@ -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"
}
}

View file

@ -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'"
}
}

View file

@ -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` | تفعيل منطق إعادة المحاولة (حتى 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) -- مرجع تكوين النموذج لكل مهمة

View file

@ -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".
## نصائح
- **ابدأ بمجال التعلم المحدد** قبل كتابة استعلام مخصص كامل. يغطي هذا النهج 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) -- إصلاح المشكلات التي تنتج فيها الاستعلامات المخصصة نتائج غير متوقعة

View file

@ -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. انقر على **"اختبار الاتصال"** للتحقق
### أخطاء الشبكة / الاتصال
**الأعراض:** `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 عن طريق تعديل الطلبات

View file

@ -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 وقم بتفعيل الإضافة
**الإحصائيات:** أكثر من 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

View file

@ -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]` في بداية الطلب لتقييد الاستخراج إلى تخصص معين.
**تغيير اللغة** (اختياري): أضف في نهاية الطلب عبارة "يجب أن تكون المفاهيم الناتجة بلغة [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) — ربط الاستخراج بمهام أخرى

View file

@ -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). يمكن التحقق من صحة المواصفات المُنظمة قبل العرض، ويمكن لنفس المواصفات تغذية عدة محركات عرض كبدائل.
## أنواع الرسومات التخطيطية المدعومة
| النية | محرك العرض الرئيسي | البدائل | حالة الاستخدام |
|--------|-----------------|-----------|----------|
| `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 من جذر `<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` `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 بالأبيض والأسود مع ألفا/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` و `<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`، ويحتوي على تشخيصات معاينة عامة، وأرقام ملخص التشخيصات، وسجلات تاريخية مدركة للتشخيصات، وخيارات بديلة تعتمد فقط على المصدر عبر `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) — تعزيز الرسوم التخطيطية ببيانات من الويب

View file

@ -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) -- تكوين النموذج المستخدم للتلخيص

View file

@ -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) -- اختر أفضل نموذج لزوج اللغات الخاص بك

View file

@ -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) — تصور رسم بياني لرسم خريطة المعرفة الخاصة بك

View file

@ -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) -- التزامن وتقارير التقدم لسير العمل للمجلدات

View file

@ -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)

View file

@ -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)

View file

@ -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/)

View file

@ -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)

View file

@ -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).*

View file

@ -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 وأخطاء الاتصال

View file

@ -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) -- إصلاح أخطاء الاتصال الإقليمي والتحقق من الهوية

View file

@ -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 لمهام الترجمة ذات الحجم الكبير

View file

@ -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) -- إصلاح أخطاء رفض الاتصال عندما لا يكون الخادم المحلي قيد التشغيل

View file

@ -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 وأخطاء الحد من المعدلات

View file

@ -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) — مرجع لجميع الإعدادات

View file

@ -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"
}
}

View file

@ -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"
}
}

106
website/i18n/bn/code.json Normal file
View file

@ -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"
}
}

View file

@ -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'"
}
}

View file

@ -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) -- প্রতি-টাস্ক মডেল কনফিগারেশন রেফারেন্স

View file

@ -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) -- কাস্টম প্রম্পটের কারণে অপ্রত্যাশিত আউটপুট হলে সমস্যা সমাধান করুন

View file

@ -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

View file

@ -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

View file

@ -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) — অন্যান্য টাস্কের সাথে ধারণা বের করার প্রক্রিয়া সংযুক্ত করা

File diff suppressed because one or more lines are too long

View file

@ -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) -- সারসংক্ষেপণের জন্য ব্যবহৃত মডেলটি কনফিগার করুন

View file

@ -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

View file

@ -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) — আপনার নলেজ গ্রাফকে দৃশ্যমান করুন

View file

@ -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) -- ফোল্ডার ওয়ার্কফ্লোর জন্য সময়সামঞ্জস্য ও অগ্রগতি প্রতিবেদন

View file

@ -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)

View file

@ -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)

View file

@ -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/)

View file

@ -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)

View file

@ -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).*

View file

@ -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 এবং কানেকশন ত্রুটিগুলো সংশোধন করুন

View file

@ -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) -- আঞ্চলিক সংযোগ ও অথেনটিকেশন ত্রুটিগুলি সংশোধন করুন

View file

@ -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) -- উচ্চ-পরিমাণের অনুবাদ কাজের জন্য জেমিনি ফ্ল্যাশ সুপারিশ করা হয়

View file

@ -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 ত্রুটিগুলো ঠিক করুন

View file

@ -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 এবং রেট-লিমিট ত্রুটিগুলো সংশোধন করুন

View file

@ -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) — সম্পূর্ণ সেটিংসের রেফারেন্স

View file

@ -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"
}
}

View file

@ -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"
}
}

106
website/i18n/cs/code.json Normal file
View file

@ -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"
}
}

View file

@ -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'"
}
}

View file

@ -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

View file

@ -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

View file

@ -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ů

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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í

View file

@ -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

View file

@ -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 510 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 | 23 sekundy | 35 sekund | 510 sekund |
| 2000 slov | 58 sekund | 1015 sekund | 2040 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í

View file

@ -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

View file

@ -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)

View file

@ -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)

View file

@ -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/)

View file

@ -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)

View file

@ -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).*

View file

@ -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í

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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í

View file

@ -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"
}
}

View file

@ -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"
}
}

106
website/i18n/da/code.json Normal file
View file

@ -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"
}
}

View file

@ -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'"
}
}

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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 DSLen 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 pipelineen.
- **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

View file

@ -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)

View file

@ -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)

Some files were not shown because too many files have changed in this diff Show more