mirror of
https://github.com/hwchase17/langchain.git
synced 2026-06-09 10:17:00 +00:00
Add create_conv_retrieval_chain func (#15084)
```
+----------+
| MapInput |
**+----------+****
**** ****
**** ***
** ****
+------------------------------------+ **
| Lambda(itemgetter('chat_history')) | *
+------------------------------------+ *
* *
* *
* *
+---------------------------+ +--------------------------------+
| Lambda(_get_chat_history) | | Lambda(itemgetter('question')) |
+---------------------------+ +--------------------------------+
* *
* *
* *
+----------------------------+ +------------------------+
| ContextSet('chat_history') | | ContextSet('question') |
+----------------------------+ +------------------------+
**** ****
**** ****
** **
+-----------+
| MapOutput |
+-----------+
*
*
*
+----------------+
| PromptTemplate |
+----------------+
*
*
*
+-------------+
| FakeListLLM |
+-------------+
*
*
*
+-----------------+
| StrOutputParser |
+-----------------+
*
*
*
+----------------------------+
| ContextSet('new_question') |
+----------------------------+
*
*
*
+---------------------+
| SequentialRetriever |
+---------------------+
*
*
*
+------------------------------------+
| Lambda(_reduce_tokens_below_limit) |
+------------------------------------+
*
*
*
+-------------------------------+
| ContextSet('input_documents') |
+-------------------------------+
*
*
*
+----------+
***| MapInput |****
******* +----------+ ********
******** * *******
******* * ********
**** * ****
+-------------------------------+ +----------------------------+ +----------------------------+
| ContextGet('input_documents') | | ContextGet('chat_history') | | ContextGet('new_question') |
+-------------------------------+**** +----------------------------+ +----------------------------+
********* * *******
******** * ******
***** * ****
+-----------+
| MapOutput |
+-----------+
*
*
*
+-------------+
| FakeListLLM |
+-------------+
*
*
*
+----------+
***| MapInput |***
******** +----------+ ******
******* * *****
******** * ******
**** * ***
+-------------------------------+ +----------------------------+ +-------------+
| ContextGet('input_documents') | | ContextGet('new_question') | **| Passthrough |
+-------------------------------+ +----------------------------+ ******* +-------------+
******* * ******
****** * *******
**** * ****
+-----------+
| MapOutput |
+-----------+
```
---------
Co-authored-by: Harrison Chase <hw.chase.17@gmail.com>
This commit is contained in:
@@ -9,7 +9,7 @@ from typing import TYPE_CHECKING, Any, Dict, List, Optional
|
||||
|
||||
from langchain_core.documents import Document
|
||||
from langchain_core.load.dump import dumpd
|
||||
from langchain_core.runnables import RunnableConfig, RunnableSerializable
|
||||
from langchain_core.runnables import Runnable, RunnableConfig, RunnableSerializable
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from langchain_core.callbacks.manager import (
|
||||
@@ -18,8 +18,13 @@ if TYPE_CHECKING:
|
||||
Callbacks,
|
||||
)
|
||||
|
||||
RetrieverInput = str
|
||||
RetrieverOutput = List[Document]
|
||||
RetrieverLike = Runnable[RetrieverInput, RetrieverOutput]
|
||||
RetrieverOutputLike = Runnable[Any, RetrieverOutput]
|
||||
|
||||
class BaseRetriever(RunnableSerializable[str, List[Document]], ABC):
|
||||
|
||||
class BaseRetriever(RunnableSerializable[RetrieverInput, RetrieverOutput], ABC):
|
||||
"""Abstract base class for a Document retrieval system.
|
||||
|
||||
A retrieval system is defined as something that can take string queries and return
|
||||
|
||||
Reference in New Issue
Block a user