README_KO.md
</a>
</a>
<a href="https://chatbot.weixin.qq.com" target="_blank">
</a>
<a href="https://chromewebstore.google.com/detail/jpemjbopikggjlmikmclgbmkhhopjdgd" target="_blank">
</a>
<a href="https://clawhub.ai/lyingbug/weknora" target="_blank">
</a>
<a href="https://github.com/Tencent/WeKnora/blob/main/LICENSE">
</a>
<a href="./CHANGELOG.md">
</a>
๊ฐ์ โข ์ํคํ ์ฒ โข ํต์ฌ ๊ธฐ๋ฅ โข ์์ํ๊ธฐ โข API ๋ ํผ๋ฐ์ค โข ๊ฐ๋ฐ์ ๊ฐ์ด๋
</h4> </p>WeKnora๋ ์ํฐํ๋ผ์ด์ฆ๊ธ ๋ฌธ์ ์ดํด, ์๋งจํฑ ๊ฒ์, ์์จ ์ถ๋ก ์๋๋ฆฌ์ค๋ฅผ ์ํด ์ค๊ณ๋ ์คํ์์ค LLM ๊ธฐ๋ฐ ์ง์ ํ๋ ์์ํฌ์ ๋๋ค.
๋ณธ ํ๋ ์์ํฌ๋ ์ธ ๊ฐ์ง ํต์ฌ ์ญ๋์ ์ค์ฌ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ผ์ ๊ฒ์์ ์ต์ ํ๋ RAG ๊ธฐ๋ฐ ๋น ๋ฅธ Q&A, ์ง์ ๊ฒ์ยทMCP ๋๊ตฌยท์น ๊ฒ์์ ์์จ์ ์ผ๋ก ์ค์ผ์คํธ๋ ์ด์ ํ์ฌ ๋ณต์กํ ๋ค๋จ๊ณ ์์ ์ ์ฒ๋ฆฌํ๋ ReAct Agent ์ถ๋ก , ๊ทธ๋ฆฌ๊ณ Agent๊ฐ ์๋ณธ ๋ฌธ์์์ ์ํธ ์ฐ๊ฒฐ๋ ๋งํฌ๋ค์ด ์ง์๋ฒ ์ด์ค์ ์ธํฐ๋ํฐ๋ธ ์ง์ ๊ทธ๋ํ๋ฅผ ์ค์ค๋ก ์์ฑยท์ ์งํ๋ ์์ ํ ์๋ก์ด Wiki ๋ชจ๋(์๋ ํธ์งยท๋ฒ์ ์ด๋ ฅยท์ํด๋ฆญ ๋กค๋ฐฑ ์ง์)์ ๋๋ค. ์ง์ ๊ฐ๊ณต ๊ณผ์ ๋ ์ธ๋ฐํ๊ฒ ์ ์ดํ ์ ์์ต๋๋ค. ํธ๋ฆฌํ ํด๋๊ฐ ์ ๋ก๋ ์์ ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ทธ๋๋ก ์ ์งํ๊ณ , ์ฒญํฌ ํธ์ง ๋ฐ ๋ฒ์ ์ด๋ ฅ์ ํตํด ๊ฒ์ ์ฒญํฌ๋ฅผ ๋ฌธ์์ฒ๋ผ ์์ ยท๋น๊ตยท๋กค๋ฐฑํ ์ ์์ต๋๋ค. ๋ค์ํ ๋ฐ์ดํฐ ์์ค ์ฐ๋(Feishu ์ง์๋ฒ ์ด์ค / Feishu ํด๋ผ์ฐ๋ ๋๋ผ์ด๋ธ / Notion / Yuque / RSS, ์ง์ ํ์ฅ ์ค), ์น์ฌ์ดํธ ์๋ฒ ๋ Widget์ผ๋ก ์ธ๋ถ ์ฌ์ดํธ์ ์์ด์ ํธ ๊ฒ์, ํ๋ก๊ทธ๋จ ์ฐ๋์ ์ํ ๋ฒ์ ์ง์ API ํค ๋ฐ Principal ๋ชจ๋ธ, ์ํฌ์คํ์ด์ค๋ณ ๋ค์ค ์ธ์คํด์ค ์คํ ๋ฆฌ์ง ๋ฐฑ์๋, 20๊ฐ ์ด์์ LLM ํ๋ก๋ฐ์ด๋ ํตํฉ, Langfuse ๊ธฐ๋ฐ ํ์คํ ๊ด์ธก ๊ฐ๋ฅ์ฑ๊ณผ ๋ฐํ์ ์์ ํ ๋์๋ณด๋ + Worker ํ ๊ฑฐ๋ฒ๋์ค, ์ํฐํ๋ผ์ด์ฆ ๋ฉํฐ ํ ๋ํธ RBAC(4๋จ๊ณ ์ญํ ๋งคํธ๋ฆญ์ค + ๋ฆฌ์์ค ์์ ๊ถ + ํ ๋ํธ ๊ฐ์ฌ ๋ก๊ทธ), ์์ ์ ํํธ์คํ ์ด ๊ฐ๋ฅํ ๋ชจ๋ํ ์ํคํ ์ฒ๋ฅผ ๊ฒฐํฉํ์ฌ, WeKnora๋ ํฉ์ด์ง ๋ฌธ์๋ฅผ ๊ฒ์ยท์ถ๋ก ๊ฐ๋ฅํ๋ฉฐ ์ง์์ ์ผ๋ก ์งํํ๋ ์ ์ฉ ์ง์ ์์ฐ์ผ๋ก ํ๋ฐ๊ฟ์ํต๋๋ค.
Feishu, Notion, Yuque ๋ฑ ์ธ๋ถ ํ๋ซํผ์์ ์ง์ ์๋ ๋๊ธฐํ๋ฅผ ์ง์ํ๋ฉฐ(์ถ๊ฐ ๋ฐ์ดํฐ ์์ค ๊ฐ๋ฐ ์ค), PDF, Word, ์ด๋ฏธ์ง, Excel ๋ฑ 10๊ฐ์ง ์ด์์ ๋ฌธ์ ํฌ๋งท์ ์ฒ๋ฆฌํฉ๋๋ค. WeChat Work, Feishu, Slack, Telegram ๋ฑ์ IM ์ฑ๋์ ํตํด Q&A ์๋น์ค๋ฅผ ์ง์ ์ ๊ณตํ ์ ์์ต๋๋ค. ๋ชจ๋ธ ๋ ์ด์ด์์ OpenAI, DeepSeek, Qwen(Alibaba Cloud), Zhipu, Hunyuan, Gemini, MiniMax, NVIDIA, Ollama ๋ฑ ์ฃผ์ ํ๋ก๋ฐ์ด๋๋ฅผ ์ง์ํฉ๋๋ค. ์ ์ฒด ํ๋ก์ธ์ค๊ฐ ๋ชจ๋ํ ์ค๊ณ๋์ด LLM, ๋ฒกํฐ DB, ์คํ ๋ฆฌ์ง ๋ฑ ๊ตฌ์ฑ ์์๋ฅผ ์ ์ฐํ๊ฒ ๊ต์ฒด ๊ฐ๋ฅํ๋ฉฐ, ๋ก์ปฌ ๋ฐ ํ๋ผ์ด๋น ํด๋ผ์ฐ๋ ๋ฐฐํฌ๋ฅผ ์ง์ํ์ฌ ๋ฐ์ดํฐ ์์ ์์ฒด ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค. ๋ํ WeKnora๋ Langfuse์ ์ํํ๊ฒ ํตํฉ๋์ด Agent ์ถ๋ก , ํ ํฐ ์ฌ์ฉ๋ ๋ฐ ํ์ดํ๋ผ์ธ์ ๋ํ ํฌ๊ด์ ์ธ ๊ด์ธก ๊ฐ๋ฅ์ฑ(Observability)์ ์ ๊ณตํฉ๋๋ค.
resource_urls=public / RESOURCE_URL_MODE(์๋ํํฐ ์ฑ์ด ์ธ์ฆ ํ๋ก์๋ฅผ ๋ค์ ํธ์ถํ์ง ์๊ณ ์ด๋ฏธ์ง์ ํ์ผ์ ๋ ๋๋ง); Feishu ํด๋ผ์ฐ๋ ๋๋ผ์ด๋ธ ๋ฐ์ดํฐ ์์ค ๋ฐ docx blocks API ๋๊ธฐํ; ๋ฌธ์ ์ผ๊ด ํ๊น
; MCP Server 1.1.x(mcp 2.x ๊ณ ์์ค API๋ก ๋ง์ด๊ทธ๋ ์ด์
, ๊ณต์ PyPI ํจํค์ง tencent-weknora-mcp, create_knowledge_from_text์ list_shared_knowledge_bases ์ถ๊ฐ๋ก ์ด 29๊ฐ ๋๊ตฌ); AWS S3 ๊ธฐ๋ณธ ์๊ฒฉ ์ฆ๋ช
์ฒด์ธ(IAM Role / IRSA); ๋ก์ปฌ HTML ์
๋ก๋ ํ์ฑ; QQBot Markdown ์๋ต; app / frontend / docreader / mcp-server PR CI ๊ฒ์ฌ ์ถ๊ฐ. ๋ํ router์ modelcontext ๋๊ท๋ชจ ๋ฆฌํฉํฐ๋ง, ๋ฆฌ๋ญํฌยท์ฒญํน ํ์ง ๊ฐ์ ๋ฐ ๊ด๋ฒ์ํ ์์ ์ฑ ์์ . ์์ธํ ๋ด์ฉ์ CHANGELOG.md.CHANGELOG.md.@Skill / @MCP ๋ฉ์
๊ธฐ๋ฐ ๋ฒ์ ์ง์ Agent ๋ฐํ์; ๋ํ ์ค MCP OAuth; QQBot ๋ฐ Lark(Feishu ๊ตญ์ ํ) IM ํตํฉ; Redis TLS; Requesty ๋ชจ๋ธ ์ ๊ณต์ + Keenable ์น ๊ฒ์; ํ
๋ํธ๋ฆฌ์ค ํ๋ก๋น์ ๋ ๋ฐ ์ ์ด๋ ์
ํ์๋น์ค ์ํฌ์คํ์ด์ค; ๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ ์ฌ์ค์ ; ์ง์ ๋ฒ ์ด์ค ๋ณต์ ํ๋ก์ฐ; weknora CLI v0.10. ๋ํ ๋๊ท๋ชจ ๋ณด์ ๊ฐํ(SSRF, ๋น๋ฐ ๋ง์คํน, SQL ๊ฒ์ฆ, IDOR). ์์ธํ ๋ด์ฉ์ CHANGELOG.md.CHANGELOG.md.process_config) + ์
๋ก๋ ํ์ธ ๋ํ์์; reparse ์ ์ค์ ๋ฎ์ด์ฐ๊ธฐ; weknora CLI v0.9(๋ฒ๋ค Agent Skills, session stop, auth/profile ํตํฉ); KB ๋งํค ์ ํ ๋ค์ค ์ ํ; pgvector 1024์ฐจ์ HNSW ์ธ๋ฑ์ค; ์ฑํ
๋ฆฌ์์ค Store ๋ฆฌํฉํฐ; Langfuse ๋จ์ผ ์ถ์ (Jaeger ์ ๊ฑฐ). ์์ธํ ๋ด์ฉ์ CHANGELOG.md.weknora CLI v0.7 / v0.8(Agent ์ฐ์ ์์ด์ด ํ๋กํ ์ฝ, NDJSON, --dry-run); OpenDataLoader ๋ฐ PaddleOCR-VL ํ์ฑ ์์ง; MCP ์๋ฒ ๋ฉํฐ ํธ๋์คํฌํธ(stdio / SSE / HTTP); ๋ชจ๋ธ๋ณ ์ฌ๊ณ ๋ชจ๋ ์ค์ ; Tencent LKEAP ๋ฆฌ๋ญํฌ + ๋ค์ดํฐ๋ธ Gemini ์๋ฒ ๋ฉ + MiniMax-M3. ์์ธํ ๋ด์ฉ์ CHANGELOG.md ์ฐธ๊ณ .Owner / Admin / Contributor / Viewer + KB ๋จ์ ์์ + ํ
๋ํธ๋ณ ๊ฐ์ฌ ๋ก๊ทธ), ํ
๋ํธ ๋ฉค๋ฒ ๊ด๋ฆฌ์ ๋ฉํฐ ์ํฌ์คํ์ด์ค UX, ์
ํ ์๋น์ค ์ํฌ์คํ์ด์ค ์์ฑ; weknora CLI v0.4 GA + mcp serve; ์ฌ๋ฌ ๋ฒกํฐ ์ ์ฅ์์ ๊ฑธ์น KB ๊ฒ์ ํฌ์์; MCP / ๋ฐ์ดํฐ ์์ค ์๊ฒฉ ์ฆ๋ช
AES-256-GCM ์ํธํ + docreader gRPC TLS + Token; Zhipu ์๋ฒ ๋์ ํ์จ์ด ํด๋ผ์ฐ๋ OBS ์ถ๊ฐ; ์๋ฒ ์ฌ์ด๋ ์ฌ์ฉ์ ํ๊ฒฝ์ค์ ; Go 1.26.0. ์์ธํ ๋ด์ฉ์ docs/RBAC่ฏดๆ.md๊ณผ CHANGELOG.md ์ฐธ๊ณ .weknora CLI ํ๋ฆฌ๋ทฐ.final_answer ๋๊ตฌ.๋ฌธ์ ํ์ฑ, ๋ฒกํฐํ, ๊ฒ์๋ถํฐ LLM ์ถ๋ก ๊น์ง ์ ์ฒด ํ์ดํ๋ผ์ธ์ ๋ชจ๋ํํ์ฌ ๊ฐ ๊ตฌ์ฑ ์์๋ฅผ ์ ์ฐํ๊ฒ ๊ต์ฒดยทํ์ฅ ๊ฐ๋ฅํฉ๋๋ค. ๋ก์ปฌ / ํ๋ผ์ด๋น ํด๋ผ์ฐ๋ ๋ฐฐํฌ๋ฅผ ์ง์ํ๋ฉฐ, ๋ฐ์ดํฐ ์์ ์์ฒด ๊ด๋ฆฌ์ ์ง์ ์ฅ๋ฒฝ ์๋ Web UI๋ก ๋น ๋ฅด๊ฒ ์์ํ ์ ์์ต๋๋ค.
| ์๋๋ฆฌ์ค | ์ ์ฉ ์ฌ๋ก | ํต์ฌ ๊ฐ์น |
|---|---|---|
| ๊ธฐ์ ์ง์ ๊ด๋ฆฌ | ๋ด๋ถ ๋ฌธ์ ๊ฒ์, ๊ท์ Q&A, ์ด์ ๋งค๋ด์ผ ์กฐํ | ์ง์ ํ์ ํจ์จ ํฅ์, ๊ต์ก ๋น์ฉ ์ ๊ฐ |
| ํ์ ์ฐ๊ตฌ ๋ถ์ | ๋ ผ๋ฌธ ๊ฒ์, ์ฐ๊ตฌ ๋ฆฌํฌํธ ๋ถ์, ํ์ ์๋ฃ ์ ๋ฆฌ | ๋ฌธํ ์กฐ์ฌ ๊ฐ์, ์ฐ๊ตฌ ์์ฌ๊ฒฐ์ ์ง์ |
| ์ ํ ๊ธฐ์ ์ง์ | ์ ํ ๋งค๋ด์ผ Q&A, ๊ธฐ์ ๋ฌธ์ ๊ฒ์, ํธ๋ฌ๋ธ์ํ | ๊ณ ๊ฐ ์ง์ ํ์ง ํฅ์, ์ง์ ๋ถ๋ด ๊ฐ์ |
| ๋ฒ๋ฌด/์ปดํ๋ผ์ด์ธ์ค ๊ฒํ | ๊ณ์ฝ ์กฐํญ ๊ฒ์, ๊ท์ ์ ์ฑ ์กฐํ, ์ฌ๋ก ๋ถ์ | ์ปดํ๋ผ์ด์ธ์ค ํจ์จ ํฅ์, ๋ฒ์ ๋ฆฌ์คํฌ ๊ฐ์ |
| ์๋ฃ ์ง์ ์ง์ | ์ํ ๋ฌธํ ๊ฒ์, ์ง๋ฃ ๊ฐ์ด๋๋ผ์ธ ์กฐํ, ์ฆ๋ก ๋ถ์ | ์์ ์์ฌ๊ฒฐ์ ์ง์, ์ง๋จ ํ์ง ํฅ์ |
์ง๋ฅํ ๋ํ
| ๊ธฐ๋ฅ | ์์ธ |
|---|---|
| ์ง๋ฅํ ์ถ๋ก | ReACT ์ ์ง์ ๋ฉํฐ์คํ ์ถ๋ก , ์ง์ ๊ฒ์ยทMCP ๋๊ตฌยท์น ๊ฒ์์ ์์จ ์ค์ผ์คํธ๋ ์ด์ |
| ๋น ๋ฅธ Q&A | ์ง์๋ฒ ์ด์ค ๊ธฐ๋ฐ RAG Q&A, ๋น ๋ฅด๊ณ ์ ํํ ๋ต๋ณ |
| Wiki ๋ชจ๋ | Agent๊ฐ ์ฃผ๋ํ์ฌ ์๋ณธ ๋ฌธ์์์ ๊ตฌ์กฐํ๋ ๋งํฌ๋ค์ด Wiki ํ์ด์ง๋ฅผ ์๋ ์์ฑ ๋ฐ ์ ์ง ๊ด๋ฆฌ; ๋ธ๋ผ์ฐ์ ๋ด ์๋ ํธ์ง, ํ์ด์ง ๋ฒ์ ์ด๋ ฅ, ๋ผ์ธ ๋จ์ diff ๋ฐ ์ํด๋ฆญ ๋กค๋ฐฑ |
| ๋๊ตฌ ํธ์ถ | ๋ด์ฅ ๋๊ตฌ, MCP ๋๊ตฌ(OAuth2 ์๊ฒฉ ์๋น์คยท๋ํ ์ค OAuth ํฌํจ), ์น ๊ฒ์; @Skill / @MCP ๋ฉ์
์ผ๋ก ํด ๋จ์ Agent ๋ฐํ์ ๋ฒ์ ์ง์ |
| ๋ํ ์ ๋ต | ์จ๋ผ์ธ ํ๋กฌํํธ ํธ์ง, ๊ฒ์ ์๊ณ๊ฐ ์กฐ์ , ๋ฉํฐํด ๋ฌธ๋งฅ ์ธ์, Agent๋ณ ์ธ์ฉ ์ถ๋ ฅ ํ ๊ธ |
| ์ถ์ฒ ์ง๋ฌธ | ์ง์๋ฒ ์ด์ค ์ฝํ ์ธ ๊ธฐ๋ฐ ์ง๋ฌธ ์๋ ์์ฑ ๋ฐ ๋ต๋ณ ํ ํ์ ์ง๋ฌธ |
| ์์ ์ฒจ๋ถ | ์ธ์ ๋ฒ์๋ก ์ด๋ฏธ์ง / ๋ฌธ์๋ฅผ ์ ๋ก๋ํ๊ณ ๋น๋๊ธฐ ํ์ฑํ์ฌ ์ผํ์ฑ Q&A์ ์ฌ์ฉ(์ด๋ฏธ์ง + ์ฒจ๋ถ ํตํฉ ํ๋) |
| ์ธ์ฉ ๋ฐ RAG ์งํ | ์ธ๋ผ์ธ ์ธ์ฉ ํ์ค๋ฒ ๋ฐ ์ธ์ฉ ๋๋ก์ด(์น / KB ์์ค ๊ตฌ๋ถ), ํตํฉ Markdown ๋ ๋๋ง, RAG ํ์ดํ๋ผ์ธ ๋จ๊ณ๋ณ ์งํ ํ์ |
| ์ธ์ ๊ด๋ฆฌ | ์ฌ์ด๋๋ฐ์์ ์์ค๋ณ(Web / IM / ์๋ฒ ๋) ์ธ์ ํํฐ ๋ฐ ๊ทธ๋ฃนํ, ์ธ์ ์ ๋ชฉ ์ธ๋ผ์ธ ์ด๋ฆ ๋ณ๊ฒฝ ์ง์ |
์ง์ ๊ด๋ฆฌ
| ๊ธฐ๋ฅ | ์์ธ |
|---|---|
| ์ง์๋ฒ ์ด์ค ํ์ | FAQ / ๋ฌธ์ / Wiki, ํด๋ ์ํฌํธยทURL ์ํฌํธยท๋ค์ค ํ๊ทธ ๊ด๋ฆฌยท์จ๋ผ์ธ ์ ๋ ฅ |
| ํด๋ ํธ๋ฆฌ | ํด๋ ์ ๋ก๋ ์ ์๋ณธ ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ ์งํ๊ณ , ์ฌ์ด๋๋ฐ ํธ๋ฆฌ ํ์ยทํด๋ ์ด๋ฆ ๋ณ๊ฒฝยท๋ฌธ์๋ฅผ ๋ค๋ฅธ ํด๋๋ก ์ฌ๋ฐฐ์น ์ง์ |
| ์ฒญํฌ ํธ์ง ๋ฐ ๋ฒ์ | UI์์ ๊ฒ์ ์ฒญํฌ๋ฅผ ์ง์ ํธ์งํ๊ณ ๋ฒ์ ๋ณ ์ค๋ ์ทยทdiffยท์ํด๋ฆญ ๋กค๋ฐฑ, ํธ์ง ํ ์ธ๋ฑ์ค ์๋ ์ฌ๊ตฌ์ถ; ์์ฑ ์ง๋ฌธ ์ถ๊ฐยท์์ ยท์ญ์ ยท์ฌ์์ฑ; ๋ฌธ์ ์ปค์คํ ๋ฉํ๋ฐ์ดํฐ ์ง์ |
| ์ ๋ก๋ ๋จ์ ํ์ฑ ์ค์ | ์
๋ก๋ ํ์ธ ๋ํ์์ ๋๋ process_config API๋ก ํ์ยท์ฒญํนยท๋ฉํฐ๋ชจ๋ฌ(VLM / ASR)ยท๊ทธ๋ํ ์ถ์ถยท์ง๋ฌธ ์์ฑ์ ๋ฐฐ์น ๋จ์๋ก ๋ฎ์ด์ฐ๊ธฐ; reparse ์ ์ค์ ๋ณ๊ฒฝ ์ง์ |
| ์ผ๊ด reparse | ์ฌ๋ฌ ๋ฌธ์์ ํ์ฑ์ ํ ๋ฒ์ ์ฌํ์, ๋ฐฐ์น ๋จ์ process_config ์ง์ |
| ๋ฐ์ดํฐ ์์ค ์ํฌํธ | Feishu ์ง์๋ฒ ์ด์ค / Feishu ํด๋ผ์ฐ๋ ๋๋ผ์ด๋ธ / Lark / Notion / Yuque / RSS ํผ๋ ์๋ ๋๊ธฐํ(์ถ๊ฐ ๋ฐ์ดํฐ ์์ค ๊ฐ๋ฐ ์ค), ์ฆ๋ถยท์ ์ฒด ๋๊ธฐํ ์ง์ |
| ๋ฌธ์ ํฌ๋งท | PDF / Word / Txt / Markdown / HTML / EPUB / MHTML / ์ด๋ฏธ์ง / CSV / Excel / PPT / JSON |
| ๊ฒ์ ์ ๋ต | BM25 ํฌ์ / Dense ๋ฐ์ง / GraphRAG ๊ทธ๋ํ ๊ฐํ / ๋ถ๋ชจ-์์ ์ฒญํน / pgvector HNSW ๊ฐ์(1024์ฐจ์) / ๋ค์ฐจ์ ์ธ๋ฑ์ฑ |
| ์ผ๊ด ์ ํ ๋ฐ ํ๊น | KB ๋ชฉ๋ก์์ ๋งํค(๋๋๊ทธ) ๋ค์ค ์ ํ์ผ๋ก ์ผ๊ด reparse ๋ฐ ์ผ๊ด ํ๊น (๊ณตํต ํ๊ทธ ์๋ ์ ํ) |
| E2E ํ ์คํธ | ์ ์ฒด ํ์ดํ๋ผ์ธ ์๊ฐํ, ๋ฆฌ์ฝ ์ ์ค๋ฅ ยทBLEU / ROUGE ์งํ ํ๊ฐ |
์ฐ๋ ๋ฐ ํ์ฅ
| ๊ธฐ๋ฅ | ์์ธ |
|---|---|
| LLM | OpenAI / Azure OpenAI / Anthropic (Claude) / DeepSeek / Qwen (Alibaba Cloud) / Zhipu / Hunyuan / Doubao (Volcengine) / Gemini / MiniMax / NVIDIA / Novita AI / SiliconFlow / OpenRouter / Requesty / Ollama |
| Embedding | Ollama / BGE / GTE / OpenAI ํธํ API |
| ๋ฒกํฐ DB | PostgreSQL (pgvector) / Elasticsearch / OpenSearch / Milvus / Weaviate / Qdrant / Apache Doris / Tencent VectorDB |
| ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง | ๋ก์ปฌ / MinIO / AWS S3(IAM Role / IRSA ๊ธฐ๋ณธ ์๊ฒฉ ์ฆ๋ช ์ฒด์ธ ์ง์) / Volcengine TOS / Alibaba Cloud OSS / Kingsoft Cloud KS3 / Huawei Cloud OBS; ์ํฌ์คํ์ด์ค๋น ์ฌ๋ฌ ์คํ ๋ฆฌ์ง ์ธ์คํด์ค, KB ๋จ์ ๋ฐ์ธ๋ฉ ๋ฐ ๊ธฐ๋ณธ ์ธ์คํด์ค |
| IM ํตํฉ | WeChat Work / Feishu / Lark(Feishu ๊ตญ์ ํ) / QQBot / Slack / Telegram / DingTalk / Mattermost / WeChat / Yunzhijia |
| ์น์ฌ์ดํธ ์๋ฒ ๋ | ์๋ฒ ๋ Widget์ผ๋ก ์์ด์ ํธ ๊ฒ์, ๋๋ฉ์ธ ํ์ฉ ๋ชฉ๋กยท์๋ ์ ํยท๋ณด์ ๋ชจ๋ Token ๊ตํ |
| ์น ๊ฒ์ | DuckDuckGo / Bing / Google / Tavily / Baidu / Ollama / SearXNG / Keenable / Zhipu AI |
| API ํตํฉ | ๋ฒ์ ์ง์ API ํค(๋ฅ๋ ฅ ๋จ์ ๊ถํ + KB ๋จ์ ์ ํ + ์ค๋กํ๋ง๋ last_used ์ถ์ )์ API ํตํฉ ํ๋ ์ด๊ทธ๋ผ์ด๋; MCP OAuth ๋ฐ ์๋ฒ ๋ ์ธ์
์ Principal ๋จ์๋ก ๊ฒฉ๋ฆฌ; resource_urls=public์ผ๋ก ๋ฐ๋ก ๋ก๋ ๊ฐ๋ฅํ ํ์ผ / ์ด๋ฏธ์ง URL์ ๋ฐํํ์ฌ ์ธ์ฆ ํ๋ก์ ์ฌํธ์ถ ์ ๊ฑฐ |
| MCP Server | ๊ณต์ PyPI ํจํค์ง tencent-weknora-mcp, 29๊ฐ ๋๊ตฌ, stdio / SSE / HTTP 3๊ฐ์ง ํธ๋์คํฌํธ ์ง์ |
ํ๋ซํผ
| ๊ธฐ๋ฅ | ์์ธ |
|---|---|
| ๋ฐฐํฌ | ๋ก์ปฌ / Docker / Kubernetes (Helm), ํ๋ผ์ด๋น/์คํ๋ผ์ธ ๋ฐฐํฌ ์ง์ |
| UI | Web UI / RESTful API / CLI (weknora) / Chrome Extension / ์น์ฌ์ดํธ ์๋ฒ ๋ Widget / WeChat ๋ฏธ๋ ํ๋ก๊ทธ๋จ |
| ๊ด์ธก ๊ฐ๋ฅ์ฑ | Langfuse(๋จ์ผ ์ถ์ ๋ฐฑ์๋)๋ก ReAct ๋ฃจํยทํ ํฐ ์๋นยท๋๊ตฌ ํธ์ถยทํ์ดํ๋ผ์ธ ์ถ์ ; Langfuse ์คํ์ผ์ ๋ฌธ์ ํ์ฑ ์ถ์ ํ์๋ผ์ธ ๋ด์ฅ์ผ๋ก ๋จ๊ณ๋ณ ์งํ ํ์; ์์คํ ๊ด๋ฆฌ์์ฉ ๋ฐํ์ ์์ ํ ๋์๋ณด๋(ํ ๊น์ดยท๋ชจ๋ธ๋ณ ๋์์ฑยท์คํจ ์์ ์กฐ์ฌ ๋ฐ ์๋ ์ฌ์๋) |
| ์์ ๊ด๋ฆฌ | MQ ๋น๋๊ธฐ ์์ , ๋จ๊ณ๋ณ Worker ํ ๊ฑฐ๋ฒ๋์ค(core / ํ์ฒ๋ฆฌ / enrichment / maintenance + ํ๋ ฅ์ ๊ณต์ ํ, Wiki ๋ ๋ฆฝ ํ)์ ๋ชจ๋ธ๋ณ ๋ฐฑ๊ทธ๋ผ์ด๋ ๋์์ฑ ๊ฑฐ๋ฒ๋; ๋ฒ์ ์ ๊ทธ๋ ์ด๋ ์ ์๋ DB ๋ง์ด๊ทธ๋ ์ด์ |
| ๋ชจ๋ธ ๊ด๋ฆฌ | ์ค์ ์ค์ , YAML ์ ์ธํ ๋ด์ฅ ๋ชจ๋ธ ๊ตฌ์ฑ, ์ง์๋ฒ ์ด์ค๋ณ ๋ชจ๋ธ ์ ํ, ๋ชจ๋ธ๋ณ ์ฌ๊ณ ๋ชจ๋ยทEmbedding ์ฐจ์ ๋ฎ์ด์ฐ๊ธฐ, ๋ํํ ๋ชจ๋ธ ๋๋ฒ๊ฑฐ, ๋ฉํฐํ ๋ํธ ๋ด์ฅ ๋ชจ๋ธ ๊ณต์ , WeKnora Cloud ํธ์คํ ๋ชจ๋ธ ๋ฐ ๋ฌธ์ ํ์ฑ |
WeKnora Chrome ํ์ฅ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๋ฉด ๋ธ๋ผ์ฐ์ ์์ ์น ์ฝํ ์ธ ๋ฅผ WeKnora ์ง์๋ฒ ์ด์ค์ ์ง์ ์บก์ฒํ ์ ์์ต๋๋ค. ํ ์คํธ, ์ด๋ฏธ์ง ๋๋ ์ ์ฒด ํ์ด์ง๋ฅผ ์ ํํ๊ณ ์ํด๋ฆญ์ผ๋ก ์ง์ ํญ๋ชฉ์ผ๋ก ์ ์ฅ โ ๋ณต์ฌ/๋ถ์ฌ๋ฃ๊ธฐ๋ ํ์ผ ์ ๋ก๋ ๋ถํ์.
WeKnora ClawHub Skill์ ClawHub ํ๋ซํผ์ ๊ฒ์๋ WeKnora ์คํฌ์ ๋๋ค. ์ค์น ํ WeKnora REST API๋ฅผ ํตํด ๋ฌธ์ ์ ๋ก๋(ํ์ผ / URL / Markdown), ํ์ด๋ธ๋ฆฌ๋ ๊ฒ์(๋ฒกํฐ + ํค์๋), ์ง์ ํญ๋ชฉ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
git clone https://github.com/Tencent/WeKnora.git
cd WeKnora
cp .env.example .env # ํ์์ ๋ฐ๋ผ .env ํธ์ง (ํ์ผ ๋ด ์ฃผ์ ์ฐธ๊ณ )
docker compose pull # ์ต์ ์ด๋ฏธ์ง ๊ฐ์ ธ์ค๊ธฐ
docker compose up -d # ์ฝ์ด ์๋น์ค ์์
์์ ํ http://localhost ์ ์ ์ํ์ฌ ๋ฐ๋ก ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
๋ก์ปฌ Ollama ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ค๋ฉด ๋จผ์
ollama serve > /dev/null 2>&1 &๋ฅผ ์คํํ์ธ์.
๊ธฐ์กด ๋ฐฐํฌ๊ฐ ์๊ณ ์ release๋ฅผ ๋ค์ด๋ก๋ํ ๊ฒฝ์ฐ:
# .env์์ WEKNORA_VERSION์ ๋์ ๋ฒ์ (์: 0.7.0)์ผ๋ก ์ค์ ํ๊ฑฐ๋ latest ์ ์ง
docker compose pull # WEKNORA_VERSION์ ๋ง๋ ์ด๋ฏธ์ง ๊ฐ์ ธ์ค๊ธฐ
docker compose up -d # ์ ์ด๋ฏธ์ง๋ก ์ปจํ
์ด๋ ์ฌ์์ฑ
docker compose up -d๋ง ์คํํ๋ฉด ๋ก์ปฌ ์บ์ ์ด๋ฏธ์ง๊ฐ ์ฌ์ฌ์ฉ๋์ด Web UI ๋ฒ์ ์ด ๋ค์ด๋ก๋ํ release์ ์ผ์นํ์ง ์์ ์ ์์ต๋๋ค.
--profile ํ๋๊ทธ๋ก ์ถ๊ฐ ์ปดํฌ๋ํธ๋ฅผ ํ์ฑํํฉ๋๋ค. ์ฌ๋ฌ profile ์กฐํฉ ๊ฐ๋ฅ:
| Profile | ์ค๋ช | ๋ช ๋ น์ด |
|---|---|---|
| (๊ธฐ๋ณธ) | ์ฝ์ด ์๋น์ค | docker compose pull && docker compose up -d |
full | ์ ์ฒด ๊ธฐ๋ฅ | docker compose --profile full pull && docker compose --profile full up -d |
neo4j | ์ง์ ๊ทธ๋ํ (Neo4j) | docker compose --profile neo4j pull && docker compose --profile neo4j up -d |
minio | ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง (MinIO) | docker compose --profile minio pull && docker compose --profile minio up -d |
langfuse | ํธ๋ ์ด์ฑ (Langfuse) | docker compose --profile langfuse pull && docker compose --profile langfuse up -d |
์กฐํฉ ์์: docker compose --profile neo4j --profile minio pull && docker compose --profile neo4j --profile minio up -d
์๋น์ค ์ค์ง: docker compose down
| ์๋น์ค | URL |
|---|---|
| Web UI | http://localhost |
| ๋ฐฑ์๋ API | http://localhost:8080 |
| Langfuse ํธ๋ ์ด์ฑ | http://localhost:3000 |
WeKnora๋ ๋ฌธ์๋ฅผ ์ง์ ๊ทธ๋ํ๋ก ๋ณํํด ๋ฌธ์ ๋ด ์๋ก ๋ค๋ฅธ ์น์ ๊ฐ ๊ด๊ณ๋ฅผ ์๊ฐํํ ์ ์์ต๋๋ค. ์ง์ ๊ทธ๋ํ ๊ธฐ๋ฅ์ ํ์ฑํํ๋ฉด ๋ฌธ์ ๋ด๋ถ์ ์๋งจํฑ ์ฐ๊ด ๋คํธ์ํฌ๋ฅผ ๋ถ์/๊ตฌ์ฑํ์ฌ ๋ฌธ์ ์ดํด๋ฅผ ๋๊ณ , ์ธ๋ฑ์ฑ๊ณผ ๊ฒ์์ ๊ตฌ์กฐํ๋ ์ง์์ ์ ๊ณตํด ๊ฒ์ ๊ฒฐ๊ณผ์ ๊ด๋ จ์ฑ๊ณผ ํญ์ ํฅ์์ํต๋๋ค.
์์ธํ ์ค์ ์ ์ง์ ๊ทธ๋ํ ์ค์ ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํ์ธ์.
ํ์ํ ์ค์ ์ MCP ์ค์ ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํ์ธ์.
WeKnora๋ WeChat ๋ํ ์คํ ํ๋ซํผ์ ํต์ฌ ๊ธฐ์ ํ๋ ์์ํฌ๋ก ์ฌ์ฉ๋๋ฉฐ, ๋ณด๋ค ๊ฐํธํ ์ฌ์ฉ ๋ฐฉ์์ ์ ๊ณตํฉ๋๋ค:
๊ณต์ ์ ํ ๋ฌธ์: website-docs/ โ ใ์
๋ฌธ โ ์ํคํ
์ฒ โ ๊ธฐ๋ฅ โ API โ ํด๋ผ์ด์ธํธ โ ๊ฐ๋ฐใ 6๊ฐ ์น์
์ผ๋ก ๊ตฌ์ฑ๋ ์์ ํ ๋ฌธ์ ์ธํธ๋ก, ์ฝ 360๊ฐ API ์๋ํฌ์ธํธ, ์ฝ 150๊ฐ ํ๊ฒฝ ๋ณ์, 9๊ฐ ํ์ฅ ์ง์ ์ ๋ค๋ฃน๋๋ค. ์ด ๋๋ ํฐ๋ฆฌ๋ VitePress ์ฌ์ดํธ์ด๊ธฐ๋ ํ์ฌ cd website-docs && npm install && npm run dev๋ก ๋ก์ปฌ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๊ฐ ๊ฐ๋ฅํ๋ฉฐ, ๋๋ ํฐ๋ฆฌ ๋ด Dockerfile๋ก ๋จ๋
๋ฐฐํฌํ ์๋ ์์ต๋๋ค.
๋ฌธ์ ํด๊ฒฐ FAQ: ๋ฌธ์ ํด๊ฒฐ FAQ
์์ธ API ๋ฌธ์: API Docs
์ ํ ๊ณํ ๋ฐ ์์ ๊ธฐ๋ฅ: Roadmap
์ฝ๋๋ฅผ ์์ฃผ ์์ ํด์ผ ํ๋ค๋ฉด ๋งค๋ฒ Docker ์ด๋ฏธ์ง๋ฅผ ๋ค์ ๋น๋ํ ํ์๊ฐ ์์ต๋๋ค. ๊ณ ์ ๊ฐ๋ฐ ๋ชจ๋๋ฅผ ์ฌ์ฉํ์ธ์.
# ์ธํ๋ผ ์์
make dev-start
# ๋ฐฑ์๋ ์์ (์ ํฐ๋ฏธ๋)
make dev-app
# ํ๋ก ํธ์๋ ์์ (์ ํฐ๋ฏธ๋)
make dev-frontend
๊ฐ๋ฐ ์ฅ์ :
์์ธ ๋ฌธ์: ๊ฐ๋ฐ ํ๊ฒฝ ๋น ๋ฅธ ์์
Issue ๋๋ Pull Request๋ฅผ ํ์ํฉ๋๋ค.
์ ์ฐจ: Fork โ ๋ธ๋์น ์์ฑ โ ๋ณ๊ฒฝ์ฌํญ ์ปค๋ฐ โ PR ์์ฑ
๊ท์น: gofmt๋ก ์ฝ๋ ํฌ๋งทํ
, Conventional Commits ์ค์ (feat: / fix: / docs: / test: / refactor:)
์ค์: v0.1.3๋ถํฐ WeKnora๋ ์์คํ ๋ณด์ ๊ฐํ๋ฅผ ์ํด ๋ก๊ทธ์ธ ์ธ์ฆ ๊ธฐ๋ฅ์ ํฌํจํฉ๋๋ค. ์ด์ ํ๊ฒฝ ๋ฐฐํฌ ์ ์๋ ์ฌํญ์ ๊ฐ๋ ฅํ ๊ถ์ฅํฉ๋๋ค.
๋ฉ์ง ๊ธฐ์ฌ์ ์ฌ๋ฌ๋ถ๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค:
์ด ํ๋ก์ ํธ๋ MIT License๋ก ๋ฐฐํฌ๋ฉ๋๋ค. ์ ์ ํ ์ ์๊ถ ๊ณ ์ง๋ฅผ ์ ์งํ๋ ์กฐ๊ฑด์ผ๋ก ์ฝ๋๋ฅผ ์์ ๋กญ๊ฒ ์ฌ์ฉ, ์์ , ๋ฐฐํฌํ ์ ์์ต๋๋ค.