File size: 2,111 Bytes
991dafd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from langchain.schema.output_parser import StrOutputParser
from chains.utils import getToolPromptTemplate
from model import llm4
from langchain.tools import tool

step4ToolName = "Problem Reconstruction"
step4ToolContext = """\
In the format provided, the final scalable problem definition would be structured as follows:
"For [a specific demographic], in the context of [a particular scenario], due to [a certain reason], \
the specific problem they face is what we need to find answers to in this toolkit. \
How we can [in a particular manner], achieve [a desired impact] is what we will continue to research."

Here is an example using the format:
"For [urban adolescents], in the context of [high unemployment rates], \
due to [a lack of job readiness and skills], \
the specific problem they face—[difficulty in securing first-time employment]—is what \
we need to find answers to in this toolkit. How we can [through vocational training and apprenticeship programs], \
achieve [an increase in youth employment rates] is what we will continue to research."\
"""
step4ToolSuggestion = """\
1. The facilitator needs to provide a new workspace for everyone (a whiteboard or a blank canvas).
2. Each participant, using a sticky note and the format provided on the right, \
should combine the supplementary information and feedback obtained from the \
previous step to reconstruct the description of the problem they have posed.
3. Different participants who identified similar problems in the previous step can either \
reconstruct the issue separately according to their own understanding or work in \
pairs to complete the reconstruction of the same problem.
"""

prompt = getToolPromptTemplate(step4ToolName, step4ToolContext, step4ToolSuggestion)

step4Chain = prompt | llm4 | StrOutputParser()


@tool("Problem Reconstruction")
def step4Tool(context: str) -> str:
    """Useful for find some detail advise or example when you process on "Problem Reconstruction" step. Need to input current problem context about Problem Reconstruction."""

    return step4Chain.invoke({"current_situation": context})