Когда выбирать LangSmith
Подходит
- Нужно видеть полный путь запроса: вызовы модели, поиск, инструменты, и разбирать по трассам плохие ответы.
- Нужно строить датасеты из реальных трасс и запускать по ним эксперименты с оценщиками.
- Приложение уже написано на LangChain: платформу выпускает та же команда (но она работает и с другими фреймворками).
- Нужна одна платформа для трассировки, оценки и мониторинга, а не набор разрозненных скриптов.
Не подходит
- Нужна полностью open-source платформа под лицензией MIT — посмотрите Langfuse.
- Нужен лёгкий локальный прогон evals в CI без внешней платформы — подойдут Promptfoo или DeepEval.
- Данные нельзя отправлять во внешние сервисы, а self-hosted вариант вам не подходит.
Установка
pip install -U langsmith openevals openainpm install langsmith openevals openaiПримеры тестов
Эксперимент: датасет, целевая функция и LLM-судья
1from langsmith import Client, wrappers
2from openai import OpenAI
3from openevals.llm import create_llm_as_judge
4from openevals.prompts import CORRECTNESS_PROMPT
5
6openai_client = wrappers.wrap_openai(OpenAI())
7
8
9def target(inputs: dict) -> dict:
10 response = openai_client.chat.completions.create(
11 model="gpt-5-mini",
12 messages=[
13 {"role": "system", "content": "Answer the following question accurately"},
14 {"role": "user", "content": inputs["question"]},
15 ],
16 )
17 return {"answer": response.choices[0].message.content.strip()}
18
19
20def correctness_evaluator(inputs: dict, outputs: dict, reference_outputs: dict):
21 evaluator = create_llm_as_judge(
22 prompt=CORRECTNESS_PROMPT,
23 model="openai:o3-mini",
24 feedback_key="correctness",
25 )
26 return evaluator(inputs=inputs, outputs=outputs, reference_outputs=reference_outputs)
27
28
29def main():
30 client = Client()
31 experiment_results = client.evaluate(
32 target,
33 data="Sample dataset",
34 evaluators=[correctness_evaluator],
35 experiment_prefix="first-eval-in-langsmith",
36 max_concurrency=2,
37 )
38 print(experiment_results)
39
40
41if __name__ == "__main__":
42 main()Пример из quickstart документации. Для запуска нужны переменные окружения LANGSMITH_TRACING, LANGSMITH_API_KEY и ключ провайдера модели. Оценщик здесь построен как LLM-as-judge из библиотеки openevals; можно также писать собственные оценщики кодом.
Типичные ошибки
- Данные уходят в платформу
- Трассы содержат вопросы пользователей и ответы модели. Заранее решите, какие данные можно отправлять, и настройте маскирование персональных данных или используйте self-hosted вариант.
- Оценщик без проверки
- LLM-as-judge оценщики зависят от модели-судьи и промпта. Сверьте их вердикты с человеческой разметкой на небольшом наборе, прежде чем полагаться на цифры в дашборде.
- Датасет из трасс без ревью
- Автоматически собранные примеры могут содержать ошибки и персональные данные. Просматривайте их и добавляйте ожидаемое поведение вручную для критичных сценариев.
- Эксперименты без версий
- Сравнение экспериментов имеет смысл, только если известно, что изменилось: промпт, модель, параметры. Называйте эксперименты через experiment_prefix и фиксируйте версии артефактов.
Вопросы на собеседовании по LangSmith
- Чем трассировка (tracing) отличается от оценки (evaluation) и как они связаны?
- Как собрать датасет из реальных трасс и что нужно проверить перед использованием?
- Как устроен эксперимент в LangSmith: целевая функция, данные, оценщики?
- Какие бывают оценщики и в чём риск LLM-as-judge?
- Как решить, использовать облачную платформу или self-hosted?
Отработать ответы можно на мок-собеседовании.
Частые вопросы
Что такое LangSmith?
Платформа LangChain для наблюдаемости и оценки LLM-приложений: трассы запросов, датасеты, эксперименты с оценщиками, мониторинг качества в продакшене и работа с промптами.
Нужен ли LangChain, чтобы использовать LangSmith?
Нет. В документации указано, что LangSmith работает с разными фреймворками и провайдерами, среди них OpenAI, Anthropic, CrewAI, Vercel AI SDK и Pydantic AI.
Где можно развернуть LangSmith?
Документация называет три варианта: облако, гибридный и self-hosted. Для создания аккаунта не требуется банковская карта.
Какие бывают оценщики в LangSmith?
В quickstart описаны два вида: LLM-as-judge на готовых промптах (библиотека openevals) и полностью собственные оценщики, которые вы пишете кодом.