Procesamiento de embeddings
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.