LlamaIndex ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು: ಶೂನ್ಯದಿಂದ ಉತ್ಪಾದನೆಗೆ ಪ್ರಾಯೋಗಿಕ ಮಾರ್ಗದರ್ಶಿ
ನೀವು ಎಂದಾದರೂ retrieval-augmented generation (RAG) ಅಪ್ಲಿಕೇಶನ್ ನಿರ್ಮಿಸಲು ಪ್ರಯತ್ನಿಸಿ “ಎಂಬೆಡ್ಡಿಂಗ್ಸ್, ವೆಕ್ಟರ್ ಸ್ಟೋರ್ಸ್ ಮತ್ತು ಪ್ರಾಂಪ್ಟ್ಗಳನ್ನು ಸಂಪರ್ಕಿಸುವುದು ಏಕೆ ಇಷ್ಟು ಕಷ್ಟ?” ಎಂದು ಯೋಚಿಸಿದ್ದರೆ, ನೀವು ಒಬ್ಬರಲ್ಲ. LlamaIndex ಆ ಪೈಪ್ಲೈನ್ ಅನ್ನು ವೇಗವಾಗಿ, ಸೂಕ್ತವಾಗಿ ಮತ್ತು ಉತ್ಪಾದನೆಗೆ ಸಿದ್ಧವಾಗಿಸುವುದಕ್ಕೆ ಇದೆ. ಈ ಪ್ರಾಯೋಗಿಕ, ಪರಿಹಾರ-ಕೇಂದ್ರಿತ ಮಾರ್ಗದರ್ಶಿಯಲ್ಲಿ, ನಾವು LlamaIndex ಅನ್ನು ಪೂರ್ಣವಾಗಿ ಹೇಗೆ ಬಳಸುವುದು ಎಂಬುದನ್ನು — ಡೇಟಾ ಇಂಜೆಕ್ಷನ್, ಇಂಡೆಕ್ಸಿಂಗ್, ಕ್ವೆರಿಂಗ್, ಮೌಲ್ಯಮಾಪನ ಮತ್ತು ನಿಯೋಜನೆ — ಹಂತ ಹಂತವಾಗಿ ತಿಳಿಸುವೆವು, ಆದ್ದರಿಂದ ನೀವು ಗ್ಲೂ ಕೋಡ್ನಲ್ಲಿ ಕಳೆದು ಹೋಗದೆ ವಿಶ್ವಾಸಾರ್ಹವಾದ ಏನನ್ನಾದರೂ ರವಾನಿಸಬಹುದು.
ನಾವು ಪ್ರಶ್ನೆ-ಆಧಾರಿತ ರಚನೆ, ಕ್ರಮೇಣ ಹಂತಗಳು, ಚಾಲನೆಗೆ ಸಿದ್ಧವಾದ ಸ್ಫೂರ್ತಿದಾಯಕ ಉದಾಹರಣೆಗಳು ಮತ್ತು ನೈಜ ಜಗತ್ತಿನ ಸಲಹೆಗಳೊಂದಿಗೆ ಮುಂದೆ ಸಾಗುತ್ತೇವೆ. ನೀವು ಆಂತರಿಕ ಡಾಕ್ಯುಮೆಂಟ್ಗಳಿಗೆ ಚಾಟ್ಬಾಟ್ ಪ್ರೋಟೋಟೈಪ್ ಮಾಡುತ್ತಿದ್ದೀರಾ ಅಥವಾ ಗ್ರಾಹಕರಿಗೆ ಜ್ಞಾನ ಸಹಾಯಕ ನಿಯೋಜಿಸುತ್ತಿದ್ದೀರಾ, LlamaIndex ಅನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಬಳಸುವುದು ನಿಮಗೆ ದಿನಗಳನ್ನು ಉಳಿಸುವುದು ಖಚಿತ.
: LlamaIndex ಒಂದು ಫ್ರೇಮ್ವರ್ಕ್ ಆಗಿದ್ದು, ನಿಮ್ಮ ಡೇಟಾವನ್ನು ದೊಡ್ಡ ಭಾಷಾ ಮಾದರಿಗಳಿಗೆ ಸಂಪರ್ಕಿಸಲು ಇಂಡೆಕ್ಸಿಂಗ್, ರಿಟ್ರೀವಲ್ ಮತ್ತು ಸಂಯೋಜನಾ ಸಾಧನಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ — RAG, ಏಜೆಂಟ್ಸ್ ಮತ್ತು ರಚನೆಗೊಳಿಸಿದ ಔಟ್ಪುಟ್ಗಳಿಗೆ ಸೂಕ್ತವಾಗಿದೆ.
LlamaIndex ಎಂದರೆ ಏನು ಮತ್ತು ಅದನ್ನು ಯಾಕೆ ಬಳಸಬೇಕು?
- LlamaIndex ಒಂದು LLM ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗಾಗಿ ಡೇಟಾ ಫ್ರೇಮ್ವರ್ಕ್. ಇದು ಕೆಳಗಿನ ಬಿಲ್ಡಿಂಗ್ ಬ್ಲಾಕ್ಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ:
- ಇಂಜೆಕ್ಷನ್: ಫೈಲ್ಗಳು, ವೆಬ್ಪೇಜ್ಗಳು, ಡೇಟಾಬೇಸ್ಗಳು ಮತ್ತು API ಗಳನ್ನು ಲೋಡ್ ಮಾಡುವುದು.
- ಚಂಕಿಂಗ್ ಮತ್ತು ಇಂಡೆಕ್ಸಿಂಗ್: ಕಚ್ಚಾ ವಿಷಯವನ್ನು ಪ್ರಶ್ನೆ ಮಾಡಲು ಅನುಕೂಲಕರವಾದ ರಚನೆಗಳಾಗಿ (ವೆಕ್ಟರ್, ಕೀವರ್ಡ್, ಗ್ರಾಫ್ ಇಂಡೆಕ್ಸ್ಗಳು) ಪರಿವರ್ತಿಸುವುದು.
- ರಿಟ್ರೀವಲ್: ಲವಚಿಕ ತಂತ್ರಗಳನ್ನು ಬಳಸಿಕೊಂಡು (BM25, ಹೈಬ್ರಿಡ್, ರೀರೆಂಕಿಂಗ್) ಸಂದರ್ಭದಲ್ಲಿ ತಲುಪಿಸುವುದು.
- ಕ್ವೆರೀ ಎಂಜಿನ್ಸ್ ಮತ್ತು ಏಜೆಂಟ್ಸ್: ರಿಟ್ರೀವಲ್, ಸಾಧನಗಳು ಮತ್ತು ಪ್ರಾಂಪ್ಟ್ಗಳನ್ನು ಸಮನ್ವಯಗೊಳಿಸಿ ಸಮಗ್ರ ಪ್ರಶ್ನೋತ್ತರ ಅನುಭವವನ್ನು ರಚಿಸುವುದು.
- ಮೌಲ್ಯಮಾಪನ ಮತ್ತು ಮೇಲ್ವಿಚಾರಣೆ: ರಿಟ್ರೀವಲ್ ಗುಣಮಟ್ಟ ಮತ್ತು ಉತ್ತರ ಸಂಬಂಧಿತತೆಯನ್ನು ನಿರ್ಣಯಿಸುವುದು.
- LlamaIndex ಅನ್ನು ಯಾವಾಗ ಬಳಸಬೇಕು:
- ನೀವು ಚಂಕಿಂಗ್, ಎಂಬೆಡ್ಡಿಂಗ್ಸ್ ಮತ್ತು ರಿಟ್ರೀವಲ್ ಅನ್ನು ಮರುಕಲ್ಪನೆ ಮಾಡದೆ ಬಲವಾದ RAG ಸ್ಟ್ಯಾಕ್ ಬೇಕಾದಾಗ.
- ನೀವು ಹಲವಾರು ಡೇಟಾ ಮೂಲಗಳನ್ನು (PDFಗಳು + Notion + SQL) ಸಂಯೋಜಿಸಬೇಕಾಗಿದ್ದಾಗ.
- ನೀವು ಹೈಬ್ರಿಡ್ ರಿಟ್ರೀವಲ್, ರೀರೆಂಕಿಂಗ್ ಅಥವಾ ರಚನೆಗೊಳಿಸಿದ ಔಟ್ಪುಟ್ಗಳೊಂದಿಗೆ ಪ್ರಯೋಗ ಮಾಡಬೇಕಾಗಿದ್ದಾಗ.
- ಮೂಲ ಮಾನಸಿಕ ಮಾದರಿ LlamaIndex ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಕಲಿಯುವಾಗ:
- ಡೇಟಾ → ನೋಡ್ಸ್ → ಇಂಡೆಕ್ಸ್ → ರಿಟ್ರೀವರ್ → ಕ್ವೆರೀ ಎಂಜಿನ್ → ಅಪ್ಲಿಕೇಶನ್
ತ್ವರಿತ ಪ್ರಾರಂಭ: ಕನಿಷ್ಠ RAG ಲೂಪ್
ಈದು ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಪ್ರೋಟೋಟೈಪ್ಗೆ ವೇಗವಾದ ಮಾರ್ಗ. ನಾವು ಡಾಕ್ಯುಮೆಂಟ್ಗಳನ್ನು ಲೋಡ್ ಮಾಡಿ, ವೆಕ್ಟರ್ ಇಂಡೆಕ್ಸನ್ನು ನಿರ್ಮಿಸಿ, ಮತ್ತು ಪ್ರಶ್ನೆಗಳನ್ನು ಕೇಳುತ್ತೇವೆ.
# 1) ಸ್ಥಾಪನೆ
# pip install llama-index llama-index-embeddings-openai llama-index-llms-openai
import os
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_index.embeddings.openai import OpenAIEmbedding
from llama_index.llms.openai import OpenAI
# 2) ನಿಮ್ಮ ಮಾದರಿ ಮತ್ತು ಎಂಬೆಡ್ಡಿಂಗ್ಸ್ ಕಾನ್ಫಿಗರ್ ಮಾಡಿ
os.environ["OPENAI_API_KEY"] = "YOUR_KEY" # ಅಥವಾ ಯಾವುದೇ ಬೆಂಬಲಿತ LLM/embedding ಪೂರೈಕೆದಾರ ಬಳಸಿ
llm = OpenAI(model="gpt-4o-mini")
embed_model = OpenAIEmbedding(model="text-embedding-3-small")
# 3) ಡಾಕ್ಯುಮೆಂಟ್ಗಳನ್ನು ಲೋಡ್ ಮಾಡಿ (ಉದಾ., ./data/*.pdf, .md, .txt)
docs = SimpleDirectoryReader("./data").load_data
# 4) ಇಂಡೆಕ್ಸ್ ನಿರ್ಮಿಸಿ
index = VectorStoreIndex.from_documents(docs, embed_model=embed_model)
# 5) ಕ್ವೆರೀ ಎಂಜಿನ್ ಸೃಷ್ಟಿಸಿ ಮತ್ತು ಪ್ರಶ್ನೆ ಕೇಳಿ
query_engine = index.as_query_engine(llm=llm)
response = query_engine.query("ಡಾಕ್ಯುಮೆಂಟ್ಗಳಲ್ಲಿ ಉಲ್ಲೇಖಿಸಲಾದ ಪ್ರಮುಖ ಭದ್ರತಾ ಅಭ್ಯಾಸಗಳು ಯಾವುವು?")
print(response)
ಅದು ಮೂಲಭೂತ. ಇಲ್ಲಿ ನಿಜವಾದ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಉತ್ತಮ ಚಂಕಿಂಗ್, ರೀರೆಂಕಿಂಗ್, ರಚನೆಗೊಳಿಸಿದ ಪ್ರಾಂಪ್ಟ್ಗಳು ಮತ್ತು ಮೇಲ್ವಿಚಾರಣೆಯನ್ನು ಸೇರಿಸುತ್ತವೆ.
ಇಂಜೆಕ್ಷನ್: ನಿಮ್ಮ ಸ್ವಂತ ಡೇಟಾವನ್ನು ಸರಿಯಾದ ರೀತಿಯಲ್ಲಿ ತರಿಸಿ
ನೀವು ನಿಜವಾದ ಡೇಟಾಿಗಾಗಿ LlamaIndex ಅನ್ನು ಹೇಗೆ ಬಳಸಬೇಕೆಂದು ನಿರ್ಧರಿಸುವಾಗ, ನಿಮ್ಮ ಮೂಲಗಳಿಗೆ ಹೊಂದಿಕೊಂಡ ಲೋಡರ್ಗಳನ್ನು ಆರಿಸಿ ಮತ್ತು ರಚನೆಯನ್ನು ಉಳಿಸಿ.
- ಫೈಲ್ಗಳು:
SimpleDirectoryReader, PDF/HTML/Markdown ರೀಡರ್ಗಳು
- ವೆಬ್:
BeautifulSoupWebReader, ಸೈಟ್ಮ್ಯಾಪ್ ರೀಡರ್ಗಳು
- SaaS: Notion, Confluence, Slack, Google Drive (ಕನೆಕ್ಟರ್ಗಳ ಮೂಲಕ)
- ಡೇಟಾಬೇಸ್ಗಳು: SQL ಮತ್ತು ವೆಕ್ಟರ್ ಡಿಬಿಗಳು (Pinecone, Weaviate, Chroma, Elasticsearch)
- ಸಲಹೆ: ಮೆಟಾಡೇಟಾ (ಶೀರ್ಷಿಕೆ, ಲೇಖಕ, URL, ರಚನೆಯ ದಿನಾಂಕ) ನಾರ್ಮಲೈಸ್ ಮಾಡಿ. ಉತ್ತಮ ಮೆಟಾಡೇಟಾ ನಂತರ ರೀರೆಂಕಿಂಗ್ ಮತ್ತು ಫಿಲ್ಟರಿಂಗ್ಗೆ ಶಕ್ತಿ ನೀಡುತ್ತದೆ.
from llama_index.core import SimpleDirectoryReader
from llama_index.readers.web import SimpleWebPageReader
file_docs = SimpleDirectoryReader("./policies").load_data
web_docs = SimpleWebPageReader(html_to_text=True).load_data
all_docs = file_docs + web_docs
ಚಂಕಿಂಗ್ ಮತ್ತು ನೋಡ್ ಪಾರ್ಸರ್ಗಳು: ತಪ್ಪು ಇನ್ಪುಟ್, ತಪ್ಪು ಔಟ್ಪುಟ್
LlamaIndex ಅನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಬಳಸಲು ಚಂಕಿಂಗ್ ಸರಿಯಾಗಿರುವುದು ಅತ್ಯಂತ ಪ್ರಮುಖ ಹಂತಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ.
- ಚಂಕಿಂಗ್ ಮಹತ್ವ: ತುಂಬಾ ದೊಡ್ಡದಾದರೆ → ಟೋಕನ್ ಹೆಚ್ಚಳ ಮತ್ತು ಅಸಂಬಂಧಿತ ರಿಟ್ರೀವಲ್. ತುಂಬಾ ಸಣ್ಣದಾದರೆ → ಸಂದರ್ಭ ವಿಭಜನೆ.
- ಡೀಫಾಲ್ಟ್ಗಳು: ಅನೇಕ ಪ್ರಕರಣಗಳಿಗೆ ಯುಕ್ತ, ಆದರೆ ನಿಮ್ಮ ವಿಷಯ ಪ್ರಕಾರಕ್ಕೆ ಹೊಂದಿಸಿ.
- ತಾಂತ್ರಿಕ ಡಾಕ್ಯುಮೆಂಟ್ಗಳು: 512–1024 ಟೋಕನ್ ಚಂಕ್ಗಳು 10–20% ಓವರ್ಲ್ಯಾಪ್ ಜೊತೆ.
- FAQಗಳು: ಚಿಕ್ಕ ಚಂಕ್ಗಳು (256–512) ಪ್ರಶ್ನೆ/ಉತ್ತರ ಜೋಡಿಗಳನ್ನು ಉಳಿಸಲು.
- ಕಾನೂನು/ನೀತಿ: ದೊಡ್ಡ ಚಂಕ್ಗಳು (1024–1536) ವ್ಯಾಖ್ಯಾನಗಳು ಮತ್ತು ಕ್ಲಾಜ್ಗಳನ್ನು ಉಳಿಸಲು.
from llama_index.core.node_parser import SentenceSplitter
from llama_index.core import Document
parser = SentenceSplitter(chunk_size=800, chunk_overlap=100)
nodes = []
for d in all_docs:
nodes.extend(parser.get_nodes_from_documents([Document(text=d.text, metadata=d.metadata)]))
ಇಂಡೆಕ್ಸಿಂಗ್ ತಂತ್ರಗಳು: ವೆಕ್ಟರ್, ಕೀವರ್ಡ್, ಅಥವಾ ಹೈಬ್ರಿಡ್?
ಸರಿಯಾದ ಇಂಡೆಕ್ಸನ್ನು ಆರಿಸುವುದು ಅತ್ಯವಶ್ಯಕ. ಸೌಭಾಗ್ಯವಶಾತ್, LlamaIndex ನಿಮಗೆ ಅವುಗಳನ್ನು ಸಂಯೋಜಿಸುವ ಅವಕಾಶ ನೀಡುತ್ತದೆ.
- ವೆಕ್ಟರ್ ಇಂಡೆಕ್ಸ್: ಅರ್ಥಾತ್ಮಕ ಶೋಧನೆಗೆ ಅತ್ಯುತ್ತಮ. “X ಅನ್ನು ವಿವರಿಸಿ” ಅಥವಾ ಅಸ್ಪಷ್ಟ ಪ್ರಶ್ನೆಗಳಿಗೆ ಸೂಕ್ತ.
- ಕೀವರ್ಡ್ (BM25): ನಿಖರ ಪದಗಳು, ಐಡಿಗಳು, ದೋಷ ಕೋಡ್ಗಳು, ಲಾಗ್ಗಳಿಗೆ ಶಕ್ತಿಶಾಲಿ.
- ಹೈಬ್ರಿಡ್: ಎರಡನ್ನೂ ಸಂಯೋಜಿಸಿ; ಟಾಪ್ ಅಭ್ಯರ್ಥಿಗಳನ್ನು LLM ಅಥವಾ ಕ್ರಾಸ್-ಎಂಕೋಡರ್ನೊಂದಿಗೆ ರೀರೆಂಕ್ ಮಾಡಿ.
from llama_index.core import VectorStoreIndex, SummaryIndex
from llama_index.core.retrievers import BM25Retriever
from llama_index.core.query_engine import RetrieverQueryEngine
# ಪೂರ್ವಪಾರ್ಸ್ಡ್ ನೋಡ್ಗಳಿಂದ ವೆಕ್ಟರ್ ಇಂಡೆಕ್ಸ್
v_index = VectorStoreIndex(nodes)
# BM25 ಕೀವರ್ಡ್ ರಿಟ್ರೀವರ್
bm25_retriever = BM25Retriever.from_defaults(nodes=nodes, similarity_top_k=6)
# ಹೈಬ್ರಿಡ್: ಅಭ್ಯರ್ಥಿಗಳನ್ನು ಮರ್ಜ್ ಮಾಡಿ, ನಂತರ ರೀರೆಂಕ್ ಮಾಡಿ
from llama_index.core.retrievers import RouterRetriever
from llama_index.retrievers.merge import MergerRetriever
v_retriever = v_index.as_retriever(similarity_top_k=6)
hybrid = MergerRetriever(retrievers=[v_retriever, bm25_retriever], top_k=8)
query_engine = RetrieverQueryEngine.from_args(retriever=hybrid)
ರೀರೆಂಕಿಂಗ್ ಮತ್ತು ಫಿಲ್ಟರ್ಸ್: ಖರ್ಚು ಹೆಚ್ಚಿಸದೆ ನಿಖರತೆಯನ್ನು ಹೆಚ್ಚಿಸಿ
ರೀರೆಂಕಿಂಗ್ retrieved chunks ಅನ್ನು ಸಂಬಂಧಿತತೆಯ ಪ್ರಕಾರ ಮರುಕ್ರಮಗೊಳಿಸುವ ಮೂಲಕ ಉತ್ತರ ಗುಣಮಟ್ಟವನ್ನು ಸುಧಾರಿಸುತ್ತದೆ.
- ಯಾವಾಗ ರೀರೆಂಕ್ ಮಾಡಬೇಕು: ಬಳಕೆದಾರರು ಅಸಂಬಂಧಿತ ಉಲ್ಲೇಖಗಳು ಅಥವಾ ದೀರ್ಘ, ಅತಿರೇಕಿತ ಸಂದರ್ಭಗಳನ್ನು ವರದಿ ಮಾಡಿದಾಗ.
- ಕ್ರಾಸ್-ಎಂಕೋಡರ್ಗಳು (ಬೈ-ಎಂಕೋಡರ್ ಎಂಬೆಡ್ಡಿಂಗ್ ಶೋಧನೆ → ಕ್ರಾಸ್-ಎಂಕೋಡರ್ ರೀರೆಂಕ್)
- LLM ಆಧಾರಿತ ರೀರೆಂಕಿಂಗ್ (ಹೆಚ್ಚು ವೆಚ್ಚದ, ಕೆಲವೊಮ್ಮೆ ಸೂಕ್ಷ್ಮ ಪಠ್ಯದಲ್ಲಿ ಹೆಚ್ಚು ಬುದ್ಧಿವಂತಿಕೆ)
- ಮೆಟಾಡೇಟಾ ಫಿಲ್ಟರ್ಸ್ (ಉದಾ.,
source == 'handbook', created_at > 2024-01-01)
from llama_index.postprocessor.flag_embedding_reranker import FlagEmbeddingReranker
from llama_index.core.query_engine import RetrieverQueryEngine
reranker = FlagEmbeddingReranker(top_n=5, model="BAAI/bge-reranker-base")
query_engine = v_index.as_query_engine(
similarity_top_k=12,
node_postprocessors=[reranker]
)
ಪ್ರಾಂಪ್ಟಿಂಗ್ ಮತ್ತು ಕ್ವೆರೀ ಎಂಜಿನ್ಸ್: ಶೋಧನೆದಿಂದ ಉತ್ತರಗಳಿಗೆ
ಕ್ವೆರೀ ಎಂಜಿನ್ ಅಲ್ಲಿ ರಿಟ್ರೀವಲ್ ಜನರೇಶನ್ನ್ನು ಭೇಟಿ ಮಾಡುತ್ತದೆ. LlamaIndex ಅನ್ನು ಉತ್ಪಾದನೆಯಲ್ಲಿ ಹೇಗೆ ಬಳಸುವುದು ಎಂಬುದನ್ನು ನಿಪುಣರಾಗಲು, ಪ್ರಾಂಪ್ಟ್ಗಳು ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆ ಸಂಯೋಜನೆಯನ್ನು ಸೂಕ್ತವಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಬೇಕು.
- ಸಣ್ಣ ಸಂದರ್ಭಗಳಿಗೆ ಸರಳ “stuff” (ಸಂಯೋಜನೆ)
- ದೀರ್ಘ ಸಂದರ್ಭಗಳಿಗೆ ಟ್ರೀ ಅಥವಾ ಮ್ಯಾಪ್-ರೀಡ್ಯೂಸ್
- ಉಲ್ಲೇಖ ಮೋಡ್ ಮೂಲಕ ಮೂಲಗಳನ್ನು ತೋರಿಸುವುದು
from llama_index.core.response_synthesizers import get_response_synthesizer
from llama_index.core import ServiceContext
synth = get_response_synthesizer(response_mode="tree_summarize")
query_engine = v_index.as_query_engine(response_synthesizer=synth)
ans = query_engine.query("ಆನ್ಬೋರ್ಡಿಂಗ್ ಹಂತಗಳನ್ನು ಸಾರಾಂಶ ಮಾಡಿ ಮತ್ತು ಮೂಲಗಳನ್ನು ಉಲ್ಲೇಖಿಸಿ.")
print(ans)
- ಕಸ್ಟಮ್ ಪ್ರಾಂಪ್ಟ್ಗಳು: ಧ್ವನಿ, ರಚನೆಗೊಳಿಸಿದ ಔಟ್ಪುಟ್ಗಳು ಅಥವಾ ಗಾರ್ಡ್ರೈಲ್ಸ್ ಅನ್ನು ಹೊಂದಿಸಿ.
from llama_index.core.prompts import PromptTemplate
qa_tmpl = PromptTemplate(
"""
ನೀವು ಸಂಕ್ಷಿಪ್ತ, ಸಾಕ್ಷ್ಯ-ಪ್ರಥಮ ಸಹಾಯಕ. ಕೇವಲ ಒದಗಿಸಿದ ಸಂದರ್ಭವನ್ನು ಬಳಸಿ.
ನಿಶ್ಚಿತವಿಲ್ಲದಿದ್ದರೆ, ನನಗೆ ತಿಳಿದಿಲ್ಲ ಎಂದು ಹೇಳಿ. JSON ಅನ್ನು ಕೀಗಳೊಂದಿಗೆ ಹಿಂತಿರುಗಿಸಿ: answer, sources.
ಪ್ರಶ್ನೆ: {query_str}
ಸಂದರ್ಭ: {context_str}
"""
)
query_engine = v_index.as_query_engine(text_qa_template=qa_tmpl)
ಏಜೆಂಟ್ಸ್ ಮತ್ತು ಸಾಧನಗಳು: ರಿಟ್ರೀವಲ್ ಸಾಕಾಗದಾಗ
ಕೆಲವೊಮ್ಮೆ ಉತ್ತರಗಳಿಗೆ ಕ್ರಿಯೆಗಳು ಬೇಕಾಗುತ್ತವೆ: SQL ಚಾಲನೆ, API ಕರೆದೊಯ್ಯುವುದು ಅಥವಾ ಬ್ರೌಸಿಂಗ್. LlamaIndex ಏಜೆಂಟ್ಸ್ ನಿಮ್ಮ ರಿಟ್ರೀವಲ್ ಪೈಪ್ಲೈನ್ಗಾಗಿ ಸಾಧನಗಳು ಮತ್ತು ತರ್ಕವನ್ನು ಸಂಯೋಜಿಸುತ್ತವೆ.
- ಬಳಕೆ ಪ್ರಕರಣಗಳು: KPI ಡ್ಯಾಶ್ಬೋರ್ಡ್ಗಳು (SQL ಸಾಧನ), ಬೆಂಬಲ ಬಾಟ್ಗಳು (ಟಿಕೆಟ್ ಲುಕ್ಅಪ್ API), ಸಂಶೋಧನಾ ಏಜೆಂಟ್ಸ್ (ವೆಬ್ + RAG).
from llama_index.core.agent import ReActAgent
from llama_index.tools.sql import SQLQueryEngineTool
from sqlalchemy import create_engine
engine = create_engine("sqlite:///analytics.db")
sql_tool = SQLQueryEngineTool.from_engine(engine)
agent = ReActAgent.from_tools([sql_tool], llm=llm, verbose=True)
agent.chat("Q2 2025 ರಲ್ಲಿ ಮಾಸಿಕ ಚರ್ನ್ ಏನು? ಅಗತ್ಯವಿದ್ದರೆ, ಡೇಟಾಬೇಸ್ ಅನ್ನು ಪ್ರಶ್ನಿಸಿ.")
ಮೌಲ್ಯಮಾಪನ: ಕಣ್ಣು ಮುಚ್ಚಿ ರವಾನಿಸಬೇಡಿ
LlamaIndex ಅನ್ನು ಜವಾಬ್ದಾರಿಯಾಗಿ ಬಳಸಲು ಕಲಿತರೆ, ರಿಟ್ರೀವಲ್ ಮತ್ತು ಉತ್ತರಗಳನ್ನು ಬಿಡುಗಡೆ ಮುನ್ನ ಪರಿಶೀಲಿಸುವುದು ಅಗತ್ಯ.
- ಆಫ್ಲೈನ್ ಮೌಲ್ಯಮಾಪನ: ಲೇಬಲ್ ಮಾಡಲಾದ ಸೆಟ್ನಲ್ಲಿ ರಿಟ್ರೀವಲ್ recall/precision ಅನ್ನು ನಿರ್ಣಯಿಸಿ.
- ಆನ್ಲೈನ್ ಮೌಲ್ಯಮಾಪನ: ಬಳಕೆದಾರರ ಪ್ರಾಂಪ್ಟ್ಗಳನ್ನು ಲಾಗ್ ಮಾಡಿ, ತೃಪ್ತಿ, ಡಿಫ್ಲೆಕ್ಷನ್ ದರಗಳು ಮತ್ತು ಹ್ಯಾಲುಸಿನೇಷನ್ಗಳನ್ನು ಅಳೆಯಿರಿ.
- ನಿರ್ಮಿತ ಸಹಾಯಕರ: LlamaIndex ನಿಷ್ಠೆ ಮತ್ತು ಉತ್ತರ ಸಂಬಂಧಿತತೆಯ ಮೌಲ್ಯಮಾಪನಕ್ಕೆ ಸಹಾಯಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ.
from llama_index.core.evaluation import FaithfulnessEvaluator, RelevancyEvaluator
faith = FaithfulnessEvaluator(llm=llm)
rel = RelevancyEvaluator(llm=llm)
pred = query_engine.query("ನಮ್ಮ ನೀತಿಯಲ್ಲಿ SOC 2 ನಿಯಂತ್ರಣ ಕುಟುಂಬಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಿ.")
print("ನಿಷ್ಠಾವಂತವೇ?", faith.evaluate_response(pred))
print("ಸಂಬಂಧಿತವೇ?", rel.evaluate_response(pred))
- ಪ್ರಾಯೋಗಿಕ ಗುರಿ: ಆಂತರಿಕ ಸಹಾಯಕರಿಗಾಗಿ, ವ್ಯಾಪಕ ಬಿಡುಗಡೆಗೆ ಮುನ್ನ ಟಾಪ್ ಪ್ರಶ್ನೆಗಳಲ್ಲಿ >80% “ಉಪಯುಕ್ತ” ರೇಟಿಂಗ್ ಗುರಿಯಾಗಿರಲಿ.
ಸ್ಥಿರತೆ ಮತ್ತು ವೆಕ್ಟರ್ ಸ್ಟೋರ್ಸ್: ಅದನ್ನು ವಿಸ್ತಾರಗೊಳಿಸಿ
ಮೆಮರಿಯಲ್ಲಿ ನಿರ್ಮಿತ ಇಂಡೆಕ್ಸ್ಗಳು ನಿಜವಾದ ಕಾರ್ಯಭಾರಗಳಿಗೆ ಸಾಕಾಗುವುದಿಲ್ಲ. ವೆಕ್ಟರ್ ಡಿಬಿಗೆ ಉಳಿಸಿ ಮತ್ತು ಕ್ರಮೇಣ ನವೀಕರಣಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ.
- ಜನಪ್ರಿಯ ಬ್ಯಾಕ್ಎಂಡ್ಗಳು: Pinecone, Weaviate, Chroma, Elasticsearch/OpenSearch, Qdrant.
- ಸಲಹೆ: ಪ್ರತಿ ಟೆನಂಟ್ ಅಥವಾ ವಿಭಾಗಕ್ಕೆ namespaces ಬಳಸಿ; ಮೆಟಾಡೇಟಾ ಸಮೃದ್ಧವಾಗಿರಲಿ.
# ಉದಾಹರಣೆ: Chroma
# pip install chromadb llama-index-vector-stores-chroma
from llama_index.vector_stores.chroma import ChromaVectorStore
from llama_index.core import StorageContext
import chromadb
chroma_client = chromadb.PersistentClient(path="./chroma_store")
collection = chroma_client.get_or_create_collection("company_knowledge")
vector_store = ChromaVectorStore(chroma_collection=collection)
storage_context = StorageContext.from_defaults(vector_store=vector_store)
index = VectorStoreIndex.from_documents(all_docs, storage_context=storage_context)
ಭದ್ರತೆ ಮತ್ತು ಆಡಳಿತ: ಎಲ್ಲರೂ ಮರೆತ ಭಾಗ
- PII ಹ್ಯಾಂಡ್ಲಿಂಗ್: ಇಂಜೆಕ್ಷನ್ ಸಮಯದಲ್ಲಿ ಸಂವೇದನಾಶೀಲ ಕ್ಷೇತ್ರಗಳನ್ನು ರಿಡ್ಯಾಕ್ಟ್ ಅಥವಾ ಹ್ಯಾಶ್ ಮಾಡಿ.
- ಪ್ರವೇಶ ನಿಯಂತ್ರಣಗಳು: ಬಳಕೆದಾರರ ಪಾತ್ರಗಳ ಮೂಲಕ ಮೆಟಾಡೇಟಾ ನಿರ್ಬಂಧಗಳನ್ನು ಫಿಲ್ಟರ್ ಮಾಡಿ.
- ವಿಷಯ تازگي: ಮರುಇಂಜೆಕ್ಷನ್ ಅನ್ನು ನಿಯೋಜಿಸಿ; ಆವೃತ್ತಿಗಳನ್ನು ಗುರುತಿಸಿ.
- ಸುರಕ್ಷತೆ: ನಿರಾಕರಣೆ ನೀತಿಗಳು ಮತ್ತು ಮೂಲ-ಮಾತ್ರ ನಿರ್ಬಂಧಗಳನ್ನು ಪ್ರಾಂಪ್ಟ್ಗಳಲ್ಲಿ ಸೇರಿಸಿ.
# ಉದಾಹರಣೆ: ಕ್ವೆರೀ ಸಮಯದಲ್ಲಿ ಮೆಟಾಡೇಟಾ ಆಧಾರಿತ ಫಿಲ್ಟರಿಂಗ್
retriever = index.as_retriever(similarity_top_k=8)
retriever.metadata_filters = {"department": ["legal", "security"], "published": [True]}
ಪ್ರೋಟೋಟೈಪ್ನಿಂದ ಉತ್ಪಾದನೆಗೆ: ನಿಯೋಜನೆ ಮಾದರಿಗಳು
- ಸರ್ವರ್ ಮಾದರಿ:
/query ಎಂಡ್ಪಾಯಿಂಟ್ ಅನ್ನು ಬಹಿರಂಗಪಡಿಸಿ; ಇಂಡೆಕ್ಸ್ ಅನ್ನು ಮೆಮರಿಯಲ್ಲಿ ತಾಪಮಾನದಲ್ಲಿಡಿ.
- ಸರ್ವರ್ಲೆಸ್ ಗಟ್ಟಹಾಕುವಿಕೆ: ಶೀತಲ ಪ್ರಾರಂಭಗಳು ಮತ್ತು ದೊಡ್ಡ ಮಾದರಿಗಳು ವಿಳಂಬವನ್ನು ಹಾನಿ ಮಾಡಬಹುದು; ನಿರ್ವಹಿತ ಇನ್ಫರೆನ್ಸ್ ಪರಿಗಣಿಸಿ.
- ಕ್ಯಾಶಿಂಗ್: ಎಂಬೆಡ್ಡಿಂಗ್ಸ್ ಮತ್ತು ಸಾಮಾನ್ಯ ಪ್ರಶ್ನೆ ಫಲಿತಾಂಶಗಳನ್ನು ಕ್ಯಾಶ್ ಮಾಡಿ; ಭಾಗಶಃ ನವೀಕರಣಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ.
- ಮೇಲ್ವಿಚಾರಣೆ: ರಿಟ್ರೀವ್ ಮಾಡಿದ ನೋಡ್ಗಳು, ಟೋಕನ್ ಬಳಕೆ, ಉತ್ತರದ ಉದ್ದ ಮತ್ತು ಬಳಕೆದಾರ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಲಾಗ್ ಮಾಡಿ.
# ಕನಿಷ್ಠ FastAPI ರಾಪರ್
# pip install fastapi uvicorn
from fastapi import FastAPI
app = FastAPI()
qe = index.as_query_engine(llm=llm)
@app.post("/query")
async def query(payload: dict):
q = payload.get("q", "")
resp = qe.query(q)
return {"answer": str(resp), "sources": [s.node.metadata for s in resp.source_nodes]}
ನೈಜ ಜಗತ್ತಿನ ಮಾದರಿಗಳು: ನಿಮ್ಮ ಮಾರ್ಗವನ್ನು ಆರಿಸಿ
- ಇಂಡೆಕ್ಸ್: ಹೈಬ್ರಿಡ್ (BM25 + ವೆಕ್ಟರ್) ರೀರೆಂಕಿಂಗ್ ಜೊತೆಗೆ
- ಗಾರ್ಡ್ರೈಲ್ಸ್: ಮೂಲ-ಮಾತ್ರ ಮೋಡ್; “ನನಗೆ ತಿಳಿದಿಲ್ಲ” ಬ್ಯಾಕ್ಅಪ್
- KPI: ನೀತಿ ಪ್ರಶ್ನೆಗಳಿಗೆ ಪರಿಹಾರ ದರ
- ಇಂಡೆಕ್ಸ್: ಉತ್ಪನ್ನ ಡಾಕ್ಯುಮೆಂಟ್ಗಳು + ಬಿಡುಗಡೆ ನೋಟ್ಸ್ + ಟಿಕೆಟ್ಗಳು
- ಏಜೆಂಟ್ಸ್: ಆರ್ಡರ್/ಟಿಕೆಟ್ ಸ್ಥಿತಿಯನ್ನು ಪರಿಶೀಲಿಸಲು API ಸಾಧನ
- KPI: ಪ್ರಥಮ ಸಂಪರ್ಕ ಪರಿಹಾರ, ಡಿಫ್ಲೆಕ್ಷನ್, CSAT
- ಇಂಡೆಕ್ಸ್: ವೆಬ್ + PDFಗಳು + ಟಿಪ್ಪಣಿಗಳು; ಬಲವಾದ ನಕಲಿ ನಿವಾರಣೆ
- ರೀರೆಂಕ್: ಕ್ರಾಸ್-ಎಂಕೋಡರ್; ಸಂಯೋಜನೆ: ಮ್ಯಾಪ್-ರೀಡ್ಯೂಸ್
- KPI: ಒಳನೋಟಕ್ಕೆ ಸಮಯ; ಉಲ್ಲೇಖ ನಿಖರತೆ
- ಸಾಧನಗಳು: SQL ಎಂಜಿನ್ + RAG ಮೆಟ್ರಿಕ್ ವ್ಯಾಖ್ಯಾನಗಳ ಮೇಲೆ
- ಆಡಳಿತ: ಸಾಲಿನ ಮಟ್ಟ ನೀತಿಗಳು; ಕ್ವೆರೀ ಆಡಿಟ್
- KPI: ನೆಲಸಾಕಿದ ಸತ್ಯತೆಯ ವಿರುದ್ಧ ಸರಿಯಾಗಿರುವುದು
ವೆಚ್ಚ ಮತ್ತು ವಿಳಂಬ: ಅದನ್ನು ವೇಗವಾಗಿ (ಮತ್ತು ಸಸ್ತಾಗಿ) ಇಡಿ
- ಎಂಬೆಡ್ಡಿಂಗ್ಸ್: ಸಾಧ್ಯವಾದರೆ ಬ್ಯಾಚ್ ಮಾಡಿ; ರಿಕಾಲ್ಗೆ ಸಣ್ಣ ಮಾದರಿಗಳನ್ನು ಬಳಸಿ, ರೀರೆಂಕ್ ಅನ್ನು ಆಯಾ ಸಂದರ್ಭಗಳಲ್ಲಿ ಮಾತ್ರ ಮಾಡಿ.
- ಸಂದರ್ಭ ಗಾತ್ರ: ಅತ್ಯಂತ ಸಂಬಂಧಿತ ಚಂಕ್ಗಳ 1–2k ಟೋಕನ್ ಗುರಿ ಇಡಿ.
- ಕ್ಯಾಶಿಂಗ್: ಹಾಟ್ ಕ್ವೆರೀಗಳಿಗೆ ಟಾಪ್-K ರಿಟ್ರೀವಲ್ ಅನ್ನು ಕ್ಯಾಶ್ ಮಾಡಿ; ಹ್ಯಾಶ್ ಮಾಡಿದ ಪ್ರಾಂಪ್ಟ್ಗಳೊಂದಿಗೆ LLM ಕರೆಗಳನ್ನು ಮೆಮೊರೈಸ್ ಮಾಡಿ.
- ಪ್ಯಾರಲೆಲಿಸಂ: ಫ್ಯಾನ್-ಔಟ್ ರಿಟ್ರೀವಲ್ → ಫ್ಯಾನ್-ಇನ್ ರೀರೆಂಕ್ ವಿಳಂಬ ಕಡಿಮೆ ಮಾಡಲು.
LlamaIndex ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಕಲಿಯುವಾಗ ಸಾಮಾನ್ಯ ತಪ್ಪುಗಳು
- ಅತಿಯಾಗಿ ಚಂಕ್ ಮಾಡುವುದು, ಕಡಿಮೆ ಆಳದ, ಶಬ್ದಮಯ ರಿಟ್ರೀವಲ್ಗೆ ಕಾರಣವಾಗುವುದು
- ಮೆಟಾಡೇಟಾ ಫಿಲ್ಟರ್ಸ್ ಇಲ್ಲದೆ, ಅಸಂಬಂಧಿತ ಮೂಲಗಳು ಒಳಗೆ ಬರುವುದಕ್ಕೆ ಕಾರಣವಾಗುವುದು
- ಎಲ್ಲಾ ವಿಷಯಕ್ಕೆ ಒಂದೇ ರೀತಿಯ ಇಂಡೆಕ್ಸ್ ಅನ್ನು ಅವಲಂಬಿಸುವುದು
- ಮೌಲ್ಯಮಾಪನವನ್ನು ಬಿಟ್ಟುಬಿಡುವುದು; ಗುಣಮಟ್ಟದ ಗುರಿ ಇಲ್ಲದೆ ರವಾನಿಸುವುದು
- ಇಂಡೆಕ್ಸ್ಗಳನ್ನು ಹಳೆಯದಾಗಲು ಬಿಡುವುದು; ನಿಯೋಜಿತ ರಿಫ್ರೆಶ್ ಇಲ್ಲ
ಮತ್ತು ಮತ್ತೊಂದು ವಿಷಯ: ಸಂಪಾದಕದಲ್ಲಿ ನಿಮ್ಮ ಕೆಲಸದ ಪ್ರಗತಿಯ ವೇಗವನ್ನು ಹೆಚ್ಚಿಸುವುದು
ನೀವು ಪ್ರಾಂಪ್ಟ್ಗಳು, ಚಂಕರ್ಗಳು ಮತ್ತು ರಿಟ್ರೀವಲ್ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಪರಿಷ್ಕರಿಸುವಾಗ, Sider.ai ಎಂಬ AI ಕೋಡಿಂಗ್ ಮತ್ತು ಸಂಶೋಧನಾ ಸೈಡ್ಬಾರ್ ಲೂಪ್ ವೇಗವನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ. ನೀವು ಸ್ಫೂರ್ತಿದಾಯಕ ಉದಾಹರಣೆಗಳು, ಪ್ರಾಂಪ್ಟ್ಗಳು ಮತ್ತು ಮೌಲ್ಯಮಾಪನ ಟಿಪ್ಪಣಿಗಳನ್ನು ಕೈಗೆ ತಂದುಕೊಳ್ಳಬಹುದು, ಪ್ರಾಂಪ್ಟ್ ಬದಲಾವಣೆಗಳ ಡಿಫ್ಗಳನ್ನು ರಚಿಸಿ, ಮತ್ತು ಬ್ರೌಸರ್ ಬಿಟ್ಟು ಬೇಗನೆ ಪರ್ಯಾಯಗಳನ್ನು ಪರೀಕ್ಷಿಸಬಹುದು. ಇದು ವಿಭಿನ್ನ ರಿಟ್ರೀವಲ್ ತಂತ್ರಗಳನ್ನು ಬಳಸುವಾಗ LlamaIndex ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಎಂಬುದನ್ನು ಸುಧಾರಿಸುವಾಗ ವಿಶೇಷವಾಗಿ ಉಪಯುಕ್ತವಾಗಿದೆ. ಹಂತ ಹಂತದ ಪರಿಶೀಲನಾ ಪಟ್ಟಿ: ಶೂನ್ಯದಿಂದ ಉತ್ಪಾದನೆಗೆ
- ಮೂಲಗಳನ್ನು ಇಂಜೆಕ್ಟ್ ಮಾಡಿ ಮತ್ತು ಮೆಟಾಡೇಟಾವನ್ನು ನಾರ್ಮಲೈಸ್ ಮಾಡಿ
- ವಿಷಯ ಪ್ರಕಾರಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಚಂಕ್ ಗಾತ್ರಗಳನ್ನು ಹೊಂದಿಸಿ
- ವೆಕ್ಟರ್ + BM25 ಇಂಡೆಕ್ಸ್ಗಳನ್ನು ನಿರ್ಮಿಸಿ; ಹೈಬ್ರಿಡ್ ರಿಟ್ರೀವಲ್ ಸಕ್ರಿಯಗೊಳಿಸಿ
- ರೀರೆಂಕಿಂಗ್ ಮತ್ತು ಮೆಟಾಡೇಟಾ ಫಿಲ್ಟರ್ಸ್ ಸೇರಿಸಿ
- ಪ್ರಾಂಪ್ಟ್ಗಳನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಿ; ಉಲ್ಲೇಖಗಳು ಮತ್ತು ನಿರಾಕರಣೆ ನೀತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ
- ಪರೀಕ್ಷಾ ಸೆಟ್ನಲ್ಲಿ ನಿಷ್ಠೆ ಮತ್ತು ಸಂಬಂಧಿತತೆಯನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡಿ
- ವೆಕ್ಟರ್ ಸ್ಟೋರ್ಗೆ ಉಳಿಸಿ; ಕ್ರಮೇಣ ನವೀಕರಣಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ
- ಮೇಲ್ವಿಚಾರಣೆ, ಕ್ಯಾಶಿಂಗ್ ಮತ್ತು RBAC ಫಿಲ್ಟರ್ಸ್ ಸೇರಿಸಿ
- API ಯಲ್ಲಿ ಮಡಿಸಿ ಮತ್ತು SLA ಗಳನ್ನು ಸೆಟ್ ಮಾಡಿ; ವೈಫಲ್ಯ ಮೋಡ್ಗಳನ್ನು ಡಾಕ್ಯುಮೆಂಟ್ ಮಾಡಿ
ಮುಖ್ಯ ತತ್ವಗಳು
- ನೀವು ಬಲವಾದ RAG ಅಪ್ಲಿಕೇಶನ್ ಬೇಕಾದರೆ, LlamaIndex ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಕಲಿಯುವುದು ವಾರಗಳ ಗ್ಲೂ ಎಂಜಿನಿಯರಿಂಗ್ ಸಮಯವನ್ನು ಉಳಿಸುತ್ತದೆ.
- ಸರಳದಿಂದ ಪ್ರಾರಂಭಿಸಿ, ನಂತರ ಹೈಬ್ರಿಡ್ ರಿಟ್ರೀವಲ್, ರೀರೆಂಕಿಂಗ್ ಮತ್ತು ರಚನೆಗೊಳಿಸಿದ ಪ್ರಾಂಪ್ಟ್ಗಳನ್ನು ಹಂತ ಹಂತವಾಗಿ ಸೇರಿಸಿ.
- ವಿಸ್ತರಿಸುವ ಮೊದಲು ಮೌಲ್ಯಮಾಪನ ಮಾಡಿ; ಇಂಡೆಕ್ಸ್ಗಳನ್ನು ಉಳಿಸಿ ಮತ್ತು ಉತ್ಪಾದನೆಯಲ್ಲಿ ಗುಣಮಟ್ಟವನ್ನು ಮೇಲ್ವಿಚಾರಿಸಿ.
- ಮೊದಲ ದಿನದಿಂದ ಆಡಳಿತಕ್ಕೆ ವಿನ್ಯಾಸ ಮಾಡಿ — ಭದ್ರತೆ ಒಂದು ಬೋಲ್ಟ್-ಆನ್ ಅಲ್ಲ.
ಮುಂದಿನ ಹಂತಗಳು
- ಸಣ್ಣ ಡಾಕ್ಯುಮೆಂಟ್ ಸೆಟ್ ಮೇಲೆ ತ್ವರಿತ ಪ್ರಾರಂಭವನ್ನು ಪ್ರೋಟೋಟೈಪ್ ಮಾಡಿ.
- ಹೈಬ್ರಿಡ್ ರಿಟ್ರೀವಲ್ ಮತ್ತು ರೀರೆಂಕರ್ ಜೊತೆ ಪ್ರಯೋಗ ಮಾಡಿ.
- ಮೌಲ್ಯಮಾಪನ ಮತ್ತು ಉಲ್ಲೇಖಗಳನ್ನು ಸೇರಿಸಿ; ಗುಣಮಟ್ಟ ಮ್ಯಾಟ್ರಿಕ್ಸ್ಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ.
- ಸ್ಥಿರ ವೆಕ್ಟರ್ ಸ್ಟೋರ್ಗೆ ತೆರಳಿ ಮತ್ತು API ಅನ್ನು ನಿಯೋಜಿಸಿ.
ಪ್ರಶ್ನೋತ್ತರ
Q1: RAG ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ LlamaIndex ಯಾಕೆ ಬಳಸಲಾಗುತ್ತದೆ?
LlamaIndex ನಿಮ್ಮ ಡೇಟಾವನ್ನು LLM ಗಳಿಗೆ ಇಂಜೆಕ್ಷನ್, ಇಂಡೆಕ್ಸಿಂಗ್ ಮತ್ತು ರಿಟ್ರೀವಲ್ ಘಟಕಗಳೊಂದಿಗೆ ಸಂಪರ್ಕಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಇದು ಚಂಕಿಂಗ್, ವೆಕ್ಟರ್/ಕೀವರ್ಡ್ ಇಂಡೆಕ್ಸ್ಗಳು ಮತ್ತು ಪ್ರಶ್ನೆ ಸಂಯೋಜನೆಯನ್ನು ನಿರ್ವಹಿಸುವ ಮೂಲಕ RAG ವ್ಯವಸ್ಥೆಗಳನ್ನು ಸುಗಮಗೊಳಿಸುತ್ತದೆ.
Q2: LlamaIndex ನಲ್ಲಿ ಸರಿಯಾದ ಇಂಡೆಕ್ಸ್ ಪ್ರಕಾರವನ್ನು ನಾನು ಹೇಗೆ ಆರಿಸಬೇಕು?
ಅರ್ಥಾತ್ಮಕ ಪ್ರಶ್ನೆಗಳಿಗೆ ವೆಕ್ಟರ್ ಇಂಡೆಕ್ಸ್ ಬಳಸಿ, ಐಡಿ ಅಥವಾ ಕೋಡ್ಗಳಂತಹ ನಿಖರ ಹೊಂದಾಣಿಕೆಗೆ BM25 ಬಳಸಿ, ಮತ್ತು ಉತ್ತಮ recall ಮತ್ತು precision ಗೆ ಹೈಬ್ರಿಡ್ ವಿಧಾನವನ್ನು ಬಳಸಿ. ಅನೇಕ ತಂಡಗಳು ಎರಡನ್ನೂ ಸಂಯೋಜಿಸಿ ಟಾಪ್-K ಫಲಿತಾಂಶಗಳಿಗೆ ರೀರೆಂಕಿಂಗ್ ಸೇರಿಸುತ್ತವೆ.
ಪ್ರಶ್ನೆ 3: LlamaIndex ಅನ್ನು ಬಳಸುವಾಗ ನಾನು ನಿಖರತೆಯನ್ನು ಹೇಗೆ ಸುಧಾರಿಸಬಹುದು?
ಚಂಕ್ ಗಾತ್ರಗಳನ್ನು ಟ್ಯೂನ್ ಮಾಡಿ, ಶ್ರೀಮಂತ ಮೆಟಾಡೇಟಾವನ್ನು ಸೇರಿಸಿ, ಹೈಬ್ರಿಡ್ ರಿಟ್ರೈವಲ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ ಮತ್ತು ಮರು ಶ್ರೇಯಾಂಕವನ್ನು ಸೇರಿಸಿ. ವಿಶ್ವಾಸಾರ್ಹತೆ ಮತ್ತು ಪ್ರಸ್ತುತತೆಗಾಗಿ ಮೌಲ್ಯಮಾಪನವನ್ನು ಸಹ ಕಾರ್ಯಗತಗೊಳಿಸಿ ಮತ್ತು ಮೂಲಗಳನ್ನು ತೋರಿಸಲು ಉಲ್ಲೇಖ ಮೋಡ್ ಬಳಸಿ.
ಪ್ರಶ್ನೆ 4: LlamaIndex ನನ್ನ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ವೆಕ್ಟರ್ ಡೇಟಾಬೇಸ್ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಬಹುದೇ?
ಹೌದು. Pinecone, Weaviate, Chroma, Qdrant ಮತ್ತು Elasticsearch ನಂತಹ ಜನಪ್ರಿಯ ವೆಕ್ಟರ್ ಸ್ಟೋರ್ಗಳೊಂದಿಗೆ LlamaIndex ಸಂಯೋಜನೆಗೊಳ್ಳುತ್ತದೆ. ಸ್ಕೇಲೆಬಿಲಿಟಿ ಮತ್ತು ಇನ್ಕ್ರಿಮೆಂಟಲ್ ಅಪ್ಡೇಟ್ಗಳಿಗಾಗಿ ಇಂಡೆಕ್ಸ್ಗಳನ್ನು ಉಳಿಸಿಕೊಳ್ಳಿ.
ಪ್ರಶ್ನೆ 5: ನಾನು LlamaIndex ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಉತ್ಪಾದನೆಗೆ ಹೇಗೆ ನಿಯೋಜಿಸುವುದು?
ನಿಮ್ಮ ಪ್ರಶ್ನೆ ಎಂಜಿನ್ ಅನ್ನು API (ಉದಾ., FastAPI) ನಲ್ಲಿ ಸುತ್ತಿ, ವೆಕ್ಟರ್ ಸ್ಟೋರ್ನಲ್ಲಿ ಡೇಟಾವನ್ನು ಉಳಿಸಿ, ಕ್ಯಾಶಿಂಗ್ ಮತ್ತು ವೀಕ್ಷಣೆ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಿ ಮತ್ತು ಗುಣಮಟ್ಟವನ್ನು ನಿರಂತರವಾಗಿ ಮೌಲ್ಯಮಾಪನ ಮಾಡಿ. ಭದ್ರತೆಗಾಗಿ ಮೆಟಾಡೇಟಾ ಫಿಲ್ಟರ್ಗಳು ಮತ್ತು ಪ್ರವೇಶ ನಿಯಂತ್ರಣವನ್ನು ಜಾರಿಗೊಳಿಸಿ.