{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Papr Products","siteUrl":"https://platform.papr.ai","description":"Papr Memory is an AI-native memory layer that lets developers add production-ready memory to their AI agents and apps with just a few lines of code."},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"papr-products"},"children":["Papr Products"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Four products that work standalone or together to turn your data into intelligence."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"graph-aware-vector-search"},"children":["Graph-Aware Vector Search"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Domain-tuned search that understands context beyond semantic similarity."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Traditional vector search treats everything the same. Graph-aware search encodes structured dimensions—programming language, temporal context, domain expertise—directly into the embedding space."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["When to use:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Code search (filter by language, API patterns)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Scientific claims (filter by methodology, evidence type)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Custom domains (legal, medical, financial)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Transform embeddings from any provider (OpenAI, Cohere, etc.)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Improve existing search results with domain-aware reranking"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Two integration approaches:"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"approach-1-papr-storage-full-integration"},"children":["Approach 1: Papr Storage (Full Integration)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use Papr's memory storage with graph-aware embeddings enabled."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["When to use:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Building new applications from scratch"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Want Papr to handle storage and search"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Need full memory management features"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Endpoints:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /v1/memory"]}," with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enable_holographic=true"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /v1/memory/search"]}," with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["holographic_config"]}]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"# Store with graph-aware embeddings\npapr.memory.add(\n    content=\"def sort_list(items): return sorted(items)\",\n    enable_holographic=True,\n    frequency_schema_id=\"cosqa\",  # Built-in schema\n    external_user_id=\"user_123\"\n)\n\n# Search with domain filtering\nresults = papr.memory.search(\n    query=\"How do I sort a list?\",\n    external_user_id=\"user_123\",\n    holographic_config={\n        \"enabled\": True,\n        \"frequency_schema_id\": \"cosqa\",\n        \"frequency_filters\": {\n            \"language\": 0.9  # 90%+ language match\n        }\n    }\n)\n","lang":"python"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"approach-2-plugin/transform-bring-your-own-embeddings"},"children":["Approach 2: Plugin/Transform (Bring Your Own Embeddings)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/holographic"]}," endpoints with your existing embedding provider and vector database."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["When to use:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Already using OpenAI, Cohere, or another embedding provider"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Have existing vector database (Pinecone, Weaviate, etc.)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Don't want to migrate data"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Just need graph-aware transformation or reranking"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Endpoints:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /v1/holographic/transform"]}," - Transform embeddings to graph-aware"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /v1/holographic/rerank"]}," - Rerank search results with domain scoring"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"# Option A: Transform embeddings before storing\nopenai_embedding = openai.embeddings.create(\n    input=\"def sort_list(items): return sorted(items)\"\n)\n\ntransformed = papr.holographic.transform(\n    embedding=openai_embedding.data[0].embedding,\n    frequency_schema_id=\"cosqa\",\n    content=\"def sort_list(items): return sorted(items)\"  # For dimension extraction\n)\n\n# Store in your existing vector DB\npinecone.upsert(vectors=[transformed])\n","lang":"python"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"# Option B: Rerank existing search results\ninitial_results = your_search_system.search(\"How to sort a list?\")\n\nreranked = papr.holographic.rerank(\n    query=\"How to sort a list?\",\n    results=[{\"content\": r.content, \"score\": r.score} for r in initial_results],\n    frequency_schema_id=\"cosqa\"\n)\n","lang":"python"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Built-in schemas:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cosqa"]}," - Code search (+5.5% NDCG@10 vs baseline)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["scifact"]}," - Scientific claims (+36% NDCG@10 vs baseline)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["general"]}," - Mixed content domains"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Custom domains:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Register with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /v1/holographic/domains"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Define 14 frequency bands for your domain"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Examples: legal contracts, medical records, financial analysis"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Get started:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/guides/graph-aware-embeddings"},"children":["Graph-Aware Embeddings guide"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/guides/graph-aware-embeddings#built-in-schemas"},"children":["Built-in schemas"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/guides/graph-aware-embeddings#byoe"},"children":["BYOE Transform"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/guides/graph-aware-embeddings#custom-domain-schemas"},"children":["Custom domains"]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"knowledge-graphs"},"children":["Knowledge Graphs"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Map entity relationships and patterns beyond vector similarity."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Extract entities and relationships from your data into a queryable graph. Find connections, run analytics, detect fraud, build recommendations."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["When to use:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Need to understand relationships, not just similarity"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Fraud detection (suspicious connection patterns)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Recommendation systems (user-item relationships)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Knowledge bases with structured ontologies"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Multi-hop reasoning and analytics"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Key capabilities:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Auto-extract entities from memories (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["memory_policy.mode=auto"]},")"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Custom domain schemas (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /v1/schemas"]},")"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["GraphQL queries for analytics and aggregations"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Multi-hop graph-aware search"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Relationship traversal and pattern matching"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Get started:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/guides/graph-generation"},"children":["Graph Generation guide"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/guides/custom-schemas"},"children":["Custom Schemas guide"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/guides/graphql-analysis"},"children":["GraphQL Analysis guide"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/guides/advanced-topics/knowledge-graphs"},"children":["Knowledge Graphs deep dive"]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"document-intelligence"},"children":["Document Intelligence"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Extract structure and meaning from PDFs, Word docs, and images."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Intelligent document parsing that understands tables, figures, hierarchies, and context. Works standalone or integrates with memory and graph products."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["When to use:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Document Q&A systems"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Contract analysis, legal documents"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Research paper extraction"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["PDF/Word/image understanding"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Intelligent chunking and classification"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Key capabilities:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Upload documents: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /v1/document"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Pluggable extraction providers (TensorLake, Reducto, Gemini Vision)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Automatic metadata extraction and structure recognition"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Optional memory creation (integrate with vector/graph)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["WebSocket status updates for large documents"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Integration options:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Standalone:"]}," Extract structured data and handle it yourself"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["+ Vector Search:"]}," Automatic searchable memory from documents"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["+ Knowledge Graphs:"]}," Extract entities and relationships from documents"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Get started:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/quickstart/document-memory"},"children":["Document Memory quickstart"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/guides/document-processing"},"children":["Document Processing guide"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/tutorials/document-qa"},"children":["Document Q&A tutorial"]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"chat-memory--compression"},"children":["Chat Memory & Compression"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Store conversations with automatic compression for long-running context."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Session-based conversation storage that automatically compresses long histories and extracts important facts into long-term memory."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["When to use:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Building chatbots or conversational AI"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Session-based conversation storage"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Automatic context compression for long chats"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Extract facts from conversations into permanent memory"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Key capabilities:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Store messages: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /v1/messages"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Automatic compression every 15 messages"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Extract memories from conversations (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["process_messages=true"]},")"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Session management and status tracking"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Retrieve conversation history (newest-first)"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Works with:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Vector Search:"]}," Cross-session recall of user preferences"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Knowledge Graphs:"]}," Entity extraction from conversations"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Get started:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/quickstart/chat-memory"},"children":["Chat Memory quickstart"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/guides/messages-management"},"children":["Messages Management guide"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/guides/message-compression"},"children":["Message Compression guide"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/tutorials/chat-history"},"children":["Chat History tutorial"]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"common-use-cases"},"children":["Common use cases"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"conversational-ai-with-long-term-memory"},"children":["Conversational AI with long-term memory"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Products:"]}," Chat Memory + Graph-Aware Vector Search"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Store conversations with automatic compression and search across sessions with domain-aware precision."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"# Store current conversation with compression\nclient.messages.store(\n    content=\"I prefer dark mode and email notifications\",\n    role=\"user\",\n    session_id=\"conv_123\",\n    process_messages=True  # Extracts preferences as long-term memories\n)\n\n# Later, search across all sessions\nprefs = client.memory.search(\n    query=\"What are this user's preferences?\",\n    external_user_id=\"user_123\"\n)\n","lang":"python"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"document-qa-with-entity-relationships"},"children":["Document Q&A with entity relationships"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Products:"]}," Document Intelligence + Knowledge Graphs"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Extract from PDFs and query with entity awareness and relationship mapping."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"# Upload document (extracts structure and entities)\ndoc = client.document.upload(\n    file_path=\"contract.pdf\",\n    enable_graph=True  # Extract entity relationships\n)\n\n# Search with graph-aware context\nresults = client.memory.search(\n    query=\"What are Acme Corp's obligations?\",\n    enable_agentic_graph=True\n)\n","lang":"python"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"code-search-with-language-filtering"},"children":["Code search with language filtering"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Products:"]}," Graph-Aware Vector Search"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Two approaches depending on your existing infrastructure:"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approach 1: Using Papr storage (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v1/memory"]}," with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enable_holographic=true"]},")"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"# Index code with graph-aware embeddings\nclient.memory.add(\n    content=\"def sort_list(items): return sorted(items)\",\n    enable_holographic=True,\n    frequency_schema_id=\"cosqa\"\n)\n\n# Search with language filtering\nresults = client.memory.search(\n    query=\"How do I sort a list?\",\n    holographic_config={\n        \"enabled\": True,\n        \"frequency_schema_id\": \"cosqa\",\n        \"frequency_filters\": {\n            \"language\": 0.9  # 90%+ must be same language\n        }\n    }\n)\n","lang":"python"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approach 2: Plugin with existing embeddings (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v1/holographic/transform"]},")"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"# Transform your existing OpenAI embeddings\nopenai_emb = openai.embeddings.create(input=\"def sort_list(items): return sorted(items)\")\n\ntransformed = client.holographic.transform(\n    embedding=openai_emb.data[0].embedding,\n    frequency_schema_id=\"cosqa\",\n    content=\"def sort_list(items): return sorted(items)\"\n)\n\n# Store in your existing vector DB (Pinecone, Weaviate, etc.)\nyour_vector_db.upsert(transformed)\n","lang":"python"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"fraud-detection-with-relationship-mapping"},"children":["Fraud detection with relationship mapping"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Products:"]}," Knowledge Graphs"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Detect suspicious patterns through entity connections and relationship analysis."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"# Store transactions with entity extraction\nclient.memory.add(\n    content=\"User A transferred $10k to User B\",\n    memory_policy={\"mode\": \"auto\"}  # Extract entities\n)\n\n# Query suspicious patterns\nsuspicious = client.graphql.query(\"\"\"\n    query SuspiciousPatterns {\n        users(where: { \n            transactions_aggregate: { count: { _gt: 10 } },\n            created_at: { _gte: \"2024-01-01\" }\n        }) {\n            id\n            transactions { amount, recipient }\n        }\n    }\n\"\"\")\n","lang":"python"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"decision-flow"},"children":["Decision flow"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What are you building?"]}]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["\"Chatbot with memory\""]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"→ Start with ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#chat-memory--compression"},"children":["Chat Memory"]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"→ Add ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#graph-aware-vector-search"},"children":["Graph-Aware Search"]}," for cross-session recall"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["\"Document Q&A\""]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"→ Start with ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#document-intelligence"},"children":["Document Intelligence"]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"→ Add ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#knowledge-graphs"},"children":["Knowledge Graphs"]}," for entity relationships"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["\"Code search platform\""]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"→ Start with ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#graph-aware-vector-search"},"children":["Graph-Aware Search"]}," (cosqa schema)"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["\"Fraud detection / Recommendations\""]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"→ Start with ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#knowledge-graphs"},"children":["Knowledge Graphs"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["\"Transform existing embeddings\""]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"→ Use ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#graph-aware-vector-search"},"children":["Graph-Aware Search"]}," BYOE transform"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Next steps:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/quickstart"},"children":["Quick start (5 min)"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis"},"children":["API Reference"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/tutorials"},"children":["Use case tutorials"]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"additional-capabilities"},"children":["Additional capabilities"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["AI Model Proxy"]}," - Unified API for OpenAI, Anthropic, Google with usage tracking",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis"},"children":["Learn more →"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Sync & Portability"]}," - Local/cloud sync and OMO export/import",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"a","attributes":{"href":"/guides/portability-and-sync"},"children":["Learn more →"]}]}]},"headings":[{"value":"Papr Products","id":"papr-products","depth":1},{"value":"Graph-Aware Vector Search","id":"graph-aware-vector-search","depth":2},{"value":"Approach 1: Papr Storage (Full Integration)","id":"approach-1-papr-storage-full-integration","depth":3},{"value":"Approach 2: Plugin/Transform (Bring Your Own Embeddings)","id":"approach-2-plugin/transform-bring-your-own-embeddings","depth":3},{"value":"Knowledge Graphs","id":"knowledge-graphs","depth":2},{"value":"Document Intelligence","id":"document-intelligence","depth":2},{"value":"Chat Memory & Compression","id":"chat-memory--compression","depth":2},{"value":"Common use cases","id":"common-use-cases","depth":2},{"value":"Conversational AI with long-term memory","id":"conversational-ai-with-long-term-memory","depth":3},{"value":"Document Q&A with entity relationships","id":"document-qa-with-entity-relationships","depth":3},{"value":"Code search with language filtering","id":"code-search-with-language-filtering","depth":3},{"value":"Fraud detection with relationship mapping","id":"fraud-detection-with-relationship-mapping","depth":3},{"value":"Decision flow","id":"decision-flow","depth":2},{"value":"Additional capabilities","id":"additional-capabilities","depth":2}],"frontmatter":{"title":"Products Overview","seo":{"title":"Papr Products"}},"lastModified":"2026-04-22T01:40:48.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/overview/products","userData":{"isAuthenticated":false,"teams":["anonymous"]}}