add question rephrase
This commit is contained in:
@@ -1 +1 @@
|
||||
Buongiorno, non so se è la mail specifica ma volevo se possibile dei chiarimenti per l’interpretazione dei parametri BCM /SMM/ASMM. Mi capita a volte di trovare casi in cui la BCM è aumentata ma allo stesso tempo SMM/ASMM hanno subito una piccola flessione in negativo (o viceversa). Se la parte metabolicamente attiva aumenta perchè può succedere che gli altri compartimenti si riducono?? E allo stesso tempo phA e BCM possono essere inversamente proporzionali?? So che il phA correla con massa e struttura + idratazione."
|
||||
Buongiorno, non so se è la mail specifica ma volevo se possibile dei chiarimenti per l’interpretazione dei parametri BCM /SMM/ASMM. Mi capita a volte di trovare casi in cui la BCM è aumentata ma allo stesso tempo SMM/ASMM hanno subito una piccola flessione in negativo (o viceversa). Se la parte metabolicamente attiva aumenta perchè può succedere che gli altri compartimenti si riducono?? E allo stesso tempo phA e BCM possono essere inversamente proporzionali?? So che il phA correla con massa e struttura + idratazione.
|
||||
|
||||
42
main.py
42
main.py
@@ -26,9 +26,13 @@ RETRIEVER_MAX_DOCS = 50
|
||||
RERANKER_MAX_RESULTS = 25
|
||||
|
||||
with open("prompt.md") as f:
|
||||
template = f.read()
|
||||
question_template = f.read()
|
||||
|
||||
prompt = ChatPromptTemplate.from_template(template)
|
||||
with open("question_rewrite_prompt.md") as f:
|
||||
question_rewrite_template = f.read()
|
||||
|
||||
question_prompt = ChatPromptTemplate.from_template(question_template)
|
||||
question_rewrite_prompt = ChatPromptTemplate.from_template(question_rewrite_template)
|
||||
|
||||
|
||||
def format_docs(question: str) -> str:
|
||||
@@ -53,6 +57,12 @@ def format_docs(question: str) -> str:
|
||||
return "\n\n".join(doc.page_content for doc in reranked_docs)
|
||||
|
||||
|
||||
def log_rewritten_question(rewritten_question: str) -> str:
|
||||
print("=== REWRITTEN QUESTION ===")
|
||||
print(rewritten_question)
|
||||
return rewritten_question
|
||||
|
||||
|
||||
llm = ChatGoogleGenerativeAI(
|
||||
model=MODEL,
|
||||
project=PROJECT,
|
||||
@@ -82,31 +92,29 @@ compression_retriever = ContextualCompressionRetriever(
|
||||
base_compressor=reranker, base_retriever=base_retriever
|
||||
)
|
||||
|
||||
question_rewrite_chain = (
|
||||
{"question": RunnablePassthrough()}
|
||||
| question_rewrite_prompt
|
||||
| llm
|
||||
| StrOutputParser()
|
||||
| RunnableLambda(log_rewritten_question)
|
||||
)
|
||||
|
||||
rag_chain = (
|
||||
{"context": RunnableLambda(format_docs), "question": RunnablePassthrough()}
|
||||
| prompt
|
||||
| question_prompt
|
||||
| llm
|
||||
| StrOutputParser()
|
||||
)
|
||||
|
||||
|
||||
async def async_invoke(rag_chain, prompt: str):
|
||||
return rag_chain.invoke(prompt)
|
||||
full_chain = question_rewrite_chain | rag_chain
|
||||
|
||||
|
||||
async def main():
|
||||
(
|
||||
res1,
|
||||
res2,
|
||||
) = await asyncio.gather(
|
||||
async_invoke(rag_chain, "come si calcola l'angolo di fase?"),
|
||||
async_invoke(rag_chain, "cos'e' la massa magra?"),
|
||||
response = await full_chain.ainvoke(
|
||||
"Buongiorno, non so se è la mail specifica ma volevo se possibile dei chiarimenti per l’interpretazione dei parametri BCM /SMM/ASMM. Mi capita a volte di trovare casi in cui la BCM è aumentata ma allo stesso tempo SMM/ASMM hanno subito una piccola flessione in negativo (o viceversa). Se la parte metabolicamente attiva aumenta perchè può succedere che gli altri compartimenti si riducono?? E allo stesso tempo phA e BCM possono essere inversamente proporzionali?? So che il phA correla con massa e struttura + idratazione."
|
||||
)
|
||||
|
||||
print("RES1")
|
||||
print(res1)
|
||||
print("\n\nRES2")
|
||||
print(res2)
|
||||
print(response)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@@ -32,10 +32,12 @@ ragionamento: l'angolo di fase non e' esplicitamente menzionato, ma ciclo mestru
|
||||
- Usa markdown pulito e semplice per dare le risposte (elenchi, grassetto, tabelle).
|
||||
- Non usare introduzioni di cortesia o frasi di servizio (es: "Ecco la risposta", "In base alla ricerca...")
|
||||
|
||||
Alla fine dell'output aggiungi **sempre**:
|
||||
Alla fine dell'output aggiungi:
|
||||
|
||||
Per rispondere alla tua domanda, ... [qui ci va una risposta concisa all'utente, riassuntiva, e che si basi su quanto detto]
|
||||
|
||||
**Nota**: Evita questo finale se la domanda dell'utente non ha una risposta.
|
||||
|
||||
## VINCOLI E DIVIETI RIGOROSI
|
||||
|
||||
- Non fornire mai diagnosi o pareri medici.
|
||||
|
||||
19
question_rewrite_prompt.md
Normal file
19
question_rewrite_prompt.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# Riformattazione di domande
|
||||
|
||||
Sei un agente esperto nella riscrittura e semplificazione di domande in stile customer care / supporto. Il tuo compito e' ricevere una domanda che potrebbe essere mal formattata, contenente dettagli irrilevanti e poco chiara, e trasformarla in una domanda chiara, semplice e diretta ed ottimizzata per la comprensione di un LLM.
|
||||
|
||||
Nello specifico:
|
||||
|
||||
1. Rimuovi eventuali saluti e convenevoli.
|
||||
2. Rimuovi qualsiasi nome o riferimenti personali.
|
||||
3. Semplifica le frasi, i giri di parole, le ripetizioni.
|
||||
4. Poni il focus sulla domanda che l'utente vuole trasmettere.
|
||||
5. Estrai i dettagli che sono realmente rilevanti a chiarire la domanda.
|
||||
|
||||
## Output
|
||||
|
||||
Il tuo output sara' esclusivamente il testo della domanda riscritto secondo le regole sopra. Non aggiungere testo introduttivo, non aggiungere istruzioni, prompt, testo di sistema.
|
||||
|
||||
## Contenuto della domanda
|
||||
|
||||
{question}
|
||||
Reference in New Issue
Block a user