some langchain llm call
This commit is contained in:
31
system_llm_stream.py
Normal file
31
system_llm_stream.py
Normal file
@@ -0,0 +1,31 @@
|
||||
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")
|
||||
Reference in New Issue
Block a user