diff --git a/docs/api-reference/organization/remove-org-member.mdx b/docs/api-reference/organization/remove-org-member.mdx new file mode 100644 index 000000000..7b0d55d02 --- /dev/null +++ b/docs/api-reference/organization/remove-org-member.mdx @@ -0,0 +1,5 @@ +--- +title: "Remove Organization Member" +description: "Remove a member from an organization" +openapi: "delete /api/v1/orgs/organizations/{org_id}/members/" +--- diff --git a/docs/api-reference/organization/update-org-member.mdx b/docs/api-reference/organization/update-org-member.mdx new file mode 100644 index 000000000..929369b17 --- /dev/null +++ b/docs/api-reference/organization/update-org-member.mdx @@ -0,0 +1,5 @@ +--- +title: "Update Organization Member" +description: "Update organization member role" +openapi: "put /api/v1/orgs/organizations/{org_id}/members/" +--- diff --git a/docs/api-reference/project/remove-project-member.mdx b/docs/api-reference/project/remove-project-member.mdx new file mode 100644 index 000000000..07dcbd6e3 --- /dev/null +++ b/docs/api-reference/project/remove-project-member.mdx @@ -0,0 +1,5 @@ +--- +title: "Remove Project Member" +description: "Remove a member from a project" +openapi: "delete /api/v1/orgs/organizations/{org_id}/projects/{project_id}/members/" +--- diff --git a/docs/api-reference/project/update-project-member.mdx b/docs/api-reference/project/update-project-member.mdx new file mode 100644 index 000000000..83310e605 --- /dev/null +++ b/docs/api-reference/project/update-project-member.mdx @@ -0,0 +1,5 @@ +--- +title: "Update Project Member" +description: "Update project member role" +openapi: "put /api/v1/orgs/organizations/{org_id}/projects/{project_id}/members/" +--- diff --git a/docs/api-reference/project/update-project.mdx b/docs/api-reference/project/update-project.mdx new file mode 100644 index 000000000..179cd4000 --- /dev/null +++ b/docs/api-reference/project/update-project.mdx @@ -0,0 +1,5 @@ +--- +title: "Update Project" +description: "Update project settings" +openapi: "patch /api/v1/orgs/organizations/{org_id}/projects/{project_id}/" +--- diff --git a/docs/components/embedders/models/fastembed.mdx b/docs/components/embedders/models/fastembed.mdx new file mode 100644 index 000000000..d1f6d3531 --- /dev/null +++ b/docs/components/embedders/models/fastembed.mdx @@ -0,0 +1,50 @@ +--- +title: "FastEmbed" +description: "Configure FastEmbed as an embedding provider in Mem0 to generate embeddings locally using ONNX-based models without a GPU." +--- + +You can use FastEmbed to run embedding models locally in Mem0. FastEmbed is an ONNX-based embedding library that runs efficiently on CPU without requiring a GPU or an external API key. + +### Installation + +```bash +pip install fastembed +``` + +### Usage + + +```python Python +import os +from mem0 import Memory + +os.environ["OPENAI_API_KEY"] = "your_api_key" # For LLM + +config = { + "embedder": { + "provider": "fastembed", + "config": { + "model": "thenlper/gte-large" + } + } +} + +m = Memory.from_config(config) +messages = [ + {"role": "user", "content": "I'm planning to watch a movie tonight. Any recommendations?"}, + {"role": "assistant", "content": "How about thriller movies? They can be quite engaging."}, + {"role": "user", "content": "I'm not a big fan of thriller movies but I love sci-fi movies."}, + {"role": "assistant", "content": "Got it! I'll avoid thriller recommendations and suggest sci-fi movies in the future."} +] +m.add(messages, user_id="john") +``` + + +### Config + +Here are the parameters available for configuring FastEmbed embedder: + +| Parameter | Description | Default Value | +| --- | --- | --- | +| `model` | The name of the FastEmbed model to use | `thenlper/gte-large` | +| `embedding_dims` | Dimensions of the embedding model (auto-derived from the model if not set) | `None` | diff --git a/docs/components/rerankers/models/llm.mdx b/docs/components/rerankers/models/llm.mdx deleted file mode 100644 index 44c20a64d..000000000 --- a/docs/components/rerankers/models/llm.mdx +++ /dev/null @@ -1,226 +0,0 @@ ---- -title: LLM as Reranker -description: "Use any LLM as a flexible reranker in Mem0 with custom prompts and domain-specific scoring logic." ---- - - -**This page has been superseded.** Please see [LLM Reranker](/components/rerankers/models/llm_reranker) for the complete and up-to-date documentation on using LLMs for reranking. - - -LLM-based reranker provides maximum flexibility by using any Large Language Model to score document relevance. This approach allows for custom prompts and domain-specific scoring logic. - -## Supported LLM Providers - -Any LLM provider supported by Mem0 can be used for reranking: - -- **OpenAI**: GPT-4, GPT-3.5-turbo, etc. -- **Anthropic**: Claude models -- **Together**: Open-source models -- **Groq**: Fast inference -- **Ollama**: Local models -- And more... - -## Configuration - -```python Python -from mem0 import Memory - -config = { - "vector_store": { - "provider": "chroma", - "config": { - "collection_name": "my_memories", - "path": "./chroma_db" - } - }, - "llm": { - "provider": "openai", - "config": { - "model": "gpt-4o-mini" - } - }, - "reranker": { - "provider": "llm", - "config": { - "model": "gpt-4o-mini", - "provider": "openai", - "api_key": "your-openai-api-key", # or set OPENAI_API_KEY - "top_k": 5, - "temperature": 0.0 - } - } -} - -memory = Memory.from_config(config) -``` - -## Custom Scoring Prompt - -You can provide a custom prompt for relevance scoring: - -```python Python -custom_prompt = """You are a relevance scoring assistant. Rate how well this document answers the query. - -Query: "{query}" -Document: "{document}" - -Score from 0.0 to 1.0 where: -- 1.0: Perfect match, directly answers the query -- 0.8-0.9: Highly relevant, good match -- 0.6-0.7: Moderately relevant, partial match -- 0.4-0.5: Slightly relevant, limited useful information -- 0.0-0.3: Not relevant or no useful information - -Provide only a single numerical score between 0.0 and 1.0.""" - -config["reranker"]["config"]["scoring_prompt"] = custom_prompt -``` - -## Usage Example - -```python Python -import os -from mem0 import Memory - -# Set API key -os.environ["OPENAI_API_KEY"] = "your-api-key" - -# Initialize memory with LLM reranker -config = { - "vector_store": {"provider": "chroma"}, - "llm": {"provider": "openai", "config": {"model": "gpt-4o-mini"}}, - "reranker": { - "provider": "llm", - "config": { - "model": "gpt-4o-mini", - "provider": "openai", - "temperature": 0.0 - } - } -} - -memory = Memory.from_config(config) - -# Add memories -messages = [ - {"role": "user", "content": "I'm learning Python programming"}, - {"role": "user", "content": "I find object-oriented programming challenging"}, - {"role": "user", "content": "I love hiking in national parks"} -] - -memory.add(messages, user_id="david") - -# Search with LLM reranking -results = memory.search("What programming topics is the user studying?", filters={"user_id": "david"}) - -for result in results['results']: - print(f"Memory: {result['memory']}") - print(f"Vector Score: {result['score']:.3f}") - print(f"Rerank Score: {result['rerank_score']:.3f}") - print() -``` - -```text Output -Memory: I'm learning Python programming -Vector Score: 0.856 -Rerank Score: 0.920 - -Memory: I find object-oriented programming challenging -Vector Score: 0.782 -Rerank Score: 0.850 -``` - -## Domain-Specific Scoring - -Create specialized scoring for your domain: - -```python Python -medical_prompt = """You are a medical relevance expert. Score how relevant this medical record is to the clinical query. - -Clinical Query: "{query}" -Medical Record: "{document}" - -Consider: -- Clinical relevance and accuracy -- Patient safety implications -- Diagnostic value -- Treatment relevance - -Score from 0.0 to 1.0. Provide only the numerical score.""" - -config = { - "reranker": { - "provider": "llm", - "config": { - "model": "gpt-4o-mini", - "provider": "openai", - "scoring_prompt": medical_prompt, - "temperature": 0.0 - } - } -} -``` - -## Multiple LLM Providers - -Use different LLM providers for reranking: - -```python Python -# Using Anthropic Claude -anthropic_config = { - "reranker": { - "provider": "llm", - "config": { - "model": "claude-3-haiku-20240307", - "provider": "anthropic", - "temperature": 0.0 - } - } -} - -# Using local Ollama model -ollama_config = { - "reranker": { - "provider": "llm", - "config": { - "model": "llama2:7b", - "provider": "ollama", - "temperature": 0.0 - } - } -} -``` - -## Configuration Parameters - -| Parameter | Description | Type | Default | -|-----------|-------------|------|---------| -| `model` | LLM model to use for scoring | `str` | `"gpt-4o-mini"` | -| `provider` | LLM provider name | `str` | `"openai"` | -| `api_key` | API key for the LLM provider | `str` | `None` | -| `top_k` | Maximum documents to return | `int` | `None` | -| `temperature` | Temperature for LLM generation | `float` | `0.0` | -| `max_tokens` | Maximum tokens for LLM response | `int` | `100` | -| `scoring_prompt` | Custom prompt template | `str` | Default prompt | - -## Advantages - -- **Maximum Flexibility**: Custom prompts for any use case -- **Domain Expertise**: Leverage LLM knowledge for specialized domains -- **Interpretability**: Understand scoring through prompt engineering -- **Multi-criteria**: Score based on multiple relevance factors - -## Considerations - -- **Latency**: Higher latency than specialized rerankers -- **Cost**: LLM API costs per reranking operation -- **Consistency**: May have slight variations in scoring -- **Prompt Engineering**: Requires careful prompt design - -## Best Practices - -1. **Temperature**: Use 0.0 for consistent scoring -2. **Prompt Design**: Be specific about scoring criteria -3. **Token Efficiency**: Keep prompts concise to reduce costs -4. **Caching**: Cache results for repeated queries when possible -5. **Fallback**: Handle API errors gracefully \ No newline at end of file diff --git a/docs/docs.json b/docs/docs.json index b365d258b..c27b158a2 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -273,7 +273,8 @@ "components/embedders/models/lmstudio", "components/embedders/models/together", "components/embedders/models/langchain", - "components/embedders/models/aws_bedrock" + "components/embedders/models/aws_bedrock", + "components/embedders/models/fastembed" ] } ] @@ -533,6 +534,8 @@ "api-reference/organization/get-org", "api-reference/organization/get-org-members", "api-reference/organization/add-org-member", + "api-reference/organization/update-org-member", + "api-reference/organization/remove-org-member", "api-reference/organization/delete-org" ] }, @@ -545,6 +548,9 @@ "api-reference/project/get-project", "api-reference/project/get-project-members", "api-reference/project/add-project-member", + "api-reference/project/update-project", + "api-reference/project/update-project-member", + "api-reference/project/remove-project-member", "api-reference/project/delete-project" ] }, @@ -624,6 +630,10 @@ ] }, "redirects": [ + { + "source": "/components/rerankers/models/llm", + "destination": "/components/rerankers/models/llm_reranker" + }, { "source": "/migration/breaking-changes", "destination": "/" diff --git a/docs/llms.txt b/docs/llms.txt index 9757d084f..ec1c284d4 100644 --- a/docs/llms.txt +++ b/docs/llms.txt @@ -367,6 +367,8 @@ All API Reference docs describe Mem0 Platform REST endpoints (requires API key). - [Get Organization](https://docs.mem0.ai/api-reference/organization/get-org) [Platform]: Use when fetching one org. - [Get Organization Members](https://docs.mem0.ai/api-reference/organization/get-org-members) [Platform]: Use when listing org members. - [Add Organization Member](https://docs.mem0.ai/api-reference/organization/add-org-member) [Platform]: Use when inviting a member to an org. +- [Update Organization Member](https://docs.mem0.ai/api-reference/organization/update-org-member) [Platform]: Use when updating an org member's role. +- [Remove Organization Member](https://docs.mem0.ai/api-reference/organization/remove-org-member) [Platform]: Use when removing a member from an organization. - [Delete Organization](https://docs.mem0.ai/api-reference/organization/delete-org) [Platform]: Use when removing an org. ### Projects @@ -375,6 +377,9 @@ All API Reference docs describe Mem0 Platform REST endpoints (requires API key). - [Get Project](https://docs.mem0.ai/api-reference/project/get-project) [Platform]: Use when fetching one project. - [Get Project Members](https://docs.mem0.ai/api-reference/project/get-project-members) [Platform]: Use when listing project members. - [Add Project Member](https://docs.mem0.ai/api-reference/project/add-project-member) [Platform]: Use when inviting a member to a project. +- [Update Project](https://docs.mem0.ai/api-reference/project/update-project) [Platform]: Use when updating project settings. +- [Update Project Member](https://docs.mem0.ai/api-reference/project/update-project-member) [Platform]: Use when updating a project member's role. +- [Remove Project Member](https://docs.mem0.ai/api-reference/project/remove-project-member) [Platform]: Use when removing a member from a project. - [Delete Project](https://docs.mem0.ai/api-reference/project/delete-project) [Platform]: Use when removing a project. ### Webhooks @@ -460,6 +465,7 @@ Everything below is OSS-only provider configuration. Skip this entire section wh - [LM Studio Embeddings](https://docs.mem0.ai/components/embedders/models/lmstudio) [OSS]: Use when embeddings run through LM Studio. - [Together Embeddings](https://docs.mem0.ai/components/embedders/models/together) [OSS]: Use when embeddings run on Together. - [LangChain Embeddings](https://docs.mem0.ai/components/embedders/models/langchain) [OSS]: Use when embeddings are wrapped behind a LangChain adapter. +- [FastEmbed](https://docs.mem0.ai/components/embedders/models/fastembed) [OSS]: Use when embeddings run locally via FastEmbed (ONNX). ### Vector Databases [OSS] - [Vector Database Overview](https://docs.mem0.ai/components/vectordbs/overview) [OSS]: Use when choosing a vector store. @@ -498,7 +504,5 @@ Everything below is OSS-only provider configuration. Skip this entire section wh - [Custom Reranker Prompts](https://docs.mem0.ai/components/rerankers/custom-prompts) [OSS]: Use when rewriting reranker prompts. - [Cohere Reranker](https://docs.mem0.ai/components/rerankers/models/cohere) [OSS]: Use for Cohere Rerank. - [Sentence Transformer Reranker](https://docs.mem0.ai/components/rerankers/models/sentence_transformer) [OSS]: Use for local cross-encoder rerankers. -- [Hugging Face Reranker](https://docs.mem0.ai/components/rerankers/models/huggingface) [OSS]: Use for HF-hosted reranker models. -- [LLM Reranker (prompt)](https://docs.mem0.ai/components/rerankers/models/llm) [OSS]: Use when the reranker is a prompted LLM (config guide). -- [LLM Reranker](https://docs.mem0.ai/components/rerankers/models/llm_reranker) [OSS]: Use when the reranker is a prompted LLM (implementation reference). +- [Hugging Face Reranker](https://docs.mem0.ai/components/rerankers/models/huggingface) [OSS]: Use for HF-hosted reranker models.- [LLM Reranker](https://docs.mem0.ai/components/rerankers/models/llm_reranker) [OSS]: Use when the reranker is a prompted LLM (implementation reference). - [Zero Entropy Reranker](https://docs.mem0.ai/components/rerankers/models/zero_entropy) [OSS]: Use for the Zero Entropy reranker.