
LlamaIndex v0.5 ã¯ã€ãã¯ã¹ã¿ãŒãã¬ã€ã
ãGPT IndexãããLlamaIndexãã«ãªãã©ã³ãã£ã³ã°ãããŸããã
ã»LlamaIndex v0.5.12
ãææ°çã®æ å ±ã¯ä»¥äžã§ç޹ä»ã
1. LlamaIndex
ãLlamaIndexãã¯ãå°éç¥èãå¿ èŠãšãã質åå¿çãã£ããããããç°¡åã«äœæã§ããã©ã€ãã©ãªã§ããåæ§ã®ãã£ãããããã¯ãLangChainãã§ãäœæã§ããŸããããLlamaIndexãã¯ãã³ãŒãæ°è¡ã§å®æããŠãæè»œãªã®ãç¹åŸŽã«ãªããŸãã
2. ããã¥ã¡ã³ãã®æºå
ã¯ããã«ããã£ãããããã«æããå°éç¥èãèšè¿°ããããã¥ã¡ã³ããçšæããŸãã
ä»åã¯ããã³ã¬ããã£ã¢ã®ããŒã£ã¡ã»ãã»ãã£ãïŒãã®ããããã®ããã¥ã¡ã³ããçšæããŸããã
ã»bocchi.txt

3. Colabã§ã®å®è¡
Google Colabã§ã®å®è¡æé ã¯ã次ã®ãšããã§ãã
(1) ããã±ãŒãžã®ã€ã³ã¹ããŒã«ã
# ããã±ãŒãžã®ã€ã³ã¹ããŒã«
!pip install llama-index==0.5(2) ç°å¢å€æ°ã®æºåã
以äžã®ã³ãŒãã® <OpenAI_APIã®ããŒã¯ã³> ã«ã¯OpenAI APIã®ããŒã¯ã³ãæå®ããŸãã(ææ)
import os
os.environ["OPENAI_API_KEY"] = "<OpenAI_APIã®ããŒã¯ã³>"(3) ãã°ã¬ãã«ã®èšå®ã
ãã°ã¬ãã«ãINFOã«èšå®ããŸãã
import logging
import sys
# ãã°ã¬ãã«ã®èšå®
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG, force=True)ã»DEBUG : ãããã°æ å ±ã®åºåã
ã»INFO : æ³å®éãã®ããšãçºçã
ã»WARNING : æ³å®å€ã®ããšãçºçã
ã»ERROR : æ©èœãå®è¡ã§ããªãã
(4) Colabã«dataãã©ã«ããäœæããŠããã¥ã¡ã³ããé
眮ã
巊端ã®ãã©ã«ãã¢ã€ã³ã³ã§ãã¡ã€ã«äžèЧã衚瀺ããå³ã¯ãªãã¯ãæ°ãããã©ã«ããã§dataãã©ã«ããäœæããããã¥ã¡ã³ãããã©ãã°&ããããããŸãã

(5) ã€ã³ããã¯ã¹ã®äœæã
ããã¥ã¡ã³ãããã£ã³ã¯ã«åå²ãããã£ã³ã¯æ¯ã«åã蟌ã¿ã«å€æããŸãã
ãã£ã³ã¯ã¯é¡äŒŒæ€çŽ¢ã®å¯Ÿè±¡ãšãªãããŒã¿åäœã§ããããã©ã«ãã§ã¯ãã\n\nãã§åå²ããåŸãããã³ããã«åãŸããµã€ãºã§çµåããŠãçæããŸãã
from llama_index import GPTSimpleVectorIndex, SimpleDirectoryReader
# ã€ã³ããã¯ã¹ã®äœæ
documents = SimpleDirectoryReader("data").load_data()
index = GPTSimpleVectorIndex.from_documents(documents)INFO:root:> [build_index_from_documents] Total LLM token usage: 0 tokens
> [build_index_from_documents] Total LLM token usage: 0 tokens
INFO:root:> [build_index_from_documents] Total embedding token usage: 14646 tokens
> [build_index_from_documents] Total embedding token usage: 14646 tokens䜿çšãããLLMãšåã蟌ã¿ã®ããŒã¯ã³æ°ãæ å ±ãšããŠåºåãããŸãã
(5) 質åå¿çã
# 質åå¿ç
print(index.query("ãŒã£ã¡ã¡ããã®åŸæãªæ¥œåšã¯ïŒ"))ãŒã£ã¡ã¡ããã®åŸæãªæ¥œåšã¯ã®ã¿ãŒã§ãã# 質åå¿ç
print(index.query("ãŒã£ã¡ã¡ããã«ã€ããŠã©ãæãïŒ"))ãŒã£ã¡ã¡ããã¯ã人èŠç¥ããªæ§æ Œã§èç
ãªåŸè€ã²ãšãã®ããšãæããŠããããã§ããåŸè€ã²ãšãã¯ãæ¿èªæ¬²æ±ã匷ããäººãšæ¥ããã®ãèŠæãªäžé¢ããããŸãããã®ã¿ãŒã®è
åã¯ããçŽã§ãæåç¥ã§ã¯ã¢ããªãã§ããã«ããã¯å¥æ³ãè¡ããã©ã€ããæåã«å°ãããšããåªããæèœãæã£ãŠããŸãããããªåŸè€ã²ãšããããŒã£ã¡ã¡ããããšåŒã¶ã®ã¯ã圌女ã®ããšã倧åã«æã£ãŠããããã ãšæããŸãããã# 質åå¿ç
print(index.query("åå€ã¡ããã®äžçªäžã®è¯ãåéã¯ïŒ"))åå€é代ã®äžçªäžã®è¯ãåéã¯ãåŸè€ã²ãšãã§ãããšæãããŸããåŸè€ã²ãšããšã¯ååŠå¹Žã§ããã瀟亀çãªæ§æ ŒãããŠããåå€é代ãšã¯æ£å察ã§èŠé ããããåéãå€ããšããããšãããåå€é代ã®äžçªäžã®è¯ãåéãšããŠåŸè€ã²ãšããæããããã§ãããã4. ã€ã³ããã¯ã¹ã®ä¿å
äœæããã€ã³ããã¯ã¹ã¯ä¿åããŠãããšã次åã«åäœæããå¿ èŠããªããªããŸãã
(1) ã€ã³ããã¯ã¹ã®ä¿åã
# ã€ã³ããã¯ã¹ã®ä¿å
index.save_to_disk("index.json")(2) ã€ã³ããã¯ã¹ã®èªã¿èŸŒã¿ã
# ã€ã³ããã¯ã¹ã®èªã¿èŸŒã¿
index = GPTSimpleVectorIndex.load_from_disk("index.json")5. LlamaHub
ãLlamaIndexããããã¥ã¡ã³ããšããŠèªã¿èŸŒããã®ã¯ãããã¹ãã ãã§ã¯ãããŸããããLlamaHubãã§æäŸããŠããããŒã¿ã³ãã¯ã¿ãå©çšããããšã§ãããŸããŸãªãã¡ã€ã« (PDFãePubãWordãPowerPointãAudioãªã©) ãWebãµãŒãã¹ (TwitterãSlackãWikipediaãªã©) ãããã¥ã¡ã³ãã®ããŒã¿ãœãŒã¹ãšããŠå©çšã§ããŸãã
ä»åã¯ããFast Zero Shot Object Detection with OpenAI CLIPãã®Youtubeåç»ã«ã€ããŠLlamaIndexã§è³ªåå¿çããŠã¿ãŸãã
(1) ãLlamaHubãã§ç®çã®ããŒã¿ã³ãã¯ã¿ãæ¢ãã
ä»åã¯ããyoutube_transcriptããã¯ãªãã¯ããŸãã

(2) ãµã³ãã«ã³ãŒããå ã«ãããã¥ã¡ã³ããèªã¿èŸŒãã

from llama_index import download_loader
YoutubeTranscriptReader = download_loader("YoutubeTranscriptReader")
loader = YoutubeTranscriptReader()
documents = loader.load_data(ytlinks=['https://www.youtube.com/watch?v=i3OYlaoj-BM'])(3) ã€ã³ããã¯ã¹ã®äœæãÂ
from llama_index import GPTSimpleVectorIndex, SimpleDirectoryReader
# ã€ã³ããã¯ã¹ã®äœæ
index = GPTSimpleVectorIndex(documents)(4) 質åå¿çã
æ¥æ¬èªã§çããŠãããªãæã¯ããæ¥æ¬èªã§çããŠããã€ãããšè¯ãã§ãã
# 質åå¿ç
print(index.query("ãã®åç»ã§äŒãããããšã¯ãªãã§ããïŒæ¥æ¬èªã§çããŠ"))ãã®åç»ã§ã¯ããªãŒãã³AIã®CLIPã䜿çšããŠãç»ååé¡ããªããžã§ã¯ãããŒã«ãªãŒãŒã·ã§ã³ããªããžã§ã¯ãæ€åºããŒãã·ã§ããã§è¡ãæ¹æ³ã玹ä»ããŠããŸãããŸãããããã®ã¿ã¹ã¯ãåãæ¿ããããã«ã¢ãã«ã埮調æŽããå¿
èŠããªãããšã瀺ããŠããŸããããã«ãã¹ã³ã¢ãèšç®ããç»åå
šäœã®å¹³åãåãããããçŸåšã®ã¹ã³ã¢ããåŒãããšã§ãäœãã¹ã³ã¢ããŒãã«ã¯ãªããããæ¹æ³ã玹ä»ããŠããŸããããã«ãããããè¯ãããŒã«ãªãŒãŒã·