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 openaiAgora, 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 tiktokenO 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 OpenAIEmbeddingsmodelo = 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.