Initialize MemOS core components. This function is responsible for building and configuring all basic components required for MemOS operation, including: 1. LLM (Large Language Model): Model responsible for natural language understanding and generation (e.g., GPT-4o). 2. Embedder:
()
| 8 | |
| 9 | |
| 10 | def init_components(): |
| 11 | """ |
| 12 | Initialize MemOS core components. |
| 13 | |
| 14 | This function is responsible for building and configuring all basic components required for MemOS operation, including: |
| 15 | 1. LLM (Large Language Model): Model responsible for natural language understanding and generation (e.g., GPT-4o). |
| 16 | 2. Embedder: Responsible for converting text into vector representations for semantic search and similarity calculation. |
| 17 | 3. GraphDB (Neo4j): Graph database for persistent storage of memory nodes and their relationships. |
| 18 | 4. MemoryManager: Memory manager responsible for memory CRUD operations. |
| 19 | 5. MemReader: Memory reader for parsing and processing input text. |
| 20 | 6. Reranker: Reranker for refining the sorting of retrieval results. |
| 21 | 7. Searcher: Searcher that integrates retrieval and reranking logic. |
| 22 | 8. FeedbackServer (SimpleMemFeedback): Feedback service core, responsible for processing user feedback and updating memory. |
| 23 | |
| 24 | Returns: |
| 25 | tuple: (feedback_server, memory_manager, embedder) |
| 26 | """ |
| 27 | # Lazy import to avoid E402 (module level import not at top of file) |
| 28 | from memos.configs.embedder import EmbedderConfigFactory |
| 29 | from memos.configs.graph_db import GraphDBConfigFactory |
| 30 | from memos.configs.llm import LLMConfigFactory |
| 31 | from memos.configs.mem_reader import MemReaderConfigFactory |
| 32 | from memos.configs.reranker import RerankerConfigFactory |
| 33 | from memos.embedders.factory import EmbedderFactory |
| 34 | from memos.graph_dbs.factory import GraphStoreFactory |
| 35 | from memos.llms.factory import LLMFactory |
| 36 | from memos.mem_feedback.simple_feedback import SimpleMemFeedback |
| 37 | from memos.mem_reader.factory import MemReaderFactory |
| 38 | from memos.memories.textual.tree_text_memory.organize.manager import MemoryManager |
| 39 | from memos.memories.textual.tree_text_memory.retrieve.searcher import Searcher |
| 40 | from memos.reranker.factory import RerankerFactory |
| 41 | |
| 42 | print("Initializing MemOS Components...") |
| 43 | |
| 44 | # 1. LLM: Configure Large Language Model, using OpenAI compatible interface |
| 45 | llm_config = LLMConfigFactory.model_validate( |
| 46 | { |
| 47 | "backend": "openai", |
| 48 | "config": { |
| 49 | "model_name_or_path": os.getenv("MOS_CHAT_MODEL", "gpt-4o"), |
| 50 | "temperature": 0.8, |
| 51 | "max_tokens": 1024, |
| 52 | "top_p": 0.9, |
| 53 | "top_k": 50, |
| 54 | "api_key": os.getenv("OPENAI_API_KEY"), |
| 55 | "api_base": os.getenv("OPENAI_API_BASE"), |
| 56 | }, |
| 57 | } |
| 58 | ) |
| 59 | llm = LLMFactory.from_config(llm_config) |
| 60 | |
| 61 | # 2. Embedder: Configure embedding model for generating text vectors |
| 62 | embedder_config = EmbedderConfigFactory.model_validate( |
| 63 | { |
| 64 | "backend": os.getenv("MOS_EMBEDDER_BACKEND", "universal_api"), |
| 65 | "config": { |
| 66 | "provider": "openai", |
| 67 | "api_key": os.getenv("MOS_EMBEDDER_API_KEY", "EMPTY"), |
no test coverage detected