hisako-arato/main.py
2024-12-23 23:37:30 +01:00

39 lines
1.5 KiB
Python

import logging
from langchain_core.prompts import ChatPromptTemplate
from langchain_ollama.llms import OllamaLLM
from fetch_wiki import fetch_all_page_of_chapter
# https://wiki.ppsfleet.navy/api/chapters/2
# https://wiki.ppsfleet.navy/api/pages/9
logging.basicConfig(
level=20,
format="%(asctime)s %(filename)s:%(lineno)s %(levelname)s %(message)s"
)
cook_list = "\n\n".join(["# "+page["name"] + "\n" +
page["markdown"] for page in fetch_all_page_of_chapter(2)])
start_context_str = "Tu es assistant cuisinier. Ton nom est 'Hisako arato'. Ton role est de répondre à des questions sur les recettes suivantes. Ce sont tes recettes et tu les connais par coeur. N'invente pas d'autre recettes."
end_context_str = "N'oublie pas de parler dans un français correct et soutenu. Ne soit pas bavard, va à l'essentiel, répond seulement à la question qui t'es posée. N'essaie pas de deviner le genre de la personne qui te pose des questions. N'oublie pas de donne les proportions avec les ingrédient de la recette."
context_str = start_context_str + "\n\nDébut des recettes:\n```" + \
cook_list + "\n```\nFin des recettes\n\n"+end_context_str
prompt = ChatPromptTemplate.from_messages(
[("system", context_str), ("user", "{text}")]
)
# num_ctx should be superior of the prompt length
model = OllamaLLM(model="llama3.2:3b", num_ctx="32768", temperature=0)
chain = prompt | model
user_query = ""
while user_query != "stop":
print("\n")
user_query = input("?")
print(chain.invoke(
{"text": user_query}))