You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
3. Importar Ollama + Inicializar Ollama e Executar primeiro Prompt
fromlangchain_community.llmsimportOllamaollama=Ollama(
base_url='http://localhost:11434',
model="llama3",
)
print(ollama.invoke("Porquê que o ceu é azul?"))
# Primeiro, é necessário instalar a biblioteca 'bs4' com: pip install bs4fromlangchain_community.document_loadersimportWebBaseLoader# Carrega a página da web especificadaloader=WebBaseLoader("https://www.eventbrite.pt/e/convergencia-2024-comunicacao-media-arte-e-tecnologia-tickets-913778154057")
data=loader.load()
5. Divide o texto carregado em partes menores
fromlangchain.text_splitterimportRecursiveCharacterTextSplitter# Configura o divisor de texto para criar segmentos de até 4000 caracteres com uma sobreposição de 1000 caracterestext_splitter=RecursiveCharacterTextSplitter(chunk_size=4000, chunk_overlap=1000)
all_splits=text_splitter.split_documents(data)
6. Criar embeddings e armazenar vetores
# É necessário instalar o ChromaDB com: pip install chromadbfromlangchain_community.embeddingsimportOllamaEmbeddingsfromlangchain_community.vectorstoresimportChroma# Cria embeddings para os documentos usando o modelo especificadooembed=OllamaEmbeddings(base_url="http://localhost:11434", model="mxbai-embed-large")
# Armazena os documentos divididos em um repositório de vetoresvectorstore=Chroma.from_documents(documents=all_splits, embedding=oembed)
7. Realizar uma busca por similaridade
# Define a pergunta a ser feitaquestion="Há algum convidado chamado Hugo Freire?"# Realiza a busca por documentos similares à perguntadocs=vectorstore.similarity_search(question)
# Imprime a quantidade de documentos encontradosforidx, docinenumerate(docs):
print(f"Document {idx+1}:")
print(doc.page_content)
print("\n"+"-"*50+"\n")