3.6. Llama モデルに取り込んだコンテンツの照会


Jupyter ノートブックの LlamaStack SDK を使用すると、ベクトルデータベースに保存されている生のテキストまたは HTML ソースに対して検索拡張生成 (RAG) クエリーを実行することで、取り込んだコンテンツを照会できます。取り込んだコンテンツを照会する場合、別の取得サービスを設定しなくても、1 回限りの検索を実行したり、複数ターンの会話フローを開始したりできます。

前提条件

  • OpenShift AI で GPU サポートを有効にした。これには、Node Feature Discovery Operator と NVIDIA GPU Operator のインストールが含まれます。詳細は、Node Feature Discovery Operator のインストールNVIDIA GPU の有効化 を参照してください。
  • GPU アクセラレーションを使用している場合は、少なくとも 1 つの NVIDIA GPU が使用可能である。
  • OpenShift Web コンソールにログインしている。
  • OpenShift AI で Llama Stack Operator をアクティブ化した。
  • llama-3.2-3b-instruct モデルなどの推論モデルをデプロイした。
  • LlamaStackDistribution インスタンスを作成して RAG 機能を有効にし、Llama Stack のデプロイメントを設定した。
  • データサイエンスプロジェクト内にプロジェクトワークベンチを作成した。
  • Jupyter ノートブックが開いており、ワークベンチ環境で実行中である。
  • ワークベンチ環境に llama_stack_client バージョン 0.2.14 以降がインストールされている。
  • モデルにコンテンツを取り込んだ。
注記

この手順では、特定の種類のコンテンツは必要ありません。必要なのは、テキスト、HTML、またはドキュメントデータがベクトルデータベースにすでに取り込まれており、そのコンテンツが取得可能であることだけです。以前にコンテンツを取り込んでいることがある場合は、そのコンテンツを照会できます。まだコンテンツを取り込んでいない場合、この手順のクエリーは空の結果またはエラーを返します。

手順

  1. 新しいノートブックセルで、llama_stack クライアントパッケージをインストールします。

    %pip install llama_stack_client
  2. 新しいノートブックセルで、AgentAgentEventLoggerLlamaStackClient をインポートします。

    from llama_stack_client import Agent, AgentEventLogger, LlamaStackClient
  3. 新しいノートブックセルで、デプロイメントエンドポイントを base_url パラメーターに割り当てて、LlamaStackClient インスタンスを作成します。以下に例を示します。

    client = LlamaStackClient(base_url="http://lsd-llama-milvus-service:8321/")
  4. 新しいノートブックセルで、利用可能なモデルをリスト表示します。

    models = client.models.list()
  5. 登録済みモデルのリストに Llama モデルとエンベディングモデルが含まれていることを確認します。登録済みモデルのリストの例を次に示します。

    [Model(identifier='llama-32-3b-instruct', metadata={}, api_model_type='llm', provider_id='vllm-inference', provider_resource_id='llama-32-3b-instruct', type='model', model_type='llm'),
     Model(identifier='ibm-granite/granite-embedding-125m-english', metadata={'embedding_dimension': 768.0}, api_model_type='embedding', provider_id='sentence-transformers', provider_resource_id='ibm-granite/granite-embedding-125m-english', type='model', model_type='embedding')]
  6. 新しいノートブックセルで、登録済みモデルのリストにある最初の LLM を選択します。

    model_id = next(m.identifier for m in models if m.model_type == "llm")
  7. 新しいノートブックセルで、ベクトルデータベースを識別する一意の名前である vector_db_id を定義します (例: my_milvus_db)。ベクトルデータベース ID がわからない場合は、管理者に問い合わせてください。

    vector_db_id = "<your vector database ID>"
  8. 新しいノートブックセルで、低レベルの RAG ツールを使用して取り込んだコンテンツを照会します。

    # Example RAG query for one-off lookups
    query = "What benefits do the ingested passages provide for retrieval?"
    result = client.tool_runtime.rag_tool.query(
        vector_db_ids=[vector_db_id],
        content=query,
    )
    print("Low-level query result:", result)
  9. 新しいノートブックセルで、高レベルのエージェント API を使用して取り込んだコンテンツを照会します。

    # Create an Agent for conversational RAG queries
    agent = Agent(
        client,
        model=model_id,
        instructions="You are a helpful assistant.",
        tools=[
            {
                "name": "builtin::rag/knowledge_search",
                "args": {"vector_db_ids": [vector_db_id]},
            }
        ],
    )
    
    prompt = "How do you do great work?"
    print("Prompt>", prompt)
    
    # Create a session and run a streaming turn
    session_id = agent.create_session("rag_session")
    response = agent.create_turn(
        messages=[{"role": "user", "content": prompt}],
        session_id=session_id,
        stream=True,
    )
    
    # Log and print the agent's response
    for log in AgentEventLogger().log(response):
        log.print()

検証

  • ノートブックは、低レベルの RAG ツールと高レベルのエージェント API の両方のクエリー結果を出力します。
  • 出力にエラーが表示されなければ、モデルが取り込んだコンテンツを取得して応答できています。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る