भन्ने तर्क गरेका छौं
LengChain को LLMGraphTransformer को प्रयोग गरेर Neo4j जस्ता निकाय-केन्द्रित ग्राफ स्टोरमा कागजातहरू लोड गरिन्थ्यो। कोड LangChain मा आधारित छ
from langchain_core.documents import Document from langchain_experimental.graph_transformers import LLMGraphTransformer from langchain_openai import ChatOpenAI llm = ChatOpenAI(temperature=0, model_name="gpt-4-turbo") llm_transformer = LLMGraphTransformer(llm=llm) from time import perf_counter start = perf_counter() documents_to_load = [Document(page_content=line) for line in lines_to_load] graph_documents = llm_transformer.convert_to_graph_documents(documents_to_load) end = perf_counter() print(f"Loaded (but NOT written) {NUM_LINES_TO_LOAD} in {end - start:0.2f}s")
import json from langchain_core.graph_vectorstores.links import METADATA_LINKS_KEY, Link def parse_document(line: str) -> Document: para = json.loads(line) id = para["id"] links = { Link.outgoing(kind="href", tag=id) for m in para["mentions"] if m["ref_ids"] is not None for id in m["ref_ids"] } links.add(Link.incoming(kind="href", tag=id)) return Document( id = id, page_content = " ".join(para["sentences"]), metadata = { "content_id": para["id"], METADATA_LINKS_KEY: list(links) }, )
from langchain_openai import OpenAIEmbeddings from langchain_community.graph_vectorstores.cassandra import CassandraGraphVectorStore import cassio cassio.init(auto=True) TABLE_NAME = "wiki_load" store = CassandraGraphVectorStore( embedding = OpenAIEmbeddings(), node_table=TABLE_NAME, insert_timeout = 1000.0, ) from time import perf_counter start = perf_counter() from datasets.wikimultihop.load import parse_document kg_documents = [parse_document(line) for line in lines_to_load] store.add_documents(kg_documents) end = perf_counter() print(f"Loaded (and written) {NUM_LINES_TO_LOAD} in {end - start:0.2f}s")
तल्लो रेखा: LLM प्रयोग गरेर सामग्रीबाट ज्ञान ग्राफहरू निकाल्ने संस्था-केन्द्रित दृष्टिकोण समय र लागत दुवै मापनमा निषेधात्मक थियो। अर्कोतर्फ, GraphVectorStore प्रयोग गर्नु छिटो र सस्तो थियो।
Entity-centric ले 7324 प्रम्प्ट टोकनहरू प्रयोग गर्यो र मूलतया बेकार जवाफहरू उत्पादन गर्न $0.03 खर्च गर्यो, जबकि सामग्री-केन्द्रले 450 प्रम्प्ट टोकनहरू प्रयोग गर्यो र प्रश्नहरूको सीधा जवाफ दिने संक्षिप्त जवाफहरू उत्पादन गर्न $0.002 लागत थियो।
> Entering new GraphCypherQAChain chain... Generated Cypher: cypher MATCH (a:Album {id: 'The Circle'})-[:RELEASED_BY]->(r:Record_label) RETURN a.id, r.id Full Context: [{'a.id': 'The Circle', 'r.id': 'Restless'}] > Finished chain. {'query': "When was 'The Circle' released?", 'result': "I don't know the answer."}
ग्राफ RAG अधिक गहिरो सान्दर्भिक सन्दर्भहरू पुन: प्राप्त गर्न जेनेरेटिभ AI RAG अनुप्रयोगहरू सक्षम गर्नको लागि उपयोगी उपकरण हो। तर राम्रो-दाना, संस्था-केन्द्रित दृष्टिकोण प्रयोग गरेर उत्पादन आवश्यकताहरू मापन गर्दैन। यदि तपाइँ आफ्नो RAG अनुप्रयोगमा ज्ञान ग्राफ क्षमताहरू थप्न खोज्दै हुनुहुन्छ भने, प्रयास गर्नुहोस्