Руководство по созданию бота YouTube с помощью LangChain и Pinecone Vectorstore 🤖📹

Просмотр часового видеоролика на YouTube по любой научной теме, безусловно, непростая задача. ИИ может помочь помочь с этим.

К концу этого поста вы сможете создать свой собственный чат-бот для YouTube с искусственным интеллектом.

Я проведу вас через весь процесс шаг за шагом. Вы сможете:

  • Создать модели OpenAI
  • Загрузить исходные документы
  • Разделить текст на фрагменты
  • Создание и хранение векторных вкраплений
  • Задать запрос

Это инфографика с высокоуровневой логикой работы ИИ:

Руководство по созданию бота YouTube с помощью LangChain и Pinecone Vectorstore 🤖📹

Инициирование модели OpenAI
Запустим модель LLM и добавим в код ключ API. Мы будем использовать модель gpt-3.5-turbo , но вы можете выбрать любую другую.

from langchain.llms import OpenAI
llm = OpenAI(model_name = 'gpt-3.5-turbo',
             openai_api_key = 'ваш ключ',
             temperature = 0.7)

Загрузка исходго видео.


Скопируйте и вставьте ссылку на видео с YouTube. Загрузите текст видео с помощью функции loader.load() и сохраните его в переменной, как показано ниже.

from langchain.document_loaders import YoutubeLoader
loader = YoutubeLoader.from_youtube_url('<https://www.youtube.com/watch?v=ogEalPMUCSY&pp=ygUJTGFuZ2NoaWFu>')
doc = loader.load()

Разделение текста на фрагменты
Размделим весь PDF-файл с текстом из видео на фрагменты с помощью функциии RecursiveCharacterTextSplitter. Установим размер фрагмента 1000 и значение перекрытия фрагментов 10. Это позволит разбить документ на фрагменты по 1000 слов.

from langchain.text_splitter import RecursiveCharacterTextSplitter
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=10)
text_chunks = text_splitter.split_documents(doc)

Создание и хранение векторных эмбеддингов
Настроим функцию эмбедингов OpenAIEmbeddings и хранилище векторов Pinecone. Подключим индекс pinecone. Загрузите все текстовые фрагменты в векторное хранилище с помощью функции Pinecone.from_texts.

from langchain.vectorstores import Pinecone
from langchain.embeddings import OpenAIEmbeddings
import pinecone
import tqdm
import os
embeddings = OpenAIEmbeddings(openai_api_key= 'ваш апи ключ')
pinecone.init(
    api_key= 'PINECONE_API_KEY'
    environment = 'PINECONE_API_ENVIRON'
)
index_name = 'chatchain'
docsearch = Pinecone.from_texts(texts = [t.page_content for t in text_chunks],embedding=embeddings, index_name=index_name)

Настроим запросы
similarity_searh и k=4 б выдаст 4 наиболее релевантных фрагмента, относящихся к нашему запросу. Передайте эти документы в load_qa_chain. Он просуммирует фрагменты в соответствии с нашим запросом и выдаст наилучший возможный ответ.

from langchain.chains.question_answering import load_qa_chain

query = 'what is vector embeddings'
docs = docsearch.similarity_search(query, k=4)
chain = load_qa_chain(llm, chain_type = 'stuff')
chain.run(input_documents=docs, question=query)

Поздравляем! С помощью этого чат-бота вы можете загрузить любое видео, задать любые вопросы по нему и получить искомое за считанные секунды с помощью ии-бота.

+1
6
+1
3
+1
0
+1
0
+1
0

Один комментарий

  1. Здравствуйте. Помогите пожалуйста. Уже в первом коде выдает ошибку, что OpenAI неизвестен. А так до кода я установил pip install OpenAI

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *