Supported LLM Providers

ProviderModes SupportedIntegration Method
OpenAISync, Async, Streamed, UnstreamedDirect SDK wrapper
AnthropicSync, Async, Streamed, UnstreamedDirect SDK wrapper
Google (Gemini)Sync, Async, Streamed, UnstreamedDirect SDK wrapper
xAI (Grok)Sync, Async, Streamed, UnstreamedDirect SDK wrapper
BedrockVia LangChainLangChain ChatBedrock
LangChainAll LangChain chat modelsNative framework support
Pydantic AIAll providersNative framework support
Nebius AI StudioAll providersNative Platform support

Quick Start Examples

OpenAI

from memori import Memori
from openai import OpenAI
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

engine = create_engine("sqlite:///memori.db")
SessionLocal = sessionmaker(bind=engine)

client = OpenAI()

mem = Memori(conn=SessionLocal).llm.register(client)
mem.attribution(entity_id="user_123", process_id="my_agent")

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "Hello!"}]
)

OpenAI Responses Client

from memori import Memori
from openai import OpenAI
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

engine = create_engine("sqlite:///memori.db")
SessionLocal = sessionmaker(bind=engine)

client = OpenAI()

mem = Memori(conn=SessionLocal).llm.register(client)
mem.attribution(entity_id="user_123", process_id="my_agent")

response = client.responses.create(
    model="gpt-4o-mini",
    input="Hello!",
    instructions="You are a helpful assistant."
)

Anthropic

from anthropic import Anthropic
from memori import Memori
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

engine = create_engine("sqlite:///anthropic_demo.db")
SessionLocal = sessionmaker(bind=engine)

client = Anthropic()

mem = Memori(conn=SessionLocal).llm.register(client)
mem.attribution(entity_id="user_123", process_id="claude_assistant")

response = client.messages.create(
    model="claude-3-5-sonnet-20241022",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello"}]
)

Google

import os

from memori import Memori
import google.generativeai as genai
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

engine = create_engine("sqlite:///gemini_demo.db")
SessionLocal = sessionmaker(bind=engine)

genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
client = genai.GenerativeModel("gemini-2.0-flash-exp")

mem = Memori(conn=SessionLocal).llm.register(client)
mem.attribution(entity_id="user_123", process_id="gemini_assistant")

response = client.generate_content("Hello")

LangChain

from langchain_openai import ChatOpenAI
from memori import Memori
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

engine = create_engine("sqlite:///langchain_demo.db")
SessionLocal = sessionmaker(bind=engine)

client = ChatOpenAI(model="gpt-4o-mini")

mem = Memori(conn=SessionLocal).llm.register(chatopenai=client)
mem.attribution(entity_id="user_123", process_id="langchain_agent")

response = client.invoke("Hello")

Pydantic AI

from memori import Memori
from pydantic_ai import Agent
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

engine = create_engine("sqlite:///pydantic_demo.db")
SessionLocal = sessionmaker(bind=engine)

agent = Agent("openai:gpt-4o-mini")

mem = Memori(conn=SessionLocal).llm.register(agent)
mem.attribution(entity_id="user_123", process_id="pydantic_agent")

result = agent.run_sync("Hello")

Nebius AI Studio

from memori import Memori
from openai import OpenAI
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

engine = create_engine("sqlite:///memori.db")
SessionLocal = sessionmaker(bind=engine)

client = OpenAI(
    base_url="https://api.studio.nebius.com/v1/",
    api_key=os.getenv("NEBIUS_API_KEY"),
)

mem = Memori(conn=SessionLocal).llm.register(client)
mem.attribution(entity_id="user_123", process_id="my_agent")

response = client.chat.completions.create(
    model="meta-llama/Llama-3.3-70B-Instruct",
    messages=[{"role": "user", "content": "Hello!"}]
)