LangchainとGeminiを使ってみた(GoogleColab付)

Gemini

Langchainは、言語モデルを活用したアプリケーション開発のためのフレームワークです。この記事では、Langchainを使ってGoogleのGenerative AIモデルを効果的に使用する方法を、初心者にも分かりやすく解説します。LangchainのREADMEとドキュメントの内容を基に、具体的なコードブロックを交えて説明していきます。


こちらの記事もおすすめ

VS Code Continue と Geminiを使った 無料AIエディタ~使ってみた編①~
導入(Introduction)Continue(コンティニュー)とは? Continueは、VS Code(VSコード)とJetBrains(ジェットブレインズ)向けのオープンソースの自動操縦機能(autopilot)です。これは、任意の...
Gemini-OpenAI-ProxyでOllamaとGemini Proを簡単接続
この記事では、OllamaのOpenAI APIに接続できる機能を活用して、Gemini-OpenAI-Proxyを通じてOpenAI APIのフォーマットをGeminiのフォーマットに変換し、Gemini Proと対話する方法について解説...

Langchainの基本

Langchainは、コンテキストに基づいた推論アプリケーションを構築するためのフレームワークです。コンテキスト認識、推論、外部データソースからのデータ取得など、言語モデルを活用した多様なアプリケーション開発を可能にします。

設定方法

GoogleのGenerative AIを使用するためには、最初にlangchain-google-genai Pythonパッケージをインストールし、APIキーを生成する必要があります。以下の手順に従ってください。


%pip install --upgrade --quiet langchain-google-genai
from langchain_google_genai import GoogleGenerativeAI
from getpass import getpass

api_key = getpass()
llm = GoogleGenerativeAI(model="models/text-bison-001", google_api_key=api_key)
print(
    llm.invoke(
        "Pythonというプログラミング言語の長所と短所は何ですか?"
    )
)

llm = GoogleGenerativeAI(model="gemini-pro", google_api_key=api_key)
print(
    llm.invoke(
        "Pythonというプログラミング言語の長所と短所は何ですか?"
    )
)

このコードは、Pythonパッケージをインストールし、Google Generative AIモデル(models/text-bison-001gemini-pro)に質問を送り、その回答を表示する方法を示しています。

text-bison-001は日本語に対応していない模様...

file

チェーン内での使用

Langchainでは、プロンプトテンプレートを使って質問とその回答のフォーマットを定義し、その後Generative AIモデルをチェーンの一部として組み込むことができます。


from langchain.prompts import PromptTemplate
template = """質問: {question}

回答: 一歩ずつ考えてみましょう。"""
prompt = PromptTemplate.from_template(template)

chain = prompt | llm

question = "2+2はいくつですか?"
print(chain.invoke({"question": question}))

この方法では、質問を受け取り、定義したフォーマットに従って回答を整形し、Generative AIモデルに渡して回答を得ることができます。

ストリーミング呼び出し

大量のデータや、リアルタイムでの応答が求められる場合、ストリーミング呼び出しを使用することができます。以下の例では、雪についての短い詩をリアルタイムで受け取る方法を示しています。


import sys

for chunk in llm.stream("雪についての短い詩を教えて"):
    sys.stdout.write(chunk)
    sys.stdout.flush()

セーフティ設定

Geminiモデルは、デフォルトでセーフティ設定がありますが、これをオーバーライドすることが可能です。もしモデルから「セーフティ警告」を多く受け取る場合、以下のようにセーフティ設定属性を調整することで対応できます。


from langchain_google_genai import GoogleGenerativeAI, HarmBlockThreshold, HarmCategory

llm = GoogleGenerativeAI(
    model="gemini-pro",
    google_api_key=api_key,
    safety_settings={
        HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_NONE,
    },
)

Googleのセーフティ設定タイプで利用可能なカテゴリや閾値の一覧を確認してください。

この記事を通して、LangchainとGoogle Generative AIモデルの基本的な使い方を理解できたことでしょう。これらのツールを使って、さまざまなプロジェクトやアプリケーションを開発する際の基礎として活用してください。

ノートブック

Google Colaboratory

参考サイト

Google AI chat models | 🦜️🔗 LangChain
Access Google AI’s gemini and gemini-vision models, as well as other
https://github.com/langchain-ai/langchain/blob/master/docs/docs/integrations/llms/google_ai.ipynb

コメント

タイトルとURLをコピーしました