この記事では、PC 上でローカルに実行されるオープンソース llm (llama3.1) を使用するカスタム エージェントを作成する方法を学習します。 Ollama と LangChain も使用します。
概要
- Ollama をインストールします
- プルモデル
- サービスモデル
- 新しいフォルダーを作成し、コードエディターで開きます
- 仮想環境の作成とアクティブ化
- langchain langchain-ollam をインストールします
- Python のオープンソース モデルを使用してカスタム エージェントを構築する
- 結論
オラマをインストールする
GitHub README にある OS の種類に基づいた手順に従って、Ollama をインストールします。
https://github.com/ollama/ollama
私は Linux ベースの PC を使用しているので、ターミナルで次のコマンドを実行します。
curl -fsSL https://ollama.com/install.sh | sh
プルモデル
次のコマンドを使用して、利用可能な LLM モデルを取得します。
ollama pull llama3.1
これにより、モデルのデフォルトのタグ付きバージョンがダウンロードされます。通常、デフォルトは最新の最小サイズのパラメーター モデルを指します。この場合、llama3.1:8b モデルになります。
モデルの別のバージョンをダウンロードするには、https://ollama.com/library/llama3.1 にアクセスして、インストールするバージョンを選択し、モデルとそのバージョン番号を指定して ollama pull コマンドを実行します。 。例: ollam プル llama3.1:70b
Mac では、モデルは ~/.ollama/models にダウンロードされます
Linux (または WSL) では、モデルは /usr/share/ollama/.ollama/models に保存されます
サーブモデル
次のコマンドを実行して、デスクトップ アプリケーションを実行せずに ollam を起動します。
ollama serve
すべてのモデルは localhost:11434 で自動的に提供されます
新しいフォルダーを作成し、コードエディターで開きます
コンピューター上に新しいフォルダーを作成し、VS Code などのコード エディターで開きます。
仮想環境の作成とアクティブ化
ターミナルを開きます。次のコマンドを使用して、仮想環境 .venv を作成し、アクティブ化します。
python3 -m venv .venv
source .venv/bin/activate
ラングチェーンをインストールする
次のコマンドを実行して、langchain と langchain-ollama をインストールします。
pip install -U langchain langchain-ollama
上記のコマンドは、Python で LangChain および LangChain-Ollama パッケージをインストールまたはアップグレードします。 -U フラグは、これらのパッケージの最新バージョンが確実にインストールされ、すでに存在する可能性のある古いバージョンを置き換えます。
Python のオープンソース モデルを使用してカスタム エージェントを構築する
Python ファイル (例: main.py) を作成し、次のコードを追加します:
from langchain_ollama import ChatOllama from langchain.agents import tool from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder from langchain.agents.format_scratchpad.openai_tools import ( format_to_openai_tool_messages, ) from langchain.agents import AgentExecutor from langchain.agents.output_parsers.openai_tools import OpenAIToolsAgentOutputParser llm = ChatOllama( model="llama3.1", temperature=0, verbose=True ) @tool def get_word_length(word: str) -> int: """Returns the length of a word.""" return len(word) tools = [get_word_length] prompt = ChatPromptTemplate.from_messages( [ ( "system", "You are very powerful assistant", ), ("user", "{input}"), MessagesPlaceholder(variable_name="agent_scratchpad"), ] ) llm_with_tools = llm.bind_tools(tools) agent = ( { "input": lambda x: x["input"], "agent_scratchpad": lambda x: format_to_openai_tool_messages( x["intermediate_steps"] ), } | prompt | llm_with_tools | OpenAIToolsAgentOutputParser() ) # Create an agent executor by passing in the agent and tools agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True) result = agent_executor.invoke({"input": "How many letters in the word educa"}) if result: print(f"[Output] --> {result['output']}") else: print('There are no result..')
上記のコード スニペットは、ChatOllama モデル (llama3.1) を使用して LangChain エージェントをセットアップし、ユーザー入力を処理し、単語の長さを計算するカスタム ツールを利用します。これは、エージェントのプロンプト テンプレートを定義し、ツールを言語モデルにバインドし、入力を処理して中間ステップをフォーマットするエージェントを構築します。最後に、特定の入力でエージェントを呼び出す AgentExecutor を作成します。 「educa という単語は何文字か」という簡単な質問を渡し、出力を印刷するか、結果が見つからなかったかどうかを示します。
実行すると、次の結果が得られます:
> Entering new AgentExecutor chain... Invoking: `get_word_length` with `{'word': 'educa'}` 5The word "educa" has 5 letters. > Finished chain. [Output] --> The word "educa" has 5 letters.
エージェントがモデル (llama3.1) を使用してツールを正しく呼び出し、単語内の文字数を取得したことがわかります。
結論
読んでいただきありがとうございます。
ここで Ollama リポジトリを確認してください: https://github.com/ollama/ollama
以上がオープンソース モデル (llama) を使用して独自のカスタム LLM エージェントを作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...

風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの問題を解決する方法は?風光明媚なスポットコメントと分析を行っているとき、私たちはしばしばJieba Wordセグメンテーションツールを使用してテキストを処理します...

正規表現を使用して、最初の閉じたタグと停止に一致する方法は? HTMLまたは他のマークアップ言語を扱う場合、しばしば正規表現が必要です...


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

SublimeText3 中国語版
中国語版、とても使いやすい

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ホットトピック



