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

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

(5) ããã¥ã¡ã³ãã®èªã¿èŸŒã¿ã
from llama_index import SimpleDirectoryReader
# ããã¥ã¡ã³ãã®èªã¿èŸŒã¿
documents = SimpleDirectoryReader("data").load_data()(6) ã€ã³ããã¯ã¹ã®äœæã
ãã€ã³ããã¯ã¹ãã¯ãããã¥ã¡ã³ãã®æ
å ±ãä¿æããã¢ãžã¥ãŒã«ã§ããããã¥ã¡ã³ãããã£ã³ã¯ã«åå²ãããã£ã³ã¯æ¯ã«åã蟌ã¿ã«å€æããŠä¿æãŸãããã£ã³ã¯ã¯é¡äŒŒæ€çŽ¢ã®å¯Ÿè±¡ãšãªãããŒã¿åäœã«ãªããŸãã
from llama_index import VectorStoreIndex
# ã€ã³ããã¯ã¹ã®äœæ
index = VectorStoreIndex.from_documents(documents)DEBUG:llama_index.node_parser.node_utils:> Adding chunk: çµæãã³ã åŸè€ã²ãšãã¯åéãäœããªãé°ãã£ã§ãã€ãäžäººã§éãããŠããããäžåп代ã«ãã¬ãã®ã€...
DEBUG:llama_index.node_parser.node_utils:> Adding chunk: æåç¥ã©ã€ã å€äŒã¿ã«å
¥ããåŸè€ã²ãšãã¯ç¥ãåããå¢ããŠããããèªåããéã³ã«èªãããšãã§ã...
DEBUG:llama_index.node_parser.node_utils:> Adding chunk: ãã¢å¯©æ» æªç¢ºèªã©ã€ãªããã«åå ããããã«ã¯ããã¢å¯©æ»ããŠã§ãæç¥šãã©ã€ã審æ»ãééããŠãæ...
DEBUG:llama_index.node_parser.node_utils:> Adding chunk: åŸè€ã²ãšã(ããšãã²ãšã)...
DEBUG:llama_index.node_parser.node_utils:> Adding chunk: ç§è¯é«æ ¡ã«éã女åãæ¡è²ã®é«ªãç¡é äœã«äŒžã°ãããã€ããžã£ãŒãžã身ã«ã€ããŠãããèªä»å
±ã«èªããåŒ...
DEBUG:llama_index.node_parser.node_utils:> Adding chunk: ã°ãæŸé¡ã§å髪ã§ç®ãã€ãã«é ããŠãããããã«å ããŠéæ®ã£ãããžã£ãŒãžå§¿ã§ããããæ°ã¥ãããŠããª...
DEBUG:llama_index.node_parser.node_utils:> Adding chunk: äžåæ²¢é«æ ¡ã«éã女åãåŸè€ã²ãšããã1åŠå¹Žäžãã©ã€ãã€ãšããŒè²ã®é«ªããµã€ãããŒã«ã«ã»ããããæŽŸ...
DEBUG:llama_index.node_parser.node_utils:> Adding chunk: å±±ç°ãªã§ãŠ(ããŸã ããã) äžåæ²¢é«æ ¡ã«éã女åãåŸè€ã²ãšããã1åŠå¹Žäžãäžæ§çãªé°å²æ°ãæŒ...
DEBUG:llama_index.node_parser.node_utils:> Adding chunk: åå€é代(ããããã) ç§è¯é«æ ¡ã«éã女åãåŸè€ã²ãšããšã¯ååŠå¹ŽããŠã§ãŒãã®å
¥ã£ãèµ€ã髪ãã»...
DEBUG:llama_index.node_parser.node_utils:> Adding chunk: 廣äºããã(ã²ããããã) å®å掟ãµã€ã±ããªãã¯ããã¯ãã³ããSICKHACK(ã·ãã¯ããã¯...
DEBUG:llama_index.node_parser.node_utils:> Adding chunk: åŸè€ãµãã(ããšããµãã) åŸè€ã²ãšãã®åйã幎霢ã¯5æ³ãå§ãšã¯æ£å察ã®å€©ççæŒ«ïŒãããŸãïŒã§...
DEBUG:llama_index.node_parser.node_utils:> Adding chunk: å
ç°å¹œã
(ãã¡ã ãã) ã¡ã¿ã«ãã³ããSIDEROS(ã·ããã¹)ãã«æå±ããå°å¥³ãããŒã¹ãæ
...
DEBUG:llama_index.node_parser.node_utils:> Adding chunk: äœã
æšæ¬¡å(ãããã€ãã) ç§è¯é«æ ¡ã«éã3幎çã®å¥³åãé²çŽããåŸè€ã²ãšããšã¯ã©ã¹ã¡ãŒããšãªã...
DEBUG:llama_index.node_parser.node_utils:> Adding chunk: äœè€æå(ããšãããã) ããªãŒã©ã€ã¿ãŒãšããŠæŽ»åãã女æ§ããã³ããŒã ã¯ããœãããâ¥ãã¿ãã...
DEBUG:llama_index.node_parser.node_utils:> Adding chunk: ã²ãšãã®ç¶(ã²ãšãã®ã¡ã¡) åŸè€ã²ãšãã®ç¶èŠªãæ¬åã¯äžæã§ãçŽ é¡ããªããæ¯åæããããŠããªã...
DEBUG:llama_index.node_parser.node_utils:> Adding chunk: åç°é次é(ããã ããããã) ã©ã€ãããŠã¹ãFOLTãã®åºé·ãåããç·æ§ã幎霢ã¯37æ³ãèŠ...
DEBUG:llama_index.node_parser.node_utils:> Adding chunk: äžåæ²¢ã®ã©ã€ãããŠã¹ãSTARRY(ã¹ã¿ãŒãªãŒ)ãã®åºé·ãåãã女æ§ãèªçæ¥ãè¿ããŠ30æ³ã«ãª...
DEBUG:llama_index.node_parser.node_utils:> Adding chunk: ã®ã¿ãŒããŒã㌠åŸè€ã²ãšããåç»é
ä¿¡ã®éã«çšãããã³ãã«ããŒã ãã²ãšãã¯ãã®ã¿ãŒããŒããŒãã®...(7) ã¯ãšãªãšã³ãžã³ã®äœæã
ãã¯ãšãªãšã³ãžã³ãã¯ããŠãŒã¶ãŒå
¥å(ã¯ãšãª)ãšé¢é£ããæ
å ±ãã€ã³ããã¯ã¹ããååŸãããããããšã«å¿çãçæããã¢ãžã¥ãŒã«ã§ãã
# ã¯ãšãªãšã³ãžã³ã®äœæ
query_engine = index.as_query_engine()(8) 質åå¿çã
# 質åå¿ç
print(query_engine.query("ãŒã£ã¡ã¡ããã®åŸæãªæ¥œåšã¯ïŒ"))åŸè€ã²ãšãã®åŸæãªæ¥œåšã¯ã®ã¿ãŒã§ãã4. ã€ã³ããã¯ã¹ã®ä¿å
äœæããã€ã³ããã¯ã¹ã¯ä¿åããŠãããšã次åã«åäœæããå¿ èŠããªããªããŸãã
(1) ã€ã³ããã¯ã¹ã®ä¿åã
# ã€ã³ããã¯ã¹ã®ä¿å
index.storage_context.persist()(2) ã€ã³ããã¯ã¹ã®èªã¿èŸŒã¿ã
from llama_index import StorageContext, load_index_from_storage
# ã€ã³ããã¯ã¹ã®èªã¿èŸŒã¿
storage_context = StorageContext.from_defaults(persist_dir="./storage")
index = load_index_from_storage(storage_context)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) llama_hubããã±ãŒãžã®ã€ã³ã¹ããŒã«ã
!pip install llama_hub(3) ãµã³ãã«ã³ãŒããå ã«ãããã¥ã¡ã³ããèªã¿èŸŒãã
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'])(4) ã€ã³ããã¯ã¹ãšã¯ãšãªãšã³ãžã³ã®äœæãÂ
from llama_index import VectorStoreIndex
# ã€ã³ããã¯ã¹ã®äœæ
index = VectorStoreIndex.from_documents(documents)
# ã¯ãšãªãšã³ãžã³ã®äœæ
query_engine = index.as_query_engine()(5) 質åå¿çã
æ¥æ¬èªã§çããŠãããªãæã¯ããæ¥æ¬èªã§çããŠããã€ãããšè¯ãã§ãã
# 質åå¿ç
print(query_engine.query("ãã®åç»ã§äŒãããããšã¯ãªãã§ããïŒæ¥æ¬èªã§çããŠ"))ãã®åç»ã§ã¯ããªãŒãã³AIã®CLIPã䜿çšããŠãç»ååé¡ããªããžã§ã¯ãããŒã«ãªãŒãŒã·ã§ã³ããªããžã§ã¯ãæ€åºããŒãã·ã§ããã§è¡ãæ¹æ³ã玹ä»ããŠããŸãããŸãããããã®ã¿ã¹ã¯ãåãæ¿ããããã«ã¢ãã«ã埮調æŽããå¿
èŠããªãããšã瀺ããŠããŸããããã«ãã¹ã³ã¢ãèšç®ããç»åå
šäœã®å¹³åãåãããããçŸåšã®ã¹ã³ã¢ããåŒãããšã§ãäœãã¹ã³ã¢ããŒãã«ã¯ãªããããæ¹æ³ã玹ä»ããŠããŸããããã«ãããããè¯ãããŒã«ãªãŒãŒã·6. ããã¿ãšã«ã¹ã¿ãã€ãº
ãLlamaIndex v0.7ãã¯ãã¥ãŒããªã¢ã«ã¬ãã«ã®äœ¿ãæ¹ã¯v0.6ãšåãã§ãããå
éšã®ããã¿ãšã«ã¹ã¿ãã€ãºæ¹æ³ã¯å€æŽããããŸããã
詳ããã¯ã次ã®èšäºãåç
§ã