logo

Embeddings OpenAi - Parte3

He continuado con mis investigaciones acerca de los embeddings y no me ha sido difícil procesar un documento pdf. Con las funciones desarrolladas para el chatbot, he reutilizado la función get_embedding y divido el documento en varias páginas y cada una de ellas en párrafos. He generado un documento .csv con los embeddings de este documento, y el código es tal que asi:

import os
from openai import OpenAI
from langchain.document_loaders import PyPDFLoader
from langchain.text_splitter import CharacterTextSplitter
import pandas as pd

os.environ['OPENAI_API_KEY'] = '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'

client = OpenAI(
    # This is the default and can be omitted
    api_key=os.environ.get("OPENAI_API_KEY"),
)

def get_embedding(text, model="text-embedding-ada-002"):
   text = text.replace("\n", " ")
   return client.embeddings.create(input = [text], model=model).data[0].embedding


loader = PyPDFLoader('./resumen.pdf')
pages = loader.load_and_split()

content = pages[1].page_content

# print(content)

split = CharacterTextSplitter(chunk_size=400, separator='.\n')

textos = split.split_documents(pages)

#print(textos[4].page_content)

textos = [str(i.page_content) for i in textos]
parrafos = pd.DataFrame(textos,columns=['texto'])

# print(parrafos)

parrafos['Embedding'] = parrafos['texto'].apply(lambda x:get_embedding(x))

parrafos.to_csv('resumen.csv')

He seguido teniendo problemas con las dependencias ya que todavía no domino el arte de utilizar Python. Todo se verá. Poco a poco. He conseguido visualizar que el csv generado no me permite buscar con Gradio. He utilizado el fichero del chatbot y tampoco. Así que algo se me debe estar olvidando. Lo dejo por hoy. Estoy seguro que un descanso y un buen café y daré con la solución.