この投稿では、Llama2 モデルを使用して Excel データをインテリジェントにクエリするチャットボットを構築する方法を説明します。
私たちが構築しているもの
- Excel ファイルをロードします。
- データを管理可能なチャンクに分割します。
- 高速検索のためにデータをベクトル データベースに保存します。
- ローカルの Llama2 モデルを使用して、 Excel ファイルの内容。
前提条件:
Python (≥ 3.8)
ライブラリ: langchain、pandas、非構造化、Chroma
ステップ 1: 依存関係をインストールする
%pip install -q unstructured langchain %pip install -q "unstructured[all-docs]"
ステップ 2: Excel ファイルをロードする
import pandas as pd excel_path = "Book2.xlsx" if excel_path: df = pd.read_excel(excel_path) data = df.to_string(index=False) else: print("Upload an Excel file")
ステップ 3: データをチャンクして Vector データベースに保存する
大きなテキスト データは、効果的な埋め込みとクエリのために、重複する小さなチャンクに分割されます。これらのチャンクは Chroma ベクトル データベースに保存されます。
from langchain_text_splitters import RecursiveCharacterTextSplitter from langchain_community.embeddings import OllamaEmbeddings from langchain_community.vectorstores import Chroma text_splitter = RecursiveCharacterTextSplitter(chunk_size=7500, chunk_overlap=100) chunks = text_splitter.split_text(data) embedding_model = OllamaEmbeddings(model="nomic-embed-text", show_progress=False) vector_db = Chroma.from_texts( texts=chunks, embedding=embedding_model, collection_name="local-rag" )
ステップ 4: Llama2 モデルを初期化する
ChatOllama を使用して Llama2 モデルをローカルにロードします。
from langchain_community.chat_models import ChatOllama local_model = "llama2" llm = ChatOllama(model=local_model)
ステップ 5: クエリ プロンプトを作成する
チャットボットは Excel ファイルの特定の列名に基づいて応答します。モデルをガイドするプロンプト テンプレートを作成します
from langchain.prompts import PromptTemplate QUERY_PROMPT = PromptTemplate( input_variables=["question"], template="""You are an AI assistant. Answer the user's questions based on the column names: Id, order_id, name, sales, refund, and status. Original question: {question}""" )
ステップ 6: レトリバーをセットアップする
ベクター データベースから関連するチャンクを取得するように取得プログラムを構成します。これは、質問に答えるために Llama2 モデルによって使用されます。
from langchain.retrievers.multi_query import MultiQueryRetriever retriever = MultiQueryRetriever.from_llm( vector_db.as_retriever(), llm, prompt=QUERY_PROMPT )
ステップ 7: 応答チェーンを構築する
応答チェーンには以下が統合されます:
- コンテキストを取得する取得者。
- 質問とコンテキストをフォーマットするためのプロンプト。
- 回答を生成する Llama2 モデル。
- 応答をフォーマットするための出力パーサー。
from langchain.prompts import ChatPromptTemplate from langchain_core.runnables import RunnablePassthrough from langchain_core.output_parsers import StrOutputParser template = """Answer the question based ONLY on the following context: {context} Question: {question} """ prompt = ChatPromptTemplate.from_template(template) chain = ( {"context": retriever, "question": RunnablePassthrough()} | prompt | llm | StrOutputParser() )
ステップ 8: 質問する
さあ、質問する準備ができました。チェーンを呼び出して応答を取得する方法は次のとおりです:
raw_result = chain.invoke("How many rows are there?") final_result = f"{raw_result}\n\nIf you have more questions, feel free to ask!" print(final_result)
サンプル出力
サンプル Excel ファイルで上記のコードを実行すると、次の結果が得られました:
Based on the provided context, there are 10 rows in the table. If you have more questions, feel free to ask!
結論:
このアプローチでは、埋め込みと Llama2 モデルの力を利用して、Excel データ用のスマートで対話型のチャットボットを作成します。いくつかの調整を行うことで、これを拡張して他のタイプのドキュメントを操作したり、本格的なアプリに統合したりできます!
LinkedIn で UI を使用した動作例を確認してください。
BChat Excel のご紹介: Excel ファイル対話用の会話型 AI 搭載ツール
以上がExcel を使用した LlamaChat を使用したシンプルなチャットボットの構築]の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

forhandlinglaredataSetsinpython、usenumpyArrays forbetterperformance.1)numpyarraysarememory-effictientandfasterfornumericaloperations.2)nusinnnnedarytypeconversions.3)レバレッジベクトル化は、測定済みのマネージメーシェイメージーウェイズデイタイです

inpython、listsusedynamicmemoryallocation with allocation、whilenumpyArraysalocatefixedmemory.1)listsallocatemorememorythanneededededinitivative.2)numpyArrayasallocateexactmemoryforements、rededicablebutlessflexibilityを提供します。

inpython、youcanspecthedatatypeyfelemeremodelernspant.1)usenpynernrump.1)usenpynerp.dloatp.ploatm64、フォーマーpreciscontrolatatypes。

numpyisessentialfornumericalcomputinginpythonduetoitsspeed、memory efficiency、andcomprehensivematicalfunctions.1)それは、performsoperations.2)numpyArraysaremoremory-efficientthanpythonlists.3)Itofderangeofmathematicaloperty

contiguousMemoryAllocationisucial forArraysは、ForeffienceAndfastelementAccess.1)iteenablesConstantTimeAccess、O(1)、DuetodirectAddresscalculation.2)itemprovesefficiencyByAllowingMultiblementFechesperCacheLine.3)itimplifieMememm

slicingapythonlistisdoneusingtheyntaxlist [start:stop:step] .hore'showitworks:1)startisthe indexofthefirstelementtoinclude.2)spotisthe indexofthefirmenttoeexclude.3)staptistheincrementbetbetinelements

numpyallows forvariousoperationsonarrays:1)basicarithmeticlikeaddition、減算、乗算、および分割; 2)AdvancedperationssuchasmatrixMultiplication;

Arraysinpython、特にnumpyandpandas、aresentialfordataanalysis、offeringspeedandeficiency.1)numpyarraysenable numpyarraysenable handling forlaredatasents andcomplexoperationslikemoverages.2)Pandasextendsnumpy'scapabivitieswithdataframesfortruc


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

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

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









