Back to Weknora

README KO

README_KO.md

0.5.128.5 KB
Original Source
<p align="center"> <picture> </picture> </p> <p align="center"> <picture> <a href="https://trendshift.io/repositories/15289" target="_blank">
</a>
</picture> </p> <p align="center"> <a href="https://weknora.weixin.qq.com" target="_blank">
</a>
<a href="https://chatbot.weixin.qq.com" target="_blank">
    
</a>
<a href="https://github.com/Tencent/WeKnora/blob/main/LICENSE">
    
</a>
<a href="./CHANGELOG.md">
    
</a>
</p> <p align="center"> | <a href="./README.md"><b>English</b></a> | <a href="./README_CN.md"><b>็ฎ€ไฝ“ไธญๆ–‡</b></a> | <a href="./README_JA.md"><b>ๆ—ฅๆœฌ่ชž</b></a> | <b>ํ•œ๊ตญ์–ด</b> | </p> <p align="center"> <h4 align="center">

๊ฐœ์š” โ€ข ์•„ํ‚คํ…์ฒ˜ โ€ข ํ•ต์‹ฌ ๊ธฐ๋Šฅ โ€ข ์‹œ์ž‘ํ•˜๊ธฐ โ€ข API ๋ ˆํผ๋Ÿฐ์Šค โ€ข ๊ฐœ๋ฐœ์ž ๊ฐ€์ด๋“œ

</h4> </p>

๐Ÿ’ก WeKnora โ€” ๋ฌธ์„œ๋ฅผ ์‚ด์•„์žˆ๋Š” ์ง€์‹์œผ๋กœ: RAG ยท Agent ์ถ”๋ก  ยท ์ž๋™ Wiki ํ†ตํ•ฉ LLM ์ง€์‹ ํ”„๋ ˆ์ž„์›Œํฌ

๐Ÿ“Œ ๊ฐœ์š”

WeKnora๋Š” ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ๋ฌธ์„œ ์ดํ•ด, ์‹œ๋งจํ‹ฑ ๊ฒ€์ƒ‰, ์ž์œจ ์ถ”๋ก  ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋œ ์˜คํ”ˆ์†Œ์Šค LLM ๊ธฐ๋ฐ˜ ์ง€์‹ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.

๋ณธ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์„ธ ๊ฐ€์ง€ ํ•ต์‹ฌ ์—ญ๋Ÿ‰์„ ์ค‘์‹ฌ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ผ์ƒ ๊ฒ€์ƒ‰์— ์ตœ์ ํ™”๋œ RAG ๊ธฐ๋ฐ˜ ๋น ๋ฅธ Q&A, ์ง€์‹ ๊ฒ€์ƒ‰ยทMCP ๋„๊ตฌยท์›น ๊ฒ€์ƒ‰์„ ์ž์œจ์ ์œผ๋กœ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ํ•˜์—ฌ ๋ณต์žกํ•œ ๋‹ค๋‹จ๊ณ„ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ReAct Agent ์ถ”๋ก , ๊ทธ๋ฆฌ๊ณ  Agent๊ฐ€ ์›๋ณธ ๋ฌธ์„œ์—์„œ ์ƒํ˜ธ ์—ฐ๊ฒฐ๋œ ๋งˆํฌ๋‹ค์šด ์ง€์‹๋ฒ ์ด์Šค์™€ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์ง€์‹ ๊ทธ๋ž˜ํ”„๋ฅผ ์Šค์Šค๋กœ ์ƒ์„ฑยท์œ ์ง€ํ•˜๋Š” ์™„์ „ํžˆ ์ƒˆ๋กœ์šด Wiki ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์†Œ์Šค ์—ฐ๋™(Feishu / Notion / Yuque, ์ง€์† ํ™•์žฅ ์ค‘), 20๊ฐœ ์ด์ƒ์˜ LLM ํ”„๋กœ๋ฐ”์ด๋” ํ†ตํ•ฉ, Langfuse ๊ธฐ๋ฐ˜ ํ’€์Šคํƒ ๊ด€์ธก ๊ฐ€๋Šฅ์„ฑ, ์™„์ „ ์…€ํ”„ํ˜ธ์ŠคํŒ…์ด ๊ฐ€๋Šฅํ•œ ๋ชจ๋“ˆํ˜• ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ, 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)์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

โœจ ์ตœ์‹  ์—…๋ฐ์ดํŠธ

v0.5.0 ํ•˜์ด๋ผ์ดํŠธ:

  • Wiki ๋ชจ๋“œ: Agent ๊ธฐ๋ฐ˜์˜ ์ƒˆ๋กœ์šด Wiki ์ง€์‹ ์ฒด๊ณ„๋ฅผ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์›๋ณธ ๋ฌธ์„œ์—์„œ ์ƒํ˜ธ ์—ฐ๊ฒฐ๋œ ๋งˆํฌ๋‹ค์šด ํŽ˜์ด์ง€๋ฅผ ์ž๋™์œผ๋กœ ์ •๋ฆฌยท์ƒ์„ฑํ•˜๊ณ , ์ „์šฉ Wiki ๋ธŒ๋ผ์šฐ์ €์™€ ํ•จ๊ป˜ ํŽ˜์ด์ง€ ๊ฐ„ ์ฐธ์กฐ ๋ฐ ์—ฐ๊ด€ ๊ด€๊ณ„๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์ง€์‹ ๊ทธ๋ž˜ํ”„๋ฅผ ์ œ๊ณตํ•˜์—ฌ, ํŒ€ ์ „์šฉ์œผ๋กœ ๊ตฌ์กฐํ™”๋˜๊ณ  ์ง€์†์ ์œผ๋กœ ์ง„ํ™”ํ•˜๋Š” ์ง€์‹ ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค.
  • ๊ด€์ธก ๊ฐ€๋Šฅ์„ฑ(Observability): Langfuse๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ Agent์˜ ReAct ๋ฃจํ”„, LLM ํ† ํฐ ์ถ”์ , ๋„๊ตฌ ํ˜ธ์ถœ ๋ฐ asynq ํŒŒ์ดํ”„๋ผ์ธ์„ ์‹ฌ์ธต์ ์œผ๋กœ ์ถ”์ ํ•˜์—ฌ Agent ์ถ”๋ก  ๋ฐ ์‹œ์Šคํ…œ ์„ฑ๋Šฅ์„ ์™„๋ฒฝํ•˜๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž ์ •์˜ ์ธ๋ฑ์‹ฑ ์ „๋žต: ์‚ฌ์šฉ์ž๋Š” ์ด์ œ ์ง€์‹๋ฒ ์ด์Šค ์ˆ˜์ค€์—์„œ ๋ฒกํ„ฐ ๊ฒ€์ƒ‰, ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰(ํ•˜์ด๋ธŒ๋ฆฌ๋“œ), Wiki ๋ฐ ์ง€์‹ ๊ทธ๋ž˜ํ”„(Knowledge Graph) ์ธ๋ฑ์‹ฑ์„ ๋…๋ฆฝ์ ์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค UI ๋ฐ ์ง€์‹๋ฒ ์ด์Šค ๋ฐ”์ธ๋”ฉ: ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ๊ฐ€ ํฌํ•จ๋œ ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ํ”„๋ก ํŠธ์—”๋“œ UI๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ, ํŠน์ • ์ง€์‹๋ฒ ์ด์Šค์— ๊ณ ์œ ํ•œ ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ”์ธ๋”ฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค.
  • Yuque ์ปค๋„ฅํ„ฐ: API ํด๋ผ์ด์–ธํŠธ๋ฅผ ํ†ตํ•œ Yuque ๋ฐ์ดํ„ฐ ์†Œ์Šค ํ†ตํ•ฉ์œผ๋กœ ์ „์ฒด ๋ฐ ์ฆ๋ถ„ ๋™๊ธฐํ™”๋ฅผ ์ง€์›ํ•˜์—ฌ Yuque ๋ฌธ์„œ๋ฅผ ์›ํ™œํ•˜๊ฒŒ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  • Agent ๊ธฐ๋Šฅ ๊ฐ•ํ™”: ์ž˜๋ชป๋œ JSON ์ถœ๋ ฅ์„ ์ž๋™์œผ๋กœ ์ˆ˜์ •ํ•˜๋Š” json_repair ๋„๊ตฌ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ, OpenMAIC Classroom ์Šคํ‚ฌ์ด ์‚ฌ์ „ ํƒ‘์žฌ๋˜๊ณ , DuckDB ๋ฐ์ดํ„ฐ ๋ถ„์„์—์„œ Excel์˜ ๋ชจ๋“  ์‹œํŠธ๋ฅผ ๋กœ๋“œํ•˜๋„๋ก ์ง€์›์ด ๊ฐ•ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ”„๋ก ํŠธ์—”๋“œ ๋ฐ ๋””๋ฒ„๊น…: ์„ค์ •์˜ ๋ชจ๋ธ ์นด๋“œ์— ๋ณต์‚ฌ ์ž‘์—…์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ, ๋ชจ๋“  ๋ชจ๋ธ ํ”„๋กœ๋ฐ”์ด๏ฟฝ๏ฟฝ์— ๊ฑธ์ณ LLM ์š”์ฒญ ๋””๋ฒ„๊น…(llm_debug) ๋ฐ ๋กœ๊น… ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฒ„๊ทธ ์ˆ˜์ •: DuckDB ์•ก์„ธ์Šค ๋ฌธ์ œ ์ˆ˜์ •(์ง€์‹ ํŒŒ์ผ์„ ์ž„์‹œ ๊ฒฝ๋กœ์— ๊ตฌ์ฒดํ™”), Wiki ์ „์šฉ Agent์˜ Rerank ๋ชจ๋ธ ์š”๊ตฌ ์‚ฌํ•ญ ์ œ๊ฑฐ, dockerignore์— ์˜คํ”„๋ผ์ธ protoc zip ํŒจํ‚ค์ง€ ํ—ˆ์šฉ ๋ชฉ๋ก ์ถ”๊ฐ€.
<details> <summary><b>์ด์ „ ๋ฆด๋ฆฌ์Šค</b></summary>

v0.4.0 ํ•˜์ด๋ผ์ดํŠธ:

  • ์ง€์‹ ์–ด์‹œ์Šคํ„ดํŠธ: ํด๋ผ์šฐ๋“œ ํ˜ธ์ŠคํŒ… ์ง€์‹ ์–ด์‹œ์Šคํ„ดํŠธ ์„œ๋น„์Šค, ๋กœ์ปฌ ๋ฐฐํฌ ์—†์ด ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘ ๊ฐ€๋Šฅ
  • WeKnora Cloud: WeKnora Cloud ํ”„๋กœ๋ฐ”์ด๋” ํ†ตํ•ฉ, LLM ๋ชจ๋ธ ๋ฐ ๋ฌธ์„œ ํŒŒ์‹ฑ ์„œ๋น„์Šค, ์ž๊ฒฉ ์ฆ๋ช… ๊ด€๋ฆฌ ๋ฐ ์ƒํƒœ ํ™•์ธ
  • Chrome ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ: ๋ธŒ๋ผ์šฐ์ € ํ™•์žฅ์œผ๋กœ ์›นํŽ˜์ด์ง€ ์ง€์‹ ์บก์ฒ˜
  • ClawHub Skill: ClawHub Skill ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ํ†ตํ•ฉ์œผ๋กœ ์›ํด๋ฆญ ์Šคํ‚ฌ ์„ค์น˜
  • WeChat IM ํ†ตํ•ฉ: WeChat ์ฑ„๋„ ์–ด๋Œ‘ํ„ฐ. QR ์ฝ”๋“œ ๋กœ๊ทธ์ธ ๋ฐ ๋กฑํด๋ง ๋ฉ”์‹œ์ง€ ์ง€์›
  • ์ฒจ๋ถ€ํŒŒ์ผ ์ฒ˜๋ฆฌ: ์ฑ„ํŒ… ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ํŒŒ์ผ ์ฒจ๋ถ€ ์ง€์›, ์ฝ˜ํ…์ธ  ํฌ๋งทํŒ… ๋ฐ ์ด๋ฏธ์ง€/์ฒจ๋ถ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ฃผ์ž…
  • Azure OpenAI ํ”„๋กœ๋ฐ”์ด๋”: Azure OpenAI์˜ Chat, VLM, Embedding ๋ชจ๋ธ์„ ์™„์ „ ์ง€์›. ๋ฐฐํฌ ์ด๋ฆ„ ๋ณด์กด ๋ฐ dimensions ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ • ์ง€์›
  • Alibaba Cloud OSS ์Šคํ† ๋ฆฌ์ง€: S3 ํ˜ธํ™˜ ๋ชจ๋“œ๋ฅผ ํ†ตํ•œ ์•Œ๋ฆฌ๋ฐ”๋ฐ” ํด๋ผ์šฐ๋“œ OSS ์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€ ์ง€์›. ์„ค์ • UI, ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ, ๋‹ค๊ตญ์–ด i18n ์ œ๊ณต
  • Notion ์ปค๋„ฅํ„ฐ: Notion ๋ฐ์ดํ„ฐ ์†Œ์Šค ํ†ตํ•ฉ. API ํด๋ผ์ด์–ธํŠธ, Markdown ๋ Œ๋”๋Ÿฌ, Connector ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„
  • Baidu & Ollama ์›น ๊ฒ€์ƒ‰: Baidu ๋ฐ Ollama๋ฅผ ์›น ๊ฒ€์ƒ‰ ํ”„๋กœ๋ฐ”์ด๋”๋กœ ์ถ”๊ฐ€
  • VectorStore ๊ด€๋ฆฌ: ์™„์ „ํ•œ VectorStore CRUD ๊ธฐ๋Šฅ. ์—”ํ‹ฐํ‹ฐ, ๋ฆฌํฌ์ง€ํ† ๋ฆฌ, ์„œ๋น„์Šค ๋ ˆ์ด์–ด, ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ, API ์—”๋“œํฌ์ธํŠธ
  • ์ฃผ์š” ๋ฒ„๊ทธ ์ˆ˜์ •: Azure OpenAI ์—”๋“œํฌ์ธํŠธ ์ฒ˜๋ฆฌ, Embedding ์ž˜๋ฆผ, IM ์ธ์šฉ ํƒœ๊ทธ ์ œ๊ฑฐ, neo4j Go 1.24 Windows ํ˜ธํ™˜์„ฑ, OSS ์„œ๋ช… ๋ฌธ์ œ ์ˆ˜์ •

v0.3.6 ํ•˜์ด๋ผ์ดํŠธ:

  • ASR(์ž๋™ ์Œ์„ฑ ์ธ์‹): ASR ๋ชจ๋ธ ํ†ตํ•ฉ์œผ๋กœ ์˜ค๋””์˜ค ํŒŒ์ผ ์—…๋กœ๋“œ, ๋ฌธ์„œ ๋‚ด ์˜ค๋””์˜ค ๋ฏธ๋ฆฌ๋ณด๊ธฐ, ์Œ์„ฑ ์ „์‚ฌ ๊ธฐ๋Šฅ ์ง€์›
  • ๋ฐ์ดํ„ฐ ์†Œ์Šค ์ž๋™ ๋™๊ธฐํ™”(Feishu): ์™„์ „ํ•œ ๋ฐ์ดํ„ฐ ์†Œ์Šค ๊ด€๋ฆฌ ๊ธฐ๋Šฅ, Feishu Wiki/๋“œ๋ผ์ด๋ธŒ ์ž๋™ ๋™๊ธฐํ™”(์ฆ๋ถ„/์ „์ฒด), ๋™๊ธฐํ™” ๋กœ๊ทธ ๋ฐ ํ…Œ๋„ŒํŠธ ๊ฒฉ๋ฆฌ
  • OIDC ์ธ์ฆ: OpenID Connect ๋กœ๊ทธ์ธ ์ง€์›, ์ž๋™ ๋””์Šค์ปค๋ฒ„๋ฆฌ, ์ปค์Šคํ…€ ์—”๋“œํฌ์ธํŠธ ์„ค์ •, ์‚ฌ์šฉ์ž ์ •๋ณด ๋งคํ•‘
  • IM ์ธ์šฉ ๋‹ต์žฅ ์ปจํ…์ŠคํŠธ: IM ์ฑ„๋„์—์„œ ์ธ์šฉ ๋ฉ”์‹œ์ง€๋ฅผ ์ถ”์ถœํ•ด LLM ํ”„๋กฌํ”„ํŠธ์— ์ฃผ์ž…ํ•˜์—ฌ ๋งฅ๋ฝ ๊ธฐ๋ฐ˜ ๋‹ต๋ณ€ ์‹คํ˜„; ๋น„ํ…์ŠคํŠธ ์ธ์šฉ์˜ ํ™˜๊ฐ ๋ฐฉ์ง€ ์ฒ˜๋ฆฌ
  • IM ์Šค๋ ˆ๋“œ ๊ธฐ๋ฐ˜ ์„ธ์…˜: IM ์ฑ„๋„(Slack, Mattermost, Feishu, Telegram)์—์„œ ์Šค๋ ˆ๋“œ ๋‹จ์œ„ ์„ธ์…˜ ๋ชจ๋“œ๋ฅผ ์ง€์›, ์Šค๋ ˆ๋“œ ๋‚ด ๋‹ค์ค‘ ์‚ฌ์šฉ์ž ํ˜‘์—…
  • ๋ฌธ์„œ ์ž๋™ ์š”์•ฝ: AI ์ƒ์„ฑ ๋ฌธ์„œ ์š”์•ฝ, ์ตœ๋Œ€ ์ž…๋ ฅ ํฌ๊ธฐ ์„ค์ • ๊ฐ€๋Šฅ, ๋ฌธ์„œ ์ƒ์„ธ ํŽ˜์ด์ง€์— ์ „์šฉ ์š”์•ฝ ์„น์…˜
  • Tavily ์›น ๊ฒ€์ƒ‰: Tavily๋ฅผ ์ƒˆ๋กœ์šด ์›น ๊ฒ€์ƒ‰ ํ”„๋กœ๋ฐ”์ด๋”๋กœ ์ถ”๊ฐ€; ์›น ๊ฒ€์ƒ‰ ํ”„๋กœ๋ฐ”์ด๋” ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ™•์žฅ์„ฑ ํ–ฅ์ƒ์„ ์œ„ํ•ด ๋ฆฌํŒฉํ† ๋ง
  • MCP ์ž๋™ ์žฌ์—ฐ๊ฒฐ: ์„œ๋ฒ„ ์—ฐ๊ฒฐ ๋Š๊น€ ์‹œ MCP ๋„๊ตฌ ํ˜ธ์ถœ ์ž๋™ ์žฌ์—ฐ๊ฒฐ ๋กœ์ง
  • ๋ณ‘๋ ฌ ๋„๊ตฌ ํ˜ธ์ถœ: Agent ๋ชจ๋“œ์—์„œ errgroup์„ ์‚ฌ์šฉํ•œ ๋‹ค์ค‘ ๋„๊ตฌ ํ˜ธ์ถœ ๋ณ‘๋ ฌ ์‹คํ–‰์œผ๋กœ ๋ณต์žกํ•œ ์ž‘์—… ์ฒ˜๋ฆฌ ์†๋„ ํ–ฅ์ƒ
  • Agent @๋ฉ˜์…˜ ๋ฒ”์œ„ ์ œํ•œ: ์‚ฌ์šฉ์ž @๋ฉ˜์…˜์„ Agent ํ—ˆ์šฉ ์ง€์‹๋ฒ ์ด์Šค ๋ฒ”์œ„๋กœ ์ œํ•œํ•˜์—ฌ ๋ฌด๋‹จ ์ ‘๊ทผ ๋ฐฉ์ง€
  • ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ์„ฑ๋Šฅ: backdrop-filter blur ์ „์ฒด ์ œ๊ฑฐ, ์• ๋‹ˆ๋ฉ”์ด์…˜ ์š”์†Œ ์ถ•์†Œ, GPU ํ•ฉ์„ฑ ํžŒํŠธ ์ถ”๊ฐ€

v0.3.5 ํ•˜์ด๋ผ์ดํŠธ:

  • Telegram, DingTalk & Mattermost IM ํ†ตํ•ฉ: Telegram ๋ด‡(webhook/๋กฑํด๋ง, editMessageText ์ŠคํŠธ๋ฆฌ๋ฐ), DingTalk ๋ด‡(webhook/Stream ๋ชจ๋“œ, AI ์นด๋“œ ์ŠคํŠธ๋ฆฌ๋ฐ), Mattermost ์–ด๋Œ‘ํ„ฐ๋ฅผ ์‹ ๊ทœ ์ถ”๊ฐ€. IM ์ฑ„๋„์ด ๊ธฐ์—…WeChat, Feishu, Slack, Telegram, DingTalk, Mattermost 6๊ฐœ ํ”Œ๋žซํผ์œผ๋กœ ํ™•๋Œ€
  • IM ์Šฌ๋ž˜์‹œ ์ปค๋งจ๋“œ ๋ฐ QA ํ: ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐฉ์‹ ์Šฌ๋ž˜์‹œ ์ปค๋งจ๋“œ ํ”„๋ ˆ์ž„์›Œํฌ(/help, /info, /search, /stop, /clear), ์œ ๊ณ„ QA ์›Œ์ปค ํ’€, ์‚ฌ์šฉ์ž๋ณ„ ๋ ˆ์ดํŠธ ๋ฆฌ๋ฐ‹, Redis ๊ธฐ๋ฐ˜ ๋ฉ€ํ‹ฐ ์ธ์Šคํ„ด์Šค ๋ถ„์‚ฐ ์กฐ์ •
  • ์ถ”์ฒœ ์งˆ๋ฌธ: Agent๊ฐ€ ์—ฐ๊ฒฐ๋œ ์ง€์‹๋ฒ ์ด์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ปจํ…์ŠคํŠธ ๋งž์ถค ์ถ”์ฒœ ์งˆ๋ฌธ์„ ์ž๋™ ์ƒ์„ฑํ•ด ์ฑ„ํŒ… ํ™”๋ฉด์— ํ‘œ์‹œ; ์ด๋ฏธ์ง€ ์ง€์‹์€ ์งˆ๋ฌธ ์ƒ์„ฑ ์ž‘์—…์„ ์ž๋™ ํ ๋“ฑ๋ก
  • VLM์„ ํ†ตํ•œ MCP ๋„๊ตฌ ์ด๋ฏธ์ง€ ์ž๋™ ์„ค๋ช…: MCP ๋„๊ตฌ๊ฐ€ ์ด๋ฏธ์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด ์„ค์ •๋œ VLM ๋ชจ๋ธ๋กœ ํ…์ŠคํŠธ ์„ค๋ช…์„ ์ž๋™ ์ƒ์„ฑํ•ด ํ…์ŠคํŠธ ์ „์šฉ LLM์—์„œ๋„ ์ด๋ฏธ์ง€ ๋‚ด์šฉ ํ™œ์šฉ ๊ฐ€๋Šฅ
  • Novita AI ํ”„๋กœ๋ฐ”์ด๋”: OpenAI ํ˜ธํ™˜ API๋กœ chat, embedding, VLLM ๋ชจ๋ธ ํƒ€์ž…์„ ์ง€์›ํ•˜๋Š” ์‹ ๊ทœ LLM ํ”„๋กœ๋ฐ”์ด๋”
  • MCP ๋„๊ตฌ๋ช… ์•ˆ์ •์„ฑ: UUID ๋Œ€์‹  service.Name ๊ธฐ๋ฐ˜ ๋„๊ตฌ๋ช…(์žฌ์—ฐ๊ฒฐ ํ›„์—๋„ ์•ˆ์ •), ๊ณ ์œ ๋ช… ์ œ์•ฝ ๋ฐ ์ถฉ๋Œ ๋ฐฉ์ง€ ์ถ”๊ฐ€; ํ”„๋ก ํŠธ์—”๋“œ์—์„œ snake_case๋ฅผ ์‚ฌ๋žŒ์ด ์ฝ๊ธฐ ์‰ฌ์šด ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜
  • ์ฑ„๋„ ์ถ”์ : ์ง€์‹ ํ•ญ๋ชฉ๊ณผ ๋ฉ”์‹œ์ง€์— channel ํ•„๋“œ ์ถ”๊ฐ€(web/api/im/browser_extension)๋กœ ์ถœ์ฒ˜ ์ถ”์  ๊ฐ€๋Šฅ
  • ์ฃผ์š” ๋ฒ„๊ทธ ์ˆ˜์ •: ์ง€์‹๋ฒ ์ด์Šค ๋ฏธ์„ค์ • ์‹œ Agent ๋นˆ ์‘๋‹ต, ํ•œ๊ตญ์–ด/์ด๋ชจ์ง€ ๋ฌธ์„œ ์š”์•ฝ์˜ UTF-8 ์ž˜๋ฆผ, ํ…Œ๋„ŒํŠธ ์„ค์ • ์—…๋ฐ์ดํŠธ ์‹œ API ํ‚ค ์•”ํ˜ธํ™” ์†์‹ค, vLLM ์ŠคํŠธ๋ฆฌ๋ฐ ์ถ”๋ก  ์ฝ˜ํ…์ธ  ๋ˆ„๋ฝ, Rerank ๋นˆ ํŒจ์‹œ์ง€ ์˜ค๋ฅ˜ ์ˆ˜์ •

v0.3.4 ํ•˜์ด๋ผ์ดํŠธ:

  • IM ๋ด‡ ํ†ตํ•ฉ: ๊ธฐ์—…WeChat, Feishu, Slack IM ์ฑ„๋„ ์ง€์›, WebSocket/Webhook ๋ชจ๋“œ, ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ ์ง€์‹๋ฒ ์ด์Šค ํ†ตํ•ฉ
  • ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ์ด๋ฏธ์ง€ ์ง€์›: ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๋ฐ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ, ์„ธ์…˜ ๊ด€๋ฆฌ ๊ฐ•ํ™”
  • ์ˆ˜๋™ ์ง€์‹ ๋‹ค์šด๋กœ๋“œ: ์ˆ˜๋™ ์ง€์‹ ์ฝ˜ํ…์ธ ๋ฅผ ํŒŒ์ผ๋กœ ๋‹ค์šด๋กœ๋“œ, ํŒŒ์ผ๋ช… ์ •๋ฆฌ ๋ฐ ํฌ๋งท ์ฒ˜๋ฆฌ
  • NVIDIA ๋ชจ๋ธ API: NVIDIA ์ฑ„ํŒ… ๋ชจ๋ธ API ์ง€์›, ์ปค์Šคํ…€ ์—”๋“œํฌ์ธํŠธ ๋ฐ VLM ๋ชจ๋ธ ์„ค์ •
  • Weaviate ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค: ์ง€์‹ ๊ฒ€์ƒ‰์„ ์œ„ํ•œ Weaviate ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฑ์—”๋“œ ์ถ”๊ฐ€
  • AWS S3 ์Šคํ† ๋ฆฌ์ง€: AWS S3 ์Šคํ† ๋ฆฌ์ง€ ์–ด๋Œ‘ํ„ฐ ํ†ตํ•ฉ, ์„ค์ • UI ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
  • AES-256-GCM ์•”ํ˜ธํ™”: API ํ‚ค๋ฅผ AES-256-GCM์œผ๋กœ ์ •์  ์•”ํ˜ธํ™”ํ•˜์—ฌ ๋ณด์•ˆ ๊ฐ•ํ™”
  • ๋‚ด์žฅ MCP ์„œ๋น„์Šค: ๋‚ด์žฅ MCP ์„œ๋น„์Šค ์ง€์›์œผ๋กœ Agent ๊ธฐ๋Šฅ ํ™•์žฅ
  • ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰ ์ตœ์ ํ™”: ํƒ€๊ฒŸ ๊ทธ๋ฃนํ™” ๋ฐ ์ฟผ๋ฆฌ ์ž„๋ฒ ๋”ฉ ์žฌ์‚ฌ์šฉ์œผ๋กœ ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ ํ–ฅ์ƒ
  • Final Answer ๋„๊ตฌ: ์ƒˆ๋กœ์šด final_answer ๋„๊ตฌ ๋ฐ Agent ์†Œ์š” ์‹œ๊ฐ„ ์ถ”์ ์œผ๋กœ ์›Œํฌํ”Œ๋กœ์šฐ ๊ฐœ์„ 

v0.3.3 ํ•˜์ด๋ผ์ดํŠธ:

  • ๋ถ€๋ชจ-์ž์‹ ์ฒญํ‚น: ๊ณ„์ธต์  ๋ถ€๋ชจ-์ž์‹ ์ฒญํ‚น ์ „๋žต์œผ๋กœ ์ปจํ…์ŠคํŠธ ๊ด€๋ฆฌ ๋ฐ ๊ฒ€์ƒ‰ ์ •ํ™•๋„ ๊ฐ•ํ™”
  • ์ง€์‹๋ฒ ์ด์Šค ๊ณ ์ •: ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์ง€์‹๋ฒ ์ด์Šค๋ฅผ ๊ณ ์ •ํ•˜์—ฌ ๋น ๋ฅธ ์ ‘๊ทผ ์ง€์›
  • ํด๋ฐฑ ์‘๋‹ต: ๊ด€๋ จ ๊ฒฐ๊ณผ๊ฐ€ ์—†์„ ๋•Œ ํด๋ฐฑ ์‘๋‹ต ์ฒ˜๋ฆฌ ๋ฐ UI ํ‘œ์‹œ๊ธฐ
  • Rerank ํŒจ์‹œ์ง€ ํด๋ฆฌ๋‹: Rerank ๋ชจ๋ธ์˜ ํŒจ์‹œ์ง€ ํด๋ฆฌ๋‹ ๊ธฐ๋Šฅ์œผ๋กœ ๊ด€๋ จ์„ฑ ์ ์ˆ˜ ์ •ํ™•๋„ ํ–ฅ์ƒ
  • ๋ฒ„ํ‚ท ์ž๋™ ์ƒ์„ฑ: ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ ์—ฐ๊ฒฐ ํ™•์ธ ๊ฐ•ํ™”, ๋ฒ„ํ‚ท ์ž๋™ ์ƒ์„ฑ ์ง€์›
  • Milvus ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค: ์ง€์‹ ๊ฒ€์ƒ‰์„ ์œ„ํ•œ Milvus ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฑ์—”๋“œ ์ถ”๊ฐ€

v0.3.2 ํ•˜์ด๋ผ์ดํŠธ:

  • ๐Ÿ” ์ง€์‹ ๊ฒ€์ƒ‰: ์‹œ๋งจํ‹ฑ ๊ฒ€์ƒ‰์„ ์ง€์›ํ•˜๋Š” ์ƒˆ๋กœ์šด "์ง€์‹ ๊ฒ€์ƒ‰" ์ง„์ž…์ , ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ๋Œ€ํ™” ์ฐฝ์œผ๋กœ ๋ฐ”๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ ์ง€์›
  • โš™๏ธ ํŒŒ์„œ ๋ฐ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ ์„ค์ •: ์„ค์ •์—์„œ ์†Œ์Šค๋ณ„ ๋ฌธ์„œ ํŒŒ์„œ ์—”์ง„๊ณผ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ ๊ตฌ์„ฑ ๊ฐ€๋Šฅ, ์ง€์‹๋ฒ ์ด์Šค์—์„œ ํŒŒ์ผ ํƒ€์ž…๋ณ„ ํŒŒ์„œ ์„ ํƒ ์ง€์›
  • ๐Ÿ–ผ๏ธ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ ์ด๋ฏธ์ง€ ๋ Œ๋”๋ง: ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ ๋ชจ๋“œ์—์„œ ๋Œ€ํ™” ์ค‘ ์ด๋ฏธ์ง€ ๋ Œ๋”๋ง ์ง€์›, ์ŠคํŠธ๋ฆฌ๋ฐ ์ด๋ฏธ์ง€ ํ”Œ๋ ˆ์ด์Šคํ™€๋” ์ตœ์ ํ™”
  • ๐Ÿ“„ ๋ฌธ์„œ ๋ฏธ๋ฆฌ๋ณด๊ธฐ: ์‚ฌ์šฉ์ž๊ฐ€ ์—…๋กœ๋“œํ•œ ์›๋ณธ ํŒŒ์ผ์„ ๋ฏธ๋ฆฌ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋‚ด์žฅ ๋ฌธ์„œ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ปดํฌ๋„ŒํŠธ
  • ๐ŸŽจ UI ์ตœ์ ํ™”: ์ง€์‹๋ฒ ์ด์Šค, ์—์ด์ „ํŠธ, ๊ณต์œ  ๊ณต๊ฐ„ ๋ชฉ๋ก ํŽ˜์ด์ง€ ์ธํ„ฐ๋ž™์…˜ ๊ฐœํŽธ
  • ๐Ÿ—„๏ธ Milvus ์ง€์›: ์ง€์‹ ๊ฒ€์ƒ‰์„ ์œ„ํ•œ Milvus ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฑ์—”๋“œ ์ถ”๊ฐ€
  • ๐ŸŒ‹ Volcengine TOS: Volcengine TOS ์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€ ์ง€์› ์ถ”๊ฐ€
  • ๐Ÿ“Š Mermaid ๋ Œ๋”๋ง: ์ฑ„ํŒ…์—์„œ Mermaid ๋‹ค์ด์–ด๊ทธ๋žจ ๋ Œ๋”๋ง ์ง€์›, ์ „์ฒด ํ™”๋ฉด ๋ทฐ์–ด/์คŒ/๋‚ด๋น„๊ฒŒ์ด์…˜/๋‚ด๋ณด๋‚ด๊ธฐ ๊ธฐ๋Šฅ ํฌํ•จ
  • ๐Ÿ’ฌ ๋Œ€ํ™” ์ผ๊ด„ ๊ด€๋ฆฌ: ์ผ๊ด„ ๊ด€๋ฆฌ ๋ฐ ์ „์ฒด ์„ธ์…˜ ์‚ญ์ œ ๊ธฐ๋Šฅ
  • ๐Ÿ”— ์›๊ฒฉ URL ์ง€์‹: ์›๊ฒฉ ํŒŒ์ผ URL๋กœ ์ง€์‹ ํ•ญ๋ชฉ ์ƒ์„ฑ ์ง€์›
  • ๐Ÿง  ๋ฉ”๋ชจ๋ฆฌ ๊ทธ๋ž˜ํ”„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ: ์‚ฌ์šฉ์ž ๋ ˆ๋ฒจ ๋ฉ”๋ชจ๋ฆฌ ๊ทธ๋ž˜ํ”„ ์‹œ๊ฐํ™” ๋ฏธ๋ฆฌ๋ณด๊ธฐ
  • ๐Ÿ”„ ๋น„๋™๊ธฐ ์žฌํŒŒ์‹ฑ: ๊ธฐ์กด ์ง€์‹ ๋ฌธ์„œ๋ฅผ ๋น„๋™๊ธฐ๋กœ ์žฌ์ฒ˜๋ฆฌํ•˜๋Š” API

v0.3.0 ํ•˜์ด๋ผ์ดํŠธ:

  • ๐Ÿข ๊ณต์œ  ๊ณต๊ฐ„: ๋ฉค๋ฒ„ ์ดˆ๋Œ€, ๋ฉค๋ฒ„ ๊ฐ„ ์ง€์‹๋ฒ ์ด์Šค/์—์ด์ „ํŠธ ๊ณต์œ , ํ…Œ๋„ŒํŠธ ๊ฒฉ๋ฆฌ ๊ฒ€์ƒ‰์„ ์ง€์›ํ•˜๋Š” ๊ณต์œ  ๊ณต๊ฐ„
  • ๐Ÿงฉ Agent Skills: ์Šค๋งˆํŠธ ์ถ”๋ก  ์—์ด์ „ํŠธ๋ฅผ ์œ„ํ•œ ์‚ฌ์ „ ๋กœ๋“œ ์Šคํ‚ฌ๊ณผ ์ƒŒ๋“œ๋ฐ•์Šค ๊ธฐ๋ฐ˜ ๋ณด์•ˆ ๊ฒฉ๋ฆฌ ์‹คํ–‰ ํ™˜๊ฒฝ ์ œ๊ณต
  • ๐Ÿค– ์ปค์Šคํ…€ ์—์ด์ „ํŠธ: ์ง€์‹๋ฒ ์ด์Šค ์„ ํƒ ๋ชจ๋“œ(์ „์ฒด/์ง€์ •/๋น„ํ™œ์„ฑํ™”)์™€ ํ•จ๊ป˜ ์ปค์Šคํ…€ ์—์ด์ „ํŠธ ์ƒ์„ฑ, ์„ค์ •, ์„ ํƒ ์ง€์›
  • ๐Ÿ“Š ๋ฐ์ดํ„ฐ ๋ถ„์„ ์—์ด์ „ํŠธ: ๋‚ด์žฅ ๋ฐ์ดํ„ฐ ๋ถ„์„ ์—์ด์ „ํŠธ, CSV/Excel ๋ถ„์„์šฉ DataSchema ๋„๊ตฌ
  • ๐Ÿง  ์‚ฌ๊ณ  ๋ชจ๋“œ: LLM๊ณผ ์—์ด์ „ํŠธ์˜ ์‚ฌ๊ณ  ๋ชจ๋“œ ์ง€์› ๋ฐ ์‚ฌ๊ณ  ๋‚ด์šฉ ์ง€๋Šฅํ˜• ํ•„ํ„ฐ๋ง
  • ๐Ÿ” ์›น ๊ฒ€์ƒ‰ ์ œ๊ณต์ž: DuckDuckGo ์™ธ์— Bing, Google ๊ฒ€์ƒ‰ ์ œ๊ณต์ž ์ถ”๊ฐ€
  • ๐Ÿ“‹ FAQ ๊ฐ•ํ™”: ์ผ๊ด„ ์ž„ํฌํŠธ ๋“œ๋ผ์ด๋Ÿฐ, ์œ ์‚ฌ ์งˆ๋ฌธ, ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ๋งค์นญ ์งˆ๋ฌธ ํ•„๋“œ, ๋Œ€๋Ÿ‰ ์ž„ํฌํŠธ ์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€ ์˜คํ”„๋กœ๋“œ
  • ๐Ÿ”‘ API Key ์ธ์ฆ: API Key ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜, Swagger ๋ฌธ์„œ ๋ณด์•ˆ ์„ค์ •
  • ๐Ÿ“Ž ์ž…๋ ฅ์ฐฝ ๋‚ด ์„ ํƒ: ์ž…๋ ฅ์ฐฝ์—์„œ ์ง€์‹๋ฒ ์ด์Šค์™€ ํŒŒ์ผ์„ ์ง์ ‘ ์„ ํƒ, @๋ฉ˜์…˜ ํ‘œ์‹œ
  • โ˜ธ๏ธ Helm Chart: Neo4j GraphRAG ์ง€์›์„ ํฌํ•จํ•œ Kubernetes ๋ฐฐํฌ์šฉ ์™„์ „ํ•œ Helm Chart ์ œ๊ณต
  • ๐ŸŒ ๊ตญ์ œํ™”: ํ•œ๊ตญ์–ด(ํ•œ๊ตญ์–ด) ์ง€์› ์ถ”๊ฐ€
  • ๐Ÿ”’ ๋ณด์•ˆ ๊ฐ•ํ™”: SSRF ์•ˆ์ „ HTTP ํด๋ผ์ด์–ธํŠธ, ํ–ฅ์ƒ๋œ SQL ๊ฒ€์ฆ, MCP stdio ์ „์†ก ๋ณด์•ˆ, ์ƒŒ๋“œ๋ฐ•์Šค ๊ธฐ๋ฐ˜ ์‹คํ–‰
  • โšก ์ธํ”„๋ผ: Qdrant ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ง€์›, Redis ACL, ๋กœ๊ทธ ๋ ˆ๋ฒจ ์„ค์ •, Ollama ์ž„๋ฒ ๋”ฉ ์ตœ์ ํ™”, DISABLE_REGISTRATION ์ œ์–ด

v0.2.0 ํ•˜์ด๋ผ์ดํŠธ:

  • ๐Ÿค– Agent ๋ชจ๋“œ: ๋‚ด์žฅ ๋„๊ตฌ, MCP ๋„๊ตฌ, ์›น ๊ฒ€์ƒ‰์„ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ReACT Agent ๋ชจ๋“œ ์ถ”๊ฐ€. ๋‹ค์ค‘ ๋ฐ˜๋ณต ๋ฐ ๋ฆฌํ”Œ๋ ‰์…˜์„ ํ†ตํ•ด ์ข…ํ•ฉ ์š”์•ฝ ๋ฆฌํฌํŠธ ์ œ๊ณต
  • ๐Ÿ“š ๋‹ค์ค‘ ์ง€์‹๋ฒ ์ด์Šค ํƒ€์ž…: FAQ/๋ฌธ์„œ ์ง€์‹๋ฒ ์ด์Šค ํƒ€์ž… ์ง€์› ๋ฐ ํด๋” ์ž„ํฌํŠธ, URL ์ž„ํฌํŠธ, ํƒœ๊ทธ ๊ด€๋ฆฌ, ์˜จ๋ผ์ธ ์ž…๋ ฅ ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • โš™๏ธ ๋Œ€ํ™” ์ „๋žต: Agent ๋ชจ๋ธ, ์ผ๋ฐ˜ ๋ชจ๋“œ ๋ชจ๋ธ, ๊ฒ€์ƒ‰ ์ž„๊ณ„๊ฐ’, ํ”„๋กฌํ”„ํŠธ ์„ค์ • ์ง€์›. ๋ฉ€ํ‹ฐํ„ด ๋Œ€ํ™” ๋™์ž‘์„ ์ •๋ฐ€ ์ œ์–ด
  • ๐ŸŒ ์›น ๊ฒ€์ƒ‰: ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์›น ๊ฒ€์ƒ‰ ์—”์ง„ ์ง€์›, DuckDuckGo ๊ฒ€์ƒ‰ ์—”์ง„ ๋‚ด์žฅ
  • ๐Ÿ”Œ MCP ๋„๊ตฌ ํ†ตํ•ฉ: MCP๋ฅผ ํ†ตํ•œ Agent ๊ธฐ๋Šฅ ํ™•์žฅ ์ง€์›, uvx/npx ๋Ÿฐ์ฒ˜ ๋‚ด์žฅ, ๋‹ค์–‘ํ•œ ์ „์†ก ๋ฐฉ์‹ ์ง€์›
  • ๐ŸŽจ ์ƒˆ UI: Agent/์ผ๋ฐ˜ ๋ชจ๋“œ ์ „ํ™˜, ๋„๊ตฌ ํ˜ธ์ถœ ๊ณผ์ • ํ‘œ์‹œ, ์ง€์‹๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์ธํ„ฐํŽ˜์ด์Šค ์ „๋ฉด ๊ฐœ์„ 
  • โšก ์ธํ”„๋ผ ์—…๊ทธ๋ ˆ์ด๋“œ: MQ ๋น„๋™๊ธฐ ์ž‘์—… ๊ด€๋ฆฌ ๋„์ž…, ์ž๋™ DB ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋ฐ ๊ณ ์† ๊ฐœ๋ฐœ ๋ชจ๋“œ ์ง€์›
</details>

๐Ÿ“ฑ ๊ธฐ๋Šฅ ๋ฐ๋ชจ

<table> <tr> <td colspan="2" align="center"><b>๐Ÿ’ฌ ์ง€๋Šฅํ˜• Q&A ๋Œ€ํ™”</b> </td> </tr> <tr> <td width="50%" align="center"><b>๐Ÿ“– Wiki ๋ธŒ๋ผ์šฐ์ €</b> </td> <td width="50%" align="center"><b>๐Ÿ•ธ๏ธ Wiki ์ง€์‹ ๊ทธ๋ž˜ํ”„</b> </td> </tr> <tr> <td width="50%" align="center"><b>๐Ÿค– Agent ๋ชจ๋“œ ยท ๋„๊ตฌ ํ˜ธ์ถœ ๊ณผ์ •</b> </td> <td width="50%" align="center"><b>โš™๏ธ ๋Œ€ํ™” ์„ค์ •</b> </td> </tr> <tr> <td colspan="2" align="center"><b>๐Ÿ”ญ ๊ด€์ธก ๊ฐ€๋Šฅ์„ฑ ยท Langfuse Tracing</b> </td> </tr> </table>

๐Ÿ—๏ธ ์•„ํ‚คํ…์ฒ˜

๋ฌธ์„œ ํŒŒ์‹ฑ, ๋ฒกํ„ฐํ™”, ๊ฒ€์ƒ‰๋ถ€ํ„ฐ LLM ์ถ”๋ก ๊นŒ์ง€ ์ „์ฒด ํŒŒ์ดํ”„๋ผ์ธ์„ ๋ชจ๋“ˆํ™”ํ•˜์—ฌ ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ๊ต์ฒดยทํ™•์žฅ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ / ํ”„๋ผ์ด๋น— ํด๋ผ์šฐ๋“œ ๋ฐฐํฌ๋ฅผ ์ง€์›ํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ ์™„์ „ ์ž์ฒด ๊ด€๋ฆฌ์™€ ์ง„์ž… ์žฅ๋ฒฝ ์—†๋Š” Web UI๋กœ ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Š ์ ์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค

์‹œ๋‚˜๋ฆฌ์˜ค์ ์šฉ ์‚ฌ๋ก€ํ•ต์‹ฌ ๊ฐ€์น˜
๊ธฐ์—… ์ง€์‹ ๊ด€๋ฆฌ๋‚ด๋ถ€ ๋ฌธ์„œ ๊ฒ€์ƒ‰, ๊ทœ์ • Q&A, ์šด์˜ ๋งค๋‰ด์–ผ ์กฐํšŒ์ง€์‹ ํƒ์ƒ‰ ํšจ์œจ ํ–ฅ์ƒ, ๊ต์œก ๋น„์šฉ ์ ˆ๊ฐ
ํ•™์ˆ  ์—ฐ๊ตฌ ๋ถ„์„๋…ผ๋ฌธ ๊ฒ€์ƒ‰, ์—ฐ๊ตฌ ๋ฆฌํฌํŠธ ๋ถ„์„, ํ•™์ˆ  ์ž๋ฃŒ ์ •๋ฆฌ๋ฌธํ—Œ ์กฐ์‚ฌ ๊ฐ€์†, ์—ฐ๊ตฌ ์˜์‚ฌ๊ฒฐ์ • ์ง€์›
์ œํ’ˆ ๊ธฐ์ˆ  ์ง€์›์ œํ’ˆ ๋งค๋‰ด์–ผ Q&A, ๊ธฐ์ˆ  ๋ฌธ์„œ ๊ฒ€์ƒ‰, ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…๊ณ ๊ฐ ์ง€์› ํ’ˆ์งˆ ํ–ฅ์ƒ, ์ง€์› ๋ถ€๋‹ด ๊ฐ์†Œ
๋ฒ•๋ฌด/์ปดํ”Œ๋ผ์ด์–ธ์Šค ๊ฒ€ํ† ๊ณ„์•ฝ ์กฐํ•ญ ๊ฒ€์ƒ‰, ๊ทœ์ œ ์ •์ฑ… ์กฐํšŒ, ์‚ฌ๋ก€ ๋ถ„์„์ปดํ”Œ๋ผ์ด์–ธ์Šค ํšจ์œจ ํ–ฅ์ƒ, ๋ฒ•์  ๋ฆฌ์Šคํฌ ๊ฐ์†Œ
์˜๋ฃŒ ์ง€์‹ ์ง€์›์˜ํ•™ ๋ฌธํ—Œ ๊ฒ€์ƒ‰, ์ง„๋ฃŒ ๊ฐ€์ด๋“œ๋ผ์ธ ์กฐํšŒ, ์ฆ๋ก€ ๋ถ„์„์ž„์ƒ ์˜์‚ฌ๊ฒฐ์ • ์ง€์›, ์ง„๋‹จ ํ’ˆ์งˆ ํ–ฅ์ƒ

๐Ÿงฉ ๊ธฐ๋Šฅ ๊ฐœ์š”

์ง€๋Šฅํ˜• ๋Œ€ํ™”

๊ธฐ๋Šฅ์ƒ์„ธ
์ง€๋Šฅํ˜• ์ถ”๋ก ReACT ์ ์ง„์  ๋ฉ€ํ‹ฐ์Šคํ… ์ถ”๋ก , ์ง€์‹ ๊ฒ€์ƒ‰ยทMCP ๋„๊ตฌยท์›น ๊ฒ€์ƒ‰์„ ์ž์œจ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜, ์ปค์Šคํ…€ ์—์ด์ „ํŠธ ์ง€์›
๋น ๋ฅธ Q&A์ง€์‹๋ฒ ์ด์Šค ๊ธฐ๋ฐ˜ RAG Q&A, ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•œ ๋‹ต๋ณ€
Wiki ๋ชจ๋“œAgent๊ฐ€ ์ฃผ๋„ํ•˜์—ฌ ์›๋ณธ ๋ฌธ์„œ์—์„œ ๊ตฌ์กฐํ™”๋œ ๋งˆํฌ๋‹ค์šด Wiki ํŽ˜์ด์ง€๋ฅผ ์ž๋™ ์ƒ์„ฑ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ
๋„๊ตฌ ํ˜ธ์ถœ๋‚ด์žฅ ๋„๊ตฌ, MCP ๋„๊ตฌ, ์›น ๊ฒ€์ƒ‰
๋Œ€ํ™” ์ „๋žต์˜จ๋ผ์ธ ํ”„๋กฌํ”„ํŠธ ํŽธ์ง‘, ๊ฒ€์ƒ‰ ์ž„๊ณ„๊ฐ’ ์กฐ์ •, ๋ฉ€ํ‹ฐํ„ด ๋ฌธ๋งฅ ์ธ์‹
์ถ”์ฒœ ์งˆ๋ฌธ์ง€์‹๋ฒ ์ด์Šค ์ฝ˜ํ…์ธ  ๊ธฐ๋ฐ˜ ์งˆ๋ฌธ ์ž๋™ ์ƒ์„ฑ

์ง€์‹ ๊ด€๋ฆฌ

๊ธฐ๋Šฅ์ƒ์„ธ
์ง€์‹๋ฒ ์ด์Šค ํƒ€์ž…FAQ / ๋ฌธ์„œ / Wiki, ํด๋” ์ž„ํฌํŠธยทURL ์ž„ํฌํŠธยทํƒœ๊ทธ ๊ด€๋ฆฌยท์˜จ๋ผ์ธ ์ž…๋ ฅ
๋ฐ์ดํ„ฐ ์†Œ์Šค ์ž„ํฌํŠธFeishu / Notion / Yuque ์ง€์‹๋ฒ ์ด์Šค ์ž๋™ ๋™๊ธฐํ™”(์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ ์†Œ์Šค ๊ฐœ๋ฐœ ์ค‘), ์ฆ๋ถ„ยท์ „์ฒด ๋™๊ธฐํ™” ์ง€์›
๋ฌธ์„œ ํฌ๋งทPDF / Word / Txt / Markdown / HTML / ์ด๋ฏธ์ง€ / CSV / Excel / PPT / JSON
๊ฒ€์ƒ‰ ์ „๋žตBM25 ํฌ์†Œ / Dense ๋ฐ€์ง‘ / GraphRAG ๊ทธ๋ž˜ํ”„ ๊ฐ•ํ™” / ๋ถ€๋ชจ-์ž์‹ ์ฒญํ‚น / ๋‹ค์ฐจ์› ์ธ๋ฑ์‹ฑ
E2E ํ…Œ์ŠคํŠธ์ „์ฒด ํŒŒ์ดํ”„๋ผ์ธ ์‹œ๊ฐํ™”, ๋ฆฌ์ฝœ ์ ์ค‘๋ฅ ยทBLEU / ROUGE ์ง€ํ‘œ ํ‰๊ฐ€

์—ฐ๋™ ๋ฐ ํ™•์žฅ

๊ธฐ๋Šฅ์ƒ์„ธ
LLMOpenAI / Azure OpenAI / DeepSeek / Qwen (Alibaba Cloud) / Zhipu / Hunyuan / Doubao (Volcengine) / Gemini / MiniMax / NVIDIA / Novita AI / SiliconFlow / OpenRouter / Ollama
EmbeddingOllama / BGE / GTE / OpenAI ํ˜ธํ™˜ API
๋ฒกํ„ฐ DBPostgreSQL (pgvector) / Elasticsearch / Milvus / Weaviate / Qdrant
์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€๋กœ์ปฌ / MinIO / AWS S3 / Volcengine TOS / Alibaba Cloud OSS
IM ํ†ตํ•ฉWeChat Work / Feishu / Slack / Telegram / DingTalk / Mattermost / WeChat
์›น ๊ฒ€์ƒ‰DuckDuckGo / Bing / Google / Tavily / Baidu / Ollama

ํ”Œ๋žซํผ

๊ธฐ๋Šฅ์ƒ์„ธ
๋ฐฐํฌ๋กœ์ปฌ / Docker / Kubernetes (Helm), ํ”„๋ผ์ด๋น—/์˜คํ”„๋ผ์ธ ๋ฐฐํฌ ์ง€์›
UIWeb UI / RESTful API / Chrome Extension
๊ด€์ธก ๊ฐ€๋Šฅ์„ฑReAct ๋ฃจํ”„, ํ† ํฐ ์†Œ๋น„, ๋„๊ตฌ ํ˜ธ์ถœ, ํŒŒ์ดํ”„๋ผ์ธ ์ถ”์ ์„ ์œ„ํ•œ Langfuse ํ†ตํ•ฉ
์ž‘์—… ๊ด€๋ฆฌMQ ๋น„๋™๊ธฐ ์ž‘์—…, ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ ์‹œ ์ž๋™ DB ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
๋ชจ๋ธ ๊ด€๋ฆฌ์ค‘์•™ ์„ค์ •, ์ง€์‹๋ฒ ์ด์Šค๋ณ„ ๋ชจ๋ธ ์„ ํƒ, ๋ฉ€ํ‹ฐํ…Œ๋„ŒํŠธ ๋‚ด์žฅ ๋ชจ๋ธ ๊ณต์œ , WeKnora Cloud ํ˜ธ์ŠคํŒ… ๋ชจ๋ธ ๋ฐ ๋ฌธ์„œ ํŒŒ์‹ฑ

๐Ÿงฉ Chrome ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ

WeKnora Chrome ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €์—์„œ ์›น ์ฝ˜ํ…์ธ ๋ฅผ WeKnora ์ง€์‹๋ฒ ์ด์Šค์— ์ง์ ‘ ์บก์ฒ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€ ๋˜๋Š” ์ „์ฒด ํŽ˜์ด์ง€๋ฅผ ์„ ํƒํ•˜๊ณ  ์›ํด๋ฆญ์œผ๋กœ ์ง€์‹ ํ•ญ๋ชฉ์œผ๋กœ ์ €์žฅ โ€” ๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐ๋‚˜ ํŒŒ์ผ ์—…๋กœ๋“œ ๋ถˆํ•„์š”.

๐Ÿฆž ClawHub Skill

WeKnora ClawHub Skill์€ ClawHub ํ”Œ๋žซํผ์— ๊ฒŒ์‹œ๋œ WeKnora ์Šคํ‚ฌ์ž…๋‹ˆ๋‹ค. ์„ค์น˜ ํ›„ WeKnora REST API๋ฅผ ํ†ตํ•ด ๋ฌธ์„œ ์—…๋กœ๋“œ(ํŒŒ์ผ / URL / Markdown), ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰(๋ฒกํ„ฐ + ํ‚ค์›Œ๋“œ), ์ง€์‹ ํ•ญ๋ชฉ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฌธ์„œ ์ž„ํฌํŠธ โ€” ์—์ด์ „ํŠธ๋ฅผ ํ†ตํ•œ ํŒŒ์ผ ์—…๋กœ๋“œ, ์›นํŽ˜์ด์ง€ ์ž„ํฌํŠธ, Markdown ์ง€์‹ ์ž‘์„ฑ
  • ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰ โ€” ๋‹จ์ผ ๋˜๋Š” ๋‹ค์ค‘ ์ง€์‹๋ฒ ์ด์Šค์—์„œ ๋ฒกํ„ฐ + ํ‚ค์›Œ๋“œ ํ†ตํ•ฉ ๊ฒ€์ƒ‰
  • ์ง€์‹ ๊ด€๋ฆฌ โ€” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ์ง€์‹ ํ•ญ๋ชฉ ์กฐํšŒ, ํŽธ์ง‘, ์‚ญ์ œ

๐Ÿš€ ์‹œ์ž‘ํ•˜๊ธฐ

๐Ÿ›  ์‚ฌ์ „ ์ค€๋น„

๐Ÿ“ฆ ์„ค์น˜ ๋ฐ ์‹คํ–‰

bash
git clone https://github.com/Tencent/WeKnora.git
cd WeKnora
cp .env.example .env   # ํ•„์š”์— ๋”ฐ๋ผ .env ํŽธ์ง‘ (ํŒŒ์ผ ๋‚ด ์ฃผ์„ ์ฐธ๊ณ )
docker compose up -d   # ์ฝ”์–ด ์„œ๋น„์Šค ์‹œ์ž‘

์‹œ์ž‘ ํ›„ http://localhost ์— ์ ‘์†ํ•˜์—ฌ ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋กœ์ปฌ Ollama ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋จผ์ € ollama serve > /dev/null 2>&1 & ๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

๐Ÿ”ง ์„ ํƒ ์„œ๋น„์Šค (Docker Compose Profile)

--profile ํ”Œ๋ž˜๊ทธ๋กœ ์ถ”๊ฐ€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ profile ์กฐํ•ฉ ๊ฐ€๋Šฅ:

Profile์„ค๋ช…๋ช…๋ น์–ด
(๊ธฐ๋ณธ)์ฝ”์–ด ์„œ๋น„์Šคdocker compose up -d
full์ „์ฒด ๊ธฐ๋Šฅdocker compose --profile full up -d
neo4j์ง€์‹ ๊ทธ๋ž˜ํ”„ (Neo4j)docker compose --profile neo4j up -d
minio์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€ (MinIO)docker compose --profile minio up -d
langfuseํŠธ๋ ˆ์ด์‹ฑ (Langfuse)docker compose --profile langfuse up -d

์กฐํ•ฉ ์˜ˆ์‹œ: docker compose --profile neo4j --profile minio up -d

์„œ๋น„์Šค ์ค‘์ง€: docker compose down

๐ŸŒ ์„œ๋น„์Šค ์ฃผ์†Œ

์„œ๋น„์ŠคURL
Web UIhttp://localhost
๋ฐฑ์—”๋“œ APIhttp://localhost:8080
Langfuse ํŠธ๋ ˆ์ด์‹ฑhttp://localhost:3000

๋ฌธ์„œ ์ง€์‹ ๊ทธ๋ž˜ํ”„

WeKnora๋Š” ๋ฌธ์„œ๋ฅผ ์ง€์‹ ๊ทธ๋ž˜ํ”„๋กœ ๋ณ€ํ™˜ํ•ด ๋ฌธ์„œ ๋‚ด ์„œ๋กœ ๋‹ค๋ฅธ ์„น์…˜ ๊ฐ„ ๊ด€๊ณ„๋ฅผ ์‹œ๊ฐํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€์‹ ๊ทธ๋ž˜ํ”„ ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋ฌธ์„œ ๋‚ด๋ถ€์˜ ์‹œ๋งจํ‹ฑ ์—ฐ๊ด€ ๋„คํŠธ์›Œํฌ๋ฅผ ๋ถ„์„/๊ตฌ์„ฑํ•˜์—ฌ ๋ฌธ์„œ ์ดํ•ด๋ฅผ ๋•๊ณ , ์ธ๋ฑ์‹ฑ๊ณผ ๊ฒ€์ƒ‰์— ๊ตฌ์กฐํ™”๋œ ์ง€์›์„ ์ œ๊ณตํ•ด ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์˜ ๊ด€๋ จ์„ฑ๊ณผ ํญ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ์„ค์ •์€ ์ง€์‹ ๊ทธ๋ž˜ํ”„ ์„ค์ • ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

MCP ์„œ๋ฒ„

ํ•„์š”ํ•œ ์„ค์ •์€ MCP ์„ค์ • ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๐Ÿ”Œ WeChat ๋Œ€ํ™” ์˜คํ”ˆ ํ”Œ๋žซํผ ์‚ฌ์šฉ

WeKnora๋Š” WeChat ๋Œ€ํ™” ์˜คํ”ˆ ํ”Œ๋žซํผ์˜ ํ•ต์‹ฌ ๊ธฐ์ˆ  ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, ๋ณด๋‹ค ๊ฐ„ํŽธํ•œ ์‚ฌ์šฉ ๋ฐฉ์‹์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

  • ๋…ธ์ฝ”๋“œ ๋ฐฐํฌ: ์ง€์‹์„ ์—…๋กœ๋“œํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด WeChat ์ƒํƒœ๊ณ„์—์„œ ์ง€๋Šฅํ˜• Q&A ์„œ๋น„์Šค๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ฐฐํฌํ•˜์—ฌ "์งˆ๋ฌธ ์ฆ‰์‹œ ์‘๋‹ต" ๊ฒฝํ—˜์„ ๊ตฌํ˜„
  • ํšจ์œจ์ ์ธ ์งˆ๋ฌธ ๊ด€๋ฆฌ: ๊ณ ๋นˆ๋„ ์งˆ๋ฌธ์˜ ๋ถ„๋ฅ˜ ๊ด€๋ฆฌ ์ง€์›, ํ’๋ถ€ํ•œ ๋ฐ์ดํ„ฐ ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ์ •ํ™•ํ•˜๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ธฐ ์‰ฌ์šด ๋‹ต๋ณ€ ์ œ๊ณต
  • WeChat ์ƒํƒœ๊ณ„ ํ†ตํ•ฉ: WeChat ๊ณต์‹๊ณ„์ •, ๋ฏธ๋‹ˆํ”„๋กœ๊ทธ๋žจ ๋“ฑ ๋‹ค์–‘ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์— WeKnora์˜ Q&A ์—ญ๋Ÿ‰์„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ†ตํ•ฉ

๐Ÿ“˜ API ๋ ˆํผ๋Ÿฐ์Šค

๋ฌธ์ œ ํ•ด๊ฒฐ FAQ: ๋ฌธ์ œ ํ•ด๊ฒฐ FAQ

์ƒ์„ธ API ๋ฌธ์„œ: API Docs

์ œํ’ˆ ๊ณ„ํš ๋ฐ ์˜ˆ์ • ๊ธฐ๋Šฅ: Roadmap

๐Ÿงญ ๊ฐœ๋ฐœ์ž ๊ฐ€์ด๋“œ

โšก ๊ณ ์† ๊ฐœ๋ฐœ ๋ชจ๋“œ(๊ถŒ์žฅ)

์ฝ”๋“œ๋ฅผ ์ž์ฃผ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๋งค๋ฒˆ Docker ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ณ ์† ๊ฐœ๋ฐœ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

bash
# ์ธํ”„๋ผ ์‹œ์ž‘
make dev-start

# ๋ฐฑ์—”๋“œ ์‹œ์ž‘ (์ƒˆ ํ„ฐ๋ฏธ๋„)
make dev-app

# ํ”„๋ก ํŠธ์—”๋“œ ์‹œ์ž‘ (์ƒˆ ํ„ฐ๋ฏธ๋„)
make dev-frontend

๊ฐœ๋ฐœ ์žฅ์ :

  • โœ… ํ”„๋ก ํŠธ์—”๋“œ ๋ณ€๊ฒฝ ์ž๋™ ํ•ซ๋ฆฌ๋กœ๋“œ(์žฌ์‹œ์ž‘ ๋ถˆํ•„์š”)
  • โœ… ๋ฐฑ์—”๋“œ ๋ณ€๊ฒฝ ๋น ๋ฅธ ์žฌ์‹œ์ž‘(5~10์ดˆ, Air ํ•ซ๋ฆฌ๋กœ๋“œ ์ง€์›)
  • โœ… Docker ์ด๋ฏธ์ง€ ์žฌ๋นŒ๋“œ ๋ถˆํ•„์š”
  • โœ… IDE ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ ๋””๋ฒ„๊น… ์ง€์›

์ƒ์„ธ ๋ฌธ์„œ: ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๋น ๋ฅธ ์‹œ์ž‘

๐Ÿ“ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ตฌ์กฐ

WeKnora/
โ”œโ”€โ”€ client/      # go client
โ”œโ”€โ”€ cmd/         # Main entry point
โ”œโ”€โ”€ config/      # Configuration files
โ”œโ”€โ”€ docker/      # docker images files
โ”œโ”€โ”€ docreader/   # Document parsing app
โ”œโ”€โ”€ docs/        # Project documentation
โ”œโ”€โ”€ frontend/    # Frontend app
โ”œโ”€โ”€ internal/    # Core business logic
โ”œโ”€โ”€ mcp-server/  # MCP server
โ”œโ”€โ”€ migrations/  # DB migration scripts
โ””โ”€โ”€ scripts/     # Shell scripts

๐Ÿค ๊ธฐ์—ฌํ•˜๊ธฐ

Issue ๋˜๋Š” Pull Request๋ฅผ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.

์ ˆ์ฐจ: Fork โ†’ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ โ†’ ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ปค๋ฐ‹ โ†’ PR ์ƒ์„ฑ

๊ทœ์น™: gofmt๋กœ ์ฝ”๋“œ ํฌ๋งทํŒ…, Conventional Commits ์ค€์ˆ˜ (feat: / fix: / docs: / test: / refactor:)

๐Ÿ”’ ๋ณด์•ˆ ๊ณต์ง€

์ค‘์š”: v0.1.3๋ถ€ํ„ฐ WeKnora๋Š” ์‹œ์Šคํ…œ ๋ณด์•ˆ ๊ฐ•ํ™”๋ฅผ ์œ„ํ•ด ๋กœ๊ทธ์ธ ์ธ์ฆ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์šด์˜ ํ™˜๊ฒฝ ๋ฐฐํฌ ์‹œ ์•„๋ž˜ ์‚ฌํ•ญ์„ ๊ฐ•๋ ฅํžˆ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

  • WeKnora ์„œ๋น„์Šค๋ฅผ ๊ณต์šฉ ์ธํ„ฐ๋„ท์ด ์•„๋‹Œ ๋‚ด๋ถ€/์‚ฌ์„ค ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์— ๋ฐฐํฌ
  • ์ž ์žฌ์  ์ •๋ณด ์œ ์ถœ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ์„œ๋น„์Šค๋ฅผ ๊ณต์šฉ ๋„คํŠธ์›Œํฌ์— ์ง์ ‘ ๋…ธ์ถœํ•˜์ง€ ์•Š๊ธฐ
  • ๋ฐฐํฌ ํ™˜๊ฒฝ์— ์ ์ ˆํ•œ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™ ๋ฐ ์ ‘๊ทผ ์ œ์–ด ๊ตฌ์„ฑ
  • ๋ณด์•ˆ ํŒจ์น˜์™€ ๊ฐœ์„  ์‚ฌํ•ญ ์ ์šฉ์„ ์œ„ํ•ด ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์ •๊ธฐ ์—…๋ฐ์ดํŠธ

๐Ÿ‘ฅ ๊ธฐ์—ฌ์ž

๋ฉ‹์ง„ ๊ธฐ์—ฌ์ž ์—ฌ๋Ÿฌ๋ถ„๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค:

๐Ÿ“„ ๋ผ์ด์„ ์Šค

์ด ํ”„๋กœ์ ํŠธ๋Š” MIT License๋กœ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ์ €์ž‘๊ถŒ ๊ณ ์ง€๋ฅผ ์œ ์ง€ํ•˜๋Š” ์กฐ๊ฑด์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉ, ์ˆ˜์ •, ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“ˆ ํ”„๋กœ์ ํŠธ ํ†ต๊ณ„

<a href="https://www.star-history.com/#Tencent/WeKnora&type=date&legend=top-left"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=Tencent/WeKnora&type=date&theme=dark&legend=top-left" /> <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=Tencent/WeKnora&type=date&legend=top-left" /> </picture> </a>