mirror of
https://github.com/hwchase17/langchain.git
synced 2025-06-03 13:43:24 +00:00
fixed regex to match sources for all cases, also includes source (#9775)
- Description: Updated the regex to handle all the different cases for string matching (SOURCES, sources, Sources), - Issue: https://github.com/langchain-ai/langchain/issues/9774 - Dependencies: N/A
This commit is contained in:
parent
a28eea5767
commit
0da5803f5a
@ -120,9 +120,11 @@ class BaseQAWithSourcesChain(Chain, ABC):
|
|||||||
|
|
||||||
def _split_sources(self, answer: str) -> Tuple[str, str]:
|
def _split_sources(self, answer: str) -> Tuple[str, str]:
|
||||||
"""Split sources from answer."""
|
"""Split sources from answer."""
|
||||||
if re.search(r"SOURCES:\s", answer):
|
if re.search(r"SOURCES?[:\s]", answer, re.IGNORECASE):
|
||||||
answer, sources = re.split(r"SOURCES:\s|QUESTION:\s", answer)[:2]
|
answer, sources = re.split(
|
||||||
sources = re.split(r"\n", sources)[0]
|
r"SOURCES?[:\s]|QUESTION:\s", answer, flags=re.IGNORECASE
|
||||||
|
)[:2]
|
||||||
|
sources = re.split(r"\n", sources)[0].strip()
|
||||||
else:
|
else:
|
||||||
sources = ""
|
sources = ""
|
||||||
return answer, sources
|
return answer, sources
|
||||||
|
@ -12,6 +12,21 @@ from tests.unit_tests.llms.fake_llm import FakeLLM
|
|||||||
"This Agreement is governed by English law.\n",
|
"This Agreement is governed by English law.\n",
|
||||||
"28-pl",
|
"28-pl",
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
"This Agreement is governed by English law.\nSources: 28-pl",
|
||||||
|
"This Agreement is governed by English law.\n",
|
||||||
|
"28-pl",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"This Agreement is governed by English law.\nsource: 28-pl",
|
||||||
|
"This Agreement is governed by English law.\n",
|
||||||
|
"28-pl",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"This Agreement is governed by English law.\nSource: 28-pl",
|
||||||
|
"This Agreement is governed by English law.\n",
|
||||||
|
"28-pl",
|
||||||
|
),
|
||||||
(
|
(
|
||||||
"This Agreement is governed by English law.\n"
|
"This Agreement is governed by English law.\n"
|
||||||
"SOURCES: 28-pl\n\n"
|
"SOURCES: 28-pl\n\n"
|
||||||
|
Loading…
Reference in New Issue
Block a user