mirror of
https://github.com/hwchase17/langchain.git
synced 2025-05-31 12:09:58 +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]:
|
||||
"""Split sources from answer."""
|
||||
if re.search(r"SOURCES:\s", answer):
|
||||
answer, sources = re.split(r"SOURCES:\s|QUESTION:\s", answer)[:2]
|
||||
sources = re.split(r"\n", sources)[0]
|
||||
if re.search(r"SOURCES?[:\s]", answer, re.IGNORECASE):
|
||||
answer, sources = re.split(
|
||||
r"SOURCES?[:\s]|QUESTION:\s", answer, flags=re.IGNORECASE
|
||||
)[:2]
|
||||
sources = re.split(r"\n", sources)[0].strip()
|
||||
else:
|
||||
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",
|
||||
"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"
|
||||
"SOURCES: 28-pl\n\n"
|
||||
|
Loading…
Reference in New Issue
Block a user