From 6181ff8df77653d38cd84cb066776c04c0ff74ad Mon Sep 17 00:00:00 2001 From: David Miguel Lozano Date: Sun, 13 Aug 2023 00:57:53 +0200 Subject: [PATCH] fix(chains): Fix OpenAIQAWithSourcesChain returning empty strings (#113) --- .../langchain/lib/src/chains/combine_documents/map_reduce.dart | 2 +- packages/langchain/lib/src/chains/combine_documents/stuff.dart | 2 +- packages/langchain_openai/test/chains/qa_with_sources_test.dart | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/langchain/lib/src/chains/combine_documents/map_reduce.dart b/packages/langchain/lib/src/chains/combine_documents/map_reduce.dart index 514d17e7..b804fcbb 100644 --- a/packages/langchain/lib/src/chains/combine_documents/map_reduce.dart +++ b/packages/langchain/lib/src/chains/combine_documents/map_reduce.dart @@ -184,6 +184,6 @@ class MapReduceDocumentsChain extends BaseCombineDocumentsChain { String _getStringContent(final dynamic content) => switch (content) { final String resultStr => resultStr, final ChatMessage resultMsg => resultMsg.content, - _ => '', + _ => content, }; } diff --git a/packages/langchain/lib/src/chains/combine_documents/stuff.dart b/packages/langchain/lib/src/chains/combine_documents/stuff.dart index 65eb9b65..2da88e14 100644 --- a/packages/langchain/lib/src/chains/combine_documents/stuff.dart +++ b/packages/langchain/lib/src/chains/combine_documents/stuff.dart @@ -142,7 +142,7 @@ class StuffDocumentsChain extends BaseCombineDocumentsChain { final output = switch (llmOutput[llmChain.outputKey]) { final String resultStr => resultStr, final ChatMessage resultMsg => resultMsg.content, - _ => '', + _ => llmOutput[llmChain.outputKey], }; return { outputKey: output, diff --git a/packages/langchain_openai/test/chains/qa_with_sources_test.dart b/packages/langchain_openai/test/chains/qa_with_sources_test.dart index 0f7152a7..68bab9d6 100644 --- a/packages/langchain_openai/test/chains/qa_with_sources_test.dart +++ b/packages/langchain_openai/test/chains/qa_with_sources_test.dart @@ -17,7 +17,7 @@ void main() { const loader = TextLoader(filePath); final documents = await loader.load(); - const textSplitter = CharacterTextSplitter( + const textSplitter = RecursiveCharacterTextSplitter( chunkSize: 800, chunkOverlap: 0, );