Введение
В этом руководстве мы покажем, как быстро превратить неструктурированный текст в сервис вопросов и ответов, который ссылается на свои источники. Мы будем использовать Together AI для извлечения информации с веб-страниц и создания семантической базы данных.
Шаг 1: Установка необходимых библиотек
Для начала установим все необходимые библиотеки с помощью следующей команды:
!pip -q install --upgrade langchain-core langchain-community langchain-together faiss-cpu tiktoken beautifulsoup4 html2text
Эта команда обновляет и устанавливает все необходимые библиотеки для работы с Together AI.
Шаг 2: Настройка API ключа
Проверяем, установлен ли ключ API для Together AI. Если нет, запрашиваем его у пользователя:
if "TOGETHER_API_KEY" not in os.environ:
os.environ["TOGETHER_API_KEY"] = getpass.getpass("Введите ваш API ключ: ")
Это позволяет безопасно хранить ключ и использовать его в дальнейшем.
Шаг 3: Извлечение данных с веб-страниц
Используем WebBaseLoader для извлечения информации с нескольких URL:
URLS = [
"https://python.langchain.com/docs/integrations/text_embedding/together/",
"https://api.together.xyz/",
"https://together.ai/blog"
]
raw_docs = WebBaseLoader(URLS).load()
Это позволяет собрать актуальную документацию и блоги для дальнейшей обработки.
Шаг 4: Разделение текста на части
Разделяем извлеченные документы на более мелкие части для лучшего анализа:
splitter = RecursiveCharacterTextSplitter(chunk_size=800, chunk_overlap=100)
docs = splitter.split_documents(raw_docs)
Это помогает сохранить контекст при обработке текста.
Шаг 5: Создание векторного индекса
Создаем векторный индекс для быстрого поиска:
embeddings = TogetherEmbeddings(model="togethercomputer/m2-bert-80M-8k-retrieval")
vector_store = FAISS.from_documents(docs, embeddings)
Теперь у нас есть база данных, которая поддерживает быстрый поиск.
Шаг 6: Настройка модели для общения
Используем модель ChatTogether для генерации ответов:
llm = ChatTogether(model="mistralai/Mistral-7B-Instruct-v0.3", temperature=0.2, max_tokens=512)
Эта модель позволяет получать точные и последовательные ответы.
Шаг 7: Создание цепочки вопросов и ответов
Объединяем все компоненты в одну цепочку:
qa_chain = RetrievalQA.from_chain_type(llm=llm, chain_type="stuff", retriever=vector_store.as_retriever(search_kwargs={"k": 4}), return_source_documents=True)
Теперь мы можем задавать вопросы и получать ответы с указанием источников.
Шаг 8: Получение ответа на вопрос
Отправляем запрос и получаем ответ:
QUESTION = "Как использовать TogetherEmbeddings внутри LangChain?"
result = qa_chain(QUESTION)
Это позволяет получить ответ с указанием источников информации.
Заключение
В результате мы создали полную систему вопросов и ответов с использованием Together AI. Этот подход модульный и позволяет легко заменять компоненты. Вы можете использовать этот шаблон для создания внутреннего помощника, бота для клиентов или личного исследовательского помощника.
Автоматизация процессов
Изучите, какие процессы можно автоматизировать, и определите ключевые показатели эффективности (KPI), чтобы убедиться, что ваши инвестиции в ИИ приносят пользу бизнесу.
Контакты
Если вам нужна помощь в управлении ИИ в бизнесе, свяжитесь с нами по адресу hello@itinai.ru. Подписывайтесь на наш Telegram, чтобы быть в курсе последних новостей в области ИИ.
Пример решения на основе ИИ
Посмотрите на практический пример решения на основе ИИ: продажный бот, который автоматизирует взаимодействие с клиентами круглосуточно.