前提条件
作業を始める前に、以下の環境を準備してください。- SambaCloud のアカウントと API キー
- OpenAI の API キー。 Mem0 はチャットモデルに加えて Embedding (埋め込み) モデルを必要としますが、SambaNova の Embedding は SambaStack のみで提供されています。SambaCloud では embedder を別のプロバイダーから用意する必要があるため、SambaNova のキーに加えて
OPENAI_API_KEYが必須です。どの呼び出しがどこへ送られるかは Mem0 での SambaNova の使われ方 をご参照ください。 - Python 3.10 以上。サンプルリポジトリでバージョン固定されている
langchainおよびlangchain-sambanovaのリリースは 3.10 を必要とするため、3.9 ではpip install -r requirements.txtが失敗します。 - ベクトルストアのインストールや起動は不要です。Mem0 はデフォルトでローカル組み込みモードの Qdrant を使用し、ローカルマシン上のディレクトリに書き込みます。
Mem0 での SambaNova の使われ方
Mem0 は 3 種類の呼び出しを行い、それぞれが独立してプロバイダーに解決されます。どの呼び出しがどれに当たるかを理解すれば、2 つのキーが必要な理由がわかります。クイックスタート
このクイックスタートは単体で完結しています。何もクローンすることなく、メモリを保存し、後のターンで想起し、プロンプトに反映します。Mem0 のインストール
mem0ai は依存関係として openai クライアントをインストールするため、別途インストールする必要はありません。
API キーの設定
メモリの保存と想起
以下をquickstart.py として保存し、python quickstart.py で実行します。
openai_base_urlは、OpenAI 互換クライアントの接続先を変更するために Mem0 が読み取るキーです。base_urlと書くとTypeError: __init__() got an unexpected keyword argument 'base_url'が発生します。embedderブロックには意図的にopenai_base_urlを設定していないため、接続先はhttps://api.openai.com/v1になります。環境変数OPENAI_BASE_URLは設定しないでください。Mem0 の embedder がこれを読み取って Embedding リクエストを SambaNova に送信してしまいますが、SambaCloud では Embedding は提供されていません。
動作確認
最初のターンでは想起するものがありません。2 番目のターンが動作の証明になります。ターン 1 から抽出されたメモリが返され、プロンプトに反映されます。[recalled] ブロックが空でないことです。
あるユーザーについて保存されているすべての内容を一覧するには、以下を quickstart.py の末尾に追記します。上で定義した memory オブジェクトと USER_ID を再利用します。
on_disk は意図的に True に設定しています。Mem0 のローカル Qdrant ストアのデフォルトは on_disk: False で、このモードでは Memory オブジェクトを構築するたびにストアのディレクトリが削除されるため、メモリが再起動後に残りません。on_disk: True に設定すると、実行をまたいでメモリが保持されます。サンプルアプリケーションの実行
sambanova/integrations リポジトリには、同じ追加・検索のループを対話型の REPL でラップした、より長いサンプルがあります。リポジトリのクローン
仮想環境の作成
依存パッケージのインストール
環境変数の設定
プロジェクトディレクトリに.env ファイルを作成し、両方のキーを記述します。
スクリプトの実行
このスクリプトは、SambaNova に接続された Mem0 のメモリクライアントを初期化して対話型のチャットループを開始するため、フォローアップの質問をすることでターンをまたいだメモリの保持を確認できます。終了するにはexit と入力します。
トラブルシューティング
command not found: python
command not found: python
macOS には
python 実行ファイルはなく、python3 のみが提供されます。仮想環境の作成には python3 -m venv .venv を使用してください。source .venv/bin/activate で有効化すれば、環境内では python が期待どおりに動作します。pip install が langchain の要件で失敗する
pip install が langchain の要件で失敗する
バージョン固定されている
langchain および langchain-sambanova のリリースには Python 3.10 以上が必要です。有効化した環境内のインタープリターを python --version で確認し、3.9 と表示される場合はサポート対象のインタープリターで環境を作り直してください。チャットループは起動するが、最初のメッセージで失敗する
チャットループは起動するが、最初のメッセージで失敗する
プロンプトはモデル呼び出しが行われる前に表示されるため、設定に問題があっても、最初のメッセージを送信するまで表面化しません。そのターンでは、Embedding エンドポイントに対するメモリ検索、チャット補完、そして両方を再度使用するメモリ書き込みの 3 つの呼び出しが順に行われます。Embedding の呼び出しが最初なので、通常はそれが最初に失敗します。エラーのテキストを読み、どのエンドポイントがリクエストを拒否したかを確認してください。
AuthenticationError: Error code: 401
AuthenticationError: Error code: 401
2 つのキーのいずれかが未設定または誤っています。メッセージ本文を読んでどちらかを判別してください。
platform.openai.com を案内する 401 は embedder からのものなので、OPENAI_API_KEY を確認します。それ以外の 401 はチャットまたはメモリ LLM の呼び出しからのものなので、SAMBANOVA_API_KEY を確認し、SambaCloud ポータル からコピーし直してください。各ターンの最初の処理はメモリ検索であるため、embedder が最初に失敗する呼び出しになります。そのため、SambaNova のキーが正しくても OpenAI の 401 が表示されることがあります。また、サンプルの main.py は os.environ.setdefault を呼び出すため、起動時に失敗する代わりにプレースホルダの値で代替され、エラーは最初のメッセージ送信時にのみ表面化します。クイックスタートは代わりに os.environ[...] でキーを読み取るため、キーが欠けていれば即座に失敗します。Embedding エンドポイントへのメモリの書き込み・検索が失敗する
Embedding エンドポイントへのメモリの書き込み・検索が失敗する
SambaNova の Embedding は SambaStack のみで提供されており、
E5-Mistral-7B-Instruct は 2026年4月6日に SambaCloud での提供が終了しました。SambaCloud のキーではこのエンドポイントに到達できません。クイックスタートのように SambaNova 以外の embedder を設定するか、SambaStack デプロイメントを使用してください。SambaNova を使用しているのに OPENAI_API_KEY のエラーが出る
SambaNova を使用しているのに OPENAI_API_KEY のエラーが出る
想定どおりの動作です。Mem0 には embedder が必要ですが、SambaCloud は Embedding を提供していないため、embedder は OpenAI 上で動作し
OPENAI_API_KEY を読み取ります。両方のキーを設定する必要があります。設定から llm ブロックも省略している場合は、Mem0 のメモリ LLM もデフォルトの OpenAI になり、同じキーを読み取ります。TypeError: __init__() got an unexpected keyword argument 'base_url'
TypeError: __init__() got an unexpected keyword argument 'base_url'
Mem0 の OpenAI 互換プロバイダー設定では、
base_url ではなく openai_base_url を使用します。llm 設定ブロック内のキー名を変更してください。openai_base_url が SambaNova を指しているのにリクエストが OpenAI に送られる
openai_base_url が SambaNova を指しているのにリクエストが OpenAI に送られる
llm ブロックが存在し、provider が openai、openai_base_url が https://api.sambanova.ai/v1 に設定されていることを確認してください。Mem0 は専用のプロバイダーではなく OpenAI 互換クライアントを通じて SambaNova に接続するため、provider: "sambanova" は Unsupported LLM provider として拒否されます。再起動するたびにメモリが空になる
再起動するたびにメモリが空になる
Mem0 のローカル Qdrant ストアのデフォルトは
on_disk: False で、このモードでは Memory オブジェクトの構築時にストアのディレクトリが削除されます。実行をまたいでメモリを保持するには、vector_store 設定で on_disk を True に設定してください。2 ターン目で何も想起されない
2 ターン目で何も想起されない
メモリの書き込みでは、会話をメモリ LLM に通して事実を抽出するため、保存に値する事実を含まないターンからはメモリが生成されません。何が保存されたかは
memory.get_all(user_id=USER_ID) で確認してください。また、メモリはユーザーごとにスコープされるため、search と add が同じ user_id を使用していることも確認してください。embedder を変更した後にベクトルの次元が一致しない
embedder を変更した後にベクトルの次元が一致しない
vector_store 設定の embedding_model_dims は、Embedding モデルの出力サイズと一致している必要があります (text-embedding-3-small は 1536、E5-Mistral-7B-Instruct は 4096)。embedder を変更した後は、ローカルのストアディレクトリを削除して、コレクションが新しいサイズで再作成されるようにしてください。
