-
Notifications
You must be signed in to change notification settings - Fork 16
/
advice_service.py
31 lines (24 loc) · 1.01 KB
/
advice_service.py
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
from data_questionnaire_agent.model.openai_schema import ConditionalAdvice
from langchain import LLMChain
from langchain.chains.openai_functions import create_structured_output_chain
from langchain.prompts import ChatPromptTemplate
from data_questionnaire_agent.service.initial_question_service import (
prompt_factory_generic,
)
from data_questionnaire_agent.toml_support import prompts
from data_questionnaire_agent.config import cfg
def prompt_factory_conditional_advice() -> ChatPromptTemplate:
section = prompts["advice"]
return prompt_factory_generic(
section,
["knowledge_base", "questions_answers"],
)
def chain_factory_advice() -> LLMChain:
return create_structured_output_chain(
ConditionalAdvice,
cfg.llm,
prompt_factory_conditional_advice(),
verbose=cfg.verbose_llm,
)
def prepare_conditional_advice(knowledge_base: str, questions_answers: str) -> dict:
return {"knowledge_base": knowledge_base, "questions_answers": questions_answers}