AccueilBlogTest technique LangChain pour les Data Engineers : agents, chains, tools
Guide recrutement data

Test technique LangChain pour les Data Engineers : agents, chains, tools

LangChain est le framework de reference pour construire des applications avec des LLMs. En entretien, on evalue la capacite a architecturer des agents robustes, pas juste a faire des POCs.

Data Builder·Juin 2025·6 min de lecture·Data Engineer · Data Scientist
Sommaire
  1. Concepts LangChain
  2. LCEL : LangChain Expression Language
  3. Agents et tools
  4. Gestion de la memoire
  5. LangGraph pour les workflows complexes
  6. LangSmith : observabilite
  7. Grille

1Architecture LangChain

Question discriminante

Quels sont les composants principaux de LangChain ?

2LCEL : LangChain Expression Language

Question discriminante

Qu est-ce que LCEL ? Pourquoi remplace-t-il les anciennes LLMChain ?

from langchain_openai import ChatOpenAI from langchain_core.prompts import ChatPromptTemplate from langchain_core.output_parsers import StrOutputParser from langchain_core.runnables import RunnablePassthrough llm = ChatOpenAI(model='gpt-4o-mini') # LCEL : composition avec l operateur | prompt = ChatPromptTemplate.from_template( 'Tu es un expert data. Reponds a : {question}' ) chain = prompt | llm | StrOutputParser() result = chain.invoke({'question': 'Qu est-ce que dbt ?'}) # RAG chain avec LCEL rag_chain = ( {'context': retriever, 'question': RunnablePassthrough()} | prompt | llm | StrOutputParser() )

3Agents et tools : le coeur de LangChain

Question discriminante

Comment creez-vous un agent qui peut interroger une base de donnees et chercher sur le web ?

from langchain.agents import create_tool_calling_agent, AgentExecutor from langchain_core.tools import tool import duckdb @tool def query_sales_db(query: str) -> str: '''Execute une requete SQL sur la base de ventes. Utiliser pour repondre aux questions sur les ventes, CA, clients.''' try: conn = duckdb.connect('sales.db') result = conn.execute(query).fetchdf() return result.to_string() except Exception as e: return f'Erreur SQL : {e}' @tool def search_web(query: str) -> str: '''Recherche sur le web des informations actuelles.''' # implementation avec Tavily, SerpAPI, etc. ... tools = [query_sales_db, search_web] agent = create_tool_calling_agent(llm, tools, prompt) executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

4Memoire et gestion du contexte

Question discriminante

Comment gerez-vous la memoire d un chatbot pour maintenir le contexte de la conversation ?

5LangGraph : agents multi-etapes

Question discriminante

Quand utilisez-vous LangGraph plutot qu un simple agent LangChain ?

6LangSmith : observabilite des LLMs

Question discriminante

Comment deboguez-vous et monitorez-vous un agent LangChain en production ?

7Grille par niveau

NiveauMaitriseSignal GONO-GO
ConfirmeLCEL, chains simples, RAG avec LangChainA construit un RAG avec LCEL, connait la syntaxe |N utilise que les anciennes LLMChain, ne connait pas LCEL
SeniorAgents avec tools, LangGraph, LangSmith, productionA deploye un agent avec tools custom, a trace avec LangSmith, connait LangGraphN a fait que des POCs, ne sait pas monitorer un agent en production

Vous recrutez un profil GenAI ?

Premier entretien gratuit. Rapport GO/NO-GO sous 48h.