Technology sharing

[AI magnum exemplar applicationis progressionis] Minimalis introductio ad AI cognitionem graphi: gradatim dirige te ut LangChain experiaris, ut cognoscas cognitionem graphi creationis et interrogationis (cum codice et fonte codicis analysis)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


Usus graphiae datorum seu scientiarum graphorum in magnis applicationibus exemplaribus recentius in dies magisque popularis factus est. Graphs naturales utilitates habent in informationibus variis et inter se connexis repraesentandis et recondendis, et facile capere possunt coniunctiones et attributa multiplicia inter genera notitiarum diversarum, quo melius contextus vel notitiae subsidia magnis exemplaribus praebent. In hoc articulo, inspice quomodo utendi databases vel graphis cognitionis in magnis exemplaribus applicationibus.

Hic articulus est simplex introductio et experientia.Non refert si nescis datorum graphium vel neo4j, modo vestigia in hoc articulo sequeris . Articulus hic adiuvare potest te intelligere applicationis methodi graphi in RAG.

0. Quid est scientia graphi?

0.1 Conceptus

Cognitio graph est fundata cognitionis semanticae basis quae thesauris et entia repraesentat (ut homines, loca, institutiones, etc.) et relationes inter entia (ut relationes personae, locus relationum geographicus, etc.) in graphs forma. Scientiae graphae saepe adhibentur ad augendam semanticam inquisitionum inquisitionum cognitionem, cum uberiores notitias et proventus accuratiores inquisitionis praebens.

Pelagus features cognitionis graph includit:

1. Entity : Unitas fundamentalis in cogni- grapha, objectum seu conceptum repraesentans in rerum natura.

2. Relatio: Relationes entium, ut "pertinet", "sita in", "creator" etc.

3. attributum: Descriptio notitiae ab entitate habitae, ut hominis aetas, longitudo et latitudo loci, etc.

4. lacinia purus Structure: Cognitio graphi notitias in graphi forma ordinat, nodis inclusis et oras (relationes).

5. *Semantic Network: Cognitio graphi considerari potest ut retiacula semantica in qua nodi et orae significationes habent semanticae.

6. Consequentia: Scientia graphs ratiocinandi adhiberi potest, id est, novas informationes per notas entias et relationes derivans.

Scientiae graphae late adhibentur in inquisitione optimiizationis (SEO), systemata commendationis, processus linguae naturalis (NLP), fodiendarum notitiarum et aliorum agrorum. Exempli gratia: Cognitio Google Graph, Wikidata, DBpedia, etc. exempla sunt omnia notissima scientiarum grapharum.

0,2 significationem cognitionis graphi

Sicut forma normae datae, significatio cognitionis graphi est praebere viam efficientem et intuitivam ut relationes implicatas notitias exprimat et disponat. Datam in structa forma per nodos et margines structurae graphiae ostendit, semanticam expressionem facultatem notitiarum auget et relationem inter entia claram et claram reddit. Scientia graphs signanter emendavit subtilitatem informationum retrievalium, praesertim in campo linguae naturalis processus, machinis permittens ut melius cognoscatur et respondeat quaestionibus complexis usoris. Scientiae graphae nucleum habent partes in applicationibus intelligentium, ut systemata commendationis, interrogatio intelligentis respondentis, etc.

Post taediosam introductionem, inspice casum RAG+ graphi cognitionis et nos ipsi efficiendi.

Casus sequens est e documentis officialis LangChain: https://python.langchain.com/v0.1/docs/integrations/graphs/neo4j_cypher/#refresh-graph-schema-information

1. Incipias cum coding

1.1 Praeparatio

(1) Primum opus datorum graphium instituere, hic neo4j utimur.

Python institutionem mandatum:

pip install neo4j
  • 1

(2) Subcriptio officialem rationem, aperi in, et exemplum database crea. (Si vis ad discendum uti, liberum elige unum).

Instantia database online creando, pagina haec est:

Hoc database in codice tuo uti nunc potes.

1.2 Codex praxis

(1) Instantia datorum creando, nexum, username et tesseram datarum debes.

neo4j_url = os.getenv('NEO4J_URI')  
neo4j_username = os.getenv('NEO4J_USERNAME')  
neo4j_password = os.getenv('NEO4J_PASSWORD')
  • 1
  • 2
  • 3

(2) Link database

LangChain encapsulat neo4j interfacies, et tantum opus est ut classis Neo4jGraph eo utatur.

from langchain_community.graphs import Neo4jGraph  
graph = Neo4jGraph(url=neo4j_url, username=neo4j_username, password=neo4j_password)
  • 1
  • 2

(3) Query et imple data

Interrogatio interfaciendi ad interrogationes et reditus proventus uti potes. Lingua propositionis interrogationis est lingua interrogationis Cyphericae.

result = graph.query(  
    """  
MERGE (m:Movie {name:"Top Gun", runtime: 120})  
WITH m  
UNWIND ["Tom Cruise", "Val Kilmer", "Anthony Edwards", "Meg Ryan"] AS actor  
MERGE (a:Actor {name:actor})  
MERGE (a)-[:ACTED_IN]->(m)  
"""  
)  
  
print(result)  
  
# 输出:[]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

Quod ex codice supra output est []

(IV) Renovare notitia graph est architecturae

graph.refresh_schema()  
print(graph.schema)
  • 1
  • 2

Ex eventibus, schema informationes continet sicut species nodi, attributa et relationes inter typos et graphi architectura est.

Paginam interretialem etiam ad neo4j inire possumus ut notitias in grapheo datorum repositas videre;

(5) Nunc cum in datorum graphide data sit, eam investigare possumus.

Genus GraphCypherQAChain in LangChain encapsulatum est, quod facile queri potest utendo datorum graphio. Sequente codice:

chain = GraphCypherQAChain.from_llm(  
    ChatOpenAI(temperature=0), graph=graph, verbose=True  
)  
  
result = chain.invoke({"query": "Who played in Top Gun?"})  
print(result)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Processus exsecutionis et eventus:

Primum lingua naturalis (Quis in Top Gun?) in graphi interrogationis enuntiationem per magnum exemplar convertitur, deinde propositio interrogationis per neo4j fit, eventus revertitur, postremo in linguam naturalem convertitur per magnum. effingunt et output ad usor.

2. Expand scientiam

2.1 Parametri GraphCypherQAChain

In superiore codice utimur LangChain's GraphCypherQAChain classe, quae est quaestionis datorum graphorum et quaestionis et catenae respondere a LangChain provisum.Parametros multos habet qui exponere possunt, sicut ususexclude_types Ad quod nodi genera vel relationes neglecta sunt;

chain = GraphCypherQAChain.from_llm(  
    graph=graph,  
    cypher_llm=ChatOpenAI(temperature=0, model="gpt-3.5-turbo"),  
    qa_llm=ChatOpenAI(temperature=0, model="gpt-3.5-turbo-16k"),  
    verbose=True,  
    exclude_types=["Movie"],  
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Output is similar to the following:

Node properties are the following:  
Actor {name: STRING}  
Relationship properties are the following:  
  
The relationships are the following:
  • 1
  • 2
  • 3
  • 4
  • 5

Plures similes parametri in promptu sunt, ad documenta publica referre potes: https://python.langchain.com/v0.1/docs/integrations/graphs/neo4j_cypher/#use-separate-llms-for-cypher-and- responsum-generationem

2.2 GraphCypherQAChain supplicium source code

Haec est fons exsecutionis codicis GraphCypherQAChain. Brevem inspiciamus processum exsecutionis eius.

(1)cypher_generation_chain: Conversio linguae naturalis ad interrogationes graphas dictorum.

(2)extract_cypher: Excipe propositionem interrogationis. Hoc est, quia magna exempla referre possunt informationes quaedam additae et opus removendum.

(3)cypher_query_corrector: Recte enuntiatum.

(4)graph.query: interrogationes interrogationes fac, datorum graphorum interrogationum, et contentum obtine

(5)self.qa_chain: Ex argumento quaestionis et interrogationis originalis, exemplar magnum iterum ad responsa et ad usoris linguam naturalem redigendae adhibetur.

def _call(    self,  
    inputs: Dict[str, Any],  
    run_manager: Optional[CallbackManagerForChainRun] = None,) -> Dict[str, Any]:  
    """Generate Cypher statement, use it to look up in db and answer question."""  
    ......  
  
    generated_cypher = self.cypher_generation_chain.run(  
        {"question": question, "schema": self.graph_schema}, callbacks=callbacks  
    )  
  
    # Extract Cypher code if it is wrapped in backticks  
    generated_cypher = extract_cypher(generated_cypher)  
  
    # Correct Cypher query if enabled  
    if self.cypher_query_corrector:  
        generated_cypher = self.cypher_query_corrector(generated_cypher)  
  
    ......  
  
    # Retrieve and limit the number of results  
    # Generated Cypher be null if query corrector identifies invalid schema  
    if generated_cypher:  
        context = self.graph.query(generated_cypher)[: self.top_k]  
    else:  
        context = []  
  
    if self.return_direct:  
        final_result = context  
    else:  
        ......  
  
        result = self.qa_chain(  
            {"question": question, "context": context},  
            callbacks=callbacks,  
        )  
        final_result = result[self.qa_chain.output_key]  
  
    chain_result: Dict[str, Any] = {self.output_key: final_result}  
    ......  
  
    return chain_result
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

Quomodo discere magna AI exempla?

Ut alacer Internet veteranus, decrevi communicare scientiam meam pretiosam AI cum omnibus. Quantum autem scire possis, id in tuo studio perseverantiae ac facultatis positum est. Magnas AI magnas materias exemplar communes inter AI magnum exemplar studiorum tabularum introductoriarum, summus qualitas AI magnum exemplar litterarum studiorum et manualium, video tutorials, doctrinas practicas aliasque videos gratis commemoratas.

Haec perfecta versio magnarum exemplarium AI, materiarum discentium ad CSDN immissa est. Si opus est, amici certificationem QR codicem officialem CSDN lustrare possunt infra in WeChat ut eam gratis possideant.保证100%免费

1. Integrum paro of AGI magna forma cognita itineribus

Discens iter in aetate magnarum AI exemplorum: a basics ad extremam aciem, nucleum artes intellegentiae artificialis comprehende!

img

2. Collectio 640 summa AI magni exemplarium relationum

Haec collectio 640 relationum multae aspectus comprehendit sicut investigatio theoretica, exsecutio technica, et industria applicationis magnarum AI exemplorum. Utrum sis indagator scientificus, ingeniarius, an enthusiasta quae in magnis AI exemplaribus es, haec notitiarum collectio tibi pretiosas notitias et inspirationes praebebit.

img

3. Ordo PDF librorum in AI magna exempla

Celeri progressu technologiae artificialis intelligentiae, AI magna exempla in campo hodie scientifico et technologico calido facti sunt. Haec magnarum rerum exempla praeexercita sunt, ut GPT-3, BERT, XLNet, etc., immutant intellectum nostrum intelligentiae artificialis cum suis facultatibus potens linguae intelligentiae et generationis. Sequentes libri PDF sunt valde bonae doctrinae facultates.

img

4. AI magnum exemplar mercaturam consilii

img

Persona vulgaris, in aetate magnarum exemplorum, requirit continuam doctrinam et praxim ad continuum emendandas artes et gradus cognoscitivus. Eodem tempore necesse est habere sensum responsabilitatis et conscientiae ethicae ad sanam progressionem intellegentiae artificialis conferre .