Introdução geral
O Danswer é um assistente de IA de recuperação de documentos corporativos de código aberto projetado para se conectar aos documentos, aplicativos e pessoas de uma equipe para fornecer pesquisa unificada e respostas a consultas em linguagem natural por meio de uma interface de bate-papo inteligente e recursos de pesquisa unificada. Garantindo que os dados do usuário e os registros de bate-papo sejam totalmente controlados pelo usuário. Seu design modular e sua fácil escalabilidade o tornam uma ferramenta ideal para o gerenciamento do conhecimento e a colaboração da equipe.
Lista de funções
- Interface de bate-papoDiálogo com documentos, selecionando documentos específicos para interagir.
- Assistente de IA personalizadoCrie assistentes de IA com diferentes dicas e bases de conhecimento.
- Pesquisa de documentosPesquisa de documentos e respostas de IA para consultas em linguagem natural.
- Vários conectoresSuporte à conectividade com ferramentas de trabalho comuns, como Google Drive, Confluence, Slack e outras.
- Integração com o SlackObtenha respostas e resultados de pesquisa diretamente no Slack.
- autenticação do usuárioGerenciamento de acesso em nível de documento: fornece gerenciamento de acesso em nível de documento.
- Gerenciamento de funçõesSuporte ao gerenciamento de funções para administradores e usuários comuns.
- Persistência do registro de bate-papoSalvar os registros de bate-papo para consultas posteriores.
- Configuração da interface do usuárioInterface de usuário para configuração de assistentes e prompts de IA: fornece uma interface de usuário para configurar assistentes e prompts de IA.
- suporte multimodalSuporte para diálogo com imagens, vídeos, etc. (planejado).
- Invocação de ferramentas e configuração de proxyOpções de configuração de agentes e chamadas de ferramentas (planejadas).
Usando a Ajuda
Processo de instalação
- implantação local::
- Faça o download e instale o Docker.
- Clone o repositório GitHub do Danswer.
- Navegue até o diretório do projeto no terminal e execute
docker-compose up
Comando. - Abra seu navegador e acesse
http://localhost:8000
Comecei a usar o Danswer.
- Implementação na nuvem::
- Instale o Docker na máquina virtual.
- Clone o repositório GitHub do Danswer.
- Navegue até o diretório do projeto no terminal e execute
docker-compose up
Comando. - Configure o nome de domínio e o certificado SSL para garantir o acesso seguro.
- Implantação do Kubernetes::
- Instalar e configurar um cluster do Kubernetes.
- Clone o repositório GitHub do Danswer.
- Localize o arquivo de implantação do Kubernetes no diretório do projeto e execute o comando kubectl apropriado para implantá-lo.
Diretrizes para uso
- Interface de bate-papo::
- Abra o aplicativo da Web Danswer, faça login e vá para a tela de bate-papo.
- Selecione o documento com o qual deseja dialogar, digite uma pergunta em linguagem natural e o Danswer fornecerá a resposta relevante.
- Assistente de IA personalizado::
- Na interface do administrador, crie um novo assistente de IA.
- Configure as dicas e a base de conhecimento do assistente e salve as configurações.
- Selecione diferentes assistentes de IA para conversar na tela de bate-papo.
- Pesquisa de documentos::
- Digite uma consulta em linguagem natural na barra de pesquisa e o Danswer retornará documentos relevantes e respostas geradas por IA.
- Oferece suporte à filtragem e à classificação dos resultados da pesquisa para encontrar rapidamente as informações de que você precisa.
- Integração com o Slack::
- Instale o aplicativo Danswer no Slack.
- Configure a conexão do Danswer com o Slack para autorizar o acesso aos canais relevantes.
- Insira uma consulta diretamente no Slack e o Danswer retornará os resultados e as respostas da pesquisa.
- Autenticação de usuários e gerenciamento de funções::
- Adicione e gerencie usuários na interface do administrador.
- Configure os direitos de acesso e as funções do usuário para garantir a segurança dos dados.
- Persistência do registro de bate-papo::
- Todos os bate-papos serão salvos automaticamente e os usuários poderão visualizar o histórico a qualquer momento.
- Oferece suporte à pesquisa e à filtragem de registros de bate-papo, facilitando a localização de conversas anteriores.
Funções em destaque
- Pesquisa eficienteCombinação de modelos de incorporação com reconhecimento de prefixo e BM-25 para oferecer uma experiência de pesquisa híbrida ideal.
- Modelos personalizadosSuporte a modelos personalizados de aprendizagem profunda e aprendizagem a partir do feedback do usuário.
- Várias opções de implementaçãoSuporte a implementações locais, na nuvem e no Kubernetes, adaptando-se com flexibilidade às necessidades de equipes de diferentes tamanhos.
- suporte multimodal: As versões futuras oferecerão suporte ao diálogo com imagens, vídeos etc. para aprimorar a experiência do usuário.
- Invocação de ferramentas e configuração de proxyOferece opções flexíveis de invocação de ferramentas e configuração de agentes para atender às necessidades de diferentes equipes.
- Compreensão organizacional e consultoria especializadaO Danswer será capaz de reconhecer especialistas na equipe e fornecer conselhos relevantes para melhorar a colaboração da equipe.
Visão geral do sistema
Explicação dos diferentes componentes e processos do sistema
Esta página discute como o Danswer funciona em um nível elevado. O objetivo é tornar nosso projeto mais transparente. Dessa forma, você pode se sentir confiante ao usar o Danswer.
Ou, se você quiser personalizar o sistema ou tornar-se um colaborador de código aberto, este é um ótimo lugar para começar.
arquitetura do sistema
Independentemente de o Danswer ser implantado em uma única instância ou em uma plataforma de orquestração de contêineres, o fluxo de dados é o mesmo. Os documentos são extraídos e processados por meio de conectores e, em seguida, armazenados de forma persistente no Vespa/Postgres em execução nos contêineres do sistema.
O único momento em que os dados confidenciais deixam a configuração do Danswer é quando ele chama o LLM para gerar uma resposta. A comunicação com o LLM é criptografada. A persistência de dados na API do LLM depende dos termos do serviço de hospedagem do LLM que você está usando.
Também observamos que o Danswer tem alguns dados de telemetria muito limitados e anônimos, que nos ajudam a aprimorar o sistema identificando gargalos e conectores de dados não confiáveis. Você pode desativar a telemetria definindo a variável de ambiente DISABLE_TELEMETRY como True.
fluxo incorporado
Cada documento é dividido em partes menores chamadas de "pedaços".
Ao passar blocos para o LLM em vez do documento completo, conseguimos reduzir o ruído no modelo, passando apenas as partes relevantes do documento. Além disso, isso melhora significativamente a relação custo-benefício, pois os serviços de LLM geralmente são cobrados por token. Por fim, ao incorporar blocos em vez de documentos completos, conseguimos reter mais detalhes, pois cada incorporação de vetor só pode codificar uma quantidade limitada de informações.
A adição de microblocos aprofunda ainda mais esse conceito. Ao incorporar tamanhos diferentes, o Danswer pode recuperar contexto e detalhes de alto nível. Os microblocos também podem ser ativados/desativados por meio de variáveis de ambiente, pois a geração de vários vetores por bloco pode tornar a indexação de documentos mais lenta em caso de baixo desempenho do hardware.
Ao escolher nosso modelo de incorporação, usamos o mais recente codificador duplo de última geração, que é pequeno o suficiente para ser executado em uma CPU e, ao mesmo tempo, manter tempos de recuperação de documentos inferiores a um segundo.
Processo de consulta
Esse fluxo é normalmente atualizado à medida que nos esforçamos continuamente para ampliar os recursos do pipeline de recuperação para aproveitar os avanços mais recentes das comunidades de pesquisa e de código aberto. Observe também que muitos dos parâmetros desse fluxo, como quantos documentos recuperar, quantos reordenar, quais modelos usar, quais blocos passar para o LLM etc., são configuráveis.