templates: Update neo4j templates (#19789)

This commit is contained in:
Tomaz Bratanic
2024-03-30 15:40:05 +01:00
committed by GitHub
parent 765d6762bc
commit ed49cca191
13 changed files with 89 additions and 36 deletions

View File

@@ -1,10 +1,9 @@
from langchain_community.chat_models import ChatOpenAI
from langchain_community.embeddings import OpenAIEmbeddings
from langchain_community.vectorstores import Neo4jVector
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.pydantic_v1 import BaseModel
from langchain_core.runnables import RunnableParallel, RunnablePassthrough
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
retrieval_query = """
MATCH (node)-[:HAS_PARENT]->(parent)
@@ -12,6 +11,11 @@ WITH parent, max(score) AS score // deduplicate parents
RETURN parent.text AS text, score, {} AS metadata
"""
def format_docs(docs):
return "\n\n".join(doc.page_content for doc in docs)
vectorstore = Neo4jVector.from_existing_index(
OpenAIEmbeddings(),
index_name="retrieval",
@@ -31,7 +35,9 @@ prompt = ChatPromptTemplate.from_template(template)
model = ChatOpenAI()
chain = (
RunnableParallel({"context": retriever, "question": RunnablePassthrough()})
RunnableParallel(
{"context": retriever | format_docs, "question": RunnablePassthrough()}
)
| prompt
| model
| StrOutputParser()