Nova postagem

Pesquisar

Artigo
· Jun. 17, 2024 5min de leitura

LangChain – Libertando o potencial total das LLMs

image

Olá Comunidade

Nesse artigo, vou introduzir minha aplicação irisChatGPT construída no LangChain Framework.

Primeiramente, vamos ter uma breve visão geral desse framework.

O mundo inteiro está falando sobre o ChatGPT e como as Large Language Models (LLMs - Grandes modelos de linguagem) se tornaram tão poderosas e tem performado além das expectativas, oferecendo conversas quase humanas. Isso é só o começo de como isso pode ser aplicado em qualquer empresa e qualquer domínio!

A questão mais importante que permanece é como aplicar esse poder para dados específicos de domínio e comportamento de respostas específicas de cenário às necessidades da empresa.

LangChain fornece uma resposta estruturada e efetiva a esse problema nas suas mãos! O LangChain é a tecnologia que pode ajudar a descobrir o imenso potencial das LLMs para construir aplicações surpreendentes ao proporcionar uma camad de abstração ao redor das LLMs e usá-las de maneira fácil e eficaz. O LangChain é uma framework que permite desenvolvimento fácil e rápido de aplicações que usam Grandes Modelos de Linguagem, por exemplo, GPT-3.

Essa framework, no entanto, introduz possibilidades adicionais, por exemplo, a de usar facilmente fontes de dados externos, como a Wikipedia para ampliar as capacidades oferecidas pelo modelo. Eu tenho certeza que vocês todos provavelmente já tentaram usar o Chat-GPT e descobriram que ele falha em responder sobre eventos que ocorreram após uma certa data. Nesse caso, uma pesquisa na Wikipedia poderia ajudar o GPT a responder mais perguntas.


Estrutura do LangChain

Essa framework é organizada em seis módulos. Cada um permite que você gerencie um aspecto diferente da interação com LLM. Vamos ver quais são esses módulos.

  • Modelos: Permite que você instancie e use três tipos diferentes de modelos de linguagem, que são:
    • Large Language Models (LLMs): esses modelos fundacionais de machine learning que são capazes de entender lingugem natural. Eles aceitam stringes na entradas e geram strings na saída.
    • Chat Models: modelos alimentados por LLM, mas especializados para conversar com o usuário. Você pode ler mais aqui.
    • Text Embedding Models: esses modelos são usados para projetar dados textuais em um espaço geométrico. Esses modelos recebem uma entrada de texto e retornam uma lista de números, a  incorporação do texto.
  • Prompts: O prompt é como nós interagimos com o modelo para tentar obter uma saída dele. Saber como escrever  um prompt efetivo é de suma importância. Esse módulo da framework nos permite gerenciar prompts melhores. Por exemplo, podemos criar templates (modelos) que podemos reutilizar.
  • Indexes: Os melhores modelos frequentemente são aqueles que são combinados com uma parte dos seus dados textuais, para adicionar contexto ou explicar algo ao modelo. Esse módulo nos ajuda a fazer exatamente isso.
  • Chains: Muitas vezes, para resolver tarefas, uma só chamada a API para um LLM não é suficiente. Esse mídulo permite que outras ferramentas sejam integradas. Por exemplo, uma chamada pode ser uma cadeia composta com o propósito de buscar informações da Wikipedia e retornar essa informação como entrada ao modelo. Esse módulo permite que muitas ferramentas sejam concatenadas com o objetivo de resolver tarefas complexas.
  • Memory: Esse módulo permite que criemos um estado persistente dentre chamadas a um modelo. Ser capaz de usar um modelo que se recorda do que foi dito no passado com certeza vai melhorar nossa aplicação.
  • Agents: Um agente é um LLM que faz uma decisão, toma uma ação, faz uma observação sobre o que foi feito e continua nessa maneira até completar sua tarefa. Esse módulo fornece um conjunto de agentes que podem ser usados.

Agora vamos observar melhor os detalhes e ver como implementar códigos aproveitando os diferentes módulos.

Como funciona o LangChain
 

Passo 1 :
Usuário envia a questão ao LangChain

Passo 2 :
LangChain envia a questão ao Embedding Model (modelo de incorporação)


Passo 3 :
Embedding model convertse o texto em vetores, já que o texto é armazenado como vectors (vetores) na base de dados e retorna ao LangChain 

Passo 4 :
LangChain envia esses vectores à base de dados de vetores (existem várias bases de dados de vetores, estamos usando a chroma na nossa aplicação).


Passo 5 :
A base de dados de vetores retorna os vetores Top K Approximately Nearest Neighbors (KNN) (Top K vizinhos aproximadamente mais perto)


Passo 6 :
LangChain envoa a questão com os vetores KNN para o Large Language Models (LLMs) (Estamos usando OpenAI na nossa aplicação)

Passo 7 :
LLM retorna a resposta ao LangChain

Passo 8 :
Langchain retorna a resposta ao usuário


Sobre a Aplicação

A aplicação irisChatGPT nivela a funcionalidade de uma das mais usadas frameworks LangChain construídas em torno de Large Language Models (LLMs). LangChain é uma framework que permite o desenvolvimento rápido e fácil de aplicações que usam grandes modelos de linguagem. A aplicação é construída usando ObjectScript com a ajuda da funcionalidade intersystems Embedded Python. Ela também contem a aplicação web Streamlit, que é um framework de Python open-source (código aberto) feito para criar apps bonitos para aprendizado de máquina e ciências de dados.

 

Recursos

Abaixo está a lista de recursos junto com as fotos da tela relacionadas.

 

Referência Intersystems ObjectScript ChatGPT Embutida

 

Competição InterSystems Grand Prix 2023 ChatGPT Embutido

 

ChatGPT com servidor FHIR







Responder questões sobre uma base de dados Cache usando SQLDatabaseChain
 

 

Create your own chatGPT model and chat with it
 

OpenAI ChatGPT
 

Pesquisa Wikipedia 
 

Pesquisa na internet usando a ferramenta de pesquisa geral DuckDuckGo (DDG)
 

Gerar código Python usando a funcionalidade Python REPL LangChain functionality

 

 

Aplicação Web Streamlit  ONLINE DEMO     

Referência Objectscript
 
Competição Grand Prix 2023


ChatGPT Pessoal

OpenAI ChatGPT
 

 

Obrigado!

Discussão (0)1
Entre ou crie uma conta para continuar
Pergunta
· Jun. 17, 2024

How to apply huge amount of Biz Rules on a cloned object by using Rule Editor?

Hi dear Sir,

I see the DTL chain defined in IRIS, which is applicable if regarding transformation from one protocol to another, and fields/segments mapping:

But Business Rules may be applied on the same message (my case is the same result message HL7 ORU_R01), without transformation from protocol formats to another formats, without mapping from sources to targets.

Below is a diagram with desired workflow on a single cloned Object(This is also the efficient process algorism of Open Source Drools while working with hundreds or thousands of rules). How can we apply this in IRIS?

Please advise.

8 Comments
Discussão (8)3
Entre ou crie uma conta para continuar
Discussão (5)2
Entre ou crie uma conta para continuar
Pergunta
· Jun. 17, 2024

Error importing globals from Caché to Iris

Hi,

Hi have problems to import globals, this is a testing only.

From Caché (v.2012, very older, 8 bits character, Latin1 encode) I created a file exporting globals, file *.gof with de web system utilities,.

When  I import these globals to Iris (v2024.1  16 bits character), the restore utility show this error:

Importar a namespace FENIX.
Carga iniciada en 06/17/2024 16:21:39
Cargando arch. C:\Users\Administrator\Desktop\export.gof como gbl
Global importado: ^PREG
Global importado: ^PREGM

ERROR #6069: Error al cargar archivo global 'C:\Users\Administrator\Desktop\export.gof' : ERROR #367: El importe del global '^PREGM' necesita ordenación #14, no está disponible, se omite el importe de este elemento
3 errores detectados al cargar.

What I can do?

 

Thanks!

 

 

Josep

2 Comments
Discussão (2)2
Entre ou crie uma conta para continuar
Anúncio
· Jun. 17, 2024

New on Open Exchange: Top contributors, List view and Setup of release date

We've implemented some notable new features and enhancements inspired by your feedback.

Here's what's new:

  1. Acknowledgement of Active Contributors: The main page now highlights the most active contributors from the past 30 days. This includes members who posted reviews, published apps, made major app releases, and participated in contests. It's our way of celebrating and recognizing your contributions!
  2. New List View Catalogue on Desktop: By popular demand, we've introduced a list view catalogue for desktop web users. Navigating and finding the apps you need is now easier and more convenient.
  3. Flexible Release Dates: Another community request fulfilled! You can now set a release date different from the publishing date on OEX. If your release was actually in the past, simply adjust the date accordingly. If you leave it untouched, the release will default to the current date.

Thank you for your continuous support and feedback. Keep contributing and let’s make Intersystems Open Exchange even better together!

7 Comments
Discussão (7)3
Entre ou crie uma conta para continuar