Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+1 582новые вакансии за сутки·92 562вакансии открыты сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании7 220
РезюмеAIПодготовкаСтатьи
BoostТарифыBoost
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 402 кандидата открыты к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python17 105
  • Облачные технологии14 068
  • QA вакансии3 460
  • Backend вакансии2 098
  • Инженер данных1 796
  • Продакт-менеджер1 248

Разработка

  • Android1 866
  • iOS1 699
  • Fullstack вакансии979
  • AI вакансии951
  • Frontend вакансии742
  • Mobile вакансии44

По стеку

  • Go8 651
  • Java6 544
  • Node.js2 018
  • .NET1 719
  • Kotlin1 623
  • Rust1 453
  • C#709
  • PHP683
  • C++571

DevOps и инфраструктура

  • Kubernetes7 761
  • DevOps вакансии6 057
  • Linux-инфраструктура5 492
  • Terraform / IaC4 259
  • CI/CD3 240
  • Мониторинг и Observability1 782
  • SRE565
  • Кибербезопасность450

Аналитика и данные

  • Data Scientist1 127
  • Бизнес-аналитик925
  • Аналитик данных845
  • Системный аналитик154

Другие направления

  • Проджект-менеджер611
  • UI/UX дизайн145
  • Ручное тестирование14

По регионам

  • Вакансии в США43 686
  • Вакансии в Европе23 668
  • Вакансии в Канаде4 413
  • Работа в России3 909

По формату

  • Удалённые вакансии73 889
  • Релокация в США43 686
  • Гибридная работа12 392
  • Офисная работа7 088

По уровню

  • Senior вакансии42 236
  • Middle вакансии20 545
  • Junior вакансии6 653

Сейчас нанимают

Все компании
  • Wise190 вакансий
  • Rakuten189 вакансий
  • ASML166 вакансий
  • Grab138 вакансий
  • Celonis39 вакансий
  • Spotify36 вакансий
  • Adyen29 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • Darktrace16 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме LangChainВсе вопросы
LangChainMiddleТеория

Что такое vector store в LangChain и какие векторные базы данных чаще всего используются (Chroma, Pinecone, FAISS)?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

Vector store в LangChain — абстракция над векторной базой данных, позволяющая индексировать документы по эмбеддингам и выполнять similarity search. Chroma — локальная, Pinecone — управляемое облако, FAISS — быстрый in-memory индекс от Meta.

Chroma — локальная векторная БД

Chroma — embedded база данных, работает в процессе Python или как отдельный сервер. Лучший выбор для прототипов, разработки и небольших проектов (до ~100k документов).

from langchain_chroma import Chroma
from langchain_openai import OpenAIEmbeddings
from langchain_core.documents import Document

embeddings = OpenAIEmbeddings(model="text-embedding-3-small")

# Создание и наполнение
vectorstore = Chroma(
    collection_name="docs",
    embedding_function=embeddings,
    persist_directory="./chroma_db",  # Сохраняем на диск
)

docs = [
    Document(page_content="FastAPI is a modern Python web framework", metadata={"source": "docs.fastapi.tiangolo.com"}),
    Document(page_content="Ktor is a Kotlin async web framework", metadata={"source": "ktor.io"}),
]
vectorstore.add_documents(docs)

# Поиск
results = vectorstore.similarity_search("Python web framework", k=2)
for doc in results:
    print(doc.page_content, doc.metadata)

Что такое vector store

Vector store (векторное хранилище) — база данных, оптимизированная для хранения и поиска векторов эмбеддингов. В LangChain все vector stores реализуют единый интерфейс VectorStore с методами add_documents, similarity_search и as_retriever. Это позволяет переключаться между реализациями без изменения кода пайплайна.

FAISS — быстрый in-memory индекс

FAISS (Facebook AI Similarity Search) — библиотека от Meta для высокопроизводительного поиска ближайших соседей. Работает в памяти, требует явного сохранения на диск. Лучший выбор для batch-обработки и задач с жёсткими требованиями к latency.

from langchain_community.vectorstores import FAISS

# Создание из документов
vectorstore = FAISS.from_documents(docs, embeddings)

# Сохранение и загрузка
vectorstore.save_local("faiss_index")
loaded = FAISS.load_local(
    "faiss_index",
    embeddings,
    allow_dangerous_deserialization=True,  # Требуется явно
)

# Similarity search с score
results = loaded.similarity_search_with_score("web framework", k=3)
for doc, score in results:
    print(f"Score: {score:.4f} | {doc.page_content[:80]}")

Pinecone — управляемое облако

Pinecone — serverless облачный vector store с автоматическим масштабированием. Подходит для production при больших объёмах (миллионы векторов) и необходимости масштабироваться без DevOps.

from pinecone import Pinecone, ServerlessSpec
from langchain_pinecone import PineconeVectorStore

# Инициализация
pc = Pinecone(api_key="pc-...")
index_name = "langchain-demo"

if index_name not in pc.list_indexes().names():
    pc.create_index(
        name=index_name,
        dimension=1536,  # text-embedding-3-small
        metric="cosine",
        spec=ServerlessSpec(cloud="aws", region="us-east-1"),
    )

vectorstore = PineconeVectorStore(
    index=pc.Index(index_name),
    embedding=embeddings,
)
vectorstore.add_documents(docs)

retriever = vectorstore.as_retriever(search_kwargs={"k": 5})

Использование как Retriever в цепочке

from langchain_core.runnables import RunnablePassthrough
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI

retriever = vectorstore.as_retriever()
prompt = ChatPromptTemplate.from_template(
    "Answer the question based on this context:\n{context}\n\nQuestion: {question}"
)

chain = (
    {"context": retriever, "question": RunnablePassthrough()}
    | prompt
    | ChatOpenAI(model="gpt-4o-mini")
    | StrOutputParser()
)
print(chain.invoke("What is Ktor?"))

Подводные камни

  • Chroma persist_directory не создаётся автоматически при первом запуске если путь не существует — создайте директорию заранее.
  • FAISS load_local требует allow_dangerous_deserialization=True из-за pickle — не загружайте индексы из ненадёжных источников.
  • Размерность эмбеддингов должна совпадать между созданием индекса и запросом — смена модели эмбеддингов требует переиндексации.
  • Pinecone serverless тарифицирует per-запрос — высокий трафик без кэширования быстро увеличивает счёт.
  • Metadata-фильтры поддерживаются не всеми store одинаково: Chroma поддерживает where, FAISS — нет, Pinecone — через filter.
  • Поиск по косинусному сходству возвращает результаты даже при низком quality — добавляйте пороговую фильтрацию по score.
  • При использовании Chroma в production-сервере (не embedded) нужен отдельный Docker-контейнер с персистентным volume.

Частые вопросы на собеседовании

  • Как работают инструменты (tools) в LangChain и как создать кастомный инструмент?
  • Что такое RAG (Retrieval-Augmented Generation) и как реализовать его с помощью LangChain?
  • В чём разница между invoke(), stream() и batch() в интерфейсе Runnable в LangChain?
  • Что такое LCEL (LangChain Expression Language) и как он использует оператор | для компоновки цепочек?

Типичные ошибки

  • Объяснять vector stores только синтаксисом без shape, dtype, состояния или режима выполнения.
  • Игнорировать leakage, воспроизводимость, пустые входы и скрытые копии данных.
  • Не проверять production-симптомы: latency, память, ретраи, дрейф качества и несовпадение версий.

Что проверяет интервьюер

  • Может ли связать vector stores с реальным контрактом входов и выходов.
  • Упоминает ли тесты, метрики, reproducibility и диагностику ошибок.
  • Видит ли различие между demo-кодом в ноутбуке и production-пайплайном.

Как вы знаете этот вопрос?

Проверить себя по теме LangChain →

Источники

  • https://docs.langchain.com/oss/python/langchain/knowledge-base
  • https://docs.langchain.com/oss/python/langchain/models
←Предыдущий вопросКак оценивать качество LangChain/RAG-пайплайна, а не только проверять, что ответ «выглядит нормально»?Следующий вопрос→Какие production-риски есть у LangChain: latency, cost, retries, observability, prompt boundaries и hallucinated tool calls?

Связанные темы

LangChaindata-aillm-orchestrationtool-calling