プログラミング

【Python】ChatGPTにLangChainでウェブサイトの内容を学習させる方法

この記事は約5分で読めます。

 

今回は【Python】ChatGPTにLangChainでウェブサイトの内容を学習させる方法について紹介したいと思います

 

前提

 

CHATGPTは汎用的な質問には強いですがエンタメや流行の話には最新のデータが逐次反映されているわけではないので、良い回答を得ることが難しいです。というわけで今回はCHATGPTが疎い芸能人の知識について学習させてみます

 

例に使用しているのは歌手の「あのちゃん」です。まずあのちゃんについて普通のCHATGPTに質問すると以下のような感じになります

 

前準備

 

まず今回の作業に必要なライブラリをインストールします

 

pip install langchain==0.0.145
pip install openai==0.27.8
pip install chromadb==0.3.26
pip install tiktoken==0.4.0
pip install unstructured==0.7.10

また、以下のように環境変数にOPEN AIのAPIキーを設定します

 

import os 
#APIキーの登録
os.environ["OPENAI_API_KEY"] = "..."

 

※OPEN AIのAPI鍵の取得方法などについては下記参照

関連記事:PythonでChatGPTとAPI経由で会話するサンプルコード

 

コード

 

import openai
# AIに送るメッセージ
msg = "あのちゃんのプロフィールと経歴を詳細に説明してください"
response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "user", "content": msg},
    ],
)

# 出力結果をプリント
print(response.choices[0]["message"]["content"].strip())

 

 

回答

申し訳ありませんが、”あのちゃん”という具体的な人物のプロフィールや経歴について詳細な情報を提供することはできません。正確な情報をお探しの場合は、具体的な名前や背景、活動分野など、より具体的な情報をご提供いただくことで、より具体的な回答をすることができます。

 

こんな感じでデフォルトのCHATGPTではあまり要領を得た回答を得ることができません

 

ChatGPTにLangChainでウェブサイトの内容を学習させる

 

というわけで本題なのですが、LangChainでウェブサイトの内容を学習させてみま。学習に使用しているURLには「あのちゃん」の経歴やプロフィールが記載されています

 

from langchain.document_loaders import UnstructuredURLLoader
from langchain.vectorstores import Chroma
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.indexes import VectorstoreIndexCreator
from langchain.text_splitter import CharacterTextSplitter

urls = [
    "https://yumeijinhensachi.com/archives/2202723",
    "https://jimmys-room.com/archives/2569",
    "https://ja.wikipedia.org/wiki/%E3%81%82%E3%81%AE"
]

loader = UnstructuredURLLoader(urls=urls)
print(loader.load())

text_splitter = CharacterTextSplitter(
    separator = "\n",
    chunk_size = 300,
    chunk_overlap = 0,
    length_function = len,
)

index = VectorstoreIndexCreator(
    vectorstore_cls=Chroma,
    embedding=OpenAIEmbeddings(),
    text_splitter=text_splitter,
).from_loaders([loader])

query = "あのちゃんのプロフィールと経歴を詳細に説明してください"
answer = index.query(query)
print(answer)

 

回答

あのちゃんは、9月4日生まれの165cmのA型の女性モデル・女優・タレントです。出身地は千葉県柏市で、小学校は不明ですが、中学校は柏市立酒井根中学校、高校は柏日体高校(中退)です。高校を中退した理由は不明ですが、普段の話し方や行動から「障害持ち」だと噂されていますが、実際は障害ではなく精神的に弱い部分があるのではないかと考えられます。

 

こんな感じで記事の内容を学習して回答が詳細になっていることがわかります

 

関連記事:【Python】ChatGPT+LangChainで、PDFドキュメントの内容をモデルに追加学習させる

 


プログラミング・スクレイピングツール作成の相談を受け付けています!

クラウドワークス・ココナラ・MENTAなどでPython・SQL・GASなどのプログラミングに関する相談やツール作成などを承っております!

過去の案件事例:

  • Twitter・インスタグラムの自動化ツール作成
  • ウェブサイトのスクレイピングサポート
  • ダッシュボード・サイト作成
  • データエンジニア転職相談

これまでの案件例を見る

キャリア相談もお気軽に!文系学部卒からエンジニア・データサイエンティストへの転職経験をもとに、未経験者がどう進むべきかのアドバイスを提供します。


スポンサーリンク
/* プログラミング速報関連記事一覧表示 */
ミナピピンの研究室

コメント

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