Como usar incorporações em LangChain

Como Usar Incorporacoes Em Langchain



Embeddings são um índice de parentesco de cadeia de texto e são expressos por um vetor (lista) de números inteiros de ponto flutuante. A distância entre dois vetores serve como uma medida de quão intimamente conectados eles estão; quanto menor a distância, mais próxima a relação. A classe LangChain Embedding destina-se a servir como uma interface para incorporar serviços como OpenAI, HuggingFace e outros.

Dois métodos, embed_query() e embed_documents(), são fornecidos pela classe base. A primeira delas opera em um único documento, enquanto a outra pode operar em vários documentos.

Este artigo compreende a demonstração prática de embedding em LangChain usando os embeddings de texto OpenAI.







Exemplo: obtenção de um único texto de entrada usando a incorporação de texto OpenAI

Para a primeira ilustração, inserimos uma única string de texto e recuperamos a incorporação de texto OpenAI para ela. O programa começa instalando as bibliotecas necessárias.



A primeira biblioteca que precisamos instalar em nosso projeto é a LangChain. Ele não vem com a biblioteca padrão do Python, então temos que instalá-lo separadamente. Como o langchain está disponível no PyPi, podemos instalá-lo facilmente usando o comando pip no terminal. Assim, executamos o seguinte comando para instalar a biblioteca LangChain:



$ pip instalar langchain

A biblioteca é instalada assim que os requisitos são atendidos.





Também precisamos que a biblioteca OpenAI esteja instalada em nosso projeto para que possamos acessar os modelos OpenAI. Esta biblioteca pode ser inaugurada escrevendo o comando pip:

$ pip instalar openai

Agora, ambas as bibliotecas necessárias estão instaladas em nosso arquivo de projeto. Temos que importar os módulos necessários.



de langchain. incorporações . openai importar OpenAIEmbeddings

importar os

os . aproximadamente [ 'OPENAI_API_KEY' ] = 'sk-YOUR_API_KEY'

Para obter os embeddings OpenAI, temos que importar a classe OpenAIEmbeddings do pacote “langchain.embeddings.openai”. Em seguida, definimos a chave da API como a variável de ambiente. Precisamos da chave secreta da API para acessar os diferentes modelos OpenAI. Essa chave pode ser gerada a partir da plataforma OpenAI. Basta se inscrever e obter uma chave secreta na seção 'visualizar chave secreta' do seu perfil. Essa chave pode ser usada em diferentes projetos para um cliente específico.

As variáveis ​​de ambiente são usadas para armazenar as chaves de API para um ambiente específico, em vez de codificá-las nas funções. Portanto, para definir a chave da API como variável de ambiente, precisamos importar o módulo “os”. O método os.environ() é usado para definir a chave API como a variável de ambiente. Ele contém um nome e um valor. O nome que definimos é “OPENAI_API_KEY” e a chave secreta é definida como “value”.

modelo = OpenAIEmbeddings ( )

Entrada de texto = 'Isto é para demonstração.'

resultado = modelo. embed_query ( Entrada de texto )

imprimir ( resultado )

imprimir ( apenas ( resultado ) )

Já fizemos interface com o wrapper de incorporação OpenAI. A partir daí, chamamos o construtor da classe OpenAIEmbedding. O OpenAI fornece uma variedade de modelos de incorporação, mas você precisa pagar por eles. Aqui, vamos com o modelo de incorporação padrão do OpenAI, ou seja, text-embedding-ada-002, que é gratuito. Quando você não fornece nenhum nome de modelo como parâmetro, o modelo padrão é usado.

Em seguida, especificamos o texto do qual devemos obter a incorporação. O texto é especificado como “Isto é para demonstração”. e armazená-lo na variável input_text. Depois disso, o método embed_query() para incorporar o texto fornecido é chamado com o modelo que é usado e o input_text que contém a string de texto para recuperar o embedding que é fornecido como parâmetro. As incorporações recuperadas são atribuídas ao objeto de resultado.

Por fim, para colocar o resultado em exibição, temos o método print() do Python. Simplesmente temos que passar o objeto que armazena o valor que queremos mostrar para o método print(). Portanto, invocamos essa função duas vezes; primeiro para exibir a lista de números flutuantes e segundo para imprimir o comprimento desses valores usando o método len() com ele.

A lista de valores flutuantes pode ser vista no seguinte instantâneo com o comprimento desses valores:

Exemplo: obtenção de texto/documento de entrada múltipla usando a incorporação de texto OpenAI

Além de obter a incorporação de um único texto de entrada, também podemos recuperá-lo para várias strings de entrada. Nós implementamos isso nesta ilustração.

Já instalamos as bibliotecas na ilustração anterior. Outra biblioteca que precisamos instalar aqui é a biblioteca tiktoken do Python. Escreva o comando no terminal para instalá-lo:

$ pip instalar tiktoken

O pacote tiktoken é um tokenizador de codificação de pares de bytes. Ele é usado com os modelos OpenAI e divide o texto em tokens. Isso é usado porque as strings fornecidas às vezes são um pouco longas para o modelo OpenAI especificado. Então, ele divide o texto e os codifica em tokens. Agora, vamos trabalhar no projeto principal.

de langchain. incorporações . openai importar OpenAIEmbeddings

modelo = OpenAIEmbeddings ( openai_api_key = 'sk-YOUR_API_KEY'

strings = ['
Esse é para demonstração. ', ' Esse corda é também para demonstração. ', ' Esse é outra demonstração corda . ', ' Este é durar corda . ']

resultado = model.embed_documents(strings)

imprimir(resultado)

print(len(resultado))

A classe OpenAIEmbeddings é importada do pacote “langchain.embeddings.openai”. No exemplo anterior, definimos a chave de API como a variável de ambiente. Mas para este, passamos diretamente para o construtor. Portanto, não precisamos importar o módulo “os” aqui.

Depois de invocar o modelo OpenAI que é o OpenAIEmbeddings, passamos a chave secreta da API para ele. Na próxima linha, as strings de texto são especificadas. Aqui, armazenamos quatro strings de texto nas strings de objeto. Essas strings são “Isto é para demonstração”, “Esta string também é para demonstração”, “Esta é outra string de demonstração” e “Esta é a última string”.

Você pode especificar várias strings simplesmente separando cada uma com uma vírgula. Na instância anterior, o método embed_text() é chamado, mas não podemos usá-lo aqui, pois ele funciona apenas para uma única string de texto. Para incorporar várias strings, o método que temos é o embed_document(). Então, nós o chamamos com o modelo OpenAI especificado e strings de texto como argumento. A saída é mantida no objeto de resultado. Por fim, para exibir a saída, o método print() do Python é utilizado com o resultado do objeto como parâmetro. Além disso, queremos ver o comprimento desses valores flutuantes. Assim, invocamos o método len() dentro do método print().

A saída recuperada é fornecida na seguinte imagem:

Conclusão

Este post discutiu o conceito de incorporação no LangChain. Aprendemos o que é incorporação e como funciona. Uma implementação prática de incorporar as strings de texto é mostrada aqui. Realizamos duas ilustrações. O primeiro exemplo trabalhou na recuperação da incorporação de uma única string de texto e o segundo exemplo compreendeu como obter a incorporação de várias strings de entrada usando o modelo de incorporação OpenAI.