31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
import os
|
|
from dotenv import load_dotenv
|
|
from langchain_google_genai import ChatGoogleGenerativeAI
|
|
from langchain_core.prompts import ChatPromptTemplate
|
|
|
|
# Charger les variables du fichier .env
|
|
load_dotenv()
|
|
api_key = os.getenv("GOOGLE_API_KEY")
|
|
|
|
# Initialisation du modèle
|
|
llm = ChatGoogleGenerativeAI(model="gemini-2.5-flash",google_api_key=api_key)
|
|
|
|
def expert_en_codage(concept):
|
|
# 1. On définit un Template (le "moule" de la question)
|
|
prompt = ChatPromptTemplate.from_messages([
|
|
("system", "Tu es un expert en programmation Python. Explique les concepts de manière simple avec un exemple de code court."),
|
|
("human", "Explique-moi le concept suivant : {concept}")
|
|
])
|
|
|
|
# 2. On crée une "chaîne" (Chain) simple
|
|
chain = prompt | llm
|
|
|
|
# Au lieu de .invoke(), on utilise .stream()
|
|
# Cela retourne un générateur (itérable)
|
|
for chunk in chain.stream({"concept": concept}):
|
|
# Chaque 'chunk' est un morceau de la réponse
|
|
# On utilise end="" pour ne pas revenir à la ligne et flush=True pour forcer l'affichage
|
|
print(chunk.content, end="", flush=True)
|
|
|
|
# Test
|
|
expert_en_codage("Les variables") |