Eu também tive problemas para utilizar os modelos do openai, como ainda estou aprendendo, preferi não depositar créditos ainda nas ferramentas. Eu vinha utilizando o Groq e para uso regular ele me serviu até que muito bem eu diria, mas ele não suporta essa parte de embeddings. Eu to utilizando agora o gemini, que tem modelos de embeddings gratuítos (com limitações). Uma dica super importante pra se trabalhar nesses modelos gratuitos, o pdf das regras de futebol disponibilizado no curso é bem grande, tem 232 páginas de conteúdo, se for gerar embeddings com esse arquivo, vai estourar toda a cota gratuíta e vai retornar o error code 429. Sugiro mandar o proprio chat gpt ou gemini gerar um pdf com regras de futebol mais básico e utilizar ele.
As dependencias que to utilizando do google: (pip list | grep google)
google-auth=2.49.2
google-genai=1.73.1
googleapis-common-protos=1.74.0
langchain-google-genai=4.2.1
from langchain_google_genai import GoogleGenerativeAIEmbeddings, ChatGoogleGenerativeAI
from dotenv import load_dotenv
load_dotenv()
google_api_key = os.getenv("GOOGLE_API_KEY")
document = PyPDFLoader(str(DOCUMENT_PATH)).load()
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=1000,
chunk_overlap=100,
)
chunks = text_splitter.split_documents(document)
embeddings = GoogleGenerativeAIEmbeddings(
model="models/gemini-embedding-001",
api_key=google_api_key
)
vectorstore = Chroma.from_documents(
documents=chunks,
embedding=embeddings,
persist_directory="path"
)