Google Gemini
Memori integrates with Google Gemini via the google-genai SDK (Python) and @google/genai SDK (TypeScript). Register the client instance and all calls are automatically captured.
Quick Start
Gemini Integration
import os
from google import genai
from memori import Memori
client = genai.Client(api_key=os.environ["GOOGLE_API_KEY"])
mem = Memori().llm.register(client)
mem.attribution(entity_id="user_123", process_id="gemini_assistant")
response = client.models.generate_content(
model="gemini-2.5-flash",
contents="Hello!"
)
print(response.text)
Supported Modes
| Mode | Python | TypeScript |
|---|---|---|
| Sync | client.models.generate_content() | — |
| Async | await client.aio.models.generate_content() | await client.models.generateContent() |
| Streamed | client.models.generate_content_stream() | await client.models.generateContentStream() |
Additional Modes
Async (Python)
import os, asyncio
from google import genai
from memori import Memori
client = genai.Client(api_key=os.environ["GOOGLE_API_KEY"])
mem = Memori().llm.register(client)
mem.attribution(entity_id="user_123", process_id="gemini_assistant")
async def main():
response = await client.aio.models.generate_content(
model="gemini-2.5-flash",
contents="Hello!"
)
print(response.text)
asyncio.run(main())
Streaming
Streaming
import os
from google import genai
from memori import Memori
client = genai.Client(api_key=os.environ["GOOGLE_API_KEY"])
mem = Memori().llm.register(client)
mem.attribution(entity_id="user_123", process_id="gemini_assistant")
for chunk in client.models.generate_content_stream(
model="gemini-2.5-flash",
contents="Hello!"
):
print(chunk.text, end="")
Multi-Turn Conversations
Pass a message history as the contents array. Memori tracks the full conversation automatically.
Multi-Turn
response = client.models.generate_content(
model="gemini-2.5-flash",
contents="My name is Alice."
)
print(response.text)
response2 = client.models.generate_content(
model="gemini-2.5-flash",
contents=[
{"role": "user", "parts": [{"text": "My name is Alice."}]},
{"role": "model", "parts": [{"text": response.text}]},
{"role": "user", "parts": [{"text": "What's my name?"}]},
]
)
print(response2.text)