以åLlamaIndexã使ã£ã¦ãã¾ããã
LlamaIndexã§è³ªåãå ¥åããã¨ããããã©ã«ãã ã¨è±èªã®ããã³ãããæ··ãã£ã¦ãã¾ãã ããããã¹ã¦æ¥æ¬èªã§åããã¨ãã«ãã¤ãããæ¹ãå¿ãã¦ãã¾ãã®ã§ä»åã¯ãã®ã¡ã¢ã§ãã
è±èªã«ãªã£ã¦ãã¾ã£ã¦ããç®æ
ç¾èã¯ä¸è¦ã«å¦ãããã¨ãããã¨ã§ç¢ºèªãã¦ã¿ã¾ãããã
ãã®è¾ºã®ã³ã¼ãåããã¦ãlangfuseã®ç»é¢ãè¦ã¦ã¿ãã¨ãããªæãã«ãªã£ã¦ã¾ãã
ãããªæãã«ã質åã¨contextã®å¨è¾ºã®ç´°ããæ示ãè±èªã«ãªã£ã¦ãããå®ã¯è£ã§åãã¦ããããã³ããã¯ãããªæãã«ãªã£ã¦ããããã§ãã
対象ã³ã¼ãã¨ãã¦ã¯ãã®è¾ºãã§ããã
ããã ã¨ãChatGPTãçã§ä½¿ã£ã¦ããã¨ãã¨æ¯ãèããå¾®å¦ã«å¤ãã£ã¦ããããã²ã©ãã¨ãã«ã¯æ¥æ¬èªã§è³ªåãã¦ããã®ã«è±èªã§è¿çãè¿ãããããããã§ããï¼ãã®è¾ºã¯ããããã£ã¦ãªãï¼
ã¨ã«ãããæ¥æ¬èªã使ç¨ããæ³å®ã§ãããªãã°ãããã³ããã®ãã³ãã¬ã¼ããæ¥æ¬èªã«ãããããã§ãã
ã©ããç´ãã
ãããç´ãã¨ãã¯ã ããããã¡ãã®è¨äºãåèã«ãã¦ãããã¾ãã
ä¿®æ£ã¨ãã¦ã¯ãããªæãã«ãããããã§ãã
from llama_index.core.llms import ChatMessage, MessageRole from llama_index.core.prompts import ChatPromptTemplate # Text QA Prompt chat_text_qa_msgs = [ ChatMessage( role=MessageRole.SYSTEM, content="""ããªãã¯ä¸çä¸ã§ä¿¡é ¼ããã¦ããQAã·ã¹ãã ã§ãã äºåç¥èã§ã¯ãªãã常ã«æä¾ãããã³ã³ããã¹ãæ å ±ã使ç¨ãã¦ã¯ã¨ãªã«åçãã¦ãã ããã å¾ãã¹ãããã¤ãã®ã«ã¼ã«: 1. åçå ã§æå®ãããã³ã³ããã¹ããç´æ¥åç §ããªãã§ãã ããã 2. ãã³ã³ããã¹ãã«åºã¥ãã¦ã...ãããã³ã³ããã¹ãæ å ±ã¯...ããã¾ãã¯ããã«é¡ãããããªè¨è¿°ã¯é¿ãã¦ãã ããã""", ), ChatMessage( role=MessageRole.USER, content="""ã³ã³ããã¹ãæ å ±ã¯ä»¥ä¸ã®ã¨ããã§ãã --------------------- {context_str} --------------------- äºåç¥èã§ã¯ãªãã³ã³ããã¹ãæ å ±ãèæ ®ãã¦ãã¯ã¨ãªã«çãã¾ãã Query: {query_str} Answer: """ ), ] text_qa_template = ChatPromptTemplate(chat_text_qa_msgs) # Refine Prompt chat_refine_msgs = [ ChatMessage( role=MessageRole.SYSTEM, content="""ããªãã¯ä¸çä¸ã§ä¿¡é ¼ããã¦ããQAã·ã¹ãã ã§ãã äºåç¥èã§ã¯ãªãã常ã«æä¾ãããã³ã³ããã¹ãæ å ±ã使ç¨ãã¦ã¯ã¨ãªã«åçãã¦ãã ããã å¾ãã¹ãããã¤ãã®ã«ã¼ã«: 1. åçå ã§æå®ãããã³ã³ããã¹ããç´æ¥åç §ããªãã§ãã ããã 2. ãã³ã³ããã¹ãã«åºã¥ãã¦ã...ãããã³ã³ããã¹ãæ å ±ã¯...ããã¾ãã¯ããã«é¡ãããããªè¨è¿°ã¯é¿ãã¦ãã ããã""", ), ChatMessage( role=MessageRole.USER, content="""ããªãã¯ãæ¢åã®åçãæ¹è¯ããéã«2ã¤ã®ã¢ã¼ãã§å³å¯ã«åä½ããQAã·ã¹ãã ã®ã¨ãã¹ãã¼ãã§ãã 1. æ°ããã³ã³ããã¹ãã使ç¨ãã¦å ã®åçã**æ¸ãç´ã**ã 2. æ°ããã³ã³ããã¹ããå½¹ã«ç«ããªãå ´åã¯ãå ã®åçã**ç¹°ãè¿ã**ã åçå ã§å ã®åçãã³ã³ããã¹ããç´æ¥åç §ããªãã§ãã ããã çåãããå ´åã¯ãå ã®çããç¹°ãè¿ãã¦ãã ããã New Context: {context_msg} Query: {query_str} Original Answer: {existing_answer} New Answer: """ ), ] refine_template = ChatPromptTemplate(chat_refine_msgs)
æ´æ°ããããã³ãããã³ãã¬ã¼ããåæ ããã®ããå¿ããªãã
query_engine = vector_index.as_query_engine( text_qa_template=text_qa_template, # QAããã³ãããã³ãã¬ã¼ãã®è¨å® refine_template=refine_template # Refineããã³ãããã³ãã¬ã¼ãã®è¨å® )
ããã¨ãã¡ããã¨ãã¹ã¦æ¥æ¬èªã§ããã³ããã«ãªãã¾ããã æ¥æ¬èªåããã ãã§ãªããç´°ããå½ä»¤ãçµã¿è¾¼ãã§ãããããã¨ãããã®ã§ããããã£ãã¨ãã¯ãã®ããæ¹ãããã°è¯ãããã§ãã
å ¨ä½ã¨ãã¦ã¯ãããªæãã
ææ³
ã¨ãã«ãªãã