Вопрос проверяет понимание практических подходов к построению агента для корпоративной базы знаний с учётом ограничений по ресурсам и большого объёма документов.
Построение агента для корпоративной базы знаний с большим объёмом документов требует баланса между качеством ответов и стоимостью инфраструктуры. Полное дообучение LLM на всех документах — дорого и нецелесообразно, так как модель будет переобучаться на устаревшие данные. Оптимальный подход — RAG, который комбинирует поиск по базе и генерацию ответа.
from sentence_transformers import SentenceTransformer
import faiss
import numpy as np
# Загрузка модели эмбеддингов
model = SentenceTransformer('all-MiniLM-L6-v2')
# Пример чанков документов
chunks = [
"Компания использует Agile для управления проектами.",
"Политика безопасности требует двухфакторной аутентификации.",
"Отпуск согласовывается через HR-портал."
]
# Создание эмбеддингов
vectors = model.encode(chunks)
# Индексация в FAISS
index = faiss.IndexFlatL2(vectors.shape[1])
index.add(np.array(vectors))
# Поиск по запросу
query = "Как согласовать отпуск?"
query_vec = model.encode([query])
_, indices = index.search(np.array(query_vec), k=1)
print(chunks[indices[0][0]]) # Вывод: Отпуск согласовывается через HR-портал.RAG — это экономичный и масштабируемый способ построить агента для корпоративной базы знаний. Он позволяет быстро обновлять информацию, не переобучая модель, и подходит для большинства сценариев, где важна актуальность данных. Применяйте его, когда нужно обрабатывать тысячи документов с ограниченным бюджетом.