O llmware é uma estrutura de código aberto focada em ajudar os desenvolvedores a criar rapidamente aplicativos RAG (Retrieval Augmentation Generation) de nível empresarial. O llmware integra uma cadeia de ferramentas completa, desde o processamento de dados até a inferência de modelos, permitindo que os desenvolvedores se conectem a uma base de conhecimento empresarial e executem tarefas como consulta, classificação, extração e assim por diante, sem a necessidade de configurações complexas. Ele foi projetado com o objetivo de reduzir as barreiras ao desenvolvimento de IA, de modo que tanto os desenvolvedores iniciantes quanto os profissionais possam começar a trabalhar rapidamente. A estrutura oferece suporte a uma ampla variedade de bancos de dados e armazenamentos de vetores, é executada de forma eficiente e pode até mesmo ser usada em laptops comuns sem a necessidade de servidores de GPU caros. O llmware é desenvolvido pela AI Bloks, segue a licença Apache 2.0, tem uma comunidade ativa e incentiva os usuários a participarem das contribuições.
Lista de funções
- Linha de montagem RAGSuporte ao gerenciamento completo do ciclo de vida, desde o acesso à fonte de conhecimento até os modelos de IA generativos.
- Mais de 50 modelos especializadosInclui a família de modelos SLIM, DRAGON e BLING, otimizados para tarefas como pergunta e resposta, classificação, extração etc., respectivamente.
- Suporte a vários bancos de dadosCompatível com bancos de dados de texto, como MongoDB, PostgreSQL, SQLite, e 10 bancos de dados vetoriais, como Milvus e PGVector.
- Operação local eficienteModelos pequenos podem ser executados em um PC comum sem uma GPU, reduzindo os custos.
- Integração de fontes de conhecimentoSuporte a várias fontes de dados, como PDF, páginas da Web, áudio etc., que são processadas automaticamente e incorporadas ao modelo.
- Verificação de fatos e auditoriaDescrição: Forneça validação de evidências, verificação de fatos e rastreamento do histórico de dicas para reduzir as ilusões de modelagem.
- Exemplo de interface do usuárioFornece exemplos de interface interativa para ajudar os desenvolvedores a criar aplicativos rapidamente.
- script de automaçãoScripts de instalação com um clique para simplificar a configuração do ambiente e as execuções de amostra.
Usando a Ajuda
Processo de instalação
O processo de instalação do llmware é simples e suporta a instalação via PyPI ou fonte do GitHub. Veja a seguir as etapas detalhadas:
- Instalação via PyPI::
- Abra um terminal e execute o seguinte comando para instalar a versão básica:
pip3 install llmware
- Se for necessária a funcionalidade completa (incluindo OCR, bancos de dados vetoriais, etc.), execute:
pip3 install 'llmware[full]'
- Observação: Uma instalação completa incluirá dependências opcionais, como
pymilvus
epytesseract
etc. para usuários que precisam de recursos avançados.
- Abra um terminal e execute o seguinte comando para instalar a versão básica:
- Instalação via código-fonte do GitHub::
- Clone o repositório llmware:
git clone https://github.com/llmware-ai/llmware.git
- Vá para o catálogo de projetos:
cd llmware
- Execute o script de instalação automatizada para instalar as dependências e configurar os exemplos:
python3 welcome_to_llmware.py
- Esse script instala automaticamente o
requirements.txt
copie os arquivos de exemplo e execute owelcome_example.py
para uma experiência rápida.
- Clone o repositório llmware:
- Dependência de requisitos ambientais::
- Certifique-se de que o Python 3.8+ esteja instalado em seu sistema.
- Para a funcionalidade de OCR, o Tesseract (v5.3.3) e o Poppler (v23.10.0) precisam ser instalados manualmente.
- Se estiver usando o MongoDB, você precisa garantir que
mongo-c-driver
versão inferior a 1.24.4 para evitar erros de segmentação. - Redimensione a pilha do sistema (em um ambiente Linux):
ulimit -s 160000
- Para usuários do Docker, o tamanho da pilha é definido no tempo de execução:
docker run --ulimit stack=32768000:32768000
Funções principais
1. criação de aplicativos RAG
No centro do llmware está a criação de aplicativos RAG, e o seguinte é um processo operacional típico:
- Criação de bibliotecas: Uso
Library
As classes criam bases de conhecimento para armazenar documentos.from llmware.library import Library lib = Library().create_new_library("my_library")
- Adicionar arquivoImportar PDF, texto e outros documentos para a biblioteca.
lib.add_files("/path/to/documents")
- Gerar incorporação de vetorUso de um modelo de incorporação (por exemplo
industry-bert-contracts
) gerando vetores.from llmware.retrieval import Query q = Query(lib) q.generate_embeddings("industry-bert-contracts")
- realizar uma pesquisaRecuperação de informações por meio de consultas textuais ou semânticas.
results = q.text_search_by_page("contract termination", page_num=1)
- modelo de invocaçãoCarga: Carrega o modelo e combina os resultados da consulta para gerar respostas.
from llmware.prompts import Prompt prompter = Prompt().load_model("llmware/dragon-yi-6b-gguf") prompter.add_source_query_results(results) response = prompter.prompt_with_source("What is the notice period for termination?")
2. uso de modelos SLIM
Os modelos SLIM são projetados para tarefas específicas e geram dados estruturados (por exemplo, JSON, SQL). Exemplo de operação:
- Carregar modelo SLIM::
from llmware.prompts import Prompt prompter = Prompt().load_model("llmware/slim-sentiment")
- raciocínio executivo::
response = prompter.prompt_main("This contract is favorable to us.") print(response) # 输出:{"sentiment": "positive"}
3. verificação de fatos e auditoria
O llmware oferece recursos de validação de evidências para garantir que as respostas sejam precisas:
- Verificar resposta::
stats = prompter.evidence_comparison_stats(response) print(stats) # 输出证据匹配度
- Salvar histórico de interações::
prompter.save_state()
4. exemplos de interface do usuário
O llmware fornece exemplos de interface interativa localizados noexamples/UI/
Catálogo:
- Execute o exemplo:
python3 examples/UI/invoice_ui.py
- O exemplo suporta o upload de faturas em PDF e a execução do modelo BLING para perguntas e respostas.
Operação da função em destaque
1. fluxo de trabalho do agente multimodelo
O modelo SLIM suporta fluxos de trabalho do agente em várias etapas. Por exemplo, a combinação desentiment
responder cantandointent
Modelos:
- Carregamento de vários modelos::
prompter1 = Prompt().load_model("llmware/slim-sentiment") prompter2 = Prompt().load_model("llmware/slim-intent")
- Realizar raciocínio em várias etapas::
text = "I want to cancel my subscription." sentiment = prompter1.prompt_main(text) # 输出:{"sentiment": "negative"} intent = prompter2.prompt_main(text) # 输出:{"intent": "cancellation"}
2. análise do contrato
O modelo DRAGON da llmware otimiza a análise de contratos:
- Análise de contratos::
from llmware.library import Library from llmware.retrieval import Query lib = Library().create_new_library("contracts") lib.add_files("/path/to/contracts") q = Query(lib) results = q.text_query_with_document_filter("termination", {"file_source": "contract.pdf"}) prompter = Prompt().load_model("llmware/dragon-yi-6b-gguf") prompter.add_source_query_results(results) response = prompter.prompt_with_source("Summarize termination provisions")
3. integração do banco de dados Vector
Há suporte para vários bancos de dados vetoriais, como o Milvus:
- Configuração de Milvus::
curl -o docker-compose.yaml https://raw.githubusercontent.com/llmware-ai/llmware/main/docker-compose-redis-stack.yaml docker-compose up
- Gerar incorporação::
q.generate_embeddings("industry-bert-contracts", vector_db="milvus")
cenário do aplicativo
- Gerenciamento de contratos empresariais
O llmware pode ser usado para analisar um grande número de contratos e extrair os principais termos (por exemplo, cláusulas de rescisão, condições de pagamento). As organizações podem importar contratos para a biblioteca e usar o modelo DRAGON para realizar consultas semânticas e gerar rapidamente um resumo dos termos, adequado para que as equipes jurídicas aumentem a eficiência. - Processamento de dados financeiros
As equipes financeiras podem usar os modelos SLIM para analisar faturas ou relatórios financeiros, extraindo os principais campos (por exemplo, valores, datas). O processamento em lote é compatível com a geração de saída JSON estruturada para facilitar a integração em sistemas ERP. - Perguntas e respostas da base de conhecimento
As empresas podem criar uma base de conhecimento interna e combiná-la com o modelo BLING para realizar a função de perguntas e respostas. Os funcionários podem consultar as políticas, os procedimentos etc. da empresa por meio de linguagem natural, e o modelo retorna respostas precisas com fontes de evidências. - Implantação local de IA
Para setores sensíveis a dados, o llmware suporta a execução de modelos de IA no PC local ou na nuvem privada para evitar o vazamento de dados. Ele é adequado para bancos, instituições médicas e outros cenários que exigem alta segurança.
QA
- O llmware requer uma GPU para ser executado?
Não é necessário. Os modelos BLING e SLIM da llmware são otimizados para execução na CPU e são adequados para laptops comuns. O modelo DRAGON pode exigir hardware de desempenho mais alto, mas ainda é compatível com ambientes sem GPU. - Como você lida com as alucinações de modelos?
O llmware oferece recursos de verificação de fatos e de evidências por meio doevidence_comparison_stats
responder cantandoevidence_check_sources
Métodos de verificação das respostas para garantir a consistência com as fontes de conhecimento. - Quais formatos de arquivo são suportados?
Oferece suporte a PDF, texto, CSV, JSON, áudio, páginas da Web etc. A função OCR lida com texto em imagens e é adequada para documentos digitalizados. - Como faço para me envolver na comunidade llmware?
Problemas ou pull requests podem ser enviados pelo GitHub, participar da discussão no canal do Discord (https://discord.com/invite/fCztJQeV7J) ou verificar as diretrizes de contribuição.