流行りのAIツールで質問botを作ってみた【GPT-4 ×LlamaIndex】|東京のWEB制作会社・ホームページ制作会社|株式会社GIG

流行りのAIツールで質問botを作ってみた【GPT-4 ×LlamaIndex】

2023-08-09 制作・開発

こんにちは、LeadGrid事業部でプロダクト開発をしている仁井田です。

昨今のAI(人工知能)ブームを受けて、私たちの日常生活やビジネスの世界において、AI活用の重要性はますます増しています。

本記事では、『GPT-4』と『LlamaIndex』という流行りのAIツールを活用して、学習させたPDFの内容について質問し、回答してくれるbotの作成方法をご紹介します。

GPT-4(ChatGPT)とは?

ChatGPTとは、簡単に言えばAIが人間のように会話をし、こちらの指示に応じたタスクを行ってくれるAIチャットサービスです。

たとえば、文章の要約や校正・添削、質問に対して回答することなど、得意不得意や精度の差はありますが、幅広いタスクをこなせます。

またChatGPTには、GPT(Generative Pre-trained Transformer)と呼ばれる言語モデルが使われており、2023年8月現在は「GPT-4」が最新版として公開されています。本記事ではGPT-4のAPIを活用していきます。


GPT-3.5 と GPT-4 はどう違う? 比較検証してみた|東京のWEB制作会社・ホームページ制作会社|株式会社GIG

giginc.co.jp

og_img

LlamaIndexとは?

ChatGPTは大規模なテキストデータを学習していますが、学習に含まれていない情報(学習後に出た情報や専門的な知識)に関しては知識が乏しいという問題があります。

たとえばiPhoneの最新モデルについて聞いてみましょう。

上記のように、2021年9月までの情報しか回答することができません。このように、特定の製品に対して質問できるbotを作ろうとしても、その製品に関する正確な情報を持っていない場合、適切な回答ができません。

そこで、LlamaIndexの登場です!

LlamaIndexは、自分の持っているデータや専門知識などの外部データをGPT(LLM=大規模言語モデル)に簡単に組み込めるライブラリ。テキストファイルやPDFなど、さまざまな外部データを組み込むことができます。

質問botを作ってみた

今回は誰でもブラウザ上で Python を記述、実行できる『Google Colab』を利用します。

まずは前準備で、OpenAIのAPIを利用するためのコードを用意します。

 import os
from google.colab import output

os.environ["OPENAI_API_KEY"] = input()

# API_KEYが出力されないようにする
output.clear()


次に、LlamaIndexを使用してPDFデータをベクターデータに変換します。

 from llama_index import download_loader

loader = download_loader("CJKPDFReader")
docs = loader().load_data(file="LEAD-2022-04-12-240523-075138.pdf")


最後に、ベクター化したデータを元に、質問内容を入力し回答してもらいます。

 from llama_index import GPTVectorStoreIndex, ServiceContext
from llama_index.llms import OpenAI

llm = OpenAI(model='gpt-4-0314', temperature=0, max_tokens=1024)
service_context = ServiceContext.from_defaults(llm=llm)
index = GPTVectorStoreIndex.from_documents(docs, service_context=service_context)

query_engine = index.as_query_engine()
query = "TANITAの体重計で、「乗るピタ(自動認識)機能」について教えてください。
"
response = query_engine.query(query)
print(response)


今回は、TANITAの体重計の説明書PDFについて、質問し適切に回答してもらえるかを検証します。

TANITAの体重計には「乗るピタ」という測定者を自動認識する機能があり、家族の誰のデータとして記録するかの判断を自動でおこなってくれます。

▲出典:TANITA

すでにコードのほうで、「TANITAの体重計で、『乗るピタ(自動認識)機能』について教えてください。」と質問する準備は整っているので、実際に実行してみた結果を見てみましょう。

【実行結果】

乗るピタ(自動認識)機能は、TANITAの体重計に搭載されている機能で、登録者の中から測定者を自動的に認識し、結果を表示する機能です。この機能により、個人を毎回指定する手間が省け、簡単に測定できます。ただし、体重や体型が近い人が測定した場合や、数日間測定せずに体重の変動があった場合など、誤認識することがあります。

間違っていることは言っておらず、説明内容も正しい情報が返ってきました。さらに、注意点までも加えて回答してくれるなんて、かなり優秀なAIですね!

高い精度の質問botも作成可能

今回の検証はここまでになりますが、たった数行のコードで簡単かつ精度が高い質問botが作れてしまい、驚きです! 皆さんも興味があれば、自分好みの質問botを作ってみて下さい!

株式会社GIGは、ナショナルクライアントからスタートアップまで、Webコンサルティング、UI/UXデザイン、システム開発など、DX支援をおこなうデジタルコンサルティング企業です。また、45,000人以上が登録するフリーランス・副業向けマッチングサービス『Workship』や、7,000人以上が登録するデザイナー特化エージェントサービス『クロスデザイナー』、リード獲得に必要な機能を備えたCMS『LeadGrid』、UXコンサルティングサービス『UX Design Lab』などを展開しています。

WebやDX支援のご相談はいつでもご連絡ください。

■株式会社GIG
お仕事のお問い合わせはこちら
会社紹介資料のダウンロードはこちら
採用応募はこちら(GIG採用サイト)
採用応募はこちら(Wantedly)


WebやDXの課題、お気軽にご相談ください。

仁井田 輝

バックエンドエンジニア。大学時代、画像認識を対象にした機械学習の研究やISP企業でネットワークエンジニアの仕事に携わる。卒業後、システムエンジニアとしてシステム開発に従事。Webサービスへの興味が高まり、2019年3月GIGにジョイン。