Spaces:
Sleeping
Sleeping
allow filenames to be passed through
Browse files- planning_ai/nodes/map_node.py +26 -4
- planning_ai/states.py +3 -2
planning_ai/nodes/map_node.py
CHANGED
@@ -9,20 +9,42 @@ from planning_ai.states import OverallState, SummaryState
|
|
9 |
|
10 |
|
11 |
def generate_summary(state: SummaryState):
|
12 |
-
response = map_chain.invoke(
|
13 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
|
15 |
|
16 |
def map_summaries(state: OverallState):
|
17 |
return [
|
18 |
-
Send("generate_summary", {"content": content
|
|
|
19 |
]
|
20 |
|
21 |
|
22 |
def collect_summaries(state: OverallState):
|
23 |
return {
|
24 |
"collapsed_summaries": [
|
25 |
-
Document(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
for idx, summary in enumerate(state["summaries"], start=1)
|
27 |
]
|
28 |
}
|
|
|
9 |
|
10 |
|
11 |
def generate_summary(state: SummaryState):
|
12 |
+
response = map_chain.invoke(
|
13 |
+
{"context": state["content"], "filename": state["filename"]}
|
14 |
+
)
|
15 |
+
return {
|
16 |
+
"summaries": [
|
17 |
+
{
|
18 |
+
"response": response,
|
19 |
+
"original": state["content"],
|
20 |
+
"filename": state["filename"],
|
21 |
+
}
|
22 |
+
]
|
23 |
+
}
|
24 |
|
25 |
|
26 |
def map_summaries(state: OverallState):
|
27 |
return [
|
28 |
+
Send("generate_summary", {"content": content, "filename": filename})
|
29 |
+
for content, filename in zip(state["contents"], state["filenames"])
|
30 |
]
|
31 |
|
32 |
|
33 |
def collect_summaries(state: OverallState):
|
34 |
return {
|
35 |
"collapsed_summaries": [
|
36 |
+
Document(
|
37 |
+
page_content=summary["response"].summary,
|
38 |
+
metadata={
|
39 |
+
"stance": summary["response"].stance,
|
40 |
+
"themes": summary["response"].themes,
|
41 |
+
"places": summary["response"].places,
|
42 |
+
"rating": summary["response"].rating,
|
43 |
+
"original": summary["original"],
|
44 |
+
"filename": summary["filename"],
|
45 |
+
"index": idx,
|
46 |
+
},
|
47 |
+
)
|
48 |
for idx, summary in enumerate(state["summaries"], start=1)
|
49 |
]
|
50 |
}
|
planning_ai/states.py
CHANGED
@@ -1,11 +1,12 @@
|
|
1 |
-
|
2 |
import operator
|
3 |
from typing import Annotated, List, TypedDict
|
4 |
|
5 |
from langchain_core.documents import Document
|
6 |
|
|
|
7 |
class OverallState(TypedDict):
|
8 |
contents: List[str]
|
|
|
9 |
summaries: Annotated[list, operator.add]
|
10 |
collapsed_summaries: List[Document]
|
11 |
final_summary: str
|
@@ -13,4 +14,4 @@ class OverallState(TypedDict):
|
|
13 |
|
14 |
class SummaryState(TypedDict):
|
15 |
content: str
|
16 |
-
|
|
|
|
|
1 |
import operator
|
2 |
from typing import Annotated, List, TypedDict
|
3 |
|
4 |
from langchain_core.documents import Document
|
5 |
|
6 |
+
|
7 |
class OverallState(TypedDict):
|
8 |
contents: List[str]
|
9 |
+
filenames: List[str]
|
10 |
summaries: Annotated[list, operator.add]
|
11 |
collapsed_summaries: List[Document]
|
12 |
final_summary: str
|
|
|
14 |
|
15 |
class SummaryState(TypedDict):
|
16 |
content: str
|
17 |
+
filename: str
|