Skip to main content

Universal memory module for LLMs

Project description

๐Ÿง  Greeum v2.0.1

๐Ÿ‡ฐ๐Ÿ‡ท ํ•œ๊ตญ์–ด | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‡จ๐Ÿ‡ณ ไธญๆ–‡ | ๐Ÿ‡ฏ๐Ÿ‡ต ๆ—ฅๆœฌ่ชž | ๐Ÿ‡ช๐Ÿ‡ธ Espaรฑol | ๐Ÿ‡ฉ๐Ÿ‡ช Deutsch | ๐Ÿ‡ซ๐Ÿ‡ท Franรงais

๋‹ค๊ตญ์–ด ์ง€์› LLM ๋…๋ฆฝ์ ์ธ ๊ธฐ์–ต ๊ด€๋ฆฌ ์‹œ์Šคํ…œ

๐Ÿ“Œ ๊ฐœ์š”

Greeum (๋ฐœ์Œ: ๊ทธ๋ฆฌ์Œ)์€ ๋ชจ๋“  LLM(๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ)์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์šฉ ๊ธฐ์–ต ๋ชจ๋“ˆ๋กœ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

  • ์‚ฌ์šฉ์ž์˜ ๋ฐœํ™”, ๋ชฉํ‘œ, ๊ฐ์ •, ์˜๋„ ๋“ฑ ์žฅ๊ธฐ์ ์ธ ๊ธฐ๋ก ์ถ”์ 
  • ํ˜„์žฌ ๋งฅ๋ฝ๊ณผ ๊ด€๋ จ๋œ ๊ธฐ์–ต ํšŒ์ƒ
  • ๋‹ค๊ตญ์–ด ํ™˜๊ฒฝ์—์„œ์˜ ์‹œ๊ฐ„ ํ‘œํ˜„ ์ธ์‹ ๋ฐ ์ฒ˜๋ฆฌ
  • "๊ธฐ์–ต์„ ๊ฐ€์ง„ AI"๋กœ์„œ์˜ ๊ธฐ๋Šฅ

์ด๋ฆ„ "Greeum"์€ ํ•œ๊ตญ์–ด "๊ทธ๋ฆฌ์›€"์—์„œ ์˜๊ฐ์„ ๋ฐ›์•˜์œผ๋ฉฐ, ๊ธฐ์–ต ์‹œ์Šคํ…œ์˜ ๋ณธ์งˆ์„ ์™„๋ฒฝํ•˜๊ฒŒ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Greeum์€ RAG(Retrieval-Augmented Generation) ์•„ํ‚คํ…์ฒ˜์— ๊ธฐ๋ฐ˜ํ•œ LLM ๋…๋ฆฝ์  ๋ฉ”๋ชจ๋ฆฌ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์ •๋ณด ์ €์žฅ ๋ฐ ๊ฒ€์ƒ‰(block_manager.py), ๊ด€๋ จ ๊ธฐ์–ต ๊ด€๋ฆฌ(cache_manager.py), ํ”„๋กฌํ”„ํŠธ ์ฆ๊ฐ•(prompt_wrapper.py) ๋“ฑ RAG์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ๋” ์ •ํ™•ํ•˜๊ณ  ๋งฅ๋ฝ์— ๋งž๋Š” ์‘๋‹ต์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”‘ ์ฃผ์š” ๊ธฐ๋Šฅ

  • ๋ธ”๋ก์ฒด์ธ ์œ ์‚ฌ ๊ตฌ์กฐ์˜ ์žฅ๊ธฐ ๊ธฐ์–ต(LTM): ๋ถˆ๋ณ€์„ฑ์„ ๊ฐ€์ง„ ๋ธ”๋ก ๋‹จ์œ„ ๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ์†Œ
  • TTL ๊ธฐ๋ฐ˜์˜ ๋‹จ๊ธฐ ๊ธฐ์–ต(STM): ์ผ์‹œ์ ์œผ๋กœ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌ
  • ์˜๋ฏธ์  ์—ฐ๊ด€์„ฑ: ํ‚ค์›Œ๋“œ/ํƒœ๊ทธ/๋ฒกํ„ฐ ๊ธฐ๋ฐ˜ ๊ธฐ์–ต ํšŒ์ƒ ์‹œ์Šคํ…œ
  • ์›จ์ดํฌ์ธํŠธ ์บ์‹œ: ํ˜„์žฌ ๋งฅ๋ฝ๊ณผ ๊ด€๋ จ๋œ ๊ธฐ์–ต์„ ์ž๋™์œผ๋กœ ๊ฒ€์ƒ‰
  • ํ”„๋กฌํ”„ํŠธ ์กฐํ•ฉ๊ธฐ: ๊ด€๋ จ ๊ธฐ์–ต์„ ํฌํ•จํ•œ LLM ํ”„๋กฌํ”„ํŠธ ์ž๋™ ์ƒ์„ฑ
  • ์‹œ๊ฐ„์  ์ถ”๋ก ๊ธฐ: ๋‹ค๊ตญ์–ด ํ™˜๊ฒฝ์—์„œ ๊ณ ๊ธ‰ ์‹œ๊ฐ„ ํ‘œํ˜„ ์ธ์‹ ์ฒ˜๋ฆฌ
  • ๋‹ค๊ตญ์–ด ์ง€์›: ํ•œ๊ตญ์–ด, ์˜์–ด ๋“ฑ ์ž๋™ ์–ธ์–ด ๊ฐ์ง€ ๋ฐ ์ฒ˜๋ฆฌ
  • Model Control Protocol: v2.0.1๋ถ€ํ„ฐ ๋‚ด์žฅ๋œ MCP ์„œ๋ฒ„๋กœ Claude Code ๋“ฑ ์™ธ๋ถ€ ๋„๊ตฌ์™€ ์ง์ ‘ ์—ฐ๋™ ์ง€์›

โš™๏ธ ์„ค์น˜ ๋ฐฉ๋ฒ•

๐Ÿš€ ๊ถŒ์žฅ: pipx ์„ค์น˜ (๊ฐ„ํŽธํ•จ)

# pipx๊ฐ€ ์—†๋‹ค๋ฉด ๋จผ์ € ์„ค์น˜
brew install pipx  # macOS
# ๋˜๋Š” pip install --user pipx

# Greeum v2.0 ๋ชจ๋“  ๊ธฐ๋Šฅ ํฌํ•จ ์„ค์น˜
pipx install greeum[all]

# ์„ค์น˜ ํ™•์ธ
greeum --version

๐Ÿ“‹ Claude Code MCP ์—ฐ๋™

# MCP ์„œ๋ฒ„ ์‹œ์ž‘
greeum mcp serve

# Claude Code์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ 9๊ฐœ ๋ฉ”๋ชจ๋ฆฌ ๋„๊ตฌ:
# - add_memory, search_memory, get_memory_stats
# - ltm_analyze, ltm_verify, ltm_export  
# - stm_add, stm_promote, stm_cleanup

๐Ÿ”ง ๊ฐœ๋ฐœ์ž์šฉ: ์†Œ์Šค์—์„œ ์„ค์น˜

git clone https://github.com/DryRainEnt/Greeum.git
cd Greeum
pip install -e .

๐Ÿงช ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

CLI ์ธํ„ฐํŽ˜์ด์Šค (v2.0.1 ํ†ตํ•ฉ ๋ช…๋ น์–ด)

# ๊ธฐ๋ณธ ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋Šฅ
greeum memory add "์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ๊ณ  ์ •๋ง ํฅ๋ฏธ๋กœ์›Œ์š”"
greeum memory search "ํ”„๋กœ์ ํŠธ"
greeum memory stats

# STM (๋‹จ๊ธฐ ๊ธฐ์–ต) ์ „์šฉ
greeum stm add "์ž„์‹œ ๋ฉ”๋ชจ" --ttl 1h --importance 0.7
greeum stm promote --threshold 0.8
greeum stm cleanup --smart

# LTM (์žฅ๊ธฐ ๊ธฐ์–ต) ์ „์šฉ  
greeum ltm analyze --trends --period 6m
greeum ltm verify --integrity
greeum ltm export --format blockchain

# MCP ์„œ๋ฒ„ (Claude Code ์—ฐ๋™)
greeum mcp serve --transport stdio

# API ์„œ๋ฒ„ ์‹œ์ž‘
greeum api serve --port 5000

REST API ์„œ๋ฒ„

# API ์„œ๋ฒ„ ์‹คํ–‰
python api/memory_api.py

์›น ์ธํ„ฐํŽ˜์ด์Šค: http://localhost:5000

API ์—”๋“œํฌ์ธํŠธ:

  • GET /api/v1/health - ์ƒํƒœ ํ™•์ธ
  • GET /api/v1/blocks - ๋ธ”๋ก ๋ชฉ๋ก ์กฐํšŒ
  • POST /api/v1/blocks - ๋ธ”๋ก ์ถ”๊ฐ€
  • GET /api/v1/search?keywords=keyword1,keyword2 - ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰
  • GET /api/v1/search/time?query=yesterday&language=en - ์‹œ๊ฐ„ ํ‘œํ˜„ ๊ฒ€์ƒ‰
  • GET, POST, DELETE /api/v1/stm - ๋‹จ๊ธฐ ๊ธฐ์–ต ๊ด€๋ฆฌ
  • POST /api/v1/prompt - ํ”„๋กฌํ”„ํŠธ ์ƒ์„ฑ
  • GET /api/v1/verify - ๋ธ”๋ก์ฒด์ธ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์ฆ

Python ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

from greeum import BlockManager, STMManager, CacheManager, PromptWrapper
from greeum.text_utils import process_user_input
from greeum.temporal_reasoner import TemporalReasoner

# ์‚ฌ์šฉ์ž ์ž…๋ ฅ ์ฒ˜๋ฆฌ
user_input = "์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ๊ณ  ์ •๋ง ํฅ๋ฏธ๋กœ์›Œ์š”"
processed = process_user_input(user_input)

# ๋ธ”๋ก ๋งค๋‹ˆ์ €๋กœ ๊ธฐ์–ต ์ €์žฅ
block_manager = BlockManager()
block = block_manager.add_block(
    context=processed["context"],
    keywords=processed["keywords"],
    tags=processed["tags"],
    embedding=processed["embedding"],
    importance=processed["importance"]
)

# ์‹œ๊ฐ„ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰ (๋‹ค๊ตญ์–ด)
temporal_reasoner = TemporalReasoner(db_manager=block_manager, default_language="auto")
time_query = "3์ผ ์ „์— ๋ฌด์—‡์„ ํ–ˆ์ง€?"
time_results = temporal_reasoner.search_by_time_reference(time_query)

# ํ”„๋กฌํ”„ํŠธ ์ƒ์„ฑ
cache_manager = CacheManager(block_manager=block_manager)
prompt_wrapper = PromptWrapper(cache_manager=cache_manager)

user_question = "ํ”„๋กœ์ ํŠธ๋Š” ์–ด๋–ป๊ฒŒ ์ง„ํ–‰๋˜๊ณ  ์žˆ๋‚˜์š”?"
prompt = prompt_wrapper.compose_prompt(user_question)

# LLM์— ์ „๋‹ฌ
# llm_response = call_your_llm(prompt)

๐Ÿงฑ ์•„ํ‚คํ…์ฒ˜

greeum/
โ”œโ”€โ”€ greeum/                # ํ•ต์‹ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
โ”‚   โ”œโ”€โ”€ block_manager.py    # ์žฅ๊ธฐ ๊ธฐ์–ต ๊ด€๋ฆฌ
โ”‚   โ”œโ”€โ”€ stm_manager.py      # ๋‹จ๊ธฐ ๊ธฐ์–ต ๊ด€๋ฆฌ
โ”‚   โ”œโ”€โ”€ cache_manager.py    # ์›จ์ดํฌ์ธํŠธ ์บ์‹œ
โ”‚   โ”œโ”€โ”€ prompt_wrapper.py   # ํ”„๋กฌํ”„ํŠธ ์กฐํ•ฉ
โ”‚   โ”œโ”€โ”€ text_utils.py       # ํ…์ŠคํŠธ ์ฒ˜๋ฆฌ ์œ ํ‹ธ๋ฆฌํ‹ฐ
โ”‚   โ”œโ”€โ”€ temporal_reasoner.py # ์‹œ๊ฐ„ ๊ธฐ๋ฐ˜ ์ถ”๋ก 
โ”‚   โ”œโ”€โ”€ embedding_models.py  # ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ํ†ตํ•ฉ
โ”œโ”€โ”€ api/                   # REST API ์ธํ„ฐํŽ˜์ด์Šค
โ”œโ”€โ”€ cli/                   # ๋ช…๋ น์ค„ ๋„๊ตฌ
โ”œโ”€โ”€ data/                  # ๋ฐ์ดํ„ฐ ์ €์žฅ ๋””๋ ‰ํ† ๋ฆฌ
โ”œโ”€โ”€ tests/                 # ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ

๋ธŒ๋žœ์น˜ ๊ด€๋ฆฌ ๊ทœ์น™

  • main: ์•ˆ์ •์ ์ธ ๋ฆด๋ฆฌ์ฆˆ ๋ฒ„์ „ ๋ธŒ๋žœ์น˜
  • dev: ํ•ต์‹ฌ ํ”ผ์ณ ๊ฐœ๋ฐœ ๋ธŒ๋žœ์น˜ (๊ฐœ๋ฐœ ํ›„ ํ…Œ์ŠคํŠธ ๊ฒ€์ฆ์ด ์™„๋ฃŒ๋˜๋ฉด main์œผ๋กœ ๋จธ์ง€)
  • test-collect: ์„ฑ๋Šฅ ์ง€ํ‘œ ๋ฐ A/B ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘์šฉ ๋ธŒ๋žœ์น˜

๐Ÿ“Š ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ

Greeum์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜์—ญ์—์„œ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค:

T-GEN-001: ์‘๋‹ต์˜ ๊ตฌ์ฒด์„ฑ ์ฆ๊ฐ€์œจ

  • Greeum ๋ฉ”๋ชจ๋ฆฌ ํ™œ์šฉ ์‹œ ์‘๋‹ต ํ’ˆ์งˆ ํ–ฅ์ƒ๋„ ์ธก์ •
  • ํ‰๊ท  18.6% ํ’ˆ์งˆ ํ–ฅ์ƒ ํ™•์ธ
  • ๊ตฌ์ฒด์  ์ •๋ณด ํฌํ•จ๋Ÿ‰ 4.2๊ฐœ ์ฆ๊ฐ€

T-MEM-002: ๋ฉ”๋ชจ๋ฆฌ ๊ฒ€์ƒ‰ Latency

  • ์›จ์ดํฌ์ธํŠธ ์บ์‹œ๋ฅผ ํ†ตํ•œ ๊ฒ€์ƒ‰ ์†๋„ ํ–ฅ์ƒ ์ธก์ •
  • ํ‰๊ท  5.04๋ฐฐ ์†๋„ ํ–ฅ์ƒ ํ™•์ธ
  • 1,000๊ฐœ ์ด์ƒ ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ก์—์„œ ์ตœ๋Œ€ 8.67๋ฐฐ ์†๋„ ๊ฐœ์„ 

T-API-001: API ํ˜ธ์ถœ ํšจ์œจ์„ฑ

  • ๊ธฐ์–ต ๊ธฐ๋ฐ˜ ๋งฅ๋ฝ ์ œ๊ณต์œผ๋กœ ์ธํ•œ ์žฌ์งˆ๋ฌธ ๊ฐ์†Œ์œจ ์ธก์ •
  • ์žฌ์งˆ๋ฌธ ํ•„์š”์„ฑ 78.2% ๊ฐ์†Œ ํ™•์ธ
  • API ํ˜ธ์ถœ ํšŸ์ˆ˜ ๊ฐ์†Œ๋กœ ๋น„์šฉ ์ ˆ๊ฐ ํšจ๊ณผ

๐Ÿ“Š ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ก ๊ตฌ์กฐ

{
  "block_index": 143,
  "timestamp": "2025-05-08T01:02:33",
  "context": "์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ๊ณ  ์ •๋ง ํฅ๋ฏธ๋กœ์›Œ์š”",
  "keywords": ["ํ”„๋กœ์ ํŠธ", "์‹œ์ž‘", "ํฅ๋ฏธ๋กœ์šด"],
  "tags": ["๊ธ์ •์ ", "์‹œ์ž‘", "๋™๊ธฐ๋ถ€์—ฌ"],
  "embedding": [0.131, 0.847, ...],
  "importance": 0.91,
  "hash": "...",
  "prev_hash": "..."
}

๐Ÿ”ค ์ง€์› ์–ธ์–ด

Greeum์€ ๋‹ค์Œ ์–ธ์–ด์˜ ์‹œ๊ฐ„ ํ‘œํ˜„ ์ธ์‹์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค:

  • ๐Ÿ‡ฐ๐Ÿ‡ท ํ•œ๊ตญ์–ด: ํ•œ๊ตญ์–ด ์‹œ๊ฐ„ ํ‘œํ˜„ ๊ธฐ๋ณธ ์ง€์› (์–ด์ œ, ์ง€๋‚œ์ฃผ, 3์ผ ์ „ ๋“ฑ)
  • ๐Ÿ‡บ๐Ÿ‡ธ ์˜์–ด: ์˜์–ด ์‹œ๊ฐ„ ํ˜•์‹ ์™„์ „ ์ง€์› (yesterday, 3 days ago ๋“ฑ)
  • ๐ŸŒ ์ž๋™ ๊ฐ์ง€: ์–ธ์–ด๋ฅผ ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•˜๊ณ  ์ ์ ˆํžˆ ์ฒ˜๋ฆฌ

๐Ÿ” ์‹œ๊ฐ„์  ์ถ”๋ก  ์˜ˆ์‹œ

# ํ•œ๊ตญ์–ด
result = evaluate_temporal_query("3์ผ ์ „์— ๋ญ ํ–ˆ์–ด?", language="ko")
# ๋ฐ˜ํ™˜๊ฐ’: {detected: True, language: "ko", best_ref: {term: "3์ผ ์ „"}}

# ์˜์–ด
result = evaluate_temporal_query("What did I do 3 days ago?", language="en")
# ๋ฐ˜ํ™˜๊ฐ’: {detected: True, language: "en", best_ref: {term: "3 days ago"}}

# ์ž๋™ ๊ฐ์ง€
result = evaluate_temporal_query("What happened yesterday?")
# ๋ฐ˜ํ™˜๊ฐ’: {detected: True, language: "en", best_ref: {term: "yesterday"}}

๐Ÿ”ง ํ”„๋กœ์ ํŠธ ํ™•์žฅ ๊ณ„ํš

  • Model Control Protocol: MCP ์ง€์›์— ๋Œ€ํ•ด์„œ๋Š” GreeumMCP ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํ™•์ธํ•˜์„ธ์š” - Greeum์„ Cursor, Unity, Discord ๋“ฑ์˜ ๋„๊ตฌ์™€ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ„๋„์˜ ํŒจํ‚ค์ง€์ž…๋‹ˆ๋‹ค
  • ๋‹ค๊ตญ์–ด ์ง€์› ๊ฐ•ํ™”: ์ผ๋ณธ์–ด, ์ค‘๊ตญ์–ด, ์ŠคํŽ˜์ธ์–ด ๋“ฑ ์ถ”๊ฐ€ ์–ธ์–ด ์ง€์›
  • ์ž„๋ฒ ๋”ฉ ๊ฐœ์„ : ์‹ค์ œ ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ํ†ตํ•ฉ (์˜ˆ: sentence-transformers)
  • ํ‚ค์›Œ๋“œ ์ถ”์ถœ ํ–ฅ์ƒ: ์–ธ์–ด๋ณ„ ํ‚ค์›Œ๋“œ ์ถ”์ถœ ๊ตฌํ˜„
  • ํด๋ผ์šฐ๋“œ ํ†ตํ•ฉ: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฑ์—”๋“œ ์ถ”๊ฐ€ (SQLite, MongoDB ๋“ฑ)
  • ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ: ๋Œ€๊ทœ๋ชจ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ๊ตฌํ˜„

๐ŸŒ ์›น์‚ฌ์ดํŠธ

์›น์‚ฌ์ดํŠธ ๋ฐฉ๋ฌธ: greeum.app

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

MIT License

๐Ÿ‘ฅ ๊ธฐ์—ฌ

๋ฒ„๊ทธ ๋ณด๊ณ , ๊ธฐ๋Šฅ ์ œ์•ˆ, ํ’€ ๋ฆฌํ€˜์ŠคํŠธ ๋“ฑ ๋ชจ๋“  ๊ธฐ์—ฌ๋ฅผ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!

๐Ÿ“ฑ ์—ฐ๋ฝ์ฒ˜

์ด๋ฉ”์ผ: playtart@play-t.art

๐Ÿš€ v0.6.0 ํ•˜์ด๋ผ์ดํŠธ (Python 3.12 ์ง€์›)

ํ•ญ๋ชฉ ์„ค๋ช…
Python ํ˜ธํ™˜์„ฑ 3.10 / 3.11 / 3.12 ํ…Œ์ŠคํŠธ ํ†ต๊ณผ(Tox & CI)
Working Memory STMWorkingSet ๋กœ ํ™œ์„ฑ ์Šฌ๋กฏ ๊ด€๋ฆฌ
๊ฒ€์ƒ‰ ์„ฑ๋Šฅ FAISS ๋ฒกํ„ฐ ์ธ๋ฑ์Šค + BERT Cross-Encoder ์žฌ๋žญํฌ
ํ”„๋กฌํ”„ํŠธ ํ† ํฐ-Budget ๊ธฐ๋ฐ˜ ๊ธฐ์–ต ์‚ฝ์ž…, KeyBERT ๊ณ ๊ธ‰ ํ‚ค์›Œ๋“œ
Evolution ๋ธ”๋ก ์š”์•ฝ/๋ณ‘ํ•ฉ, ์ƒ์ถฉ ๋…ธํŠธ API

๋น ๋ฅธ ์„ค์น˜ (Python 3.12 + ๋ชจ๋“  ํ™•์žฅ ์˜์กด์„ฑ)

python3.12 -m venv .venv && source .venv/bin/activate
pip install --upgrade pip
pip install greeum[all]  # faiss + transformers + keybert + openai ์ง€์›

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

greeum-2.0.2.tar.gz (98.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

greeum-2.0.2-py3-none-any.whl (101.6 kB view details)

Uploaded Python 3

File details

Details for the file greeum-2.0.2.tar.gz.

File metadata

  • Download URL: greeum-2.0.2.tar.gz
  • Upload date:
  • Size: 98.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for greeum-2.0.2.tar.gz
Algorithm Hash digest
SHA256 b308843d853880df3e2d68629cd905b9e24b4161f386376bce17eb951102c5d0
MD5 c2fc2994a6664359f9adf971f50a64e1
BLAKE2b-256 35b9d91d5d3bdf1fda4de3431a08918cb4408b7ca5b8c377a8dbf95ee5f7610a

See more details on using hashes here.

File details

Details for the file greeum-2.0.2-py3-none-any.whl.

File metadata

  • Download URL: greeum-2.0.2-py3-none-any.whl
  • Upload date:
  • Size: 101.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for greeum-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 733084745c7265411bc7e56f7237ec88af51b78c7a14fdf5ae36c6d6ad1ed052
MD5 a2e110d46458ee378cbcff38760c93a5
BLAKE2b-256 1ffebc69357a56096312e1ac43d80dea74d3cf908d9139fa0a7a9ba60356f8b6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page