Dify é um mecanismo e uma plataforma de desenvolvimento para aplicativos de IA.
Se você precisar desenvolver um aplicativo de IA de nível empresarial ou um aplicativo de corpo inteligente, geralmente há várias opções:
- Escreva manualmente todo o código e faça você mesmo a interface com todos os tipos de interfaces de API de grandes fornecedores de modelos.
- Use alguns dos SDKs que têm uma camada de encapsulamento, como o AI SDK da Vercel.
- Use uma plataforma de desenvolvimento de aplicativos de IA como a Dify.
Os produtos que são mais semelhantes à Dify têm "fivela". Mas o Button é um SaaS de nuvem pura, não muito adequado para ser adquirido e entregue aos clientes como parte de uma solução. Portanto, a Dify, com seu código-fonte aberto e fácil implementação privada, é uma opção melhor.
A Licença da Dify está disponível comercialmente
Embora a Dify use o protocolo de código aberto Apache, há algumas restrições adicionais ao uso comercial:
1. serviços de multilocação não são permitidos;
2. não são permitidas alterações no logotipo e nas informações de direitos autorais da interface do Console da Web da Dify.
Em geral, esse protocolo de código aberto ainda é muito flexível. Desde que você implemente um conjunto separado dedicado a cada cliente corporativo e não permita que eles usem o Console da Web da Dify, você não estará violando o protocolo.
Em outras palavras, você pode criar o aplicativo smartbody sem escrever uma única linha de código, usando as ferramentas de visualização do Dify Web Console e, em seguida, integrar as APIs geradas automaticamente à sua própria solução.
Preciso usar a Dify em meu projeto?
Não é necessário usar a Dify para desenvolver um aplicativo de corpo inteligente; basicamente, você pode integrar as APIs da OpenAI com um backend antigo do Java 8 e do Spring Boot da mesma forma.
No entanto, existem algumas características dos aplicativos de corpo inteligente que vão até a depuração constante de palavras-chave e o processamento de dados da base de conhecimento. O uso da Dify pode melhorar muito a experiência e a eficiência do desenvolvimento. Você não pode simplesmente alterar os prompts e lançar uma nova versão.
O backend da Dify é desenvolvido em Python, pois a maior parte do ecossistema de componentes relacionados à IA tem pacotes Python diretamente disponíveis. Ao contrário dos back-ends Java, que são comuns em aplicativos corporativos, recomenda-se que eles sejam implantados de forma autônoma, separados dos clusters de negócios.
Visão geral do componente Dify
A Dify usa uma arquitetura comum de separação de front-end e back-end, com um número muito grande de componentes e métodos de implantação bastante flexíveis.
A solução de implantação do Docker Compose recomendada pelo site oficial da Dify só pode ser usada para desenvolvimento e experiência locais. Em um ambiente de produção, você deve usar o K8s ou outras soluções de implantação altamente disponíveis de acordo com suas necessidades.
Tomando a versão 0.15.3 do Dify como exemplo, uma implantação em ambiente de produção requer os seguintes componentes:
componente essencial
- API
- trabalhador
- web
componente básico
- postgres
- redis
- caixa de areia
- ssrf_proxy
- certbot
- nginx
- weaviate
A relação entre os componentes é mostrada abaixo
Descrição detalhada das camadas arquitetônicas
extremidade traseira
O back-end da Dify inclui
- "api", o serviço Python flask iniciado com o gunicorn;
- O "worker", iniciado com o celery, consome tarefas assíncronas da fila do redis. Essas tarefas são coisas como importações de arquivos de conjuntos de dados e atualizações de documentos de conjuntos de dados.
encaminhar parte de algo
O front-end "web" é desenvolvido com o Next.js. Ele é criado e iniciado com o pm2 (node).
camada de acesso
O Nginx é usado para encaminhar solicitações da Web para a API ou para a Web, e o certbot é usado para gerenciar automaticamente os certificados HTTPS.
camada de armazenamento
A camada de armazenamento da Dify usa
- Banco de dados relacional PostgreSQL
- Banco de dados NoSQL/cache Redis
- banco de dados de vetoresO padrão é Weaviate.
segurança
A Dify, como uma plataforma de desenvolvimento de aplicativos, está disponível como uma ferramenta visual para orquestrar nós de fluxo de trabalho para lidar com a lógica comercial.
O nó do fluxo de trabalho permite que o usuário execute código Python/NodeJS, portanto, é necessário um mecanismo de Sandbox para impedir que o usuário realize operações de alto risco.
Os dois módulos a seguir estão envolvidos
- "sandbox" foi desenvolvido em Go.
- "ssrf_proxy" é uma saída de rede configurada com o squid.
Comparação com LangChain
A LangChain é a estrutura de desenvolvimento de aplicativos LLM mais antiga. Como você pode ver na figura abaixo, o Dify supera o LangChain em todos os aspectos.
Implantação privada da Dify em ambientes de produção
Se você precisar personalizar os aplicativos AI Intelligent Body para seus clientes e fornecer soluções de IA para setores verticais, considere implantar a Dify de forma privada em um ambiente de produção.
Pelos dois motivos a seguir, também pode ser necessário modificar e personalizar profundamente o código da Dify:
1. abrir os dados internos da empresa, em especial para reunir dados internos estruturados em um formato que possa ser usado para RAG da base de conhecimento.
2. abrir a autenticação de login para que as inteligências compreendam sua própria identidade e possam fornecer serviços personalizados.